CACHEDIR.TAG000064400000000276147207411410006251 0ustar00Signature: 8a477f597d28d172789f06886806bc55 # This file is a cache directory tag created by man-db. # For information about cache directory tags, see: # http://www.brynosaurus.com/cachedir/ en/CACHEDIR.TAG000064400000000276147207411410006653 0ustar00Signature: 8a477f597d28d172789f06886806bc55 # This file is a cache directory tag created by man-db. # For information about cache directory tags, see: # http://www.brynosaurus.com/cachedir/ en/index.db000064400000040000147207411410006557 0ustar00ϚW @ 3 6"fencr0 !/VEwtmp66setdi0'YAutmp0(fm updw0;"*Wsetr1 #sU$ver;1 ۞lockK1Ml,#fclo1)2xamadv1:Sq sran29st42+~hierb2C?tstrt26xencr22orrand!3mumasF36"s envi3+k1tolo3!݌setk3 !Cr$mti4 t!getd42F7moun[4,)mstrt4 V8,sysi4Ktsuff 5 04$closB52}nBgetrz5 2טWprli5#Cclogw5!kltoup 6@S%BsetkR6!4rand+09pCffluz6)encrypt_r- 3 3 1402354208 C encrypt - gz rand- 3 3 1402354211 A - - gz pseudo-random number generatorsetdomainname- 2 2 1402354204 C getdomainname - gz utmp- 5 5 1402354219 A - - gz login recordsupdwtmp- 3 3 1402354213 A - - gz append an entry to the wtmp filesetrlimit- 2 2 1402354205 C getrlimit - gz $version$2.4.1lockf- 3 3 1402354210 A - - gz apply, test or remove a POSIX lock on an open filefclose- 3 3 1402354208 A - - gz close a streammadvise- 2 2 1402354205 A - - gz give advice about use of memorysrand- 3 3 1402354211 C rand - gz st- 4 4 1402354219 A - - gz SCSI tape devicehier- 7 7 1402354219 A - - gz description of the file system hierarchystrtok- 3 3 1402354212 A - - gz extract tokens from stringsencrypt- 3 3 1402354208 A - - gz encrypt 64-bit messagesrand_r- 3 3 1402354211 C rand - gz umask- 2 2 1402354206 A - - gz set file mode creation maskenviron- 7 7 1402354219 A - - gz user environmenttolower- 3 3 1402354213 C toupper - gz setkey_r- 3 3 1402354208 C encrypt - gz $mtime$1583330918getdomainname- 2 2 1402354204 A - - gz get/set NIS domain namemount- 2 2 1402354205 A - - gz mount file systemstrtok_r- 3 3 1402354212 C strtok - gz sysinfo- 2 2 1402354206 A - - gz returns information on overall system statisticssuffixes- 7 7 1402354220 A - t gz list of file suffixesclose- 2 2 1402354204 A - - gz close a file descriptorgetrlimit- 2 2 1402354205 A - - gz get/set resource limitsprlimit- 2 2 1402354205 C getrlimit - gz logwtmp- 3 3 1402354213 C updwtmp - gz toupper- 3 3 1402354213 A - - gz convert letter to upper or lower casesetkey- 3 3 1402354208 C encrypt - gz fflush- 3 3 1402354209 A - - gz flush a streamwtmp- 5 5 1402354219 C utmp - gz pt_BR/CACHEDIR.TAG000064400000000276147207411410007257 0ustar00Signature: 8a477f597d28d172789f06886806bc55 # This file is a cache directory tag created by man-db. # For information about cache directory tags, see: # http://www.brynosaurus.com/cachedir/ pt_BR/index.db000064400000040000147207411410007163 0ustar00ϚW @ E1isuzgrou0 .sU$ver70 vshadG0;? gpas0:sdgrou0 ,I grou1 )Cr$mti21 groupadd- 8 8 1565319053 A - - gz Criar um novo grupo$version$2.4.1shadow- 5 5 1565319053 A - - gz arquivo de senhas criptografadasgpasswd- 1 1 1565319053 A - - gz administra o arquivo /etc/groupgroupmod- 8 8 1565319053 A - - gz Modifica um grupogroupdel- 8 8 1565319053 A - - gz Apaga um grupo$mtime$1583330918id/CACHEDIR.TAG000064400000000276147207411410006645 0ustar00Signature: 8a477f597d28d172789f06886806bc55 # This file is a cache directory tag created by man-db. # For information about cache directory tags, see: # http://www.brynosaurus.com/cachedir/ id/index.db000064400000040000147207411410006551 0ustar00ϚW @ F 4}HQman0MHmanpQ0Saccen0 esU$ver0 zwhat0E~?Ozsoe81E=Wuser1Yo lexg1Leapro:2O9Ocatm2PCr$mti2 WVmanc2Z~manp]3 P+mand3T*Rmanp4 >ZkeadduY4Yman- 1 1 1540931193 A - t gz sebuah antar-muka ke referensi buku panduan onlinemanpath manpath 1 manpath 5accessdb- 8 8 1540931193 A - - gz keluarkan isi dari sebuah basis data man-db dalam format yang mudah dibaca$version$2.4.1whatis- 1 1 1540931193 A - - gz menampilkan deskripsi halaman buku panduanzsoelim- 1 1 1540931193 A - - gz memenuhi permintaan .so dalam masukan roffuseradd- 8 8 1565319054 A - - gz Membuat user baru atau memperbarui informasi tentang user barulexgrog- 1 1 1540931193 A - - gz ambil kepala informasi dalam halaman buku panduanapropos- 1 1 1540931193 A - - gz cari halaman buku panduan dari nama dan deskripsinyacatman- 8 8 1540931193 A - - gz buat atau perbarui pre-formatted halaman buku panduan$mtime$1583330918manconv- 1 1 1540931193 A - - gz mengubah halaman buku panduan dari satu pengkodean ke yang lainmanpath 1- 1 1 1540931193 A - - gz menentukan jalur pencarian untuk halaman buku panduanmandb- 8 8 1540931193 A - t gz buat atau perbarui indeks persediaan halaman buku panduanmanpath 5- 5 5 1540931193 A - - gz format dari berkas /etc/man_db.confadduser- 8 8 1565319054 B - - gz Membuat user baru atau memperbarui informasi tentang user baruzh_TW/CACHEDIR.TAG000064400000000276147207411410007304 0ustar00Signature: 8a477f597d28d172789f06886806bc55 # This file is a cache directory tag created by man-db. # For information about cache directory tags, see: # http://www.brynosaurus.com/cachedir/ zh_TW/index.db000064400000040000147207411410007210 0ustar00ϚW @ } 2 isuzgrou0 .֯Ruser70JsU$ver0 =Wuser0RIcm&chpa0 9sdgrou51 *?newgh19I grou1 'Cr$mti1 2user16Zkeaddu)2Rgroupadd- 8 8 1565319053 A - - gz 建 立 新 群 組userdel- 8 8 1565319053 A - - gz 刪 除 使 用 者 帳 號 及 相 關 檔 案$version$2.4.1useradd- 8 8 1565319054 A - - gz 帳 號 建 立 或 更 新 新 使 用 者 的 資 訊chpasswd- 8 8 1565319053 A - - gz 成批更新使用者的口令groupmod- 8 8 1565319053 A - - gz 修 改 群 組newgrp- 1 1 1565319053 A - - gz 登入到新的使用者組中groupdel- 8 8 1565319053 A - - gz 刪除群組$mtime$1583330918usermod- 8 8 1565319053 A - - gz 修 改 使 用 者 帳 號adduser- 8 8 1565319054 B - - gz 帳 號 建 立 或 更 新 新 使 用 者 的 資 訊nl/CACHEDIR.TAG000064400000000276147207411410006662 0ustar00Signature: 8a477f597d28d172789f06886806bc55 # This file is a cache directory tag created by man-db. # For information about cache directory tags, see: # http://www.brynosaurus.com/cachedir/ nl/index.db000064400000040000147207411410006566 0ustar00ϚW @ !7}HQman0Eb[dpkgI0`Hmanp0Adpkg0 8Sacce1 \sU$ver1 zwhat1;~?Ozsoe1=pdpkg2 ^ (dpkg2 Jo lexg2E+i"dpkg%3F:gdpkg}3 J"mdpkg36eapro4Q]sdpkgh4 _9Ocatm4JCr$mti#5 WVmanc65Rdpkg5 O~manp5 A+mand56H*Rmanp6 >,Astar6Dman- 1 1 1540931193 A - t gz een interface voor de online-handleidingendpkg-maintscript-helper- 1 1 1642076111 A - - gz omzeilt in de scripts van de onderhouder gekende beperkingen van dpkgmanpath manpath 1 manpath 5dpkg.cfg- 5 5 1642076111 A - - gz configuratiebestand voor dpkgaccessdb- 8 8 1540931193 A - - gz dumps the content of a man-db database in a human readable format$version$2.4.1whatis- 1 1 1540931193 A - - gz display manual page descriptionszsoelim- 1 1 1540931193 A - - gz satisfy .so requests in roff inputdpkg-deb- 1 1 1642076111 A - - gz gereedschap voor het behandelen van een Debian pakketarchief (.deb)dpkg-divert- 1 1 1642076111 A - - gz vervang de versie van een bestand in een pakketlexgrog- 1 1 1540931193 A - - gz hoofdinginformatie in manpagina's ontledendpkg-statoverride- 1 1 1642076111 A - - gz wijzig eigenaarschap en modus van bestandendpkg-trigger- 1 1 1642076111 A - - gz een hulpprogramma in verband met pakkettriggersdpkg- 1 1 1642076111 A - - gz pakketbeheerder voor Debianapropos- 1 1 1540931193 A - - gz namen en beschrijvingen van de man-pagina's doorzoekendpkg-split- 1 1 1642076111 A - - gz gereedschap voor het splitsen/samenvoegen van Debian pakketarchievencatman- 8 8 1540931193 A - - gz create or update the pre-formatted manual pages$mtime$1650695538manconv- 1 1 1540931193 A - - gz converteert man-pagina van een codering naar een anderedpkg-query- 1 1 1642076111 A - - gz een gereedschap om te zoeken in de database van dpkgmanpath 1- 1 1 1540931193 A - - gz determine search path for manual pagesmandb- 8 8 1540931193 A - t gz create or update the manual page index cachesmanpath 5- 5 5 1540931193 A - - gz format of the /etc/man_db.conf filestart-stop-daemon- 8 8 1642076111 A - - gz start en stopt systeemachtergronddienstenlocal/CACHEDIR.TAG000064400000000276147207411410007343 0ustar00Signature: 8a477f597d28d172789f06886806bc55 # This file is a cache directory tag created by man-db. # For information about cache directory tags, see: # http://www.brynosaurus.com/cachedir/ local/index.db000064400000150000147207411410007251 0ustar00ϚW _oOm r/modu0Qhbtap:i0)vrQ&tap:1x1 >tap:1F-extuy2Vtap:^dF8v_test;eY_%file2lt8&urih3R)XV8tap:3Ortest!4W (8cgi:4a2tap:5dtest5<GQzuri:e Datest5An^mteste^9neta*6Q.cgi:6 ^Wp!test6K_:dbd:V7U5jdeve7KXvtest8@ݐ+timem8 VG>I.test8I3x#tap:.9 q-ok9=sU$ver9 A(tap:9!mjson:\www::]yU;testn;Z<test;WtestN<D~:test<OW51html<Q|netaa=IxҨcpan=8modu=UG#testK>K䆉9test>Q@+json? @N file[? VO5Ihtml@V 5testd@Ctest@$m~4htmlNAasE:testAVPAtest*B<ݹRtestyB F1testBbttap:CCVh0cpanCgΔ7test;D TP#app:DcGv1cpanEGNU`4filerE EmkcpanE Nh+_test? 5ٞextuFUjtap:FLjbatap:pf GW2tap:FV~*htmlWGI|fpathf 6scgi:g ?x6.tap:G_˧ptap:Pg'l{cpan2Ha[-tap:H#etest/I5S5tap:wISuaN>expoI OxptestgqtRR'bund8J- f?extuxJIѫ{extughMItestJeD uri:UKFIcpanhgt}moduJiM >yamlK M<}qjsoni B)|htmlL`؜0moduqLV` yextui]#cgiLT?test5MZ(R&/testM ;cpanMgb!cgi:tN RZæ9yamlNTtest4OP (/cpanOImoduPf"{x"httpP AoexpoP7tap:Q[,htmlQ_x'parsR\|I@confhj G?tap:rRagDynetajY1testRFarLtap:(kWr ]mechk <d0testMS GtestS`@D/tap:TL̯8moduTU+mmodukVMqcoreOl DŶ moduT^cpan_UO&CpmodulXktestUEjtestmh,gtestV\E&testVDa moduVV=.app:YWY Vb testW_jy'www::XOv&Euri:m B(awtestX O+uri:XDptestLYZ(kmodumF s:testYWntap:1ZX8tap:Z FZPmail[qhtml[ No֨&test[CMGtest6n\sL test;\X?tap:\_e extu]&c[{dcpano^ZCmodupdHN^testoRV4uri:na EmZyjsonupT1cpanp]"^testNqGv0-moduaOmmodu bZy?tap:bWdYtestdgTiTjtestqT+֏tap:1Ftap:^dFAtap:1d_%file2lt8&urih3R)XV8tap:3Ortest!4W (8cgi:4a2tap:5dtest5<atest5A9neta*6Q.cgi:6 ^Wp!test6K_:dbd:V7U5jdeve7KXvtest8@ݐ+timem8 VG>I.test8I3x#tap:.9 q-ok9=sU$ver9 A(tap:9!mjson:\www::]yU;testn;Z<test;WtestN<D~:test<OW51html<Q|netaa=IxҨcpan=8modu=UG#testK>K䆉9test>Q@+json? @N file[? VO5Ihtml@V 5testd@Ctest@$m~4htmlNAasE:testAVPAtest*B<ݹRtestyB F1testBbttap:CCVh0cpanCgΔ7test;D TP#app:DcGv1cpanEGNU`4filerE EmkcpanE Nh+_test? 5ٞextuFUjtap:FLW2tap:FV~*htmlWGIx6.tap:G_{cpan2Ha[-tap:H#etest/I5S5tap:wISuaN>expoI OtRR'bund8J- f?extuxJIItestJeD uri:UKF >yamlK M)|htmlL`؜0moduqLV#cgiLT?test5MZ(R&/testM ;cpanMgb!cgi:tN RZæ9yamlNTtest4OP (/cpanOImoduPf"{x"httpP AoexpoP7tap:Q[,htmlQ_x'parsR\?tap:rRa1testRFd0testMS GtestS`@D/tap:TL̯8moduTUŶ moduT^cpan_UOktestUE,gtestV\E&testVDa moduVV=.app:YWY Vb testW_jy'www::XO(awtestX O+uri:XDptestLYZ s:testYWntap:1ZX8tap:Z FZPmail[qhtml[ No֨&test[CsL test;\X?tap:\_e extu]&c[{dcpano^ZCmodupdHN^testoRmZyjsonupT1cpanp]"^testNqGTiTjtestqT}cpanrgDdfhttpr JUUtap:LuextuiKX/Njson̠P7Y~modu-RīMcpanc:nF{modua+ntestN\WgtempZ!Rtap:]aEctest֣C'C;oneta* Q.-AtestZE>thtml T@QtestZ8M)YhtestBp(bjson HQptestJLijwww:ZIFtap:Pttap:!\@netaWk]tap:gPVEsapp:ԨRZwotest8 <SmtestTcQmodu PJXptap:D?Fuse-Yxdcpang Mfcgi: C|tap:֫a testRb:0/Htap:ͬRM|test8K&Wvuri:KժsFwww:Mj+rmodu[Tc`cpanǮ^j=Dapp:6R7ftap:OVWhtmlgf ,\[tap: k@[data]M+Vcjsonbwtest< YB~testL<$Mtest Kyiuri:Kgtap:`m{aapp:߳ Do1_Jjson.2zGcgi:h IVYmodu ](zbjson8 X1qHhack 2Nmoduٵ [Cr$mtiT omodugR@tmoduͶSaADXmodu:V(Otest ]TtestQQ(Jtap:y#nNzextu QMNStestvT(iUtest޹\}_tap:QIheOtest SzWWtap: 6{(Zuri:W <Umodu![7ttap:KDZUtest^.zFtestOڡBcpan] 4_xmodu!^D4shtml GOKHtestlIDThtmlþ RСEprov":Bltestb IHtestyw[utap:!W*0^app: RʩAwyaml}K5Usdige IxEntest/`Ucuri: BKo]cpanWibyamlc OdYtestdgyrmock P:Mdbd: Xr.utest{ `ɱJCwww:S8v_test;eY|fpathf 6tap::parser::result::commentTAP::Parser::Result::Comment 3pm 3 1583449673 A - - - Comment result token.extutils::helpers::unixExtUtils::Helpers::Unix 3pm 3 1583449680 A - - - Unix specific helper bitsjson::backportppJSON::backportPP 3pm 3 1573512724 A - - - JSON::XS compatible pure-Perl module.module::build::authoringModule::Build::Authoring 3pm 3 1583449675 A - - - Authoring Module::Build modulescpan::meta::prereqsCPAN::Meta::Prereqs 3pm 3 1583449662 A - - - a set of distribution prerequisites by phase and typemodule::build::bundlingModule::Build::Bundling 3pm 3 1583449675 A - - - How to bundle Module::Build with a distributiontest2::ipc::driverTest2::IPC::Driver 3pm 3 1573512602 A - - - Base class for Test2 IPC drivers.template::toolkit::simpleTemplate::Toolkit::Simple 3pm 3 1573512922 A - - - A Simple Interface to Template Toolkittap::formatter::sessionTAP::Formatter::Session 3pm 3 1583449673 A - - - Abstract base class for harness output delegatetest2::event::v2Test2::Event::V2 3pm 3 1573512602 A - - - Second generation event.netaddr::ipNetAddr::IP 3pm 3 1573512542 A - - - Manages IPv4 and IPv6 addresses and subnetstest2::eventfacet::errorTest2::EventFacet::Error 3pm 3 1573512601 A - - - Facet for errors that need to be shown.html::parseHTML::Parse 3pm 3 1583449676 A - - - Deprecated, a wrapper around HTML::TreeBuildertest2::event::okTest2::Event::Ok 3pm 3 1573512602 A - - - Ok event typetest2::hub::subtestTest2::Hub::Subtest 3pm 3 1573512601 A - - - Hub used by subtestsjson::ppJSON::PP 3pm 3 1583449661 A - - - JSON::XS compatible pure-Perl module.test2::eventfacetTest2::EventFacet 3pm 3 1573512602 A - - - Base class for all event facets.www::mechanize::examplesWWW::Mechanize::Examples 3pm 3 1583449686 A - - - Sample programs that use WWW::Mechanizetap::formatter::colorTAP::Formatter::Color 3pm 3 1583449673 A - - - Run Perl test scripts with colortap::parser::sourcehandler::perlTAP::Parser::SourceHandler::Perl 3pm 3 1583449673 A - - - Stream TAP from a Perl executablenetaddr::ip::liteNetAddr::IP::Lite 3pm 3 1573512541 A - - - Manages IPv4 and IPv6 addresses and subnetstap::parser::result::versionTAP::Parser::Result::Version 3pm 3 1583449673 A - - - TAP syntax version token.app::prove::stateApp::Prove::State 3pm 3 1583449673 A - - - State storage for the "prove" command.test2::eventTest2::Event 3pm 3 1573512601 A - - - Base class for eventstest2::transitionTest2::Transition 3pm 3 1573512602 A - - - Transition notes when upgrading to Test2module::loadModule::Load 3pm 3 1583449636 A - - - runtime require of both modules and filestap::harness::beyondTAP::Harness::Beyond 3pm 3 1583449673 A - - - Beyond make testuse-devel-checklib- 1 1 1583449640 A - - - (DEPRECATED)a script to package Devel::CheckLib with your code.cpan::meta::history::meta_1_4CPAN::Meta::History::Meta_1_4 3pm 3 1583449662 A - - - Version 1.4 metadata specification for META.ymlcgi::pushCGI::Push 3pm 3 1583449678 A - - - Simple Interface to Server Pushtap::parser::sourcehandlerTAP::Parser::SourceHandler 3pm 3 1583449673 A - - - Base class for different TAP source handlerstest::builder::formatterTest::Builder::Formatter 3pm 3 1573512601 A - - - Test::Builder subclass of Test2::Formatter::TAPtap::parser::multiplexerTAP::Parser::Multiplexer 3pm 3 1583449673 A - - - Multiplex multiple TAP::Parserstest2::event::tap::versionTest2::Event::TAP::Version 3pm 3 1573512601 A - - - Event for TAP version.uri::queryparamURI::QueryParam 3pm 3 1573512940 A - - - Additional query methods for URIswww::mechanize::linkWWW::Mechanize::Link 3pm 3 1583449686 A - - - Link object for WWW::Mechanizemodule::build::ppmmakerModule::Build::PPMMaker 3pm 3 1583449675 A - - - Perl Package Manager file creationcpan::meta::yamlCPAN::Meta::YAML 3pm 3 1583449662 A - - - Read and write a subset of YAML for CPAN Meta filesapp::prove::state::resultApp::Prove::State::Result 3pm 3 1583449673 A - - - Individual test suite results.test::needsTest::Needs 3pm 3 1573512934 A - - - Skip tests when modules not availabletap::parser::aggregatorTAP::Parser::Aggregator 3pm 3 1583449674 A - - - Aggregate TAP::Parser resultshtml::tree::aboutobjectsHTML::Tree::AboutObjects 3pm 3 1583449676 A - - - - article: "User's View of Object-Oriented Modules"tap::objectTAP::Object 3pm 3 1583449673 A - - - Base class that provides common functionality to all "TAP::*" modulesdata::validate::ipData::Validate::IP 3pm 3 1573512561 A - - - IPv4 and IPv6 validation methodsjson::backportpp::compat5006JSON::backportPP::Compat5006 3pm 3 1573512850 A - - - Helper module in using JSON::PP in Perl 5.6test::testerTest::Tester 3pm 3 1573512601 A - - - Ease testing test modules built with Test::Buildertest2::eventfacet::planTest2::EventFacet::Plan 3pm 3 1573512602 A - - - Facet for setting the planuri::_punycodeURI::_punycode 3pm 3 1573512940 A - - - encodes Unicode string in Punycodetap::harness::envTAP::Harness::Env 3pm 3 1583449674 A - - - Parsing harness related environmental variables where appropriateapp::proveApp::Prove 3pm 3 1583449673 A - - - Implements the "prove" command.json_pp- 1 1 1583449661 A - - - JSON::PP command utilitycgi::utilCGI::Util 3pm 3 1583449678 A - - - Internal utilities used by CGI modulemodule::build::platform::darwinModule::Build::Platform::darwin 3pm 3 1583449675 A - - - Builder class for Mac OS X platformjson::syckJSON::Syck 3pm 3 1583449656 A - - - JSON is YAML (but consider using JSON::XS instead!)hacking.podHACKING.pod 3pm 3 1583449673 C Test::HACKING - - module::build::platform::cygwinModule::Build::Platform::cygwin 3pm 3 1583449675 A - - - Builder class for Cygwin platform$mtime$1583475905module::build::tinyModule::Build::Tiny 3pm 3 1583449683 A - - - A tiny replacement for Module::Buildmodule::build::configdataModule::Build::ConfigData 3pm 3 1583449675 A - - - Configuration for Module::Buildmodule::build::platform::vmsModule::Build::Platform::VMS 3pm 3 1583449675 A - - - Builder class for VMS platformstest2::apiTest2::API 3pm 3 1573512601 A - - - Primary interface for writing Test2 based testing tools.test2::event::passTest2::Event::Pass 3pm 3 1573512601 A - - - Event for a simple passing assertiontap::parser::sourcehandler::rawtapTAP::Parser::SourceHandler::RawTAP 3pm 3 1583449673 A - - - Stream output from raw TAP in a scalar/array ref.extutils::helpers::windowsExtUtils::Helpers::Windows 3pm 3 1583449680 A - - - Windows specific helper bitstest2::api::contextTest2::API::Context 3pm 3 1573512602 A - - - Object to represent a testing context.test2::eventfacet::hubTest2::EventFacet::Hub 3pm 3 1573512601 A - - - Facet for the hubs an event passes through.tap::parser::yamlish::writerTAP::Parser::YAMLish::Writer 3pm 3 1583449673 A - - - Write YAMLish datatest::moreTest::More 3pm 3 1573512602 A - - - yet another framework for writing test scriptstap::parserTAP::Parser 3pm 3 1583449673 A - - - Parse TAP outputuri::urlURI::URL 3pm 3 1573512940 A - - - Uniform Resource Locatorsmodule::build::platform::defaultModule::Build::Platform::Default 3pm 3 1583449675 A - - - Stub class for unknown platformstap::parser::scheduler::jobTAP::Parser::Scheduler::Job 3pm 3 1583449673 A - - - A single testing job.test::builder::tododiagTest::Builder::TodoDiag 3pm 3 1573512601 A - - - Test::Builder subclass of Test2::Event::Diagtest2::eventfacet::traceTest2::EventFacet::Trace 3pm 3 1573512601 A - - - Debug information for eventscpanm 3pm- 3pm 3 1573512505 C App::cpanminus::fatscript - - module::build::platform::windowsModule::Build::Platform::Windows 3pm 3 1583449675 A - - - Builder class for Windows platformshtml::treeHTML::Tree 3pm 3 1583449676 A - - - build and scan parse-trees of HTMLtest::use::okTest::use::ok 3pm 3 1573512601 A - - - Alternative to Test::More::use_okhtml::assubsHTML::AsSubs 3pm 3 1583449676 A - - - functions that construct a HTML syntax treeprove- 1 1 1583449673 A - - - Run tests through a TAP harness.test::simpleTest::Simple 3pm 3 1573512601 A - - - Basic utilities for writing tests.test2::util::externalmetaTest2::Util::ExternalMeta 3pm 3 1573512602 A - - - Allow third party tools to safely attach meta-data to your instances.tap::parser::sourcehandler::fileTAP::Parser::SourceHandler::File 3pm 3 1583449673 A - - - Stream TAP from a text file.app::prove::state::result::testApp::Prove::State::Result::Test 3pm 3 1583449673 A - - - Individual test results.yaml::xs::libyamlYAML::XS::LibYAML 3pm 3 1573512913 A - - - An XS Wrapper Module of libyamldigest::md5Digest::MD5 3pm 3 1573512576 A - - - Perl interface to the MD5 Algorithmtest2::eventfacet::info::tableTest2::EventFacet::Info::Table 3pm 3 1573512602 A - - - Intermediary representation of a table.uri::splitURI::Split 3pm 3 1573512940 A - - - Parse and compose URI stringscpan::meta::specCPAN::Meta::Spec 3pm 3 1583449663 A - - - specification for CPAN distribution metadatayaml::xsYAML::XS 3pm 3 1573512913 A - - - Perl YAML Serialization using XS and libyamlmock::configMock::Config 3pm 3 1583449639 A - - - temporarily set Config or XSConfig valuesdbd::mysqlDBD::mysql 3pm 3 1583449646 A - - - MySQL driver for the Perl5 Database Interface (DBI)test::fatalTest::Fatal 3pm 3 1573512648 A - - - incredibly simple helpers for testing code with exceptionswww::mechanize::cookbookWWW::Mechanize::Cookbook 3pm 3 1583449686 A - - - Recipes for using WWW::Mechanizetest2::eventfacet::aboutTest2::EventFacet::About 3pm 3 1573512601 A - - - Facet with event details.storableStorable 3pm 3 1573512889 A - - - persistence for Perl data structurestap::parser::result::pragmaTAP::Parser::Result::Pragma 3pm 3 1583449673 A - - - TAP pragma token.es/CACHEDIR.TAG000064400000000276147207411410006660 0ustar00Signature: 8a477f597d28d172789f06886806bc55 # This file is a cache directory tag created by man-db. # For information about cache directory tags, see: # http://www.brynosaurus.com/cachedir/ es/index.db000064400000040000147207411410006564 0ustar00ϚW @  z4}HQman0SHmanpW0sU$vert0 zwhat0F~?Ozsoe0Ue_=pam_.10 (dpkgf1 IWsssd1;eapro2S]sdpkgj2 J9Ocatm2RCr$mti3 ~manp+3 I+mand~3Z*Rmanp3 ?,Astar'4Aman- 1 1 1540931193 A - t gz una interfaz de los manuales de referencia electrónicosmanpath manpath 1 manpath 5$version$2.4.1whatis- 1 1 1540931193 A - - gz imprime descripciones de páginas de manualzsoelim- 1 1 1540931193 A - - gz satisface peticiones .so en la entrada suministrada a roffpam_sss- 8 8 1706198158 A - - gz Módulo PAM para SSSDdpkg-divert- 1 1 1642076111 A - - gz Redefine la versión de un fichero del paquetesssd_krb5_locator_plugin- 8 8 1706198158 A - - gz Complemento localizador Kerberosapropos- 1 1 1540931193 A - - gz buscar entre las páginas del manual y las descripcionesdpkg-split- 1 1 1642076111 A - - gz Herramienta para separar y unir paquetes Debiancatman- 8 8 1540931193 A - - gz crea o actualiza las páginas del manual preformateadas$mtime$1706768526manpath 1- 1 1 1540931193 A - - gz determinar la ruta para las páginas de manualmandb- 8 8 1540931193 A - t gz crea o actualiza los índices temporales de páginas del manualmanpath 5- 5 5 1540931193 A - - gz formato del fichero /etc/man_db.confstart-stop-daemon- 8 8 1642076111 A - - gz Detiene y arranca demonios del sistemauk/CACHEDIR.TAG000064400000000276147207411410006670 0ustar00Signature: 8a477f597d28d172789f06886806bc55 # This file is a cache directory tag created by man-db. # For information about cache directory tags, see: # http://www.brynosaurus.com/cachedir/ uk/index.db000064400000040000147207411410006574 0ustar00ϚW @ B0sU$ver0 e_=pam_07WsssdO0CCr$mti0 $version$2.4.1pam_sss- 8 8 1706198158 A - - gz модуль PAM для SSSDsssd_krb5_locator_plugin- 8 8 1706198158 A - - gz Додаток локатора Kerberos$mtime$1706768526ca/CACHEDIR.TAG000064400000000276147207411410006634 0ustar00Signature: 8a477f597d28d172789f06886806bc55 # This file is a cache directory tag created by man-db. # For information about cache directory tags, see: # http://www.brynosaurus.com/cachedir/ ca/index.db000064400000040000147207411410006540 0ustar00ϚW @ \0sU$ver0 e_=pam_01Cr$mtiI0 $version$2.4.1pam_sss- 8 8 1706198157 A - - gz Mòdul de PAM per SSSD$mtime$1706768526index.db000064400011270000147207411410006164 0ustar00ϚW p%    0000    0000    pppp````pppp    0000    p p p p                 0000@@@@````pppp````pppp        0000PPPP````@@@@PPPP        @@@@PPPP0000@@@@PPPP````PPPP````p p p p !!!!!!!! " " " "0"0"0"0""""""""" # # # #0#0#0#0#########@$@$@$@$P$P$P$P$$$$$$$$$0%0%0%0%@%@%@%@%xcb_glx_get_booleanv_unchecked- 3 3 1540917640 B - - gz whois.jwhois- 1 1 1568791604 B - - gz client for the whois servicenet::pingNet::Ping 3pm 3 1698237676 A - - gz check a remote host for reachabilityxcb_list_properties_reply- 3 3 1540917640 B - - gz xcb_xkb_list_components_types_iterator- 3 3 1540917640 B - - gz select 2- 2 2 1402354205 A - - gz synchronous I/O multiplexingxcb_dri2_get_param_reply- 3 3 1540917640 B - - gz dbd::gofer::transport::nullDBD::Gofer::Transport::null 3pm 3 1402362413 A - - gz DBD::Gofer client transport for testingfflush_unlocked- 3 3 1402354209 B - - gz nonlocking stdio functionslwres_noopresponse_free- 3 3 1725373371 B - - gz lightweight resolver no-op message handlinggit-cherry- 1 1 1722330783 A - - gz Find commits not merged upstreamposix_trace_attr_getstreamfullpolicy- 3p 3p 1402354217 B - - gz retrieve and set the behavior of a trace stream (TRACING)callrpc- 3 3 1402354207 B - - gz library routines for remote procedure callsxkbsetdetectableautorepeatXkbSetDetectableAutoRepeat 3 3 1710950785 A - - gz Sets DetectableAutoRepeatstrtoul strtoul 3 strtoul 3pdatetime::locale::tig_erDateTime::Locale::tig_ER 3pm 3 1402390632 A - - gz bn_mont_ctx_copyBN_MONT_CTX_copy 3ssl 3 1721417624 B - - gz Montgomery multiplicationsysv_signal- 3 3 1402354212 A - - gz signal handling with System V semanticshas_colors_sp- 3x 3 1720626759 B - - gz curses screen-pointer extension__fbufsize- 3 3 1402354207 B - - gz interfaces to stdio FILE structurepam_authenticate- 3 3 1585713595 A - - gz account authenticationgit-commit-tree- 1 1 1722330781 A - - gz Create a new commit objectsar- 1 1 1697208922 A - - gz Collect, report, or save system activity information.datetime::locale::ca_esDateTime::Locale::ca_ES 3pm 3 1402390632 A - - gz ping- 8 8 1533764364 A - - gz send ICMP ECHO_REQUEST to network hoststcl_fsgettranslatedstringpathTcl_FSGetTranslatedStringPath 3 3 1448008822 B - - gz procedures to interact with any filesystemypdomainname- 1 1 1573511276 B - - gz show or set the system's NIS/YP domain namepthread_rwlock_init- 3p 3p 1402354217 A - - gz destroy and initialize a read-write lock objectmenu_hook- 3x 3 1720626759 A - - gz set hooks for automatic invocation by applicationswnoutrefresh- 3x 3 1720626759 B - - gz refresh curses windows and linespod::pom::node::sequencePod::POM::Node::Sequence 3pm 3 1402385888 A - - gz git-remote- 1 1 1722330782 A - - gz manage set of tracked repositoriesec_point_invertEC_POINT_invert 3ssl 3 1721417624 B - - gz Functions for performing mathematical operations and tests on EC_POINT objects.console_codes- 4 4 1402354219 A - t gz Linux console escape and control sequencesncursesw5-config- 1 1 1715932335 A - - gz helper script for ncurses librariesremainderl 3- 3 3 1402354211 B - - gz floating-point remainder functionwadd_wchstr- 3x 3 1720626759 B - - gz add an array of complex characters (and attributes) to a curses windowselinux_binary_policy_path- 3 3 1585710994 A - - gz These functions return the paths to the active SELinux policy configuration directories and filestrace 3x- 3x 3 1720626759 B - - gz curses debugging routinesdatetime::locale::hy_am_revisedDateTime::Locale::hy_AM_REVISED 3pm 3 1402390642 A - - gz crontab 1p- 1p 1p 1402354203 A - - gz schedule periodic background worktroff- 1 1 1533764324 A - t gz the troff processor of the groff text formatting systemllabs 3p- 3p 3p 1402354216 B - - gz return a long integer absolute valuetcl_asyncdeleteTcl_AsyncDelete 3 3 1448008821 B - - gz handle asynchronous eventsscalbln 3- 3 3 1402354212 A - - gz multiply floating-point number by integral power of radixpem_write_dsaparamsPEM_write_DSAparams 3ssl 3 1721417624 B - - gz PEM routinesdsaparams_print_fpDSAparams_print_fp 3ssl 3 1721417624 B - - gz print cryptographic parametersxcb_xevie_query_version- 3 3 1540917640 A - - gz yum-debug-dump- 1 1 1589300860 A - - gz write system RPM configuration to a debug-dump fileilogbl ilogbl 3 ilogbl 3pmbrtowc mbrtowc 3 mbrtowc 3p_0 3xkbsetdeviceinfoXkbSetDeviceInfo 3 3 1710950785 A - - gz Modify some or all of the characteristics of an X Input Extension devicespu_create- 2 2 1402354206 A - - gz create a new spu contexteuca-describe-network-interface-attribute- 1 1 1484780705 A - - gz Show an attribute of a VPC network interfacextcallactionprocXtCallActionProc 3 3 1501646833 A - - gz invoke an action procedure directlyfdim fdim 3 fdim 3ppthread_attr_getschedparam 3- 3 3 1402354211 B - - gz set/get scheduling parameter attributes in thread attributes objectprintf printf 3 printf 1p printf 1 printf 3pxtownselectionincrementalXtOwnSelectionIncremental 3 3 1501646833 B - - gz set selection ownerbn_bn2mpiBN_bn2mpi 3ssl 3 1721417624 B - - gz format conversionsxkbaddgeomoverlayXkbAddGeomOverlay 3 3 1710950785 A - - gz Add one overlay to a sectionid id 1p id 1tuned-profiles- 7 7 1553206246 A - - gz description of basic tuned profilesdiagnostics diagnostics 3pm diagnostics 1xcb_glx_are_textures_resident- 3 3 1540917640 A - - gz xcb_xv_put_image_checked- 3 3 1540917640 B - - gz tigetflag_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionuname 1- 1 1 1605565487 A - - gz print system informationattribute::params::validateAttribute::Params::Validate 3pm 3 1402359997 A - - gz Define validation through subroutine attributesdatetime::locale::af_zaDateTime::Locale::af_ZA 3pm 3 1402390642 A - - gz connmark- 8 8 1601484048 C tc-connmark - gz datetime::locale::kpe_lrDateTime::Locale::kpe_LR 3pm 3 1402390637 A - - gz getservent 3- 3 3 1402354212 A - - gz get service entrylocal::lib~[pt_br]- 3pm 3 1501962388 C POD2::PT_BR::local::lib - gz extutils::mmExtUtils::MM 3pm 3 1402365499 A - - gz OS adjusted ExtUtils::MakeMaker subclasscp1251- 7 7 1402354219 A - t gz CP 1251 character set encoded in octal, decimal, and hexadecimald2i_autoprivatekeyd2i_AutoPrivateKey 3ssl 3 1721417624 B - - gz decode and encode functions for reading and saving EVP_PKEY structures.perl586delta- 1 1 1698237663 A - - gz what is new for perl v5.8.6system 3p- 3p 3p 1402354218 A - - gz issue a commandxmbdrawtextXmbDrawText 3 3 1710950786 A - - gz draw text using multiple font setsauto_mkindex_old- n n 1448008823 B - - gz standard library of Tcl proceduresbn_bn2decBN_bn2dec 3ssl 3 1721417624 B - - gz format conversionsmalloc_stats- 3 3 1402354210 A - - gz print memory allocation statisticsgetpgid getpgid 2 getpgid 3pfcpatternequalsubsetFcPatternEqualSubset 3 3 1520307172 A - - gz Compare portions of patternspcre16_fullinfo- 3 3 1573510868 B - - gz Perl-compatible regular expressionsRIPEMD160 3ssl- 3ssl 3 1721417624 B - - gz RIPEMD-160 hash functiondatetime::locale::ar_syDateTime::Locale::ar_SY 3pm 3 1402390642 A - - gz euca-describe-vpcs- 1 1 1484780705 A - - gz Show information about VPCsfree_menu- 3x 3 1720626759 B - - gz create and destroy menusfegetexceptflag fegetexceptflag 3 fegetexceptflag 3pssl_ctx_sess_get_cache_sizeSSL_CTX_sess_get_cache_size 3ssl 3 1699892219 A - - gz manipulate session cache sizexcb_composite_name_window_pixmap- 3 3 1540917640 A - - gz setpci- 8 8 1523415040 A - - gz configure PCI devicesxcb_xkb_get_indicator_map_maps_length- 3 3 1540917640 B - - gz rpc.rquotad- 8 8 1565318038 A - - gz remote quota serverxcb_xfixes_get_cursor_image_and_name_name_length- 3 3 1540917640 B - - gz ui_add_info_stringUI_add_info_string 3ssl 3 1721417624 B - - gz New User Interfacesetup 1- 1 1 1402354168 A - - gz A text mode system configuration toolglobfree 3- 3 3 1402354210 B - - gz find pathnames matching a pattern, free memory from glob()remquof 3- 3 3 1402354211 B - - gz remainder and part of quotientswapon swapon 8 swapon 2pthread_sigqueue- 3 3 1402354211 A - - gz queue a signal and data to a threadcasinh 3- 3 3 1402354207 A - - gz complex arc sine hyperbolicpthread_cond_broadcast- 3p 3p 1402354217 B - - gz broadcast or signal a conditionbio_set_conn_ipBIO_set_conn_ip 3ssl 3 1721417624 B - - gz connect BIOxcb_record_register_clients_checked- 3 3 1540917640 B - - gz ruby- 1 1 1404704963 A - - gz Interpreted object-oriented scripting languagedatetime::locale::hr_hrDateTime::Locale::hr_HR 3pm 3 1402390634 A - - gz xkbinitcanonicalkeytypesXkbInitCanonicalKeyTypes 3 3 1710950785 A - - gz Set the definitions of the canonical key types in a client map to their default valueslsetfilecon_raw- 3 3 1585710994 B - - gz set SELinux security context of a filexcb_xfixes_query_version_reply- 3 3 1540917640 B - - gz xdr_wrapstring- 3 3 1402354213 B - - gz library routines for external data representationlh_node_stats_bio- 3ssl 3 1721417624 B - - gz LHASH statisticsdbd::gofer::policy::baseDBD::Gofer::Policy::Base 3pm 3 1402362412 A - - gz Base class for DBD::Gofer policiesxkballocservermapXkbAllocServerMap 3 3 1710950785 A - t gz Allocate and initialize an empty server map description recorddatetime::locale::zh_hansDateTime::Locale::zh_Hans 3pm 3 1402390634 A - - gz extutils::manifestExtUtils::Manifest 3pm 3 1402374602 A - - gz utilities to write and check a MANIFEST filemcookie- 1 1 1612283497 A - - gz generate magic cookies for xauthab- 1 1 1539198690 A - - gz Apache HTTP server benchmarking tooltiffreadtileTIFFReadTile 3tiff 3 1729525165 A - - gz read and decode a tile of data from an open TIFF filelogin 1- 1 1 1612283497 A - - gz begin session on the systemxkbkeygroupwidthXkbKeyGroupWidth 3 3 1710950785 A - - gz Computes the width of the type associated with the group grp for the key corresponding to keycodedate 1p- 1p 1p 1402354203 A - - gz write the date and timepoll 3p- 3p 3p 1402354216 A - - gz input/output multiplexingsha256_finalSHA256_Final 3ssl 3 1721417624 B - - gz Secure Hash Algorithmfree 1- 1 1 1601486472 A - - gz Display amount of free and used memory in the systemrename 3p- 3p 3p 1402354218 A - - gz rename a filecacos 3- 3 3 1402354207 A - - gz complex arc cosinedatetime::locale::fr_caDateTime::Locale::fr_CA 3pm 3 1402390633 A - - gz isblank isblank 3 isblank 3pclass::singletonClass::Singleton 3pm 3 1402347796 A - - gz Implementation of a "Singleton" classxcb_colormap_notify_event_t- 3 3 1540917640 A - - gz the colormap for some window changedrewind 3p- 3p 3p 1402354218 A - - gz reset the file position indicator in a streamlocale locale 3pm locale 7 locale 1p locale 5mallinfo- 3 3 1402354210 A - - gz obtain memory allocation informationcosl cosl 3 cosl 3pstdin 3- 3 3 1402354212 A - - gz standard I/O streamsxcb_randr_get_crtc_gamma_green_length- 3 3 1540917640 B - - gz ureport.conf- 5 5 1585834715 A - - gz configuration file for libreport.chgrp 1p- 1p 1p 1402354203 A - - gz change the file group ownershipgetkeycreatecon_raw- 3 3 1585710994 B - - gz get or set the SELinux security context used for creating a new kernel keyringsmenu_items- 3x 3 1720626759 A - - gz make and break connections between items and menusform_variables- 3x 3 1715932339 A - - gz form system global variablesread n- n n 1448008823 A - - gz Read from a channeldbi::dbd::sqlengine::howtoDBI::DBD::SqlEngine::HowTo 3pm 3 1402362412 A - - gz Guide to create DBI::DBD::SqlEngine based driverfile 1p- 1p 1p 1402354203 A - t gz determine file typeevp_cipher_block_sizeEVP_CIPHER_block_size 3ssl 3 1721417624 B - - gz EVP cipher routinestcl_createencodingTcl_CreateEncoding 3 3 1448008821 A - - gz procedures for creating and using encodingsxcb_input_xi_get_property_unchecked- 3 3 1540917640 B - - gz capsh- 1 1 1699264317 A - - gz capability shell wrapperxcb_glx_get_separable_filter_rows_and_cols_end- 3 3 1540917640 B - - gz ec_group_have_precompute_multEC_GROUP_have_precompute_mult 3ssl 3 1721417624 B - - gz Functions for performing mathematical operations and tests on EC_POINT objects.ram- 4 4 1402354219 A - - gz ram disk devicexcb_x_print_print_get_context_unchecked- 3 3 1540917640 B - - gz datetime::locale::wo_latn_snDateTime::Locale::wo_Latn_SN 3pm 3 1402390643 A - - gz keyctl_instantiate- 3 3 1573510998 A - - gz Instantiate a key from flat datattk::frame- n n 1448008912 A - - gz Simple container widgethosts.equiv- 5 5 1402354219 A - - gz list of hosts and users that are granted "trusted" r command access to your systemtcl_setresultTcl_SetResult 3 3 1448008822 B - - gz manipulate Tcl resultxcb_rotate_properties_checked- 3 3 1540917640 B - - gz pthread.h- 0p 0p 1402354203 A - - gz threadsxcb_glx_get_materialfv_unchecked- 3 3 1540917640 B - - gz mkfifo 1- 1 1 1605565487 A - - gz make FIFOs (named pipes)wcsspn 3- 3 3 1402354213 A - - gz advance in a wide-character string, skipping any of a set of wide characterseuare-usercreatecert- 1 1 1484780705 A - - gz [Eucalyptus only] Create a new signing certificateasn1_time_adjASN1_TIME_adj 3ssl 3 1721417624 B - - gz ASN.1 Time functions.m4 1- 1 1 1299001006 A - - gz macro processormsgexec- 1 1 1465650365 A - - gz process translations of message catalogtar.h- 0p 0p 1402354203 A - t gz extended tar definitionsisprint isprint 3 isprint 3pprocmailsc- 5 5 1511905870 A - - gz procmail weighted scoring techniqueacos acos 3 acos 3pxcb_xvmc_list_surface_types- 3 3 1540917640 A - - gz sslrand 1ssl- 1ssl 1 1699892201 A - - gz generate pseudo-random bytesset_fieldtype_choice- 3x 3 1720626759 B - - gz define validation-field typesctanhf ctanhf 3 ctanhf 3psemanage-login- 8 8 1585713889 A - - gz SELinux Policy Management linux user to SELinux User mapping toolislessgreater 3p- 3p 3p 1402354216 A - - gz test if x is less than or greater than yaio_return 3- 3 3 1402354207 A - - gz get return status of asynchronous I/O operationxcb_render_query_filters- 3 3 1540917640 A - - gz posix_trace_attr_getclockres- 3p 3p 1402354217 B - - gz retrieve and set information about a trace stream (TRACING)xcb_randr_screen_change_notify_event_t- 3 3 1540917640 A - - gz slk_set- 3x 3 1720626759 B - - gz curses soft label routinesgcov- 1 1 1601432236 A - - gz coverage testing toolpod::perldoc::getoptsooPod::Perldoc::GetOptsOO 3pm 3 1402388268 A - - gz Customized option parser for Pod::Perldocssl_ctx_get_read_aheadSSL_CTX_get_read_ahead 3ssl 3 1721417624 B - - gz manage whether to read as many input bytes as possiblexcb_randr_get_screen_resources_names- 3 3 1540917640 B - - gz euca2ools- 7 7 1484780705 A - - gz eucalyptus command line client toolstcl_regexpgetinfoTcl_RegExpGetInfo 3 3 1448008822 B - - gz Pattern matching with regular expressionssg_rdac- 8 8 1585715378 A - - gz display or modify SCSI RDAC Redundant Controller mode pagexml::libxml::commonXML::LibXML::Common 3pm 3 1402352994 A - - gz Constants and Character Encoding Routinesterm_attrs_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionxcb_render_composite_glyphs_8_checked- 3 3 1540917640 B - - gz errno 3- 3 3 1402354208 A - - gz number of last errorfcnamegetobjecttypeFcNameGetObjectType 3 3 1520307172 A - - gz Lookup an object typecurs_instr- 3x 3 1715932338 A - - gz get a string of characters from a curses windowtiffwritedencodedtileTIFFWritedEncodedTile 3tiff 3 1729525165 C TIFFWriteEncodedTile - gz font- n n 1448008912 A - - gz Create and inspect fonts.evp_digestverifyfinalEVP_DigestVerifyFinal 3ssl 3 1721417624 B - - gz EVP signature verification functionsevp_cipher_ctx_set_app_dataEVP_CIPHER_CTX_set_app_data 3ssl 3 1721417624 B - - gz EVP cipher routinesxsyncXSync 3 3 1710950786 B - - gz handle output buffer or event queuexcb_xvmc_create_context_priv_data_length- 3 3 1540917640 B - - gz datetime::locale::lvDateTime::Locale::lv 3pm 3 1402390637 A - - gz xcb_glx_get_minmax_reply- 3 3 1540917640 B - - gz datetime::locale::so_keDateTime::Locale::so_KE 3pm 3 1402390636 A - - gz net::smtpNet::SMTP 3pm 3 1698237676 A - - gz Simple Mail Transfer Protocol Clientcrl2pkcs7- 1ssl 1 1699892199 A - - gz Create a PKCS#7 structure from a CRL and certificates.Wget 1- 1 1 1723717335 C wget - gz euca-create-vpn-gateway- 1 1 1484780705 A - - gz Create a virtual private gatewayllroundf 3p- 3p 3p 1402354216 B - - gz round to nearest integer valuexcb_randr_query_provider_property_reply- 3 3 1540917640 B - - gz d2i_rsapublickeyd2i_RSAPublicKey 3ssl 3 1721417624 A - - gz RSA public and private key encoding functions.xcb_glx_get_clip_plane- 3 3 1540917640 A - - gz unctrl- 3x 3 1720626759 B - - gz miscellaneous curses utility routineseuscale-delete-tags- 1 1 1484780705 A - - gz Delete one or more resource tagstest::hackingTest::HACKING 3pm 3 1439389327 A - - gz contributing to TAP::Harnessfdimf 3- 3 3 1402354209 B - - gz positive differencebf_cbc_encryptBF_cbc_encrypt 3ssl 3 1721417624 B - - gz Blowfish encryptionexeclp 3- 3 3 1402354208 B - - gz execute a filetc-hfsc 8- 8 8 1601484048 A - - gz Hierarchical Fair Service Curve's control under linuxxcb_xf86dri_open_connection- 3 3 1540917640 A - - gz pthread_mutex_trylock- 3p 3p 1402354217 B - - gz lock and unlock a mutexpthreads- 7 7 1402354220 A - - gz POSIX threadstcl_setvarTcl_SetVar 3 3 1448008822 B - - gz manipulate Tcl variablesxcb_dri3_get_supported_modifiers_reply- 3 3 1540917640 B - - gz fpathconf 3p- 3p 3p 1402354216 A - - gz get configurable pathname variablesrsa_padding_check_pkcs1_type_1RSA_padding_check_PKCS1_type_1 3ssl 3 1721417624 B - - gz asymmetric encryption paddingstrtoll strtoll 3 strtoll 3pwcsncmp 3p- 3p 3p 1402354219 A - - gz compare part of two wide-character stringsvgrename- 8 8 1619616701 A - - gz Rename a volume groupxprocessinternalconnectionXProcessInternalConnection 3 3 1710950786 B - - gz handle Xlib internal connectionsec_point_set_to_infinityEC_POINT_set_to_infinity 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_POINT objects.datetime::locale::es_paDateTime::Locale::es_PA 3pm 3 1402390641 A - - gz pthread_mutex_destroy- 3p 3p 1402354217 B - - gz destroy and initialize a mutexcpanplus::module::authorCPANPLUS::Module::Author 3pm 3 1402392266 A - - gz CPAN author object for CPANPLUSumount umount 8 umount 2updwtmp- 3 3 1402354213 A - - gz append an entry to the wtmp filedatetime::locale::bsDateTime::Locale::bs 3pm 3 1402390633 A - - gz lwres_gabn- 3 3 1725373371 A - - gz lightweight resolver getaddrbyname message handlingrsa_set_default_methodRSA_set_default_method 3ssl 3 1721417624 B - - gz select RSA methodxcmscreatecccXcmsCreateCCC 3 3 1710950786 A - - gz creating and destroying CCCssigwaitinfo 2- 2 2 1402354206 A - - gz synchronously wait for queued signalsgvimdiff- 1 1 1720542354 B - - gz edit two, three or four versions of a file with Vim and show differencesiso_8859_1- 7 7 1402354220 B - t gz ISO 8859-1 character set encoded in octal, decimal, and hexadecimalvfscanf 3p- 3p 3p 1402354219 B - - gz format input of a stdarg argument listreaddir readdir 3 readdir 2 readdir 3paccess access 2 access 3pinwstr- 3x 3 1720626759 B - - gz get a string of wchar_t characters from a curses windowkey_name- 3x 3 1720626759 B - - gz miscellaneous curses utility routinesssl_select_next_protoSSL_select_next_proto 3ssl 3 1721417624 B - - gz handle application layer protocol negotiation (ALPN)xrmstringtoquarkXrmStringToQuark 3 3 1710950786 B - t gz manipulate resource quarksxcb_randr_destroy_mode- 3 3 1540917640 A - - gz xcb_dri2_buffer_swap_complete_event_t- 3 3 1540917640 A - - gz getutxid 3- 3 3 1402354210 B - - gz access utmp file entriesbio_get_read_requestBIO_get_read_request 3ssl 3 1721417624 B - - gz BIO pair BIOselinux_removable_context_path- 3 3 1585710994 B - - gz These functions return the paths to the active SELinux policy configuration directories and filesobjcmdwriteObjCmdWrite 3 3 922862262 A - - gz Writing C language extensions to Tcl.remquol 3p- 3p 3p 1402354218 B - - gz remainder functionsshmget 2- 2 2 1402354206 A - - gz allocates a System V shared memory segmentpkcs7- 1ssl 1 1699892201 A - - gz PKCS#7 utilityxcb_render_create_radial_gradient- 3 3 1540917640 A - - gz menu_requestname- 3x 3 1720626759 A - - gz handle printable menu request namescimagl 3p- 3p 3p 1402354214 B - - gz complex imaginary functionsxml::libxml::piXML::LibXML::PI 3pm 3 1402352994 A - - gz XML::LibXML Processing Instructionsdigest::baseDigest::base 3pm 3 1402391631 A - - gz Digest base classecho 3x- 3x 3 1720626759 B - - gz curses input optionsprocmail- 1 1 1511905870 A - - gz autonomous mail processoratanh 3p- 3p 3p 1402354214 A - - gz inverse hyperbolic tangent functionsfloorl floorl 3 floorl 3pdbi::gofer::transport::pipeoneDBI::Gofer::Transport::pipeone 3pm 3 1402362412 A - - gz DBD::Gofer server-side transport for pipeonelogbf logbf 3 logbf 3pitem_term- 3x 3 1720626759 B - - gz set hooks for automatic invocation by applicationsxtremoveraweventhandlerXtRemoveRawEventHandler 3 3 1501646833 B - - gz add and remove event handlerstext::unidecodeText::Unidecode 3pm 3 1402360870 A - - gz - US-ASCII transliterations of Unicode textposix_trace_close- 3p 3p 1402354217 B - t gz trace log management (TRACING)xcb_list_properties_atoms_end- 3 3 1540917640 B - - gz setcontext 2- 2 2 1402354205 B - - gz get or set the user contextgethostbyaddr_r- 3 3 1402354209 B - - gz get network host entrypam.d- 5 5 1585713595 B - - gz PAM configuration filesevp_cleanupEVP_cleanup 3ssl 3 1721417624 B - - gz add algorithms to internal tabletar 5- 5 5 1580221477 A - - gz format of tape archive filesxcb_input_set_device_mode- 3 3 1540917640 A - - gz time::secondsTime::Seconds 3pm 3 1698237678 A - - gz a simple API to convert seconds to other date valuesinet_ntop 3- 3 3 1402354210 A - - gz convert IPv4 and IPv6 addresses from binary to text formxkbchangecontrolsXkbChangeControls 3 3 1710950785 A - t gz Provides a flexible method for updating the controls in a server to match those in the changed keyboard descriptionsystemd-nspawn- 1 1 1711457787 A - t gz Spawn a namespace container for debugging, testing and buildingsigevent- 7 7 1402354220 A - - gz structure for notification from asynchronous routinesbn_zeroBN_zero 3ssl 3 1721417624 A - - gz BIGNUM assignment operationsconcat- n n 1448008823 A - - gz Join lists togetherarchive::tar::fileArchive::Tar::File 3pm 3 1565315036 A - - gz a subclass for in-memory extracted file from Archive::Tarxcb_glx_render_mode_data_length- 3 3 1540917640 B - - gz tcl_setwideintobjTcl_SetWideIntObj 3 3 1448008822 B - - gz manipulate Tcl objects as integer valuespthread_setschedprio pthread_setschedprio 3 pthread_setschedprio 3pxcb_x_print_print_get_attributes_attributes_end- 3 3 1540917640 B - - gz xml::sax::introXML::SAX::Intro 3pm 3 1402345097 A - - gz An Introduction to SAX Parsing with Perlttk::panedwindow- n n 1448008912 A - - gz Multi-pane container windowsiginterrupt siginterrupt 3 siginterrupt 3pxfetchbufferXFetchBuffer 3 3 1710950786 B - - gz manipulate cut and paste buffersxcb_randr_set_crtc_transform- 3 3 1540917640 A - - gz datetime::locale::mk_mkDateTime::Locale::mk_MK 3pm 3 1402390635 A - - gz boolnames- 3x 3 1720626759 B - - gz curses terminfo global variableseuca-create-network-acl- 1 1 1484780705 A - - gz Create a new VPC network ACLstdint.h- 0p 0p 1402354203 A - - gz integer typesxcb_randr_notify_event_t- 3 3 1540917640 A - - gz mbrtowc 3- 3 3 1402354211 A - - gz convert a multibyte sequence to a wide characterreposync- 1 1 1589300860 A - - gz synchronize yum repositories to a local directorydd 1p- 1p 1p 1402354203 A - - gz convert and copy a filefdatasync 2- 2 2 1402354204 B - - gz synchronize a file's in-core state with storage deviceipcmk- 1 1 1612283497 A - - gz create various ipc resourcesxmbufcreatebuffersXmbufCreateBuffers 3 3 1448003986 B - - gz X multibuffering functionstest Test 3pm test 1p test 1xcb_randr_set_crtc_config- 3 3 1540917640 A - - gz sftp-server- 8 8 1707907012 A - - gz SFTP server subsystemxcb_randr_get_output_property- 3 3 1540917640 A - - gz xcmsconvertcolorsXcmsConvertColors 3 3 1710950786 A - - gz convert CCC color specificationsqhold- 1p 1p 1402354204 A - - gz hold batch jobswechochar- 3x 3 1720626759 B - - gz add a character (with attributes) to a curses window, then advance the cursorlh_node_usage_stats- 3ssl 3 1721417624 B - - gz LHASH statisticsxdr_setpos- 3 3 1402354213 B - - gz library routines for external data representationgit-receive-pack- 1 1 1722330781 A - - gz Receive what is pushed into the repositoryk5login- 5 5 1726771586 A - - gz Kerberos V5 acl file for host accesslrepeat- n n 1448008823 A - - gz Build a list by repeating elementstermios.h- 0p 0p 1402354203 A - t gz define values for termiosprintf 1- 1 1 1605565487 A - - gz format and print datasetpriority setpriority 2 setpriority 3p!tcl_deletecommandfromtokenTcl_DeleteCommandFromToken 3 3 1448008821 B - - gz implement new commands in Cec_point_set_affine_coordinates_gfpEC_POINT_set_affine_coordinates_GFp 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_POINT objects.tcl_setassocdataTcl_SetAssocData 3 3 1448008821 B - - gz manage associations of string keys and user specified data with Tcl interpretersxcb_dri2_connect_driver_name_end- 3 3 1540917640 B - - gz xcb_input_set_device_valuators_reply- 3 3 1540917640 B - - gz wctype.h- 0p 0p 1402354203 A - - gz wide-character classification and mapping utilitiesiswpunct 3p- 3p 3p 1402354216 A - - gz test for a punctuation wide-character codetowupper 3- 3 3 1402354213 A - - gz convert a wide character to uppercaseeuca-describe-volumes- 1 1 1484780705 A - - gz Display information about volumesxsetcommandXSetCommand 3 3 1710950786 A - - gz set or read a window's WM_COMMAND propertymkdir 3p- 3p 3p 1402354216 A - - gz make a directoryfield_fore- 3x 3 1720626759 B - - gz color and attribute control for form fieldsgit-peek-remote- 1 1 1722330783 A - - gz List the references in a remote repositoryabort 3- 3 3 1402354207 A - - gz cause abnormal process terminationxtchangemanagedsetXtChangeManagedSet 3 3 1501646833 B - - gz manage and unmanage childrenlocale::codes::langvarLocale::Codes::LangVar 3pm 3 1402383323 A - - gz standard codes for language variation identificationconfig_data- 1 1 1402373049 A - - gz Query or change configuration of Perl modulesSELinux 8- 8 8 1585710994 C selinux - gz systemd-tmpfiles- 8 8 1711457788 A - - gz Creates, deletes and cleans up volatile and temporary files and directoriesxcb_xevie_send_unchecked- 3 3 1540917640 B - - gz xdr_short- 3 3 1402354213 B - - gz library routines for external data representationcurs_terminfo- 3x 3 1715932338 A - - gz curses interfaces to terminfo databasefccharsetaddcharFcCharSetAddChar 3 3 1520307172 A - - gz Add a character to a charsetxcb_xvmc_create_subpicture- 3 3 1540917640 A - - gz MD4 3ssl- 3ssl 3 1721417624 B - - gz MD2, MD4, and MD5 hash functionscms_get0_econtenttypeCMS_get0_eContentType 3ssl 3 1721417624 B - - gz get and set CMS content types and contenteuare-usergetloginprofile- 1 1 1484780705 A - - gz Verify that a user has a passwordopen 1- 1 1 1638560024 B - - gz start a program on a new virtual terminal (VT).ec ec 3ssl ec 1sslsrandom 3p- 3p 3p 1402354218 B - - gz pseudo-random number functionsif_nameindex 3p- 3p 3p 1402354216 A - - gz return all network interface names and indexessched_yield sched_yield 2 sched_yield 3pcracklib-check- 8 8 1337469855 A - - gz Check passwords using libcrack2fgets 3p- 3p 3p 1402354215 A - - gz get a string from a streamx509_name_print_ex_fpX509_NAME_print_ex_fp 3ssl 3 1721417624 B - - gz X509_NAME printing routines.pthread_getconcurrency pthread_getconcurrency 3 pthread_getconcurrency 3pxtdatabaseXtDatabase 3 3 1501646833 B - - gz initialize, open, or close a displaycbrtf 3- 3 3 1402354207 B - - gz cube root functionupdatedb- 8 8 1523418406 A - - gz update a database for mlocatepod::text::overstrikePod::Text::Overstrike 3pm 3 1402343774 A - - gz Convert POD data to formatted overstrike textgstack- 1 1 1605296016 A - - gz print a stack trace of a running processpthread_spin_init- 3p 3p 1402354217 A - - gz destroy or initialize a spin lock object (ADVANCED REALTIME THREADS)file::slurpFile::Slurp 3pm 3 1402392530 A - - gz Simple and Efficient Reading/Writing/Modifying of Complete Filesislower islower 3 islower 3plog::message::configLog::Message::Config 3pm 3 1402343798 A - - gz Configuration options for Log::Messagefd_isset FD_ISSET 3 FD_ISSET 2 FD_ISSET 3plocale 3pm- 3pm 3 1698237678 A - - gz Perl pragma to use or avoid POSIX locales for built-in operationsdatetime::locale::nds_deDateTime::Locale::nds_DE 3pm 3 1402390638 A - - gz dsa_printDSA_print 3ssl 3 1721417624 B - - gz print cryptographic parametersxcb_glx_read_pixels_unchecked- 3 3 1540917640 B - - gz xcb_render_create_linear_gradient- 3 3 1540917640 A - - gz mailaddr- 7 7 1402354220 A - - gz mail addressing descriptionputwchar putwchar 3 putwchar 3pkeypad- 3x 3 1720626759 B - - gz curses input optionspthread_mutexattr_setrobust- 3p 3p 1402354217 A - - gz get and set the mutex robust attributeinitstate 3- 3 3 1402354210 B - - gz random number generatormq_open 3p- 3p 3p 1402354216 A - - gz open a message queue (REALTIME)xcb_selinux_get_property_context_context- 3 3 1540917640 B - - gz nfs4_set_debug- 3 3 1523419630 C nfs4_uid_to_name - gz llabs 3- 3 3 1402354207 A - - gz compute the absolute value of an integertcl_resetresultTcl_ResetResult 3 3 1448008822 B - - gz manipulate Tcl resultxcb_glx_get_doublev_reply- 3 3 1540917640 B - - gz xcb_get_keyboard_mapping_keysyms- 3 3 1540917640 B - - gz xdr_accepted_reply- 3 3 1402354213 B - - gz library routines for remote procedure callsdoveadm-deduplicate- 1 1 1724195936 A - - gz expunge duplicate messagesip-l2tp- 8 8 1601484048 A - - gz L2TPv3 static unmanaged tunnel configurationfminl 3- 3 3 1402354209 B - - gz determine minimum of two floating-point numbersisspace 3p- 3p 3p 1402354216 A - - gz test for a white-space characterposix_spawnattr_getpgroup- 3p 3p 1402354217 A - - gz get and set the spawn-pgroup attribute of a spawn attributes object (ADVANCED REALTIME)ssl_set_cert_cbSSL_set_cert_cb 3ssl 3 1721417624 B - - gz handle certificate callback functionxdr_getpos- 3 3 1402354213 B - - gz library routines for external data representationeuca-delete-vpc- 1 1 1484780705 A - - gz Delete a VPCflex- 1 1 1573511011 A - - gz the fast lexical analyser generatorpatch 1p- 1p 1p 1402354204 A - - gz apply changes to filestgoto- 3x 3 1720626759 B - - gz direct curses interface to the terminfo capability databasedoveadm-purge- 1 1 1724195936 A - - gz Remove messages with refcount=0 from mdbox filesxtremovetimeoutXtRemoveTimeOut 3 3 1501646833 B - - gz register and remove timeoutsatanl atanl 3 atanl 3ptcftest- 1 1 1402385697 A - - gz test cases of the fixed-length database APIlogger 1- 1 1 1612283497 A - t gz a shell command interface to the syslog(3) system log moduleremque 3p- 3p 3p 1402354218 B - - gz insert or remove an element in a queuestringprep_ucs4_nfkc_normalize- 3 3 1448125246 A - - gz API functionmysql_plugin- 1 1 1697025034 A - - gz configure MySQL server pluginsxcmsquerycolorXcmsQueryColor 3 3 1710950786 A - - gz obtain color valuesfsck.msdos- 8 8 1573511351 B - - gz check and repair MS-DOS filesystemsdbi::gofer::transport::baseDBI::Gofer::Transport::Base 3pm 3 1402362411 A - - gz Base class for Gofer transportsxcb_xv_query_image_attributes_pitches_end- 3 3 1540917640 B - - gz fabs fabs 3 fabs 3pgit-gc- 1 1 1722330781 A - - gz Cleanup unnecessary files and optimize the local repositoryexpl 3p- 3p 3p 1402354215 B - - gz exponential functiontcl_channelthreadactionprocTcl_ChannelThreadActionProc 3 3 1448008821 B - - gz procedures for creating and manipulating channelsxcb_randr_select_input_checked- 3 3 1540917640 B - - gz test::harnessTest::Harness 3pm 3 1439389327 A - - gz Run Perl standard test scripts with statisticsxcb_glx_gen_textures_reply- 3 3 1540917640 B - - gz ssl_get_cipher_listSSL_get_cipher_list 3ssl 3 1721417624 B - - gz get list of available SSL_CIPHERssigignore 3- 3 3 1402354212 B - - gz System V signal APIcomm comm 1p comm 1xcb_dri3_query_version_unchecked- 3 3 1540917640 B - - gz raw_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensiondatetime::locale::aa_djDateTime::Locale::aa_DJ 3pm 3 1402390643 A - - gz fcutf8toucs4FcUtf8ToUcs4 3 3 1520307172 A - - gz convert UTF-8 to UCS4fgets 3- 3 3 1402354209 B - - gz input of characters and stringspthread_tryjoin_np- 3 3 1402354211 A - - gz try to join with a terminated threadxcb_create_notify_event_t- 3 3 1540917640 A - - gz htbHTB 8 8 1601484048 C tc-htb - gz ssl_comp_add_compression_methodSSL_COMP_add_compression_method 3ssl 3 1721417624 A - - gz handle SSL/TLS integrated compression methodssetjmp setjmp 3 setjmp 3plvm2-activation-generator- 8 8 1619616701 A - - gz generator for systemd units to activate LVM2 volumes on bootpam_mkhomedir- 8 8 1585713590 A - - gz PAM module to create users home directorydumpe2fs- 8 8 1711459141 A - - gz dump ext2/ext3/ext4 filesystem informationxcb_render_triangles- 3 3 1540917640 A - - gz xsettsoriginXSetTSOrigin 3 3 1710950786 B - - gz GC convenience routinescurses::ui::dialog::calendarCurses::UI::Dialog::Calendar 3pm 3 1454728582 A - - gz Create and manipulate calendar dialogsxcb_dri2_swap_buffers- 3 3 1540917640 A - - gz xcb_glx_is_enabled- 3 3 1540917640 A - - gz safebaseSafeBase n n 1448008823 A - - gz datetime::locale::en_sgDateTime::Locale::en_SG 3pm 3 1402390635 A - - gz ssl_ctx_use_certificate_chain_fileSSL_CTX_use_certificate_chain_file 3ssl 3 1721417624 B - - gz load certificate and key datapthread_barrier_wait- 3p 3p 1402354217 A - - gz synchronize at a barrier (ADVANCED REALTIME THREADS)dpmsinfoDPMSInfo 3 3 1448003986 A - - gz returns information about the current DPMS statexrmstringtobindingquarklistXrmStringToBindingQuarkList 3 3 1710950786 B - t gz manipulate resource quarksxcb_input_xi_list_properties_reply- 3 3 1540917640 B - - gz xcb_randr_get_panning- 3 3 1540917640 A - - gz getutline_r- 3 3 1402354209 B - - gz access utmp file entriessshd- 8 8 1707907012 A - - gz OpenSSH SSH daemonxcb_input_get_selected_extension_events_all_classes- 3 3 1540917640 B - - gz getipnodebyname- 3 3 1402354209 A - - gz get network hostnames and addressestcl_endofwordtcl_endOfWord n n 1448008823 B - - gz standard library of Tcl proceduresrename 1- 1 1 1612283497 A - - gz rename filespodchecker- 1 1 1402345719 A - - gz check the syntax of POD format documentation filestcl_createchannelTcl_CreateChannel 3 3 1448008821 B - - gz procedures for creating and manipulating channelsxfs_growfs- 8 8 1605296068 A - - gz expand an XFS filesystemxunionregionXUnionRegion 3 3 1710950786 B - - gz region arithmeticx509_name_get_index_by_nidX509_NAME_get_index_by_NID 3ssl 3 1721417624 A - - gz X509_NAME lookup and enumeration functionsgetspnam_r- 3 3 1402354209 B - - gz get shadow password file entryxcb_randr_list_provider_properties_unchecked- 3 3 1540917640 B - - gz uname 1p- 1p 1p 1402354204 A - - gz return system namelckpwdf- 3 3 1402354210 B - - gz get shadow password file entrygit-init- 1 1 1722330781 A - - gz Create an empty Git repository or reinitialize an existing onegetc_unlocked 3p- 3p 3p 1402354215 B - - gz stdio with explicit client lockingsqrtf 3- 3 3 1402354212 B - - gz square root functionbn_generate_primeBN_generate_prime 3ssl 3 1721417624 A - - gz generate primes and test for primalitybio_newBIO_new 3ssl 3 1721417624 A - - gz BIO allocation and freeing functionspam_error- 3 3 1585713595 A - - gz display error messages to the userxkbgetcompatmapXkbGetCompatMap 3 3 1710950785 A - t gz Fetch any combination of the current compatibility map components from the serverpam_cracklib- 8 8 1585713585 A - - gz PAM module to check the password against dictionary wordspure-pwconvert- 8 8 1730292103 A - - gz Generate a virtual users file from system accountsabrt-python.conf- 5 5 1601569733 A - - gz Configuration file for ABRT's python crash hooksecurity_get_boolean_pending- 3 3 1585710994 B - - gz routines for manipulating SELinux boolean valuesxcb_xkb_get_indicator_map_unchecked- 3 3 1540917640 B - - gz datetime::locale::walDateTime::Locale::wal 3pm 3 1402390640 A - - gz xcb_xfixes_change_cursor_checked- 3 3 1540917640 B - - gz xcb_map_request_event_t- 3 3 1540917640 A - - gz window wants to be mappedxcb_shape_get_rectangles_rectangles- 3 3 1540917640 B - - gz xcb_dri3_get_supported_modifiers_window_modifiers- 3 3 1540917640 B - - gz xcb_glx_get_convolution_parameterfv_data- 3 3 1540917640 B - - gz pathchk pathchk 1p pathchk 1fc-query- 1 1 1519011781 A - - gz query font filesxkbcomputeshapeboundsXkbComputeShapeBounds 3 3 1710950785 A - - gz Updates the bounding box of a shape Pstrncasecmp 3p- 3p 3p 1402354218 B - - gz case-insensitive string comparisonspthread_equal 3p- 3p 3p 1402354217 A - - gz compare thread IDsisblank 3- 3 3 1402354210 B - - gz character classification routinesxshmgeteventbaseXShmGetEventBase 3 3 1448003986 B - - gz X Shared Memory extension functionstcl_attemptallocTcl_AttemptAlloc 3 3 1448008821 B - - gz allocate or free heap memorycms_get1_receiptrequestCMS_get1_ReceiptRequest 3ssl 3 1721417624 A - - gz CMS signed receipt request functions.dhclient-script- 8 8 1718116541 A - - gz DHCP client network configuration scriptlexgrog- 1 1 1540931193 A - - gz parse header information in man pagesxcb_glx_get_query_objectuiv_arb_data_end- 3 3 1540917640 B - - gz ssl_ctx_get_ex_dataSSL_CTX_get_ex_data 3ssl 3 1721417624 B - - gz internal application specific data functionsxcb_glx_get_query_objectiv_arb- 3 3 1540917640 A - - gz scalbln scalbln 3 scalbln 3podbc_config- 1 1 1565320310 A - - gz get compile options for compiling unixODBC clientsleep 1- 1 1 1605565487 A - - gz delay for a specified amount of timetcl_setvar2Tcl_SetVar2 3 3 1448008822 B - - gz manipulate Tcl variablesps ps 1p ps 1x509_freeX509_free 3ssl 3 1699892214 A - - gz X509 certificate ASN1 allocation functionsset_fieldtype_arg- 3x 3 1720626759 B - - gz define validation-field typesextutils::mksymlistsExtUtils::Mksymlists 3pm 3 1402365499 A - - gz write linker options files for dynamic extensionlwres_gethostent_r- 3 3 1725373371 B - - gz lightweight resolver get network host entryui_opensslUI_OpenSSL 3ssl 3 1721417624 B - - gz New User InterfacexrmsetdatabaseXrmSetDatabase 3 3 1710950786 B - - gz retrieve and store resource databasesxcb_shm_create_segment_reply- 3 3 1540917640 B - - gz posix_trace_attr_getname- 3p 3p 1402354217 A - - gz retrieve and set information about a trace stream (TRACING)tcl_utftoexternalTcl_UtfToExternal 3 3 1448008821 B - - gz procedures for creating and using encodingsxcb_input_xi_query_device_infos_length- 3 3 1540917640 B - - gz setitimer 3p- 3p 3p 1402354218 B - - gz get and set value of interval timerbio_set_callback_argBIO_set_callback_arg 3ssl 3 1721417624 B - - gz BIO callback functionsremainder 3- 3 3 1402354211 A - - gz floating-point remainder functionfwide 3p- 3p 3p 1402354215 A - - gz set stream orientationeuform-create-stack- 1 1 1484780705 A - - gz Create a new stackoptopt optopt 3 optopt 3pioctl ioctl 2 ioctl 3pctermid 3p- 3p 3p 1402354214 A - - gz generate a pathname for the controlling terminalxcb_x_print_print_get_image_resolution_reply- 3 3 1540917640 B - - gz xcb_xkb_use_extension_unchecked- 3 3 1540917640 B - - gz xmodifierkeymapXModifierKeymap 3 3 1710950785 B - - gz manipulate keyboard encoding and keyboard encoding structureiswalpha 3- 3 3 1402354210 A - - gz test for alphabetic wide characterpackage::deprecationmanagerPackage::DeprecationManager 3pm 3 1402350481 A - - gz Manage deprecation warnings for your distributionio::socketIO::Socket 3pm 3 1698237674 A - - gz Object interface to socket communicationspam_get_authtok_noverify- 3 3 1585713595 B - - gz get authentication tokenxcb_input_xi_get_selected_events_unchecked- 3 3 1540917640 B - - gz xequalregionXEqualRegion 3 3 1710950786 B - - gz determine if regions are empty or equalisprint 3- 3 3 1402354210 B - - gz character classification routinesmincore- 2 2 1402354205 A - - gz determine whether pages are resident in memorymbstowcs mbstowcs 3 mbstowcs 3psched_getscheduler sched_getscheduler 2 sched_getscheduler 3pclnt_geterr- 3 3 1402354208 B - - gz library routines for remote procedure callsxfs_estimate- 8 8 1601488312 A - - gz estimate the space that an XFS filesystem will takessl_ctx_set_alpn_protosSSL_CTX_set_alpn_protos 3ssl 3 1721417624 B - - gz handle application layer protocol negotiation (ALPN)tcl_getensemblesubcommandlistTcl_GetEnsembleSubcommandList 3 3 1448008821 B - - gz manipulate ensemble commandsl64a 3p- 3p 3p 1402354214 A - - gz convert between a 32-bit integer and a radix-64 ASCII stringsendmsg sendmsg 2 sendmsg 3psetsockcreatecon- 3 3 1585710994 B - - gz get or set the SELinux security context used for creating a new labeled socketserrno.h- 0p 0p 1402354203 A - - gz system error numbersxrestackwindowsXRestackWindows 3 3 1710950786 B - - gz change window stacking orderpolice- 8 8 1601484048 C tc-police - gz evp_cipher_ctx_nidEVP_CIPHER_CTX_nid 3ssl 3 1721417624 B - - gz EVP cipher routinesiso_8859_4- 7 7 1402354220 B - t gz ISO 8859-4 character set encoded in octal, decimal, and hexadecimalpthread_cond_wait- 3p 3p 1402354217 A - - gz wait on a conditionvmcore-dmesg- 8 8 1623254998 A - - gz This is just a placeholder until real man page has been writtenform_userptr- 3x 3 1720626759 A - - gz associate application data with a form itemxkbgetindicatorstateXkbGetIndicatorState 3 3 1710950785 A - - gz Obtains the current state of the keyboard indicatorswbkgdset- 3x 3 1720626759 B - - gz curses window background manipulation routinesxml::libxml::readerXML::LibXML::Reader 3pm 3 1402352993 A - - gz XML::LibXML::Reader - interface to libxml2 pull parserxcb_get_atom_name_name_end- 3 3 1540917640 B - - gz xdr_double- 3 3 1402354213 B - - gz library routines for external data representationcacoshf 3p- 3p 3p 1402354214 B - - gz complex arc hyperbolic cosine functionssqrt 3p- 3p 3p 1402354218 A - - gz square root functionaccessdb- 8 8 1540931193 A - - gz dumps the content of a man-db database in a human readable formattcl_recordandevalTcl_RecordAndEval 3 3 1448008822 A - - gz save command on history list before evaluatinghas_key- 3x 3 1720626759 B - - gz get (or push back) characters from curses terminal keyboardpunycode_encode- 3 3 1448125246 A - - gz API functionxdr_authunix_parms- 3 3 1402354213 B - - gz library routines for remote procedure callssleep sleep 3 sleep 1p sleep 1 sleep 3ppasswd 1- 1 1 1585713436 A - - gz update user's authentication tokensshowconsolefont- 8 8 1637771557 A - - gz Show the current EGA/VGA console screen fonttcl_fsdeletefileTcl_FSDeleteFile 3 3 1448008822 B - - gz procedures to interact with any filesystempkg_mkindexpkg_mkIndex n n 1448008823 A - - gz Build an index for automatic loading of packagestcl_fsgetcwdTcl_FSGetCwd 3 3 1448008822 B - - gz procedures to interact with any filesystemxcb_alloc_named_color_reply- 3 3 1540917640 B - - gz xcb_randr_get_providers_unchecked- 3 3 1540917640 B - - gz modify_ldt- 2 2 1402354205 A - - gz get or set ldtfstrim- 8 8 1612283497 A - - gz discard unused blocks on a mounted filesystemevp_pkey_set1_dhEVP_PKEY_set1_DH 3ssl 3 1721417624 B - - gz EVP_PKEY assignment functions.fcstrcmpignorecaseFcStrCmpIgnoreCase 3 3 1520307172 A - - gz compare UTF-8 strings ignoring casetac- 1 1 1605565487 A - - gz concatenate and print files in reversexml::libxml::relaxngXML::LibXML::RelaxNG 3pm 3 1402352994 A - - gz RelaxNG Schema Validationssl_ctx_set1_chainSSL_CTX_set1_chain 3ssl 3 1721417624 B - - gz extra chain certificate processingxcb_xkb_get_compat_map_group_rtrn- 3 3 1540917640 B - - gz logbl logbl 3 logbl 3pxcb_xfixes_cursor_notify_event_t- 3 3 1540917640 A - - gz xcb_selinux_get_property_use_context- 3 3 1540917640 A - - gz bn_value_oneBN_value_one 3ssl 3 1721417624 B - - gz BIGNUM assignment operationssetcontext setcontext 3 setcontext 2 setcontext 3pdate::languageDate::Language 3pm 3 1402364546 A - - gz Language specific date formating and parsingencoding n- n n 1448008823 A - - gz Manipulate encodingshypotf 3p- 3p 3p 1402354216 B - - gz Euclidean distance functionpthread_attr_getstackaddr 3p- 3p 3p 1402354217 A - - gz get and set the stackaddr attributetcl_posixerrorTcl_PosixError 3 3 1448008821 B - - gz retrieve or record information about errors and other return optionszramctl- 8 8 1612283497 A - - gz set up and control zram devicesxdr_free- 3 3 1402354213 B - - gz library routines for external data representationxcb_dri3_buffer_from_pixmap_reply- 3 3 1540917640 B - - gz bdflush- 2 2 1402354204 A - - gz start, flush, or tune buffer-dirty-flush daemonconnect 3p- 3p 3p 1402354214 A - - gz connect a socketgetlogin_r 3- 3 3 1402354209 B - - gz get usernameeuare-oidcproviderdel- 1 1 1484780705 A - - gz Delete an OpenID Connect providercomposite- 1 1 1731392888 A - - gz overlaps one image over another.menu_back- 3x 3 1720626759 B - - gz color and attribute control for menus_tolower- 3p 3p 1402354213 A - - gz transliterate uppercase characters to lowercaselibnss_myhostname.so.2- 8 8 1711457788 B - - gz Provide hostname resolution for the locally configured system hostname.clock clock 8 clock 3 clock n clock 3pif_freenameindex if_freenameindex 3 if_freenameindex 3pproc n- n n 1448008823 A - - gz Create a Tcl procedureresize-part-image- 1 1 1410347192 A - - gz resize a partition imageeuca-replace-route- 1 1 1484780705 A - - gz Replace a route in a VPC route tablecasinhf casinhf 3 casinhf 3plp 1p- 1p 1p 1402354204 A - - gz send files to a printerxtsetmappedwhenmanagedXtSetMappedWhenManaged 3 3 1501646833 B - - gz map and unmap widgetsxtappgeterrordatabaseXtAppGetErrorDatabase 3 3 1501646833 A - - gz obtain error databasereturn return n return 1p return 1nearbyintl 3- 3 3 1402354211 B - - gz round to nearest integerssl_session_set_timeoutSSL_SESSION_set_timeout 3ssl 3 1721417624 B - - gz retrieve and manipulate session time and timeout settingsxcb_xinerama_query_screens_unchecked- 3 3 1540917640 B - - gz xcb_randr_get_output_property_data- 3 3 1540917640 B - - gz xsetlocalemodifiersXSetLocaleModifiers 3 3 1710950786 B - - gz determine locale support and configure locale modifierstcsh- 1 1 1605900805 A - - gz C shell with file name completion and command line editingtemplate::plugin::proceduralTemplate::Plugin::Procedural 3pm 3 1402357151 A - - gz Base class for procedural pluginsrand_pseudo_bytesRAND_pseudo_bytes 3ssl 3 1721417624 B - - gz generate random dataresizeterm_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionsqrtl 3- 3 3 1402354212 B - - gz square root functionsystemd-hibernate.service- 8 8 1711457788 B - - gz System sleep state logicxcb_randr_get_screen_size_range_reply- 3 3 1540917640 B - - gz xcb_selinux_get_window_create_context- 3 3 1540917640 A - - gz git-fsck-objects- 1 1 1722330780 A - - gz Verifies the connectivity and validity of the objects in the databaseresize2fs- 8 8 1711459142 A - - gz ext2/ext3/ext4 file system resizerbn_addBN_add 3ssl 3 1721417624 A - - gz arithmetic operations on BIGNUMszdiff- 1 1 1652367512 A - - gz compare compressed filesautodie- 3pm 3 1402392173 A - - gz Replace functions with ones that succeed or die with lexical scopexcb_glx_get_convolution_parameteriv_data- 3 3 1540917640 B - - gz cpu_freeCPU_FREE 3 3 1402354206 B - - gz macros for manipulating CPU setsis_pad- 3x 3 1720626759 B - - gz curses window propertiesxcb_glx_get_tex_enviv_reply- 3 3 1540917640 B - - gz xcb_xkb_set_debugging_flags- 3 3 1540917640 A - - gz datetime::locale::gez_erDateTime::Locale::gez_ER 3pm 3 1402390644 A - - gz grub-editenv- 1 1 1722985065 C grub2-editenv - gz xcb_record_query_version_reply- 3 3 1540917640 B - - gz cache_writeback- 8 8 1605543195 A - - gz writeback dirty blocks to the origin device.iso-8859-10- 7 7 1402354219 B - t gz ISO 8859-10 character set encoded in octal, decimal, and hexadecimalxcb_input_get_feedback_control_feedbacks_length- 3 3 1540917640 B - - gz getuid 2- 2 2 1402354205 A - - gz get user identitydatetime::locale::kamDateTime::Locale::kam 3pm 3 1402390633 A - - gz getenv 3- 3 3 1402354212 A - - gz get an environment variabledatetime::locale::sid_etDateTime::Locale::sid_ET 3pm 3 1402390632 A - - gz rcsdiff- 1 1 1585714623 A - - gz compare RCS revisionsfile::readbackwardsFile::ReadBackwards 3pm 3 1390927073 A - - gz - Read a file backwards by lines.menu_pad- 3x 3 1720626759 B - - gz color and attribute control for menusnewgidmap- 1 1 1565319053 A - - gz set the gid mapping of a user namespacetifffilenameTIFFFileName 3tiff 3 1729525165 C TIFFquery - gz dn_expand- 3 3 1402354211 A - - gz resolver routineseuca-install-image- 1 1 1484780705 A - - gz Bundle, upload and register an image into the cloudposix_trace_stop- 3p 3p 1402354217 B - - gz trace start and stop (TRACING)tcl_opentcpserverTcl_OpenTcpServer 3 3 1448008822 B - - gz procedures to open channels using TCP socketstiffcurrentrowTIFFCurrentRow 3tiff 3 1729525165 C TIFFquery - gz xcb_randr_get_screen_resources_current- 3 3 1540917640 A - - gz pmap_set- 3 3 1402354211 B - - gz library routines for remote procedure callspm-is-supported- 1 1 1410891653 A - t gz Test whether suspend or hibernate is supported.cpanplus::internalsCPANPLUS::Internals 3pm 3 1402392266 A - - gz CPANPLUS internalstailq_insert_headTAILQ_INSERT_HEAD 3 3 1402354207 B - - gz implementations of lists, tail queues, and circular queuesxcb_x_print_print_get_one_attributes- 3 3 1540917640 A - - gz datetime::locale::mn_mongDateTime::Locale::mn_Mong 3pm 3 1402390642 A - - gz wattr_off- 3x 3 1720626759 B - - gz curses character and window attribute control routinescrealf crealf 3 crealf 3pround 3- 3 3 1402354212 A - - gz round to nearest integer, away from zerofcdircacherescanFcDirCacheRescan 3 3 1520307172 A - - gz Re-scan a directory cachevcs- 4 4 1402354219 A - - gz virtual console memoryxcb_sync_await- 3 3 1540917640 A - - gz xcb_xv_query_port_attributes_unchecked- 3 3 1540917640 B - - gz tcl_getchannelhandleTcl_GetChannelHandle 3 3 1448008821 B - - gz procedures for creating and manipulating channelsidna_to_ascii_8z- 3 3 1448125246 A - - gz API functionssl_ctx_set_tlsext_status_cbSSL_CTX_set_tlsext_status_cb 3ssl 3 1721417624 A - - gz OCSP Certificate Status Request functionscmsg_nxthdrCMSG_NXTHDR 3 3 1402354206 B - - gz access ancillary dataxtgetselectionvaluesXtGetSelectionValues 3 3 1501646833 B - - gz obtain selection valuesgetnetbyname 3p- 3p 3p 1402354215 B - - gz network database functionsutime 2- 2 2 1402354206 A - - gz change file last access and modification timestcl_registerobjtypeTcl_RegisterObjType 3 3 1448008822 B - - gz manipulate Tcl object typesx509_verify_param_set_depthX509_VERIFY_PARAM_set_depth 3ssl 3 1721417624 B - - gz X509 verification parametersset_curterm_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensiontcl_findlibrarytcl_findLibrary n n 1448008823 B - - gz standard library of Tcl proceduresxcb_input_barrier_hit_event_t- 3 3 1540917640 A - - gz dup3- 2 2 1402354204 B - - gz duplicate a file descriptorxcb_render_create_glyph_set- 3 3 1540917640 A - - gz strpbrk 3- 3 3 1402354212 A - - gz search a string for any of a set of bytesxifeventXIfEvent 3 3 1710950786 A - - gz check the event queue with a predicate proceduredatetime::locale::ndsDateTime::Locale::nds 3pm 3 1402390638 A - - gz checkpasswdaccesscheckPasswdAccess 3 3 1585710994 B - - gz query the SELinux policy database in the kernelnc- 1 1 1573510867 B - - gz Concatenate and redirect socketsxcb_randr_delete_monitor_checked- 3 3 1540917640 B - - gz extutils::miniperlExtUtils::Miniperl 3pm 3 1698237673 A - - gz write the C code for perlmain.cdatetime::locale::cy_gbDateTime::Locale::cy_GB 3pm 3 1402390632 A - - gz cpan::firsttimeCPAN::FirstTime 3pm 3 1698237384 A - - gz Utility for CPAN::Config file Initializationgibi- 7 7 1402354220 C units t gz apply- n n 1448008823 A - - gz Apply an anonymous functionfcstrdirnameFcStrDirname 3 3 1520307172 A - - gz directory part of filenamecgi::fastCGI::Fast 3pm 3 1402342275 A - - gz CGI Interface for Fast CGIhtml::template::faqHTML::Template::FAQ 3pm 3 1392149318 A - - gz Frequently Asked Questions about HTML::Templateobjdump- 1 1 1696859909 A - - gz display information from object files.envz_strip- 3 3 1402354208 B - - gz environment string supportpstack- 1 1 1605296016 B - - gz print a stack trace of a running processsem_trywait 3p- 3p 3p 1402354218 B - - gz lock a semaphore (REALTIME)lwp::debugLWP::Debug 3pm 3 1402363153 A - - gz deprecatedccos 3- 3 3 1402354207 A - - gz complex cosine functionlvmsar- 8 8 1619616701 A - - gz LVM system activity reporterperlthrtut- 1 1 1698237668 A - - gz Tutorial on threads in Perlfts_close- 3 3 1402354209 B - - gz traverse a file hierarchypthread_attr_getinheritsched pthread_attr_getinheritsched 3 pthread_attr_getinheritsched 3psetttyent- 3 3 1402354209 A - - gz get ttys file entrypthread_condattr_init- 3p 3p 1402354217 A - - gz destroy and initialize the condition variable attributes objectxmbufchangewindowattributesXmbufChangeWindowAttributes 3 3 1448003986 B - - gz X multibuffering functionsxcb_grab_keyboard_unchecked- 3 3 1540917640 B - - gz Grab the keyboardbio_new_mem_bufBIO_new_mem_buf 3ssl 3 1721417624 B - - gz memory BIOlh_doall_arg- 3ssl 3 1721417624 B - - gz dynamic hash tableperldata- 1 1 1698237664 A - - gz Perl data typesbsd::resourceBSD::Resource 3pm 3 1390249720 A - - gz BSD process resource limit and priority functionsvgdisplay- 8 8 1619616701 A - - gz Display volume group informationpam_set_data- 3 3 1585713595 A - - gz set module internal datajobs 1p- 1p 1p 1402354204 A - - gz display status of jobs in the current sessionmkostemps- 3 3 1402354211 B - - gz create a unique temporary filei2d_x509_sigi2d_X509_SIG 3ssl 3 1699892216 A - - gz DigestInfo functions.datetime::locale::paDateTime::Locale::pa 3pm 3 1402390634 A - - gz xcmsallocnamedcolorXcmsAllocNamedColor 3 3 1710950786 B - - gz allocate colorstcl_getstringfromobjTcl_GetStringFromObj 3 3 1448008822 B - - gz manipulate Tcl objects as stringslwres_gethostbyaddr- 3 3 1725373371 B - - gz lightweight resolver get network host entryxcb_xfixes_select_selection_input- 3 3 1540917640 A - - gz keyctl_read- 3 3 1573510998 A - - gz Read a keyposix_trace_getnext_event- 3p 3p 1402354217 A - - gz retrieve a trace event (TRACING)log1pl 3- 3 3 1402354210 B - - gz logarithm of 1 plus argumentavc_init- 3 3 1585710994 A - - gz legacy userspace SELinux AVC setupxtremovecallbackXtRemoveCallback 3 3 1501646833 B - - gz add and remove callback proceduresxloadqueryfontXLoadQueryFont 3 3 1710950786 B - - gz load or unload fonts and font metric structuresdbd::gofer::policy::classicDBD::Gofer::Policy::classic 3pm 3 1402362412 A - - gz The 'classic' policy for DBD::Goferxml::sax::pureperlXML::SAX::PurePerl 3pm 3 1402345097 A - - gz Pure Perl XML Parser with SAX2 interfacegetrpcbyname- 3 3 1402354209 B - - gz get RPC entryio::socket::unixIO::Socket::UNIX 3pm 3 1698237674 A - - gz Object interface for AF_UNIX domain socketsiconv 1p- 1p 1p 1402354204 A - - gz codeset conversionmouse_trafo- 3x 3 1720626759 B - - gz mouse interface through cursestcl_unichariswordcharTcl_UniCharIsWordChar 3 3 1448008823 B - - gz routines for classification of Tcl_UniChar characterseuca-attach-network-interface- 1 1 1484780705 A - - gz Attach a VPC network interface to an instancecprojf 3- 3 3 1402354208 B - - gz project into Riemann Spheredbm_filterDBM_Filter 3pm 3 1698237673 A - - gz - Filter DBM keys/valuesxcb_dri3_pixmap_from_buffer_checked- 3 3 1540917640 B - - gz tcl_getrangeTcl_GetRange 3 3 1448008822 B - - gz manipulate Tcl objects as stringsifstat- 8 8 1601484048 A - - gz handy utility to read network interface statisticsxcb_randr_get_crtc_transform_current_params- 3 3 1540917640 B - - gz getenv 3p- 3p 3p 1402354215 A - - gz get value of an environment variablewins_wstr- 3x 3 1720626759 B - - gz insert a wide-character string into a curses windowssl_wantSSL_want 3ssl 3 1721417624 A - - gz obtain state information TLS/SSL I/O operationtcl_initnotifierTcl_InitNotifier 3 3 1448008822 B - - gz the event queue and notifier interfacesxrmgetresourceXrmGetResource 3 3 1710950786 A - - gz retrieve database resources and search listsuse_env_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionchdir 3p- 3p 3p 1402354214 A - - gz change working directoryodbm_fileODBM_File 3pm 3 1698237676 A - - gz Tied access to odbm filesxdbeallocatebackbuffernameXdbeAllocateBackBufferName 3 3 1448003986 A - - gz allocates a DBE buffer.setutxent 3- 3 3 1402354212 B - - gz access utmp file entriesccos ccos 3 ccos 3pxcb_damage_destroy_checked- 3 3 1540917640 B - - gz tcl_channelinputprocTcl_ChannelInputProc 3 3 1448008821 B - - gz procedures for creating and manipulating channelshtons htons 3 htons 3pgenl-ctrl-list- 8 8 1501789719 A - - gz List available kernel-side Generic Netlink familiesxcb_xv_query_encodings- 3 3 1540917640 A - - gz asn1_time_diffASN1_TIME_diff 3ssl 3 1721417624 B - - gz ASN.1 Time functions.datetime::locale::sr_rsDateTime::Locale::sr_RS 3pm 3 1402390633 A - - gz bio_new_socketBIO_new_socket 3ssl 3 1721417624 B - - gz socket BIOexp10- 3 3 1402354208 A - - gz base-10 exponential functionmvinnstr- 3x 3 1720626759 B - - gz get a string of characters from a curses windowxcb_dri2_wait_msc_unchecked- 3 3 1540917640 B - - gz clntraw_create- 3 3 1402354208 B - - gz library routines for remote procedure callsio::linesIO::Lines 3pm 3 1402371105 A - - gz IO:: interface for reading/writing an array of linesxcb_set_modifier_mapping- 3 3 1540917640 A - - gz set_form_opts- 3x 3 1720626759 B - - gz set and get form optionsdefaultvisualDefaultVisual 3 3 1710950785 B - - gz Display macros and functionsgettextize- 1 1 1465650366 A - - gz install or upgrade gettext infrastructurecollectdctl- 1 1 1671356063 A - - gz Control interface for collectdrsa_sizeRSA_size 3ssl 3 1699892213 A - - gz get RSA modulus sizesdbm_fileSDBM_File 3pm 3 1698237677 A - - gz Tied access to sdbm filespthread_getspecific- 3p 3p 1402354217 A - - gz thread-specific data managementcontext_user_get- 3 3 1585710994 B - - gz Routines to manipulate SELinux security contextscurses::ui::dialog::basicCurses::UI::Dialog::Basic 3pm 3 1454728582 A - - gz Create and manipulate basic dialogseuscale-delete-scheduled-action- 1 1 1484780705 A - - gz Delete a scheduled actionwcscspn 3- 3 3 1402354213 A - - gz search a wide-character string for any of a set of wide characterspthread_key_create- 3p 3p 1402354217 A - - gz thread-specific data key creationxmbufdisplaybuffersXmbufDisplayBuffers 3 3 1448003986 B - - gz X multibuffering functionstoupper 3- 3 3 1402354213 A - - gz convert letter to upper or lower casecsplit csplit 1p csplit 1pthread_attr_getschedpolicy 3p- 3p 3p 1402354217 A - - gz get and set the schedpolicy attribute (REALTIME THREADS)euca-cancel-conversion-task- 1 1 1484780705 A - - gz Cancel an import tasklset- n n 1448008823 A - - gz Change an element in a listbio_pushBIO_push 3ssl 3 1721417624 A - - gz add and remove BIOs from a chain.tcl_setexitprocTcl_SetExitProc 3 3 1448008821 B - - gz end the application or thread (and invoke exit handlers)chroot 1- 1 1 1605565487 A - - gz run command or interactive shell with special root directorypm-suspend-hybrid- 8 8 1533764400 B - - gz Suspend or Hibernate your computerdatetime::locale::sr_yuDateTime::Locale::sr_YU 3pm 3 1402390644 A - - gz xcb_dri3_buffers_from_pixmap_unchecked- 3 3 1540917640 B - - gz pem_write_dhparamsPEM_write_DHparams 3ssl 3 1721417624 B - - gz PEM routinescfsetispeed cfsetispeed 3 cfsetispeed 3ptbf- 8 8 1601484048 C tc-tbf - gz basename 1- 1 1 1605565487 A - - gz strip directory and suffix from filenamesxcb_res_query_resource_bytes- 3 3 1540917640 A - - gz xcb_glx_get_pixel_mapfv_unchecked- 3 3 1540917640 B - - gz pod::perldoc::tocheckerPod::Perldoc::ToChecker 3pm 3 1402388268 A - - gz let Perldoc check Pod for errorsendprotoent 3- 3 3 1402354208 B - - gz get protocol entrycacosf cacosf 3 cacosf 3pgetsubopt 3p- 3p 3p 1402354215 A - - gz parse suboption arguments from a stringtcl_notifychannelTcl_NotifyChannel 3 3 1448008821 B - - gz procedures for creating and manipulating channelsxcb_glx_make_current- 3 3 1540917640 A - - gz xcb_selinux_get_selection_create_context_context_end- 3 3 1540917640 B - - gz xcirculatesubwindowsupXCirculateSubwindowsUp 3 3 1710950786 B - - gz change window stacking orderxcb_get_image_reply- 3 3 1540917640 B - - gz ledmon- 8 8 1585710204 A - - gz Intel(R) LED monitor service for storage enclosures.edata- 3 3 1402354208 B - - gz end of program segments$addnstr- 3x 3 1720626759 B - - gz add a string of characters to a curses window and advance cursormkfs.vfat- 8 8 1573511351 B - - gz create an MS-DOS filesystem under Linuxsrandom_r- 3 3 1402354212 B - - gz reentrant random number generatorfflush 3- 3 3 1402354209 A - - gz flush a streamxcb_damage_query_version_reply- 3 3 1540917640 B - - gz fuse- 8 8 1540935154 C mount.fuse - gz iswupper 3p- 3p 3p 1402354216 A - - gz test for an uppercase letter wide-character codextapppendingXtAppPending 3 3 1501646833 B - - gz query and process events and inputtiffreadrawtileTIFFReadRawTile 3tiff 3 1729525165 A - - gz return an undecoded tile of data from an open TIFF filextremoveeventhandlerXtRemoveEventHandler 3 3 1501646833 B - - gz add and remove event handlersttytype ttytype 3x ttytype 5xcb_randr_get_screen_info_sizes_iterator- 3 3 1540917640 B - - gz break n- n n 1448008823 A - - gz Abort looping commandlrand48 lrand48 3 lrand48 3pmvwvline_set- 3x 3 1720626759 B - - gz create curses borders or lines using complex characters and renditionsxcb_glx_gen_textures_data_end- 3 3 1540917640 B - - gz evp_max_md_sizeEVP_MAX_MD_SIZE 3ssl 3 1721417624 B - - gz EVP digest routinesxcb_glx_get_tex_gendv_data_length- 3 3 1540917640 B - - gz systemd-modules-load- 8 8 1711457788 B - - gz Load kernel modules at bootxcb_shape_rectangles- 3 3 1540917640 A - - gz encode::mime::name Encode::MIME::NAME 3pm Encode::MIME::Name 3pmxcb_record_create_context- 3 3 1540917640 A - - gz xcb_randr_query_version_reply- 3 3 1540917640 B - - gz mousemask_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionxmapeventXMapEvent 3 3 1710950786 A - - gz MapNotify and MappingNotify event structuresxgetocvaluesXGetOCValues 3 3 1710950785 B - - gz create output contextsxcb_input_change_device_control- 3 3 1540917640 A - - gz xcb_dri2_connect_device_name- 3 3 1540917640 B - - gz xkbaddgeompropertyXkbAddGeomProperty 3 3 1710950785 A - - gz Add one property to an existing keyboard geometry descriptionxdr_rejected_reply- 3 3 1402354213 B - - gz library routines for remote procedure callsmitem_new- 3x 3 1720626759 A - - gz create and destroy menu itemshas_il- 3x 3 1720626759 B - - gz curses environment query routinesbn_get_wordBN_get_word 3ssl 3 1721417624 B - - gz BIGNUM assignment operationsuuid_time- 3 3 1612283497 A - - gz extract the time at which the UUID was createdxcb_set_modifier_mapping_reply- 3 3 1540917640 B - - gz xcb_glx_get_tex_parameterfv_reply- 3 3 1540917640 B - - gz mountpoint- 1 1 1612283497 A - - gz see if a directory is a mountpointgit-parse-remote- 1 1 1722330780 A - - gz Routines to help parsing remote repository access parametersperlhist- 1 1 1698237666 A - - gz the Perl history recordsfile::globFile::Glob 3pm 3 1698237673 A - - gz Perl extension for BSD glob routineungetch- 3x 3 1720626759 B - - gz get (or push back) characters from curses terminal keyboardparams::checkParams::Check 3pm 3 1583449669 A - - - A generic input parsing/checking mechanism.acosf acosf 3 acosf 3pstrstr strstr 3 strstr 3pxcb_input_change_pointer_device_reply- 3 3 1540917640 B - - gz evp_md_ctx_copy_exEVP_MD_CTX_copy_ex 3ssl 3 1721417624 B - - gz EVP digest routinessetpgrp setpgrp 2 setpgrp 3pxsetsubwindowmodeXSetSubwindowMode 3 3 1710950786 B - - gz GC convenience routinessavetty_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionxcb_glx_flush- 3 3 1540917640 A - - gz ipc ipc 2 ipc 5systemd-analyze- 1 1 1711457787 A - - gz Analyze system boot-up performancespu_run- 2 2 1402354206 A - - gz execute an SPU contextgit-name-rev- 1 1 1722330784 A - - gz Find symbolic names for given revslwres_buffer_getuint16- 3 3 1725373371 B - - gz lightweight resolver buffer managementeuca-get-console-output- 1 1 1484780705 A - - gz Retrieve console output for the specified instancexcb_change_save_set_checked- 3 3 1540917640 B - - gz Changes a client's save setwscanf- 3p 3p 1402354219 A - - gz convert formatted wide-character inputsetbuf setbuf 3 setbuf 3pps2pdf12- 1 1 1605296035 B - - gz Convert PostScript to PDF 1.2 (Acrobat 3-and-later compatible) using ghostscriptevp_cipher_ctx_flagsEVP_CIPHER_CTX_flags 3ssl 3 1721417624 B - - gz EVP cipher routinesxpointinregionXPointInRegion 3 3 1710950786 B - - gz determine if regions are empty or equalatexit atexit 3 atexit 3pssl_get_max_cert_listSSL_get_max_cert_list 3ssl 3 1699892220 A - - gz manipulate allowed for the peer's certificate chaintcl_fsutimeTcl_FSUtime 3 3 1448008822 B - - gz procedures to interact with any filesystemxquerybesttileXQueryBestTile 3 3 1710950786 B - - gz determine efficient sizesxcb_glx_get_pixel_mapusv_data_length- 3 3 1540917640 B - - gz tc-cgroup- 8 8 1601484048 A - - gz control group based traffic control filtertcl_deleteassocdataTcl_DeleteAssocData 3 3 1448008821 A - - gz manage associations of string keys and user specified data with Tcl interpretersevp_digestsignupdateEVP_DigestSignUpdate 3ssl 3 1721417624 B - - gz EVP signing functionsinitgroups- 3 3 1402354210 A - - gz initialize the supplementary group access listxcb_input_xi_set_client_pointer_checked- 3 3 1540917640 B - - gz tcl_setcommandinfofromtokenTcl_SetCommandInfoFromToken 3 3 1448008821 B - - gz implement new commands in Cerr_load_ui_stringsERR_load_UI_strings 3ssl 3 1721417624 B - - gz New User Interfacepam_echo- 8 8 1585713586 A - - gz PAM module for printing text messagesdatetime::locale::cch_ngDateTime::Locale::cch_NG 3pm 3 1402390642 A - - gz xcb_shape_mask- 3 3 1540917640 A - - gz template::plugin::htmlTemplate::Plugin::HTML 3pm 3 1402357150 A - - gz Plugin to create HTML elementsxputimageXPutImage 3 3 1710950786 A - - gz transfer imagesxoffsetregionXOffsetRegion 3 3 1710950786 B - - gz region arithmeticnextafter nextafter 3 nextafter 3peuare-servercertmod- 1 1 1484780705 A - - gz Change the name and/or path of a server certificategrub2-mkimage- 1 1 1722985065 A - - gz Make a bootable GRUB image.wgetscrreg- 3x 3 1720626759 B - - gz curses window propertieshost- 1 1 1725373372 A - - gz DNS lookup utilitydbm_fetch- 3p 3p 1402354214 B - - gz database functionsacosf 3- 3 3 1402354207 B - - gz arc cosine functionselinux_config- 5 5 1585713890 A - - gz The SELinux sub-system configuration file.cpanplus::module::checksumsCPANPLUS::Module::Checksums 3pm 3 1402392266 A - - gz checking the checksum of a distributionscanf scanf 3 scanf 3pinfnan- 3 3 1402354210 A - - gz deal with infinite or not-a-number (NaN) resultfc fc 1p fc 1pcre PCRE 3 pcre 3switch Switch 3pm switch ntputs_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionavc_compute_member- 3 3 1585710994 B - - gz obtain SELinux label for new objecti2d_pkcs8privatekey_nid_bioi2d_PKCS8PrivateKey_nid_bio 3ssl 3 1721417624 B - - gz PKCS#8 format private key functionsfgetpwent- 3 3 1402354209 A - - gz get password file entryxcb_selinux_get_property_data_context_reply- 3 3 1540917640 B - - gz monetary.h- 0p 0p 1402354203 A - - gz monetary typesdb_archive- 1 1 1481720582 A - - gz Find unused log files for archivalpthread_attr_setscope 3- 3 3 1402354211 A - - gz set/get contention scope attribute in thread attributes objectpthread_setcancelstate 3p- 3p 3p 1402354217 B - - gz set cancelability statecms_signerinfo_get0_signatureCMS_SignerInfo_get0_signature 3ssl 3 1721417624 B - - gz CMS signedData signer functions.xcb_query_extension_unchecked- 3 3 1540917640 B - - gz check if extension is presentkeybound- 3x 3 1715932339 A - - gz return definition of keycodeextutils::typemaps::typeExtUtils::Typemaps::Type 3pm 3 1501652625 A - - gz Entry in the TYPEMAP section of a typemaptrace trace 3x trace ngitremote-helpers- 1 1 1722330784 A - - gz Helper programs to interact with remote repositoriesfdopen 3p- 3p 3p 1402354215 A - - gz associate a stream with a file descriptorfcstrsetmemberFcStrSetMember 3 3 1520307172 A - - gz check set for membershipremainderl 3p- 3p 3p 1402354218 B - - gz remainder functionbaudrate- 3x 3 1720626759 B - - gz curses environment query routinesccosf 3- 3 3 1402354207 B - - gz complex cosine functionssl_alert_type_string_longSSL_alert_type_string_long 3ssl 3 1721417624 B - - gz get textual description of alert informationgeteuid32- 2 2 1402354204 B - - gz get user identityether_line- 3 3 1402354208 B - - gz Ethernet address manipulation routinesdatetime::locale::ve_zaDateTime::Locale::ve_ZA 3pm 3 1402390644 A - - gz catan 3- 3 3 1402354207 A - - gz complex arc tangentspthread_attr_getdetachstate 3p- 3p 3p 1402354217 A - - gz get and set the detachstate attributeevp_des_cbcEVP_des_cbc 3ssl 3 1721417624 B - - gz EVP cipher routinestap::parser::resultfactoryTAP::Parser::ResultFactory 3pm 3 1439389327 A - - gz Factory for creating TAP::Parser output objectsxcb_glx_get_mapdv_unchecked- 3 3 1540917640 B - - gz bash- 1 1 1638560014 A - - gz GNU Bourne-Again SHelleuca-describe-internet-gateways- 1 1 1484780705 A - - gz Describe one or more VPC Internet gatewaysevp_md_ctx_cleanupEVP_MD_CTX_cleanup 3ssl 3 1721417624 B - - gz EVP digest routinestiparm- 3x 3 1720626759 B - - gz curses interfaces to terminfo databaseping6- 8 8 1533764364 B - - gz send ICMP ECHO_REQUEST to network hostsbio_wpendingBIO_wpending 3ssl 3 1721417624 B - - gz BIO control operationsssl_get_cipher_versionSSL_get_cipher_version 3ssl 3 1699892223 A - - gz get SSL_CIPHER of a connectionpkcs7_signPKCS7_sign 3ssl 3 1699892211 A - - gz create a PKCS#7 signedData structureevp_digestsigninitEVP_DigestSignInit 3ssl 3 1721417624 A - - gz EVP signing functionsreadonly::xsReadonly::XS 3pm 3 1402345741 A - - gz Companion module for Readonly.pm, to speed up read-only scalar variables.bio_get_write_guaranteeBIO_get_write_guarantee 3ssl 3 1721417624 B - - gz BIO pair BIOfcinitreinitializeFcInitReinitialize 3 3 1520307172 A - - gz re-initialize libraryxcb_xfixes_get_cursor_image_and_name_cursor_image_end- 3 3 1540917640 B - - gz getresgid- 2 2 1402354205 B - - gz get real, effective and saved user/group IDssched.h- 0p 0p 1402354203 A - - gz execution scheduling (REALTIME)getpwuid 3- 3 3 1402354209 B - - gz get password file entrybn_mont_ctx_setBN_MONT_CTX_set 3ssl 3 1721417624 B - - gz Montgomery multiplicationcalloc 3p- 3p 3p 1402354214 A - - gz a memory allocatorisalpha 3- 3 3 1402354210 A - - gz character classification routinestcflush 3p- 3p 3p 1402354218 A - - gz flush non-transmitted output data, non-read input data, or bothpaperconfig- 8 8 1601484498 A - - gz configure the system default paper sizesha384_initSHA384_Init 3ssl 3 1721417624 B - - gz Secure Hash Algorithmi2d_pkcs8privatekey_fpi2d_PKCS8PrivateKey_fp 3ssl 3 1721417624 B - - gz PKCS#8 format private key functionseuform-get-template- 1 1 1484780705 A - - gz Show a stack's templategeoip.confGeoIP.conf 5 5 1686578457 A - - gz Configuration file for geoipupdatesetcontext 3p- 3p 3p 1402354218 B - - gz get and set current user contextdatetime::locale::zh_hans_sgDateTime::Locale::zh_Hans_SG 3pm 3 1402390637 A - - gz crypt::desCrypt::DES 3pm 3 1402385606 A - - gz Perl DES encryption moduletiffwritedencodedstripTIFFWritedEncodedStrip 3tiff 3 1729525165 C TIFFWriteEncodedStrip - gz scalblnl scalblnl 3 scalblnl 3psend 3p- 3p 3p 1402354218 A - - gz send a message on a socketkeyctl_read_alloc- 3 3 1573510998 B - - gz Read a keybio_set_fpBIO_set_fp 3ssl 3 1721417624 B - - gz FILE biogroupmod- 8 8 1565319053 A - - gz modify a group definition on the systemsetterm 1- 1 1 1612283497 A - - gz set terminal attributessinh 3p- 3p 3p 1402354218 A - - gz hyperbolic sine functionspthread_rwlock_rdlock- 3p 3p 1402354217 A - - gz lock a read-write lock object for readingxcb_x_print_print_query_screens_roots_end- 3 3 1540917640 B - - gz evp_md_block_sizeEVP_MD_block_size 3ssl 3 1721417624 B - - gz EVP digest routinesxkbqueryextensionXkbQueryExtension 3 3 1710950785 A - - gz Determines the compatibility of a library at runtime.traceroute- 8 8 1533764426 A - - gz print the route packets trace to network hostpkexec- 1 1 1643139761 A - - gz Execute a command as another userFcustomizable_types- 5 5 1585710994 A - - gz The SELinux customizable types configuration file__clone2- 2 2 1402354204 B - - gz create a child processxtvacreateargslistXtVaCreateArgsList 3 3 1501646833 A - - gz dynamically allocate a varargs liststime- 2 2 1402354206 A - - gz set timesigsetmask- 3 3 1402354212 B - - gz BSD signal APItzfile- 5 5 1402354219 A - - gz timezone informationxcb_input_device_property_notify_event_t- 3 3 1540917640 A - - gz for- n n 1448008823 A - - gz 'For' loopwins_wch- 3x 3 1720626759 B - - gz insert a complex character and rendition into a windowuser.conf.d- 5 5 1711457788 B - - gz System and session service manager configuration filestiffsetdirectoryTIFFSetDirectory 3tiff 3 1729525165 A - - gz set the current directory for an open TIFF filestrcmp 3- 3 3 1402354212 A - - gz compare two stringsclearerr 3p- 3p 3p 1402354214 A - - gz clear indicators on a streamsg_reset- 8 8 1585715378 A - - gz sends SCSI device, target, bus or host reset; or checks reset statexmbufqueryextensionXmbufQueryExtension 3 3 1448003986 B - - gz X multibuffering functionsapplygnupgdefaults- 8 8 1531487121 A - - gz Run gpgconf - apply-defaults for all users.tcl_parsequotedstringTcl_ParseQuotedString 3 3 1448008822 B - - gz parse Tcl scripts and expressionsisnanf- 3 3 1402354210 B - - gz BSD floating-point classification functionsselinux_file_context_homedir_path- 3 3 1585710994 B - - gz These functions return the paths to the active SELinux policy configuration directories and filesxcb_glx_get_convolution_filter- 3 3 1540917640 A - - gz pthread_attr_getstackaddr pthread_attr_getstackaddr 3 pthread_attr_getstackaddr 3pxcb_xkb_set_debugging_flags_unchecked- 3 3 1540917640 B - - gz jrand48 jrand48 3 jrand48 3pxcb_sync_alarm_notify_event_t- 3 3 1540917640 A - - gz mvcur_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionxcb_randr_get_crtc_transform_pending_filter_name- 3 3 1540917640 B - - gz info 1- 1 1 1523408614 A - - gz read Info documentsxcb_translate_coordinates- 3 3 1540917640 A - - gz evp_cipher_iv_lengthEVP_CIPHER_iv_length 3ssl 3 1721417624 B - - gz EVP cipher routinestcl_scancountedelementTcl_ScanCountedElement 3 3 1448008822 B - - gz manipulate Tcl listspsfstriptable- 1 1 1637771557 A - - gz remove the embedded Unicode character table from a console fonttsort 1- 1 1 1605565487 A - - gz perform topological sortperlrun- 1 1 1698237668 A - - gz how to execute the Perl interpreterxcb_randr_set_monitor_checked- 3 3 1540917640 B - - gz fcinitloadconfigFcInitLoadConfig 3 3 1520307172 A - - gz load configurationcreal 3- 3 3 1402354208 A - - gz get real part of a complex numberethers- 5 5 1565313023 A - - gz Ethernet address to IP number databasehosts_access 3- 3 3 824054487 A - - gz access control librarytype_alphaTYPE_ALPHA 3x 3 1720626759 B - - gz form system global variablestrace.h- 0p 0p 1402354203 A - - gz tracingxcb_alloc_color_cells_pixels_end- 3 3 1540917640 B - - gz eulb-describe-lb-policies- 1 1 1484780705 A - - gz Show information about load balancer policiesxcb_input_delete_device_property_checked- 3 3 1540917640 B - - gz nanorc- 5 5 1402375673 A - - gz GNU nano's rcfilersa_padding_add_noneRSA_padding_add_none 3ssl 3 1721417624 B - - gz asymmetric encryption paddingsfdisk- 8 8 1612283497 A - - gz partition table manipulator for Linuxroutel- 8 8 1601484048 A - - gz list routes with pretty output formatxcirculatesubwindowsdownXCirculateSubwindowsDown 3 3 1710950786 B - - gz change window stacking orderclnt_call- 3 3 1402354208 B - - gz library routines for remote procedure callssuexec- 8 8 1530866687 A - - gz Switch user before executing external programsmapfile- 1 1 1637771605 A - - gz bash built-in commands, see bash(1)tiffreadrgbaimageorientedTIFFReadRGBAImageOriented 3tiff 3 1729525165 C TIFFReadRGBAImage - gz srand 3- 3 3 1402354212 B - - gz pseudo-random number generatorfatalFatal 3pm 3 1402392173 A - - gz Replace functions with equivalents which succeed or dietouch touch 1p touch 1 ?9 azps2p0 k!evp_t0Dxpoi0O?^atex+1bssl_F1eOtcl_1 OVoxque2A"0xcb_l2%™inet| ӂ0tc-c2 E3tcl_2}Gevp_3FSinit3 Igxcb_;4(į@tcl_~4Perr_4Bxpam_@5 @jdate54Fxcb_5"temp6Pxputg6 2xoff68V\next6 euar 7Ngrubo76ofwget7 4 host7-0dbm_$8 /acos]8. Lseli8E2:3testbY!cpan8^xcb_"xcb_P$HKscana9SZ-infny9Jjfc9 ٽimax  :Wpcre9swit9Stput : ;Y avc_M:>`#i2d_:['+Zfget; 2sxcb_Q;,mone; +gDdb_a; =Wpthr<Ypthr<4ycms_<ZYxcb_M=8mçkeyb= 8[gextu=]S"tracZ>.gitrr>Ofdop> FD0fcst#?@Egremar?/baud? =œx509S@+wcstq Obposìf!x509QTxkbgE JMxcb_+{getoӁ ;[isat 7׼copyX 0-gamm<wxcb_Ղ()filt BGBxcb_h,key43autoك ?6Xunsh#0/.bn_rZGxtfi ZCxcb_&,xcb_m`dsa_ G|hismoCremqec_pyNxcb_!ckoi8ޅ]e csetsB 9xcb_*,htdiɆ FJ~fcco@^grubo R[xcb_·#+<slk_  6UJauthOWNpem_8x509R\ec_pi)L:clieN}evp_P} -evp_ @ Nxcb_0thinb SMUsigs > pod: HfstaY 5sets @N?fcweh\ƨoutsd#@Ugetg ;bcronԍ KQxcb_(4Yperl) 0set_d Q6r}grubŽ;date40 xrmpDSifdoy7)xset;ώyxcmsJN&_des_j 7kLscal Tgit-] Nkevp_Be9netr  Levp_@euca`Gffcbl CgetcsU$ver Ȉtcl_?D]{xcb_3zvxtimc T#bn_iC<utmpA)ûpcre\ >vssc Cclip 2gxcb_3fchm@ 2?cpan|L|anetl7 Sqxcb_%YlognGjtiff4g{date3Eusb_`Rtarq :PlwreA-xcb_ Tsetn bord5 b>colo)Rmodu[0Xmq_u 1ǯsyslK,*hmac G"rtneo 4"xkey9{(rsa_KpfcpaX Cxcb_qKnxml:txrmqpG_Fsetu ?`archRAicato# 3Atap:ex509_store_set_verify_cb_funcX509_STORE_set_verify_cb_func 3ssl 3 1721417624 A - - gz set verification callbackwcstoumax 3p- 3p 3p 1402354219 B - - gz convert a wide-character string to an integer typeposix_trace_flush- 3p 3p 1402354217 B - t gz trace stream initialization, flush, and shutdown from a process (TRACING)xkbgetnamesXkbGetNames 3 3 1710950785 A - t gz Obtain symbolic names from the serverxcb_xv_query_best_size_reply- 3 3 1540917640 B - - gz getopt 1- 1 1 1612283497 A - - gz parse command options (enhanced)isatty 3p- 3p 3p 1402354216 A - - gz test for a terminal devicecopysign 3- 3 3 1402354208 A - - gz copy sign of a numbergamma- 3 3 1402354209 A - - gz (logarithm of the) gamma functionxcb_set_screen_saver_checked- 3 3 1540917640 B - - gz filter::util::perlfilterFilter::Util::perlfilter 3pm 3 1402353952 A - - gz Source Filtersxcb_render_fill_rectangles- 3 3 1540917640 A - - gz key4.db- 5 5 1730826028 A - - gz NSS certificate databaseautoreconf- 1 1 1402378884 A - - gz Update generated configuration filesunshar- 1 1 1357525295 A - - gz unpack a shar archivebn_rand_rangeBN_rand_range 3ssl 3 1721417624 B - - gz generate pseudo-random numberismodifierkeyIsModifierKey 3 3 1710950785 B - - gz keysym classification macrosremquo remquo 3 remquo 3pec_points_mulEC_POINTs_mul 3ssl 3 1721417624 B - - gz Functions for performing mathematical operations and tests on EC_POINT objects.xcb_dri3_get_supported_modifiers- 3 3 1540917640 A - - gz koi8-u- 7 7 1402354220 A - t gz Ukrainian character set encoded in octal, decimal, and hexadecimalsetspent- 3 3 1402354212 B - - gz get shadow password file entryxcb_randr_get_provider_property_unchecked- 3 3 1540917640 B - - gz htdigest- 1 1 1530866687 A - - gz manage user files for digest authenticationfcconfiggetconfigfilesFcConfigGetConfigFiles 3 3 1520307172 A - - gz Get config filesgrub2-reboot- 8 8 1722985065 A - - gz Set the default boot menu entry for the next boot only.xcb_input_device_key_press_event_t- 3 3 1540917640 A - - gz slk_attr_off- 3x 3 1720626759 B - - gz curses soft label routinesauthconfig-tui- 8 8 1501837535 B - - gz an interface for configuring system authentication resourcespem_read_pubkeyPEM_read_PUBKEY 3ssl 3 1721417624 B - - gz PEM routinesx509_verify_param_set1_ipX509_VERIFY_PARAM_set1_ip 3ssl 3 1721417624 B - - gz X509 verification parametersec_point_set_compressed_coordinates_gf2mEC_POINT_set_compressed_coordinates_GF2m 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_POINT objects.clientwhitepointofcccClientWhitePointOfCCC 3 3 1710950785 B - - gz Color Conversion Context macrosevp_pkey_sign_initEVP_PKEY_sign_init 3ssl 3 1721417624 B - - gz sign using a public key algorithmevp_openinitEVP_OpenInit 3ssl 3 1721417624 A - - gz EVP envelope decryptionxcb_get_image_data_end- 3 3 1540917640 B - - gz thin_check- 8 8 1605543195 A - - gz validates thin provisioning metadata on a device or filesigstack- 3 3 1402354212 B - - gz set and/or get signal stack contextpod::htmlPod::Html 3pm 3 1698237676 A - - gz module to convert pod files to HTMLfstatvfs 3- 3 3 1402354212 A - - gz get file system statisticssetserial- 8 8 1402354724 A - - gz get/set Linux serial port informationfcweighttoopentypedoubleFcWeightToOpenTypeDouble 3 3 1520307172 A - - gz Convert from fontconfig weight values to OpenType onesoutsb- 2 2 1402354205 B - - gz port I/Ogetgrent 3p- 3p 3p 1402354218 A - - gz group database entry functionscrontab 5- 5 5 1684247301 A - - gz files used to schedule the execution of programsperlunitut- 1 1 1698237670 A - - gz Perl Unicode Tutorialset_form_win- 3x 3 1720626759 B - - gz make and break form window and subwindow associationsgrub2-mkpasswd-pbkdf2- 1 1 1722985065 A - - gz Generate a PBKDF2 password hash.xrmputlineresourceXrmPutLineResource 3 3 1710950786 B - - gz store database resourcesdes_enc_readDES_enc_read 3ssl 3 1721417624 B - - gz DES encryptionevp_signupdateEVP_SignUpdate 3ssl 3 1721417624 B - - gz EVP signing functions?O._Ba`H(xkbs0r`slk_V67spu_0 3Cxtca21Mqfdim1-semaT\prin 2'YxtowN2Fpthr1^ߜxkba2G 8idI3 RRtuneX3>odiag3 ^xcb_3sxcb_ 4~5tige=4 ;uunam43'attr4f{dateB53xconn5 %67date54_Lgets6 ,locaA63mOextu6 P#cp126[#Md2i_F7vperl7 6hsyst8 ,C,xmbdH8 GB[auto8=bn_b8 8{mall+9 =Jgetpu9`fcpa9J=pcre9>fŸRIPE@:6{date:3seuca:6] free; 4iLfegeW;&5dssl_;U xcb_;!setp:<0Lxcb_q<&rpc.< .I2xcb_<1Cui_a8=Adsetu=@ioglob= U{1remq4> 9Fswapw>pthr>>Fcasi> 63pthr?<5@bio_r?7x ruby@I{HdateN@3%xkbi@):xcb_?$|lset:AAvxcb_A0xdr_AL8&lh_n B.,y)dbd:`BVExkbaBiڦdateJC5iextuCZZmcooD;)abID?4tiffD _kUlogiD6)1xkbk5E- dateE4so$poll F6!dsha2KF >freeFO_renaF *Ecaco G-{ZdateUG3isblG/clasGQxcb_ H?Lrewi{H Jn locaH(mallH ?kcoslFI,stdi[I/xcb_I&TurepI <-chgrJ <qgetkaJj3menuJ NAform8K8VreadK.Ndbi:KfYfile5L0Revp_mLEtcl_LWxcb_2M$]capsqM3xcb_M/aec_gMYramN*}xcb_N(date O8_keycaO;pttk:O 2fhostP mtcl_yP<|xcb_PUUxcb_SpthrP $"߅xcb_*Q!kmkfifQ 3wcssQ geuarRMasn1tR?rm4 1R*msgeRBjtar.:S5XispruSactanT%sslr(T :6procS >tcge _1X<wcsth PpZfcpa Fxcb_&A{olduU Hm}asin;"packMxcb_;jva_ardtempY~putmp(cxcb_'![_trac5get_]xml:Ygxcb_x|xset>insw#x1xcb_ qtiffZ4b`xcb_)٩sigo 7֡/xcb_" hist] 6&[mysq4Zfail d`rstunR/ sys_Dxcb_ܽ%oexpo8s]feofd5ec_kp=syst(0;zaurej TTtcl_#g>scr_;grub,Ztcl_b8[xset =mailǿ -lwp- 0 ;def_5HtowcT &getcx(2]cms_ Juxcb_kxcb_<ؙllrio `Assl_bnsystW5KQres_ ,1Txcb_+xcb_ > {xcb_V8vgssl_'vxcb_F3dzgreTUmq_u >X deve9UV@loca[@xkbl <&uri:\ Zz/kxgetGӮxml:Ԗ<is_k 4~luniqJ9dbi:S ZsscaMnacct>ecrdal]mysq Jtanh9>}&xcb_ !err_\U$connq-ec_g[ y0 3U>dXcpanOsign @^semaFF5wssl_Wijxcb_BX%]kpod:NW\yum.conf- 5 5 1601571824 A - - - Configuration file for yum(8).red red 8 red 1ssl_ctx_sess_cb_hitsSSL_CTX_sess_cb_hits 3ssl 3 1721417624 B - - gz obtain session cache statisticsxinstallcolormapXInstallColormap 3 3 1710950786 A - - gz control colormapsxcb_xvmc_create_surface_priv_data- 3 3 1540917640 B - - gz dsa_generate_keyDSA_generate_key 3ssl 3 1699892207 A - - gz generate DSA key pairxcb_xfixes_hide_cursor_checked- 3 3 1540917640 B - - gz tcl_getwideintfromobjTcl_GetWideIntFromObj 3 3 1448008822 B - - gz manipulate Tcl objects as integer valuesxcb_xfixes_set_picture_clip_region- 3 3 1540917640 A - - gz rmmod- 8 8 1585709895 A - - gz Simple program to remove a module from the Linux Kernelbasic- 8 8 1601484048 C tc-basic - gz x509_store_ctx_set0_paramX509_STORE_CTX_set0_param 3ssl 3 1721417624 B - - gz X509_STORE_CTX initialisationbn_print 3ssl- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionsptrace- 2 2 1402354205 A - - gz process tracetcl_unicharisprintTcl_UniCharIsPrint 3 3 1448008823 B - - gz routines for classification of Tcl_UniChar charactersssl_set_verifySSL_set_verify 3ssl 3 1721417624 B - - gz set peer certificate verification parameterswaitid waitid 2 waitid 3pa2p- 1 1 1698237661 A - - gz Awk to Perl translatorsystemd-user-sessions.service- 8 8 1711457788 A - - gz Permit user logins after boot, prohibit user logins at shutdownextutils::commandExtUtils::Command 3pm 3 1698237673 A - - gz utilities to replace common UNIX commands in Makefiles etc.tcgetattr 3- 3 3 1402354213 B - - gz get and set terminal attributes, line control, get and set baud ratewcstoull- 3p 3p 1402354219 B - - gz convert a wide-character string to an unsigned longfcpatterndelFcPatternDel 3 3 1520307172 A - - gz Delete a property from a patternxcb_input_set_device_modifier_mapping- 3 3 1540917640 A - - gz olduname- 2 2 1402354205 B - - gz get name and information about current kernelasinh 3- 3 3 1402354207 A - - gz inverse hyperbolic sine functionpack- n n 1448008912 A - - gz Geometry manager that packs around edges of cavityxcb_dri3_pixmap_from_buffer- 3 3 1540917640 A - - gz va_arg va_arg 3 va_arg 3ptemplate::iteratorTemplate::Iterator 3pm 3 1402357151 A - - gz Data iterator used by the FOREACH directiveutmpx- 5 5 1402354219 B - - gz login recordsxcb_x_print_print_input_selected- 3 3 1540917640 A - - gz _tracef- 3x 3 1720626759 B - - gz curses debugging routinesget_wch- 3x 3 1720626759 B - - gz get (or push back) a wide character from curses terminal keyboardxml::libxml::cdatasectionXML::LibXML::CDATASection 3pm 3 1402352993 A - - gz XML::LibXML Class for CDATA Sectionsxcb_glx_get_queryiv_arb- 3 3 1540917640 A - - gz xsetfillstyleXSetFillStyle 3 3 1710950786 A - - gz GC convenience routinesinsw- 2 2 1402354205 B - - gz port I/Oxcb_glx_get_histogram_unchecked- 3 3 1540917640 B - - gz tiffcomputetileTIFFComputeTile 3tiff 3 1729525165 C TIFFtile - gz xcb_xkb_get_compat_map_group_rtrn_length- 3 3 1540917640 B - - gz sigorset- 3 3 1402354212 B - - gz POSIX signal set operations.xcb_get_pointer_mapping_map_end- 3 3 1540917640 B - - gz history n- n n 1448008823 A - - gz Manipulate the history listmysql_tzinfo_to_sql- 1 1 1697025034 A - - gz load the time zone tablesfaillock- 8 8 1585713588 A - - gz Tool for displaying and modifying the authentication failure record filesstunnel- 8 8 1478362956 A - - gz universal SSL tunnelsys_resource.h- 0p 0p 1402354203 A - - gz definitions for XSI resource operationsxcb_xfixes_create_region_from_window- 3 3 1540917640 A - - gz exporter::heavyExporter::Heavy 3pm 3 1402373350 A - - gz Exporter gutsfeof_unlocked- 3 3 1402354209 B - - gz nonlocking stdio functionsec_key_get_flagsEC_KEY_get_flags 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_KEY objects.systemd-readahead- 8 8 1711457788 B - - gz Disk read ahead logicaureport- 8 8 1565265962 A - - gz a tool that produces summary reports of audit daemon logsmailx 1p- 1p 1p 1402354204 A - - gz process messagestcl_getencodingnamefromenvironmentTcl_GetEncodingNameFromEnvironment 3 3 1448008821 B - - gz procedures for creating and using encodingsscr_restore_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensiongrub-mkstandalone- 1 1 1722985065 C grub2-mkstandalone - gz tcl_channelwideseekprocTcl_ChannelWideSeekProc 3 3 1448008821 B - - gz procedures for creating and manipulating channelsxsetfillruleXSetFillRule 3 3 1710950786 B - - gz GC convenience routineslwp-mirror- 1 1 1402363153 A - - gz Simple mirror utilitydef_prog_mode- 3x 3 1720626759 B - - gz low-level curses routinestowctrans towctrans 3 towctrans 3pgetchar_unlocked getchar_unlocked 3 getchar_unlocked 3pcms_finalCMS_final 3ssl 3 1699892206 A - - gz finalise a CMS_ContentInfo structurexcb_glx_get_error_unchecked- 3 3 1540917640 B - - gz xcb_xvmc_create_context- 3 3 1540917640 A - - gz llrintf 3p- 3p 3p 1402354216 B - - gz round to the nearest integer value using current rounding directionssl_set1_verify_cert_storeSSL_set1_verify_cert_store 3ssl 3 1721417624 B - - gz set certificate verification or chain storesystemd-cryptsetup- 8 8 1711457788 B - - gz Full disk decryption logicres_query- 3 3 1402354211 B - - gz resolver routinesxcb_composite_get_overlay_window_unchecked- 3 3 1540917640 B - - gz xcb_sync_counter_notify_event_t- 3 3 1540917640 A - - gz xcb_input_get_device_dont_propagate_list_classes_length- 3 3 1540917640 B - - gz ssl_ctx_set_default_passwd_cb_userdataSSL_CTX_set_default_passwd_cb_userdata 3ssl 3 1721417624 B - - gz set passwd callback for encrypted PEM file handlingxcb_selinux_get_selection_data_context_context_end- 3 3 1540917640 B - - gz zgrep- 1 1 1652367512 A - - gz search possibly compressed files for a regular expressionmq_unlink 3p- 3p 3p 1402354216 A - - gz remove a message queue (REALTIME)devel::selfstubberDevel::SelfStubber 3pm 3 1698237673 A - - gz generate stubs for a SelfLoading modulelocale::codes::countryLocale::Codes::Country 3pm 3 1402383323 A - - gz standard codes for country identificationxkblockgroupXkbLockGroup 3 3 1710950785 A - t gz Locks the keysym groupuri::escapeURI::Escape 3pm 3 1402351652 A - - gz Percent-encode and percent-decode unsafe charactersxgetpointermappingXGetPointerMapping 3 3 1710950786 B - - gz manipulate pointer settingsxml::libxml::xpathexpressionXML::LibXML::XPathExpression 3pm 3 1402352994 A - - gz XML::LibXML::XPathExpression - interface to libxml2 pre-compiled XPath expressionsis_keypad- 3x 3 1720626759 B - - gz curses window propertiesuniq 1p- 1p 1p 1402354204 A - - gz report or filter out repeated lines in a filedbi::profileDBI::Profile 3pm 3 1402362413 A - - gz Performance profiling and benchmarking for the DBIsscanf sscanf 3 sscanf 3pacct 2- 2 2 1402354204 A - - gz switch process accounting on or offcrda- 8 8 1540938735 A - - gz send to the kernel a wireless regulatory domain for a given ISO / IEC 3166 alpha2mysqlshow- 1 1 1697025034 A - - gz display database, table, and column informationtanh 3p- 3p 3p 1402354218 A - - gz hyperbolic tangent functionsxcb_dri2_connect_device_name_end- 3 3 1540917640 B - - gz err_func_error_stringERR_func_error_string 3ssl 3 1721417624 B - - gz obtain human-readable error messageconnect connect 2 connect 3pec_gfp_simple_methodEC_GFp_simple_method 3ssl 3 1721417624 A - - gz Functions for obtaining EC_METHOD objects.y0 3- 3 3 1402354213 A - - gz Bessel functions of the second kindcpanplus::backendCPANPLUS::Backend 3pm 3 1402392266 A - - gz programmer's interface to CPANPLUSsignificandl- 3 3 1402354212 B - - gz get mantissa of floating-point numbersemanage-fcontext- 8 8 1585713889 A - - gz SELinux Policy Management file context toolperlhacktut- 1 1 1698237666 A - - gz Walk through the creation of a simple C code patchiconv_close iconv_close 3 iconv_close 3pyaml::marshallYAML::Marshall 3pm 3 1402340435 A - - gz YAML marshalling class you can mixin to your classesscalbn 3- 3 3 1402354212 B - - gz multiply floating-point number by integral power of radixgit-stash- 1 1 1722330782 A - - gz Stash the changes in a dirty working directory awayevp_encryptinit_exEVP_EncryptInit_ex 3ssl 3 1721417624 B - - gz EVP cipher routinesnetreport- 1 1 1605543616 A - - gz request notification of network interface changeseuca-disassociate-route-table- 1 1 1484780705 A - - gz Disassociate a VPC subnet from a route tablegetchar getchar 3 getchar 3ptcl_getobjresultTcl_GetObjResult 3 3 1448008822 B - - gz manipulate Tcl resultxcb_sync_set_counter- 3 3 1540917640 A - - gz xtimecoordXTimeCoord 3 3 1710950786 B - - gz send events and pointer motion history structurebn_is_bit_setBN_is_bit_set 3ssl 3 1721417624 B - - gz bit operations on BIGNUMsutmpx.h- 0p 0p 1402354203 A - - gz user accounting database definitionspcrebuild- 3 3 1501643278 A - - gz Perl-compatible regular expressionsvsscanf 3p- 3p 3p 1402354219 B - - gz format input of a stdarg argument listxcb_randr_get_crtc_transform_pending_params_length- 3 3 1540917640 B - - gz fchmod 3p- 3p 3p 1402354215 A - - gz change mode of a filecpanplus::faqCPANPLUS::FAQ 3pm 3 1402392266 A - - gz CPANPLUS Frequently Asked Questionsxcb_randr_set_crtc_transform_checked- 3 3 1540917640 B - - gz logname logname 1p logname 1tiffreadscanlineTIFFReadScanline 3tiff 3 1729525165 A - - gz read and decode a scanline of data from an open TIFF filedatetime::locale::es_boDateTime::Locale::es_BO 3pm 3 1402390642 A - - gz usb_modeswitch_dispatcher- 1 1 1523404127 A - - gz Linux wrapper for usb_modeswitch (not intended for direct invocation)tar tar 1 tar 5lwres_buffer_clear- 3 3 1725373371 B - - gz lightweight resolver buffer managementxcb_record_enable_context_reply- 3 3 1540917640 B - - gz setnetent setnetent 3 setnetent 3pborder_set- 3x 3 1720626759 B - - gz create curses borders or lines using complex characters and renditionscolon- 1p 1p 1402354203 A - - gz null utilitymodule::build::platform::mpeixModule::Build::Platform::MPEiX 3pm 3 1402373050 A - - gz Builder class for MPEiX platformssyslog syslog 3 syslog 2 syslog 3prtnetlink 7- 7 7 1402354220 A - t gz Linux IPv4 routing socketxkeycodetokeysymXKeycodeToKeysym 3 3 1710950786 B - - gz convert keysymsrsa_private_decryptRSA_private_decrypt 3ssl 3 1699892213 A - - gz RSA public key cryptographyfcpatterngetFcPatternGet 3 3 1520307172 A - - gz Return a value from a patternxcb_test_compare_cursor_reply- 3 3 1540917640 B - - gz xml::libxml::attributehashXML::LibXML::AttributeHash 3pm 3 1402352994 A - - gz tie an XML::LibXML::Element to a hash to access its attributesxrmqputstringresourceXrmQPutStringResource 3 3 1710950786 B - - gz store database resourcessetutxent 3p- 3p 3p 1402354218 B - t gz user accounting database functionsarchive::extractArchive::Extract 3pm 3 1402363502 A - - gz A generic archive extracting mechanisminet_ntop inet_ntop 3 inet_ntop 3ptest::longstringTest::LongString 3pm 3 1390859866 A - - gz tests strings for equality, with more helpful failuresxcb_randr_get_provider_info_reply- 3 3 1540917640 B - - gz xcb_randr_set_crtc_config_unchecked- 3 3 1540917640 B - - gz tap::formatter::consoleTAP::Formatter::Console 3pm 3 1439389327 A - - gz Harness output delegate for default console outputimaxdiv 3p- 3p 3p 1402354216 A - - gz return quotient and remainderx509_verify_param_get_flagsX509_VERIFY_PARAM_get_flags 3ssl 3 1721417624 B - - gz X509 verification parametersxtfindfileXtFindFile 3 3 1501646833 A - - gz search for a file using substitutions in the path listxcb_res_query_resource_bytes_sizes_iterator- 3 3 1540917640 B - - gz xcb_install_colormap- 3 3 1540917640 A - - gz dsa_print_fpDSA_print_fp 3ssl 3 1721417624 B - - gz print cryptographic parametersxcb_render_query_filters_aliases_length- 3 3 1540917640 B - - gz datetime::locale::etDateTime::Locale::et 3pm 3 1402390632 A - - gz ifdown- 8 8 1605900785 B - - gz bring a network interface up$version$2.4.1xcb_glx_get_materialfv_reply- 3 3 1540917640 B - - gz xsetinputfocusXSetInputFocus 3 3 1710950786 A - - gz control input focusxcmscieluvquerymaxcXcmsCIELuvQueryMaxC 3 3 1710950786 A - - gz obtain the CIE L*u*v* coordinatesfcblanksaddFcBlanksAdd 3 3 1520307172 A - - gz Add a character to an FcBlanksclipboard- n n 1448008911 A - - gz Manipulate Tk clipboardnetlink 7- 7 7 1402354220 A - t gz communication between kernel and user space (AF_NETLINK)mq_unlink 3- 3 3 1402354211 A - - gz remove a message queuehmac_finalHMAC_Final 3ssl 3 1721417624 B - - gz HMAC message authentication codecatopen 3p- 3p 3p 1402354214 A - - gz open a message catalog ? apzps2p0 k!evp_t0Dxpoi0O?^atex+1bssl_F1eOtcl_1 OVoxque2A"0xcb_l2%ӂ0tc-c2 E3tcl_2}Gevp_3FSinit3 Igxcb_;4(į@tcl_~4Perr_4Bxpam_@5 @jdate54Fxcb_5"temp6Pxputg6 2xoff68V\next6 euar 7Ngrubo76ofwget7 4 host7-0dbm_$8 /acos]8. Lseli8EY!cpan8^HKscana9SZ-infny9Jjfc9 Wpcre9swit9Stput : ;Y avc_M:>`#i2d_:['+Zfget; 2sxcb_Q;,mone; +gDdb_a; =Wpthr<Ypthr<4ycms_<ZYxcb_M=8mçkeyb= 8[gextu=]S"tracZ>.gitrr>Ofdop> FD0fcst#?@Egremar?/baud? =œx509S@+wcstq ObposìfxkbgE JMxcb_+{getoӁ ;[isat 7׼copyX 0-gamm<wxcb_Ղ()filt BGBxcb_h,key43autoك ?6Xunsh#0/.bn_rZG|hismoCremqec_pyNxcb_!ckoi8ޅ]e csetsB 9xcb_*,htdiɆ FJ~fcco@^grubo R[xcb_·#+<slk_  6UJauthOWNpem_8x509R\ec_pi)L:clieN}evp_P} -evp_ @ Nxcb_0thinb SMUsigs > pod: HfstaY 5sets @N?fcweh\ƨoutsd#@Ugetg ;bcronԍ K4Yperl) 0set_d Q6r}grubŽ; xrmpD&_des_j 7kLscal Tgit-] Nkevp_Be9netr  Levp_@euca`GgetcȈtcl_?D]{xcb_3zvxtimc T#bn_iC<utmpA)ûpcre\ >vssc Cgxcb_3fchm@ 2?cpan|Lqxcb_%YlognGjtiff4g{date3Eusb_`Rtarq :PlwreA-xcb_ Tsetn bord5 b>colo)Rmodu[ǯsyslK"rtneo 4"xkey9{(rsa_KpfcpaX Cxcb_qKnxml:txrmqpG_Fsetu ?`archR#/b0™inet| 2:3testbxcb_"xcb_P${JdateS03ٽimax  :!x509QTxtfi ZCxcb_&,xcb_m`dsa_ GQxcb_(date40Sifdoy7)xset;ώyxcmsJNffcbl CsU$ver clip 2|anetl7 S0Xmq_u 1,*hmac GAicato# 3yxcb_wxcb_'uOxcreB^QfiniF[avc_> WperlN .`acce :jxcb_&+scal  Qktimee G`getp9Gxcb_.curs ]xcb_NtcptH wcsc  M;xcb_a"xkbgOnoec\ ;xcb_'tJlcho{pthr8S.cpowFԙnwech[ m_neuar4^xtempQfZtcl_Jpcre ?"trun/ @H[toupz LxtovI bn_p1H}xeviEDAxtdegeuarU3:ife"Cssl_ Xavxfre@ \excb_@xfilJ"free<6(8utim Klp 4/O,unzi  N$pgawcCpem_=pthr;autoL db::lOqxcb_W"Mevp_ Zmvwg R#sleeq D {pass  ?x xkba!^}.sett!pxcb_! mumas!#P\Zsyml#" 5$&chowb"5Lwcst" CIUlvmc" KsecoC#Voccos# @v:less#8egxcb_($)Kintrl$7-Zfuse$ =h/xcb_$qiost+%Glpink%-n4git-%H?Xec_k>&xvMtcl_&oA2ZnoloX'ssl_u'R{ytiff'\$pam_Q( ^9pfloo(O4evp_(Vbn_m>)F8cryp) sete)rand) <ntput*zsyst%* IWؐec_gx* `>logb*A7outl.+#kevp_V+YOdtls+ nKtcl_?,hJpwcsx,A˗1sem_- -b%abs :-C!܊bio_-?Ndlad-J\mxcb_#.Rfcpa\.<bssl_.e(git-)/G(Ztxsto/ 0dstrt/fcla0 FAtap:excb_render_composite_glyphs_32_checked- 3 3 1540917640 B - - gz xcreatefontsetXCreateFontSet 3 3 1710950786 A - - gz create and free an international text drawing font setfinitef- 3 3 1402354209 B - - gz BSD floating-point classification functionsavc_compute_create- 3 3 1585710994 A - - gz obtain SELinux label for new objectperlfaq6- 1 1 1698237665 A - - gz Regular Expressionsaccept 2- 2 2 1402354204 A - - gz accept a connection on a socketxcb_input_change_device_control_reply- 3 3 1540917640 B - - gz scale_menu- 3x 3 1720626759 B - - gz make and break menu window and subwindow associationstimezone timezone 3 timezone 3pgetprotobynumber_r- 3 3 1402354209 B - - gz get protocol entry (reentrant)xcb_selinux_get_property_create_context_reply- 3 3 1540917640 B - - gz curs_get_wch- 3x 3 1715932336 A - - gz get (or push back) a wide character from curses terminal keyboardxcb_recolor_cursor- 3 3 1540917640 A - - gz tcptraceroute- 8 8 1533764426 B - - gz print the route packets trace to network hostwcscspn 3p- 3p 3p 1402354219 A - - gz get the length of a complementary wide substringxcb_input_touch_ownership_event_t- 3 3 1540917640 A - - gz xkbgetindicatorchangesXkbGetIndicatorChanges 3 3 1710950785 A - - gz Updates a local copy of the keyboard description with the actual values of one or more calls to XkbNoteIndicatorChangesnoecho_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionxcb_input_ungrab_device_button_checked- 3 3 1540917640 B - - gz lchown lchown 2 lchown 3ppthread_join 3p- 3p 3p 1402354217 A - - gz wait for thread terminationcpow cpow 3 cpow 3pwecho_wchar- 3x 3 1720626759 B - - gz add a complex character and rendition to a curses window, then advance the cursoreuare-userlistbypath- 1 1 1484780705 A - - gz List your account's userstemplate::manual::internalsTemplate::Manual::Internals 3pm 3 1402357152 A - - gz Template Toolkit internalstcl_listobjlengthTcl_ListObjLength 3 3 1448008822 B - - gz manipulate Tcl objects as listspcreposix- 3 3 1501643278 A - - gz Perl-compatible regular expressions.truncate 2- 2 2 1402354206 A - - gz truncate a file to a specified lengthtoupper 3p- 3p 3p 1402354219 A - - gz transliterate lowercase characters to uppercasextoverridetranslationsXtOverrideTranslations 3 3 1501646833 B - - gz manage translation tablesbn_pseudo_randBN_pseudo_rand 3ssl 3 1721417624 B - - gz generate pseudo-random numberxeviXevi 3 3 1448003986 A - - gz X Extended Visual Information functionsxtdestroyapplicationcontextXtDestroyApplicationContext 3 3 1501646833 B - - gz create, destroy, and obtain an application contexteuare-userdelloginprofile- 1 1 1484780705 A - - gz Delete a user's passwordifeIFE 8 8 1601484048 C tc-ife - gz ssl_ctx_set_psk_server_callbackSSL_CTX_set_psk_server_callback 3ssl 3 1721417624 B - - gz set PSK identity hint to usexfreefontsetXFreeFontSet 3 3 1710950786 A - - gz create and free an international text drawing font setxcb_shape_input_selected_reply- 3 3 1540917640 B - - gz xfillrectangleXFillRectangle 3 3 1710950786 A - - gz fill rectangles, polygons, or arcsfree_hugepages- 2 2 1402354204 B - - gz allocate or free huge pagesutimensat 2- 2 2 1402354206 A - - gz change file timestamps with nanosecond precisionlp 4- 4 4 1402354219 A - t gz line printer devicesunzipsfx- 1 1 1240180728 A - - gz self-extracting stub for prepending to ZIP archivespgawk- 1 1 1711653987 B - - gz pattern scanning and processing languagepem_write_dsa_pubkeyPEM_write_DSA_PUBKEY 3ssl 3 1721417624 B - - gz PEM routinespthread_barrierattr_getpshared- 3p 3p 1402354217 A - - gz get and set the process-shared attribute of the barrier attributes object (ADVANCED REALTIME THREADS)autodie::skip- 3pm 3 1402392173 A - - gz Skip a package when throwing autodie exceptionsb::lint::debugB::Lint::Debug 3pm 3 1402354685 A - - gz Adds debugging stringification to B::xcb_input_device_valuator_event_t- 3 3 1540917640 A - - gz mvwgetnstr- 3x 3 1720626759 B - - gz accept character strings from curses terminal keyboardevp_pkey_print_privateEVP_PKEY_print_private 3ssl 3 1721417624 A - - gz public key algorithm printing routines.sleep 3- 3 3 1402354212 A - - gz sleep for the specified number of secondspassmass- 1 1 1435097319 A - - gz change password on multiple machinesxkbapplycompatmaptokeyXkbApplyCompatMapToKey 3 3 1710950785 A - t gz Apply the new compatibility mapping to an individual key to get its semantics updatedsetterm setterm 3x setterm 1xcb_glx_get_tex_genfv_unchecked- 3 3 1540917640 B - - gz umask umask 2 umask 1p umask 1 umask 3psymlink 2- 2 2 1402354206 A - - gz make a new name for a filechown 2- 2 2 1402354205 A - - gz change ownership of a filewcstoumax 3- 3 3 1402354213 B - - gz convert wide-character string to integerlvmconfig- 8 8 1619616701 A - - gz Display and manipulate configuration informationsecon- 1 1 1585713889 A - - gz See an SELinux context, from a file, program or user input.ccosh 3p- 3p 3p 1402354214 A - - gz complex hyperbolic cosine functionslesskey- 1 1 1365094507 A - - gz specify key bindings for lessxcb_input_get_device_key_mapping_keysyms- 3 3 1540917640 B - - gz intro 2- 2 2 1402354205 A - - gz introduction to system callsfusermount- 1 1 1540935154 A - - gz mount and unmount FUSE filesystemsxcb_glx_render_large_checked- 3 3 1540917640 B - - gz iostat- 1 1 1697208922 A - - gz Report Central Processing Unit (CPU) statistics and input/output statistics for devices and partitions.pinky- 1 1 1605565487 A - - gz lightweight fingergit-update-ref- 1 1 1722330781 A - - gz Update the object name stored in a ref safelyec_key_new_by_curve_nameEC_KEY_new_by_curve_name 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_KEY objects.tcl_getchannelerrorinterpTcl_GetChannelErrorInterp 3 3 1448008822 B - - gz functions to create/intercept Tcl errors by channel drivers.nologin nologin 8 nologin 5ssl_use_psk_identity_hintSSL_use_psk_identity_hint 3ssl 3 1721417624 B - - gz set PSK identity hint to usetifffieldwritecountTIFFFieldWriteCount 3tiff 3 1729525165 A - - gz Get number of values to be written to fieldpam_faillock- 8 8 1585713588 A - - gz Module counting authentication failures during a specified intervalfloor floor 3 floor 3pevp_pkey_ctx_get_cbEVP_PKEY_CTX_get_cb 3ssl 3 1721417624 B - - gz key and parameter generation functionsbn_mont_ctx_freeBN_MONT_CTX_free 3ssl 3 1721417624 B - - gz Montgomery multiplicationcrypt crypt 3 crypt 3pseteuid seteuid 2 seteuid 3prand_addRAND_add 3ssl 3 1721417624 A - - gz add entropy to the PRNGtput tput 1p tput 1systemctl- 1 1 1711457787 A - t gz Control the systemd system and service managerec_group_newEC_GROUP_new 3ssl 3 1721417624 A - - gz Functions for creating and destroying EC_GROUP objects.logbl 3- 3 3 1402354210 B - - gz get exponent of a floating-point valueoutl- 2 2 1402354205 B - - gz port I/Oevp_pkey_print_paramsEVP_PKEY_print_params 3ssl 3 1699892210 A - - gz public key algorithm printing routines.dtls_methodDTLS_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionstcl_getstdchannelTcl_GetStdChannel 3 3 1448008822 A - - gz procedures for retrieving and replacing the standard channelswcsxfrm- 3p 3p 1402354219 A - - gz wide-character string transformationsem_post 3- 3 3 1402354212 A - - gz unlock a semaphoreabs 3- 3 3 1402354210 A - - gz compute the absolute value of an integerbio_method_typeBIO_method_type 3ssl 3 1721417624 B - - gz BIO chain traversaldladdr- 3 3 1402354208 B - - gz programming interface to dynamic linking loaderxcb_render_set_picture_filter- 3 3 1540917640 A - - gz fcpatternadddoubleFcPatternAddDouble 3 3 1520307172 C FcPatternAdd-Type - gz ssl_get_msg_callback_argSSL_get_msg_callback_arg 3ssl 3 1721417624 B - - gz install callback for observing protocol messagesgit-check-ref-format- 1 1 1722330781 A - - gz Ensures that a reference name is well formedxstorecolorsXStoreColors 3 3 1710950786 A - - gz set colorsstrtof strtof 3 strtof 3pfclangsetdelFcLangSetDel 3 3 1520307172 A - - gz delete a language from a langsetdatetime::locale::km_khDateTime::Locale::km_KH 3pm 3 1402390638 A - - gz datetime::locale::pa_arabDateTime::Locale::pa_Arab 3pm 3 1402390643 A - - gz conf_modules_loadCONF_modules_load 3ssl 3 1721417624 B - - gz OpenSSL configuration functionsxcb_randr_get_screen_resources_current_names_length- 3 3 1540917640 B - - gz xcb_input_set_device_mode_unchecked- 3 3 1540917640 B - - gz xrandr- 1 1 1502476988 A - - gz primitive command line interface to RandR extensionxcb_randr_get_output_info- 3 3 1540917640 A - - gz gfdl-libstdc++-plesk-12.2.0- 7 7 631195200 A - - gz GNU Free Documentation Licensessl_want_x509_lookupSSL_want_x509_lookup 3ssl 3 1721417624 B - - gz obtain state information TLS/SSL I/O operationssl_ctx_set0_verify_cert_storeSSL_CTX_set0_verify_cert_store 3ssl 3 1721417624 B - - gz set certificate verification or chain storeendian- 3 3 1402354208 A - - gz convert values between host and big-/little-endian byte orderiso_8859-5- 7 7 1402354220 A - t gz ISO 8859-5 character set encoded in octal, decimal, and hexadecimalsvcerr_weakauth- 3 3 1402354212 B - - gz library routines for remote procedure callsstapbpf- 8 8 1602605484 A - - gz systemtap bpf runtimetk_messageboxtk_messageBox n n 1448008912 A - - gz pops up a message window and waits for user response.sys/utsname.h- 0p 0p 1402354203 C utsname.h - gz xcb_glx_get_query_objectiv_arb_data- 3 3 1540917640 B - - gz pam_loginuid- 8 8 1585713590 A - - gz Record user's login uid to the process attributegrub2-menulst2cfg- 1 1 1722985065 A - - gz Convert a configuration file from GRUB 0.xx to GRUB 2.xx format.slk_init_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionxcb_xfixes_change_save_set_checked- 3 3 1540917640 B - - gz tcl_dooneeventTcl_DoOneEvent 3 3 1448008821 A - - gz wait for events and invoke event handlersperf_event_open- 2 2 1402354205 A - - gz set up performance monitoringpthread_getaffinity_np- 3 3 1402354211 B - - gz set/get CPU affinity of a threadxutf8textlisttotextpropertyXutf8TextListToTextProperty 3 3 1710950786 B - t gz convert text lists and text property structuresquotaoff- 8 8 1319118019 A - - gz turn filesystem quotas on and offfg 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)yaml::loader::baseYAML::Loader::Base 3pm 3 1402340435 A - - gz Base class for YAML Loader classesssl_ctx_set_custom_cli_extSSL_CTX_set_custom_cli_ext 3ssl 3 1699892220 A - - gz custom TLS extension handlingwcslen 3- 3 3 1402354213 A - - gz determine the length of a wide-character stringxcb_xfixes_query_version- 3 3 1540917640 A - - gz xtscreendatabaseXtScreenDatabase 3 3 1501646833 B - - gz initialize, open, or close a displaygetdtablesize getdtablesize 3 getdtablesize 2tc-choke- 8 8 1601484048 A - - gz choose and keep schedulereuca-reject-vpc-peering-connection- 1 1 1484780705 A - - gz Reject a request for a VPC peering connectionmvins_wstr- 3x 3 1720626759 B - - gz insert a wide-character string into a curses windowxcb_query_text_extents- 3 3 1540917640 A - - gz get text extentsgetuid getuid 2 getuid 3ptemplate::plugin::viewTemplate::Plugin::View 3pm 3 1402357151 A - - gz Plugin to create views (Template::View)dsa 3ssl- 3ssl 3 1699892216 A - - gz Digital Signature Algorithmerfc erfc 3 erfc 3pi2d_ecprivatekeyi2d_ECPrivateKey 3ssl 3 1721417624 B - - gz Encode and decode functions for saving and reading EC_KEY structures__setfpucw- 3 3 1402354207 A - - gz set FPU control word on i386 architecture (obsolete)ssl_ctx_get_verify_modeSSL_CTX_get_verify_mode 3ssl 3 1721417624 A - - gz get currently set verification parametersbio_set_sslBIO_set_ssl 3ssl 3 1721417624 B - - gz SSL BIOxcb_randr_set_panning- 3 3 1540917640 A - - gz cacos cacos 3 cacos 3pxcb_close_font_checked- 3 3 1540917640 B - - gz xaddhostsXAddHosts 3 3 1710950785 B - - gz control host access and host control structureevp_bytestokeyEVP_BytesToKey 3ssl 3 1699892209 A - - gz password based encryption routinepidof- 8 8 1402355803 A - - gz find the process ID of a running program.xcb_glx_get_floatv_data- 3 3 1540917640 B - - gz avc_add_callback- 3 3 1585710994 A - - gz additional event notification for SELinux userspace object managersdatetime::locale::woDateTime::Locale::wo 3pm 3 1402390641 A - - gz xkbaddgeomdoodadXkbAddGeomDoodad 3 3 1710950785 A - - gz Add one doodad to a section of a keyboard geometry or to the top-level geometryxcb_glx_get_convolution_parameteriv_unchecked- 3 3 1540917640 B - - gz xfs_admin- 8 8 1601488312 A - - gz change parameters of an XFS filesystemxcb_input_device_state_notify_event_t- 3 3 1540917640 A - - gz xcb_xvmc_create_context_priv_data_end- 3 3 1540917640 B - - gz abrt-action-save-kernel-data- 1 1 1601569733 A - - gz Creates uReport mandatory files for kernel oopses.quotasync- 1 1 1565318038 A - - gz synchronize in-kernel file system usage and limits to disk format dNhpare\tap:W^gete@ ,)ethe@ A{Kdate:A3ubackPAԡmatco">audi# gtputKPxcb_-}cataA/IpthrABv^evp_B ;2tap:dBeN7xcb_BHbashC1`eucaQC EkxSevp_CB6Qntipa DBGlpingTDB8mjbio_D ?K~1ssl_DQj/pkcsPE K evp_ED•readE q]vbio_{F@½fcinFA!cxcb_'G6getrxG GscheG<K@)getp H 2Өbn_mJHE:callH /^WisalH < tcflI \[fpapeI BOsha3I =`date(1kdynao:i2d_JVn7eufoJ2q geoiJ Fusetc K=yldatekK8bpf"ARcrypK @8tiff LHscaljL \sendL7!xunm7AkeycL%W 0lslo*2oxcb_d&M*xcb_32bio_M /sdgrou;M BO`|getr4:xcb_6/ATnumc <\getr -#.oper H tiffO3ni2d_F{\date3settM 2k!Pshas/7tYsinhM6pthrNFv}8xcb_\N*}xcb_maeulb(uegetfD89evp_NA8xkbqN` tracfO HpkexO<git- Iec_p=pkcs[Wxcb_"doesCQ(xml:Xjexp2 90erffY)kmemocGbg 1P7Dui_cB7:xcb_߂dword{rdate73]setk 2qb syst!08[xcb_#,asct >v]anacӃ5pxkil 4{tcl_PPtcl_Cyhttp  CtiffZ9pkcsG.]mq_c =qxcb_9xauumD pxcb_"xcb_"verrn90seli[Jevp_UӋ|xcb_!agetu0 B"9ilog| IpjsonΈ [&xdr_2 LSgtcl_Xk9sche$0@>reni#xcb_>|VextuuMbclosԊ F+xzleB;ixcb_>P xcb_q!{: date3aperl:uextu7g|Wpthr?Vclog@mbstM P?audi1geti @ l2xsha,Lxtco =./sigrQ .Ltrun =Vserfc7lxdr_Ҏ L!$xcb_)#9cgit-g Ugetc:fstrcŏKbio_E0__maM5*5dbi: K xcb_Хpkcs2lggetpN<9lvmdPӡbxcb_&Ggets1:asin =splir5dxcb_ $tcl_  GWXYifst Mxcb_f ,gete  A +wins  OMussl_Q  Stcl_ Q`JxrmgTK Puse_r ;gchdi 5Qodbm >'ʪxdbe>K:Rosetu 3ȞcustPL3__cl_P 1 xtvaPOLstimP#sigs$Q )UtzfiXQ/$xcb_Q)DforQ%]winsQ R.userVR Q`tiffR]wstrc!S .KcleaXS 9/sg_rS ^C-xmbuTG?appl_TF Jtcl_TPVisnaUF)KVselikU"|xcb_ Vg}pthrCV:,xcb_V&_jranV (xcb_Vfmvcu/W ;:xcb_sW1U{ainfoW.T\xcb_Weevp_)XDtcl_XDYpsfsXZC~tsorEY3_perlY>xcb_YԿfcinY<H bcreaLZ<etheZAj0hostZ0gtype[ AG#tracc[$@Թxcb_[!eulb[H,xcb_-\)Xunanoq\,zrsa_\NPsfdi]@8routN]@@Ǫxcir]Nclnt] FsuexL^IX>emapf^>tiff^GsranC_9fata_Xdate@5,confO@Mxcb_@4, xcb_@$p?xranOTxmbuOLperl *ybsd:Zҥtcl_FQi2d_q >date05lwreF l FeucaJ#HIzmvin K OJ&xcb_zK+L(getuK~$tempKYfdsa GL 9YerfcL i2d_Lqi8__se M Ossl_zM]Iibio_M /1xcb_*Nءcaco[NtNxcb_sN=uxaddN Qevp_OLGHpido[ODxcb_Oiavc_P^dateoP0xkbaPydxcb_>Q.kC`xfs_Q ALxcb_Q&Wxcb_R&CiabrtTRM quotR \5`expm .smar7 Jssl_Tv_atcl_?ssl_C!hwww:̱^rstdi>ogpl-V49xcb_ csinײ2xcb_xcb_Cucxtist CU\munmij z!idco1kcpan$)tT]cpu_ Cepam_ (UxdirCPyrsa_ 7Zpam_ :>6xadd8Acaps<e$perlʶ NNdnss#7uAzcatk84pair >4POforkDgetg  Bc2vid_Y ;ٞextuV9Hdate 88xcb_^^set_4statҹ,M svc_ F/newwW ;xcb_&8xcb_ݺ&JsTrema Axcb_E&$Qtiff6ittk:ͻ?cpro 9Osigp_ TxkbrU pod:$Cfccov@fpmapƽ FDgcorD]#euarc6qgete 6e>pthr2yxdr_9 LGcolo>tcl_Sxdg-g *cpow1Rdes_2 7+fcwetbddbi:e|Udbd:i @`rt_s =M/logn 28!ssl_:I 9temp]Ybn_s?"addcTi*hpthr?wbn_c Exgete=jsed Lyigrub<VqemuM+2user0Xyxcb_ŸibusiL4tiffQ 1xcb_oi2d_b;xcb_- !xml:gITٶabrt3#euar}3wmvۿ ipc.L9sett  B ŗcpu_mATMevp_HRKstpnSՋ>runurJ2$modf>gai_ K;XCome Jmsgc <bssl_i:indetcl_cGnewtRlxchap bsem_ ?tcl_Tؼxcb_k)\ƈouts# ?eucaFxsera: Ctcl_qxcb_:"b arraw5?MpspeLPmqpr (tcfl; U9xtgr /!bsnmp H}2cpan$@@Lsigsӥui_ns5zOeucaFqfput  BOatanX 2expm1l 3- 3 3 1402354208 B - - gz exponential minus 1smartd.conf- 5 5 1585715574 A - - gz SMART Disk Monitoring Daemon Configuration Filessl_ctx_set_cert_cbSSL_CTX_set_cert_cb 3ssl 3 1721417624 A - - gz handle certificate callback functiontcl_pkgpresentTcl_PkgPresent 3 3 1448008822 A - - gz package version controlssl_ctx_set_cert_verify_callbackSSL_CTX_set_cert_verify_callback 3ssl 3 1699892220 A - - gz set peer certificate verification procedurewww::mechanize::faqWWW::Mechanize::FAQ 3pm 3 1391076350 A - - gz Frequently Asked Questions about WWW::Mechanizestdin stdin 3 stdin 3pgpl-libstdc++-plesk-12.2.0- 7 7 631195200 A - - gz GNU General Public Licensexcb_glx_create_context- 3 3 1540917640 A - - gz csinh 3- 3 3 1402354208 A - - gz complex hyperbolic sinexcb_xv_query_extension- 3 3 1540917640 A - - gz xcb_fill_poly_checked- 3 3 1540917640 B - - gz xtisrealizedXtIsRealized 3 3 1501646833 B - - gz realize and unrealize widgetsmunmap 3- 3 3 1402354211 C mmap64 - gz idcok- 3x 3 1720626759 B - - gz curses output optionscpanplus::shell::default::plugins::howtoCPANPLUS::Shell::Default::Plugins::HOWTO 3pm 3 1402392266 A - - gz - documentation on how to write your own pluginscpu_allocCPU_ALLOC 3 3 1402354206 B - - gz macros for manipulating CPU setspam_get_user- 3 3 1585713595 A - - gz get user namexdirectionaldependentdrawingXDirectionalDependentDrawing 3 3 1710950786 B - - gz obtain fontset informationrsa_flagsRSA_flags 3ssl 3 1721417624 B - - gz select RSA methodpam_set_item- 3 3 1585713595 A - - gz set and update PAM informationsxaddtosavesetXAddToSaveSet 3 3 1710950785 B - - gz change a client's save setcapset- 2 2 1402354204 B - - gz set/get capabilities of thread(s)perlnumber- 1 1 1698237666 A - - gz semantics of numbers and numeric operations in Perldnssec-dsfromkey- 8 8 1725373373 A - - gz DNSSEC DS RR generation toolzcat 1p- 1p 1p 1402354204 A - - gz expand and concatenate datapair_content- 3x 3 1720626759 B - - gz curses color manipulation routinesfork fork 2 fork 3pgetgroups 2- 2 2 1402354205 A - - gz get/set list of supplementary group IDsvid_puts_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionextutils::cbuilderExtUtils::CBuilder 3pm 3 1698237385 A - - gz Compile and link C code for Perl modulesdatetime::locale::zh_hans_cnDateTime::Locale::zh_Hans_CN 3pm 3 1402390644 A - - gz xcb_dri2_connect_reply- 3 3 1540917640 B - - gz set_menu_opts- 3x 3 1720626759 B - - gz set and get menu optionsstat 3p- 3p 3p 1402354218 A - - gz get file statussvc_getreq- 3 3 1402354212 B - - gz library routines for remote procedure callsnewwin_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionxcb_x_print_print_query_screens_reply- 3 3 1540917640 B - - gz xcb_render_set_picture_filter_checked- 3 3 1540917640 B - - gz remainderl remainderl 3 remainderl 3pxcb_xfixes_create_region_from_picture- 3 3 1540917640 A - - gz tiffrawstripsizeTIFFRawStripSize 3tiff 3 1729525165 C TIFFstrip - gz ttk::labelframe- n n 1448008912 A - - gz Container widget with optional labelcprojl 3p- 3p 3p 1402354214 B - - gz complex projection functionssigpause 3- 3 3 1402354212 A - - gz atomically release blocked signals and wait for interruptxkbresizekeysymsXkbResizeKeySyms 3 3 1710950785 A - - gz Change the number of symbols bound to a keypod::pom::nodePod::POM::Node 3pm 3 1402385888 A - - gz base class for a POM nodefcconfigdestroyFcConfigDestroy 3 3 1520307172 A - - gz Destroy a configurationpmap_rmtcall- 3 3 1402354211 B - - gz library routines for remote procedure callsgcore- 1 1 1601482679 A - - gz Generate a core file of a running programeuare-servercertupload- 1 1 1484780705 A - - gz Upload a server certificategeteuid 3p- 3p 3p 1402354215 A - - gz get the effective user IDpthread_setcanceltype pthread_setcanceltype 3 pthread_setcanceltype 3pxdr_bytes- 3 3 1402354213 B - - gz library routines for external data representationcolor_content- 3x 3 1720626759 B - - gz curses color manipulation routinesmv mv 1p mv 1tcl_openfilechannelTcl_OpenFileChannel 3 3 1448008822 B - - gz buffered I/O facilities using channelsxdg-mime- 1 1 1478360732 A - - gz command line tool for querying information about file type handling and adding descriptions for new file typescpowf 3- 3 3 1402354208 B - - gz complex power functiondes_failedDES_FAILED 3 3 1402354206 B - - gz fast DES encryptionfcweighttoopentypeFcWeightToOpenType 3 3 1520307172 A - - gz Convert from fontconfig weight values to OpenType onesdbi::profiledumper::apacheDBI::ProfileDumper::Apache 3pm 3 1402362411 A - - gz capture DBI profiling data from Apache/mod_perldbd::proxyDBD::Proxy 3pm 3 1402362411 A - - gz A proxy driver for the DBIrt_sigaction- 2 2 1402354205 B - - gz examine and change a signal actionlogname 1- 1 1 1605565487 A - - gz print user's login namessl_cipher_get_nameSSL_CIPHER_get_name 3ssl 3 1721417624 A - - gz get SSL_CIPHER propertiestemplate::providerTemplate::Provider 3pm 3 1402357151 A - - gz Provider module for loading/compiling templatesbn_sqr_comba8- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionsaddch- 3x 3 1720626759 B - - gz add a character (with attributes) to a curses window, then advance the cursorpthread_sigmask 3p- 3p 3p 1402354217 B - - gz examine and change blocked signalsbn_ctx_endBN_CTX_end 3ssl 3 1721417624 B - - gz use temporary BIGNUM variablesxgeterrortextXGetErrorText 3 3 1710950786 B - - gz default error handlerssed 1- 1 1 1601487352 A - - gz stream editor for filtering and transforming textgrub2-mknetdir- 1 1 1722985065 A - - gz Prepare a GRUB netboot directory.qemu-ga- 8 8 1565264993 A - - gz QEMU Guest Agentusermod- 8 8 1565319053 A - - gz modify a user accountxcb_input_get_device_control- 3 3 1540917640 A - - gz business::isbn::dataBusiness::ISBN::Data 3pm 3 1402356317 A - - gz data pack for Business::ISBNtifftilesizeTIFFTileSize 3tiff 3 1729525165 C TIFFtile - gz xcb_xv_put_video- 3 3 1540917640 A - - gz i2d_ssl_sessioni2d_SSL_SESSION 3ssl 3 1721417624 B - - gz convert SSL_SESSION object from/to ASN1 representationxcb_res_query_client_ids_reply- 3 3 1540917640 B - - gz xml::libxml::booleanXML::LibXML::Boolean 3pm 3 1402352994 A - - gz Boolean true/false valuesabrt-action-analyze-backtrace- 1 1 1601569733 A - - gz Analyzes C/C++ backtrace, generates duplication hash, backtrace rating, and identifies crash function in problem directory DIR.euare-userdeactivatemfadevice- 1 1 1484780705 A - - gz Deactivate an MFA deviceipc.h- 0p 0p 1402354203 B - - gz XSI interprocess communication access structuresetterm 3x- 3x 3 1720626759 B - - gz curses interfaces to terminfo databasecpu_xorCPU_XOR 3 3 1402354206 B - - gz macros for manipulating CPU setsevp_cipher_ctx_iv_lengthEVP_CIPHER_CTX_iv_length 3ssl 3 1721417624 B - - gz EVP cipher routinesstpncpy- 3 3 1402354212 A - - gz copy a fixed-size string, returning a pointer to its endrunuser- 1 1 1612283497 A - - gz run a command with substitute user and group IDmodf 3p- 3p 3p 1402354216 A - - gz decompose a floating-point numbergai_strerror 3p- 3p 3p 1402354215 A - - gz address and name information error descriptionXCompose 5- 5 5 1710950785 B - - gz X client mappings for multi-key input sequencesmsgcat 1- 1 1 1465650364 A - - gz combines several message catalogsssl_ctx_get_max_cert_listSSL_CTX_get_max_cert_list 3ssl 3 1721417624 B - - gz manipulate allowed for the peer's certificate chainindex index 3 index 3ptcl_channelgethandleprocTcl_ChannelGetHandleProc 3 3 1448008821 B - - gz procedures for creating and manipulating channelsnewterm- 3x 3 1720626759 B - - gz curses screen initialization and manipulation routinesxchangegcXChangeGC 3 3 1710950785 B - t gz create or free graphics contexts and graphics context structuresem_trywait sem_trywait 3 sem_trywait 3ptcl_deleteinterpTcl_DeleteInterp 3 3 1448008821 B - - gz create and delete Tcl command interpretersxcb_selinux_set_selection_create_context- 3 3 1540917640 A - - gz outsl- 2 2 1402354205 B - - gz port I/Osigset sigset 3 sigset 3peuca-describe-dhcp-options- 1 1 1484780705 A - - gz Show information about VPC DHCP option setsxserverinterpretedaddressXServerInterpretedAddress 3 3 1710950786 C XAddHost - gz tcl_setobjerrorcodeTcl_SetObjErrorCode 3 3 1448008821 B - - gz retrieve or record information about errors and other return optionsxcb_randr_add_output_mode_checked- 3 3 1540917640 B - - gz array- n n 1448008823 A - - gz Manipulate array variablespspell-config- 1 1 1402355076 A - - gz prints information about a libpspell installationmqprioMQPRIO 8 8 1601484048 C tc-mqprio - gz tcflow 3p- 3p 3p 1402354218 A - - gz suspend or restart the transmission or reception of dataxtgrabkeyXtGrabKey 3 3 1501646833 A - - gz manage grabssnmpconf- 1 1 1706198099 A - - gz creates and modifies SNMP configuration filescpanplus::distCPANPLUS::Dist 3pm 3 1402392266 A - - gz base class for pluginsui_newUI_new 3ssl 3 1721417624 B - - gz New User Interfaceeuca-describe-addresses- 1 1 1484780705 A - - gz Show information about elastic IP addressesfputwc 3- 3 3 1402354211 A - - gz write a wide character to a FILE streamatan2f 3p- 3p 3p 1402354214 B - - gz arc tangent functionsbio_popBIO_pop 3ssl 3 1699892204 A - - gz add and remove BIOs from a chain.__malloc_hook- 3 3 1402354207 B - - gz malloc debugging variablesdbi::dbdDBI::DBD 3pm 3 1402362413 A - - gz Perl DBI Database Driver Writer's Guidexcb_glx_create_window- 3 3 1540917640 A - - gz pkcs12- 1ssl 1 1699892200 A - - gz PKCS#12 file utilitygetpwnam_r 3p- 3p 3p 1402354215 B - - gz search user database for a namelvmdump- 8 8 1619616701 A - - gz create lvm2 information dumps for diagnostic purposesxcb_input_get_extension_version_reply- 3 3 1540917640 B - - gz gets 3- 3 3 1402354213 A - - gz input of characters and stringssplice- 2 2 1402354206 A - - gz splice data to/from a pipexcb_query_pointer_unchecked- 3 3 1540917640 B - - gz get pointer coordinatesSHA224 3ssl- 3ssl 3 1721417624 B - - gz Secure Hash Algorithmpr 1- 1 1 1605565487 A - - gz convert text files for printingdoveadm-director- 1 1 1724195936 A - - gz Manage Dovecot directorsxcb_xkb_names_notify_event_t- 3 3 1540917640 A - - gz vw_scanw- 3x 3 1720626759 B - - gz convert formatted input from a curses windowderdump_- 1 1 1730826028 C derdump - gz xreadbitmapfiledataXReadBitmapFileData 3 3 1710950786 B - - gz manipulate bitmapscms_recipientinfo_kekri_get0_idCMS_RecipientInfo_kekri_get0_id 3ssl 3 1721417624 B - - gz CMS envelopedData RecipientInfo routineslessecho- 1 1 1365094507 A - - gz expand metacharactersparent- 3pm 3 1402384519 A - - gz Establish an ISA relationship with base classes at compile timetap::formatter::fileTAP::Formatter::File 3pm 3 1439389327 A - - gz Harness output delegate for file outputbacktrace_symbols_fd- 3 3 1402354207 B - - gz support for application self-debuggingmatchmediacon- 3 3 1585710994 A - - gz get the default SELinux security context for the specified mediatype from the policyaudit2why- 1 1 1585713889 B - - gz generate SELinux policy allow/dontaudit rules from logs of denied operationstput 1- 1 1 1715932340 A - t gz initialize a terminal or query terminfo databasexcb_query_font_reply- 3 3 1540917640 B - - gz query font metricsdatetime::locale::hawDateTime::Locale::haw 3pm 3 1402390634 A - - gz dynamic_field_info- 3x 3 1720626759 B - - gz retrieve field characteristicsbpfBPF 8 8 1601484048 C tc-bpf - gz xunmapsubwindowsXUnmapSubwindows 3 3 1710950786 B - - gz unmap windowslslocks- 8 8 1612283497 A - - gz list local system locksxcb_xv_query_image_attributes_offsets- 3 3 1540917640 B - - gz xcb_randr_get_screen_resources_current_outputs_end- 3 3 1540917640 B - - gz getrpcbyname_r- 3 3 1402354209 B - - gz get RPC entry (reentrant)xcb_selinux_get_selection_create_context_reply- 3 3 1540917640 B - - gz numcodes- 3x 3 1720626759 B - - gz curses terminfo global variablesgetrusage 2- 2 2 1402354205 A - - gz get resource usageoperator- 7 7 1402354220 A - - gz C operator precedence and order of evaluationtifffindcodecTIFFFindCODEC 3tiff 3 1729525165 C TIFFcodec - gz i2d_x509_namei2d_X509_NAME 3ssl 3 1721417624 B - - gz X509_NAME encoding functionsdatetime::locale::sv_fiDateTime::Locale::sv_FI 3pm 3 1402390634 A - - gz shasum- 1 1 1501652407 A - - gz Print or Check SHA Checksumsxcb_xkb_per_client_flags_reply- 3 3 1540917640 B - - gz eulb-set-lb-policies-for-backend-server- 1 1 1484780705 A - - gz Change the policies associated with a port on which load-balanced back end servers listen.getfacl- 1 1 1585707370 A - - gz get file access control listsgit-checkout- 1 1 1722330781 A - - gz Checkout a branch or paths to the working treememoize::ndbm_fileMemoize::NDBM_File 3pm 3 1698237676 A - - gz glue to provide EXISTS for NDBM_File for Storable usebg 1p- 1p 1p 1402354203 A - - gz run jobs in the backgroundsetkey 3- 3 3 1402354212 B - - gz encrypt 64-bit messagesxcb_xv_select_video_notify_checked- 3 3 1540917640 B - - gz asctime_r 3p- 3p 3p 1402354214 B - - gz convert date and time to a stringsigrelse 3p- 3p 3p 1402354218 B - - gz signal managementtrunc 3p- 3p 3p 1402354219 A - - gz round to truncated integer valuegetc getc 3 getc 3perfcf 3- 3 3 1402354208 B - - gz complementary error functiontemplate::stash::xsTemplate::Stash::XS 3pm 3 1402357151 A - - gz High-speed variable stash written in Csm-notify- 8 8 1682710367 A - - gz send reboot notifications to NFS peersxcb_dpms_get_timeouts_reply- 3 3 1540917640 B - - gz *prccos@2ssl_:@c^gete@ ,)ethe@ A{Kdate:A3}cataA/IpthrABv^evp_B ;2tap:dBeN7xcb_BHbashC1`eucaQC EkxSevp_CB6Qntipa DBGlpingTDB8mjbio_D ?K~1ssl_DQj/pkcsPE K evp_ED•readE q]vbio_{F@½fcinFA!cxcb_'G6getrxG GscheG<K@)getp H 2Өbn_mJHE:callH /^WisalH < tcflI \[fpapeI BOsha3I =i2d_JVn7eufoJ2q geoiJ Fusetc K=yldatekK8ARcrypK @8tiff LHscaljL \sendL7AkeycL%2bio_M /sdgrou;M BsettM 2tYsinhM6pthrNFv}8xcb_\N*9evp_NA8xkbqN` tracfO HpkexO<ec_p=pkcs[Wxcb_"doesCQ(xml:Xjexp2 90erffY)Dui_cB7:xcb_߂dword{rdate73qb syst!0v]anacӃ5pxkil 4{tcl_PPtcl_Cyhttp  CtiffZ9pkcsG.]mq_c =qxcb_9xauumD pxcb_"xcb_"verrn90seli[Jevp_UӋ|xcb_!agetu0 B"9ilog| IpjsonΈ [&xdr_2 LSgtcl_Xk9sche$0@>reni#xcb_>|VextuuMbclosԊ F+xzleB;ixcb_>P xcb_q!{: date3aperl:uextu7g|Wpthr?Vclog@mbstM P?audi1geti @ l2xsha,Lxtco =lxdr_Ҏ L!$xcb_)#9cgit-g U:fstrcŏKbio_E0__maM5*5dbi: K xcb_Хpkcs2lggetpN<9lvmdPӡbxcb_&Ggets1:asin =splir5audi# gtputKPxcb_-`date(1kdynao:bpf"!xunm7W 0lslo*2oxcb_d&M*xcb_3O`|getr4:xcb_6/ATnumc <\getr -#.oper H tiffO3ni2d_F{\date3k!Pshas/7}xcb_maeulb(uegetfD8git- IkmemocGbg 1P7]setk 28[xcb_#,asct >./sigrQ .Ltrun =Vserfc7getchtemp?UT+sm-n A xcb_pthr 0Vssl_E Uxcb_  suevp_ D$bzerJ! 7~kutim!^kxcb_!+ttap:!Wxcb_\"Keuca">@Sfree"; 3xprt)#F >date#4ixmap#S?xthre-$ ;#oldlt$ *smar$Jxtpe% Eevp_O%?sva_c%@curs% D arm_ &8hhtonW&M%5Bxsha&K ]has_ ' :#oxcb_M'uccomp' ;~=ssl_'Ha(yconf%( ([PrsynV( F~9xml:(41ەxdg-( hcollg)F8xcb_)D~funl)4 Eevp_9*?jsyst*Zrextu*HuIbio_Q+ 2(¯tcl_+`xchcp+)ssl_,,THx509,lpqmall-Lxencr|-ݖxcb_-.͆xany- =[isno*. 4I)callj.>rlog.K/thre.;6^cpanH/I=xcb_/"xOachok0"tcl_(0;{pthrq0/Lstrf0 >8"xcb_0-9CdiagB1 9Mfdim/xLbn_cp1 Gjlfin1 5h/Fdnss2](<vdodp2 Ioisecu2Jperl,33axcb_m3,{igets3@2getn4 8iswpI4 J&fdet4 Ycurr5 9ZxkbcH5ssl_5KGcms_G6\%xcb_69,ctim7syst-73ripoq7 5e"tcl_7Zmenu8 ?exwcdg8HR%jstri8'!wdate81zgetiffE98 acloc93~6cbre9 ;qmd:IXhmysqd: 4Ai2d_:Y)ex 1 ;A perlP; 7uVperl;7stre; dsa_;D.set_Q<?5Bxkbs<Namvwi< \zuOtgetf= ; Zkgit-=\xcb_>iscnJ>Jntohh> O}`err_> Lcopy?LSstrpm? 5pthread_cleanup_push pthread_cleanup_push 3 pthread_cleanup_push 3pssl_ctx_use_privatekey_asn1SSL_CTX_use_PrivateKey_ASN1 3ssl 3 1721417624 B - - gz load certificate and key dataxcb_glx_get_clip_plane_data_end- 3 3 1540917640 B - - gz evp_get_digestbynameEVP_get_digestbyname 3ssl 3 1721417624 B - - gz EVP digest routinesbzero 3p- 3p 3p 1402354214 A - - gz memory operations (LEGACY)utime utime 2 utime 3pxcb_glx_create_context_attribs_arb_checked- 3 3 1540917640 B - - gz tap::parser::yamlish::readerTAP::Parser::YAMLish::Reader 3pm 3 1439389327 A - - gz Read YAMLish data from iteratorxcb_change_active_pointer_grab- 3 3 1540917640 A - - gz euca-run-instances- 1 1 1484780705 A - - gz Launch instances of a machine imagefree 3- 3 3 1402354209 B - - gz allocate and free dynamic memoryxprt_unregister- 3 3 1402354213 B - - gz library routines for remote procedure callsdatetime::locale::gsw_chDateTime::Locale::gsw_CH 3pm 3 1402390632 A - - gz xmappingeventXMappingEvent 3 3 1710950786 B - - gz MapNotify and MappingNotify event structuresthreads 3pm- 3pm 3 1402377699 A - - gz Perl interpreter-based threadsoldlstat- 2 2 1402354205 B - t gz get file statussmartcard-auth- 5 5 1588181479 B - - gz Common configuration file for PAMified servicesxtpendingXtPending 3 3 1501646833 B - - gz query and process events and inputevp_md_ctx_typeEVP_MD_CTX_type 3ssl 3 1721417624 B - - gz EVP digest routinesva_copy va_copy 3 va_copy 3pcurs_getyx- 3x 3 1715932337 A - - gz get curses cursor and window coordinatesarm_sync_file_range- 2 2 1402354204 B - - gz sync a file segment with diskhtons 3- 3 3 1402354210 B - - gz convert values between host and network byte orderxshapeoffsetshapeXShapeOffsetShape 3 3 1448003986 B - - gz X nonrectangular shape functionshas_mouse- 3x 3 1720626759 B - - gz mouse interface through cursesxcb_glx_pixel_storef_checked- 3 3 1540917640 B - - gz comp_err- 1 1 1697025034 A - - gz compile MySQL error message filessl_ctx_add_sessionSSL_CTX_add_session 3ssl 3 1721417624 A - - gz manipulate session cacheconfig 5- 5 5 1585713890 C selinux_config - gz rsyncd.conf- 5 5 1450729256 A - - gz configuration file for rsync in daemon modexml::parser::style::subsXML::Parser::Style::Subs 3pm 3 1402361425 A - - gz xdg-email- 1 1 1478360732 A - - gz command line tool for sending mail using the user's preferred e-mail composercollectd-python- 5 5 1671356063 A - - gz Documentation of collectd's "python plugin"xcb_input_device_bell_checked- 3 3 1540917640 B - - gz funlockfile 3p- 3p 3p 1402354215 B - - gz stdio locking functionsevp_des_ede_ofbEVP_des_ede_ofb 3ssl 3 1721417624 B - - gz EVP cipher routinessystemd-user-sessions- 8 8 1711457788 B - - gz Permit user logins after boot, prohibit user logins at shutdownextutils::mm_anyExtUtils::MM_Any 3pm 3 1402365500 A - - gz Platform-agnostic MM methodsbio_f_nullBIO_f_null 3ssl 3 1699892203 A - - gz null filtertcl_exitthreadTcl_ExitThread 3 3 1448008821 B - - gz end the application or thread (and invoke exit handlers)chcpu- 8 8 1612283497 A - - gz configure CPUsssl_ctx_sess_accept_goodSSL_CTX_sess_accept_good 3ssl 3 1721417624 B - - gz obtain session cache statisticsx509_store_ctx_get1_chainX509_STORE_CTX_get1_chain 3ssl 3 1721417624 B - - gz get or set certificate verification status informationmalloc_get_state- 3 3 1402354210 A - - gz record and restore state of malloc implementationencrypt encrypt 3 encrypt 3pxcb_selinux_list_properties_properties_length- 3 3 1540917640 B - - gz xanyeventXAnyEvent 3 3 1710950786 A - - gz generic X event structuresisnormal 3p- 3p 3p 1402354216 A - - gz test for a normal valuecaller- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)rlog- 1 1 1585714623 A - - gz print log messages and other information about sthread::queueThread::Queue 3pm 3 1402347607 A - - gz Thread-safe queuescpanplus::shellCPANPLUS::Shell 3pm 3 1402392266 A - - gz base class for CPANPLUS shellsxcb_xkb_get_indicator_state_reply- 3 3 1540917640 B - - gz fdimf fdimf 3 fdimf 3pchoke- 8 8 1601484048 C tc-choke - gz tcl_signalmsgTcl_SignalMsg 3 3 1448008822 B - - gz Convert signal codespthread_exit 3p- 3p 3p 1402354217 A - - gz thread terminationstrftime 3p- 3p 3p 1402354218 A - - gz convert date and time to a stringxcb_glx_get_convolution_parameterfv_data_end- 3 3 1540917640 B - - gz diagnostics 1- 1 1 1698237679 C splain - gz bn_ctx_startBN_CTX_start 3ssl 3 1721417624 A - - gz use temporary BIGNUM variableslfind 3p- 3p 3p 1402354216 B - - gz linear search and updatednssec-importkey- 8 8 1725373373 A - - gz import DNSKEY records from external systems so they can be managedvdodmeventd- 8 8 1601488174 A - - gz register/unregister a VDO device with dmeventdsecurity_compute_relabel_raw- 3 3 1585710994 B - - gz query the SELinux policy database in the kernelperl5005delta- 1 1 1698237661 A - - gz what's new for perl5.005xcb_glx_get_query_objectuiv_arb_data_length- 3 3 1540917640 B - - gz getservbyport 3p- 3p 3p 1402354215 B - - gz network services database functionsgetnetent_r- 3 3 1402354209 A - - gz get network entry (reentrant)iswpunct 3- 3 3 1402354210 A - - gz test for punctuation or symbolic wide characterfdetach 3p- 3p 3p 1402354215 A - - gz detach a name from a STREAMS-based file descriptor (STREAMS)current_item- 3x 3 1720626759 B - - gz set and get current_menu_itemxkbchangedeviceinfoXkbChangeDeviceInfo 3 3 1710950785 A - - gz Update the server's description of a device with the changes noted in an XkbDeviceChangesRecssl_ctx_use_serverinfoSSL_CTX_use_serverinfo 3ssl 3 1721417624 A - - gz use serverinfo extensioncms_get0_recipientinfosCMS_get0_RecipientInfos 3ssl 3 1721417624 A - - gz CMS envelopedData RecipientInfo routinesxcb_input_get_selected_extension_events_this_classes_end- 3 3 1540917640 B - - gz ctime_r ctime_r 3 ctime_r 3psystemd-coredump- 8 8 1711457788 A - - gz Log and store core dumpsripoffline- 3x 3 1720626759 B - - gz low-level curses routinestcl_channelnameTcl_ChannelName 3 3 1448008821 B - - gz procedures for creating and manipulating channelsmenu_pattern- 3x 3 1720626759 A - - gz get and set a menu's pattern bufferxwcdrawstringXwcDrawString 3 3 1710950786 B - - gz draw text using a single font setstringprep_locale_to_utf8- 3 3 1448125246 A - - gz API functiondatetime::locale::filDateTime::Locale::fil 3pm 3 1402390636 A - - gz tiffycbcrtorgbinitTIFFYCbCrToRGBInit 3tiff 3 1729525165 C TIFFcolor - gz clock_gettime 3- 3 3 1402354208 B - - gz clock and time functionscbreak_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionmd- 4 4 1645636188 A - t gz Multiple Device driver aka Linux Software RAIDmysqldump- 1 1 1697025034 A - t gz a database backup programi2d_rsa_pubkeyi2d_RSA_PUBKEY 3ssl 3 1721417624 B - - gz RSA public and private key encoding functions.ex 1- 1 1 1722022359 B - - gz Vi IMproved, a programmers text editorperlfaq1- 1 1 1698237664 A - - gz General Questions About Perlperl5141delta- 1 1 1698237662 A - - gz what is new for perl v5.14.1strerror strerror 3 strerror 3pdsa_set_default_methodDSA_set_default_method 3ssl 3 1721417624 B - - gz select DSA methodset_menu_pattern- 3x 3 1720626759 B - - gz get and set a menu's pattern bufferxkbsetcompatmapXkbSetCompatMap 3 3 1710950785 A - t gz Modify the server's compatibility mapmvwinchstr- 3x 3 1720626759 B - - gz get a string of characters (and attributes) from a curses windowtgetnum_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensiongit-diff-tree- 1 1 1722330784 A - - gz Compares the content and mode of blobs found via two tree objectsxcb_shape_input_selected- 3 3 1540917640 A - - gz iscntrl iscntrl 3 iscntrl 3pntohl 3p- 3p 3p 1402354216 B - - gz convert values between host and network byte ordererr_set_markERR_set_mark 3ssl 3 1721417624 A - - gz set marks and pop errors until markcopywin- 3x 3 1720626759 B - - gz overlay and manipulate overlapped curses windowsstrpbrk 3p- 3p 3p 1402354218 A - - gz scan a string for a bytextaddinputXtAddInput 3 3 1501646833 A - - gz register input, timeout, and workprocscmp 1p- 1p 1p 1402354203 A - - gz compare two filesxcb_glx_use_x_font_checked- 3 3 1540917640 B - - gz dpkg-query- 1 1 1642076111 A - - gz a tool to query the dpkg databasesetgid 2- 2 2 1402354205 A - - gz set group identityxcb_input_xi_get_selected_events_reply- 3 3 1540917640 B - - gz ext4- 5 5 1711459141 B - t gz the fourth extended file systemsystemd-random-seed- 8 8 1711457788 B - - gz Load and save the system random seed at boot and shutdowntcl_fsevalfileTcl_FSEvalFile 3 3 1448008822 B - - gz procedures to interact with any filesystemeuca-reset-snapshot-attribute- 1 1 1484780705 A - - gz Reset an attribute of a snapshot to its default valuexcb_xfixes_show_cursor- 3 3 1540917640 A - - gz xcb_xvmc_list_subpicture_types- 3 3 1540917640 A - - gz datetime::locale::seDateTime::Locale::se 3pm 3 1402390636 A - - gz tcl_mergeTcl_Merge 3 3 1448008822 B - - gz manipulate Tcl listsdislocate 1- 1 1 1435097319 A - - gz disconnect and reconnect processesxcb_xvmc_create_context_priv_data- 3 3 1540917640 B - - gz carg carg 3 carg 3pnext.pmNEXT.pm 3pm 3 1698237676 C NEXT - gz git-unpack-objects- 1 1 1722330780 A - - gz Unpack objects from a packed archivesetfsuid32- 2 2 1402354205 B - - gz set user identity used for file system checkssigsetjmp 3p- 3p 3p 1402354218 A - - gz set jump point for a non-local gotoxcb_input_get_selected_extension_events_unchecked- 3 3 1540917640 B - - gz datetime::locale::fur_itDateTime::Locale::fur_IT 3pm 3 1402390632 A - - gz pod::selectPod::Select 3pm 3 1402373048 A - - gz extract selected sections of POD from inputxcb_present_select_input- 3 3 1540917640 A - - gz curses::ui::dialog::filebrowserCurses::UI::Dialog::Filebrowser 3pm 3 1454728582 A - - gz Create and manipulate filebrowser dialogsrand rand 3ssl rand 3 rand 1ssl rand 3plwres_buffer_getuint8- 3 3 1725373371 B - - gz lightweight resolver buffer managementckrealloc- 3 3 1448008821 B - - gz allocate or free heap memoryxmlcatalog- 1 1 1708355032 A - - gz Command line tool to parse and manipulate XML or SGML catalog files.is_notimeout- 3x 3 1720626759 B - - gz curses window propertiescpanplus::shell::default::plugins::sourceCPANPLUS::Shell::Default::Plugins::Source 3pm 3 1402392266 A - - gz read in CPANPLUS commandsaio_fsync aio_fsync 3 aio_fsync 3pif 3pm- 3pm 3 1698237678 A - - gz "use" a Perl module if a condition holdsxcb_input_xi_select_events- 3 3 1540917640 A - - gz wcsncmp wcsncmp 3 wcsncmp 3pwarning::process-tracking- 7stap 7 1602605484 C error::process-tracking - gz wctomb 3p- 3p 3p 1402354219 A - - gz convert a wide-character code to a characterxsltproc- 1 1 1353477825 A - - gz command line XSLT processorxtgetselectionparametersXtGetSelectionParameters 3 3 1501646833 A - - gz retrieve target parameters for a selection request with a single targetpod::pom::node::contentPod::POM::Node::Content 3pm 3 1402385888 A - - gz posix_trace_attr_getstreamsize- 3p 3p 1402354217 B - - gz retrieve and set trace stream size attributes (TRACING)resolve_stack_dump- 1 1 1697025034 A - - gz resolve numeric stack trace dump to symbolsttyname 3p- 3p 3p 1402354219 A - - gz find the pathname of a terminalsethostent 3- 3 3 1402354212 B - - gz get network host entryinet_addr 3p- 3p 3p 1402354216 A - - gz IPv4 address manipulationwho who 1p who 1item_value- 3x 3 1720626759 B - - gz set and get menu item valuesssl_set_tmp_dh_callbackSSL_set_tmp_dh_callback 3ssl 3 1721417624 B - - gz handle DH keys for ephemeral key exchangexcb_list_extensions_names_iterator- 3 3 1540917640 B - - gz gmtime_r 3p- 3p 3p 1402354215 B - - gz convert a time value to a broken-down UTC timevfscanf vfscanf 3 vfscanf 3pxcb_query_colors- 3 3 1540917640 A - - gz rtnetlink rtnetlink 3 rtnetlink 7tc-cbq- 8 8 1601484048 A - - gz Class Based Queueingxcb_res_query_client_ids- 3 3 1540917640 A - - gz datetime::locale::sqDateTime::Locale::sq 3pm 3 1402390639 A - - gz i2d_x509_req_bioi2d_X509_REQ_bio 3ssl 3 1721417624 B - - gz PKCS#10 certificate request functions.crypto_threadid_set_callbackCRYPTO_THREADID_set_callback 3ssl 3 1721417624 B - - gz OpenSSL thread supportxkbgetkeybehaviorsXkbGetKeyBehaviors 3 3 1710950785 A - - gz Obtain the behaviors (the behaviors array) for a subset of the keys in a keyboard description from the serverdracut- 8 8 1601481478 A - - gz low-level tool for generating an initramfs imagetcl_getchannelnameTcl_GetChannelName 3 3 1448008821 B - - gz procedures for creating and manipulating channelsfloorf floorf 3 floorf 3pevp_decryptinitEVP_DecryptInit 3ssl 3 1721417624 B - - gz EVP cipher routineslvmsystemid- 7 7 1619616701 A - - gz LVM system IDcargf 3- 3 3 1402354207 B - - gz calculate the complex argumentreplace_panel- 3x 3 1720626759 B - - gz panel stack extension for cursess390_runtime_instr- 2 2 1402354205 A - - gz enable/disable s390 CPU run-time instrumentationxcb_shm_detach- 3 3 1540917640 A - - gz types::serialiser::errorTypes::Serialiser::Error 3pm 3 1390406810 A - - gz dummy module for Types::Serialisertcl_isensembleTcl_IsEnsemble 3 3 1448008821 B - - gz manipulate ensemble commandscpowf cpowf 3 cpowf 3pmenu_request_by_name- 3x 3 1720626759 B - - gz handle printable menu request namesfile n- n n 1448008823 A - - gz Manipulate file names and attributesxunregisteriminstantiatecallbackXUnregisterIMInstantiateCallback 3 3 1710950786 B - - gz open, close, and obtain input method informationfile::tempFile::Temp 3pm 3 1402383772 A - - gz return name and handle of a temporary file safelyversion::requirementsVersion::Requirements 3pm 3 1402384565 A - - gz a set of version requirements for a CPAN distsched_get_priority_max 2- 2 2 1402354205 A - - gz get static priority rangelog 3- 3 3 1402354210 A - - gz natural logarithmic functionxml::libxml::nodeXML::LibXML::Node 3pm 3 1402352994 A - - gz Abstract Base Class of XML::LibXML Nodescdb_fileCDB_File 3pm 3 1589386584 A - - gz Perl extension for access to cdb databasestcl_setmainloopTcl_SetMainLoop 3 3 1448008822 B - - gz main program and event loop definition for Tcl-based applicationsmvadd_wchnstr- 3x 3 1720626759 B - - gz add an array of complex characters (and attributes) to a curses windowsignal signal 2 signal 7 signal 3pbio_set_mdBIO_set_md 3ssl 3 1721417624 B - - gz message digest BIO filterdatetime::locale::fr_chDateTime::Locale::fr_CH 3pm 3 1402390635 A - - gz type 1p- 1p 1p 1402354204 A - - gz write a description of command typerecode-sr-latin- 1 1 1465650366 A - - gz convert Serbian text from Cyrillic to Latin scriptdatetime::locale::om_etDateTime::Locale::om_ET 3pm 3 1402390638 A - - gz pem_read_dsaparamsPEM_read_DSAparams 3ssl 3 1721417624 B - - gz PEM routinessigsetjmp 3- 3 3 1402354212 B - - gz save stack context for nonlocal gotolvmconf- 8 8 1619616701 A - - gz LVM configuration modifierxcb_get_keyboard_mapping_keysyms_length- 3 3 1540917640 B - - gz named-compilezone- 8 8 1725373374 A - - gz zone file validity checking or converting tooldatetime::locale::sr_cyrl_baDateTime::Locale::sr_Cyrl_BA 3pm 3 1402390633 A - - gz file::fetchFile::Fetch 3pm 3 1402340236 A - - gz A generic file fetching mechanismxkbgetmapXkbGetMap 3 3 1710950785 A - t gz Allocate an XkbDescRec structure and populate it with the server's keyboard client map and server mappam_motd- 8 8 1585713590 A - - gz Display the motd file_nc_freeall- 3x 3 1720626759 B - - gz curses memory-leak checkingxcb_res_query_client_ids_ids_length- 3 3 1540917640 B - - gz memoize::sdbm_fileMemoize::SDBM_File 3pm 3 1698237676 A - - gz glue to provide EXISTS for SDBM_File for Storable useget_default_context_with_level- 3 3 1585710994 B - - gz determine SELinux context(s) for user sessionsxcb_glx_is_list_reply- 3 3 1540917640 B - - gz unxz- 1 1 1655494379 B - - gz Compress or decompress .xz and .lzma filesxcb_grab_pointer_unchecked- 3 3 1540917640 B - - gz Grab the pointerxcb_get_input_focus_reply- 3 3 1540917640 B - - gz raw 8- 8 8 1612283497 A - - gz bind a Linux raw character deviceacoshf 3p- 3p 3p 1402354214 B - - gz inverse hyperbolic cosine functionseuare-oidcproviderchangethumbprint- 1 1 1484780705 A - - gz Replace an OpenID Connect provider's list of thumbprintspftp- 1 1 1573511014 B - - gz Internet file transfer programfmtmsg 3p- 3p 3p 1402354215 A - - gz display a message in the specified format on standard error and/or a system consolegit-send-pack- 1 1 1722330781 A - - gz Push objects over Git protocol to another repositoryfile::copy::recursiveFile::Copy::Recursive 3pm 3 1402387218 A - - gz Perl extension for recursively copying files and directoriesxcb_glx_copy_context- 3 3 1540917640 A - - gz xcb_glx_get_string- 3 3 1540917640 A - - gz form_opts_on- 3x 3 1720626759 B - - gz set and get form optionsxcb_randr_get_output_info_modes_length- 3 3 1540917640 B - - gz lvm-lvpoll- 8 8 1619616701 A - - gz xcb_x_print_print_get_context- 3 3 1540917640 A - - gz io::wraptieIO::WrapTie 3pm 3 1402371105 A - - gz wrap tieable objects in IO::Handle interfacexcb_glx_get_color_table_parameteriv- 3 3 1540917640 A - - gz mysqlman- 1 1 1697024570 A - - gz default man page for mysqlblkid- 8 8 1612283497 A - - gz locate/print block device attributesxcb_dri3_buffer_from_pixmap_unchecked- 3 3 1540917640 B - - gz io::zlibIO::Zlib 3pm 3 1698237387 A - - gz IO:: style interface to Compress::Zlibcvtsudoers- 1 1 1711647470 A - - gz convert between sudoers file formatsfield_opts_off- 3x 3 1720626759 B - - gz set and get field optionschgpasswd- 8 8 1565319053 A - - gz update group passwords in batch modexdefinecursorXDefineCursor 3 3 1710950786 A - - gz define cursorsfmod 3p- 3p 3p 1402354215 A - - gz floating-point remainder value functionasinhf asinhf 3 asinhf 3pxkbcopykeytypeXkbCopyKeyType 3 3 1710950785 A - - gz Copy one XkbKeyTypeRec structuresnfsidmap- 8 8 1634214566 A - - gz The NFS idmapper upcall programuseradd- 8 8 1573511258 A - - gz create a new user or update default new user informationgzexe- 1 1 1652367512 A - - gz compress executable files in placetcl_fsequalpathsTcl_FSEqualPaths 3 3 1448008822 B - - gz procedures to interact with any filesystemautoloaderAutoLoader 3pm 3 1698237671 A - - gz load subroutines only on demandec_point_is_at_infinityEC_POINT_is_at_infinity 3ssl 3 1721417624 B - - gz Functions for performing mathematical operations and tests on EC_POINT objects.__malloc_initialize_hook- 3 3 1402354207 B - - gz malloc debugging variablestcl_fscopydirectoryTcl_FSCopyDirectory 3 3 1448008822 B - - gz procedures to interact with any filesystemttk::spinbox- n n 1448008912 A - - gz Selecting text field widgetpem_write_pkcs8privatekey_nidPEM_write_PKCS8PrivateKey_nid 3ssl 3 1721417624 B - - gz PEM routinesisastream 2- 2 2 1402354205 B - - gz unimplemented system callsmodule::build::platform::aixModule::Build::Platform::aix 3pm 3 1402373050 A - - gz Builder class for AIX platformmkswap- 8 8 1612283497 A - - gz set up a Linux swap areaperl5100delta- 1 1 1698237661 A - - gz what is new for perl 5.10.0iso-8859-4- 7 7 1402354219 B - t gz ISO 8859-4 character set encoded in octal, decimal, and hexadecimalsignver- 1 1 1730826028 A - - gz Verify a detached PKCS#7 signature for a file.euca-create-customer-gateway- 1 1 1484780705 A - - gz Create a VPN customer gatewaystaprun- 8 8 1602605484 A - - gz systemtap runtimepem_read_bio_rsapublickeyPEM_read_bio_RSAPublicKey 3ssl 3 1721417624 B - - gz PEM routinesy1l- 3 3 1402354213 B - - gz Bessel functions of the second kindxcb_glx_get_tex_parameterfv_unchecked- 3 3 1540917640 B - - gz SHA512 3ssl- 3ssl 3 1721417624 B - - gz Secure Hash Algorithmputpmsg 2- 2 2 1402354205 B - - gz unimplemented system callstcl_getcommandinfoTcl_GetCommandInfo 3 3 1448008821 B - - gz implement new commands in Cssh_config- 5 5 1707907012 A - - gz OpenSSH SSH client configuration filesxcb_input_set_device_modifier_mapping_reply- 3 3 1540917640 B - - gz ets*u <fclangsetdestroyFcLangSetDestroy 3 3 1520307172 A - - gz destroy a langset objectkeyctl_get_keyring_idkeyctl_get_keyring_ID 3 3 1402366674 A - - gz Get the ID of a special keyringxcb_x_print_print_destroy_context_checked- 3 3 1540917640 B - - gz tk_choosedirectorytk_chooseDirectory n n 1448008911 A - - gz pops up a dialog box for the user to select a directory.gittutorial- 7 7 1722330784 A - - gz A tutorial introduction to Git (for version 1.5.1 or newer)euare-usermod- 1 1 1484780705 A - - gz Change the name and/or path of a userxcb_randr_get_output_info_modes- 3 3 1540917640 B - - gz uri::withbaseURI::WithBase 3pm 3 1402351652 A - - gz URIs which remember their basexcb_xinerama_get_state_unchecked- 3 3 1540917640 B - - gz curses::ui::checkboxCurses::UI::Checkbox 3pm 3 1454728582 A - - gz Create and manipulate checkbox widgetssys/times.h- 0p 0p 1402354203 C times.h - gz datetime::locale::fa_irDateTime::Locale::fa_IR 3pm 3 1402390641 A - - gz diff 1p- 1p 1p 1402354203 A - - gz compare two filesfegetround 3- 3 3 1402354209 B - - gz floating-point rounding and exception handlingset_top_row- 3x 3 1720626759 B - - gz set and get current_menu_itempem_read_bio_netscape_cert_sequencePEM_read_bio_NETSCAPE_CERT_SEQUENCE 3ssl 3 1721417624 B - - gz PEM routinesxaugetbestauthbyaddrXauGetBestAuthByAddr 3 3 1402361801 B - - gz X authority database routinespod::pom::view::textPod::POM::View::Text 3pm 3 1402385888 A - - gz perror 3- 3 3 1402354212 A - - gz print a system error messagelisten 2- 2 2 1402354205 A - - gz listen for connections on a socketeuca-delete-keypair- 1 1 1484780705 A - - gz Delete a key pairxcb_glx_are_textures_resident_data_end- 3 3 1540917640 B - - gz acct 5- 5 5 1402354219 A - - gz process accounting filextgetselectionvaluesincrementalXtGetSelectionValuesIncremental 3 3 1501646833 B - - gz obtain selection valuescpan2dist- 1 1 1402392266 A - - gz The CPANPLUS distribution creatorxcb_sync_list_system_counters_unchecked- 3 3 1540917640 B - - gz minor- 3 3 1402354210 A - - gz manage a device numbernearbyintf nearbyintf 3 nearbyintf 3pxcb_glx_get_histogram_parameteriv- 3 3 1540917640 A - - gz dtlsv1_server_methodDTLSv1_server_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionscatan catan 3 catan 3pdnssec-checkds- 8 8 1725373374 A - - gz DNSSEC delegation consistency checking toolmatchpathcon_index- 3 3 1585710994 B - - gz get the default SELinux security context for the specified path from the file contexts configurationlwres_context_create- 3 3 1725373371 B - - gz lightweight resolver context managementfsync 3p- 3p 3p 1402354215 A - - gz synchronize changes to a filesockatmark 3- 3 3 1402354212 A - - gz determine whether socket is at out-of-band marktcl_createfilehandlerTcl_CreateFileHandler 3 3 1448008821 A - - gz associate procedure callbacks with files or devices (Unix only)sslv23_methodSSLv23_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionsupdate_panels_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionecho 1p- 1p 1p 1402354203 A - - gz write arguments to standard outputwcrtomb 3p- 3p 3p 1402354219 A - - gz convert a wide-character code to a character (restartable)llrint llrint 3 llrint 3pxmbsetwmpropertiesXmbSetWMProperties 3 3 1710950786 B - - gz set standard window propertiesxcb_glx_get_tex_image_data- 3 3 1540917640 B - - gz sendto 2- 2 2 1402354205 B - - gz send a message on a socketrepomanage- 1 1 1589300861 A - - gz list the newest or oldest RPM packages in a directoryxcb_xevie_query_version_reply- 3 3 1540917640 B - - gz erfcf erfcf 3 erfcf 3pimaxdiv 3- 3 3 1402354210 B - - gz compute quotient and remainder of an integer divisionstrtoull 3- 3 3 1402354212 B - - gz convert a string to an unsigned long integerpthread_detach pthread_detach 3 pthread_detach 3pxcb_glx_query_version- 3 3 1540917640 A - - gz realpath realpath 3 realpath 1 realpath 3pfrexpl frexpl 3 frexpl 3p _ W dateP0#; i2d_EPSM date0 crypPO|- xkbgQ ssl_. F dracQKB tcl_R]y flooRȇ fdim . d ins_  Oip xcb_ #g evp_R? lvmsR (% carg!S9 replbS<Iԟ grubR  &: dsa_z [aQ tcl_ Wu typeJ  @d syst 5yn s390SK̦! xcb_ Tҵ type4TV tcl_TDx cpowTY fcst Aܥ menuU?2 filebU?Ǖ xunrU!j~V xcb_* jX fcst`  8N file3V WOF versV^z wins J sche W4N6 log VW7= ip-t  A~ circ= aӺ xml:WU-Wa cdb_W N{# tcl_QXj mvadXb sign;Y2| bio__Y @{/ dateY33v typeY@Mߥ reco=ZM- xkba a{F6 dateZ3y5 xcb_ xcb_O ' pem_Z;"~ sigs3[ ?G pklo?9 lvmc~[5 xdra L yaml1 \ xcb_[(gL name[I dateY\8ӣ file\ HEd tcl_In8g addm @9c ssl_JR xkbg] 弣 newg 2s euscOy pam_] 0o _nc_] 7 xcb_^$kf memoO^c,[0 get_^I xcb_-_ unxz^_Ex xcb__+4 xcb_#K xcb_>~ evp_kA/e rcsf!N] bool Yu xcb_G% ssl_ a? fileI; encocG$ xcb_ seq6 xcb_&pl euscK%7Ls llri 3xYl tgam .g xcb_(rp getm^ O`0 consS$ textX8N logr] P! geoi G dsa_A Bk vwarȥ35j dove; ucs2JZӫ1 cryp K F xcb_1Q~ kibiDF xcb_ } pthŗM" bio_/4#O strct 5p bio_?I grou )ώ xcms:Nģ psel N tiffĩ;"s envi hide2 <=/ tcl_yQ xcb_ܪ6MX evp_- X setn>X sys_ )q getg 8@ bn_sd U>L bn_sŬ ? stre @ mkno\ P d2i_I xcb_Oʒ dcgeJ ," selaN git- ^R3 tempLY arch Pc csin deli]>X file{, ttyt2 <e extuy&da moduW tcl_wO4 euca =: rawd <Cc xaut\b lwre$Ql let>) rebo @M mime Om dateu0" io::Q perl&]s& xcb_+& m4 1:j xcb_8l tcl_! Do xcb_r5} msgc .&k geti @ns wmem֯k xcb_{ regsl]Ws argz ;g pam_ 6Y date/i X bio_6! sendGԷ git-H: dump Lxcb_input_set_device_focus_checked- 3 3 1540917640 B - - gz xcb_shm_attach_fd- 3 3 1540917640 A - - gz evp_openfinalEVP_OpenFinal 3ssl 3 1721417624 B - - gz EVP envelope decryptionrcsfile- 5 5 1585714623 A - p gz formatbooleans 8- 8 8 1585710994 A - - gz Policy booleans enable runtime customization of SELinux policyxcb_xfixes_get_cursor_image_and_name- 3 3 1540917640 A - - gz ssl_ctx_clear_extra_chain_certsSSL_CTX_clear_extra_chain_certs 3ssl 3 1699892219 A - - gz add or clear extra chain certificatesfile::spec::win32File::Spec::Win32 3pm 3 1402373475 A - - gz methods for Win32 file specsencode::aliasEncode::Alias 3pm 3 1402368577 A - - gz alias definitions to encodingsxcb_bell_checked- 3 3 1540917640 B - - gz seq- 1 1 1605565487 A - - gz print a sequence of numbersxcb_shm_get_image- 3 3 1540917640 A - - gz euscale-describe-auto-scaling-groups- 1 1 1484780705 A - - gz Describe auto-scaling groupsllrintf 3- 3 3 1402354210 B - - gz round to nearest integertgamma 3- 3 3 1402354213 A - - gz true gamma functionxcb_glx_get_tex_level_parameteriv_reply- 3 3 1540917640 B - - gz getmsg 3p- 3p 3p 1402354215 A - - gz receive next message from a STREAMS file (STREAMS)console.perms- 5 5 1585713588 A - - gz permissions control file for users at the system consoletext::balancedText::Balanced 3pm 3 1698237678 A - - gz Extract delimited text sequences from strings.dsa_newDSA_new 3ssl 3 1721417624 A - - gz allocate and free DSA objectsvwarn- 3 3 1402354208 A - - gz formatted error messagesdoveadm-proxy- 1 1 1724195936 A - - gz Handle Dovecot proxy connectionsucs2any- 1 1 1540918774 A - - gz generate BDF fonts containing subsets of ISO 10646-1 codepointscryptsetup- 8 8 1585707795 A - - gz manage plain dm-crypt and LUKS encrypted volumesxcb_get_property- 3 3 1540917640 A - - gz Gets a window propertykibitz- 1 1 1435097319 A - - gz allow two people to interact with one shellxcb_x_print_print_query_screens- 3 3 1540917640 A - - gz pthread_cleanup_pop 3- 3 3 1402354211 B - - gz push and pop thread cancellation clean-up handlersbio_ssl_shutdownBIO_ssl_shutdown 3ssl 3 1721417624 B - - gz SSL BIOstrchr 3- 3 3 1402354212 A - - gz locate character in stringbio_set_write_buf_sizeBIO_set_write_buf_size 3ssl 3 1721417624 B - - gz BIO pair BIOgroupdel- 8 8 1565319053 A - - gz delete a groupxcmscieluvquerymaxlXcmsCIELuvQueryMaxL 3 3 1710950786 B - - gz obtain the CIE L*u*v* coordinatespselect pselect 3 pselect 2 pselect 3ptiffwritebuffersetupTIFFWriteBufferSetup 3tiff 3 1729525165 C TIFFbuffer - gz environ environ 7 environ 3phide_panel- 3x 3 1720626759 B - - gz panel stack extension for cursestcl_dictobjremoveTcl_DictObjRemove 3 3 1448008821 B - - gz manipulate Tcl objects as dictionariesxcb_selinux_get_selection_data_context_context_length- 3 3 1540917640 B - - gz evp_pkey_get_default_digest_nidEVP_PKEY_get_default_digest_nid 3ssl 3 1721417624 B - - gz get default signature digestsetns- 2 2 1402354206 A - - gz reassociate thread with a namespacesys_select.h- 0p 0p 1402354203 A - - gz select typesgetgroups 3p- 3p 3p 1402354215 A - - gz get supplementary group IDsbn_sub_wordBN_sub_word 3ssl 3 1721417624 B - - gz arithmetic functions on BIGNUMs with integersbn_set_max- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionsstrerror_r 3- 3 3 1402354212 B - - gz return string describing error numbermknod 3p- 3p 3p 1402354216 A - t gz make a directory, a special file, or a regular filed2i_cms_contentinfod2i_CMS_ContentInfo 3ssl 3 1721417624 A - - gz CMS ContentInfo functionsxcb_glx_get_string_unchecked- 3 3 1540917640 B - - gz dcgettext- 3 3 1354602538 B - - gz translate messageselabel_lookup_raw- 3 3 1585710994 B - - gz obtain SELinux security context from a string labelgit-cat-file- 1 1 1722330783 A - - gz Provide content or type and size information for repository objectstemplate::plugin::formatTemplate::Plugin::Format 3pm 3 1402357151 A - - gz Plugin to create formatting functionscsinh csinh 3 csinh 3pwmemchr wmemchr 3 wmemchr 3p /nO4randRG$setsj̚errn1[xresEQ poli'#Yevp_QBc6iso_ ^9pthr0>.vmcoQ ZZform G`xkbg bwbkg Jxxml:excb_OSxdr_ L֭caco Dtsqrt+1Sacced \_tcl_Yghas_4Wkzpuny'*Oxdr_Fslee##passL >showGtcl_TzGpkg_O U wtcl_ PUxcb_ ~xcb_D"ebmodi )=fstrH evp_KAfcst`O>:tacANxml:IQssl_eQWxcb_"logbSxcb_!*xcb_Z%Bbn_v E!setc )(]date V_enco /͢hypo 86pthr@tcl_^lkAzram::(xdr_ LhPxcb_p"2addn \bdflJ~7mkfsd  BPsran  <fflu  )ix~xcb_(!tfuseb!$iswu! Mxtap! H_Utiff9"dxtre"K ttyt #. xcb_+#)ibreao#0+lran# Hmvwv# bxcb_4$jXevp_m$?xcb_$"6&syst$6"_xcb_D%qW encot%/Axcb_%7hxcb_%k+mous$& ;2-xmapl& Oxget& <Lxcb_' Gxcb_I'^Rxkba'iGxdr_'F#miteV( 9\Yhas_(=Gbn_g( D*uuid-) IBxcb_)Myxcb_)"moun) =/git-?*W<úperl* 3file* IJunge7+Wmpara+S¯?acos+>strs,$ xcb_*,&Cevp_k,BMssetp,yxset,Bsave2- ;'xcb_x-ipc- Dsyst-=spu_-19git-8. =,lwre.Aeuca.Mxcb_?/6]<wsca/Cxtad@ J(cmp U@.k8xcb_@dpkg@ <ϲsetgA -İxcb_=A')ext4A:KsystATqsetb/tcl_&BRIT`eucaBP$0xcb_Bxcb_'CdateaC05Ztcl_C 7dislC =;xcb_0D")cargmDkLnextD&-git-D?OsetfE HGsigsUE @!xcb_E2ZdateE47lpod: remqDh xcb_bz buf_ I8 crea @} era_ T tcl__\~ can_>q fiel 8; ipcraTb perl7r tcl_R? gpasfA eulbGw ocspH swscTCM. mq_s ;C xcb_# use_%9e xcb_q2 ~ fclaJSq sran glus/ 0 bio_k: bn_i K? mallMZ8 getpoP list U O kill'˒ sg_sKg perl41 shmc A ziptJ 2 ] getp Lw pthrA| glob9-ڇ trunm B dh_o 7d fcdi=T4 getnM 8J asctw O\ root @x tcl_rNcH ec_g`sZ euar@+W fileqMߘ err_H xrme'Q% sg_i O expo Cҕ euca2/ nearo>n clos 55 xkbaa۠ xcb_r.m# xtauHLz crypF~n geths". cter@ tcl_S.` re(Nu pcrey >I extuU f xcb_+ aio_V ^ erroz, bn_d/> ttk: 5dBa vcsa$1釄 dateZ5` mvwiO rcs6-d wc 1gD profxc chagB@W wcsc C} ldex` E{h recv <'  consU kdum[ ? xcb_!d proj8a xcb_ ]u glusSB]M fips U& glus  2 sigp,=r tellw I檛 objc: ecds WSE openuTn tiff<q8T getpO ]ۋ xcb_v#~ xcb_U Swit 8t ckreG 7h pem_.:gdbus- 1 1 1523070240 A - - gz Tool for working with D-Bus objectsremquol remquol 3 remquol 3pxcb_glx_create_pbuffer- 3 3 1540917640 A - - gz buf_mem_freeBUF_MEM_free 3ssl 3 1721417624 B - - gz simple character array structurecreal creal 3 creal 3pera_dump- 8 8 1605543195 A - - gz dump era metadata from device or file to standard output.tcl_limittyperesetTcl_LimitTypeReset 3 3 1448008822 B - - gz manage and check resource limits on interpreterscan_change_color- 3x 3 1720626759 B - - gz curses color manipulation routinesfield_index- 3x 3 1720626759 B - - gz set and get form page numberipcrm 1- 1 1 1612283497 A - - gz remove a message queue, semaphore set or shared memory idperl5123delta- 1 1 1698237662 A - - gz what is new for perl v5.12.3tcl_discardresultTcl_DiscardResult 3 3 1448008822 B - - gz save and restore an interpreter's stategpasswd- 1 1 1565319053 A - - gz administer /etc/group and /etc/gshadoweulb-delete-tags- 1 1 1484780705 A - - gz Remove one or more tags from a load balancerocsp- 1ssl 1 1699892200 A - - gz Online Certificate Status Protocol utilityswscanf- 3p 3p 1402354218 B - - gz convert formatted wide-character inputmq_setattr 3- 3 3 1402354211 B - - gz get/set message queue attributesxcb_xf86dri_open_connection_bus_id- 3 3 1540917640 B - - gz use_default_colors- 3x 3 1720626759 B - - gz use terminal's default colorsxcb_list_fonts_unchecked- 3 3 1540917640 B - - gz get matching font namesfclanggetcharsetFcLangGetCharSet 3 3 1520307172 A - - gz Get character map for a languagesrand srand 3 srand 3pglusterfs 8- 8 8 1649176098 A - - gz clustered file systembio_set_nbio_acceptBIO_set_nbio_accept 3ssl 3 1721417624 B - - gz accept BIObn_is_wordBN_is_word 3ssl 3 1721417624 B - - gz BIGNUM comparison and test functionsmalloc_usable_size- 3 3 1402354210 A - - gz obtain size of block of memory allocated from heapgetpary- 3x 3 1720626759 B - - gz get curses cursor and window coordinates, attributeslist::utilList::Util 3pm 3 1402358219 A - - gz A selection of general-utility list subroutineskill kill 2 kill 1p kill 1 kill 3psg_sat_phy_event- 8 8 1585715378 A - - gz use ATA READ LOG EXT via a SAT pass-through to fetch SATA phy event countersperldos- 1 1 1698237664 A - - gz Perl under DOS, W31, W95.shmctl 3p- 3p 3p 1402354218 A - - gz XSI shared memory control operationsziptorrent- 1 1 1331803671 A - - gz torrentzip zip archivesgetpgrp 3p- 3p 3p 1402354215 A - - gz get the process group ID of the calling processpthread_getconcurrency 3p- 3p 3p 1402354217 A - - gz get and set the level of concurrencyglob 7- 7 7 1402354219 A - - gz globbing pathnamestruncate 3p- 3p 3p 1402354219 A - - gz truncate a file to a specified lengthdh_opensslDH_OpenSSL 3ssl 3 1721417624 B - - gz select DH methodfcdircacheloadfileFcDirCacheLoadFile 3 3 1520307172 A - - gz load a cache filegetnameinfo getnameinfo 3 getnameinfo 3pasctime_r 3- 3 3 1402354207 B - - gz transform date and time to broken-down time or ASCIIrootwindowRootWindow 3 3 1710950785 B - - gz Display macros and functionstcl_getreturnoptionsTcl_GetReturnOptions 3 3 1448008821 B - - gz retrieve or record information about errors and other return optionsec_group_set_curve_nameEC_GROUP_set_curve_name 3ssl 3 1721417624 B - - gz Functions for manipulating EC_GROUP objects.euare-userlistgroups- 1 1 1484780705 A - - gz List all groups a user is a member offile::checktreeFile::CheckTree 3pm 3 1402380727 A - - gz run many filetest checks on a treeerr_remove_stateERR_remove_state 3ssl 3 1721417624 A - - gz free a thread's error queuexrmenumeratedatabaseXrmEnumerateDatabase 3 3 1710950786 A - t gz enumerate resource database entriessg_ident- 8 8 1585715378 A - - gz send SCSI REPORT/SET IDENTIFYING INFORMATION commandexport 1p- 1p 1p 1402354203 A - - gz set the export attribute for variableseuca-register- 1 1 1484780705 A - - gz Register a new imagenearbyintf 3p- 3p 3p 1402354216 B - - gz floating-point rounding functionsclosedir 3p- 3p 3p 1402354214 A - - gz close a directory streamxkballocgeomkeysXkbAllocGeomKeys 3 3 1710950785 A - - gz Allocate space for an arbitrary number of keys to a rowxcb_xfixes_get_cursor_image_and_name_name_end- 3 3 1540917640 B - - gz xtaugmenttranslationsXtAugmentTranslations 3 3 1501646833 B - - gz manage translation tablescrypto_threadid_cpyCRYPTO_THREADID_cpy 3ssl 3 1721417624 B - - gz OpenSSL thread supportgethostbyaddr gethostbyaddr 3 gethostbyaddr 3pctermid ctermid 3 ctermid 3ptcl_truncatechannelTcl_TruncateChannel 3 3 1448008822 B - - gz buffered I/O facilities using channelsre- 3pm 3 1698237678 A - - gz Perl pragma to alter regular expression behaviourpcre32_exec- 3 3 1573510868 B - - gz Perl-compatible regular expressionsextutils::mm_win95ExtUtils::MM_Win95 3pm 3 1402365499 A - - gz method to customize MakeMaker for Win9Xxcb_glx_wait_gl- 3 3 1540917640 A - - gz aio_write aio_write 3 aio_write 3perror n- n n 1448008823 A - - gz Generate an errorbn_dupBN_dup 3ssl 3 1721417624 B - - gz copy BIGNUMsttk::entry- n n 1448008912 A - - gz Editable text field widgetvcsa- 4 4 1402354219 B - - gz virtual console memorydatetime::locale::tg_cyrlDateTime::Locale::tg_Cyrl 3pm 3 1402390641 A - - gz utime.h- 0p 0p 1402354203 A - - gz access and modification times structurexcb_input_list_input_devices_unchecked- 3 3 1540917640 B - - gz gammaf- 3 3 1402354209 B - - gz (logarithm of the) gamma functionselabel_open- 3 3 1585710994 A - - gz userspace SELinux labeling interfacedovecot- 1 1 1724195936 A - - gz a secure and highly configurable IMAP and POP3 serverxcb_selinux_get_selection_use_context_unchecked- 3 3 1540917640 B - - gz xgetwmprotocolsXGetWMProtocols 3 3 1710950786 B - - gz set or read a window's WM_PROTOCOLS propertyi2d_pkcs8privatekey_nid_fpi2d_PKCS8PrivateKey_nid_fp 3ssl 3 1721417624 B - - gz PKCS#8 format private key functionsnet::netrcNet::Netrc 3pm 3 1698237676 A - - gz OO interface to users netrc filewinfo- n n 1448008912 A - - gz Return window-related informationxcb_selinux_get_selection_data_context- 3 3 1540917640 A - - gz perfmonctl- 2 2 1402354205 A - - gz interface to IA-64 performance monitoring unitcut 1- 1 1 1605565487 A - - gz remove sections from each line of filesxcb_randr_get_provider_info_unchecked- 3 3 1540917640 B - - gz euca-confirm-product-instance- 1 1 1484780705 A - - gz Verify if a product code is associated with an instancexcb_set_font_path_checked- 3 3 1540917640 B - - gz depmod- 8 8 1585709895 A - - gz Generate modules.dep and map files.mvwinch- 3x 3 1720626759 B - - gz get a character and attributes from a curses windowrcs- 1 1 1585714623 A - - gz change attributeswc 1p- 1p 1p 1402354204 A - - gz word, line, and byte or character countprofil profil 3 profil 2chage- 1 1 1565319053 A - - gz change user password expiry informationwcscat 3p- 3p 3p 1402354219 A - - gz concatenate two wide-character stringsldexp 3p- 3p 3p 1402354216 A - - gz load exponent of a floating-point numberrecvmsg 3p- 3p 3p 1402354217 A - - gz receive a message from a socketconsole.handlers- 5 5 1585713588 A - - gz file specifying handlers of console lock and unlock eventskdump.conf- 5 5 1623254998 A - - gz configuration file for kdump kernel.xcb_render_query_filters_aliases- 3 3 1540917640 B - - gz projid- 5 5 1601488312 A - - gz the project name mapping filexcb_dri2_wait_sbc_reply- 3 3 1540917640 B - - gz gluster-setgfid2path- 8 8 1649176099 A - - gz Gluster tool to set GFID to Path xattrsfipscheck- 8 8 1501678068 A - - gz perform a FIPS-140-2 validation check of one or more filesglusterfs glusterfs 8 GlusterFS 8sigprocmask 2- 2 2 1402354206 A - - gz examine and change blocked signalstelldir 3p- 3p 3p 1402354218 A - - gz current location of a named directory streamobjcopy- 1 1 1696859909 A - - gz copy and translate object filesecdsa_sign_setupECDSA_sign_setup 3ssl 3 1721417624 B - - gz Elliptic Curve Digital Signature Algorithmopenssl_add_all_digestsOpenSSL_add_all_digests 3ssl 3 1721417624 B - - gz add algorithms to internal tabletiffrgbaimagebeginTIFFRGBAImageBegin 3tiff 3 1729525165 C TIFFRGBAImage - gz getpwnam_r getpwnam_r 3 getpwnam_r 3pxcb_randr_get_output_primary_reply- 3 3 1540917640 B - - gz xcb_composite_query_version- 3 3 1540917640 A - - gz Switch 3pm- 3pm 3 1402384755 A - - gz A switch statement for Perlpem_read_x509_reqPEM_read_X509_REQ 3ssl 3 1721417624 B - - gz PEM routinessg_test_rwbuf- 8 8 1585715378 A - - gz test a SCSI host adapter by issuing dummy writes and readsarchive::tarArchive::Tar 3pm 3 1565315036 A - - gz module for manipulations of tar archivesdeliver- 1 1 1694697466 B - - gz Dovecot's local mail delivery agentfile_contexts.local- 5 5 1585710994 B - - gz userspace SELinux labeling interface and configuration file format for the file contexts backendttytype 3x- 3x 3 1720626759 B - - gz curses terminfo global variablesextutils::cbuilder::platform::windowsExtUtils::CBuilder::Platform::Windows 3pm 3 1698237385 A - - gz Builder class for Windows platformsmodule::build::platform::vosModule::Build::Platform::VOS 3pm 3 1402373050 A - - gz Builder class for VOS platformstcl_listobjgetelementsTcl_ListObjGetElements 3 3 1448008822 B - - gz manipulate Tcl objects as listsrawdevices- 8 8 1612283497 B - - gz bind a Linux raw character devicelwres_gnbarequest_render- 3 3 1725373371 B - - gz lightweight resolver getnamebyaddress message handlinglet- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)reboot 8- 8 8 1711457788 B - - gz Halt, power-off or reboot the machinemime::base64MIME::Base64 3pm 3 1698237675 A - - gz Encoding and decoding of base64 stringsdatetime::locale::dzDateTime::Locale::dz 3pm 3 1402390642 A - - gz io::uncompress::rawinflateIO::Uncompress::RawInflate 3pm 3 1402361982 A - - gz Read RFC 1951 files/buffersperlio::via::quotedprintPerlIO::via::QuotedPrint 3pm 3 1698237676 A - - gz PerlIO layer for quoted-printable stringsxcb_alloc_color_unchecked- 3 3 1540917640 B - - gz Allocate a colorm4 1p- 1p 1p 1402354204 A - - gz macro processor (DEVELOPMENT)tcl_tracevarTcl_TraceVar 3 3 1448008822 A - - gz monitor accesses to a variablexcb_selinux_get_device_create_context_context_length- 3 3 1540917640 B - - gz msgcat n- n n 1448008823 A - - gz Tcl message catalogxcb_glx_get_mapdv_data_end- 3 3 1540917640 B - - gz datetime::timezone::olsondbDateTime::TimeZone::OlsonDB 3pm 3 1565315819 A - - gz An object to represent an Olson time zone databasebio_get_mem_ptrBIO_get_mem_ptr 3ssl 3 1721417624 B - - gz memory BIOsend n- n n 1448008912 A - - gz Execute a command in a different applicationgit-check-ignore- 1 1 1722330783 A - - gz Debug gitignore / exclude filesdump-acct- 8 8 1501750853 A - - gz print an acct/pacct file in human-readable formatdatetime::locale::loDateTime::Locale::lo 3pm 3 1402390639 A - - gz ssl_flush_sessionsSSL_flush_sessions 3ssl 3 1721417624 B - - gz remove expired sessionsfdim 3- 3 3 1402354209 A - - gz positive differenceins_wstr- 3x 3 1720626759 B - - gz insert a wide-character string into a curses windowxcb_list_installed_colormaps_reply- 3 3 1540917640 B - - gz grub2-fstest- 1 1 1722985065 A - - gz dsa_get_ex_dataDSA_get_ex_data 3ssl 3 1721417624 B - - gz add application specific data to DSA structurestcl_mem_debugTCL_MEM_DEBUG 3 3 1448008822 A - - gz Compile-time flag to enable Tcl memory debuggingtype_enumTYPE_ENUM 3x 3 1720626759 B - - gz form system global variablessystemd-shutdownd- 8 8 1711457788 B - - gz Scheduled shutdown servicefcstrbasenameFcStrBasename 3 3 1520307172 A - - gz last component of filenamexcb_xkb_get_controls_reply- 3 3 1540917640 B - - gz fcstrstrFcStrStr 3 3 1520307172 A - - gz locate UTF-8 substringwinsstr- 3x 3 1720626759 B - - gz insert string before cursor in a curses windowip-token- 8 8 1601484048 A - - gz tokenized interface identifier supportcircleq_entryCIRCLEQ_ENTRY 3 3 1402354206 B - - gz implementations of lists, tail queues, and circular queuesxkballoccontrolsXkbAllocControls 3 3 1710950785 A - t gz Allocates an XkbControlsRec structure in the XkbDescRecxcb_sync_get_priority- 3 3 1540917640 A - - gz xcb_input_get_extension_version- 3 3 1540917640 A - - gz pklocalauthority- 8 8 1402351713 A - - gz polkit Local Authority CompatibilityxdrawlinesXDrawLines 3 3 1710950785 B - - gz draw lines, polygons, and line structureyaml::nodeYAML::Node 3pm 3 1402340435 A - - gz A generic data node that encapsulates YAML informationtcl_printdoubleTcl_PrintDouble 3 3 1448008822 A - - gz Convert floating value to stringaddmntent- 3 3 1402354207 B - - gz get file system descriptor file entryssl_use_certificate_asn1SSL_use_certificate_ASN1 3ssl 3 1721417624 B - - gz load certificate and key datanewgrp 1p- 1p 1p 1402354204 A - - gz change to a new groupeuscale-delete-launch-config- 1 1 1484780705 A - - gz Delete an auto-scaling instance launch configurationlogresolve- 1 1 1530866687 A - - gz Resolve IP-addresses to hostnames in Apache log filesgeoiplookup- 1 1 1565307267 A - - gz look up country using IP Address or hostnameeuca-stop-instances- 1 1 1484780705 A - - gz Stop one or more running instancesxautorepeatonXAutoRepeatOn 3 3 1710950785 B - t gz manipulate keyboard settings and keyboard control structurexcb_randr_get_crtc_transform_pending_filter_name_length- 3 3 1540917640 B - - gz getitimer 3p- 3p 3p 1402354218 A - - gz get and set value of interval timerregsub- n n 1448008823 A - - gz Perform substitutions based on regular expression pattern matchingargz_extract- 3 3 1402354207 B - - gz functions to handle an argz listpam_mail- 8 8 1585713590 A - - gz Inform about available mailsystemd-debug-generator- 8 8 1711457788 A - - gz Generator for enabling a runtime debug shell and masking specific units at boot _'  dateP0#; i2d_EPS crypPO|- xkbgQ dracQKB tcl_R]y flooRg evp_R? lvmsR (% carg!S9 replbS<yn s390SK̦! xcb_ Tҵ type4TV tcl_TDx cpowTܥ menuU?2 filebU?Ǖ xunrU!jN file3V WOF versV^ sche W4N6 log VW7Ӻ xml:WU-Wa cdb_W N{# tcl_QXj mvadXb sign;Y2| bio__Y @{/ dateY33v typeY@Mߥ reco=ZM{F6 dateZ3' pem_Z;"~ sigs3[ ?9 lvmc~[5 xcb_[(gL name[I dateY\8ӣ file\ H xkbg] y pam_] 0o _nc_] 7 xcb_^$kf memoO^c,[0 get_^I xcb_-_ unxz^_Ex xcb__+4 xcb_#K xcb_>~ evp_kA/e rcsf!N] bool Yu xcb_G% ssl_ a? fileI; encocG$ xcb_ seq6 xcb_&pl euscK%7Ls llri 3xYl tgam .g xcb_(rp getm^ O`0 consS$ textX dsa_A Bk vwarȥ35j dove; ucs2JZӫ1 cryp K F xcb_1Q~ kibiDF xcb_ } pthŗM" bio_/4#O strct 5p bio_?I grou )ώ xcms:Nģ psel N tiffĩ;"s envi hide2 <=/ tcl_yQ xcb_ܪ6MX evp_- X setn>X sys_ )q getg 8@ bn_sd U>L bn_sŬ ? stre @ mkno\ P d2i_I xcb_Oʒ dcgeJ ," selaN git- ^R3 tempLY arch Pc csin deli]>X file{, ttyt2 <e extuy&da moduW tcl_wO: rawd < lwre$Ql let>) rebo @M mime Om dateu0" io::Q perl&]s& xcb_+& m4 1:l tcl_! Do xcb_r5} msgc .ns wmem֯k xcb_Y date/i X bio_6! sendGԷ git-H: dump LMa mRM date0M pthr`Aȇ fdim . d ins_  Oip xcb_ #Iԟ grubR  &: dsa_z [aQ tcl_ Wu typeJ  @d syst 5Y fcst A~V xcb_* jX fcst`  8z wins J= ip-t  A~ circ= a- xkba ay5 xcb_ xcb_O G pklo? xdra L yaml1 \Ed tcl_In8g addm @9c ssl_JR弣 newg 2s euscO8N logr] P! geoi G4 euca =Cc xaut\bj xcb_8&k geti @{ regsl]Ws argz ;g pam_ 6 systWjp; temp@O=? gdk-g@@0 fese@ K isxdA < vsca^A 2{^` dateA36 timeAP systDB 2:W freeB9U waddB a1ȳ tcl_5CI8^ tee C5Vy lvm-Cc iso_C ^j stap_D a devlD 7$ appcE xcb_EL֞ sigaE>˻ usle+F i vconOFE` endfF /h ' fileF K nran0Gr ui_dNGB:6 tcl_G`Y- dateHSHW autoH =* eucaH,z} tcl_I?O tc-p^I *ϱ xcb_I2w grubI>Y pcre,J >P\q symlvJ 12 sigwJ 4Yp tc-mJ K~J dsa_GK B moduK[o? key. LM;a certjL :H xwriL<6 xcb_L$e gai_9M OYX findM's vsscM 2r4 inetM AL ccosLN` perldN 7YX bindN4c iswdN 29 atanO/U+ bn_m8O?{= dateO3& fcpaP9 xcb_IP/,d scsiPF~ clntP F C xcb_>Q threrQ 4 git-Q+v tiffQ:r> qsta1R6j timeO s git-mR GBr cpanRS coslS*! tzsePS @k asinS.KÑ lwreS=( tcpsT PĤ ssl_uTH&c xcb_TѶZ flocT  sele#U 7D odeU  datetU0a' screUL7 xcb_ Vh# tcl_>V Qt tcl_V ^F% fcpaW;/ xcb_RW(Ξ xcb_WL eucaWA{8 ec_g*Xds: autoX >' ec_gX]/j sigfeY=x g strtY 51{ koopY<i grub>Z}J fcvtZFb pcre"[>Z pcrer[>0 tcut[80 modu\oWa key_\ =J ec_g\gK ssl_T]S3 gitw] H tcl_ ^Tj systu^3 va_s^ 2- xcb_^ tcl_&_ G_ .x_>( y0 3_@M getg`  fdat!` pk cimaE` 8x chmo`#, fcho` 5 ssl_. Ftemplate::plugin::imageTemplate::Plugin::Image 3pm 3 1402357151 A - - gz Plugin access to image sizesgdk-pixbuf-query-loaders- 1 1 1540936214 A - - gz GdkPixbuf loader registration utilityfesetenv 3p- 3p 3p 1402354215 B - - gz get and set current floating-point environmentisxdigit 3- 3 3 1402354210 B - - gz character classification routinesvscanf 3- 3 3 1402354213 B - - gz input format conversiondatetime::locale::en_ieDateTime::Locale::en_IE 3pm 3 1402390637 A - - gz timer_gettime 2- 2 2 1402354206 B - - gz arm/disarm and fetch state of POSIX per-process timersystemd.path- 5 5 1711457787 A - - gz Path unit configurationfree_fieldtype- 3x 3 1720626759 B - - gz define validation-field typeswaddwstr- 3x 3 1720626759 B - - gz add a string of wide characters to a curses window and advance cursortcl_vartraceinfo2Tcl_VarTraceInfo2 3 3 1448008822 B - - gz monitor accesses to a variabletee 1p- 1p 1p 1402354204 A - - gz duplicate standard inputlvm-fullreport- 8 8 1619616701 A - - gz iso_8859_9- 7 7 1402354220 B - t gz ISO 8859-9 character set encoded in octal, decimal, and hexadecimalstap-report- 1 1 1602605484 A - - gz collect system information that is useful for debugging systemtap bugsdevlink-dev- 8 8 1601484048 A - - gz devlink device configurationappconfig::sysAppConfig::Sys 3pm 3 1402380594 A - - gz Perl5 module defining platform-specific information and methods for other AppConfig::* modules.xcb_alloc_color_cells_pixels- 3 3 1540917640 B - - gz sigaltstack 2- 2 2 1402354206 A - - gz set and/or get signal stack contextusleep usleep 3 usleep 1 usleep 3pvconsole.conf- 5 5 1711457788 A - - gz Configuration file for the virtual consoleendfsent- 3 3 1402354208 B - - gz handle fstab entriesfilehandleFileHandle 3pm 3 1698237674 A - - gz supply object methods for filehandlesnrand48 nrand48 3 nrand48 3pui_dup_error_stringUI_dup_error_string 3ssl 3 1721417624 B - - gz New User Interfacetcl_limitremovehandlerTcl_LimitRemoveHandler 3 3 1448008822 B - - gz manage and check resource limits on interpretersdate::language::hungarianDate::Language::Hungarian 3pm 3 1402364546 A - - gz Magyar format for Date::Formatauto_load- n n 1448008823 B - - gz standard library of Tcl procedureseuca-delete-snapshot- 1 1 1484780705 A - - gz Delete a snapshottcl_pkgprovideTcl_PkgProvide 3 3 1448008822 B - - gz package version controltc-police- 8 8 1601484048 A - - gz policing actionxcb_selinux_get_property_data_context_context_end- 3 3 1540917640 B - - gz grub2-mkconfig- 8 8 1722985065 A - - gz Generate a GRUB configuration file.pcre_config- 3 3 1501643278 A - - gz Perl-compatible regular expressionssymlink 7- 7 7 1402354220 A - - gz symbolic link handlingsigwait 3p- 3p 3p 1402354218 A - - gz wait for queued signalstc-matchall- 8 8 1601484048 A - - gz traffic control filter that matches every packetdsa_freeDSA_free 3ssl 3 1699892207 A - - gz allocate and free DSA objectsmodule::build::platform::amigaModule::Build::Platform::Amiga 3pm 3 1402373050 A - - gz Builder class for Amiga platformskey.dns_resolver- 8 8 1402366674 A - - gz Upcall for request-key to handle dns_resolver keyscert9.db- 5 5 1730826028 A - - gz Legacy NSS certificate databasexwritebitmapfileXWriteBitmapFile 3 3 1710950786 B - - gz manipulate bitmapsxcb_dri2_invalidate_buffers_event_t- 3 3 1540917640 A - - gz gai_suspend- 3 3 1402354209 B - - gz asynchronous network address and service translationfind 1p- 1p 1p 1402354203 A - - gz find filesvsscanf 3- 3 3 1402354213 B - - gz input format conversioninet_addr 3- 3 3 1402354210 B - - gz Internet address manipulation routinesccosf ccosf 3 ccosf 3pperlguts- 1 1 1698237665 A - - gz Introduction to the Perl APIbind 3p- 3p 3p 1402354214 A - - gz bind a name to a socketiswdigit iswdigit 3 iswdigit 3patanl 3- 3 3 1402354207 B - - gz arc tangent functionbn_mul_comba4- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionsdatetime::locale::so_djDateTime::Locale::so_DJ 3pm 3 1402390642 A - - gz timer_delete timer_delete 2 timer_delete 3pfcpatterncreateFcPatternCreate 3 3 1520307172 A - - gz Create a patternxcb_randr_query_provider_property_valid_values- 3 3 1540917640 B - - gz scsi_logging_level- 8 8 1585715378 A - - gz access Linux SCSI logging level informationclnt_perrno- 3 3 1402354208 B - - gz library routines for remote procedure callsxcb_xkb_per_client_flags- 3 3 1540917640 A - - gz threads 3ssl- 3ssl 3 1699892218 A - - gz OpenSSL thread supportgit-log- 1 1 1722330783 A - - gz Show commit logstiffrgbaimagegetTIFFRGBAImageGet 3tiff 3 1729525165 C TIFFRGBAImage - gz qstat- 1p 1p 1402354204 A - - gz show status of batch jobsgit-clean- 1 1 1722330782 A - - gz Remove untracked files from the working treecpan::versionCPAN::Version 3pm 3 1698237384 A - - gz utility functions to compare CPAN versionscosl 3- 3 3 1402354208 B - - gz cosine functiontzset 3p- 3p 3p 1402354219 A - t gz set timezone conversion informationasin 3p- 3p 3p 1402354214 A - - gz arc sine functionlwres_conf_init- 3 3 1725373371 B - - gz lightweight resolver configurationtcpslice- 8 8 1575308684 A - - gz extract pieces of and/or merge together tcpdump filesssl_set1_curvesSSL_set1_curves 3ssl 3 1721417624 B - - gz EC supported curve functionsxcb_copy_plane_checked- 3 3 1540917640 B - - gz flockfile flockfile 3 flockfile 3pselect_tut- 2 2 1402354205 A - - gz synchronous I/O multiplexingod od 1p od 1datetime::locale::viDateTime::Locale::vi 3pm 3 1402390634 A - - gz screen- 1 1 1615303609 A - - gz screen manager with VT100/ANSI terminal emulationxcb_xfixes_hide_cursor- 3 3 1540917640 A - - gz tcl_releaseTcl_Release 3 3 1448008822 B - - gz avoid freeing storage while it is being usedtcl_finalizeTcl_Finalize 3 3 1448008821 B - - gz end the application or thread (and invoke exit handlers)fcpatterndestroyFcPatternDestroy 3 3 1520307172 A - - gz Destroy a patternxcb_input_get_device_property_unchecked- 3 3 1540917640 B - - gz xcb_randr_get_crtc_transform- 3 3 1540917640 A - - gz euca-associate-dhcp-options- 1 1 1484780705 A - - gz Associate a DHCP option set with a VPCec_group_check_discriminantEC_GROUP_check_discriminant 3ssl 3 1721417624 B - - gz Functions for manipulating EC_GROUP objects.autoscan- 1 1 1402378884 A - - gz Generate a preliminary configure.inec_gfp_nistp521_methodEC_GFp_nistp521_method 3ssl 3 1721417624 B - - gz Functions for obtaining EC_METHOD objects.sigfillset 3p- 3p 3p 1402354218 A - - gz initialize and fill a signal setstrtok_r 3p- 3p 3p 1402354218 B - - gz split string into tokenskoops_event.conf- 5 5 1601569733 B - - gz configuration file for libreport.grub2-get-kernel-settings- 3 3 1722985065 A - - gz Evaluate the system's kernel installation settings for use while making a grub configuration file.fcvt_r- 3 3 1402354209 B - - gz convert a floating-point number to a stringpcre16_maketables- 3 3 1573510868 B - - gz Perl-compatible regular expressionspcre16_get_stringnumber- 3 3 1573510868 B - - gz Perl-compatible regular expressionstcutest- 1 1 1402385697 A - - gz test cases of the utility APImodule::pluggable::objectModule::Pluggable::Object 3pm 3 1402350267 A - - gz automatically give your module the ability to have pluginskey_gendes- 3 3 1402354210 B - - gz interfaces to rpc keyserver daemonec_group_clear_freeEC_GROUP_clear_free 3ssl 3 1721417624 B - - gz Functions for creating and destroying EC_GROUP objects.ssl_conf_ctx_newSSL_CONF_CTX_new 3ssl 3 1721417624 A - - gz SSL configuration allocation functionsgitworkflows- 7 7 1722330784 A - - gz An overview of recommended workflows with Gittcl_saveinterpstateTcl_SaveInterpState 3 3 1448008822 B - - gz save and restore an interpreter's statesystemd.mount- 5 5 1711457787 A - - gz Mount unit configurationva_start 3- 3 3 1402354213 B - - gz variable argument listsxcb_glx_gen_lists_reply- 3 3 1540917640 B - - gz tcl_concatTcl_Concat 3 3 1448008821 A - - gz concatenate a collection of strings.- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)y0 3p- 3p 3p 1402354219 A - - gz Bessel functions of the second kindgetgrgid getgrgid 3 getgrgid 3pfdatasync fdatasync 2 fdatasync 3pcimagf 3p- 3p 3p 1402354214 B - - gz complex imaginary functionschmod chmod 2 chmod 1p chmod 1 chmod 3pfchown 2- 2 2 1402354204 B - - gz change ownership of a filepthread_attr_getschedparam 3p- 3p 3p 1402354217 A - - gz get and set the schedparam attributehtml::formHTML::Form 3pm 3 1390915553 A - - gz Class that represents an HTML form elementmb_len_maxMB_LEN_MAX 3 3 1402354207 A - - gz maximum multibyte length of a character across all localesxcb_randr_get_output_info_crtcs_end- 3 3 1540917640 B - - gz xdg-desktop-menu- 1 1 1478360732 A - - gz command line tool for (un)installing desktop menu itemsexeclp 3p- 3p 3p 1402354215 B - t gz execute a filembrlen 3p- 3p 3p 1402354216 A - - gz get number of bytes in a character (restartable)slk_attron- 3x 3 1720626759 B - - gz curses soft label routinesecpkparameters_print_fpECPKParameters_print_fp 3ssl 3 1721417624 B - - gz Functions for decoding and encoding ASN1 representations of elliptic curve entitieserror_one_per_line- 3 3 1402354208 B - - gz glibc error reporting functionsfcpatterngetdoubleFcPatternGetDouble 3 3 1520307172 C FcPatternGet-Type - gz xcb_damage_query_version- 3 3 1540917640 A - - gz tcl_channelseekprocTcl_ChannelSeekProc 3 3 1448008821 B - - gz procedures for creating and manipulating channelscatopen 3- 3 3 1402354207 A - - gz open/close a message catalogxdr_union- 3 3 1402354213 B - - gz library routines for external data representationxcb_randr_get_providers_providers_length- 3 3 1540917640 B - - gz pthread_detach 3- 3 3 1402354211 A - - gz detach a threadsetstate_r- 3 3 1402354212 B - - gz reentrant random number generatoracos 3- 3 3 1402354207 A - - gz arc cosine functionumask 2- 2 2 1402354206 A - - gz set file mode creation maskfield_just- 3x 3 1720626759 B - - gz retrieve field characteristicsbio_get_bind_modeBIO_get_bind_mode 3ssl 3 1721417624 B - - gz accept BIOpam_rootok- 8 8 1585713591 A - - gz Gain only root accessxcb_xfixes_invert_region_checked- 3 3 1540917640 B - - gz cloud-run-instances- 1 1 1410347192 A - - gz wrapper for euca-run-instances that supports an option for injecting public ssh keys retrievable from Launchpad.netshmget shmget 2 shmget 3pdiagnostics 3pm- 3pm 3 1698237678 A - - gz produce verbose warning diagnosticsxgetvisualinfoXGetVisualInfo 3 3 1710950786 A - t gz obtain visual information and visual structuredatetime::locale::copDateTime::Locale::cop 3pm 3 1402390642 A - - gz des_ecb3_encryptDES_ecb3_encrypt 3ssl 3 1721417624 B - - gz DES encryptionfilesys::dfFilesys::Df 3pm 3 1424358503 A - - gz Perl extension for filesystem disk space information.tcl_utftoexternaldstringTcl_UtfToExternalDString 3 3 1448008821 B - - gz procedures for creating and using encodingsssl_ctx_set_client_cert_cbSSL_CTX_set_client_cert_cb 3ssl 3 1721417624 A - - gz handle client certificate callback functiondatetime::locale::catalogDateTime::Locale::Catalog 3pm 3 1402390644 A - - gz Provides a list of all valid locale namesssleaySSLeay 3ssl 3 1721417624 B - - gz retrieve version/build information about OpenSSL libraryfpurge- 3 3 1402354209 A - - gz purge a streampam 3- 3 3 1585713595 A - - gz Pluggable Authentication Modules Libraryftruncate64- 2 2 1402354204 B - - gz truncate a file to a specified lengthtcl_exprlongobjTcl_ExprLongObj 3 3 1448008822 B - - gz evaluate an expressionset_item_opts- 3x 3 1720626759 B - - gz set and get menu item optionsset_field_type- 3x 3 1720626759 B - - gz data type validation for fieldsxkbnoteindicatorchangesXkbNoteIndicatorChanges 3 3 1710950785 A - - gz Notes the changes in a changes structurexshrinkregionXShrinkRegion 3 3 1710950786 B - - gz region arithmeticxcb_create_cursor_checked- 3 3 1540917640 B - - gz cal cal 1p cal 1xrdb- 1 1 1502476988 A - - gz X server resource database utilityssl_state_stringSSL_state_string 3ssl 3 1721417624 A - - gz get textual description of state of an SSL objectdatetime::locale::zh_hans_hkDateTime::Locale::zh_Hans_HK 3pm 3 1402390641 A - - gz xcb_xkb_get_indicator_map- 3 3 1540917640 A - - gz tcl_splicechannelTcl_SpliceChannel 3 3 1448008821 B - - gz procedures for creating and manipulating channelsavc_netlink_check_nb- 3 3 1585710994 B - - gz SELinux netlink processingnoecho- 3x 3 1720626759 B - - gz curses input optionsxkbsetautoresetcontrolsXkbSetAutoResetControls 3 3 1710950785 A - - gz Changes the current values of the AutoReset control attributesfclangsetcreateFcLangSetCreate 3 3 1520307172 A - - gz create a langset objectrsa_blinding_onRSA_blinding_on 3ssl 3 1721417624 A - - gz protect the RSA operation from timing attacksio::seekableIO::Seekable 3pm 3 1698237674 A - - gz supply seek based methods for I/O objectsnew-kernel-pkg- 8 8 1565307693 A - - gz tool to script kernel installationssl_get_verify_callbackSSL_get_verify_callback 3ssl 3 1721417624 B - - gz get currently set verification parametersnofilter_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensiono ixcb_`raw 5`<ZV;acosw` @)Qeuar`#Sslk_;tap:GF+git-aO_%fileLbmbRDxcb_boxcb_bDform-c 4uxcb_nc'זlvm-c pxcb_c`vio::d Sxcb_nd$SNmysqd 5blkid?&;xcb_0e&Eio::qe JI,cvtse ?֎posi2!RdCfielf5osigq ?n\chgpRf ?_xdeff5fmodfD+asin*g|M xkbcEgIQnfsig :=WusergS!gzex;h=D2tcl_~hT<autoh EZSec_p3i__mai5ݟtcl_jWtttk:j 6~>pem_jFZisas.k 58moduokVmkswk3uperll6ciso-`l ^_lxcb_asn1& JsignlIeeucam8Lwmem  RMpthr Z@3 stapom,pem_mBPJy1lm>ͻxcb_An& SHA5n 3zputpn 5tcl_oGKssh_Zo ArbitmX I{9wvli  b.xcb_o,S_xml:Hcpu_ZADcryp@Wvspr l-tcl_Xxcb_~Astri'XQgetr G?~ gfdl74temp EjUfs| ~Txcb_/  7PgtropRBgexeci  +5xcb_ɲ5$tcl_QGvi2d_ \sget 92lgamƳ -lXseli^:getcn Dxctan3KKeulb G5evp_Cbselil aݻwchaO4opte  3Xscexp$>:xthah9ElwreAe3[yaml S[fperl 6<]d2i_Winitb ;6proc 3OOtcl_lqǾevp_C <Xxcb_=eucaAhEKlrincsin.3,xcloi Ru(evp_ķ>xkbgV)|ssl_vnHlistd+tcl_uCw/=xcb_˹0xcb_r|loadO@@+xcb_=pthrϺ7procGxgetq;KeucaM: grpc:`nxml:_P c"perlɼ+4type>readH P9init ;@post ddest\6 .k5l ?Yssl_]wcsrT EaxtreQ^aAsyst20cpangfCbxcb_~.'loca &Fdate8Pssl_efsg_d1`Stie: Upxcb_2.Mgit->"+nlsigni @ܩidna'1pcre{>O)ycasi +jtap:Mxcb_Vsigf: tfmala>rpc:aQ2OOqueuUzIpcre>ydateT0 Ssigii .bindEpbasse 7,geta& Pitcfl _loca Y{datet3RcursX(xcb_--Hxcb_urgitc=upftp7a96%pkcs AY`fg 1I7fmtmua pxml::libxml::attrXML::LibXML::Attr 3pm 3 1402352993 A - - gz XML::LibXML Attribute Classcpu_clrCPU_CLR 3 3 1402354206 B - - gz macros for manipulating CPU setscrypt::ssleayCrypt::SSLeay 3pm 3 1402373605 A - - gz OpenSSL support for LWPvsprintf vsprintf 3 vsprintf 3ptcl_commandcompleteTcl_CommandComplete 3 3 1448008821 A - - gz Check for unmatched braces in a Tcl commandxcb_dpms_disable- 3 3 1540917640 A - - gz stringprep_convert- 3 3 1448125246 A - - gz API functiongetresgid32- 2 2 1402354205 B - - gz get real, effective and saved user/group IDsgfdl- 7 7 1547112203 C gfdl-libstdc++-plesk-6.3.0 - gz gtroff- 1 1 1533764324 B - t gz the troff processor of the groff text formatting systemxcb_input_get_selected_extension_events_this_classes- 3 3 1540917640 B - - gz tcl_appendunicodetoobjTcl_AppendUnicodeToObj 3 3 1448008822 B - - gz manipulate Tcl objects as stringssgetspent_r- 3 3 1402354212 B - - gz get shadow password file entrylgamma_r- 3 3 1402354210 B - - gz log gamma functionselinux_colors_path- 3 3 1585710994 A - - gz Return a path to the active SELinux policy color configuration filegetcon_raw- 3 3 1585710994 B - - gz get SELinux security context of a processctanl 3- 3 3 1402354208 B - - gz complex tangent functionevp_get_cipherbyobjEVP_get_cipherbyobj 3ssl 3 1721417624 B - - gz EVP cipher routineswchar.h- 0p 0p 1402354203 A - - gz wide-character handlinglwres_buffer_getuint32- 3 3 1725373371 B - - gz lightweight resolver buffer managementyaml::dumperYAML::Dumper 3pm 3 1402340435 A - - gz YAML class for dumping Perl objects to YAMLevp_idea_ofbEVP_idea_ofb 3ssl 3 1721417624 B - - gz EVP cipher routinesxcb_poly_text_8_checked- 3 3 1540917640 B - - gz euca-import-volume- 1 1 1484780705 A - - gz Import a file to a volume in the cloudlrintl lrintl 3 lrintl 3pcsin 3p- 3p 3p 1402354214 A - - gz complex sine functionsxcloseimXCloseIM 3 3 1710950786 B - - gz open, close, and obtain input method informationevp_cipher_nidEVP_CIPHER_nid 3ssl 3 1721417624 B - - gz EVP cipher routinesxkbgetcontrolsXkbGetControls 3 3 1710950785 A - t gz Finds the current state of Xkb server controlsssl_set_generate_session_idSSL_set_generate_session_id 3ssl 3 1721417624 B - - gz manipulate generation of SSL session IDs (server only)list_insert_headLIST_INSERT_HEAD 3 3 1402354207 B - - gz implementations of lists, tail queues, and circular queuestcl_pkgrequireprocTcl_PkgRequireProc 3 3 1448008822 B - - gz package version controlxcb_glx_get_convolution_parameterfv_data_length- 3 3 1540917640 B - - gz xcb_big_requests_enable_reply- 3 3 1540917640 B - - gz loadtkloadTk n n 1448008912 A - - gz Load Tk into a safe interpreter.xcb_convert_selection_checked- 3 3 1540917640 B - - gz pthread_getname_np- 3 3 1402354211 B - - gz set/get the name of a threadprocess_vm_readv- 2 2 1402354205 A - - gz transfer data between process address spacesxgetpointercontrolXGetPointerControl 3 3 1710950785 B - - gz control pointereuca-describe-tags- 1 1 1484780705 A - - gz List tags associated with your account's resourcesgrpck- 8 8 1565319053 A - - gz verify integrity of group filesxml::parser::style::debugXML::Parser::Style::Debug 3pm 3 1402361425 A - - gz Debug style for XML::Parserperldbmfilter- 1 1 1698237664 A - - gz Perl DBM Filterstypeset- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)readlink 1- 1 1 1605565487 A - - gz print resolved symbolic links or canonical file namesinitstate 3p- 3p 3p 1402354217 A - - gz pseudo-random number functionspostlogin-ac- 5 5 1501837535 B - - gz Common configuration files for PAMified services written by authconfig(8)destroy- n n 1448008912 A - - gz Destroy one or more windows.k5login- 5 5 1726771586 B - - gz Kerberos V5 acl file for host accessssl_set_verify_depthSSL_set_verify_depth 3ssl 3 1721417624 B - - gz set peer certificate verification parameterswcsrchr 3p- 3p 3p 1402354219 A - - gz wide-character string scanning operationsystemd-hostnamed- 8 8 1711457788 B - - gz Host name bus mechanismfmal fmal 3 fmal 3p Z zy acosqu..C umasu6 xcb_t)#. genlN xcb_wa asn1Q@{d date3lM# bio_5Nn5 exp1/7wz} mvinl Kv xcb_ clntFtbs io::L Yl xcb_v~ set_4OE defa%C u gettv DH,, coll 9› rsa_  9@ sdbmL > e pthr<9 contKy curs@XykU eusc 4 wcsc ] pthrm>9c xmbuG4 toup @ csplcM pthr~Uy euca06  lset>6dT bio_y FM tcl_aQ3 chro9 W pm-s={A date3˟ xcb_3'< pem_u;̌ cfse   tbf q base D{ xcb_`J xcb_"M pod:Sv endp@-A caco{wK gets Du tcl_\f xcb_U xcb_5 xcirL7 xcb_845_ ledmgO edat2 fclapB keycSpNt xcb_p*R tk_cpd**) gittsq Vp' euarq@ xcb_#r D uri:^rG4= xcb_r!%; cursrV/X sys/Zs #{h dates3i diffs.( fege t I set_`t 9 pem_t$L xauguKJ pod:uu0BU perru 7 listu =h euca@v, xcb_v'5$ acctv2 xtgev PdGw cpankw <› xcb_w(v minow1 near+x r xcb_Rx"Dyv dtlsxw  catayWy dnss3yF; matcyk lwrezB$ fsynqz : sockz JϑI tcl_ {nj/ sslv{pe upda |; echoY|?K wcrt| W llri} xmbs}J xcb_z}+ send} 5+H repo} P) xcb_I~ erfc~1 imax~ P/. strt~ G: pthrF$+IR xcb_yĵ htmlp P" real #SU mb_l[p ^ xcb_p$ xdg-qRBч execfq +H mbrlq MY slk_q 6j ecpk3rq error: frex: fcpas<C xcb_ns tcl_s^ZB catot 7 hton  pthrt**f sets*u <~ tcl_6_y xcb_6 xdr_Ut L  fielu :PJW bio_)v8 k pam_sv 0& xcb_v!xg clouvE{Z shmgw= diagw@z* xgetwV date\x1s des_x; filex \B tcl_Wy]G ssl_ybBb dateJz^` sslez[L fpur${)GU pam T{C. ftru{ @ tcl_{?( set_8|9Ka set_|;@ xkbn|Yz xshr:}8+ xcb_} cal}S xrdb}=C ssl_ ~^ datex~8L xcb_~Km tcl_\, avc_p5! xkbso} fcla@ noec0ݎ rsa_׀Yۢ^ io::@ QhHt new-= XS ssl_] nofi_ ;Q xcb_ pcre8>l x509}kc vsnp t ar% } tcl_4V\ geto S xcb_& perl= .R difft T]o shmd ?| xcb_& p! hwdb],Ӆ putc?I vfwp  autoN xcb_Xv! argz ; pcre >[ xcb_!@߬ FD_ST 7L sear *] tiff;B list ^[ƃ s_ti@~u xcb_-6 getr G cursFX  csqr .L fcinRJ C forkV1t` xcb_4cf xtcrR_ xaul+ Bo) pcrey>& setv xcb_j zero$% xcb_>' strc 5G mkst 3Oy tcl_N vaspZ 4 u msgg A= xcb_N[n ssl_R# atol?=I gai. <K kill. conjD8 winc \ xaddMwz mvinK JV xkbaH.v tr 19( euar98y@ tcl_ NlY xcb_3 syscP >{x tcl_C2N xcb_ 69 tcl_,[ date0^ tcl_Sg whicICa> d2i_RR gets Bm set_B 5 make2M stri <e loca V[& grubr@L xtgr47 fccoMaX lwrekAe mloc a xcb_G, tail  _p xcb_x,=@ cron P git- //N ungeQ :/ aspe46H xcb_ b git- G } xcb_nmn iconE( evp_?9 tcl_E? fsta R{O pem_!IK clocY3 net:cre rsa_ Jq MD2 i >xcb_randr_get_crtc_gamma_red- 3 3 1540917640 B - - gz pcre 3- 3 3 1501643278 A - - gz Perl-compatible regular expressionsx509_store_ctx_get_errorX509_STORE_CTX_get_error 3ssl 3 1721417624 A - - gz get or set certificate verification status informationvsnprintf vsnprintf 3 vsnprintf 3par ar 1p ar 1tcl_winutftotcharTcl_WinUtfToTChar 3 3 1448008821 B - - gz procedures for creating and using encodingsgetopt::longGetopt::Long 3pm 3 1523406856 A - - gz Extended processing of command line optionsxcb_xf86dri_open_connection_unchecked- 3 3 1540917640 B - - gz perlhack- 1 1 1698237666 A - - gz How to hack on Perldifftime 3p- 3p 3p 1402354214 A - - gz compute the difference between two calendar time valuesshmdt 3p- 3p 3p 1402354218 A - - gz XSI shared memory detach operationxcb_xkb_get_indicator_state_unchecked- 3 3 1540917640 B - - gz hwdb- 7 7 1711457788 A - - gz Hardware Databaseputc_unlocked 3p- 3p 3p 1402354217 B - - gz stdio with explicit client lockingvfwprintf vfwprintf 3 vfwprintf 3pautouse- 3pm 3 1698237678 A - - gz postpone load of modules until a function is usedxcb_render_composite_glyphs_16- 3 3 1540917640 A - - gz argz_insert- 3 3 1402354207 B - - gz functions to handle an argz listpcre_exec- 3 3 1501643278 A - - gz Perl-compatible regular expressionsxcb_randr_get_providers- 3 3 1540917640 A - - gz FD_SET 3- 3 3 1402354206 B - - gz synchronous I/O multiplexingsearch.h- 0p 0p 1402354203 A - - gz search tablestiffiscodecconfiguredTIFFIsCODECConfigured 3tiff 3 1729525165 C TIFFcodec - gz list_entryLIST_ENTRY 3 3 1402354206 B - - gz implementations of lists, tail queues, and circular queuess_time- 1ssl 1 1699892201 A - - gz SSL/TLS performance timing programxcb_glx_wait_x- 3 3 1540917640 A - - gz getrusage 3p- 3p 3p 1402354215 A - - gz get information about resource utilizationcurses::ui::containerCurses::UI::Container 3pm 3 1454728582 A - - gz Create and manipulate container widgetscsqrtf 3- 3 3 1402354208 B - - gz complex square rootfcinitloadconfigandfontsFcInitLoadConfigAndFonts 3 3 1520307172 A - - gz load configuration and font datafork 2- 2 2 1402354204 A - - gz create a child processxcb_glx_get_materialiv- 3 3 1540917640 A - - gz xtcreateapplicationshellXtCreateApplicationShell 3 3 1501646833 A - - gz create top-level widget instancexaulockauthXauLockAuth 3 3 1402361801 B - - gz X authority database routinespcre16_free_substring- 3 3 1573510868 B - - gz Perl-compatible regular expressionssetvbuf setvbuf 3 setvbuf 3pxcb_clear_area- 3 3 1540917640 A - - gz zero- 4 4 1402354219 B - - gz data sinkxcb_x_print_print_get_image_resolution- 3 3 1540917640 A - - gz strchrnul- 3 3 1402354212 B - - gz locate character in stringmkstemp 3p- 3p 3p 1402354216 A - - gz make a unique filenametcl_newdictobjTcl_NewDictObj 3 3 1448008821 B - - gz manipulate Tcl objects as dictionariesvasprintf- 3 3 1402354207 A - - gz print to allocated stringmsgget 3p- 3p 3p 1402354216 A - - gz get the XSI message queue identifierxcb_screensaver_set_attributes- 3 3 1540917640 A - - gz ssl_add0_chain_certSSL_add0_chain_cert 3ssl 3 1721417624 B - - gz extra chain certificate processingatol 3p- 3p 3p 1402354214 A - - gz convert a string to a long integergai.conf- 5 5 1402354219 A - - gz getaddrinfo(3) configuration filekill 1- 1 1 1612283497 A - - gz terminate a processconj 3p- 3p 3p 1402354214 A - - gz complex conjugate functionswinchnstr- 3x 3 1720626759 B - - gz get a string of characters (and attributes) from a curses windowxaddconnectionwatchXAddConnectionWatch 3 3 1710950786 A - - gz handle Xlib internal connectionsmvinsstr- 3x 3 1720626759 B - - gz insert string before cursor in a curses windowxkballocgeomsectionsXkbAllocGeomSections 3 3 1710950785 A - - gz Allocate geometry sectionstr 1- 1 1 1605565487 A - - gz translate or delete characterseuare-instanceprofilecreate- 1 1 1484780705 A - - gz Create a new instance profiletcl_fsdataTcl_FSData 3 3 1448008822 B - - gz procedures to interact with any filesystemxcb_change_window_attributes- 3 3 1540917640 A - - gz change window attributessysctl.d- 5 5 1711457787 A - - gz Configure kernel parameters at boottcl_dstringfreeTcl_DStringFree 3 3 1448008821 B - - gz manipulate dynamic stringsxcb_free_gc- 3 3 1540917640 A - - gz Destroys a graphics contexttcl_allowexceptionsTcl_AllowExceptions 3 3 1448008821 A - - gz allow all exceptions in next script evaluationdatetime::locale::heDateTime::Locale::he 3pm 3 1402390643 A - - gz tcl_reapdetachedprocsTcl_ReapDetachedProcs 3 3 1448008821 B - - gz manage child processes in backgroundwhich- 1 1 1402367122 A - - gz shows the full path of (shell) commands.d2i_x509_crl_fpd2i_X509_CRL_fp 3ssl 3 1721417624 B - - gz PKCS#10 certificate request functions.getsubopt 3- 3 3 1402354209 A - - gz parse suboption arguments from a stringset_new_page- 3x 3 1720626759 B - - gz form pagination functionsmakecontext 3- 3 3 1402354212 A - - gz manipulate user contextstrings 1p- 1p 1p 1402354204 A - - gz find printable strings in fileslocale::languageLocale::Language 3pm 3 1402383324 A - - gz standard codes for language identificationgrub2-mklayout- 1 1 1722985065 A - - gz Generate a GRUB keyboard layout file.xtgrabkeyboardXtGrabKeyboard 3 3 1501646833 B - - gz manage grabsfcconfiggetrescanintervalFcConfigGetRescanInterval 3 3 1520307172 A - - gz Get config rescan intervallwres_buffer_subtract- 3 3 1725373371 B - - gz lightweight resolver buffer managementmlockall mlockall 2 mlockall 3pxcb_poly_point- 3 3 1540917640 A - - gz tailq_entryTAILQ_ENTRY 3 3 1402354207 B - - gz implementations of lists, tail queues, and circular queuesxcb_input_xi_list_properties_properties_end- 3 3 1540917640 B - - gz crontabs- 4 4 1402352071 A - - gz configuration and scripts for running periodical jobsgit-mktag- 1 1 1722330783 A - - gz Creates a tag objectungetc 3- 3 3 1402354213 B - - gz input of characters and stringsaspell- 1 1 1402355076 A - - gz interactive spell checkerxcb_input_change_pointer_device- 3 3 1540917640 A - - gz git-credential-cache--daemon- 1 1 1722330783 A - - gz Temporarily store user credentials in memoryxcb_no_operation_checked- 3 3 1540917640 B - - gz iconv_close 3p- 3p 3p 1402354216 A - - gz codeset conversion deallocation functionevp_digestfinalEVP_DigestFinal 3ssl 3 1721417624 B - - gz EVP digest routinestcl_pkgrequireTcl_PkgRequire 3 3 1448008822 B - - gz package version controlfstatat64- 2 2 1402354204 B - - gz get file status relative to a directory file descriptorpem_write_netscape_cert_sequencePEM_write_NETSCAPE_CERT_SEQUENCE 3ssl 3 1721417624 B - - gz PEM routinesclock_getres 2- 2 2 1402354204 A - - gz clock and time functionsnet::protoentNet::protoent 3pm 3 1698237676 A - - gz by-name interface to Perl's built-in getproto*() functionsrsa_public_encryptRSA_public_encrypt 3ssl 3 1721417624 A - - gz RSA public key cryptographyMD2 3ssl- 3ssl 3 1721417624 B - - gz MD2, MD4, and MD5 hash functionsxtreservepropertyatomXtReservePropertyAtom 3 3 1501646833 A - - gz maintain a cache of property atomscpanplus::dist::buildCPANPLUS::Dist::Build 3pm 3 1402353121 A - - gz CPANPLUS plugin to install packages that use Build.PLlocaltime localtime 3 localtime 3p localtime 5ssl_ctx_get_info_callbackSSL_CTX_get_info_callback 3ssl 3 1721417624 B - - gz handle information callback for SSL connectionssg_decode_sense- 8 8 1585715378 A - - gz decode SCSI sense datatie::fileTie::File 3pm 3 1698237678 A - - gz Access the lines of a disk file via a Perl arrayxcb_selinux_get_window_create_context_context- 3 3 1540917640 B - - gz pcre32_assign_jit_stack- 3 3 1573510868 B - - gz Perl-compatible regular expressionscasinl 3- 3 3 1402354207 B - - gz complex arc sinexcb_query_best_size_reply- 3 3 1540917640 B - - gz sigfillset sigfillset 3 sigfillset 3prpc::plclientRPC::PlClient 3pm 3 1402366910 A - - gz Perl extension for writing PlRPC clientsqueue- 3 3 1402354211 A - - gz implementations of lists, tail queues, and circular queuespcre_free_study- 3 3 1501643278 A - - gz Perl-compatible regular expressionssigignore 3p- 3p 3p 1402354218 B - - gz signal managementtcflush 3- 3 3 1402354213 B - - gz get and set terminal attributes, line control, get and set baud ratelocale::codesLocale::Codes 3pm 3 1402383323 A - - gz a distribution of modules to handle locale codesdatetime::locale::bn_inDateTime::Locale::bn_IN 3pm 3 1402390644 A - - gz curses::ui::textentryCurses::UI::TextEntry 3pm 3 1454728582 A - - gz Create and manipulate textentry widgetsxcb_composite_release_overlay_window_checked- 3 3 1540917640 B - - gz xcb_render_query_version_reply- 3 3 1540917640 B - - gz gitcore-tutorial- 7 7 1722330784 A - - gz A Git core tutorial for developerspkcs11.txt- 5 5 1730826028 A - - gz NSS PKCS #11 module configuration filefg 1p- 1p 1p 1402354203 A - - gz run jobs in the foregroundslk_attr_set_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensiontap::parser::result::testTAP::Parser::Result::Test 3pm 3 1439389327 A - - gz Test result token.posix_trace_eventtypelist_rewind- 3p 3p 1402354217 B - - gz iterate over a mapping of trace event types (TRACING)sigqueue 2- 2 2 1402354206 B - - gz queue a signal and data to a processxcb_xfixes_translate_region- 3 3 1540917640 A - - gz asn1_string_typeASN1_STRING_type 3ssl 3 1721417624 B - - gz ASN1_STRING utility functionswmemmove 3p- 3p 3p 1402354219 A - - gz copy wide characters in memory with overlapping areaspthread_attr_getinheritsched 3- 3 3 1402354211 B - - gz set/get inherit-scheduler attribute in thread attributes objectbitmapbitorderBitmapBitOrder 3 3 1710950785 B - - gz image format functions and macroswvline_set- 3x 3 1720626759 B - - gz create curses borders or lines using complex characters and renditionstemplate::manual::filtersTemplate::Manual::Filters 3pm 3 1402357152 A - - gz Standard filtersfs- 5 5 1402354219 B - - gz Linux file-system types: minix, ext, ext2, ext3, ext4, Reiserfs, XFS, JFS, xia, msdos, umsdos, vfat, ntfs, proc, nfs, iso9660, hpfs, sysv, smb, ncpfsxcb_xkb_get_controls_unchecked- 3 3 1540917640 B - - gz execvp 3p- 3p 3p 1402354215 B - t gz execute a filei2d_rsaprivatekeyi2d_RSAPrivateKey 3ssl 3 1721417624 B - - gz RSA public and private key encoding functions.eulb-create-lb-listeners- 1 1 1484780705 A - - gz Add one or more listeners to a load balancerselinux_status_policyload- 3 3 1585710994 B - - gz reference the SELinux kernel status without invocation of system callsopterr 3p- 3p 3p 1402354216 B - - gz command option parsingcexp2- 3 3 1402354207 A - - gz base-2 exponent of a complex numberxthascallbacksXtHasCallbacks 3 3 1501646833 B - - gz process callbacksperl585delta- 1 1 1698237663 A - - gz what is new for perl v5.8.5d2i_pkcs8privatekey_biod2i_PKCS8PrivateKey_bio 3ssl 3 1721417624 B - - gz PKCS#8 format private key functionsinit_pair_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionprocmailex- 5 5 1511905870 A - - gz procmail rcfile examplesnl nl 3x nl 1p nl 1tcl_staticpackageTcl_StaticPackage 3 3 1448008822 A - - gz make a statically linked package available via the 'load' commandxcb_xinerama_query_screens_screen_info_length- 3 3 1540917640 B - - gz datetime::locale::sr_latn_baDateTime::Locale::sr_Latn_BA 3pm 3 1402390641 A - - gz git-credential- 1 1 1722330780 A - - gz Retrieve and store user credentialssignificand- 3 3 1402354212 A - - gz get mantissa of floating-point numberidna_strerror- 3 3 1448125246 A - - gz API functiontap::parser::result::bailoutTAP::Parser::Result::Bailout 3pm 3 1439389327 A - - gz Bailout result token.datetime::locale::mnDateTime::Locale::mn 3pm 3 1402390634 A - - gz bind n- n n 1448008911 A - - gz Arrange for X events to invoke Tcl scriptsassert 3p- 3p 3p 1402354214 A - - gz insert program diagnosticsgetattrs- 3x 3 1720626759 B - - gz get curses cursor and window coordinates, attributesec_group_copyEC_GROUP_copy 3ssl 3 1721417624 A - - gz Functions for manipulating EC_GROUP objects.o xcb_`raw 5`<ZV;acosw` @)Qeuar`#SY`fg 1I7fmtmua pF+git-aO_%fileLbmbRDxcb_boxcb_bDform-c 4uxcb_nc'זlvm-c pxcb_c`vio::d Sxcb_nd$SNmysqd 5blkid?&;xcb_0e&Eio::qe JI,cvtse ?dCfielf5n\chgpRf ?_xdeff5fmodfD+asin*g|M xkbcEgIQnfsig :=WusergS!gzex;h=D2tcl_~hT<autoh EZSec_p3i__mai5ݟtcl_jWtttk:j 6~>pem_jFZisas.k 58moduokVmkswk3uperll6ciso-`l ^signlIeeucam8@3 stapom,pem_mBPJy1lm>ͻxcb_An& SHA5n 3zputpn 5tcl_oGKssh_Zo A.xcb_o,S_xml:Hcpu_ZADcryp@Wvspr l-tcl_Xxcb_~Astri'XQgetr G?~ gfdl74 7PgtropR5xcb_ɲ5$tcl_Qsget 92lgamƳ -lXseli^:getcn Dxctan35evp_CݻwchaO4ElwreAe3[yaml SqǾevp_C <Xxcb_=eucaAhEKlrincsin.3,xcloi Ru(evp_ķ>xkbgV)|ssl_vnHlistd+tcl_uCw/=xcb_˹0xcb_r|loadO@@+xcb_=pthrϺ7procGxgetq;KeucaM: grpc:`nxml:_P c"perlɼ+4type>readH P9init ;@post ddest\6 .k5l ?Yssl_]wcsrT EaxtreQ^aAsyst20cpangf'loca &Pssl_efsg_d1`Stie: Upxcb_2.1pcre{>O)ycasi +xcb_Vsigf: tfmala>rpc:aQ2OOqueuUzIpcre> Ssigii .itcfl _loca Y{datet3RcursX(xcb_--Hxcb_urgitc=upftp7a96%pkcs Aslk_;tap:GO[|֎posi2!Rjxcb_Z6_lxcb_asn1& JLwmem  RMpthr ZrbitmX I{9wvli  btemp EjUfs| ~Txcb_/ Bgexeci  +Gvi2d_ \KKeulb Gbselil aopte  3Xscexp$>:xthah9[fperl 6<]d2i_Winitb ;6proc 3OOtcl_lCbxcb_~.Fdate8Mgit->"+nlsigni @ܩidna'jtap:MydateT0bindEpbasse 7,geta& P^ec_gVgtcl_@Stcl_g@ J *neww@1xcb_@,facc;A elakeycAOx|locaB ?.htcl_OB])dsortBFsg_sCCgetp^C <%xhosC T=protD 4locaDDVr$nfs4D*#teucaD>`'bn_g?E Oh"blibEMtk_mEKkmoduHF8xtunF4uinwF#O9ftruF ?cpowG1/2le64VGXBtcl_G^Bispf.H=writsH .6globH<LstrpH 56`anac/I 9CxzmosIBlnstI;7yum-I :-tempBJE fixfJ >yLxdesJ;1cxcb_.K'j.xcb_pK#=seliK|CpthrGLmeucaL:HCxcb_&M#Bavc_MF3"buf_M Fpod:6N/صccargyNxml:NJ>crypN >gpod:6OFX!rquoO>initP=zUxwcrBP GQGpm-uP4B%cataP Ec2ph3QQ֪expOGUpam QE{>dateQ3pfcpaRgYxcb_R-git-R 7;myis S ;mgetgeS /doveSB٩logfS7h•xlis1TU5=xcb_T14N.csqrT :[mlsbl)U-m}xcb_\U_fcpaUa_nssVA(pthrJV:4fputV5YsetrV E;in_w2W bDencW7e$fileW5${git-XVfc-p|X 1O.tiffX9'qdes_Y .mmodu?Y["shutY # xcb_Y*osigq ?3_next*Z=PhseauZ 0tcl_getchannelnamesTcl_GetChannelNames 3 3 1448008822 B - - gz buffered I/O facilities using channelstcl_ungetsTcl_Ungets 3 3 1448008822 B - - gz buffered I/O facilities using channelsnewwin- 3x 3 1720626759 B - - gz create curses windowsxcb_glx_get_histogram_parameteriv_unchecked- 3 3 1540917640 B - - gz faccessat- 2 2 1402354204 A - - gz check user's permissions of a file relative to a directory file descriptorkeyctl_reject- 3 3 1573510998 B - - gz Negatively instantiate a key specifying search errorlocale 7- 7 7 1402354220 A - - gz description of multilanguage supporttcl_externaltoutfdstringTcl_ExternalToUtfDString 3 3 1448008821 B - - gz procedures for creating and using encodingssort 1p- 1p 1p 1402354204 A - t gz sort, merge, or sequence check text filessg_stpg- 8 8 1585715378 A - - gz send SCSI SET TARGET PORT GROUPS commandgetpwent_r- 3 3 1402354209 A - - gz get passwd file entry reentrantlyxhostaddressXHostAddress 3 3 1710950785 B - - gz control host access and host control structureprotocols- 5 5 1402354219 A - - gz protocols definition filelocale::currencyLocale::Currency 3pm 3 1402383323 A - - gz standard codes for currency identificationnfs4_gss_princ_to_ids_ex- 3 3 1523419630 C nfs4_uid_to_name - gz euca-delete-bundle- 1 1 1484780705 A - - gz Delete a previously-uploaded bundlebn_gencb_setBN_GENCB_set 3ssl 3 1721417624 B - - gz generate primes and test for primalityblib- 3pm 3 1698237678 A - - gz Use MakeMaker's uninstalled version of a packagetk_menusetfocustk_menuSetFocus n n 1448008912 B - - gz Create and manipulate menu widgetsmodules.dep.bin- 5 5 1585709895 B - - gz Module dependency informationxtungrabbuttonXtUngrabButton 3 3 1501646833 B - - gz manage grabsinw- 2 2 1402354205 B - - gz port I/Oftruncate ftruncate 2 ftruncate 3pcpow 3- 3 3 1402354208 A - - gz complex power functionle64toh- 3 3 1402354210 B - - gz convert values between host and big-/little-endian byte ordertcl_getdefaultencodingdirTcl_GetDefaultEncodingDir 3 3 1448008821 B - - gz procedures for creating and using encodingsispfkeyIsPFKey 3 3 1710950785 B - - gz keysym classification macroswritemain- 3pm 3 1698237673 C ExtUtils::Miniperl - gz glob.h- 0p 0p 1402354203 A - - gz pathname pattern-matching typesstrptime 3p- 3p 3p 1402354218 A - - gz date and time conversionanacrontab- 5 5 1684247301 A - - gz configuration file for Anacronxzmore- 1 1 1443524256 A - - gz view xz or lzma compressed (text) fileslnstat- 8 8 1601484048 A - - gz unified linux network statisticsyum-shell- 8 8 1601571824 A - - - Yellowdog Updater Modified shelltemplate::modulesTemplate::Modules 3pm 3 1402357151 A - - gz Template Toolkit Modulesfixfiles- 8 8 1585713889 A - - gz fix file SELinux security contexts.xdestroysubwindowsXDestroySubwindows 3 3 1710950785 B - - gz destroy windowsxcb_input_xi_query_pointer_buttons_end- 3 3 1540917640 B - - gz xcb_get_keyboard_control_unchecked- 3 3 1540917640 B - - gz selinux_securetty_types_path- 3 3 1585710994 B - - gz These functions return the paths to the active SELinux policy configuration directories and filespthread_cleanup_pop_restore_np- 3 3 1402354211 B - - gz push and pop thread cancellation clean-up handlers while saving cancelability typeeuca-terminate-instances- 1 1 1484780705 A - - gz Terminate one or more instancesxcb_list_fonts_with_info_unchecked- 3 3 1540917640 B - - gz get matching font names and informationavc_sid_to_context- 3 3 1585710994 B - - gz obtain and manipulate SELinux security ID'sbuf_strlcatBUF_strlcat 3ssl 3 1721417624 B - - gz standard C library equivalentspod::pom::node::forPod::POM::Node::For 3pm 3 1402385888 A - - gz cargf cargf 3 cargf 3pxml::libxml::domXML::LibXML::DOM 3pm 3 1402352993 A - - gz XML::LibXML DOM Implementationcrypto_lockCRYPTO_lock 3ssl 3 1721417624 B - - gz OpenSSL thread supportpod::pom::node::overPod::POM::Node::Over 3pm 3 1402385888 A - - gz POM '=over' node classrquota- 3 3 1284035243 A - - gz implement quotas on remote machinesexp exp 3 exp 3pinit- 1 1 1711457787 B - - gz systemd system and service managerxwcreseticXwcResetIC 3 3 1710950786 B - - gz reset the state of an input contextpm-utils-bugreport-info.sh- 8 8 1410891653 A - - gz Print pm-utils bug reportcatanhf 3p- 3p 3p 1402354214 B - - gz complex arc hyperbolic tangent functionsc2ph- 1 1 1698237679 A - - gz Dump C structures as generated from "cc - g - S" stabspam 8- 8 8 1585713595 B - - gz Pluggable Authentication Modules for Linuxdatetime::locale::es_coDateTime::Locale::es_CO 3pm 3 1402390639 A - - gz fcpatternformatFcPatternFormat 3 3 1520307172 A - - gz Format a pattern into a string according to a format specifierxcb_input_device_button_state_notify_event_t- 3 3 1540917640 A - - gz git-status- 1 1 1722330783 A - - gz Show the working tree statusmyisamchk- 1 1 1697025034 A - t gz MyISAM table-maintenance utilitygetgrgid_r 3- 3 3 1402354209 B - - gz get group file entrydoveadm-config- 1 1 1694697466 B - - gz Dovecot's configuration dumping utilitylogf 3p- 3p 3p 1402354216 B - - gz natural logarithm functionxlistfontswithinfoXListFontsWithInfo 3 3 1710950786 B - - gz obtain or free font names and informationxcb_xv_query_port_attributes_attributes_iterator- 3 3 1540917640 B - - gz csqrtl 3p- 3p 3p 1402354214 B - - gz complex square root functionslsblk- 8 8 1612283497 A - - gz list block devicesxcb_xinerama_get_state_reply- 3 3 1540917640 B - - gz fcpatternremoveFcPatternRemove 3 3 1520307172 A - - gz Remove one object of the specified type from the patternnss- 5 5 1402354219 A - - gz Name Service Switch configuration filepthread_attr_setguardsize pthread_attr_setguardsize 3 pthread_attr_setguardsize 3pfputc_unlocked- 3 3 1402354209 B - - gz nonlocking stdio functionssetregid32- 2 2 1402354206 B - - gz set real and/or effective user or group IDin_wchstr- 3x 3 1720626759 B - - gz get an array of complex characters and renditions from a curses windowenc- 1ssl 1 1699892200 A - - gz symmetric cipher routinesfileno_unlocked- 3 3 1402354209 B - - gz nonlocking stdio functionsgit-tag- 1 1 1722330782 A - - gz Create, list, delete or verify a tag object signed with GPGfc-pattern- 1 1 1519011781 A - - gz parse and show patterntiffcielabtorgbinitTIFFCIELabToRGBInit 3tiff 3 1729525165 C TIFFcolor - gz des_crypt 3- 3 3 1402354208 A - - gz fast DES encryptionmodule::build::platform::macosModule::Build::Platform::MacOS 3pm 3 1402373049 A - - gz Builder class for MacOS platformsshutdown shutdown 8 shutdown 2 shutdown 3pxcb_list_installed_colormaps_cmaps_length- 3 3 1540917640 B - - gz nexttowardl 3- 3 3 1402354211 B - - gz floating-point number manipulationhsearch_r- 3 3 1402354210 B - - gz hash table managementxcb_randr_get_screen_resources_current_outputs_length- 3 3 1540917640 B - - gz euca-describe-vpn-connections- 1 1 1484780705 A - - gz Show information about VPN connectionsxcb_randr_get_providers_providers_end- 3 3 1540917640 B - - gz posix_trace_eventset_add- 3p 3p 1402354217 A - - gz manipulate trace event type sets (TRACING)python3- 1 1 1728493649 B - - gz an interpreted, interactive, object-oriented programming languagesystemd-tty-ask-password-agent- 1 1 1711457787 A - - gz List or process pending systemd password requestspr 1p- 1p 1p 1402354204 A - - gz print filesdatetime::locale::is_isDateTime::Locale::is_IS 3pm 3 1402390632 A - - gz datetime::locale::gswDateTime::Locale::gsw 3pm 3 1402390635 A - - gz pkey- 1ssl 1 1699892201 A - - gz public or private key processing toolip-mroute- 8 8 1601484048 A - - gz multicast routing cache managementvwprintf 3p- 3p 3p 1402354219 A - - gz wide-character formatted output of a stdarg argument listdrand48 3p- 3p 3p 1402354218 A - - gz generate uniformly distributed pseudo-random numbersxcb_get_atom_name_name_length- 3 3 1540917640 B - - gz datetime::locale::idDateTime::Locale::id 3pm 3 1402390641 A - - gz nl-qdisc-{add|list|delete}- 8 8 1501789719 C nl-qdisc-delete - gz xkeysymtostringXKeysymToString 3 3 1710950786 B - - gz convert keysymsxgetwmsizehintsXGetWMSizeHints 3 3 1710950785 B - t gz allocate size hints structure and set or read a window's WM_NORMAL_HINTS propertypem_read_x509_auxPEM_read_X509_AUX 3ssl 3 1721417624 B - - gz PEM routinesecpkparameters_printECPKParameters_print 3ssl 3 1721417624 B - - gz Functions for decoding and encoding ASN1 representations of elliptic curve entitiescsinhf csinhf 3 csinhf 3pextutils::constant::utilsExtUtils::Constant::Utils 3pm 3 1698237673 A - - gz helper functions for ExtUtils::Constantnonl_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionpod::pom::node::head2Pod::POM::Node::Head2 3pm 3 1402385888 A - - gz tcl_limitsetcommandsTcl_LimitSetCommands 3 3 1448008822 B - - gz manage and check resource limits on interpretersximoficXIMOfIC 3 3 1710950785 B - - gz create, destroy, and obtain the input method of an input contextcolrm- 1 1 1612283497 A - - gz remove columns from a filebzcat- 1 1 1284197711 A - - gz decompresses files to stdouterfc 3- 3 3 1402354208 A - - gz complementary error functionevp_aes_192_ccmEVP_aes_192_ccm 3ssl 3 1721417624 B - - gz EVP cipher routinesiso_8859_10- 7 7 1402354220 B - t gz ISO 8859-10 character set encoded in octal, decimal, and hexadecimaldwz- 1 1 1402363547 A - - gz DWARF optimization and duplicate removal toolxcb_input_device_mapping_notify_event_t- 3 3 1540917640 A - - gz io::uncompress::anyinflateIO::Uncompress::AnyInflate 3pm 3 1402361982 A - - gz Uncompress zlib-based (zip, gzip) file/buffermailstat- 1 1 1511905870 A - - gz shows mail-arrival statisticslocale.conf- 5 5 1711457787 A - - gz Configuration file for locale settingshline- 3x 3 1720626759 B - - gz create curses borders, horizontal and vertical linesxtwindowtowidgetXtWindowToWidget 3 3 1501646833 B - - gz translating strings to widgets or widgets to windowsevp_cast5_cfbEVP_cast5_cfb 3ssl 3 1721417624 B - - gz EVP cipher routinesxcb_xf86dri_get_client_driver_name- 3 3 1540917640 A - - gz vwait- n n 1448008824 A - - gz Process events until a variable is writtencomplete- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)xcb_input_xi_barrier_release_pointer- 3 3 1540917640 A - - gz elinkskeys- 5 5 1547139654 A - - gz keybindings for ELinkstc-u32- 8 8 1601484048 A - - gz universal 32bit traffic control filterevp_encryptinitEVP_EncryptInit 3ssl 3 1721417624 A - - gz EVP cipher routinesnet::snmpNet::SNMP 3pm 3 1391806043 A - - gz Object oriented interface to SNMPxgettextpropertyXGetTextProperty 3 3 1710950786 B - - gz set and read text propertiesstrspn 3p- 3p 3p 1402354218 A - - gz get length of a substringiswspace 3p- 3p 3p 1402354216 A - - gz test for a white-space wide-character codetwalk 3p- 3p 3p 1402354219 B - - gz manage a binary search treeperlmacosx- 1 1 1698237666 A - - gz Perl under Mac OS X_tiffmemcmp_TIFFmemcmp 3tiff 3 1729525165 C TIFFmemory - gz tiffcielabtoxyzTIFFCIELabToXYZ 3tiff 3 1729525165 C TIFFcolor - gz Template::Tools::tpage 1- 1 1 1402357150 C tpage - gz euscale-create-or-update-tags- 1 1 1484780705 A - - gz Create or update one or more resource tagspow10- 3 3 1402354211 A - - gz base-10 power functionsxcb_xv_query_adaptors- 3 3 1540917640 A - - gz arch_prctl- 2 2 1402354204 A - - gz set architecture-specific thread statexcb_glx_delete_textures- 3 3 1540917640 A - - gz http::request::commonHTTP::Request::Common 3pm 3 1402363906 A - - gz Construct common HTTP::Request objectstcl_unicharlenTcl_UniCharLen 3 3 1448008823 B - - gz routines for manipulating UTF-8 stringscd 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)euare-userdel- 1 1 1484780705 A - - gz Delete a userxcb_glx_get_doublev- 3 3 1540917640 A - - gz ctanl ctanl 3 ctanl 3pxcb_query_keymap_reply- 3 3 1540917640 B - - gz virtual_image_context- 5 5 1585710994 A - - gz The SELinux virtual machine image context configuration filegai_cancel- 3 3 1402354209 B - - gz asynchronous network address and service translationsystemd-cryptsetup-generator- 8 8 1711457788 A - - gz Unit generator for /etc/crypttabpow pow 3 pow 3pxcb_sync_query_alarm- 3 3 1540917640 A - - gz euscale-describe-policies- 1 1 1484780705 A - - gz Describe auto-scaling policieslinks- 1 1 1573511806 B - - gz lynx-like alternative character mode WWW browserxsavecontextXSaveContext 3 3 1710950786 A - - gz associative look-up routinesxselectinputXSelectInput 3 3 1710950786 A - - gz select input eventsfatlabel- 8 8 1540917240 A - - gz set or get MS-DOS filesystem labeldbm_filter::nullDBM_Filter::null 3pm 3 1698237673 A - - gz filter for DBM_Filtereulb-attach-lb-to-subnets- 1 1 1484780705 A - - gz [VPC only] Add a load balancer to one or more subnetspcre16_free_study- 3 3 1573510868 B - - gz Perl-compatible regular expressionsxcb_get_font_path_path_length- 3 3 1540917640 B - - gz gitweb- 1 1 1722330784 A - - gz Git web interface (web frontend to Git repositories)open 3p- 3p 3p 1402354216 A - - gz open a filegetlogin getlogin 3 getlogin 3psigwait 3- 3 3 1402354212 A - - gz wait for a signalpthread_mutexattr_getprotocol- 3p 3p 1402354217 A - - gz get and set the protocol attribute of the mutex attributes object (REALTIME THREADS)mantisbt_format.conf- 5 5 1585834715 A - - gz configuration file for libreport.alternatives- 8 8 1605295997 A - - gz maintain symbolic links determining default commandsperlfreebsd- 1 1 1698237665 A - - gz Perl version 5 on FreeBSD systemsposix_spawnattr_setflags- 3p 3p 1402354216 A - - gz get and set the spawn-flags attribute of a spawn attributes object (ADVANCED REALTIME)set_max_field- 3x 3 1720626759 B - - gz field buffer controlcron- 8 8 1684247301 A - - gz daemon to execute scheduled commandsxml::simpleXML::Simple 3pm 3 1402364239 A - - gz Easily read/write XML (esp config files)curs_inchstr- 3x 3 1715932337 A - - gz get a string of characters (and attributes) from a curses windowvdostats- 8 8 1601488174 A - - gz get configuration and statistics from a running VDO volumeawk 1- 1 1 1720626735 B - - gz pattern scanning and processing languagesh 1- 1 1 1638560014 B - - gz GNU Bourne-Again SHellthin_trim- 8 8 1605543195 A - - gz Issue discard requests for free pool space (offline tool).pkcs7_encryptPKCS7_encrypt 3ssl 3 1699892211 A - - gz create a PKCS#7 envelopedData structurenoqiflush- 3x 3 1720626759 B - - gz curses input optionscrypto_threadid_hashCRYPTO_THREADID_hash 3ssl 3 1721417624 B - - gz OpenSSL thread supportbio_new_ssl_connectBIO_new_ssl_connect 3ssl 3 1721417624 B - - gz SSL BIOxcb_glx_gen_textures_unchecked- 3 3 1540917640 B - - gz context_role_get- 3 3 1585710994 B - - gz Routines to manipulate SELinux security contextscms_recipientinfo_ktri_cert_cmpCMS_RecipientInfo_ktri_cert_cmp 3ssl 3 1721417624 B - - gz CMS envelopedData RecipientInfo routinesmbtowc mbtowc 3 mbtowc 3pman 1- 1 1 1540931193 A - t gz an interface to the on-line reference manualsperluniintro- 1 1 1698237670 A - - gz Perl Unicode introductionchmod 2- 2 2 1402354204 A - - gz change permissions of a filepod::simple::searchPod::Simple::Search 3pm 3 1402365606 A - - gz find POD documents in directory treesauthnone_create- 3 3 1402354207 B - - gz library routines for remote procedure callsdatetime::locale::mn_mong_cnDateTime::Locale::mn_Mong_CN 3pm 3 1402390632 A - - gz llrintl llrintl 3 llrintl 3psinhl sinhl 3 sinhl 3ptap::formatter::console::parallelsessionTAP::Formatter::Console::ParallelSession 3pm 3 1439389327 A - - gz Harness output delegate for parallel console outputxcb_randr_change_output_property- 3 3 1540917640 A - - gz xcb_randr_get_monitors_monitors_iterator- 3 3 1540917640 B - - gz ln 1- 1 1 1605565487 A - - gz make links between filesftw.h- 0p 0p 1402354203 A - - gz file tree traversaltcl_evaltokensTcl_EvalTokens 3 3 1448008822 A - - gz parse Tcl scripts and expressionsfcconfigsubstitutewithpatFcConfigSubstituteWithPat 3 3 1520307172 A - - gz Execute substitutionsxcb_damage_destroy- 3 3 1540917640 A - - gz bn_randBN_rand 3ssl 3 1721417624 A - - gz generate pseudo-random numberxcb_dpms_capable_reply- 3 3 1540917640 B - - gz xcb_map_window_checked- 3 3 1540917640 B - - gz Makes a window visiblecurs_threads- 3x 3 1715932338 A - - gz curses thread supportprofil 2- 2 2 1402354206 C unimplemented - gz xcb_xfixes_set_picture_clip_region_checked- 3 3 1540917640 B - - gz euca-create-subnet- 1 1 1484780705 A - - gz Create a new VPC subnetrealloc 3- 3 3 1402354211 B - - gz allocate and free dynamic memoryexit_group- 2 2 1402354204 A - - gz exit all threads in a processslk_attr_on- 3x 3 1720626759 B - - gz curses soft label routinesstrdup strdup 3 strdup 3pvi 1p- 1p 1p 1402354204 A - - gz screen-oriented (visual) display editorcms_add0_crlCMS_add0_crl 3ssl 3 1721417624 B - - gz CMS certificate and CRL utility functionsxcb_screensaver_query_version_unchecked- 3 3 1540917640 B - - gz ualarm ualarm 3 ualarm 3pxcb_glx_get_minmax_parameterfv_data_end- 3 3 1540917640 B - - gz egrep- 1 1 1501743497 B - - gz print lines matching a patternfreopen 3- 3 3 1402354209 B - - gz stream open functionslockf lockf 3 lockf 3pisgraph isgraph 3 isgraph 3pxcb_x_print_print_get_document_data- 3 3 1540917640 A - - gz xcb_xfixes_set_gc_clip_region_checked- 3 3 1540917640 B - - gz euca-create-network-acl-entry- 1 1 1484780705 A - - gz Create a new entry in a VPC network ACLxcb_xv_query_encodings_info_iterator- 3 3 1540917640 B - - gz vfork 3p- 3p 3p 1402354219 A - - gz create a new process; share virtual memoryxkbchangenamesXkbChangeNames 3 3 1710950785 A - t gz _summary-line_xkbsascreenXkbSAScreen 3 3 1710950785 A - t gz Returns the screenXXX field of act converted to a signed intbison- 1 1 1540931643 A - - gz GNU Project parser generator (yacc replacement)posix_trace_attr_setmaxdatasize- 3p 3p 1402354217 B - - gz retrieve and set trace stream size attributes (TRACING)getppid getppid 2 getppid 3pregex 3- 3 3 1402354211 A - - gz POSIX regex functionstouch 1- 1 1 1605565487 A - - gz change file timestampsiswcntrl 3p- 3p 3p 1402354216 A - - gz test for a control wide-character codessl_select_current_certSSL_select_current_cert 3ssl 3 1721417624 B - - gz extra chain certificate processingclogl clogl 3 clogl 3pxcb_xfixes_fetch_region- 3 3 1540917640 A - - gz i2d_netscape_rsai2d_Netscape_RSA 3ssl 3 1721417624 B - - gz RSA public and private key encoding functions.rsa_print_fpRSA_print_fp 3ssl 3 1721417624 B - - gz print cryptographic parameterstcsendbreak tcsendbreak 3 tcsendbreak 3pfd_clr FD_CLR 3 FD_CLR 2 FD_CLR 3pxseticonnameXSetIconName 3 3 1710950786 B - - gz set or read a window's WM_ICON_NAME propertyxkbgetstickykeysoptionsXkbGetStickyKeysOptions 3 3 1710950785 A - - gz Queries the current StickyKeys attributes for a keyboard devicemsg.h- 0p 0p 1402354203 B - - gz XSI message queue structuresless 3pm- 3pm 3 1698237678 A - - gz perl pragma to request less of somethingkpatch- 1 1 1585709998 A - - gz hot patch module managementroundf roundf 3 roundf 3pposix_spawnattr_getschedparam- 3p 3p 1402354217 A - - gz get and set the spawn-schedparam attribute of a spawn attributes object (ADVANCED REALTIME)dbd::gofer::policy::rushDBD::Gofer::Policy::rush 3pm 3 1402362412 A - - gz The 'rush' policy for DBD::Goferlgammal_r- 3 3 1402354210 B - - gz log gamma functionwunctrl_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionplatform- n n 1448008823 A - - gz System identification support code and utilitiesgrub2-mkrescue- 1 1 1722985065 A - - gz Generate a GRUB rescue image using GNU Xorriso.__flbf- 3 3 1402354207 B - - gz interfaces to stdio FILE structureeuca-associate-route-table- 1 1 1484780705 A - - gz Associate a VPC route table with a subnetfetestexcept 3- 3 3 1402354209 B - - gz floating-point rounding and exception handlingcurses::ui::calendarCurses::UI::Calendar 3pm 3 1454728582 A - - gz Create and manipulate calendar widgetsselinux_set_policy_root- 3 3 1585710994 B - - gz return the path of the SELinux policy files for this machine selinux_set_policy_root - Set an alternate SELinux root path for the SELinux policy files for this machine.xcb_glx_get_tex_gendv_unchecked- 3 3 1540917640 B - - gz rmdir 1p- 1p 1p 1402354204 A - - gz remove directoriesfchownat- 2 2 1402354204 A - - gz change ownership of a file relative to a directory file descriptorptar- 1 1 1565315036 A - - gz a tar-like program written in perlrdma-dev- 8 8 1601484048 A - - gz RDMA device configurationgzip- 1 1 1652367512 A - - gz compress or expand filesxcb_dri2_destroy_drawable- 3 3 1540917640 A - - gz xcb_record_create_context_checked- 3 3 1540917640 B - - gz xcb_glx_destroy_pixmap_checked- 3 3 1540917640 B - - gz htpasswd- 1 1 1712068782 A - - gz Manage user files for basic authenticationappconfig::argsAppConfig::Args 3pm 3 1402380594 A - - gz Perl5 module for reading command line arguments.pthread_setcanceltype 3- 3 3 1402354211 B - - gz set cancelability state and typedhcp-options- 5 5 1718116541 A - - gz Dynamic Host Configuration Protocol optionsdh_freeDH_free 3ssl 3 1699892207 A - - gz allocate and free DH objectsbio_get_callbackBIO_get_callback 3ssl 3 1721417624 B - - gz BIO callback functionsgetrlimit 2- 2 2 1402354206 A - - gz get/set resource limitschown32- 2 2 1402354204 B - - gz change ownership of a filexcb_randr_set_output_primary_checked- 3 3 1540917640 B - - gz sslv2_client_methodSSLv2_client_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionsxcb-requests- 3 3 1540917641 A - - gz about request manpageswait 1p- 1p 1p 1402354204 A - - gz await process completionperldelta- 1 1 1698237679 A - - gz what is new for perl v5.16.3aio.h- 0p 0p 1402354203 A - - gz asynchronous input and output (REALTIME)git-describe- 1 1 1722330782 A - - gz Show the most recent tag that is reachable from a commitec_key_generate_keyEC_KEY_generate_key 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_KEY objects.tc-skbmod- 8 8 1601484048 A - - gz user-friendly packet editor actionmvwins_nwstr- 3x 3 1720626759 B - - gz insert a wide-character string into a curses windowpow10f- 3 3 1402354211 B - - gz base-10 power functionsdatetime::locale::fo_foDateTime::Locale::fo_FO 3pm 3 1402390637 A - - gz xcb_selinux_get_window_context_unchecked- 3 3 1540917640 B - - gz sched_get_priority_max sched_get_priority_max 2 sched_get_priority_max 3pxcb_xkb_list_components- 3 3 1540917640 A - - gz euca-create-vpc-peering-connection- 1 1 1484780705 A - - gz Request a peering connection between two VPCscpan::meta::historyCPAN::Meta::History 3pm 3 1402391978 A - - gz history of CPAN Meta Spec changesungetwc ungetwc 3 ungetwc 3pwm- n n 1448008912 A - - gz Communicate with window managermq_open 3- 3 3 1402354211 A - - gz open a message queuetcl_getchannelerrorTcl_GetChannelError 3 3 1448008822 A - - gz functions to create/intercept Tcl errors by channel drivers._tiffmalloc_TIFFmalloc 3tiff 3 1729525165 C TIFFmemory - gz xcb_get_selection_owner- 3 3 1540917640 A - - gz Gets the owner of a selectionpthread_barrier_init- 3p 3p 1402354217 A - - gz destroy and initialize a barrier object (ADVANCED REALTIME THREADS)perlsub- 1 1 1698237668 A - - gz Perl subroutinesxcb_glx_create_window_checked- 3 3 1540917640 B - - gz xcb_xkb_set_controls- 3 3 1540917640 A - - gz sem_unlink sem_unlink 3 sem_unlink 3pscalb scalb 3 scalb 3pd2i_x509_crld2i_X509_CRL 3ssl 3 1721417624 A - - gz PKCS#10 certificate request functions.pax- 1p 1p 1402354204 A - t gz portable archive interchangeselinux SELinux 8 selinux 8fcpatternfilterFcPatternFilter 3 3 1520307172 A - - gz Filter the objects of patternformat- n n 1448008823 A - - gz Format a string in the style of sprintfxcb_get_pointer_mapping_reply- 3 3 1540917640 B - - gz dbd::gofer::transport::baseDBD::Gofer::Transport::Base 3pm 3 1402362412 A - - gz base class for DBD::Gofer client transportsxsetstippleXSetStipple 3 3 1710950786 B - - gz GC convenience routinestcl_getslaveTcl_GetSlave 3 3 1448008821 B - - gz manage multiple Tcl interpreters, aliases and hidden commandssystemd-rfkill- 8 8 1711457788 B - - gz Load and save the RF kill switch state at boot and shutdowncpu_andCPU_AND 3 3 1402354206 B - - gz macros for manipulating CPU setstparm- 3x 3 1720626759 B - - gz curses interfaces to terminfo databasetcl_setbytearraylengthTcl_SetByteArrayLength 3 3 1448008821 B - - gz manipulate Tcl objects as a arrays of bytesxcb_set_pointer_mapping_unchecked- 3 3 1540917640 B - - gz xcb_x_print_print_get_screen_of_context- 3 3 1540917640 A - - gz mouseinterval_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionxcb_composite_unredirect_window- 3 3 1540917640 A - - gz xcb_render_tri_strip_checked- 3 3 1540917640 B - - gz xrectangleXRectangle 3 3 1710950786 B - - gz draw rectangles and rectangles structuremd5_initMD5_Init 3ssl 3 1721417624 B - - gz MD2, MD4, and MD5 hash functionstermattrs_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionpod2::de::local::libPOD2::DE::local::lib 3pm 3 1501962388 A - - gz Erschaffen und benutzen von Perl Modulen in einem lokalen lib/ Verzeichnis mit PERL5LIBsync 8- 8 8 1402354220 A - - gz synchronize data on disk with memoryascii- 7 7 1402354219 A - t gz ASCII character set encoded in octal, decimal, and hexadecimalmd2 1ssl- 1ssl 1 1721417624 B - - gz message digestsvi 1- 1 1 1722022359 B - - gz Vi IMproved, a programmers text editoreuare-grouplistbypath- 1 1 1484780705 A - - gz List your account's groupsxkbbellXkbBell 3 3 1710950785 A - t gz Rings the bell on the default keyboardmenu_attributes- 3x 3 1720626759 A - - gz color and attribute control for menusrepo-rss- 1 1 1589300860 A - - gz generates an RSS feed from one or more Yum repositoriesxcb_randr_get_screen_resources_outputs_length- 3 3 1540917640 B - - gz xcb_x_print_print_end_page- 3 3 1540917640 A - - gz red 8- 8 8 1601484048 C tc-red - gz template::filtersTemplate::Filters 3pm 3 1402357151 A - - gz Post-processing filters for template blockspthread_mutex_getprioceiling- 3p 3p 1402354217 A - - gz get and set the priority ceiling of a mutex (REALTIME THREADS)tcl_newbooleanobjTcl_NewBooleanObj 3 3 1448008821 B - - gz store/retrieve boolean value in a Tcl_Objsched_getparam 3p- 3p 3p 1402354218 A - - gz get scheduling parameters (REALTIME)file_contexts.subs- 5 5 1585710994 B - - gz userspace SELinux labeling interface and configuration file format for the file contexts backendinfo 5- 5 5 1361578285 A - - gz readable online documentationxcb_input_open_device- 3 3 1540917640 A - - gz AS 1- 1 1 1696859910 C as - gz host.conf- 5 5 1402354219 A - - gz resolver configuration fileodbcinst.ini- 5 5 1565320310 A - - gz An unixODBC drivers configurationextutils::embedExtUtils::Embed 3pm 3 1698237386 A - - gz Utilities for embedding Perl in C/C++ applicationsb::terseB::Terse 3pm 3 1698237671 A - - gz Walk Perl syntax tree, printing terse info about opsslk_attr- 3x 3 1720626759 B - - gz curses soft label routinespam_sm_acct_mgmt- 3 3 1585713595 A - - gz PAM service function for account managementssl_ctx_sess_connectSSL_CTX_sess_connect 3ssl 3 1721417624 B - - gz obtain session cache statisticsfattach 2- 2 2 1402354204 B - - gz unimplemented system callsxcb_xkb_get_named_indicator- 3 3 1540917640 A - - gz tiffwriterawtileTIFFWriteRawTile 3tiff 3 1729525165 A - - gz write a tile of raw data to an open TIFF filertpr- 8 8 1601484048 A - - gz replace backslashes with newlines.asn1_string_dupASN1_STRING_dup 3ssl 3 1721417624 B - - gz ASN1_STRING utility functionsdatetime::locale::ltDateTime::Locale::lt 3pm 3 1402390638 A - - gz ssl_ctx_flush_sessionsSSL_CTX_flush_sessions 3ssl 3 1721417624 A - - gz remove expired sessionsssl_get_ciphersSSL_get_ciphers 3ssl 3 1721417624 A - - gz get list of available SSL_CIPHERss_server- 1ssl 1 1699892201 A - - gz SSL/TLS server programeuform-list-stack-resources- 1 1 1484780705 A - - gz List all resources for a stacksslv3_server_methodSSLv3_server_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionsmsgattrib- 1 1 1465650364 A - - gz attribute matching and manipulation on message catalogxtconvertandstoreXtConvertAndStore 3 3 1501646833 A - - gz invoke resource convertersttk::scrollbar- n n 1448008912 A - - gz Control the viewport of a scrollable widgetxfreecolorsXFreeColors 3 3 1710950785 B - e gz allocate and free colorsxuninstallcolormapXUninstallColormap 3 3 1710950786 B - - gz control colormapsxshapequeryextensionXShapeQueryExtension 3 3 1448003986 B - - gz X nonrectangular shape functionssecmod.db- 5 5 1730826028 A - - gz Legacy NSS security modules databasevidputs- 3x 3 1720626759 B - - gz curses interfaces to terminfo databaseethtool- 8 8 1565306213 A - t gz query or control network driver and hardware settingscurs_printw- 3x 3 1715932338 A - - gz print formatted output in curses windowspthread_attr_setscope 3p- 3p 3p 1402354217 B - - gz get and set the contentionscope attribute (REALTIME THREADS)ec_group_get_asn1_flagEC_GROUP_get_asn1_flag 3ssl 3 1721417624 B - - gz Functions for manipulating EC_GROUP objects.logrotate 8- 8 8 1585711568 A - - gz rotates, compresses, and mails system logsxtappmainloopXtAppMainLoop 3 3 1501646833 B - - gz query and process events and inputitem_init- 3x 3 1720626759 B - - gz set hooks for automatic invocation by applicationswcursyncup- 3x 3 1720626759 B - - gz create curses windowstcl_setchanneloptionTcl_SetChannelOption 3 3 1448008822 B - - gz buffered I/O facilities using channelsevp_get_digestbynidEVP_get_digestbynid 3ssl 3 1721417624 B - - gz EVP digest routinestie::stdhashTie::StdHash 3pm 3 1698237678 C Tie::Hash - gz encode::encodingEncode::Encoding 3pm 3 1402368577 A - - gz Encode Implementation Base Classmesg mesg 1p mesg 1euscale-describe-notification-configurations- 1 1 1484780705 A - - gz Describe notification actions associated with auto-scaling groupsgetpidcon- 3 3 1585710994 B - - gz get SELinux security context of a processxcb_glx_get_minmax- 3 3 1540917640 A - - gz tailq_headTAILQ_HEAD 3 3 1402354207 B - - gz implementations of lists, tail queues, and circular queuesxutf8reseticXutf8ResetIC 3 3 1710950786 B - - gz reset the state of an input contextfcgetlangsFcGetLangs 3 3 1520307172 A - - gz Get list of languagestextdomain- 3 3 1465650185 A - - gz set domain for future gettext() callsxtextwidth16XTextWidth16 3 3 1710950786 B - - gz compute text widthssl_conf_ctx_set1_prefixSSL_CONF_CTX_set1_prefix 3ssl 3 1699892218 A - - gz Set configuration context command prefixlh_doall- 3ssl 3 1721417624 B - - gz dynamic hash tablemvaddchstr- 3x 3 1720626759 B - - gz add a string of characters (and attributes) to a curses windowxtgetvaluesXtGetValues 3 3 1501646833 B - - gz obtain and set widget resourceseuca-authorize- 1 1 1484780705 A - - gz Add a rule to a security group that allows traffic to passstappaths- 7 7 1602605484 A - - gz systemtap configurable file pathsmkstemp 3- 3 3 1402354211 A - - gz create a unique temporary filenetworks- 5 5 1402354219 A - - gz network name informationxtgeterrordatabaseXtGetErrorDatabase 3 3 1501646833 A - - gz obtain error databasefseeko 3p- 3p 3p 1402354215 B - - gz reposition a file-position indicator in a streamtlsv1_client_methodTLSv1_client_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionspaste paste 1p paste 1curs_insstr- 3x 3 1715932338 A - - gz insert string before cursor in a curses windowxcb_record_enable_context_unchecked- 3 3 1540917640 B - - gz fcatomiccreateFcAtomicCreate 3 3 1520307172 A - - gz create an FcAtomic objectappend- n n 1448008823 A - - gz Append to variablenanl 3p- 3p 3p 1402354216 B - - gz return quiet NaNmsgmerge- 1 1 1465650364 A - - gz merge message catalog and templateavc_get_initial_sid- 3 3 1585710994 B - - gz obtain and manipulate SELinux security ID'sctstat- 8 8 1601484048 B - - gz unified linux network statisticsssl_ctx_set_alpn_select_cbSSL_CTX_set_alpn_select_cb 3ssl 3 1721417624 A - - gz handle application layer protocol negotiation (ALPN)fc-cat- 1 1 1519011780 A - - gz read font information cache filesFD_ZERO 3p- 3p 3p 1402354213 B - - gz synchronous I/O multiplexingsemget 3p- 3p 3p 1402354218 A - - gz get set of XSI semaphorestcl_setensembleflagsTcl_SetEnsembleFlags 3 3 1448008821 B - - gz manipulate ensemble commandssystem 3- 3 3 1402354212 A - - gz execute a shell commandscalb 3- 3 3 1402354212 A - - gz multiply floating-point number by integral power of radix (OBSOLETE)putwchar_unlocked- 3 3 1402354211 B - - gz nonlocking stdio functionstemplate::grammarTemplate::Grammar 3pm 3 1402357152 A - - gz Parser state/rule tables for the TT grammary0 y0 3 y0 3pxcb_intern_atom_unchecked- 3 3 1540917640 B - - gz Get atom identifier by namekeyctl 3- 3 3 1402366674 A - - gz Key management function wrappersendpwent 3- 3 3 1402354208 B - - gz get password file entryxsetplanemaskXSetPlaneMask 3 3 1710950786 B - - gz GC convenience routinesbox_set- 3x 3 1720626759 B - - gz create curses borders or lines using complex characters and renditionsset_field_opts- 3x 3 1720626759 B - - gz set and get field optionspthread_attr_setguardsize 3p- 3p 3p 1402354217 B - - gz get and set the thread guardsize attributexcb_glx_get_drawable_attributes_unchecked- 3 3 1540917640 B - - gz comm 1- 1 1 1605565487 A - - gz compare two sorted files line by linebn_expand- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionsperlio::encodingPerlIO::encoding 3pm 3 1698237676 A - - gz encoding layerset_field_fore- 3x 3 1720626759 B - - gz color and attribute control for form fieldsisastream 3p- 3p 3p 1402354216 A - - gz test a file descriptor (STREAMS)xkbfreegeomoverlaysXkbFreeGeomOverlays 3 3 1710950785 A - - gz Free rows in a sectionwaitid 2- 2 2 1402354206 B - - gz wait for process to change statelgammaf lgammaf 3 lgammaf 3pabrt-ccpp.confabrt-CCpp.conf 5 5 1601569733 A - - gz Configuration file for ABRT's core dump crash hookhosts_options- 5 5 788632949 A - - gz host access control language extensionspcPC 3x 3 1720626759 B - - gz direct curses interface to the terminfo capability databasexsetregionXSetRegion 3 3 1710950786 A - - gz create or destroy regionsdatetime::locale::ug_cnDateTime::Locale::ug_CN 3pm 3 1402390641 A - - gz setlocale 3- 3 3 1402354212 A - - gz set the current localelibxslt- 3 3 1242109774 A - - gz library used to do XSL transformations on XML documentsevp_cipherupdateEVP_CipherUpdate 3ssl 3 1721417624 B - - gz EVP cipher routinesitem_description- 3x 3 1720626759 B - - gz get menu item name and description fieldscache_check- 8 8 1605543195 A - - gz validates cache metadata on a device or file.rewind 3- 3 3 1402354211 B - - gz reposition a streampam_syslog- 3 3 1585713595 A - - gz send messages to the system loggerselinux_x_context_path- 3 3 1585710994 B - - gz These functions return the paths to the active SELinux policy configuration directories and filesxsloaderXSLoader 3pm 3 1698237678 A - - gz Dynamically load C libraries into Perl codepost_menu- 3x 3 1720626759 B - - gz write or erase menus from associated subwindowsfcfontsortFcFontSort 3 3 1520307172 A - - gz Return list of matching fontsnexttowardf nexttowardf 3 nexttowardf 3pcpanplus::internals::reportCPANPLUS::Internals::Report 3pm 3 1402392266 A - - gz internals for sending test reportsxcb_glx_get_lightiv_data_end- 3 3 1540917640 B - - gz I_ bmd2i_ O pax\9+tanhX6* isdiYEtcat5YB/Lxcb_U^!dbd:bluxset  <슣tcl_T cW=systIJV(cpu_)AtparrBJtcl_[fnxcb_,"k#xcb_i(kN1mous;ƀxcb_  xcb_3Nxreck LImd5_µ Eterm ;.epod2X}sync?u!asci:Ymd2  -2vi 1ϷĄZeuar5uxkbb`Gfx>menuAbrepo RM,xcb_[.Xxcb_red ڹ }tempXpthrj[$0tcl_TbgUscheHAfile{info)8txcb_h=AS 1ehost 6a=odbc <⤶extuC]xcb_Yset_YOpam_PF(Essl_Pe/xque ZDWxcb_Ktiff[euca;hsetlN /G)date8}mkdoBM\xcb_)%ssl_iesys/ %isup 9'ctcgecZ consZ =afcatZGbfcch$[>PLsha1_ <!Latanmsetf Hpgetu randu[9htcl_6>sgetc N4llro ssl_Gttcl_TQfete Hssl_Nz]xcb_E1 xcb_xdrrL`jxcb_#-ipc:k DxkbrXHxcb_(/Xustar5xfsck C^get_/Adate>1^curs R sys_ 5_Tslk_!  6Psymlc  Yܕ!md2 pxcb_ 'xglob 2ldateX 5;thin  Uldat  Dtap:V \Q-d2i_ T_#xcb_1 ~xcmsf <9H]sd 6/iden  _Nktcl_S p)QDfabs BMhtell  Fxcb_[9wwcsnpgsg_rBٱWlogi 5math6`dige \ B{xcb_Ssdef_X\;caco\]io::\filt\ 6ˢevp_] :mi18nPB backQP A)5 bio_PBcompP`O}xcb_mQVvfprQ 6wodbcQ PcursF] \xcb_]1date{ date^3(exec^WGZxfreN_YJ}tie:SQ\btcl_` P !pam_GT =gBiswx]` MseliT|ܽxcb_`5pack!UK exit{U4y#selia|z7ttynU 4-d+ctimU K7mvina SJ_^set_IV<L,:xkbfastrcVN:ex 1V(הe2labKgeoiV Gȵ*b::t X|xcb_3W%rpcresW>xcb_W6=0rtmoX<.slk_ 6 BselifcpaFvynform BHlog1XXe ~tunesX \oFWfatt  5euca-detach-volume- 1 1 1484780705 A - - gz Detach a volume from an instancesetlocale 3p- 3p 3p 1402354218 A - - gz set program localedatetime::locale::el_polytonDateTime::Locale::el_POLYTON 3pm 3 1402390637 A - - gz mkdosfs- 8 8 1573511351 B - - gz create an MS-DOS filesystem under Linuxxcb_randr_get_output_info_clones_end- 3 3 1540917640 B - - gz ssl_ctx_set1_chain_cert_storeSSL_CTX_set1_chain_cert_store 3ssl 3 1721417624 B - - gz set certificate verification or chain storesys/ipc.h- 0p 0p 1402354203 C sys_ipc.h - gz isupper 3p- 3p 3p 1402354216 A - - gz test for an uppercase lettersha1_finalSHA1_Final 3ssl 3 1721417624 B - - gz Secure Hash Algorithmatanhl atanhl 3 atanhl 3psetfsuid- 2 2 1402354205 A - - gz set user identity used for file system checksgetutxent getutxent 3 getutxent 3ptcl_exprstringTcl_ExprString 3 3 1448008821 B - - gz evaluate an expressiongetcwd 3p- 3p 3p 1402354215 A - - gz get the pathname of the current working directoryllroundl llroundl 3 llroundl 3pssl_ctx_get_modeSSL_CTX_get_mode 3ssl 3 1721417624 B - - gz manipulate SSL engine modetcl_serviceeventTcl_ServiceEvent 3 3 1448008822 B - - gz the event queue and notifier interfacesfetestexcept fetestexcept 3 fetestexcept 3pssl_get_cipher_bitsSSL_get_cipher_bits 3ssl 3 1721417624 B - - gz get SSL_CIPHER of a connectionxcb_randr_get_screen_resources_current_names_end- 3 3 1540917640 B - - gz xcb_render_query_version- 3 3 1540917640 A - - gz xdrrec_skiprecord- 3 3 1402354213 B - - gz library routines for external data representationxcb_render_query_pict_formats_screens_length- 3 3 1540917640 B - - gz ipc::run::ioIPC::Run::IO 3pm 3 1402354788 A - - gz - I/O channels for IPC::Run.xkbresizekeyactionsXkbResizeKeyActions 3 3 1710950785 A - - gz Change the number of actions bound to a keyxcb_xf86dri_get_device_info_device_private_end- 3 3 1540917640 B - - gz ustat- 2 2 1402354206 A - - gz get file system statisticsfsck.ext3- 8 8 1711459140 B - - gz check a Linux ext2/ext3/ext4 file systemget_current_dir_name get_current_dir_name 3 get_current_dir_name 2datetime::locale::sidDateTime::Locale::sid 3pm 3 1402390636 A - - gz curs_attr- 3x 3 1715932336 A - - gz curses character and window attribute control routinessys_wait.h- 0p 0p 1402354203 A - - gz declarations for waitingslk_attroff- 3x 3 1720626759 B - - gz curses soft label routinessymlinkat- 2 2 1402354206 A - - gz create a symbolic link relative to a directory file descriptormd2 MD2 3ssl md2 1sslxcb_render_set_picture_clip_rectangles- 3 3 1540917640 A - - gz global- n n 1448008823 A - - gz Access global variablesdatetime::locale::ku_arabDateTime::Locale::ku_Arab 3pm 3 1402390632 A - - gz thin_restore- 8 8 1605543195 A - - gz restore thin provisioning metadata file to device or file.ldattach- 8 8 1612283497 A - - gz attach a line discipline to a serial linetap::parser::iterator::arrayTAP::Parser::Iterator::Array 3pm 3 1439389327 A - - gz Iterator for array-based TAP sourcesd2i_ecdsa_sigd2i_ECDSA_SIG 3ssl 3 1721417624 B - - gz Elliptic Curve Digital Signature Algorithmxcb_ungrab_button_checked- 3 3 1540917640 B - - gz xcmslookupcolorXcmsLookupColor 3 3 1710950786 B - - gz obtain color valuessd- 4 4 1402354219 A - - gz driver for SCSI disk drivesidentify- 1 1 1731392888 A - - gz describes the format and characteristics of one or more image files.tcl_seterrorcodevaTcl_SetErrorCodeVA 3 3 1448008821 B - - gz retrieve or record information about errors and other return optionsfabsf 3- 3 3 1402354208 B - - gz absolute value of floating-point numbertelldir 3- 3 3 1402354213 A - - gz return current location in directory streamwcsncpy wcsncpy 3 wcsncpy 3psg_raw- 8 8 1585715378 A - - gz send arbitrary SCSI command to a devicelogin_tty- 3 3 1402354210 B - - gz terminal utility functionsmath.h- 0p 0p 1402354203 A - - gz mathematical declarationsxcb_dri3_query_version_reply- 3 3 1540917640 B - - gz io::compress::faqIO::Compress::FAQ 3pm 3 1402361982 A - - gz - Frequently Asked Questions about IO::Compress-qzXxcb_" mail= 6Bputw| mbkeyp0®pthrԠCVinit3 2 mq_oq <0xcb_)\>Tnfs4*ξllab5C/Mtcl_>oxcb_΢,xcb_!Kxdr_?Fdove5<4ip-lG%bfmin0JUissp =posiʤtbssl_XP!xdr_ LT}euca'flexF>Opatc 337tgotŦW5dove"K7xtre{E"katanЧtcftFVlogg6 W_1remq Costri'3mysq) 9xcmso;e]fsck >^}#dbi:Vtxcb_t*TWfabskVgit-ΪV:expl+1 tcl_dfgxcb_sE:test Wxcb_jssl_Qsigi .GcommZKxcb_o!raw_;{%date3fcut8 ;ifget:Rspthr®?xcb_#htbI"ssl_o i=:eucaNdBposia;GfPtcl_X~utiff4|9xcb_Z'lFpmap FQ%pm-iJ^cpanEA)6tailelxcb_%%dateQ5r;watt Rcream}urounCڔ;fcdibC?6vcs1xcb_Ʌ~xcb_'tcl_W_=0idna',XUssl_b=cmsg :nxtgeE6jgetn"7@utimiI#tcl_HCx509T_set_;Ctcl_KEaxcb_++Vdup3d65xcb_(-strp Dbuxife$ Rşdate1̯checZnc2;{oxcb_p!i(extuM{r~date 3$cpanWW_UgibiIRappl6fcst @Jcgi:k ?'2html^objd&AipLenvzo 5pstaCZmsem_82lwp:@ 0_ccos{2Wlvms7V}euca`AǺxcb__`&,jfposi`GZpytha\~ systdaLpr 1a({datea3`dateHb1npkeybCUip-mb =mrvwprc VEdranc Q8!xcb_c?gIdated0k nl-qZd)Ηtemp'I[dxgetdzpem_pe:SecpkecsinUfextupf\`Rnonlf;o8pod:)g1tcl_pg^wximogai/colrLh5aPbzcah7հerfch7Ƈevp_i?iso_Qi _9r[dwziHz,xcb_j(Dio::Kjc-rsmailj 8/loca k AhlinWkP͞xtwik^evp_l=xcb_gl# ©vwailEpcompl >bxcb_7m%0Melinwm 1Wtc-umAl evp_m?'net:Jn Fg2xgetnFg%strsn 6misws1o Gh!twalo 8Hp_tifp 2[xtiff>p5֐perlo .oTemppAeuscpEH6pow1q2?xcb_Vq;tarchq Aposi0Q+pthrn0E9xlis0 Axbel1Z :xcb_}1(:xset1\cms_2 Hi),xcb_n2!pem_2Cیattr2 R :gdbmZ3:+yexpan3 3ciso-3 ^0rTxkba4Jhead4Veuca4D(git-5;ksignh5 &!:Ckill53j(rand5 2^_tra6 5ɖ4vim P6A[o&xcb_64ޖsigm6)uxwin6{ &io::7Nu=~xcb_7)xcb_ 8xcb_Z83srequ8 Rchow96&towlD9 @?ec_g9Ixsha,:@ipc:s:Ibn_m: Gqxcb_; intrH;8Tavc_; CH%base;\Z@getc8<P9ltcl_<Mdttk:< >fs?mailE=5΍unse=>evp_=Nb)post&><*>set g>3khash>~wave>=Ϝ>cbre>0Udate1?0zxcb_v?idci?1getg@ 2}virt<@X ݪisos@Efile?tcl_@ Gx?chcoHA?1Dssl_Aj9xcb_ B"kdivIB8,Icgi:[B \ sslvB o+pod:?CaUagrubC(Ȕxcb_C$Icaco.D 88$posipD"V0ccosD @ڣvers2E ?4tmpf~E 4:xkbgEyxkeyd8oxcb_KF}uxcb_F6]lrouF{,dateF3Rxkbs6G `ΰeufoG)[[sourGgit-G<R,systBH#fulexpeH Sposix_trace_eventid_get_name- 3p 3p 1402354217 A - - gz manipulate the trace event type identifier (TRACING)pthread_mutexattr_setpshared- 3p 3p 1402354217 B - - gz get and set the process-shared attributexlistdepthsXListDepths 3 3 1710950785 B - - gz Display macros and functionsxbellXBell 3 3 1710950785 B - t gz manipulate keyboard settings and keyboard control structurexcb_glx_get_mapfv- 3 3 1540917640 A - - gz xsetwindowattributesXSetWindowAttributes 3 3 1710950785 B - t gz create windows and window attributes structurecms_verifyCMS_verify 3ssl 3 1721417624 A - - gz verify a CMS SignedData structurexcb_glx_get_pixel_mapfv- 3 3 1540917640 A - - gz pem_write_bio_x509_req_newPEM_write_bio_X509_REQ_NEW 3ssl 3 1721417624 B - - gz PEM routinesattr_off- 3x 3 1720626759 B - - gz curses character and window attribute control routinesgdbm GDBM 3 gdbm 3expand 1p- 1p 1p 1402354203 A - - gz convert tabs to spacesiso-8859-9- 7 7 1402354219 B - t gz ISO 8859-9 character set encoded in octal, decimal, and hexadecimalxkbaddsyminterpretXkbAddSymInterpret 3 3 1710950785 A - - gz Add a symbol interpretation to the list of symbol interpretations in an XkbCompatRechead head 1p HEAD 1 head 1euca-resume-import- 1 1 1484780705 A - - gz Perform the upload step of an import taskgit-upload-archive- 1 1 1722330782 A - - gz Send archive back to git-archivesignbit 3p- 3p 3p 1402354218 A - - gz test signkill 2- 2 2 1402354205 A - - gz send signal to a processrandom 3- 3 3 1402354212 A - - gz random number generator_tracechtype- 3x 3 1720626759 B - - gz curses debugging routinesvim 1- 1 1 1722022359 A - - gz Vi IMproved, a programmers text editorxcb_ungrab_server- 3 3 1540917640 A - - gz sigmask- 3 3 1402354212 B - - gz BSD signal APIxwindowattributesXWindowAttributes 3 3 1710950786 B - t gz get current window attribute or geometry and current window attributes structureio::uncompress::inflateIO::Uncompress::Inflate 3pm 3 1402361982 A - - gz Read RFC 1950 files/buffersxcb_xinerama_get_screen_size- 3 3 1540917640 A - - gz xcb_glx_get_tex_enviv_data_end- 3 3 1540917640 B - - gz xcb_mapping_notify_event_t- 3 3 1540917640 A - - gz keyboard mapping changedrequest_key- 2 2 1402354205 A - - gz request a key from the kernel's key management facilitychown 1- 1 1 1605565487 A - - gz change file owner and grouptowlower 3- 3 3 1402354213 A - - gz convert a wide character to lowercaseec_group_precompute_multEC_GROUP_precompute_mult 3ssl 3 1721417624 B - - gz Functions for performing mathematical operations and tests on EC_POINT objects.xshapeXShape 3 3 1448003986 A - - gz X nonrectangular shape functionsipc::semaphoreIPC::Semaphore 3pm 3 1698237674 A - - gz SysV Semaphore IPC object classbn_mod_subBN_mod_sub 3ssl 3 1721417624 B - - gz arithmetic operations on BIGNUMsxcb_free_colors- 3 3 1540917640 A - - gz intro 1- 1 1 1402354203 A - - gz introduction to user commandsavc_cleanup- 3 3 1585710994 B - - gz userspace SELinux AVC setup and teardownbase- 3pm 3 1698237678 A - - gz Establish an ISA relationship with base classes at compile timegetcury- 3x 3 1720626759 B - - gz get curses cursor and window coordinates, attributestcl_getnamespaceunknownhandlerTcl_GetNamespaceUnknownHandler 3 3 1448008822 B - - gz manipulate namespacesttk::intro- n n 1448008912 A - - gz Introduction to the Tk theme enginemailcap- 4 4 1368563009 A - - gz metamail capabilities fileunset 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)evp_decodefinalEVP_DecodeFinal 3ssl 3 1721417624 B - - gz EVP base 64 encode/decode routinespostPOST 1 1 1402363153 A - - gz Simple command line user agentset n- n n 1448008824 A - - gz Read and write variableshash hash 1p hash 1wavelan- 4 4 1402354219 A - - gz AT&T GIS WaveLAN ISA device drivercbreak- 3x 3 1720626759 B - - gz curses input optionsdatetime::locale::rwDateTime::Locale::rw 3pm 3 1402390645 A - - gz xcb_xv_ungrab_port_checked- 3 3 1540917640 B - - gz ci- 1 1 1585714623 A - - gz check in RCS revisionsfileno fileno 3 fileno 3pgetgid 3p- 3p 3p 1402354215 A - - gz get the real group IDvirtual_domain_context- 5 5 1585710994 A - - gz The SELinux virtual machine domain context configuration fileisosize- 8 8 1612283497 A - - gz output the length of an iso9660 filesystemtcl_initTcl_Init 3 3 1448008822 A - - gz find and source initialization scriptchcon- 1 1 1605565487 A - - gz change file SELinux security contextssl_session_get_timeSSL_SESSION_get_time 3ssl 3 1721417624 A - - gz retrieve and manipulate session time and timeout settingsxcb_glx_get_color_table_unchecked- 3 3 1540917640 B - - gz div div 3 div 3pcgi::switchCGI::Switch 3pm 3 1402342275 A - - gz Backward compatibility module for defunct CGI::Switchsslv3_methodSSLv3_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionspod::simple::subclassingPod::Simple::Subclassing 3pm 3 1402365606 A - - gz - write a formatter as a Pod::Simple subclassgrub-glue-efi- 1 1 1722985065 C grub2-glue-efi - gz xcb_xfixes_translate_region_checked- 3 3 1540917640 B - - gz cacoshf 3- 3 3 1402354207 B - - gz complex arc hyperbolic cosineposix_trace_attr_setlogfullpolicy- 3p 3p 1402354217 B - - gz retrieve and set the behavior of a trace stream (TRACING)ccoshf 3p- 3p 3p 1402354214 B - - gz complex hyperbolic cosine functionsversion 1ssl- 1ssl 1 1699892202 A - - gz print OpenSSL version informationtmpfile 3p- 3p 3p 1402354219 A - - gz create a temporary filexkbgetautorepeatrateXkbGetAutoRepeatRate 3 3 1710950785 A - - gz Gets the current attributes of the RepeatKeys control for a keyboard devicexcb_glx_get_minmax_unchecked- 3 3 1540917640 B - - gz xcb_free_gc_checked- 3 3 1540917640 B - - gz Destroys a graphics contextlroundf lroundf 3 lroundf 3pdatetime::locale::ar_qaDateTime::Locale::ar_QA 3pm 3 1402390636 A - - gz xkbsagroupXkbSAGroup 3 3 1710950785 A - - gz Returns the group_XXX field of act converted to a signed inteuform-delete-stack- 1 1 1484780705 A - - gz Delete a stacksource source n source 1git-mailsplit- 1 1 1722330783 A - - gz Simple UNIX mbox splitter programsystemd-tmpfiles-setup-dev.service- 8 8 1711457788 B - - gz Creates, deletes and cleans up volatile and temporary files and directoriesexpect 1- 1 1 1435097319 A - - gz programmed dialogue with interactive programs, Version 5template::plugin::dateTemplate::Plugin::Date 3pm 3 1402357151 A - - gz Plugin to generate formatted date stringsi18n::langinfoI18N::Langinfo 3pm 3 1698237674 A - - gz query locale informationbacktrace- 3 3 1402354207 A - - gz support for application self-debuggingbio_ctrl_get_read_requestBIO_ctrl_get_read_request 3ssl 3 1721417624 B - - gz BIO pair BIOcompress::raw::bzip2Compress::Raw::Bzip2 3pm 3 1402343506 A - - gz Low-Level Interface to bzip2 compression libraryxcb_glx_create_glx_pixmap- 3 3 1540917640 A - - gz vfprintf 3- 3 3 1402354213 B - - gz formatted output conversionodbcinst- 1 1 1565320310 A - - gz An unixODBC tool for manipulating configuration filesdatetime::locale::kuDateTime::Locale::ku 3pm 3 1402390643 A - - gz unicode::collate::cjk::koreanUnicode::Collate::CJK::Korean 3pm 3 1698237678 A - - gz weighting CJK Unified Ideographs for Unicode::Collatealigned_alloc- 3 3 1402354207 B - - gz allocate aligned memorydoveadm-reload- 1 1 1694697466 B - - gz Dovecot's administration utilityswprintf 3- 3 3 1402354212 B - - gz formatted wide-character output conversiontie::stdhandleTie::StdHandle 3pm 3 1698237678 A - - gz base class definitions for tied handlespam_verror- 3 3 1585713595 B - - gz display error messages to the userselinux_contexts_path- 3 3 1585710994 B - - gz These functions return the paths to the active SELinux policy configuration directories and filespackage::stashPackage::Stash 3pm 3 1402380641 A - - gz routines for manipulating stashesexit 1p- 1p 1p 1402354203 A - - gz cause the shell to exitttyname 3- 3 3 1402354213 A - - gz return name of a terminalctime 3p- 3p 3p 1402354214 A - - gz convert a time value to a date and time stringset_menu_mark- 3x 3 1720626759 B - - gz get and set the menu mark stringstrcspn strcspn 3 strcspn 3pex 1p- 1p 1p 1402354203 A - t gz text editorgeoiplookup6- 1 1 1565307267 A - - gz look up country using IP Address or hostnamexcb_glx_query_context_attribs_length- 3 3 1540917640 B - - gz pcre_copy_substring- 3 3 1501643278 A - - gz Perl-compatible regular expressionsxcb_get_geometry_unchecked- 3 3 1540917640 B - - gz Get current window geometryrtmon- 8 8 1601484048 A - - gz listens to and monitors RTnetlinklog10l log10l 3 log10l 3ptuned-adm- 8 8 1553206246 A - - gz command line tool for switching between different tuning profilestanhl 3- 3 3 1402354213 B - - gz hyperbolic tangent functionisdigit isdigit 3 isdigit 3ptcatest- 1 1 1402385697 A - - gz test cases of the abstract database APIxcb_get_input_focus- 3 3 1540917640 A - - gz set_form_fields- 3x 3 1720626759 B - - gz make and break connections between fields and formsxquerybeststippleXQueryBestStipple 3 3 1710950786 B - - gz determine efficient sizestcgetpgrp tcgetpgrp 3 tcgetpgrp 3pconstant- 3pm 3 1402368681 A - - gz Perl pragma to declare constantsfcatomicnewfileFcAtomicNewFile 3 3 1520307172 A - - gz return new temporary file namefccharsetintersectFcCharSetIntersect 3 3 1520307172 A - - gz Intersect charsetsrand 3- 3 3 1402354212 A - - gz pseudo-random number generatorxcb_xfixes_get_cursor_image_and_name_cursor_image_length- 3 3 1540917640 B - - gz digest::fileDigest::file 3pm 3 1402391631 A - - gz Calculate digests of filesdef_shell_mode_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensioncacosh cacosh 3 cacosh 3pfilter::shFilter::sh 3pm 3 1402353952 A - - gz sh source filterevp_bf_ofbEVP_bf_ofb 3ssl 3 1721417624 B - - gz EVP cipher routinescurs_addstr- 3x 3 1715932335 A - - gz add a string of characters to a curses window and advance cursorxcb_glx_get_compressed_tex_image_arb_data_length- 3 3 1540917640 B - - gz xcb_xf86dri_query_direct_rendering_capable_reply- 3 3 1540917640 B - - gz pcre32_utf32_to_host_byte_order- 3 3 1573510868 B - - gz Perl-compatible regular expressionsdatetime::locale::nb_noDateTime::Locale::nb_NO 3pm 3 1402390637 A - - gz exec 1p- 1p 1p 1402354203 A - - gz execute commands and open, close, or copy file descriptorsxfreestringlistXFreeStringList 3 3 1710950786 B - - gz convert string lists and text property structurexcb_selection_clear_event_t- 3 3 1540917640 A - - gz tcl_fsaccessTcl_FSAccess 3 3 1448008822 B - - gz procedures to interact with any filesystemiswxdigit 3p- 3p 3p 1402354216 A - - gz test for a hexadecimal digit wide-character codexcb_composite_create_region_from_border_clip_checked- 3 3 1540917640 B - - gz selinux_default_context_path- 3 3 1585710994 B - - gz These functions return the paths to the active SELinux policy configuration directories and filesmvin_wch- 3x 3 1720626759 B - - gz extract a complex character and rendition from a windowxkbforcedevicebellXkbForceDeviceBell 3 3 1710950785 A - t gz Rings the bell on any keyboard, overriding user preference settings for audible bellse2label- 8 8 1711459141 A - - gz Change the label on an ext2/ext3/ext4 filesystem_ bmd2i_ O pax\9 BselifcpaFvynform B/Lxcb_U^!dbd:bluxset  <슣tcl_T cW=systIJV(cpu_)AtparrBJtcl_[fnxcb_,"k#xcb_i(kN1mous;ƀxcb_  xcb_3Nxreck LImd5_µ Eterm ;.epod2X}sync?u!asci:Ymd2  -2vi 1ϷĄZeuar5uxkbb`Gfx>menuAbrepo RM,xcb_[.Xxcb_red ڹ }tempXpthrj[$0tcl_TbgUscheHAfile{info)8txcb_h=AS 1ehost 6a=odbc <⤶extuC]Hlog1XXe ~tunesX \pam_PF(Essl_PoFWfatt  5Wxcb_Ktiff[euca;hsetlN /G)date8}mkdoBM\xcb_)%ssl_iesys/ %isup 9PLsha1_ <!Latanmsetf Hpgetu htcl_6>sgetc N4llro ssl_Gttcl_TQfete Hssl_Nz]xcb_E1 xcb_xdrrL`jxcb_#-ipc:k DxkbrXHxcb_(/Xustar5xfsck C^get_/Adate>1^curs R sys_ 5_Tslk_!  6Psymlc  Yܕ!md2 pxcb_ 'xglob 2ldateX 5;thin  Uldat  Dtap:V \Q-d2i_ T_#xcb_1 ~xcmsf <9H]sd 6/iden  _Nktcl_S p)QDfabs BMhtell  Fwwcsnpgsg_rBٱWlogi 5math6{xcb_S]io::\mi18nPB backQP A)5 bio_PBcompP`O}xcb_mQVvfprQ 6wodbcQ Pdatexcb_W6=0rtmoX<.slk_ 6xcb_Yset_YOe/xque ZDTrxcb_خconsZ =afcatZGbfcch$[>randu[9xcb_[9`dige \ Bsdef_X\;caco\filt\ 6ˢevp_] :cursF] \xcb_]1M~)xcb_]1pcreF^ >{ date^3(exec^WGZxfreN_Y\btcl_` PgBiswx]` Mܽxcb_`5y#selia|7mvina SL,:xkbfaהe2labKsxcb__:strteuar.#bio_ 1 swap =؎rvimBAoSOquer RfMvircA{_date-3G{getcx:zis_s 4wbexp17Rread5 >}}xml:|D0,tcl_ԓa^lvmrH ='sigi  napm ;vsche=lZgetpP@snpr 6`Ereal / freo *1TxremT Sdtcl_H.tld_  'Dxcb_; tc-sv;!gnu_8sunam ?4Eevp_NH Qfsf-"0/agrubt`pechq :cloc3'stri .3ђdbi:'k|xset:%tcl_;~lwre= F|Cdlopec_gjmںxres*Jxcb_"xcb_Ŝ" "sema@SGYchrtRKƜcos ,pkcs՝ Bmvwi# Kpthrx<Otcl_ϞFcobj_'Aevp_pTjIxcb_$%<fcco?X֙xcb_ shif 8xcb_)"89Fxcb_j!timeJF/fadv Eswapc =xtmaF!xcb_hdefa49C>iusq|E%Ntiffǣj xdraC Q'nan՟=xcb_"!Aerroۤ:xcb_#Lstri]Atcl_{ LtwxtapҥJ0xml:4L׺pcre>{oupleۦFEPtcl_)q evp_e&"xcb_/T>xkbahdinotۨI\xcb_H"qtlsv[vyaccHHa^systIfdateI0I9menu 4mkteI ?Wargz= ;nF9SHA3 3|3cexp>V fini(J /jsondJ]VsystJ:Gݶpast9file  [ۡautoo DKQxmbt<%tiff 3@`ynlK>res_ ,pam_ >5Cttk:<D3gethX1cmkdi#PUdeskDRxcb_$xcb_Z(=moduB#cgiUevp_6Tusbh M>^perl QstriY N\fdop 0oisat NsgitaA7i|imag0KG܍xcb_K"fcfoKRoxcb_-xcb_0set_N%5utf8+LIwxgetc Oٳseli{L_#z{xcb_fget_D'!logrJ ^llabaÈposiyY"wcfseL0!outw#~lcho 5Ylibx2M:gjtcl_sMG{+sg_sL X evp_@AxconF2getdV4NPtc-sM7<#ldoveN Btxcb_[NLtcl_NN]feofCVmodfcAdateN0>0Jxdis6Ob^atoiO;r digP-,mgevp_1P?M:cms_Pc}yxcb_P(getpP CҪfgetHQ FDxcb_head9xtex  6)dpod:NRdKxcb_?'curs WvidaR ;9io_s H}abrt]xrea;+xcb_@+(fmaxF@ ZpKzipm@ -}posi@2authQFdxcb_Q!05euca"A7vgetp2RP4mvinoA Sobj_A EC[dbd:B SY5+fgetExcb_RRprctR2TJobj_|BA%vfycR "lposiBX%tcl_6CYxseliC igform.D5~RputuqD 39pr29D'&audi#S :$cbrtiS0menu_new- 3x 3 1720626759 A - - gz create and destroy menusargz_add_sep- 3 3 1402354207 B - - gz functions to handle an argz listSHA384 3ssl- 3ssl 3 1721417624 B - - gz Secure Hash Algorithmcexp2f- 3 3 1402354207 B - - gz base-2 exponent of a complex numberfile::statFile::stat 3pm 3 1698237674 A - - gz by-name interface to Perl's built-in stat() functionsautoupdate- 1 1 1402378884 A - - gz Update a configure.in to a newer AutoconfxmbtextextentsXmbTextExtents 3 3 1710950786 A - - gz compute text extentstiffclientopenTIFFClientOpen 3tiff 3 1729525165 C TIFFOpen - gz ynl- 3 3 1402354213 B - - gz Bessel functions of the second kindres_mkquery- 3 3 1402354211 B - - gz resolver routinespam_tally2- 8 8 1585713592 A - - gz The login counter (tallying) modulettk::sizegrip- n n 1448008912 A - - gz Bottom-right corner resize widgetgethostbyname_r- 3 3 1402354209 B - - gz get network host entrymkdir mkdir 2 mkdir 1p mkdir 1 mkdir 3pdesktop-file-install- 1 1 1573511280 A - - gz Installation and edition of desktop filesxcb_xv_query_adaptors_info_iterator- 3 3 1540917640 B - - gz xcb_sync_create_alarm- 3 3 1540917640 A - - gz module::runtimeModule::Runtime 3pm 3 1402357910 A - - gz runtime module handlingcgiCGI 3pm 3 1402342275 A - - gz Handle Common Gateway Interface requests and responsesevp_pkey_get_default_digestEVP_PKEY_get_default_digest 3ssl 3 1699892210 A - - gz get default signature digestusbhid-dump- 8 8 1334101061 A - - gz dump USB HID device report descriptors and streamsperlclib- 1 1 1698237664 A - - gz Internal replacements for standard C library functionsstrings 1- 1 1 1696859909 A - - gz print the strings of printable characters in files.fdopen 3- 3 3 1402354209 B - - gz stream open functionsisatty 3- 3 3 1402354210 A - - gz test whether a file descriptor refers to a terminalgitattributes- 5 5 1722330784 A - - gz defining attributes per pathxcb_x_print_print_get_printer_list_unchecked- 3 3 1540917640 B - - gz xcb_glx_get_integerv_data_end- 3 3 1540917640 B - - gz set_menu_term- 3x 3 1720626759 B - - gz set hooks for automatic invocation by applicationsxgetcommandXGetCommand 3 3 1710950786 B - - gz set or read a window's WM_COMMAND propertyxcb_input_xi_grab_device_reply- 3 3 1540917640 B - - gz get_mempolicy- 2 2 1402354204 A - - gz retrieve NUMA memory policy for a processlogrotate logrotate 8llabs llabs 3 llabs 3pposix_trace_event- 3p 3p 1402354217 A - - gz trace functions for instrumenting application code (TRACING)outw_p- 2 2 1402354205 B - - gz port I/Olchown 2- 2 2 1402354205 B - - gz change ownership of a filesg_safte- 8 8 1585715378 A - - gz access SCSI Accessed Fault-Tolerant Enclosure (SAF-TE) deviceevp_decryptfinalEVP_DecryptFinal 3ssl 3 1721417624 B - - gz EVP cipher routinesxconvertselectionXConvertSelection 3 3 1710950786 B - - gz manipulate window selectiongetdtablesize 3- 3 3 1402354209 A - - gz get descriptor table sizefeof 3p- 3p 3p 1402354215 A - - gz test end-of-file indicator on a streammodfl 3- 3 3 1402354211 B - - gz extract signed integral and fractional values from floating-point numberxcb_glx_get_histogram_parameterfv_reply- 3 3 1540917640 B - - gz xcb_randr_destroy_mode_checked- 3 3 1540917640 B - - gz head 1- 1 1 1605565487 A - - gz output the first part of filesxtextwidthXTextWidth 3 3 1710950786 A - - gz compute text widthpod::perldoc::tomanPod::Perldoc::ToMan 3pm 3 1402388268 A - - gz let Perldoc render Pod as man pagesxcb_glx_get_histogram_data_end- 3 3 1540917640 B - - gz curs_termcap- 3x 3 1715932338 A - - gz direct curses interface to the terminfo capability databasevidattr_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionio_submit- 2 2 1402354205 A - - gz submit asynchronous I/O blocks for processingabrt-action-trim-files- 1 1 1601569733 A - - gz Deletes old problem directories or files in specified directories until they are smaller than specified size.xreadbitmapfileXReadBitmapFile 3 3 1710950786 A - - gz manipulate bitmapsfgets fgets 3 fgets 3p Xipc: =_http3WLtcl_Ocd 1>dJeuarA(Sxcb_w ctan>xcb_h0virtWӓgai_] Osyst;=powxcb_!PeuscQ92linkKUhxsav B+xselD 94Ufatl =qdbm_ЄAeulb"P㼆pcre>Dxcb_܅HgitwOh:openk(Mtgetl ^ sigw ,!pthrq77mant<5)alte҇ Operl. <@kposivs"=set_0IMcron@?xml: Oecurs߉ \n[vdosH UB awk C"sh 11?thin% UpkcsQM@noqi 0q}crypGbio_y7k^xcb_ČcontK)cms_Z dMCmbtoލ'man HperlG 4&chmo7M>pod:ǎTV'auth/F:date8wcurs Jsuxcb_V$`KfcatA__appe-]nanl-I`msgmN =avc_Fctst;qssl_0k|Vfc-c<^FD_Z 9Tksemg= 6tcl_}Jmrsyst 2Xyscal_'putw~5<llriڏ+tempX;gy0/ o5xcb_>6' keyc ;5gendp 2;4xset>ebox_[boset_5_pthr Gs~xcb_m*3&comm@ARbn_e ?perlB:%Eset_Gm@isas =o_axkbf-CҺwait ; lgamrabrtZLhostOA@pcXQtxset ={ddateA3setl 1-libxR?evp_#@LitemtEDQpcach Hdrewi .fpam_U =OGseli|&xslo0 Opost Kʥfcfo Aa]%next) cpanSYoVlwreF"xcb_'(ZpfifZ"dh_sYswab}xcb_+%postD J*xget_IXgextuKzf=memcW 4QeofE,Astar޲@:Ripcs0TƮslk_ 6 *tiff̳j{SdateL3{date3/`stdl 9[*>fork$5bmkfoa G4frea55/envz 5½item7 Eώbn_bƶT_Mxnew0eI~xcb_/=vhxcb_2oXstrc <date70$AKtctmO=Msetkj hash:> -getsY jfendu  4]dysi!>{ date^!3fkexe!:xcb_!=tfin4" 8ROhmacu"Jwssl_"eBxcb_K# xcb_#&b%fcst#@kZpxcb_$!eucaQ$@Cgetn$1vxcre$ b^tc-sZ% -loca%kascsi& X?tstrt~& ;pthr&2rstrn& {date '3Hxcb_V'lock'54.watc'T cexp( :븤trunb( =2getd( strl( .&>wcrt ) Kcsets`) ,ui_s)DBNiswx) Dxml:C*DIxcb_* gnfss*.cloc +G[PAM b+Ec box+PRxml:,MJrsa_b,>rsa_,<xcb_,5wcsw.- dateO-5setp-trxfs_- =hevp_.@.tcl_W.eNxkba.Nfmin2/Epem_J/Cdate/0@xcb_0!=6extu<0^k+fcin0Q䏺xml:1nepol1 L2Obio_2 :pieuwaE2Ewcss2 <sӞpowl2+Tposi!3a(ulim30` !xrmp3Q] syst445msgs4spla4 'evp_4C8tap:)5 GJxcb_5{date53xcb_6%linkQ6Tseuca6'H*cosf7@=pthr07mread7Kasem_7@xcb_!8!xset]8D<spin8@/pro8"evm86-92wat.ag9 HXpod:9Wsyst':7%pam_{:<Kiwgetg: -e|fall: D getuK; 3 evp_;_^Tcpan<IMcosh[< 8eappc<Xpcre= >t.syst|0zExkbgOdltest- 1 1 1565320310 A - - gz A simple library symbol testctanhl ctanhl 3 ctanhl 3pgetsockcreatecon_raw- 3 3 1585710994 B - - gz get or set the SELinux security context used for creating a new labeled socketsendusershell- 3 3 1402354208 B - - gz get permitted user shellsdysize- 3 3 1402354208 A - - gz get number of days for a given yeardatetime::locale::nn_noDateTime::Locale::nn_NO 3pm 3 1402390636 A - - gz kexec- 8 8 1623254998 A - - gz directly boot into a new kernelxcb_change_gc- 3 3 1540917640 A - - gz change graphics context componentstfind 3p- 3p 3p 1402354218 B - - gz manage a binary search treehmac_ctx_initHMAC_CTX_init 3ssl 3 1721417624 B - - gz HMAC message authentication codessl_ctx_set_msg_callbackSSL_CTX_set_msg_callback 3ssl 3 1721417624 A - - gz install callback for observing protocol messagesxcb_translate_coordinates_reply- 3 3 1540917640 B - - gz xcb_render_create_anim_cursor_checked- 3 3 1540917640 B - - gz fcstrlistdoneFcStrListDone 3 3 1520307172 A - - gz destroy a string iteratorxcb_glx_gen_textures_data_length- 3 3 1540917640 B - - gz euca-detach-internet-gateway- 1 1 1484780705 A - - gz Detach an Internet gateway from a VPCgetnameinfo 3p- 3p 3p 1402354215 A - - gz get name informationxcreategcXCreateGC 3 3 1710950786 A - - gz create or free graphics contexts and graphics context structuretc-skbedit- 8 8 1601484048 A - - gz SKB editing actionlocale::codes::langvar_codesLocale::Codes::LangVar_Codes 3pm 3 1402383323 A - - gz langvar codes for the Locale::Codes::LangVar modulescsi-rescan- 8 8 1574879742 B - - gz script for adding and removing SCSI devices without rebootingstrtok strtok 3 strtok 3ppthread_attr_getscope pthread_attr_getscope 3 pthread_attr_getscope 3pstrncasecmp strncasecmp 3 strncasecmp 3pdatetime::locale::kn_inDateTime::Locale::kn_IN 3pm 3 1402390643 A - - gz xcb_xkb_get_map_unchecked- 3 3 1540917640 B - - gz lock- 2 2 1402354205 B - - gz unimplemented system callswatch- 1 1 1601486472 A - - gz execute a program periodically, showing output fullscreencexpf 3p- 3p 3p 1402354214 B - - gz complex exponential functionstruncf 3p- 3p 3p 1402354219 B - - gz round to truncated integer valuegetdate_err getdate_err 3 getdate_err 3pstrlen 3p- 3p 3p 1402354218 A - - gz get string lengthwcrtomb 3- 3 3 1402354213 A - - gz convert a wide character to a multibyte sequencesetservent 3- 3 3 1402354212 B - - gz get service entryui_set_default_methodUI_set_default_method 3ssl 3 1721417624 B - - gz New User Interfaceiswxdigit 3- 3 3 1402354210 A - - gz test for hexadecimal digit wide characterxml::libxml::dtdXML::LibXML::Dtd 3pm 3 1402352994 A - - gz XML::LibXML DTD Handlingxcb_randr_get_output_info_reply- 3 3 1540917640 B - - gz nfsstat- 8 8 1634214566 A - - gz list NFS statisticsclock_nanosleep 2- 2 2 1402354204 A - - gz high-resolution sleep with specifiable clockPAM 8- 8 8 1585713595 A - - gz Pluggable Authentication Modules for Linuxbox- 3x 3 1720626759 B - - gz create curses borders, horizontal and vertical linesxml::sax::exceptionXML::SAX::Exception 3pm 3 1402366964 A - - gz Exception classes for XML::SAXrsa_pkcs1_ssleayRSA_PKCS1_SSLeay 3ssl 3 1721417624 B - - gz select RSA methodrsa_new_methodRSA_new_method 3ssl 3 1721417624 B - - gz select RSA methodxcb_dri2_query_version- 3 3 1540917640 A - - gz wcswidth wcswidth 3 wcswidth 3pdatetime::locale::pa_guruDateTime::Locale::pa_Guru 3pm 3 1402390633 A - - gz setpgid setpgid 2 setpgid 3pxfs_logprint- 8 8 1601488312 A - - gz print the log of an XFS filesystemevp_md_pkey_typeEVP_MD_pkey_type 3ssl 3 1721417624 B - - gz EVP digest routinestcl_registerconfigTcl_RegisterConfig 3 3 1448008822 A - - gz procedures to register embedded configuration informationxkbaddgeomoverlayrowXkbAddGeomOverlayRow 3 3 1710950785 A - - gz Add a row to an existing overlayfminl fminl 3 fminl 3ppem_write_bio_rsapublickeyPEM_write_bio_RSAPublicKey 3ssl 3 1721417624 B - - gz PEM routinesdatetime::locale::nyDateTime::Locale::ny 3pm 3 1402390635 A - - gz xcb_xvmc_create_subpicture_reply- 3 3 1540917640 B - - gz extutils::parsexs::constantsExtUtils::ParseXS::Constants 3pm 3 1501652625 A - - gz Initialization values for some globalsfcinitbringuptodateFcInitBringUptoDate 3 3 1520307172 A - - gz reload configuration files if neededxml::libxml::documentfragmentXML::LibXML::DocumentFragment 3pm 3 1402352993 A - - gz XML::LibXML's DOM L2 Document Fragment Implementationepoll_pwait- 2 2 1402354204 B - - gz wait for an I/O event on an epoll file descriptorbio_get_fdBIO_get_fd 3ssl 3 1721417624 B - - gz file descriptor BIOeuwatch-disable-alarm-actions- 1 1 1484780705 A - - gz Disable all actions for one or more alarmswcsstr 3p- 3p 3p 1402354219 A - - gz find a wide-character substringpowl 3p- 3p 3p 1402354217 B - - gz power functionposix_trace_get_filter- 3p 3p 1402354217 A - - gz retrieve and set the filter of an initialized trace stream (TRACING)ulimit ulimit 3 ulimit 2 ulimit 1p ulimit 1 ulimit 3pxrmputfiledatabaseXrmPutFileDatabase 3 3 1710950786 B - - gz retrieve and store resource databasessystemd-cryptsetup@.service- 8 8 1711457788 A - - gz Full disk decryption logicmsgsnd msgsnd 2 msgsnd 3psplain 3pm- 3pm 3 1698237678 C diagnostics - gz evp_cipher_ctx_typeEVP_CIPHER_CTX_type 3ssl 3 1721417624 B - - gz EVP cipher routinestap::parser::scheduler::spinnerTAP::Parser::Scheduler::Spinner 3pm 3 1439389327 A - - gz A no-op job.xcb_get_screen_saver_reply- 3 3 1540917640 B - - gz datetime::locale::ar_aeDateTime::Locale::ar_AE 3pm 3 1402390644 A - - gz xcb_dri3_buffers_from_pixmap_buffers- 3 3 1540917640 B - - gz linkat- 2 2 1402354205 A - - gz create a file link relative to directory file descriptorseuca-reset-network-interface-attribute- 1 1 1484780705 A - - gz Reset an attribute of a VPC network interfacecosf cosf 3 cosf 3ppthread_cleanup_push_defer_np- 3 3 1402354211 A - - gz push and pop thread cancellation clean-up handlers while saving cancelability typereadv readv 2 readv 3psem_unlink 3p- 3p 3p 1402354218 A - - gz remove a named semaphore (REALTIME)xcb_input_list_device_properties- 3 3 1540917640 A - - gz xsetwindowcolormapXSetWindowColormap 3 3 1710950785 B - - gz change window attributesspinbox- n n 1448008912 A - - gz Create and manipulate spinbox widgets/proc/slabinfo- 5 5 1402354219 C slabinfo - gz vm86old- 2 2 1402354206 B - - gz enter virtual 8086 modeat.allow- 5 5 1653075403 A - - gz determine who can submit jobs via at or batchpod::simple::simpletreePod::Simple::SimpleTree 3pm 3 1402365606 A - - gz - parse Pod into a simple parse treesystemd-udevd-control.socket- 8 8 1711457788 B - - gz Device event managing daemonpam_acct_mgmt- 3 3 1585713595 A - - gz PAM account validation managementgetgid32- 2 2 1402354204 B - - gz get group identityfallocate 1- 1 1 1612283497 A - - gz preallocate or deallocate space to a filegetutline- 3 3 1402354209 B - - gz access utmp file entriesevp_pkey_derive_set_peerEVP_PKEY_derive_set_peer 3ssl 3 1699892210 A - - gz derive public key algorithm shared secret.cpan::distroprefsCPAN::Distroprefs 3pm 3 1698237384 A - - gz - read and match distroprefscoshf 3p- 3p 3p 1402354214 B - - gz hyperbolic cosine functionsappconfig::fileAppConfig::File 3pm 3 1402380594 A - - gz Perl5 module for reading configuration files.pcre_version- 3 3 1501643278 A - - gz Perl-compatible regular expressionstctmgr- 1 1 1402385697 A - - gz the command line utility of the table database APIdpmscapableDPMSCapable 3 3 1448003986 A - - gz returns the DPMS capability of the X serverxcb_selinux_get_property_context_unchecked- 3 3 1540917640 B - - gz fmaxf 3p- 3p 3p 1402354215 B - - gz determine maximum numeric value of two floating-point numberszipmerge- 1 1 1331803671 A - - gz merge zip archivesposix_memalign 3- 3 3 1402354213 A - - gz allocate aligned memoryeuca-allocate-address- 1 1 1484780705 A - - gz Allocate a public IP addressmvinnwstr- 3x 3 1720626759 B - - gz get a string of wchar_t characters from a curses windowobj_obj2nidOBJ_obj2nid 3ssl 3 1721417624 B - - gz ASN1 object utility functionsdbd::spongeDBD::Sponge 3pm 3 1402362412 A - - gz Create a DBI statement handle from Perl dataobj_dupOBJ_dup 3ssl 3 1721417624 B - - gz ASN1 object utility functionsposix_trace_attr_setname- 3p 3p 1402354217 B - - gz retrieve and set information about a trace stream (TRACING)tcl_fscreatedirectoryTcl_FSCreateDirectory 3 3 1448008822 B - - gz procedures to interact with any filesystemselinux_check_securetty_context- 3 3 1585710994 A - - gz check whether a SELinux tty security context is defined as a securetty contextform_new_page- 3x 3 1720626759 A - - gz form pagination functionspututxline 3- 3 3 1402354211 B - - gz access utmp file entriespr29_4z- 3 3 1448125246 A - - gz API functiontcl_channelversionTcl_ChannelVersion 3 3 1448008821 B - - gz procedures for creating and manipulating channelsfabsf fabsf 3 fabsf 3pxsetaccesscontrolXSetAccessControl 3 3 1710950785 B - - gz control host access and host control structureldexpf 3p- 3p 3p 1402354216 B - - gz load exponent of a floating-point numberx509_store_ctx_set_chainX509_STORE_CTX_set_chain 3ssl 3 1721417624 B - - gz X509_STORE_CTX initialisationclog10f- 3 3 1402354208 B - - gz base-10 logarithm of a complex numbersecurity_compute_relabel- 3 3 1585710994 B - - gz query the SELinux policy database in the kernelxeventsqueuedXEventsQueued 3 3 1710950786 B - - gz handle output buffer or event queueerror::pass4- 7stap 7 1602605484 A - - gz systemtap pass-4 errorsmvaddch- 3x 3 1720626759 B - - gz add a character (with attributes) to a curses window, then advance the cursorpcre32_version- 3 3 1573510868 B - - gz Perl-compatible regular expressionsxcb_xfixes_fetch_region_unchecked- 3 3 1540917640 B - - gz yacc- 1p 1p 1402354204 A - t gz yet another compiler compiler (DEVELOPMENT)systemd-firstboot.service- 1 1 1711457787 B - - gz Initialize basic system settings on or before the first boot-up of a systemdatetime::locale::tiDateTime::Locale::ti 3pm 3 1402390642 A - - gz mktemp 1- 1 1 1605565487 A - - gz create a temporary file or directoryfinit_module- 2 2 1402354204 B - - gz load a kernel modulejson::backportpp::booleanJSON::backportPP::Boolean 3pm 3 1402382640 A - - gz dummy module providing JSON::PP::Booleansystemd-quotacheck.service- 8 8 1711457788 A - - gz File system quota checker logicimage::info::svgImage::Info::SVG 3pm 3 1402363342 A - - gz SVG support for Image::Infoxcb_alloc_color_planes_pixels_end- 3 3 1540917640 B - - gz fcfontrenderprepareFcFontRenderPrepare 3 3 1520307172 A - - gz Prepare pattern for loading font fileutf8 7- 7 7 1402354220 B - - gz an ASCII compatible multibyte Unicode encodingselinux_file_context_cmp- 3 3 1585710994 A - - gz Compare two SELinux security contexts excluding the 'user' componentcfsetispeed 3p- 3p 3p 1402354214 A - - gz set input baud ratelibxml- 3 3 1708355032 A - - gz library used to parse XML filestcl_invalidatestringrepTcl_InvalidateStringRep 3 3 1448008822 B - - gz manipulate Tcl objectstc-sfq- 8 8 1601484048 A - - gz Stochastic Fairness Queueingdoveconf- 1 1 1724195936 A - - gz Dovecot's configuration dumping utilityxcb_set_pointer_mapping- 3 3 1540917640 A - - gz tcl_initobjhashtableTcl_InitObjHashTable 3 3 1448008822 B - - gz procedures to manage hash tablesdatetime::locale::caDateTime::Locale::ca 3pm 3 1402390637 A - - gz xdisplaymotionbuffersizeXDisplayMotionBufferSize 3 3 1710950786 B - - gz send events and pointer motion history structureatoi 3p- 3p 3p 1402354214 A - - gz convert a string to an integerdig- 1 1 1725373372 A - - gz DNS lookup utilityevp_md_ctx_copyEVP_MD_CTX_copy 3ssl 3 1721417624 B - - gz EVP digest routinescms_add0_recipient_keyCMS_add0_recipient_key 3ssl 3 1699892206 A - - gz add recipients to a CMS enveloped data structuregetpgid 3p- 3p 3p 1402354215 A - - gz get the process group ID for a processfgetws 3p- 3p 3p 1402354215 A - - gz get a wide-character string from a streamauthunix_create_default- 3 3 1402354207 B - - gz library routines for remote procedure callsxcb_randr_list_output_properties- 3 3 1540917640 A - - gz getparx- 3x 3 1720626759 B - - gz get curses cursor and window coordinates, attributesxcb_glx_gen_textures_data- 3 3 1540917640 B - - gz prctl- 2 2 1402354205 A - - gz operations on a processvfychain_- 1 1 1730826028 C vfychain - gz auditd.conf- 5 5 1565265962 A - - gz audit daemon configuration filecbrt 3p- 3p 3p 1402354214 A - - gz cube root functionsxcb_randr_delete_output_mode- 3 3 1540917640 A - - gz  O' Sw(rtpr= asn1BIdate0)ossl_Jhssl_AM s_se 4 Ueufo9ވsslv0vmsga QxtcoERޅttk:lF8xfre =3xuni =TYxshaZN`secm ?KvidpBethtPPJxcurs D|)pthrY.ec_gj_ISlogr Eٍ6xtap1IT)item NSYwcur 1Btcl_TNc.evp_C\tie: 0:encoLa=mesgvZeusc-\pqgetp Dp xcb_btail ^:xutf I1fcgeO 9text @{xtex 8ssl_#]Klh_d 0a|mvad ZE=xtge7 DieucaURk`stap <xmkst1 9Snetwt 3H;xtgeAfsee Mqtlsv[vI9menu 4Wargz= ;nF9SHA3 3|3cexp>Gݶpast9file  [ۡautoo DKQxmbt<%tiff 3@`ynlK>res_ ,pam_ >5Cttk:<D3gethX1cmkdi#PUdeskDRxcb_$xcb_Z(=moduB#cgiUevp_6Tusbh M>^perl QstriY N\fdop 0oisat NsgitaA7oxcb_-xcb_0set_Nwxgetc O#z{xcb_fget_D'!logrJ ^llabaÈposiyY!outw#~lcho 5{+sg_sL X evp_@AxconF2getdV4]feofCVmodfc}yxcb_P(Dxcb_head9xtex  6)dpod:NRdKxcb_?'curs WvidaR ;9io_s H}abrt]xrea;+xcb_@+(fmaxF@ ZpKzipm@ -}posi@205euca"A74mvinoA Sobj_A EC[dbd:B SY5+fgetTJobj_|BAlposiBX%tcl_6CYxseliC igform.D5~RputuqD 39pr29D'  s&tcl_D]fabsPEIiwxsethEYSJldexE E\nx509"FRlclogF@ secuFJxeve8GJQ erroG 6OmvadGi$pcreDH>\xcb_H"yaccHHa^systIfdateI0mkteI ?V fini(J /jsondJ]VsystJ:i|imag0KG܍xcb_K"fcfoKR%5utf8+LIٳseli{L_"wcfseL0Ylibx2M:gjtcl_sMGNPtc-sM7<#ldoveN Btxcb_[NLtcl_NNAdateN0>0Jxdis6Ob^atoiO;r digP-,mgevp_1P?M:cms_PcgetpP CҪfgetHQ FauthQFdxcb_Q!vgetp2RPExcb_RRprctR2%vfycR "&audi#S :$cbrtiS0vxcb_Scent<{dateU3G,sinh3yumdۀ;XkEcerf1OisfiS ܵcatat :7xcb_^des_D getmC :set_8runcЂN2buf_% Itanh{i(rngtNwcsr MRfcva@ =Ixext^=cbn_m?{-xgcvO bιdate8̮,_nc_5svc_SFոunli' HnkibiφtfenvIlockAMϖaula 7addnׇ aNdmevA u(0 ftelÈfcchވDwisbl3 7mallu /,unge;AWeuar4wgetBWkposi$Str 1ӊ1(clog @wixkblR`.xcb_ċ)4wxcb_9;mpro:4~HposiuCEfreeˌ4oxcb_'xcrecvQb%termf= soel@pthrJrhas_R >tcl_^setg  ; unicTn֗tail ^bcms_i^qxdrmLgXvgmk; Tbio_9r"-pcre>2xcb_7hxcb_q'|ispr ;<=evp_N]ZshmaW ? *pcre>centos_report_event.conf- 5 5 1585834715 B - - gz configuration file for libreport.datetime::locale::de_beDateTime::Locale::de_BE 3pm 3 1402390632 A - - gz sinhl 3- 3 3 1402354212 B - - gz hyperbolic sine functionyumdb- 8 8 1589300861 A - - gz query and alter the Yum databasecerfc- 3 3 1402354207 B - - gz complex error functionisfinite isfinite 3 isfinite 3pcatanhf 3- 3 3 1402354207 B - - gz complex arc tangents hyperbolicxcb_glx_get_pixel_mapuiv- 3 3 1540917640 A - - gz des_read_pw_string- 3ssl 3 1721417624 B - - gz Compatibility user interface functionsgetmouse- 3x 3 1720626759 B - - gz mouse interface through cursesset_current_field- 3x 3 1720626759 B - - gz set and get form page numberruncon- 1 1 1605565487 A - - gz run command with specified SELinux security contextbuf_mem_growBUF_MEM_grow 3ssl 3 1721417624 B - - gz simple character array structuretanhl tanhl 3 tanhl 3prngtest- 1 1 1585714781 A - - gz Check the randomness of data using FIPS 140-2 testswcsrchr 3- 3 3 1402354213 A - - gz search a wide character in a wide-character stringfcvalueprintFcValuePrint 3 3 1520307172 A - - gz Print a value to stdoutxextentsoffontsetXExtentsOfFontSet 3 3 1710950786 A - - gz obtain the maximum extents structure for a font setbn_mul_part_recursive- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionsxgcvaluesXGCValues 3 3 1710950785 B - t gz create or free graphics contexts and graphics context structuredatetime::locale::ha_latn_ghDateTime::Locale::ha_Latn_GH 3pm 3 1402390644 A - - gz _nc_tracebits- 3x 3 1720626759 B - - gz curses debugging routinessvc_run- 3 3 1402354212 B - - gz library routines for remote procedure callsunlink unlink 2 unlink 1p unlink 1 unlink 3pkibi- 7 7 1402354220 C units t gz fenv- 3 3 1402354209 A - - gz floating-point rounding and exception handlinglockf 3- 3 3 1402354210 A - - gz apply, test or remove a POSIX lock on an open fileaulastlog- 8 8 1565265960 A - - gz a program similar to lastlogaddnwstr- 3x 3 1720626759 B - - gz add a string of wide characters to a curses window and advance cursordmevent_tool- 8 8 1478390957 B - - gz A utility used to load a DSO into dmeventd and (un)register devices with it for monitoringftello ftello 3 ftello 3pfccharsethascharFcCharSetHasChar 3 3 1520307172 A - - gz Check a charset for a charisblank 3p- 3p 3p 1402354216 A - - gz test for a blank charactermalloc 3p- 3p 3p 1402354216 A - - gz a memory allocatorungetmouse_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensioneuare-roleuploadpolicy- 1 1 1484780705 A - - gz Attach a policy to a rolewgetch- 3x 3 1720626759 B - - gz get (or push back) characters from curses terminal keyboardposix_memalign posix_memalign 3 posix_memalign 3ptr 1p- 1p 1p 1402354204 A - t gz translate charactersclogl 3- 3 3 1402354208 B - - gz natural logarithm of a complex numberxkblibraryversionXkbLibraryVersion 3 3 1710950785 A - - gz Determines the compatibility of a library at runtime.xcb_glx_get_fb_configs_property_list_end- 3 3 1540917640 B - - gz xcb_xvmc_query_version- 3 3 1540917640 A - - gz mprobe- 3 3 1402354211 B - - gz heap consistency checkingposix_fallocate 3p- 3p 3p 1402354216 A - - gz file space control (ADVANCED REALTIME)freeaddrinfo 3p- 3p 3p 1402354215 B - - gz get address informationxcb_glx_get_separable_filter_unchecked- 3 3 1540917640 B - - gz recv recv 2 recv 3ptermio- 7 7 1402354220 A - - gz System V terminal driver interfacesoelim- 1 1 1533764324 A - p gz interpret .so requests in groff inputpthread_attr_destroy 3- 3 3 1402354211 B - - gz initialize and destroy thread attributes objecthas_colors- 3x 3 1720626759 B - - gz curses color manipulation routinestcl_channelbufferedTcl_ChannelBuffered 3 3 1448008821 B - - gz procedures for creating and manipulating channelssetgrent 3p- 3p 3p 1402354218 B - - gz group database entry functionsunicode::collate::cjk::pinyinUnicode::Collate::CJK::Pinyin 3pm 3 1698237678 A - - gz weighting CJK Unified Ideographs for Unicode::Collatetailq_initTAILQ_INIT 3 3 1402354207 B - - gz implementations of lists, tail queues, and circular queuescms_recipientinfo_encryptCMS_RecipientInfo_encrypt 3ssl 3 1721417624 B - - gz CMS envelopedData RecipientInfo routinesxdrmem_create- 3 3 1402354213 B - - gz library routines for external data representationvgmknodes- 8 8 1619616701 A - - gz Create the special files for volume group devices in /devbio_set_conn_portBIO_set_conn_port 3ssl 3 1721417624 B - - gz connect BIOpcre32_get_substring- 3 3 1573510868 B - - gz Perl-compatible regular expressionsxcb_glx_get_tex_genfv_data_end- 3 3 1540917640 B - - gz xcb_glx_get_tex_level_parameterfv_data- 3 3 1540917640 B - - gz isprint 3p- 3p 3p 1402354216 A - - gz test for a printable characterevp_encodefinalEVP_EncodeFinal 3ssl 3 1721417624 B - - gz EVP base 64 encode/decode routinesshmat 3p- 3p 3p 1402354218 A - - gz XSI shared memory attach operationpcre32_get_stringtable_entries- 3 3 1573510868 B - - gz Perl-compatible regular expressionshdestroy 3- 3 3 1402354210 B - - gz hash table managementtcl_inputblockedTcl_InputBlocked 3 3 1448008822 B - - gz buffered I/O facilities using channelsmanpath 1- 1 1 1540931193 A - - gz determine search path for manual pagesgetw- 3 3 1402354211 A - - gz input and output of words (ints)argz_add- 3 3 1402354207 A - - gz functions to handle an argz listbio_f_sslBIO_f_ssl 3ssl 3 1721417624 A - - gz SSL BIOxcb_glx_use_x_font- 3 3 1540917640 A - - gz template::pluginTemplate::Plugin 3pm 3 1402357152 A - - gz Base class for Template Toolkit pluginsxcb_get_pointer_mapping_map- 3 3 1540917640 B - - gz open n- n n 1448008823 A - - gz Open a file-based or command pipeline channellog2 3p- 3p 3p 1402354216 A - - gz compute base 2 logarithm functionsx509_verify_param_set1_policiesX509_VERIFY_PARAM_set1_policies 3ssl 3 1721417624 B - - gz X509 verification parametersed 1- 1 1 1371551649 A - - gz line-oriented text editortgetstr- 3x 3 1720626759 B - - gz direct curses interface to the terminfo capability databasesysconf sysconf 3 sysconf 3paio_read aio_read 3 aio_read 3pb::conciseB::Concise 3pm 3 1698237671 A - - gz Walk Perl syntax tree, printing concise info about opsnewscr- 3x 3 1720626759 B - - gz curses global variablesxkeysymtokeycodeXKeysymToKeycode 3 3 1710950786 B - - gz convert keysymsencode::kr::2022_krEncode::KR::2022_KR 3pm 3 1402368577 A - - gz - internally used by Encode::KRxcb_randr_get_screen_resources_modes_length- 3 3 1540917640 B - - gz xtistoplevelshellXtIsTopLevelShell 3 3 1501646833 B - - gz obtain and verify a widget's classset 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)machinectl- 1 1 1711457787 A - - gz Control the systemd machine managersetvtrgb- 8 8 1637771557 A - - gz set the virtual terminal RGB colorsdatetime::locale::ha_latnDateTime::Locale::ha_Latn 3pm 3 1402390634 A - - gz memchr 3p- 3p 3p 1402354216 A - - gz find byte in memorygit-merge-one-file- 1 1 1722330781 A - - gz The standard helper program to use with git-merge-indexxcb_input_get_device_property- 3 3 1540917640 A - - gz console.apps- 5 5 1585713588 A - - gz specify console-accessible privileged applicationstcflow 3- 3 3 1402354213 B - - gz get and set terminal attributes, line control, get and set baud rateec_group_checkEC_GROUP_check 3ssl 3 1721417624 B - - gz Functions for manipulating EC_GROUP objects.keyctl_clear- 3 3 1402366674 A - - gz Clear a keyringbc 1- 1 1 1402343514 A - - gz An arbitrary precision calculator languageposix_typed_mem_get_info- 3p 3p 1402354217 A - - gz query typed memory information (ADVANCED REALTIME)cpanplus::shell::default::plugins::customsourceCPANPLUS::Shell::Default::Plugins::CustomSource 3pm 3 1402392266 A - - gz add custom sources to CPANPLUScgi::carpCGI::Carp 3pm 3 1402342275 A - - gz CGI routines for writing to the HTTPD (or other) error logpem_write_x509_crlPEM_write_X509_CRL 3ssl 3 1721417624 B - - gz PEM routinesxcb_dri2_copy_region_unchecked- 3 3 1540917640 B - - gz ppp-watch- 8 8 1605543616 A - - gz daemon to make PPP interfaces act more like other interfacesxcb_poly_segment_checked- 3 3 1540917640 B - - gz draw linesxkbgetnamechangesXkbGetNameChanges 3 3 1710950785 A - - gz Update the local copy of the keyboard description with the actual values of the results of one or more calls to XkbNoteNameChangesevp_pkey_verify_recover_initEVP_PKEY_verify_recover_init 3ssl 3 1699892210 A - - gz recover signature using a public key algorithmxgetwmclientmachineXGetWMClientMachine 3 3 1710950786 B - - gz set or read a window's WM_CLIENT_MACHINE propertytext::parsewordsText::ParseWords 3pm 3 1402348484 A - - gz parse text into an array of tokens or array of arraystk_setpalettetk_setPalette n n 1448008912 B - - gz Modify the Tk color palettesemanage-user- 8 8 1585713889 A - - gz SELinux Policy Management SELinux User mapping toolxfocuschangeeventXFocusChangeEvent 3 3 1710950786 A - - gz FocusIn and FocusOut event structuremitem_opts- 3x 3 1720626759 A - - gz set and get menu item optionsset_field_just- 3x 3 1720626759 B - - gz retrieve field characteristicsrecvmmsg- 2 2 1402354205 A - - gz receive multiple messages on a socketdh_generate_keyDH_generate_key 3ssl 3 1721417624 A - - gz perform Diffie-Hellman key exchangecredentials- 7 7 1402354219 A - - gz process identifiersatan2f 3- 3 3 1402354207 B - - gz arc tangent function of two variablesfdiml 3p- 3p 3p 1402354215 B - - gz compute positive difference between two floating-point numberssignbit 3- 3 3 1402354212 A - - gz test sign of a real floating-point numberx25- 7 7 1402354220 A - - gz ITU-T X.25 / ISO-8208 protocol interface.Test 3pm- 3pm 3 1698237677 A - - gz provides a simple framework for writing test scriptsxcb_xkb_get_indicator_map_maps_iterator- 3 3 1540917640 B - - gz argz_create_sep- 3 3 1402354207 B - - gz functions to handle an argz listdisplaywidthmmDisplayWidthMM 3 3 1710950785 B - - gz image format functions and macrosgrub-menulst2cfg- 1 1 1722985065 C grub2-menulst2cfg - gz variables- 5 5 1706198099 A - - gz Format of specifying variable names to SNMP tools.iswctype 3- 3 3 1402354210 A - - gz wide-character classificationerand48_r- 3 3 1402354208 B - - gz generate uniformly distributed pseudo-random numbers reentrantlyppoll- 2 2 1402354205 B - - gz wait for some event on a file descriptorxcb_input_xi_grab_device- 3 3 1540917640 A - - gz xcb_query_font_properties_iterator- 3 3 1540917640 B - - gz query font metricstiffswabshortTIFFSwabShort 3tiff 3 1729525165 C TIFFswab - gz tcl_untracevar2Tcl_UntraceVar2 3 3 1448008822 B - - gz monitor accesses to a variablexcb_glx_delete_textures_checked- 3 3 1540917640 B - - gz tcl_getchannelinstancedataTcl_GetChannelInstanceData 3 3 1448008821 B - - gz procedures for creating and manipulating channelsoptarg optarg 3 optarg 3ptcl_wrongnumargsTcl_WrongNumArgs 3 3 1448008823 A - - gz generate standard error message for wrong number of argumentsxcb_input_xi_get_client_pointer_reply- 3 3 1540917640 B - - gz tc-tcindex- 8 8 1601484048 A - - gz traffic control index filterkrb5-config- 1 1 1726771586 A - t gz tool for linking against MIT Kerberos librariessystemd-inhibit- 1 1 1711457787 A - - gz Execute a program with an inhibition lock takenacosl 3p- 3p 3p 1402354214 B - - gz arc cosine functionsintel-microcode2ucode- 8 8 1729889994 A - - gz convert Intel microcode.dat file into ucode filespthread_yield- 3 3 1402354211 A - - gz yield the processorlocale::codes::langfam_retiredLocale::Codes::LangFam_Retired 3pm 3 1402383323 A - - gz retired langfam codes for the Locale::Codes::LangFam moduleobj_ln2nidOBJ_ln2nid 3ssl 3 1721417624 B - - gz ASN1 object utility functionsxcb_x_print_print_get_attributes- 3 3 1540917640 A - - gz perlgit- 1 1 1698237665 A - - gz Detailed information about git and the Perl repositoryxlowerwindowXLowerWindow 3 3 1710950786 B - - gz change window stacking orderevp_signinit_exEVP_SignInit_ex 3ssl 3 1721417624 B - - gz EVP signing functionsbcmp bcmp 3 bcmp 3pdatetime::locale::msDateTime::Locale::ms 3pm 3 1402390640 A - - gz calloc 3- 3 3 1402354207 B - - gz allocate and free dynamic memoryislessgreater islessgreater 3 islessgreater 3pthin_ls- 8 8 1605543195 A - - gz List thin volumes within a pool.xrminitializeXrmInitialize 3 3 1710950786 A - - gz initialize the Resource Manager, Resource Manager structures, and parse the command linexcb_input_get_device_dont_propagate_list_reply- 3 3 1540917640 B - - gz xcb_randr_get_screen_resources_crtcs- 3 3 1540917640 B - - gz fcconfigfileinfoiterinitFcConfigFileInfoIterInit 3 3 1520307172 A - - gz Initialize the iteratorlocaleconv 3p- 3p 3p 1402354216 A - t gz return locale-specific informationputwc_unlocked- 3 3 1402354211 B - - gz nonlocking stdio functionseuare-userdelpolicy- 1 1 1484780705 A - - gz Remove a policy from a usertcl_exitTcl_Exit 3 3 1448008821 B - - gz end the application or thread (and invoke exit handlers)setuid setuid 2 setuid 3patan2l 3p- 3p 3p 1402354214 B - - gz arc tangent functionstcl_allocstatbufTcl_AllocStatBuf 3 3 1448008822 A - - gz procedures to interact with any filesystemxkbsetignorelockmodsXkbSetIgnoreLockMods 3 3 1710950785 A - t gz Sets the modifiers that, if locked, are not to be reported in matching events to passive grabsglobfree globfree 3 globfree 3pfutimesat- 2 2 1402354204 A - - gz change timestamps of a file relative to a directory file descriptorgit-relink- 1 1 1722330781 A - - gz Hardlink common objects in local repositoriesmy_print_defaults- 1 1 1697025034 A - - gz display options from option filesxcb_glx_get_mapiv_reply- 3 3 1540917640 B - - gz mesg 1- 1 1 1402355803 A - - gz control write access to your terminalperlhurd- 1 1 1698237666 A - - gz Perl version 5 on Hurdxml::libxml::develXML::LibXML::Devel 3pm 3 1402352993 A - - gz makes functions from LibXML.xs availablexcb_xevie_select_input- 3 3 1540917640 A - - gz datetime::locale::bgDateTime::Locale::bg 3pm 3 1402390633 A - - gz xcb_render_create_picture- 3 3 1540917640 A - - gz xdr_opaque_auth- 3 3 1402354213 B - - gz library routines for remote procedure callsdatetime::locale::ms_myDateTime::Locale::ms_MY 3pm 3 1402390639 A - - gz gammal- 3 3 1402354209 B - - gz (logarithm of the) gamma functionssl_conf_ctx_set_sslSSL_CONF_CTX_set_ssl 3ssl 3 1699892218 A - - gz set context to configurexcb_input_get_device_property_items- 3 3 1540917640 B - - gz ec_key_get_key_method_dataEC_KEY_get_key_method_data 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_KEY objects.setfiles- 8 8 1585713889 A - - gz set SELinux file security contexts.error_print_progname- 3 3 1402354208 B - - gz glibc error reporting functionsxcb_change_hosts_checked- 3 3 1540917640 B - - gz wredrawln- 3x 3 1720626759 B - - gz refresh curses windows and linesxcb_input_list_input_devices_reply- 3 3 1540917640 B - - gz munlock munlock 2 munlock 3pcd 1p- 1p 1p 1402354203 A - - gz change the working directoryres_search- 3 3 1402354211 B - - gz resolver routinesp11-kit- 8 8 1501889805 A - - gz Tool for operating on configured PKCS#11 modulespthread_attr_setstackaddr 3- 3 3 1402354211 A - - gz set/get stack address attribute in thread attributes objectpod::perldoc::toxmlPod::Perldoc::ToXml 3pm 3 1402388268 A - - gz let Perldoc render Pod as XMLposix_spawnattr_setsigdefault- 3p 3p 1402354217 B - - gz get and set the spawn-sigdefault attribute of a spawn attributes object (ADVANCED REALTIME)times times 2 times 1p times 1 times 3pccosl 3p- 3p 3p 1402354214 B - - gz complex cosine functionsssl_ctx_clear_chain_certsSSL_CTX_clear_chain_certs 3ssl 3 1721417624 B - - gz extra chain certificate processingxcb_selinux_get_window_context_context_length- 3 3 1540917640 B - - gz ilogb 3- 3 3 1402354210 A - - gz get integer exponent of a floating-point valueevp_aes_128_ccmEVP_aes_128_ccm 3ssl 3 1721417624 B - - gz EVP cipher routinesxdrawimagestring16XDrawImageString16 3 3 1710950786 A - - gz draw image textx509 x509 3ssl x509 1sslremainder 3p- 3p 3p 1402354218 A - - gz remainder functionpeekfd- 1 1 1601486412 A - - gz peek at file descriptors of running processescache_repair- 8 8 1605543195 A - - gz repair cache binary metadata from device/file to device/file.sendmsg 3p- 3p 3p 1402354218 A - - gz send a message on a socket using a message structurereadv 2- 2 2 1402354206 A - - gz read or write data into multiple buffersxkballocgeomcolorsXkbAllocGeomColors 3 3 1710950785 A - - gz Allocate geometry colorsca-legacy- 8 8 1730832676 A - - gz Manage the system configuration for legacy CA certificatesevp_pkey_verify_initEVP_PKEY_verify_init 3ssl 3 1699892210 A - - gz signature verification using a public key algorithmrsa 3ssl- 3ssl 3 1699892217 A - - gz RSA public key cryptosystemxaugetauthbyaddrXauGetAuthByAddr 3 3 1402361801 A - - gz X authority database routinessh 1p- 1p 1p 1402354204 A - - gz shell, the standard command language interpretersigismember 3p- 3p 3p 1402354218 A - - gz test for a signal in a signal setselinux_default_type_path- 3 3 1585710994 B - - gz These functions return the paths to the active SELinux policy configuration directories and filesxkbkeysymtomodifiersXkbKeysymToModifiers 3 3 1710950785 A - - gz Finds the set of modifiers bound to a particular keysym on the core keyboardposix_openpt 3p- 3p 3p 1402354216 A - - gz open a pseudo-terminal devicelvm- 8 8 1619616701 A - - gz LVM2 toolsisless isless 3 isless 3pset_item_term- 3x 3 1720626759 B - - gz set hooks for automatic invocation by applicationsfcconfigappfontclearFcConfigAppFontClear 3 3 1520307172 A - - gz Remove all app fonts from font databasepcap-tstamp- 7 7 1649175930 A - - gz packet time stamps in libpcapfifo- 7 7 1402354219 A - - gz first-in first-out special file, named pipe7installkernel- 8 8 1565307693 A - - gz tool to script kernel installationxdbequeryextensionXdbeQueryExtension 3 3 1448003986 A - - gz returns the version of DBE supported by the server.cpanplus::dist::mmCPANPLUS::Dist::MM 3pm 3 1402392266 A - - gz distribution class for MakeMaker related modulesxdecrypt- 3 3 1402354213 A - - gz RFS password encryptionxcb_randr_get_provider_info- 3 3 1540917640 A - - gz dpkg-divert- 1 1 1642076111 A - - gz override a package's version of a filej1f- 3 3 1402354210 B - - gz Bessel functions of the first kinddatetime::locale::sr_cyrlDateTime::Locale::sr_Cyrl 3pm 3 1402390638 A - - gz setlinebuf- 3 3 1402354212 B - - gz stream buffering operationstcl_getindexfromobjTcl_GetIndexFromObj 3 3 1448008822 A - - gz lookup string in table of keywordssetfacl- 1 1 1585707370 A - - gz set file access control listshypotf 3- 3 3 1402354210 B - - gz Euclidean distance functionfgetpwent_r- 3 3 1402354209 B - - gz get passwd file entry reentrantlyxcb_unmap_notify_event_t- 3 3 1540917640 A - - gz a window is unmappedcopysign copysign 3 copysign 3psetresgid- 2 2 1402354206 B - - gz set real, effective and saved user or group IDwclrtoeol- 3x 3 1720626759 B - - gz clear all or part of a curses windowpam_console- 8 8 1585713588 A - - gz determine user owning the system consolelwres_endhostent_r- 3 3 1725373371 B - - gz lightweight resolver get network host entryxkbfreegeompointsXkbFreeGeomPoints 3 3 1710950785 A - - gz Free points in a outlinegdbm 3- 3 3 1402349942 A - - gz The GNU database manager. Includes dbm and ndbm compatability. (Version .)registry- n n 1448008823 A - - gz Manipulate the Windows registryerasechar- 3x 3 1720626759 B - - gz curses environment query routinesstrfmon strfmon 3 strfmon 3poldfstat- 2 2 1402354205 B - t gz get file statusxkbsaptrdfltvalueXkbSAPtrDfltValue 3 3 1710950785 A - t gz Returns the valueXXX field of act converted to a signed intsadf- 1 1 1697208922 A - - gz Display data collected by sar in multiple formats.semanage.conf- 5 5 1540943072 A - - gz global configuration file for the SELinux Management librarytcl_tellTcl_Tell 3 3 1448008822 B - - gz buffered I/O facilities using channelslrint 3p- 3p 3p 1402354216 A - - gz round to nearest integer value using current rounding directiondss1- 1ssl 1 1721417624 B - - gz message digestsfstatvfs fstatvfs 3 fstatvfs 2 fstatvfs 3pdatetime::locale::knDateTime::Locale::kn 3pm 3 1402390640 A - - gz xcb_randr_get_crtc_gamma_size_unchecked- 3 3 1540917640 B - - gz vmsplice- 2 2 1402354206 A - - gz splice user pages into a pipefallocate 2- 2 2 1402354204 A - - gz manipulate file spacessl_ctx_sess_numberSSL_CTX_sess_number 3ssl 3 1721417624 A - - gz obtain session cache statisticsxdrawtext16XDrawText16 3 3 1710950786 B - - gz draw polytext text and text drawing structuressocketpair socketpair 2 socketpair 3peuca-delete-network-interface- 1 1 1484780705 A - - gz Delete a VPC network interfaceperlamiga- 1 1 1698237663 A - - gz Perl under Amiga OSasinl 3- 3 3 1402354207 B - - gz arc sine functionmbsinit mbsinit 3 mbsinit 3pssl_has_matching_session_idSSL_has_matching_session_id 3ssl 3 1721417624 B - - gz manipulate generation of SSL session IDs (server only)bn_gcdBN_gcd 3ssl 3 1721417624 B - - gz arithmetic operations on BIGNUMsxdr_pointer- 3 3 1402354213 B - - gz library routines for external data representationfcstrlistnextFcStrListNext 3 3 1520307172 A - - gz get next string in iterationxtgetselectiontimeoutXtGetSelectionTimeout 3 3 1501646833 A - - gz set and obtain selection timeout valuesxcb_selinux_get_selection_data_context_reply- 3 3 1540917640 B - - gz xzdec- 1 1 1443524256 A - - gz Small .xz and .lzma decompressorsunexpand 1p- 1p 1p 1402354204 A - - gz convert spaces to tabsxcopycolormapandfreeXCopyColormapAndFree 3 3 1710950785 B - - gz create, copy, or destroy colormaps and color structureeuca-describe-account-attributes- 1 1 1484780705 A - - gz Show information about your accountfqFQ 8 8 1601484048 C tc-fq - gz  o+pExfilb H}wreffb <-:Spthrbn xcb_(rEargzC;VdispIgrub+I\vari" MIfile7c ?Siswcy 8ԛxcb_c2kec_pcteran [:lwreVdG0Uuuidd25ppol!C@xcb_jxcb_#-tiff2~tcl_.G*xcb_ MXcksud ;Wtcl_eiopta@ztcl_[g>xcb_&]tc-t 7krb5V JxsystJ+acos 15inte@LKpthr.5<locauwlwp:*e Iisupe <iobj_r Dh:xcb_!xcb_e0Osetif @3perlQbxlowV Bevp_Abcmp"anyd\f Jdate 0qDcallP ;ۻisle"eàthin;yxrmi#mkfsf B+Txcb_/'Pxcb_%xcb_f$ _9perl>g 4E0fccoI=loca?Bputw5b~<euar62tcl_[ Zssetuatan 2_rsa_{gVhxsetgDKhttpBhN;tcl_T"xkbsz"Q#tcl_hP?glob futi< ^}auseh <_wec_g9iYHgit- H(my_p<(>Hxcb_iX{xcb_E֚dracjK8mesgx@scljV6xcb_j-jrsa_BeuarSF:3abrt{{dateD3 animOxcb_"k rintVk<FmodfkfabskB{#date3perl 1xcb_k%^xcb_1%+dump;l G&ksyst[^J drsau)GDpanel<Rasn1MZisalYApcrew>FTwcscfdrac ;xtwi% J!xkbgxjt sock?bxcb_E%frcmpbn_m?Veuarl4Ȇgethm1tssl_XmQ9euarm)vZspriP\catatdh : eperlH :endnm 7Y%psfa J<6mem;nHhsplin 48ͷdove R78exdg-BLeucan2p[scalopthr&oSEcms_oSLrxdesAtcl_:~xcb_6Btseth2تsecuDoNxcb_*decl<>~Bgrub(mmgetw D>7 xcb_p$pcre?p>DYtcpE$tcl_Ubio_q5star >7o|xdr_ Ltcl_V\`d2i_ Ep8xml: 6늎xcb_TNdnxcb_"ZbGtempKzpem_(=6pcrez>+xcb_)%pkg:  p isnaFf tempiv+labsYmaken)euca @b9xung`:d ^cursJ` 1pthr`2:Bexec`+n2ftela =żseteHa 2Ϋ>cpanaF^unicd!xcb_arsa_generate_keyRSA_generate_key 3ssl 3 1721417624 A - - gz generate RSA key paireuare-userlistpolicies- 1 1 1484780705 A - - gz List one or all policies attached to a userabrt-action-analyze-xorg- 1 1 1601569733 A - - gz Calculate and save UUID and duplicate hash for a problem data directory DIR with Xorg backtrace.datetime::locale::ru_ruDateTime::Locale::ru_RU 3pm 3 1402390632 A - - gz animate- 1 1 1731392888 A - - gz animates an image or image sequence on any X server.datetime::locale::xh_zaDateTime::Locale::xh_ZA 3pm 3 1402390632 A - - gz xcb_set_dashes- 3 3 1540917640 A - - gz systemd-backlight- 8 8 1711457788 B - - gz Load and save the display backlight brightness at boot and shutdownrsautl- 1ssl 1 1699892201 A - - gz RSA utilityasn1_string_freeASN1_STRING_free 3ssl 3 1721417624 B - - gz ASN1_STRING allocation functionsisalnum isalnum 3 isalnum 3ppcre_compile2- 3 3 1501643278 A - - gz Perl-compatible regular expressionswcscmp wcscmp 3 wcscmp 3pdracut.conf- 5 5 1601481478 A - - gz configuration file(s) for dracutxtwindowXtWindow 3 3 1501646833 B - - gz obtain window information about a widgetxkbgetbouncekeysdelayXkbGetBounceKeysDelay 3 3 1710950785 A - t gz Queries the current BounceKeys delay for a keyboard device.socketpair 3p- 3p 3p 1402354218 A - - gz create a pair of connected socketsxcb_selinux_get_client_context_reply- 3 3 1540917640 B - - gz bn_mul_normal- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionssprintf sprintf 3 sprintf 3pcatanh catanh 3 catanh 3pdh- 3ssl 3 1699892216 A - - gz Diffie-Hellman key agreementperlsource- 1 1 1698237668 A - - gz A guide to the Perl source treepsfaddtable- 1 1 1637771557 A - - gz add a Unicode character table to a console fontdovecot.conf- 5 5 1724195685 A - - gz The configuration file for dovecot imap and pop3 serverxdg-screensaver- 1 1 1478360732 A - - gz command line tool for controlling the screensaverxdestroyregionXDestroyRegion 3 3 1710950785 B - - gz create or destroy regionstcl_varevalvaTcl_VarEvalVA 3 3 1448008821 B - - gz execute Tcl scriptsxcb_randr_select_input- 3 3 1540917640 A - - gz tset- 1 1 1720626759 A - - gz terminal initializationsecurity_setenforce- 3 3 1585710994 B - - gz get or set the enforcing state of SELinuxxcb_selinux_get_selection_context_context- 3 3 1540917640 B - - gz declare- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)grub-mklayout- 1 1 1722985065 C grub2-mklayout - gz getwchar 3- 3 3 1402354210 A - - gz read a wide character from standard inputtcl_getcurrentthreadTcl_GetCurrentThread 3 3 1448008822 B - - gz the event queue and notifier interfacesbio_s_connectBIO_s_connect 3ssl 3 1721417624 A - - gz connect BIOstart_color- 3x 3 1720626759 B - - gz curses color manipulation routinesxdr_u_short- 3 3 1402354213 B - - gz library routines for external data representationtcl_recordandevalobjTcl_RecordAndEvalObj 3 3 1448008822 A - - gz save command on history list before evaluatingd2i_x509d2i_X509 3ssl 3 1721417624 A - - gz X509 encode and decode functionsxml::saxXML::SAX 3pm 3 1402345097 A - - gz Simple API for XMLxcb_sync_list_system_counters- 3 3 1540917640 A - - gz xcb_xkb_get_kbd_by_name_unchecked- 3 3 1540917640 B - - gz template::vmethodsTemplate::VMethods 3pm 3 1402357151 A - - gz Virtual methods for variablespem_write_bio_pubkeyPEM_write_bio_PUBKEY 3ssl 3 1721417624 B - - gz PEM routinespcre32_dfa_exec- 3 3 1573510868 B - - gz Perl-compatible regular expressionsxcb_get_modifier_mapping_keycodes_length- 3 3 1540917640 B - - gz pkg::create- n n 1448008823 A - - gz Construct an appropriate 'package ifneeded' command for a given package specificationisnanl- 3 3 1402354210 B - - gz BSD floating-point classification functionstemplate::plugin::datafileTemplate::Plugin::Datafile 3pm 3 1402357151 A - - gz Plugin to construct records from a simple data filelabs labs 3 labs 3pmake make 1p make 1euca-version- 1 1 1484780705 A - - gz Display the euca2ools suite's versionunicode Unicode 7 unicode 7cmp cmp 1p cmp 18 ȲFsyscm5getl8 '<euarl<(comp ;00menu A<_tolN LHlibnbcloc"r<if_fD(@proc}1_resi3W9euca?casiL;lp 1j4|xtseEQxtapD[retuZfLnear~ 3ssl_m\xcb_C%|}xcb_#Cxsetd%Ktcsh9UtempYXIrand B resi];bsqrt/Ysyst3xcb_*& xcb_k&Ggit-`|resi = bn_adCUzdif3Rauto_\-xcb_N)cpu_ B׈wis_p4]Qxcb_"Kxcb_O0date4=grub 'Axcb_cachAGiso- _xcb_0-getuN ,]date1dgete 6'date 4RbrcsdV01filePUtmenu AU%newg< Bxtiff 2 Gplat KSJgrubTJZ{__fl= eucaD#fetePI~dn_e ,զ$cursVHaselipxcb_ Rrmdi) /vfchoa ]Bwptarǣ=rdma  4gzipF3JwSxcb_~ xcb_"xcb_htpa* Eappcx[pthr;Hdhcp6 F[dtdh_f@bio_ѦCgetr% 27chowc5I&xcb_% sslvvfxcb-j 1tmwait5ɠpperl 7aio.&E#Wgit-q S^tec_kѩsotc-sX =;v mvwi OQcpow12{\date43ձxcb_)oscheë4Gxcb_h#eucaA#HcpanPBungeEwm.:mq_ok /?ztcl_iN_tif! 2?xcb__8 pthr`_jperl$+5xcb_W>xcb_Msem_ T/hdes 0xtcl_;P~manp A(getw;]argz' ;>bio_k -  xcb_0[rtempСSN7xcb_4openkHlog2?x509 Xed 1y4tgetW"genco;Naio_/ b::cP \[conn -rxkey9RuLxcb_,b gnews3AdxtisMOlZ*Nset C>shmach >setvЦ >date5&memcf 0Pgit-RHKscal7_xcb_xcb_]Z\ztcfl _ec_gWg4keycf *bc 1E8posiONvcpanO0i.cgi: _ܵpem_Q;xcb_&=ppp-٫ W4xcb_:%/xkbgxevp_7gFxget^jCtext-azhtk_sBJsemaN!VxfocKOiKmite 9set_:jGrecvI @e$bdh_gONocred .Xatan+ @nyfdimt [signر Dx25&D$Testn QZ,euca@@k\date[@W\yumd@FxtcaAPxcb_A QAsetrA Z_fcfoA ._.dispBP#strtuB$txcb_B"shm_B :._sysC7xcb_SCS5tap:~CT䌦perlC 4>xcb_%D+JlwrekDFxcb_D*7Wtemp EeWxfreEM"Nxcb_E3tcl_6FG# hunicFlRxcb_G;Wxcb_YG#6i?fontG yfreaG xungG8;menu"H=H<crlufHsete%I ?b[Btcl_nIRssl_IXperlFJ 2fqecvJFcproJ 6U[mkduK R{dateiK3 seliK439tigeL ;xcb_HL8statrL 5gpgvL4:EexitL0݌setk"M 24tmpf]M 2ieis_lM 4 =nseqMOBlogb,Ntcl_ANKdranN O5rpc.N ,z)xcop+O -pam_bOEC[JunexO +lsO ]newpP ;_0sushEP8,xcb_P%git-PK.ripe Q- cat \QM|Mxcb_Q8zcRphpiR@fdfoIR 9(pklaRQJ?pxcb_RSgetc,S ;%mvinrSKywordS 40&{isspT <pthrKT` GxmblTSlsys/&U 'sha2YU?`;jsonUQt<iso_U _frexgV Ytcl_VGF\dbm_ W /KAeulb\WS5_exiW 0[Ntcl_WXui_agXBJasignX .(ztiffX C30ntail@Y9 cursY P>sslpY 5` fmalZ:acons> Meuca-describe-route-tables- 1 1 1484780705 A - - gz Describe one or more VPC route tablesdatetime::localecatalogDateTime::LocaleCatalog 3pm 3 1402390637 A - - gz renamed to DateTime::Locale::Catalogyumdownloader- 1 1 1589300860 A - - gz download RPM packages from Yum repositoriesxtcallacceptfocusXtCallAcceptFocus 3 3 1501646833 A - - gz calla widget's accept_focus procedurexcb_glx_query_context_unchecked- 3 3 1540917640 B - - gz setregid setregid 2 setregid 3pfcfontlistFcFontList 3 3 1520307172 A - - gz List fontsdisplayofscreenDisplayOfScreen 3 3 1710950785 B - - gz screen information functions and macrosstrtol strtol 3 strtol 3pxcb_glx_gen_queries_arb_unchecked- 3 3 1540917640 B - - gz shm_overview- 7 7 1402354220 A - - gz overview of POSIX shared memory_sysctl- 2 2 1402354204 B - - gz read/write system parametersxcb_dpms_enable- 3 3 1540917640 A - - gz tap::parser::iteratorTAP::Parser::Iterator 3pm 3 1439389327 A - - gz Base class for TAP source iteratorsperlbeos- 1 1 1698237663 A - - gz Perl version 5.8+ on BeOSxcb_glx_get_query_objectiv_arb_data_length- 3 3 1540917640 B - - gz lwres_nooprequest_free- 3 3 1725373371 B - - gz lightweight resolver no-op message handlingxcb_glx_get_convolution_parameteriv_reply- 3 3 1540917640 B - - gz template::plugin::iteratorTemplate::Plugin::Iterator 3pm 3 1402357151 A - - gz Plugin to create iterators (Template::Iterator)xfreefontpathXFreeFontPath 3 3 1710950786 B - - gz set, get, or free the font search pathxcb_x_print_print_get_attributes_attributes_length- 3 3 1540917640 B - - gz tcl_convertcountedelementTcl_ConvertCountedElement 3 3 1448008822 A - - gz manipulate Tcl listsunicode::collate::cjk::big5Unicode::Collate::CJK::Big5 3pm 3 1698237678 A - - gz weighting CJK Unified Ideographs for Unicode::Collatexcb_input_button_press_event_t- 3 3 1540917640 A - - gz xcb_record_enable_context_data_end- 3 3 1540917640 B - - gz fontdatabase FontDataBase 5 FontDatabase 5fread fread 3 fread 3pxungrabpointerXUngrabPointer 3 3 1710950786 B - - gz grab the pointermenu n- n n 1448008912 A - - gz Create and manipulate menu widgetscrlutil- 1 1 1730826028 A - - gz List, generate, modify, or delete CRLs within the NSS security database file(s) and list, create, modify or delete certificates entries in a particular CRL.setenv 3p- 3p 3p 1402354218 A - - gz add or change environment variabletcl_fsjoinpathTcl_FSJoinPath 3 3 1448008822 B - - gz procedures to interact with any filesystemssl_ctx_use_rsaprivatekey_asn1SSL_CTX_use_RSAPrivateKey_ASN1 3ssl 3 1721417624 B - - gz load certificate and key dataperlfork- 1 1 1698237665 A - - gz Perl's fork() emulationqecvt_r- 3 3 1402354211 B - - gz convert a floating-point number to a stringcprojl 3- 3 3 1402354208 B - - gz project into Riemann Spheremkdumprd- 8 8 1623254998 A - - gz creates initial ramdisk images for kdump crash recoverydatetime::locale::et_eeDateTime::Locale::et_EE 3pm 3 1402390639 A - - gz selinux_init_load_policy- 3 3 1585710994 B - - gz load a new SELinux policytigetstr_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionxcb_damage_add- 3 3 1540917640 A - - gz statvfs 2- 2 2 1402354206 B - - gz get file system statisticsgpgv- 1 1 1533764355 B - - gz Verify OpenPGP signaturesexit 3p- 3p 3p 1402354215 A - - gz terminate a processsetkey_r- 3 3 1402354212 B - - gz encrypt 64-bit messagestmpfile 3- 3 3 1402354213 A - - gz create a temporary fileis_leaveok- 3x 3 1720626759 B - - gz curses window propertiesnseq- 1ssl 1 1699892200 A - - gz create or examine a netscape certificate sequencelogb logb 3 logb 3ptcl_newstringobjTcl_NewStringObj 3 3 1448008822 B - - gz manipulate Tcl objects as stringsdrand48 3- 3 3 1402354212 A - - gz generate uniformly distributed pseudo-random numbersrpc.gssd- 8 8 1682710367 B - - gz RPCSEC_GSS daemonxcopyareaXCopyArea 3 3 1710950786 A - - gz copy areaspam_xauth_data- 3 3 1585713595 A - - gz structure containing X authentication dataunexpand unexpand 1p unexpand 1ls ls 1p ls 1newpad_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionsushell- 8 8 1605543617 A - - gz execute the single-user shellxcb_screensaver_query_info_unchecked- 3 3 1540917640 B - - gz git-quiltimport- 1 1 1722330781 A - - gz Applies a quilt patchset onto the current branchripemd160 1ssl- 1ssl 1 1721417624 B - - gz message digestscat 1- 1 1 1605565487 A - - gz concatenate files and print on the standard outputxcb_input_get_selected_extension_events_all_classes_end- 3 3 1540917640 B - - gz phpize- 1 1 1572624395 A - - gz prepare a PHP extension for compilingfdformat- 8 8 1612283497 A - - gz low-level format a floppy diskpkla-admin-identities- 8 8 1402351713 A - - gz List pklocalauthority-configured polkit administratorsxcb_get_screen_saver_unchecked- 3 3 1540917640 B - - gz getchar 3p- 3p 3p 1402354215 A - - gz get a byte from a stdin streammvinstr- 3x 3 1720626759 B - - gz get a string of characters from a curses windowwordfree 3p- 3p 3p 1402354219 B - t gz perform word expansionsisspace 3- 3 3 1402354210 B - - gz character classification routinespthread_barrier_destroy- 3p 3p 1402354217 B - - gz destroy and initialize a barrier object (ADVANCED REALTIME THREADS)xmblookupstringXmbLookupString 3 3 1710950786 A - t gz obtain composed input from an input methodsys/types.h- 0p 0p 1402354203 C sys_types.h - gz sha256_updateSHA256_Update 3ssl 3 1721417624 B - - gz Secure Hash AlgorithmjsonJSON 3pm 3 1402382640 A - - gz JSON (JavaScript Object Notation) encoder/decoderiso_8859_11- 7 7 1402354220 B - t gz ISO 8859-11 character set encoded in octal, decimal, and hexadecimalfrexp 3p- 3p 3p 1402354215 A - - gz extract mantissa and exponent from a double precision numbertcl_gethostnameTcl_GetHostName 3 3 1448008822 A - - gz get the name of the local hostdbm_clearerr- 3p 3p 1402354214 B - - gz database functionseulb-describe-tags- 1 1 1484780705 A - - gz Show the tags associated with one or more load balancers_exit 3p- 3p 3p 1402354213 B - - gz terminate a processtcl_newbytearrayobjTcl_NewByteArrayObj 3 3 1448008821 B - - gz manipulate Tcl objects as a arrays of bytesui_add_error_stringUI_add_error_string 3ssl 3 1721417624 B - - gz New User Interfacesignal 7- 7 7 1402354220 A - t gz overview of signalstifftileTIFFtile 3tiff 3 1729525165 A - - gz tile-related utility routinestail 1p- 1p 1p 1402354204 A - t gz copy the last part of a filecurs_border- 3x 3 1715932336 A - - gz create curses borders, horizontal and vertical linessslpasswd- 1ssl 1 1699892200 A - - gz compute password hashesfmal 3- 3 3 1402354209 B - - gz floating-point multiply and addxcb_input_key_press_event_t- 3 3 1540917640 A - - gz xungrabkeyboardXUngrabKeyboard 3 3 1710950786 B - - gz grab the keyboardcurs_window- 3x 3 1715932338 A - - gz create curses windowspthread_getschedparam pthread_getschedparam 3 pthread_getschedparam 3pexec 3p- 3p 3p 1402354215 A - - gz execute a fileftell 3p- 3p 3p 1402354215 A - - gz return a file offset in a streamseteuid 3p- 3p 3p 1402354218 A - - gz set effective user IDcpanplus::errorCPANPLUS::Error 3pm 3 1402392266 A - - gz error handling for CPANPLUSxcb_xkb_map_notify_event_t- 3 3 1540917640 A - - gz xfillpolygonXFillPolygon 3 3 1710950786 B - - gz fill rectangles, polygons, or arcswrefresh- 3x 3 1720626759 B - - gz refresh curses windows and linespthread_rwlockattr_getpshared- 3p 3p 1402354217 A - - gz get and set the process-shared attribute of the read-write lock attributes objectfile::copyFile::Copy 3pm 3 1698237673 A - - gz Copy files or filehandlesxcb_list_fonts_names_length- 3 3 1540917640 B - - gz get matching font namesec_point_method_ofEC_POINT_method_of 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_POINT objects.lwres_inetntop- 3 3 1725373371 A - - gz lightweight resolver IP address presentationuuidgen- 1 1 1612283497 A - - gz create a new UUID valuecksum 1p- 1p 1p 1402354203 A - - gz write file checksums and sizeslwp::simpleLWP::Simple 3pm 3 1402363153 A - - gz simple procedural interface to LWPisupper 3- 3 3 1402354210 B - - gz character classification routinesxcb_randr_get_crtc_transform_current_params_end- 3 3 1540917640 B - - gz setitimer 2- 2 2 1402354206 B - - gz get or set value of an interval timeranydbm_fileAnyDBM_File 3pm 3 1698237671 A - - gz provide framework for multiple DBMsmkfs.msdos- 8 8 1573511351 B - - gz create an MS-DOS filesystem under Linuxxcb_input_set_device_button_mapping- 3 3 1540917640 A - - gz perlfaq9- 1 1 1698237665 A - - gz Web, Email and Networkingrsa_padding_check_pkcs1_oaepRSA_padding_check_PKCS1_OAEP 3ssl 3 1721417624 B - - gz asymmetric encryption paddingxsetscreensaverXSetScreenSaver 3 3 1710950786 A - - gz manipulate the screen saverhttp- n n 1448008823 A - - gz Client-side implementation of the HTTP/1.1 protocoltcl_setlongobjTcl_SetLongObj 3 3 1448008822 B - - gz manipulate Tcl objects as integer valuesausearch- 8 8 1565265962 A - - gz a tool to query audit daemon logsec_gfp_mont_methodEC_GFp_mont_method 3ssl 3 1721417624 B - - gz Functions for obtaining EC_METHOD objects.[- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)xcb_shm_get_image_unchecked- 3 3 1540917640 B - - gz dracut-pre-mount.service- 8 8 1601481478 A - - gz runs the dracut hooks before /sysroot is mountedscl- 1 1 1540927076 A - - gz Setup and run software from Software Collection environmentxcb_glx_get_color_table_parameteriv_data_end- 3 3 1540917640 B - - gz xcb_glx_finish_unchecked- 3 3 1540917640 B - - gz rint 3p- 3p 3p 1402354218 A - - gz round-to-nearest integral valuemodfl modfl 3 modfl 3pfabs 3- 3 3 1402354208 A - - gz absolute value of floating-point numberxcb_xf86dri_create_context_unchecked- 3 3 1540917640 B - - gz dump-utmp- 8 8 1501750853 A - - gz print an utmp file in human-readable format.panel- 3x 3 1720626759 A - - gz panel stack extension for curseseuare-rolelistbypath- 1 1 1484780705 A - - gz List your account's rolesgethostbyaddr 3- 3 3 1402354209 B - - gz get network host entryssl_get_current_cipherSSL_get_current_cipher 3ssl 3 1721417624 A - - gz get SSL_CIPHER of a connectioneuare-groupdel- 1 1 1484780705 A - - gz Delete a groupendnetgrent- 3 3 1402354208 B - - gz handle network group entriesmem- 4 4 1402354219 A - - gz system memory, kernel memory and system portssplit 1p- 1p 1p 1402354204 A - - gz split files into pieceseuca-delete-group- 1 1 1484780705 A - - gz Delete a security groupscalbnf scalbnf 3 scalbnf 3ppthread_attr_getstacksize 3- 3 3 1402354211 B - - gz set/get stack size attribute in thread attributes objectcms_add1_certCMS_add1_cert 3ssl 3 1721417624 B - - gz CMS certificate and CRL utility functionsxcb_xinerama_get_screen_count_reply- 3 3 1540917640 B - - gz pcre_maketables- 3 3 1501643278 A - - gz Perl-compatible regular expressionstc- 8 8 1601484048 A - - gz show / manipulate traffic control settingsbio_nextBIO_next 3ssl 3 1721417624 B - - gz BIO chain traversal oqt xcb_(rEargzC;VdispIgrub+I\vari" MSiswcy 8eran [5ppol!C@xcb_jxcb_#-tiff2~tcl_.G*xcb_ Wtcl_eiopta@ztcl_[g>xcb_&]tc-t 7krb5V JxsystJ+acos 15inte@LKpthr.5<locauiobj_r Dh:xcb_!3perlQbxlowV Bevp_Abcmpdate 0qDcallP ;ۻisle"eàthin;yxrmi+Txcb_/'Pxcb_%E0fccoI=loca?Bputw5b~<euar62tcl_[ Zssetuatan 2;tcl_T"xkbsz?glob futi< ^Hgit- H(my_p<X{xcb_E8mesgx@jrsa_BeuarSF:3abrt{{dateD3 animO{#date3perl 1^xcb_1&ksyst[^J drsau)Rasn1MZisalYApcrew>FTwcscfdrac ;xtwi% J!xkbgxjt sock?bxcb_E%bn_m?vZspriP\catatdh : eperlH :Y%psfa J8ͷdove R78exdg-BLLrxdesAtcl_:~xcb_6Btseth2تsecuDoNxcb_*decl<>~Bgrub(mmgetw D$tcl_Ubio_q5star >7o|xdr_ Ltcl_V\`d2i_ Ep8xml: 6늎xcb_TNdnxcb_"ZbGtempKzpem_(=6pcrez>+xcb_)%pkg:  p isnaFf tempiv+labsYmaken)euca @b9xung`:d ^cursJ` 1pthr`2:Bexec`+n2ftela =żseteHa 2Ϋ>cpanaF^unicd!xcb_a  tExfilb H}wreffb <-:SpthrbnIfile7c ?ԛxcb_c2kec_pct:lwreVdG0Uuuidd2MXcksud ;wlwp:*e Iisupe <xcb_e0Osetif @"anyd\f J#mkfsf Bxcb_f$ _9perl>g 4_rsa_{gVhxsetgDKhttpBhN"Q#tcl_hP}auseh <_wec_g9iY(>Hxcb_i֚dracjKscljV6xcb_j-xcb_"k rintVk<FmodfkfabskBxcb_k%%+dump;l GGDpanel<frcmpVeuarl4Ȇgethm1tssl_XmQ9euarm)endnm 7<6mem;nHhsplin 4eucan2p[scalopthr&oSEcms_oS>7 xcb_p$pcre?p>DYtcpEJtbio_p 8/fcla4axstrC8b(Eio_c Ku]pxcb_'8posi""V lwcstPnZxcb_Adate"0fÓlwregB$ЛxcreG>even#Jextu{_ixfs_2 syst00z_usetmw @(speeä6{date3X4xcb_Jvxcb_~%aio:?7fiel52̟curs? OM 8getb D,tcl_HT Tset_@4ec_ps4"xdelD}bn_pڨN6sha2= -Fdovev L̲pthrϩP?pthr4!t{io::ɪM)lrev- 6Vrjranl Qxcb_ȫ>lxcb_'y xcb_C_xcb_t2xmbta,,nfsdxcb_2~apacf ?Ndbi:Nxcb_$xcb_M)Pcacor vwatt Rknnear  >logb/Adu 1x4~xcb_'Nnewu ?xcb_H֏Txcb_!Vkbio_>Jvxcb_ (Devp_NVHtcl_Ingumas>Jxcb_TƓ-pam_ E6{error::Nxcb_~wred < Bxcb_;#munlycd 19res_ ,W'p11- KNhpthr`V)' pod:L)posi2xAtime#/ccos 5aMssl_/XOxcb_.ilogI evp_;?Jxdra;6x509prema /peek.HQFcach} X#.send Qlread>CvMxkbaDrecv] :6bfpcl^ 8:xcb__^ ,F|ca-l Uoevp_?dk|)tcin^ $~`xena^ \?rsa  9AgeteC_ :vxaugG(<sh 1RM}sigi>%pem__ ?2Eseli|xkbkz3xcb_` -㇬posi:<xcb_H` 1\lvma%aisleĥset_NP7IfccoU]Ypcapk 8ofifoF_Hevp_ 8Hmkfi}` 's\xcb_` h svipA  9stP +txcb_~ Kgfdl 8{cpan  bwxtap AJ?vprog Eh_er7 7gettU Zva_cr :tcse H xcb_  6,mkfsA >asn1` Lxcirc geyaml Sdes_d ;hsfmem@a 0mvwi O)xset  ="jxcb_Q -oŜrecu Sxcb_ bssl_9 z<,xcb_ o/kill $pthr ;,lrans QxVicon CIseus  `R$date 8modu gxtva^ IqOevp_ >^2xcb_ %]\xcb_E 5teln| @ tcl_ `^expm9 .upureo HԶfixp =p^xcb_ nss-B U{Qxcb_ mssl_ dysmimU @d4Jendh <"xcb_ D;evp( @罱encrl 6nxget Ltrcerf 1w>/xcb_> 08dates 4pthrP Effs (XextuWP Z<sqrt IgetsP 9dxtas Q ?moduWQ LItcl_Q = 7ncatR ;extuAR Xntap:R Yfxcb_%S Tsigp]S  xxtgeS I&pthrS ${xzdateT 3x "rsa_jT M perlT , xcheT Etsig[U 34seliya 43,AxkblU i$ tc-dV 8WconfTV WGWmvwiV \83xcb_'W pythYW \xcb_W (TpthrX OperliX 4glocaX T-i2d_a Ofcdi Y KIBtcl_cY ?bitmY EIquerb Ipinetzb AŧtanlY -;tcl_1Z I~pcreZ > pcreZ >{1date![ 3m\xraisl[ Kݙzmor[ Qxcb_\ 0Fxkbs_\ BxtisI] Lftw evp_dss1EVP_dss1 3ssl 3 1721417624 B - - gz EVP digest routinessvipc svipc 7st- 4 4 1402354219 A - - gz SCSI tape devicexcb_randr_get_screen_size_range- 3 3 1540917640 A - - gz gfdl-libstdc++-plesk-10.3.0- 7 7 631195200 A - - gz GNU Free Documentation Licensecpan::meta::featureCPAN::Meta::Feature 3pm 3 1402391978 A - - gz an optional feature provided by a CPAN distributionxtappaddactionsXtAppAddActions 3 3 1501646833 A - - gz register an action tableprogram_invocation_short_name- 3 3 1402354211 B - - gz obtain name used to invoke calling programh_errno h_errno 3 h_errno 3pgettext gettext 3 gettext 1va_copy 3p- 3p 3p 1402354219 B - - gz handle variable argument listtcsetpgrp 3- 3 3 1402354213 B - - gz get and set terminal foreground process groupxcb_dri2_get_msc_unchecked- 3 3 1540917640 B - - gz mkfs.ext3- 8 8 1711459141 B - - gz create an ext2/ext3/ext4 filesystemcircleq_insert_headCIRCLEQ_INSERT_HEAD 3 3 1402354206 B - - gz implementations of lists, tail queues, and circular queuesyaml::loaderYAML::Loader 3pm 3 1402340435 A - - gz YAML class for loading Perl objects to YAMLdes_ncbc_encryptDES_ncbc_encrypt 3ssl 3 1721417624 B - - gz DES encryptionmvwins_wstr- 3x 3 1720626759 B - - gz insert a wide-character string into a curses windowxsetmode- 1 1 1502476988 A - - gz set the mode for an X Input devicexcb_query_font_char_infos- 3 3 1540917640 B - - gz query font metricsrecursive_session_key_scan- 3 3 1573510998 B - - gz Apply a function to all keys in the session keyring treexcb_glx_gen_queries_arb- 3 3 1540917640 A - - gz ssl_rstate_string_longSSL_rstate_string_long 3ssl 3 1721417624 B - - gz get textual description of state of an SSL object during read operationxcb_xfixes_copy_region_checked- 3 3 1540917640 B - - gz killpg killpg 2 killpg 3ppthread_setcancelstate 3- 3 3 1402354211 A - - gz set cancelability state and typelrand48 3p- 3p 3p 1402354216 B - - gz generate uniformly distributed pseudo-random numbersiconv_open 3p- 3p 3p 1402354216 A - - gz codeset conversion allocation functionseusers- 5 5 1585710994 A - - gz The SELinux GNU/Linux user to SELinux user mapping configuration filedatetime::locale::tg_cyrl_tjDateTime::Locale::tg_Cyrl_TJ 3pm 3 1402390633 A - - gz module::load::conditionalModule::Load::Conditional 3pm 3 1447970231 A - - gz Looking up module information / loading at runtimextvasetsubvaluesXtVaSetSubvalues 3 3 1501646833 B - - gz obtain and set widget resourcesevp_rc2_40_cbcEVP_rc2_40_cbc 3ssl 3 1721417624 B - - gz EVP cipher routinesxcb_xkb_list_components_types_length- 3 3 1540917640 B - - gz xcb_glx_get_tex_genfv_reply- 3 3 1540917640 B - - gz telnet- 1 1 1605545062 A - - gz user interface to the TELNET protocoltcl_ischannelexistingTcl_IsChannelExisting 3 3 1448008821 B - - gz procedures for creating and manipulating channelsexpm1 3- 3 3 1402354208 A - - gz exponential minus 1pure-mrtginfo- 8 8 1730292103 A - - gz provide an MRTG-graphable user count for ftpdfixparts- 8 8 1393783057 A - - gz MBR partition table repair utilityxcb_glx_get_clip_plane_data- 3 3 1540917640 B - - gz nss-mymachines- 8 8 1711457788 A - - gz Provide hostname resolution for local container instances.xcb_input_xi_query_pointer- 3 3 1540917640 A - - gz ssl_get_accept_stateSSL_get_accept_state 3ssl 3 1721417624 B - - gz prepare SSL object to work in client or server modesmime_read_cmsSMIME_read_CMS 3ssl 3 1699892213 A - - gz parse S/MIME message.endhostent 3p- 3p 3p 1402354215 A - - gz network host database functionsxcb_randr_get_crtc_gamma_reply- 3 3 1540917640 B - - gz evp- 3ssl 3 1699892217 A - - gz high-level cryptographic functionsencrypt 3p- 3p 3p 1402354214 A - - gz encoding function (CRYPT)xgetfontpathXGetFontPath 3 3 1710950786 B - - gz set, get, or free the font search pathcerfcf- 3 3 1402354207 B - - gz complex error functionxcb_free_colormap_checked- 3 3 1540917640 B - - gz datetime::locale::kaj_ngDateTime::Locale::kaj_NG 3pm 3 1402390640 A - - gz ffs ffs 3 ffs 3psqrtl sqrtl 3 sqrtl 3pftw ftw 3 ftw 3p|ׅsinhhbtap:)wC[xcb_!}mxcb_)Vdln 1839Gftw.p0Ntcl_IhfccoHxcb_`bn_rAX6xcb_גJ}xcb_ 1EcursQ 1@prof '> Sxcb_+}/euca2;realJ ;"exit 8f,slk_Ҕ 6mstrdfYvi 1/DNcms_y Rsxcb_ؕ(ualapxcb_6(" egrey9/freo 0۞lockdisgr xcb_($xcb_g&SeucaB4@xcb_%ނ_vforH Gxkbc6rxkbsݘ am~QbisoJJ`Jposi TzgetpJrege,0dNtoucd1iswc C̓=ssl_VclogZpxcb_rWi2d_[trsa_ GFFtcsee fd_c h@xset RmxkbgpROmsg.9,hvlessٝ E刂kpat'6roundposix,dbd:Tjlgam -cinst= wunc ;怔xdbeK_vcpan^T*Cxdec. 2xcb_i (dpkg A{Qj1f=Xdate.5u5setl} 6{u*tcl_Osetf!8bAhypoa 6 fget <r1xcb_/copy0 BsetrQ IPwclr @Kfpam_ Calwre=FemxkbfCkbgdbmeVtregiW :deras =<strf#Joldf *rxkbs2fc(%sadfM^|semaWktcl_a H0 lrin \ޔdss1-lfstaI #!dateu0݊xcb_(܂vmsp 8ϕfall> 0%ssl_zO^xdra Sysock< Xh eucac99?/perl .m=asin,vmbsi&fssl_Dn bn_gCxdr_ LfcstpC9 xtgeVƑxcb_--ʺxzdeu<:unex 3xcopd/%eucao!>Õfcbl="strcM JVxcroS/ec_pfiel ;{.date3Eputc)?ledm| Sciso_ ^sslrD <G1partg9FD_Z 79N W@ SxtsenN E^iscn 9Idate0APeven Jfq =Luargze;b.kxcb_jxcb_3putp ;>at 1PL&_nc_7Ƕxcb_0Atcse5 @=xcb_,/auth FO euar="W>atruj>Vpthr\ perl# 6k+htopf54 locaNClong pmap% F7secuvJ-:Spthrnii2d_f Gwblkm;Mfget 9Ζ+pam_@ A#Issl_xpwcto Kctcl_sOawrit +Hxcb_!defaCVG7xcb_%-xcb_M#cons'K}rt_s,xcb_dxcb_.xgeucaI2$Jpthr>sysc0 /_xque70 Bߋtie:0 U@1svc_0 FMxcb_@1 (Ythin1 Db'strr1 !9fcva1 1ssl_.2 Oxcb_2 %Vqset_2 NUslk_$3 6 uuidg3 9g*dexit3 .lxcb_3 .read,4 A"sys/w4 %set_4 GNkbn_m4 CgeteP5 ctan5 6,{xcb_5 )B 46Ecpoww> 4M&xunm> @Otcl_? cgexec|? .Jattr? egit-@ PZͲxcb_? ˼kssl_W@ `D|xdes@ 7]hrandA :1schebA O„xcb_A +R3:xcb_B  xkbk8B dulexpoB >{bio_B 4xcb_5C +zhyporC 82CatolC 9˾wcscC AY+pthr?D J(1conjD :(log1D 7"OcpanE Z Unet:E a fc-cF =jerroHF :>/bn_sF @ 5xcb_F "{fcutG =git-iG :shm_G C+rtcwH QevalZH Isem_H GrepqH <)teeI ctim)I KbbcopI 7x(dracI Q)xcb_'J $ xcb_XJ $qxcb_J !{granJ uinsmJ Rsxcb_JK EW;uconK )Jbio_K ;ioevp_K @6ԛwcwiNL  dovelL JpthrL .%jxtreM Q cleaiM  5asn1M IaLtiffM Qmerg9N /pgetr; Asyscall- 2 2 1402354206 A - t gz indirect system callxqueryextensionXQueryExtension 3 3 1710950786 A - - gz list available extensionstie::substrhashTie::SubstrHash 3pm 3 1698237678 A - - gz Fixed-table-size, fixed-key-length hashingsvc_destroy- 3 3 1402354212 B - - gz library routines for remote procedure callsxcb_input_get_device_button_mapping_map- 3 3 1540917640 B - - gz thin_repair- 8 8 1605543195 A - - gz repair thin provisioning binary metadata.strrchr strrchr 3 strrchr 3pfcvaluesaveFcValueSave 3 3 1520307172 A - - gz Copy a valuessl_check_chainSSL_check_chain 3ssl 3 1699892222 A - - gz check certificate chain suitabilityxcb_copy_area_checked- 3 3 1540917640 B - - gz copy areasset_form_term- 3x 3 1720626759 B - - gz set hooks for automatic invocation by applicationsslk_attr_set- 3x 3 1720626759 B - - gz curses soft label routinesuuid_generate- 3 3 1612283497 A - - gz create a new unique UUID valueexit n- n n 1448008823 A - - gz End the applicationxcb_glx_get_compressed_tex_image_arb_data_end- 3 3 1540917640 B - - gz readahead- 2 2 1402354205 A - - gz perform file readahead into page cachesys/uio.h- 0p 0p 1402354203 C sys_uio.h - gz set_menu_userptr- 3x 3 1720626759 B - - gz associate application data with a menu itembn_mod_inverseBN_mod_inverse 3ssl 3 1699892205 A - - gz compute inverse modulo ngetexeccon_raw- 3 3 1585710994 B - - gz get or set the SELinux security context used for executing a new processtan tan 3 tan 3pxcb_render_query_pict_index_values_reply- 3 3 1540917640 B - - gz localeconv localeconv 3 localeconv 3psys/statvfs.h- 0p 0p 1402354203 C sys_statvfs.h - gz report-cli- 1 1 1585834715 A - - gz Work with ABRT problem directories from command line.xtseterrorhandlerXtSetErrorHandler 3 3 1501646833 B - - gz low-level error handlerssnmpd.examples- 5 5 1706198099 A - - gz example configuration for the Net-SNMP agentripemd160_updateRIPEMD160_Update 3ssl 3 1721417624 B - - gz RIPEMD-160 hash functionssl_ctx_set_cipher_listSSL_CTX_set_cipher_list 3ssl 3 1721417624 A - - gz choose list of available SSL_CIPHERsxcb_glx_get_histogram_reply- 3 3 1540917640 B - - gz perl5162delta- 1 1 1698237662 A - - gz what is new for perl v5.16.2shred- 1 1 1605565487 A - - gz overwrite a file to hide its contents, and optionally delete itevp_openupdateEVP_OpenUpdate 3ssl 3 1721417624 B - - gz EVP envelope decryptionpthread_attr_getaffinity_np- 3 3 1402354211 B - - gz set/get CPU affinity attribute in thread attributes objectnftw nftw 3 nftw 3pselinux_restorecon_default_handle- 3 3 1585710994 A - - gz sets default parameters for selinux_restorecon (3)xtvaopenapplicationXtVaOpenApplication 3 3 1501646833 B - - gz initialize, open, or close a displayxcb_x_print_print_end_job- 3 3 1540917640 A - - gz tcl_badchanneloptionTcl_BadChannelOption 3 3 1448008821 A - - gz procedures for creating and manipulating channelsjson::xs::booleanJSON::XS::Boolean 3pm 3 1392571439 A - - gz dummy module providing JSON::XS::Booleansub::uplevelSub::Uplevel 3pm 3 1402370974 A - - gz apparently run a function in a higher stack frametcl_linkvarTcl_LinkVar 3 3 1448008822 A - - gz link Tcl variable to C variablemenu_sub- 3x 3 1720626759 B - - gz make and break menu window and subwindow associationstcl_statTcl_Stat 3 3 1448008821 B - - gz check file permissions and other attributesxcb_query_font_char_infos_length- 3 3 1540917640 B - - gz query font metricsxcb_glx_get_tex_image- 3 3 1540917640 A - - gz xcb_present_query_capabilities_reply- 3 3 1540917640 B - - gz signal 2- 2 2 1402354206 A - - gz ANSI C signal handlingwordexp 3p- 3p 3p 1402354219 A - t gz perform word expansionscpowl 3p- 3p 3p 1402354214 B - - gz complex power functionsxunmapeventXUnmapEvent 3 3 1710950786 A - - gz UnmapNotify event structuretcl_setchannelbuffersizeTcl_SetChannelBufferSize 3 3 1448008821 B - - gz procedures for creating and manipulating channelsexec n- n n 1448008823 A - - gz Invoke subprocessesattr attr 1 attr 5xcb_query_colors_colors_length- 3 3 1540917640 B - - gz git-rm- 1 1 1722330782 A - - gz Remove files from the working tree and from the indexssl_set_tlsext_status_typeSSL_set_tlsext_status_type 3ssl 3 1721417624 B - - gz OCSP Certificate Status Request functionsxdestroywindowXDestroyWindow 3 3 1710950786 A - - gz destroy windowsrand_write_fileRAND_write_file 3ssl 3 1721417624 B - - gz PRNG seed filesched_getcpu- 3 3 1402354212 A - - gz determine CPU on which the calling thread is runningxcb_glx_get_tex_level_parameterfv_data_end- 3 3 1540917640 B - - gz xcb_shape_offset_checked- 3 3 1540917640 B - - gz xkbkeytypeindexXkbKeyTypeIndex 3 3 1710950785 A - - gz Obtain the index of a key type or the pointer to a key typeexport 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)bio_do_acceptBIO_do_accept 3ssl 3 1721417624 B - - gz accept BIOxcb_create_window- 3 3 1540917640 A - - gz Creates a windowhypotl 3p- 3p 3p 1402354216 B - - gz Euclidean distance functionatoll 3- 3 3 1402354207 B - - gz convert a string to an integerwcscat 3- 3 3 1402354213 A - - gz concatenate two wide-character stringspthread_attr_init 3- 3 3 1402354211 A - - gz initialize and destroy thread attributes objectconjl 3- 3 3 1402354208 B - - gz calculate the complex conjugatelog1p 3- 3 3 1402354210 A - - gz logarithm of 1 plus argumentcpanplus::internals::sourceCPANPLUS::Internals::Source 3pm 3 1402392266 A - - gz internals for updating source filesnet::hostentNet::hostent 3pm 3 1698237676 A - - gz by-name interface to Perl's built-in gethost*() functionsfc-cache- 1 1 1519011779 A - - gz build font information cache fileserror_message_count- 3 3 1402354208 B - - gz glibc error reporting functionsbn_set_bitBN_set_bit 3ssl 3 1721417624 A - - gz bit operations on BIGNUMsxcb_selinux_list_properties_reply- 3 3 1540917640 B - - gz fcutf16toucs4FcUtf16ToUcs4 3 3 1520307172 A - - gz convert UTF-16 to UCS4git-verify-tag- 1 1 1722330782 A - - gz Check the GPG signature of tagsshm_open 3p- 3p 3p 1402354218 A - - gz open a shared memory object (REALTIME)rtcwake- 8 8 1612283497 A - - gz enter a system sleep state until specified wakeup timeeval 1p- 1p 1p 1402354203 A - - gz construct command by concatenating argumentssem_post sem_post 3 sem_post 3prepquota- 8 8 1565318038 A - - gz summarize quotas for a filesystemtee tee 2 tee 1p tee 1ctime_r 3p- 3p 3p 1402354214 B - - gz convert a time value to a date and time stringbcopy 3p- 3p 3p 1402354214 A - - gz memory operations (LEGACY)dracut-cmdline.service- 8 8 1601481478 A - - gz runs the dracut hooks to parse the kernel command linexcb_test_grab_control- 3 3 1540917640 A - - gz xcb_randr_configure_output_property- 3 3 1540917640 A - - gz xcb_input_device_changed_event_t- 3 3 1540917640 A - - gz grantpt grantpt 3 grantpt 3pinsmod- 8 8 1585709895 A - - gz Simple program to insert a module into the Linux Kernelxcb_xkb_get_indicator_map_reply- 3 3 1540917640 B - - gz ucontext.h- 0p 0p 1402354203 A - - gz user contextbio_tellBIO_tell 3ssl 3 1721417624 B - - gz BIO control operationsevp_encryptfinalEVP_EncryptFinal 3ssl 3 1721417624 B - - gz EVP cipher routineswcwidth wcwidth 3 wcwidth 3pdoveadm-kick- 1 1 1724195936 A - - gz Disconnect users by user name and/or IP addresspthread_create 3- 3 3 1402354211 A - - gz create a new threadxtreleasepropertyatomXtReleasePropertyAtom 3 3 1501646833 B - - gz maintain a cache of property atomsclear clear 3x clear 1asn1_string_setASN1_STRING_set 3ssl 3 1721417624 B - - gz ASN1_STRING utility functionstiffrgbaimageTIFFRGBAImage 3tiff 3 1729525165 A - - gz read and decode an image into a rastermerge- 1 1 1585714623 A - - gz three-way file mergextsetwarninghandlerXtSetWarningHandler 3 3 1501646833 B - - gz low-level error handlerspthread_sigmask 3- 3 3 1402354211 A - - gz examine and change mask of blocked signalsextutils::command::mmExtUtils::Command::MM 3pm 3 1402365500 A - - gz Commands for the MM's to use in Makefilesgetsockopt 2- 2 2 1402354206 A - - gz get and set options on socketsxtasprintfXtAsprintf 3 3 1501646833 B - - gz memory management functionsmodule::loadedModule::Loaded 3pm 3 1698237389 A - - gz mark modules as loaded or unloadedtcl_getthreaddataTcl_GetThreadData 3 3 1448008822 B - - gz Tcl thread supportncat- 1 1 1573510867 A - - gz Concatenate and redirect socketsextutils::makemaker::tutorialExtUtils::MakeMaker::Tutorial 3pm 3 1402365499 A - - gz Writing a module with MakeMakertap::parser::grammarTAP::Parser::Grammar 3pm 3 1439389327 A - - gz A grammar for the Test Anything Protocol.xcb_render_composite_checked- 3 3 1540917640 B - - gz sigprocmask sigprocmask 2 sigprocmask 3pxtgetconstraintresourcelistXtGetConstraintResourceList 3 3 1501646833 B - - gz obtain resource listpthread_create pthread_create 3 pthread_create 3pdatetime::locale::en_phDateTime::Locale::en_PH 3pm 3 1402390641 A - - gz rsa_public_decryptRSA_public_decrypt 3ssl 3 1721417624 B - - gz low level signature operationsperlfaq4- 1 1 1698237664 A - - gz Data ManipulationxchecktypedwindoweventXCheckTypedWindowEvent 3 3 1710950786 B - - gz select events by typetsig-keygen- 8 8 1726680962 B - - gz ddns key generation toolxkblatchmodifiersXkbLatchModifiers 3 3 1710950785 A - t gz Latches and unlatches any of the eight real keyboard modifierstc-drr- 8 8 1601484048 A - - gz deficit round robin schedulerconf_modules_finishCONF_modules_finish 3ssl 3 1721417624 B - - gz OpenSSL configuration cleanup functionsmvwinchnstr- 3x 3 1720626759 B - - gz get a string of characters (and attributes) from a curses windowxcb_input_xi_get_focus- 3 3 1540917640 A - - gz python2- 1 1 1729098114 B - - gz an interpreted, interactive, object-oriented programming languagexcb_glx_get_drawable_attributes_attribs- 3 3 1540917640 B - - gz pthread_mutexattr_destroy- 3p 3p 1402354217 B - - gz destroy and initialize the mutex attributes objectperlvar- 1 1 1698237671 A - - gz Perl predefined variableslocale::countryLocale::Country 3pm 3 1402383324 A - - gz standard codes for country identificationfcdircachereadFcDirCacheRead 3 3 1520307172 A - - gz read or construct a directory cachetcl_allocTcl_Alloc 3 3 1448008821 A - - gz allocate or free heap memorybitmapunitBitmapUnit 3 3 1710950786 A - - gz image format functions and macrostanl 3p- 3p 3p 1402354218 B - - gz tangent functiontcl_stackchannelTcl_StackChannel 3 3 1448008821 B - - gz manipulate stacked I/O channelspcre_study- 3 3 1501643278 A - - gz Perl-compatible regular expressionspcre32_compile- 3 3 1573510868 B - - gz Perl-compatible regular expressionsdatetime::locale::ml_inDateTime::Locale::ml_IN 3pm 3 1402390633 A - - gz raise n- n n 1448008912 A - - gz Change a window's position in the stacking orderzmore- 1 1 1652367512 A - - gz file perusal filter for crt viewing of compressed textxcb_allow_events_checked- 3 3 1540917640 B - - gz release queued eventsxkbsetnamedindicatorXkbSetNamedIndicator 3 3 1710950785 A - - gz Names an indicator if it is not already named; toggles the state of the indicator; sets the indicator to a specified state and sets the indicator map for the indicatorxtissessionshellXtIsSessionShell 3 3 1501646833 B - - gz obtain and verify a widget's classxcb_xinerama_is_active- 3 3 1540917640 A - - gz recv 2- 2 2 1402354205 A - - gz receive a message from a socketfpclassify 3p- 3p 3p 1402354215 A - - gz classify real floating typexcb_input_change_device_key_mapping_checked- 3 3 1540917640 B - - gz tcindex- 8 8 1601484048 C tc-tcindex - gz xenableaccesscontrolXEnableAccessControl 3 3 1710950785 B - - gz control host access and host control structuregetenforce- 8 8 1585710994 A - - gz get the current mode of SELinuxpem_read_bio_dsaparamsPEM_read_bio_DSAparams 3ssl 3 1721417624 B - - gz PEM routineswctype wctype 3 wctype 3pxcb_randr_get_screen_resources_current_names- 3 3 1540917640 B - - gz xcb_input_grab_device_key- 3 3 1540917640 A - - gz mkfifo mkfifo 3 mkfifo 1p mkfifo 1 mkfifo 3pxcb_dpms_get_version_reply- 3 3 1540917640 B - - gz asn1_string_lengthASN1_STRING_length 3ssl 3 1721417624 A - - gz ASN1_STRING utility functionsfmemopen- 3 3 1402354211 A - - gz open memory as streamselinux_mkload_policy- 3 3 1585710994 B - - gz load a new SELinux policyi2d_dsa_sigi2d_DSA_SIG 3ssl 3 1721417624 B - - gz DSA key encoding and parsing functions.query_user_context- 3 3 1585710994 B - - gz determine SELinux context(s) for user sessionsinet_makeaddr- 3 3 1402354210 B - - gz Internet address manipulation routines_ 7 b (xml:V֝xcb_idate0!xcb_:xdr_F{datek3Igamm<issl_I?xcb_W$Eec_kzsetf+ >{error::Nxcb_~wred < Bxcb_;#munlycd 19res_ ,W'p11- KNhpthr`V)' pod:L)posi2xAtime#/ccos 5aMssl_/XOxcb_.ilogI evp_;?Jxdra;6x509prema /peek.HQFcach} X#.send Qlread>CvMxkbaDF|ca-l Uoevp_?d?rsa  9vxaugG(<sh 1RM}sigi>2Eseli|xkbkz㇬posi:1\lvma%aisleĥset_NP7IfccoU]Ypcapk 8ofifoF_Hevp_ 8h svipA  9stP +txcb_~ Kgfdl 8{cpan  bwxtap AJ?vprog Eh_er7 7gettU Zva_cr :tcse H xcb_  6,mkfsA >xcirc geyaml Sdes_d ;mvwi O)xset  ="jxcb_Q -oŜrecu Sxcb_ bssl_9 z<,xcb_ o/kill $pthr ;,lrans QxVicon CIseus  `R$date 8modu gxtva^ IqOevp_ >^2xcb_ %]\xcb_E 5teln| @ tcl_ `^expm9 .upureo HԶfixp =p^xcb_ nss-B U{Qxcb_ mssl_ dysmimU @d4Jendh <"xcb_ D;evp( @罱encrl 6nxget Ltrcerf 1w>/xcb_> 08dates 4pthrP Effs (XextuWP Z<sqrt IgetsP 9dxtas Q ?moduWQ LItcl_Q = 7ncatR ;extuAR Xntap:R Yfxcb_%S Tsigp]S  xxtgeS I&pthrS ${xzdateT 3x "rsa_jT M perlT , xcheT Etsig[U 33,AxkblU i$ tc-dV 8WconfTV WGWmvwiV \83xcb_'W pythYW \xcb_W (TpthrX OperliX 4glocaX Tfcdi Y KIBtcl_cY ?bitmY EŧtanlY -;tcl_1Z I~pcreZ > pcreZ >{1date![ 3m\xraisl[ Kݙzmor[ Qxcb_\ 0Fxkbs_\ BxtisI] Lftw   ) 7mxcb_] recv] :6bfpcl^ 8:xcb__^ ,k|)tcin^ $~`xena^ \AgeteC_ :%pem__ ?3xcb_` -<xcb_H` Hmkfi}` 's\xcb_` asn1` Lhsfmem@a 04seliya 4-i2d_a OIquerb Ipinetzb A5,wcty_ Cxcb_ [pcre3 >8~acce :t<iso-͐ _xcb_8 1:}tld_ '0tcl_ KIdate 0 ncpW  Ҳeuscf $Lx,chme֒ +Kߥcima AclocQ &x509 XXfOdtls w$ xcre _ˇdes_ A]hcwaddM Zcpiso_ ^Ueuca J!Dmake J(getpԖ -fmod <Cb0erfc9 :ui_g| <Bdh_gƗ b|sigaB slk_l 6oEeusc Ospmcpr ;0newg` 0ifope 0d posiљ u-$pem_a @bfing dseli1 |userě H coll Gtsinct ?fxcb_ aio:: HYpsedR *Dxcb_ B]Stie: @ Uwait JxcupT d~jGit Ȟ Mxall Cmkcpanr O"posi `C/xsetv E ec_pР $v'svcry F$sela͡ =-char yUkgit- `ltcl_ N<hcre̟ l@xcb_a 2Vcflo J9perl CtimeK I%date 0xcb_ %^pfif! 'cpu_S Hyssl_ w$nmvin9 Rsigp gWmdoc Nftcl_ UDmbno_{ Nwendrҧ ( csin 0getc< PLNip-m 6=fLsecoԨ ?xget ?Ÿx509l [Dqxcb_ Teufo FPnextz EU/id 1Ϊ F Fsetp 5q{tcl_Y Sewcsc +evp_۫ 8VIdrac Flxcb_{ kxcb_ <>tcl_ Tq^xtvaS F}hnet: Gxfil DxgetuG 3߃xcb_ &%Qs_clƮ 49mkdi -Lmodu8 d#tiff 5wtemp HjoinY dateu 0Denco A&mkdi UULbn_mn ?ngwcsc 9type gxkbkn Nnexp  6ĎxstoS 4ܛgetu Gtabs 9*/d2i_) R xdes dSRxcb_ '+temp; Y?icace kxcb_xkb_get_kbd_by_name- 3 3 1540917640 A - - gz pcre_copy_named_substring- 3 3 1501643278 A - - gz Perl-compatible regular expressionsaccept4- 2 2 1402354204 B - - gz accept a connection on a socketiso-8859-11- 7 7 1402354219 B - t gz ISO 8859-11 character set encoded in octal, decimal, and hexadecimalxcb_selinux_get_selection_create_context_context- 3 3 1540917640 B - - gz tld_get_4z- 3 3 1448125246 A - - gz API functiontcl_parsevarnameTcl_ParseVarName 3 3 1448008822 B - - gz parse Tcl scripts and expressionsdatetime::locale::iuDateTime::Locale::iu 3pm 3 1402390635 A - - gz cp cp 1p cp 1euscale-describe-scaling-activities- 1 1 1484780705 A - - gz Describe past and current auto-scaling activitieschmem- 8 8 1612283497 A - - gz configure memorycimagf 3- 3 3 1402354207 B - - gz get imaginary part of a complex numberclock_nanosleep clock_nanosleep 2 clock_nanosleep 3px509_name_entry_get_objectX509_NAME_ENTRY_get_object 3ssl 3 1721417624 A - - gz X509_NAME_ENTRY utility functionsdtlsv1_client_methodDTLSv1_client_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionsxcreatecolormapXCreateColormap 3 3 1710950786 A - - gz create, copy, or destroy colormaps and color structuredes_ede2_ofb64_encryptDES_ede2_ofb64_encrypt 3ssl 3 1721417624 B - - gz DES encryptionwaddchnstr- 3x 3 1720626759 B - - gz add a string of characters (and attributes) to a curses windowiso_8859-7- 7 7 1402354220 A - t gz ISO 8859-7 character set encoded in octal, decimal, and hexadecimaleuca-describe-image-attribute- 1 1 1484780705 A - - gz Show information about an attribute of an imagemake 1- 1 1 1573511351 A - - gz GNU make utility to maintain groups of programsgetpwuid getpwuid 3 getpwuid 3pfmodl 3- 3 3 1402354209 B - - gz floating-point remainder functionerfcl 3p- 3p 3p 1402354215 B - - gz complementary error functionsui_get_methodUI_get_method 3ssl 3 1721417624 B - - gz New User Interfacedh_generate_parameters_exDH_generate_parameters_ex 3ssl 3 1721417624 B - - gz generate and check Diffie-Hellman parameterssigaltstack sigaltstack 2 sigaltstack 3pslk_wset- 3x 3 1720626759 B - - gz curses soft label routineseuscale-describe-launch-configs- 1 1 1484780705 A - - gz Describe auto-scaling instance launch configurationsmcprint_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionnewgrp 1- 1 1 1565319053 A - - gz log in to a new groupfopen 3- 3 3 1402354209 A - - gz stream open functionsposix_spawnattr_setsigmask- 3p 3p 1402354217 B - - gz get and set the spawn-sigmask attribute of a spawn attributes object (ADVANCED REALTIME)pem_write_rsaprivatekeyPEM_write_RSAPrivateKey 3ssl 3 1721417624 B - - gz PEM routinesfingerprint-auth-ac- 5 5 1501837535 B - - gz Common configuration files for PAMified services written by authconfig(8)selinux_usersconf_path- 3 3 1585710994 B - - gz These functions return the paths to the active SELinux policy configuration directories and filesuser_contexts- 5 5 1585710994 A - - gz The SELinux user contexts configuration filescollectd-threshold- 5 5 1671356063 A - - gz Documentation of collectd's Threshold pluginsincosf- 3 3 1402354212 B - - gz calculate sin and cos simultaneouslyxcb_input_xi_get_client_pointer- 3 3 1540917640 A - - gz io::compress::bzip2IO::Compress::Bzip2 3pm 3 1402361982 A - - gz Write bzip2 files/bufferspsed- 1 1 1698237679 A - - gz a stream editorxcb_glx_get_integerv_reply- 3 3 1540917640 B - - gz tie::arrayTie::Array 3pm 3 1698237678 A - - gz base class for tied arrayswait 3p- 3p 3p 1402354219 A - - gz wait for a child process to stop or terminatexcupstorecolorsXcupStoreColors 3 3 1448003986 A - - gz initialize shareable colormap entries at specific locationsGit 3pm- 3pm 3 1722329827 A - - gz Perl interface to the Git version control systemxalloccolorplanesXAllocColorPlanes 3 3 1710950785 B - e gz allocate and free colorscpan::metaCPAN::Meta 3pm 3 1402391978 A - - gz the distribution metadata for a CPAN disthcreate hcreate 3 hcreate 3pposix_trace_attr_init- 3p 3p 1402354217 A - - gz destroy and initialize the trace stream attributes object (TRACING)xsetgraphicsexposureXSetGraphicsExposure 3 3 1710950786 B - - gz GC convenience routinesec_point_get_affine_coordinates_gfpEC_POINT_get_affine_coordinates_GFp 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_POINT objects.svcraw_create- 3 3 1402354212 B - - gz library routines for remote procedure callsselabel_stats- 3 3 1585710994 A - - gz obtain SELinux labeling statisticscharnames- 3pm 3 1698237678 A - - gz access to Unicode character names and named character sequences; also define character namesgit-fsck- 1 1 1722330783 A - - gz Verifies the connectivity and validity of the objects in the databasetcl_writecharsTcl_WriteChars 3 3 1448008822 B - - gz buffered I/O facilities using channelsxcb_x_print_print_get_one_attributes_value_length- 3 3 1540917640 B - - gz cflow- 1p 1p 1402354203 A - - gz generate a C-language flowgraph (DEVELOPMENT)perlvmesa- 1 1 1698237671 A - - gz building and installing Perl for VM/ESA.times.h- 0p 0p 1402354203 B - - gz file access and modification times structuredatetime::locale::nrDateTime::Locale::nr 3pm 3 1402390639 A - - gz xcb_input_xi_change_property_checked- 3 3 1540917640 B - - gz pfifo_fast- 8 8 1601484048 C tc-pfifo_fast - gz cpu_alloc_sizeCPU_ALLOC_SIZE 3 3 1402354206 B - - gz macros for manipulating CPU setsssl_ctx_sess_get_new_cbSSL_CTX_sess_get_new_cb 3ssl 3 1721417624 B - - gz provide callback functions for server side external session cachingmvins_wch- 3x 3 1720626759 B - - gz insert a complex character and rendition into a windowsigpause sigpause 3 sigpause 3pmdoc.samples- 7 7 1402354220 A - - gz tutorial sampler for writing BSD manuals with -mdoctcl_finalizenotifierTcl_FinalizeNotifier 3 3 1448008822 B - - gz the event queue and notifier interfacesbno_plot- 1 1 1565305324 A - - gz generate interactive 3D plot of IO blocks and sizesendrpcent- 3 3 1402354209 A - - gz get RPC entrycsinl 3- 3 3 1402354208 B - - gz complex sine functiongetcurx- 3x 3 1720626759 B - - gz get curses cursor and window coordinates, attributesip-macsec- 8 8 1601484048 A - - gz MACsec device configurationsecolor.conf- 5 5 1585710994 A - - gz The SELinux color configuration filexgeticvaluesXGetICValues 3 3 1710950786 B - - gz set and obtain XIC valuesx509_name_entry_create_by_objX509_NAME_ENTRY_create_by_OBJ 3ssl 3 1721417624 B - - gz X509_NAME_ENTRY utility functionsxcb_test_get_version- 3 3 1540917640 A - - gz euform-describe-stack-resource- 1 1 1484780705 A - - gz Describe a resource from a particular stacknexttowardf 3p- 3p 3p 1402354216 B - - gz next representable floating-point numberid 1- 1 1 1605565487 A - - gz print real and effective user and group IDssetpgrp 3p- 3p 3p 1402354218 A - - gz set the process group IDtcl_registerchannelTcl_RegisterChannel 3 3 1448008822 B - - gz buffered I/O facilities using channelswcschr wcschr 3 wcschr 3pevp_mdc2EVP_mdc2 3ssl 3 1721417624 B - - gz EVP digest routinesdracut-pre-pivot.service- 8 8 1601481478 A - - gz runs the dracut hooks before switching rootxcb_xc_misc_get_xid_list_reply- 3 3 1540917640 B - - gz xcb_change_keyboard_control- 3 3 1540917640 A - - gz tcl_untracecommandTcl_UntraceCommand 3 3 1448008822 B - - gz monitor renames and deletes of a commandxtvagetvaluesXtVaGetValues 3 3 1501646833 B - - gz obtain and set widget resourcesnet::ssleayNet::SSLeay 3pm 3 1501668898 A - - gz Perl extension for using OpenSSLxfillarcXFillArc 3 3 1710950786 B - - gz fill rectangles, polygons, or arcsgetutent_r- 3 3 1402354209 B - - gz access utmp file entriesxcb_get_modifier_mapping_keycodes_end- 3 3 1540917640 B - - gz s_client- 1ssl 1 1699892201 A - - gz SSL/TLS client programmkdir 2- 2 2 1402354205 A - - gz create a directorymodule::build::notesModule::Build::Notes 3pm 3 1402373050 A - - gz Create persistent distribution configuration modulestiffisupsampledTIFFIsUpSampled 3tiff 3 1729525165 C TIFFquery - gz template::manualTemplate::Manual 3pm 3 1402357151 A - - gz Template Toolkit User Manualjoin join n join 1p join 1datetime::locale::soDateTime::Locale::so 3pm 3 1402390636 A - - gz encode::unicode::utf7Encode::Unicode::UTF7 3pm 3 1402368577 A - - gz - UTF-7 encodingmkdirat- 2 2 1402354205 A - - gz create a directory relative to a directory file descriptorbn_mul_comba8- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionswcscpy 3p- 3p 3p 1402354219 A - - gz copy a wide-character stringtypes.db- 5 5 1671356063 A - - gz Data-set specifications for the system statistics collection daemon collectdxkbkeyactionsptrXkbKeyActionsPtr 3 3 1710950785 A - - gz Returns a pointer to the two-dimensional array of key actions associated with the key corresponding to keycodeexp 3- 3 3 1402354208 A - - gz base-e exponential functionxstorenamedcolorXStoreNamedColor 3 3 1710950786 B - - gz set colorsgetutmpx- 3 3 1402354210 B - - gz copy utmp structure to utmpx, and vice versatabsizeTABSIZE 3x 3 1720626759 B - - gz curses global variablesd2i_dsa_pubkeyd2i_DSA_PUBKEY 3ssl 3 1721417624 B - - gz DSA key encoding and parsing functions.xdestroyicXDestroyIC 3 3 1710950786 A - - gz create, destroy, and obtain the input method of an input contextxcb_x_print_print_input_selected_reply- 3 3 1540917640 B - - gz template::plugin::scalarTemplate::Plugin::Scalar 3pm 3 1402357151 A - - gz call object methods in scalar contextcacertdir_rehash- 8 8 1501837535 A - - gz simple script to create or update hash links to certificate files in a directorylocale::codes::apiLocale::Codes::API 3pm 3 1402383324 A - - gz a description of the callable function in each moduleavc_reset- 3 3 1585710994 B - - gz userspace SELinux AVC setup and teardownssl_get_ex_data_x509_store_ctx_idxSSL_get_ex_data_X509_STORE_CTX_idx 3ssl 3 1699892223 A - - gz get ex_data index to access SSL structure from X509_STORE_CTXxcb_xevie_start_unchecked- 3 3 1540917640 B - - gz wctob 3p- 3p 3p 1402354219 A - - gz wide-character to single-byte conversionsulogin- 8 8 1612283497 A - - gz Single-user logincosf 3- 3 3 1402354208 B - - gz cosine functionrsyslogd- 8 8 1654010535 A - - gz reliable and extended syslogdtype_regexpTYPE_REGEXP 3x 3 1720626759 B - - gz form system global variablesappconfig::cgiAppConfig::CGI 3pm 3 1402380594 A - - gz Perl5 module for processing CGI script parameters.swab 3- 3 3 1402354212 A - - gz swap adjacent bytesxcb_copy_gc- 3 3 1540917640 A - - gz pthread_getcpuclockid pthread_getcpuclockid 3 pthread_getcpuclockid 3pnexttoward 3p- 3p 3p 1402354216 B - - gz next representable floating-point numberlog10 3p- 3p 3p 1402354216 A - - gz base 10 logarithm functionshadow 5- 5 5 1565319053 A - - gz shadowed password filegetsebool- 8 8 1585710994 A - - gz get SELinux boolean value(s)vmcore_event.conf- 5 5 1601569733 B - - gz configuration file for libreport.perlartistic- 1 1 1698237663 A - - gz the Perl Artistic Licensexcb_x_print_print_select_input_checked- 3 3 1540917640 B - - gz mbrlen 3- 3 3 1402354211 A - - gz determine number of bytes in next multibyte characterunset n- n n 1448008824 A - - gz Delete variablescurs_set- 3x 3 1720626759 B - - gz low-level curses routinessocket n- n n 1448008824 A - - gz Open a TCP network connectionmpx- 2 2 1402354205 B - - gz unimplemented system callssha 1ssl- 1ssl 1 1721417624 B - - gz message digestsrewinddir rewinddir 3 rewinddir 3pxcb_glx_get_fb_configs_unchecked- 3 3 1540917640 B - - gz xcb_glx_get_visual_configs_unchecked- 3 3 1540917640 B - - gz ssl_conf_ctx_clear_flagsSSL_CONF_CTX_clear_flags 3ssl 3 1699892218 A - - gz Set of clear SSL configuration context flagsgit-reflog- 1 1 1722330781 A - - gz Manage reflog informationxcb_xkb_get_indicator_state- 3 3 1540917640 A - - gz pem_read_bio_dsa_pubkeyPEM_read_bio_DSA_PUBKEY 3ssl 3 1721417624 B - - gz PEM routinesxshapecombinemaskXShapeCombineMask 3 3 1448003986 B - - gz X nonrectangular shape functionsposixPOSIX 3pm 3 1698237676 A - - gz Perl interface to IEEE Std 1003.1openlog openlog 3 openlog 3pssl_ctx_freeSSL_CTX_free 3ssl 3 1699892219 A - - gz free an allocated SSL_CTX objectxcb_randr_configure_output_property_checked- 3 3 1540917640 B - - gz mbsrtowcs 3p- 3p 3p 1402354216 A - - gz convert a character string to a wide-character string (restartable)div 3- 3 3 1402354210 A - - gz compute quotient and remainder of an integer divisiontest::builder::moduleTest::Builder::Module 3pm 3 1402359208 A - - gz Base class for test modulescargl 3p- 3p 3p 1402354214 B - - gz complex argument functionsio::handleIO::Handle 3pm 3 1698237674 A - - gz supply object methods for I/O handlesxcb_poly_arc- 3 3 1540917640 A - - gz xcb_randr_get_crtc_gamma- 3 3 1540917640 A - - gz datetime::locale::gaa_ghDateTime::Locale::gaa_GH 3pm 3 1402390634 A - - gz gsdj- 1 1 1605296035 B - - gz Format and print text for DeskJet printer using ghostscriptinch- 3x 3 1720626759 B - - gz get a character and attributes from a curses windowsystemd.preset- 5 5 1711457787 A - - gz Service enablement presetsxcb_render_create_conical_gradient- 3 3 1540917640 A - - gz gettext 1- 1 1 1585708958 A - - gz translate messagesystemd-ask-password-wall.path- 8 8 1711457788 B - - gz Query the user for system passwords on the console and via wallxcb_glx_get_color_table_parameteriv_data_length- 3 3 1540917640 B - - gz tcl_createnamespaceTcl_CreateNamespace 3 3 1448008822 B - - gz manipulate namespacessecurity_check_context_raw- 3 3 1585710994 B - - gz check the validity of a SELinux contextarpd- 8 8 1601484048 A - - gz userspace arp daemon.security_compute_member_raw- 3 3 1585710994 B - - gz query the SELinux policy database in the kerneldmeventd- 8 8 1619616690 A - - gz Device-mapper event daemonbooleans booleans 8 booleans 5datetime::locale::sr_latnDateTime::Locale::sr_Latn 3pm 3 1402390635 A - - gz ldconfig- 8 8 1402354220 A - - gz configure dynamic linker run-time bindingsxcb_xfixes_copy_region- 3 3 1540917640 A - - gz evp_des_ede3_ofbEVP_des_ede3_ofb 3ssl 3 1721417624 B - - gz EVP cipher routinesrfkill- 8 8 1540923064 A - - gz tool for enabling and disabling wireless devicescontinue 1p- 1p 1p 1402354203 A - - gz continue for, while, or until looptcl_createthreadTcl_CreateThread 3 3 1448008822 B - - gz Tcl thread supportlocaltime_r localtime_r 3 localtime_r 3pmemcmp 3- 3 3 1402354211 A - - gz compare memory areas/etc/odbcinst.ini- 5 5 1565320310 C odbcinst.ini - gz ulimit 2- 2 2 1402354206 C unimplemented - gz xrecolorcursorXRecolorCursor 3 3 1710950786 A - - gz manipulate cursorstcltest- n n 1448008824 A - - gz Test harness support code and utilitiesmsgsnd 2- 2 2 1402354205 B - - gz System V message queue operationsmvinwstr- 3x 3 1720626759 B - - gz get a string of wchar_t characters from a curses windowsetlogmask 3p- 3p 3p 1402354218 B - - gz control system logxtsendselectionrequestXtSendSelectionRequest 3 3 1501646833 B - - gz bundle multiple selection conversion requests into a single request using MULTIPLE targetmq_notify 3p- 3p 3p 1402354216 A - - gz notify process that a message is available (REALTIME)winwstr- 3x 3 1720626759 B - - gz get a string of wchar_t characters from a curses windowwarning::debuginfo- 7stap 7 1602605484 A - - gz systemtap missing-debuginfo warningshash::util::fieldhashHash::Util::FieldHash 3pm 3 1698237674 A - - gz Support for Inside-Out Classesfrexpf 3p- 3p 3p 1402354215 B - - gz extract mantissa and exponent from a double precision numbertap::formatter::console::sessionTAP::Formatter::Console::Session 3pm 3 1439389327 A - - gz Harness output delegate for default console outputmallopt- 3 3 1402354210 A - - gz set memory allocation parametersperlio::mmapPerlIO::mmap 3pm 3 1698237676 A - - gz Memory mapped IOdatetime::locale::yo_ngDateTime::Locale::yo_NG 3pm 3 1402390632 A - - gz xsubpp- 1 1 1501652625 A - - gz compiler to convert Perl XS code into C codetk_dialog- n n 1448008912 A - - gz Create modal dialog and wait for responsetcl_adderrorinfoTcl_AddErrorInfo 3 3 1448008821 A - - gz retrieve or record information about errors and other return optionsfminf 3- 3 3 1402354209 B - - gz determine minimum of two floating-point numbersec 3ssl- 3ssl 3 1699892216 A - - gz Elliptic Curve functionsxcreatepixmapXCreatePixmap 3 3 1710950786 A - - gz create or destroy pixmapsdatetime::infiniteDateTime::Infinite 3pm 3 1501652188 A - - gz Infinite past and future DateTime objectsxcb_xf86dri_query_direct_rendering_capable- 3 3 1540917640 A - - gz catanl catanl 3 catanl 3pdb_stat- 1 1 1481720641 A - - gz Display environment statisticsstrtoumax 3- 3 3 1402354212 B - - gz convert string to integerxcb_input_xi_change_cursor- 3 3 1540917640 A - - gz xcb_randr_set_provider_output_source_checked- 3 3 1540917640 B - - gz tcl_getdoubleTcl_GetDouble 3 3 1448008822 B - - gz convert from string to integer, double, or booleantcdrain tcdrain 3 tcdrain 3patanf atanf 3 atanf 3peval n- n n 1448008823 A - - gz Evaluate a Tcl scripthtml::headparserHTML::HeadParser 3pm 3 1402367721 A - - gz Parse section of a HTML documentfcconfigsetsysrootFcConfigSetSysRoot 3 3 1520307172 A - - gz Set the system root directorygetmaxy- 3x 3 1720626759 B - - gz get curses cursor and window coordinates, attributesprlimit 2- 2 2 1402354205 B - - gz get/set resource limitstcl_getchannelTcl_GetChannel 3 3 1448008822 B - - gz buffered I/O facilities using channelsdatetime::locale::vi_vnDateTime::Locale::vi_VN 3pm 3 1402390633 A - - gz break 1p- 1p 1p 1402354203 A - - gz exit from for, while, or until loopgit-sh-i18n- 1 1 1722330783 A - - gz Git's i18n setup code for shell scriptstlsv1_methodTLSv1_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionsdatetime::locale::zh_hans_moDateTime::Locale::zh_Hans_MO 3pm 3 1402390644 A - - gz systemd-hibernate-resume@.service- 8 8 1711457788 A - - gz Resume from hibernationxcb_xkb_get_state- 3 3 1540917640 A - - gz grub2-editenv- 1 1 1722985065 A - - gz Manage the GRUB environment block.tiffreadbuffersetupTIFFReadBufferSetup 3tiff 3 1729525165 C TIFFbuffer - gz fputc 3- 3 3 1402354209 B - - gz output of characters and stringsperl5160delta- 1 1 1698237662 A - - gz what is new for perl v5.16.0xcb_xv_set_port_attribute- 3 3 1540917640 A - - gz getloadavg- 3 3 1402354209 A - - gz get system load averagesxcb_sync_query_alarm_unchecked- 3 3 1540917640 B - - gz xcreatefontcursorXCreateFontCursor 3 3 1710950786 A - - gz create cursorsdatetime::locale::tlDateTime::Locale::tl 3pm 3 1402390635 A - - gz xcb_set_close_down_mode_checked- 3 3 1540917640 B - - gz tap::parser::sourceTAP::Parser::Source 3pm 3 1439389327 A - - gz a TAP source & meta data about itsys_sem.h- 0p 0p 1402354203 A - - gz XSI semaphore facilityiscursorkeyIsCursorKey 3 3 1710950786 A - - gz keysym classification macroscolors n- n n 1448008912 A - - gz symbolic color names recognized by Tktype type 1p type 1bind9-config- 1 1 1725373375 A - - gz Get information about the installed version of ISC BINDlchown32- 2 2 1402354205 B - - gz change ownership of a fileconfig-util- 5 5 1585713596 A - - gz Common PAM configuration file for configuration utilitiessethostid 3- 3 3 1402354209 A - - gz get or set the unique identifier of the current hosthttp::requestHTTP::Request 3pm 3 1402363906 A - - gz HTTP style request messagexcb_dri3_get_supported_modifiers_unchecked- 3 3 1540917640 B - - gz openlog 3p- 3p 3p 1402354218 A - - gz control system log_tracecchar_t- 3x 3 1720626759 B - - gz curses debugging routinesxcb_input_device_focus_in_event_t- 3 3 1540917640 A - - gz auvirt- 8 8 1565265961 A - - gz a program that shows data related to virtual machinesxclipboxXClipBox 3 3 1710950786 B - - gz generate regionsxcb_input_change_keyboard_device- 3 3 1540917640 A - - gz lwres_buffer_putuint8- 3 3 1725373371 B - - gz lightweight resolver buffer managementmke2fs.conf- 5 5 1711459141 A - - gz Configuration file for mke2fseuare-accountaliascreate- 1 1 1484780705 A - - gz Create an alias for an account, a.k.a. an account namesemaphore.h- 0p 0p 1402354203 A - - gz semaphores (REALTIME)bn_is_zeroBN_is_zero 3ssl 3 1721417624 B - - gz BIGNUM comparison and test functionsleaveok- 3x 3 1720626759 B - - gz curses output optionspl2pm- 1 1 1698237679 A - - gz Rough tool to translate Perl4 .pl files to Perl5 .pm modules.strcasecmp 3- 3 3 1402354212 A - - gz compare two strings ignoring casemountd- 8 8 1634214566 A - - gz NFS mount daemonposix_trace_get_attr- 3p 3p 1402354217 B - - gz retrieve the trace attributes or trace status (TRACING)datetime::locale::en_asDateTime::Locale::en_AS 3pm 3 1402390641 A - - gz xcb_glx_query_extensions_string_reply- 3 3 1540917640 B - - gz pod::escapesPod::Escapes 3pm 3 1698237390 A - - gz - for resolving Pod E<...> sequencesgrub-bios-setup- 8 8 1722985065 C grub2-bios-setup - gz euca-release-address- 1 1 1484780705 A - - gz Release an elastic IP addresssg_read_long- 8 8 1585715378 A - - gz send a SCSI READ LONG commandxcb_x_print_print_query_screens_unchecked- 3 3 1540917640 B - - gz datetime::locale::ru_uaDateTime::Locale::ru_UA 3pm 3 1402390639 A - - gz euca-revoke- 1 1 1484780705 A - - gz Remove a rule from a security grouphtonl 3- 3 3 1402354210 B - - gz convert values between host and network byte ordernfsd 8- 8 8 1634214566 A - - gz NFS server processdigest::shaDigest::SHA 3pm 3 1501652407 A - - gz Perl extension for SHA-1/224/256/384/512xcb_dri3_fence_from_fd- 3 3 1540917640 A - - gz ssl_ctx_use_serverinfo_fileSSL_CTX_use_serverinfo_file 3ssl 3 1721417624 B - - gz use serverinfo extensionssl_ctx_sess_connect_renegotiateSSL_CTX_sess_connect_renegotiate 3ssl 3 1721417624 B - - gz obtain session cache statisticsxencrypt- 3 3 1402354213 B - - gz RFS password encryptiongetwchar_unlocked- 3 3 1402354210 B - - gz nonlocking stdio functionsinstall 1- 1 1 1605565487 A - - gz copy files and set attributesteamdctl- 8 8 1544345838 A - - gz team daemon control tool#key_defined- 3x 3 1715932339 A - - gz check if a keycode is definedendnetent 3p- 3p 3p 1402354214 B - - gz network database functionsgrub-mkrelpath- 1 1 1722985065 C grub2-mkrelpath - gz systemd-initctl- 8 8 1711457788 B - - gz /dev/initctl compatibilitydbi::gofer::transport::streamDBI::Gofer::Transport::stream 3pm 3 1402362412 A - - gz DBD::Gofer server-side transport for streampopen 3- 3 3 1402354211 A - - gz pipe stream to or from a processctan 3- 3 3 1402354208 A - - gz complex tangent functionx509_name_entry_create_by_nidX509_NAME_ENTRY_create_by_NID 3ssl 3 1721417624 B - - gz X509_NAME_ENTRY utility functionstcl_splitlistTcl_SplitList 3 3 1448008822 B - - gz manipulate Tcl listsmodule::build::compatModule::Build::Compat 3pm 3 1402373050 A - - gz Compatibility with ExtUtils::MakeMakerecdsa_verifyECDSA_verify 3ssl 3 1721417624 B - - gz Elliptic Curve Digital Signature Algorithmexecl execl 3 execl 3pmkfs.fat- 8 8 1573511351 A - - gz create an MS-DOS filesystem under Linuxd2i_privatekeyd2i_PrivateKey 3ssl 3 1699892216 A - - gz decode and encode functions for reading and saving EVP_PKEY structures.doveadm-fs- 1 1 1724195936 A - - gz Interact with the abstract mail storage filesystemhmac HMAC 3ssl hmac 3sslpod::simple::rtfPod::Simple::RTF 3pm 3 1402365606 A - - gz - format Pod as RTFgetservbyname 3p- 3p 3p 1402354215 B - - gz network services database functionseuare-instanceprofilegetattributes- 1 1 1484780705 A - - gz Display an instance profile's ARN and GUIDxcb_alloc_color_cells- 3 3 1540917640 A - - gz package::constantsPackage::Constants 3pm 3 1698237390 A - - gz List all constants declared in a packagexcb_destroy_notify_event_t- 3 3 1540917640 A - - gz a window is destroyedxcb_xfixes_get_cursor_image_reply- 3 3 1540917640 B - - gz pod::simple::xhtmlPod::Simple::XHTML 3pm 3 1402365606 A - - gz - format Pod as validating XHTMLxcb_randr_get_monitors_reply- 3 3 1540917640 B - - gz perlplan9- 1 1 1698237667 A - - gz Plan 9-specific documentation for Perlres_init- 3 3 1402354211 B - - gz resolver routineswmouse_trafo- 3x 3 1720626759 B - - gz mouse interface through curseslwp::authen::ntlmLWP::Authen::Ntlm 3pm 3 1402363153 A - - gz Library for enabling NTLM authentication (Microsoft) in LWPbio_get_conn_ipBIO_get_conn_ip 3ssl 3 1721417624 B - - gz connect BIOnano- 1 1 1402375673 A - - gz Nano's ANOther editor, an enhanced free Pico cloneterm::capTerm::Cap 3pm 3 1698237677 A - - gz Perl termcap interfacesepol_genusers- 3 3 1540935374 A - - gz Generate a new binary policy image with a customized user configurationhmac_updateHMAC_Update 3ssl 3 1721417624 B - - gz HMAC message authentication codestat 1- 1 1 1605565487 A - - gz display file or file system statusgit-ls-files- 1 1 1722330782 A - - gz Show information about files in the index and the working treextmapwidgetXtMapWidget 3 3 1501646833 A - - gz map and unmap widgetsfcpatternvabuildFcPatternVaBuild 3 3 1520307172 C FcPatternBuild - gz xcb_glx_read_pixels_data_end- 3 3 1540917640 B - - gz euare-usergetattributes- 1 1 1484780705 A - - gz Display a user's ARN and GUIDftpusers- 5 5 1402354219 A - - gz list of users that may not log in via the FTP daemonsvcudp_create- 3 3 1402354212 B - - gz library routines for remote procedure callsgit-column- 1 1 1722330779 A - - gz Display data in columnsposix_fallocate 3- 3 3 1402354211 A - - gz allocate file spacekbd_mode- 1 1 1637771557 A - - gz report or set the keyboard modexcb_dri3_get_supported_modifiers_screen_modifiers- 3 3 1540917640 B - - gz fcpatternaddstringFcPatternAddString 3 3 1520307172 C FcPatternAdd-Type - gz ipc::cmdIPC::Cmd 3pm 3 1402363274 A - - gz finding and running system commands made easypod::text::termcapPod::Text::Termcap 3pm 3 1402343774 A - - gz Convert POD data to ASCII text with format escapesbatch batch 1p batch 1sys/select.h- 0p 0p 1402354203 C select.h - gz sed 1p- 1p 1p 1402354204 A - - gz stream editorpthread_exit pthread_exit 3 pthread_exit 3pxcb_xkb_get_compat_map- 3 3 1540917640 A - - gz msgcat msgcat n msgcat 1use_extended_names- 3x 3 1720626759 B - - gz miscellaneous curses extensionsblkdiscard- 8 8 1612283497 A - - gz discard sectors on a devicetemplate::exceptionTemplate::Exception 3pm 3 1402357152 A - - gz Exception handling class moduleio_destroy- 2 2 1402354205 A - - gz destroy an asynchronous I/O contextxcb_xinerama_query_version_reply- 3 3 1540917640 B - - gz getgrnam_r 3p- 3p 3p 1402354215 B - - gz search group database for a namedatetime::locale::en_us_posixDateTime::Locale::en_US_POSIX 3pm 3 1402390633 A - - gz lio_listio 3p- 3p 3p 1402354216 A - - gz list directed I/O (REALTIME)autom4te- 1 1 1402378884 A - - gz Generate files and scripts thanks to M4xcb_selinux_set_selection_create_context_checked- 3 3 1540917640 B - - gz getprotoent 3- 3 3 1402354212 A - - gz get protocol entryisunordered 3- 3 3 1402354210 B - - gz floating-point relational tests without exception for NaNdbi::gofer::executeDBI::Gofer::Execute 3pm 3 1402362413 A - - gz Executes Gofer requests and returns Gofer responsesbc 1p- 1p 1p 1402354203 A - t gz arbitrary-precision arithmetic languagemysqlcheck- 1 1 1697025034 A - t gz a table maintenance programxeviqueryversionXeviQueryVersion 3 3 1448003986 B - - gz X Extended Visual Information functionsset_form_userptr- 3x 3 1720626759 B - - gz associate application data with a form itemioperm- 2 2 1402354205 A - - gz set port input/output permissionsssh-copy-id- 1 1 1707907012 A - - gz use locally available keys to authorise logins on a remote machinexcb_store_named_color- 3 3 1540917640 A - - gz euca-delete-nat-gateway- 1 1 1484780705 A - - gz Delete a VPC NAT gatewayextutils::constantExtUtils::Constant 3pm 3 1698237673 A - - gz generate XS code to import C header constantsbridge- 8 8 1601484048 A - - gz show / manipulate bridge addresses and devicesdatetime::locale::mlDateTime::Locale::ml 3pm 3 1402390632 A - - gz euwatch-list-metrics- 1 1 1484780705 A - - gz Show a list of monitoring metricssmartcard-auth-ac- 5 5 1501837535 B - - gz Common configuration files for PAMified services written by authconfig(8)lwres_gethostbyname2- 3 3 1725373371 B - - gz lightweight resolver get network host entryttysttyS 4 4 1402354219 A - - gz serial terminal lineseuca-delete-route-table- 1 1 1484780705 A - - gz Delete a VPC route tablesyslog.h- 0p 0p 1402354203 A - - gz definitions for system error loggingcwdCwd 3pm 3 1402373475 A - - gz get pathname of current working directorygit-write-tree- 1 1 1722330781 A - - gz Create a tree object from the current indextailq_removeTAILQ_REMOVE 3 3 1402354207 B - - gz implementations of lists, tail queues, and circular queuesfcdircachevalidFcDirCacheValid 3 3 1520307172 A - - gz check directory cachetbl- 1 1 1533764324 A - - gz format tables for troffgethostbyname 3p- 3p 3p 1402354215 A - - gz network host database functionscloselog 3p- 3p 3p 1402354214 B - - gz control system loggetcchar- 3x 3 1720626759 B - - gz Get a wide character string and rendition from a cchar_t or set a cchar_t from a wide-character stringxmapwindowXMapWindow 3 3 1710950786 A - - gz map windowsurn- 7 7 1402354220 B - - gz uniform resource identifier (URI), including a URL or URNsched_getparam 2- 2 2 1402354205 B - - gz set and get scheduling parametersmd4_updateMD4_Update 3ssl 3 1721417624 B - - gz MD2, MD4, and MD5 hash functionsopterr 3- 3 3 1402354211 B - - gz Parse command-line optionsfegetenv 3- 3 3 1402354209 B - - gz floating-point rounding and exception handlingxshapecombineshapeXShapeCombineShape 3 3 1448003986 B - - gz X nonrectangular shape functionsrsa_get_ex_dataRSA_get_ex_data 3ssl 3 1721417624 B - - gz add application specific data to RSA structuresxcb_selinux_get_property_create_context_context_length- 3 3 1540917640 B - - gz sys/mman.h- 0p 0p 1402354203 C sys_mman.h - gz isxdigit isxdigit 3 isxdigit 3pmb_cur_maxMB_CUR_MAX 3 3 1402354207 A - - gz maximum length of a multibyte character in the current localepow 3- 3 3 1402354211 A - - gz power functionsar 1- 1 1 1696859909 A - - gz create, modify, and extract from archivesxcb_sync_set_priority- 3 3 1540917640 A - - gz datetime::locale::tgDateTime::Locale::tg 3pm 3 1402390638 A - - gz xdrawlineXDrawLine 3 3 1710950786 A - - gz draw lines, polygons, and line structurexcb_unmap_window- 3 3 1540917640 A - - gz Makes a window invisiblexdg-icon-resource- 1 1 1478360732 A - - gz command line tool for (un)installing icon resourcesdbus-test-tool- 1 1 1601481284 A - - gz D-Bus traffic generator and test toolislessgreater 3- 3 3 1402354210 B - - gz floating-point relational tests without exception for NaNsystemd-fstab-generator- 8 8 1711457788 A - - gz Unit generator for /etc/fstabperl583delta- 1 1 1698237663 A - - gz what is new for perl v5.8.3euca-monitor-instances- 1 1 1484780705 A - - gz Enable monitoring for one or more instancestcl_eofTcl_Eof 3 3 1448008822 B - - gz buffered I/O facilities using channelsxcb_input_xi_delete_property- 3 3 1540917640 A - - gz xcmscielabquerymaxlcXcmsCIELabQueryMaxLC 3 3 1710950786 B - - gz obtain the CIE L*a*b* coordinatespthread_attr_setschedpolicy pthread_attr_setschedpolicy 3 pthread_attr_setschedpolicy 3pssl_cipher_get_versionSSL_CIPHER_get_version 3ssl 3 1721417624 B - - gz get SSL_CIPHER propertiesdef_shell_mode- 3x 3 1720626759 B - - gz low-level curses routinesxcb_randr_set_crtc_gamma_checked- 3 3 1540917640 B - - gz form_new- 3x 3 1720626759 A - - gz create and destroy formsident- 1 1 1585714623 A - - gz identify RCS keyword strings in filesmvaddchnstr- 3x 3 1720626759 B - - gz add a string of characters (and attributes) to a curses windowlwp-request- 1 1 1402363153 A - - gz Simple command line user agentrhtsupport.conf- 5 5 1585834715 A - - gz configuration file for libreport.ctanf ctanf 3 ctanf 3pluseradd- 1 1 1381614967 A - - gz Add an usermd2_finalMD2_Final 3ssl 3 1721417624 B - - gz MD2, MD4, and MD5 hash functionsdatetime::locale::ur_inDateTime::Locale::ur_IN 3pm 3 1402390634 A - - gz curs_termattrs- 3x 3 1715932338 A - - gz curses environment query routinestcl_validateallmemoryTcl_ValidateAllMemory 3 3 1448008821 B - - gz Validated memory allocation interfacewprintw- 3x 3 1720626759 B - - gz print formatted output in curses windowsdatetime::locale::trvDateTime::Locale::trv 3pm 3 1402390637 A - - gz xcb_glx_get_separable_filter_reply- 3 3 1540917640 B - - gz getpwent 3- 3 3 1402354212 A - - gz get password file entrypthread_cleanup_pop 3p- 3p 3p 1402354217 B - - gz establish cancellation handlersalias 1p- 1p 1p 1402354203 A - - gz define or display aliasescollectd-exec- 5 5 1671356063 A - - gz Documentation of collectd's "exec plugin"xkbfreegeomkeyaliasesXkbFreeGeomKeyAliases 3 3 1710950785 A - - gz Free geometry key aliasesxcb_glx_make_current_reply- 3 3 1540917640 B - - gz xcb_selinux_get_property_create_context_unchecked- 3 3 1540917640 B - - gz pack-old- n n 1448008912 A - - gz Obsolete syntax for packer geometry managerssl_ctx_get_cert_storeSSL_CTX_get_cert_store 3ssl 3 1699892220 A - - gz manipulate X509 certificate verification storagedoveadm-help- 1 1 1724195936 A - - gz Show information about doveadm commandssetvbuf 3- 3 3 1402354212 B - - gz stream buffering operationsgetconf- 1p 1p 1402354203 A - - gz get configuration valuesstat stat 2 stat 1 stat 3pncurses- 3x 3 1715932340 A - t gz CRT screen handling and optimization packagepthread_setcanceltype 3p- 3p 3p 1402354217 B - - gz set cancelability statebio_eofBIO_eof 3ssl 3 1721417624 B - - gz BIO control operationsdatetime::locale::st_lsDateTime::Locale::st_LS 3pm 3 1402390643 A - - gz dir- 1 1 1605565487 A - - gz list directory contentsxlisthostsXListHosts 3 3 1710950785 B - - gz control host access and host control structurexcb_selinux_get_client_context_context- 3 3 1540917640 B - - gz setsid 1- 1 1 1612283497 A - - gz run a program in a new sessionmantisbt.conf- 5 5 1585834715 A - - gz configuration file for libreport.xcb_input_get_device_modifier_mapping- 3 3 1540917640 A - - gz mktime mktime 3 mktime 3pctermid 3- 3 3 1402354208 A - - gz get controlling terminal namextnametowidgetXtNameToWidget 3 3 1501646833 A - - gz translating strings to widgets or widgets to windowsmalloc_trim- 3 3 1402354210 A - - gz release free memory from the top of the heapdefaultcolormapofscreenDefaultColormapOfScreen 3 3 1710950785 B - - gz screen information functions and macroslwres_getipnodebyname- 3 3 1725373371 B - - gz lightweight resolver nodename / address translation APIxcb_x_print_print_get_document_data_data_end- 3 3 1540917640 B - - gz ssl_add_client_caSSL_add_client_CA 3ssl 3 1721417624 B - - gz set list of CAs sent to the client when requesting a client certificateio::socket::ipIO::Socket::IP 3pm 3 1523406931 A - - gz A drop-in replacement for "IO::Socket::INET" supporting both IPv4 and IPv6shutdown 2- 2 2 1402354206 A - - gz shut down part of a full-duplex connectionfcnameunregisterconstantsFcNameUnregisterConstants 3 3 1520307172 A - - gz Unregister symbolic constantspchrt- 1 1 1478382707 A - - gz git-rev-parse- 1 1 1722330781 A - - gz Pick out and massage parameterspthread_attr_getscope 3- 3 3 1402354211 B - - gz set/get contention scope attribute in thread attributes objectxkbfindoverlayforkeyXkbFindOverlayForKey 3 3 1710950785 A - - gz Find the alternate name by using the primary name for a key that is part of an overlaystrxfrm strxfrm 3 strxfrm 3pnanf 3p- 3p 3p 1402354216 B - - gz return quiet NaNbn_blinding_thread_idBN_BLINDING_thread_id 3ssl 3 1721417624 B - - gz blinding related BIGNUM functions.bio_putsBIO_puts 3ssl 3 1721417624 B - - gz BIO I/O functionscbrtl 3- 3 3 1402354207 B - - gz cube root functioncpanplus::backend::rvCPANPLUS::Backend::RV 3pm 3 1402392266 A - - gz return value objectsxcb_input_allow_device_events_checked- 3 3 1540917640 B - - gz nftw 3- 3 3 1402354211 B - - gz file tree walklwres_buffer_add- 3 3 1725373371 A - - gz lightweight resolver buffer managementxcb_glx_get_lightiv_data- 3 3 1540917640 B - - gz siglongjmp siglongjmp 3 siglongjmp 3pmke2fs- 8 8 1711459141 A - - gz create an ext2/ext3/ext4 filesystemlwres_string_parse- 3 3 1725373371 B - - gz lightweight resolver utility functionsevp_pkey_ctx_set_signature_mdEVP_PKEY_CTX_set_signature_md 3ssl 3 1721417624 B - - gz algorithm specific control operationsfcatomicreplaceorigFcAtomicReplaceOrig 3 3 1520307172 A - - gz replace original with newfnmatch fnmatch 3 fnmatch 3pxcb_dri2_destroy_drawable_checked- 3 3 1540917640 B - - gz link 1p- 1p 1p 1402354204 A - - gz call link functionmrand48_r- 3 3 1402354211 B - - gz generate uniformly distributed pseudo-random numbers reentrantlyslogin- 1 1 1707907012 A - - gz OpenSSH SSH client (remote login program)euca-delete-route- 1 1 1484780705 A - - gz Delete a route from a VPC route table_tiffrealloc_TIFFrealloc 3tiff 3 1729525165 C TIFFmemory - gz exp10l- 3 3 1402354208 B - - gz base-10 exponential functionfcrangegetdoubleFcRangeGetDouble 3 3 1520307172 A - - gz Get the range in doubleremove 3p- 3p 3p 1402354218 A - - gz remove a filedatetime::locale::ar_lyDateTime::Locale::ar_LY 3pm 3 1402390641 A - - gz repoquery- 1 1 1589300860 A - - gz query information from Yum repositoriesfputs fputs 3 fputs 3pputc_unlocked putc_unlocked 3 putc_unlocked 3pyaml::typesYAML::Types 3pm 3 1402340435 A - - gz Marshall Perl internal data types to/from YAMLxcb_input_device_presence_notify_event_t- 3 3 1540917640 A - - gz evp_encodeblockEVP_EncodeBlock 3ssl 3 1721417624 B - - gz EVP base 64 encode/decode routinesdesktop-file-validate- 1 1 1445965787 A - - gz Validate desktop entry filescpanplus::shell::defaultCPANPLUS::Shell::Default 3pm 3 1402392266 A - - gz the default CPANPLUS shellfcrangecreateintegerFcRangeCreateInteger 3 3 1520307172 A - - gz create a range object for integereuscale-execute-policy- 1 1 1484780705 A - - gz Manually set an auto-scaling instance's health statusrand 1ssl- 1ssl 1 1699892201 C sslrand - gz xcb_warp_pointer- 3 3 1540917640 A - - gz move mouse pointertrue true 1p true 1tanh tanh 3 tanh 3pnexttoward nexttoward 3 nexttoward 3pdbi::const::getinfo::ansiDBI::Const::GetInfo::ANSI 3pm 3 1402362412 A - - gz ISO/IEC SQL/CLI Constants for GetInfoxcb_xv_grab_port_reply- 3 3 1540917640 B - - gz dreml- 3 3 1402354208 B - - gz floating-point remainder functionif_indextoname 3p- 3p 3p 1402354216 A - - gz map a network interface index to its corresponding namedatetime::locale::it_chDateTime::Locale::it_CH 3pm 3 1402390635 A - - gz expr expr n expr 1p expr 1traceroute6- 8 8 1533764426 B - - gz print the route packets trace to network hostgetservbyport getservbyport 3 getservbyport 3pxcb_glx_destroy_pixmap- 3 3 1540917640 A - - gz fmaf fmaf 3 fmaf 3pEnchant 1- 1 1 1402339606 C enchant - gz fpclassify fpclassify 3 fpclassify 3pxfontsoffontsetXFontsOfFontSet 3 3 1710950786 A - - gz obtain fontset informationxcb_dpms_get_version_unchecked- 3 3 1540917640 B - - gz tcl_dictobjputkeylistTcl_DictObjPutKeyList 3 3 1448008821 B - - gz manipulate Tcl objects as dictionariesxcb_xv_port_notify_event_t- 3 3 1540917640 A - - gz bitmappadBitmapPad 3 3 1710950785 B - - gz image format functions and macrosutf-8 7- 7 7 1402354220 A - - gz an ASCII compatible multibyte Unicode encodingxcb_put_image_checked- 3 3 1540917640 B - - gz fonttosfnt- 1 1 1540918774 A - - gz Wrap a bitmap font in a sfnt (TrueType) wrapperqsort 3- 3 3 1402354211 A - - gz sort an arraycpanplus::internals::searchCPANPLUS::Internals::Search 3pm 3 1402392266 A - - gz internals for searching for modulesqiflush_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionacoshf 3- 3 3 1402354207 B - - gz inverse hyperbolic cosine functionxcb_sync_query_fence- 3 3 1540917640 A - - gz openssl.cnf- 5ssl 5 1721417624 B - - gz OpenSSL CONF library configuration filesfclangsetcontainsFcLangSetContains 3 3 1520307172 A - - gz check langset subset relationobj_nid2lnOBJ_nid2ln 3ssl 3 1721417624 B - - gz ASN1 object utility functionsmysqldumpslow- 1 1 1697025034 A - - gz Summarize slow query log filesxcb_glx_get_mapfv_unchecked- 3 3 1540917640 B - - gz dbd::gofer::transport::pipeoneDBD::Gofer::Transport::pipeone 3pm 3 1402362411 A - - gz DBD::Gofer client transport for testingtgammaf tgammaf 3 tgammaf 3ptemplate::baseTemplate::Base 3pm 3 1402357151 A - - gz Base class module implementing common functionalitytcl_newintobjTcl_NewIntObj 3 3 1448008822 B - - gz manipulate Tcl objects as integer valueslog1p log1p 3 log1p 3pdatetime::locale::ha_ghDateTime::Locale::ha_GH 3pm 3 1402390635 A - - gz xsizehintsXSizeHints 3 3 1710950785 B - t gz allocate size hints structure and set or read a window's WM_NORMAL_HINTS propertyssl_ctx_add1_chain_certSSL_CTX_add1_chain_cert 3ssl 3 1721417624 A - - gz extra chain certificate processingmsgcomm- 1 1 1465650365 A - - gz match two message catalogseuca-bundle-vol- 1 1 1484780705 A - - gz Prepare this machine's filesystem for use in the cloudmatchpathcon_fini- 3 3 1585710994 B - - gz get the default SELinux security context for the specified path from the file contexts configurationgcc- 1 1 1601432236 A - - gz GNU project C and C++ compilerxtownselectionXtOwnSelection 3 3 1501646833 A - - gz set selection ownerinsertln- 3x 3 1720626759 B - - gz delete and insert lines in a curses windowmmap2- 2 2 1402354205 A - - gz map files or devices into memorychmod 1- 1 1 1605565487 A - - gz change file mode bitscpupower-monitor- 1 1 1731045638 A - - gz Report processor frequency and idle statisticsfegetexceptflag 3p- 3p 3p 1402354215 A - - gz get and set floating-point status flagsaio_cancel 3- 3 3 1402354207 A - - gz cancel an outstanding asynchronous I/O requesttcl_setservicemodeTcl_SetServiceMode 3 3 1448008822 B - - gz the event queue and notifier interfacesxcb_xkb_list_components_symbols_iterator- 3 3 1540917640 B - - gz xkbcomputerowboundsXkbComputeRowBounds 3 3 1710950785 A - - gz Update the bounding box of a rowlldiv 3- 3 3 1402354208 A - - gz compute quotient and remainder of an integer divisiontld_get_4- 3 3 1448125246 A - - gz API functiontap::parser::iteratorfactoryTAP::Parser::IteratorFactory 3pm 3 1439389327 A - - gz Figures out which SourceHandler objects to use for a given SourcexcmstekhvcquerymaxvsamplesXcmsTekHVCQueryMaxVSamples 3 3 1710950786 B - - gz obtain the TekHVC coordinatesfmin fmin 3 fmin 3pln 1p- 1p 1p 1402354204 A - - gz link filesxrmuniquequarkXrmUniqueQuark 3 3 1710950786 A - t gz manipulate resource quarksuri URI 3pm uri 7euca-replace-network-acl-entry- 1 1 1484780705 A - - gz Replace an entry in a VPC network ACLxcb_input_allow_device_events- 3 3 1540917640 A - - gz appconfigAppConfig 3pm 3 1402380594 A - - gz Perl5 module for reading configuration files and parsing command line arguments.xcb_glx_get_mapfv_data_end- 3 3 1540917640 B - - gz lio_listio lio_listio 3 lio_listio 3pmagic- 5 5 1601482102 A - - gz file command's magic pattern fileec_key_dupEC_KEY_dup 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_KEY objects.cuserid- 3 3 1402354208 B - - gz get usernamexcb_xfixes_create_region_from_bitmap- 3 3 1540917640 A - - gz xcb_input_xi_get_selected_events_masks_length- 3 3 1540917640 B - - gz bootctl- 1 1 1711457787 A - - gz Control the firmware and boot manager settingsgit-checkout-index- 1 1 1722330782 A - - gz Copy files from the index to the working treewins_nwstr- 3x 3 1720626759 B - - gz insert a wide-character string into a curses windowxkbsasetgroupXkbSASetGroup 3 3 1710950785 A - - gz Sets the group_XXX field of act from the group index grpsetgid 3p- 3p 3p 1402354218 A - - gz set-group-IDsystemd-cgtop- 1 1 1711457787 A - - gz Show top control groups by their resource usagesadc- 8 8 1697208922 A - - gz System activity data collector.lh_free- 3ssl 3 1721417624 B - - gz dynamic hash tablemvwinsch- 3x 3 1720626759 B - - gz insert a character before cursor in a curses windowdatetime::timezone::floatingDateTime::TimeZone::Floating 3pm 3 1565315819 A - - gz A time zone that is always localgit-add- 1 1 1722330782 A - - gz Add file contents to the indexxcmscieuvyXcmsCIEuvY 3 3 1710950786 B - - gz Xcms color structurexcb_glx_get_color_table_parameterfv- 3 3 1540917640 A - - gz xcb_dri3_open- 3 3 1540917640 A - - gz xcb_x_print_create_context- 3 3 1540917640 A - - gz digest::md5::fileDigest::MD5::File 3pm 3 1390574261 A - - gz Perl extension for getting MD5 sums for files and urls.sg_write_long- 8 8 1585715378 A - - gz send SCSI WRITE LONG commandgio- 1 1 1523070240 A - - gz GIO commandline toolmlockall 2- 2 2 1402354205 B - - gz lock and unlock memoryxfsdump- 8 8 1701960892 A - - gz XFS filesystem incremental dump utilitybcmp 3- 3 3 1402354207 A - - gz compare byte sequenceschpasswd- 8 8 1565319053 A - - gz update passwords in batch modepcre_assign_jit_stack- 3 3 1501643278 A - - gz Perl-compatible regular expressionspod::manPod::Man 3pm 3 1402343774 A - - gz Convert POD data to formatted *roff inputb::deparseB::Deparse 3pm 3 1698237671 A - - gz Perl compiler backend to produce perl codelwres_getipnodebyaddr- 3 3 1725373371 B - - gz lightweight resolver nodename / address translation APIhtml::pullparserHTML::PullParser 3pm 3 1402367721 A - - gz Alternative HTML::Parser interfacebsearch bsearch 3 bsearch 3pxfs_copy- 8 8 1601488312 A - - gz copy the contents of an XFS filesystempwrite64- 2 2 1402354205 B - - gz read from or write to a file descriptor at a given offsettcl_attemptreallocTcl_AttemptRealloc 3 3 1448008821 B - - gz allocate or free heap memoryxcb_query_tree_unchecked- 3 3 1540917640 B - - gz query the window treeasn1_object_newASN1_OBJECT_new 3ssl 3 1721417624 A - - gz object allocation functionsdatetime::locale::fr_mcDateTime::Locale::fr_MC 3pm 3 1402390637 A - - gz datetime::locale::rootDateTime::Locale::root 3pm 3 1402390634 A - - gz place- n n 1448008912 A - - gz Geometry manager for fixed or rubber-sheet placementfuser 1p- 1p 1p 1402354203 A - - gz list process IDs of all processes that have one or more files opencsinhl csinhl 3 csinhl 3ppoll poll 2 poll 3pp$msgc remque 3- 3 3 1402354211 B - - gz insert/remove an item from a queueperllol- 1 1 1698237666 A - - gz Manipulating Arrays of Arrays in Perlsystemd-vconsole-setup.service- 8 8 1711457788 A - - gz Configure the virtual console at bootxcb_glx_get_fb_configs_reply- 3 3 1540917640 B - - gz xcb_selinux_set_property_create_context- 3 3 1540917640 A - - gz datetime::locale::es_niDateTime::Locale::es_NI 3pm 3 1402390644 A - - gz fini_selinuxmnt- 3 3 1585710994 B - - gz initialize the global variable selinux_mntxfontstructXFontStruct 3 3 1710950786 B - - gz load or unload fonts and font metric structurespipe pipe 2 pipe 7 pipe 3pmath_error- 7 7 1402354220 A - - gz detecting errors from mathematical functionsmv 1- 1 1 1605565487 A - - gz move (rename) filesjrand48 3- 3 3 1402354210 B - - gz generate uniformly distributed pseudo-random numbersssl_ctx_use_certificate_asn1SSL_CTX_use_certificate_ASN1 3ssl 3 1721417624 B - - gz load certificate and key dataevp_aes_192_gcmEVP_aes_192_gcm 3ssl 3 1721417624 B - - gz EVP cipher routinesxcb_randr_get_screen_resources_modes_iterator- 3 3 1540917640 B - - gz ctan ctan 3 ctan 3pevp_md_ctx_mdEVP_MD_CTX_md 3ssl 3 1721417624 B - - gz EVP digest routinessemanage- 8 8 1585713889 A - - gz SELinux Policy Management toolpcrecallout- 3 3 1501643278 A - - gz Perl-compatible regular expressionsxcb_glx_get_integerv_data_length- 3 3 1540917640 B - - gz git Git 3pm git 1tkvars- n n 1448008912 A - - gz Variables used or set by Tktgetflag- 3x 3 1720626759 B - - gz direct curses interface to the terminfo capability databaseregcomp regcomp 3 regcomp 3pyum-groups-manager- 1 1 1589300860 A - - gz create and edit yum's group metadatadomainname- 1 1 1573511276 B - - gz show or set the system's NIS/YP domain namecollectd-nagios- 1 1 1671356063 A - - gz Nagios plugin for querying collectdmblen 3- 3 3 1402354210 A - - gz determine number of bytes in next multibyte characterxcb_selinux_list_properties_unchecked- 3 3 1540917640 B - - gz logrotate.conf- 5 5 1585711568 B - - gz rotates, compresses, and mails system logspr29_8z- 3 3 1448125246 A - - gz API functionEncode::MIME::Name 3pm- 3pm 3 1402368577 A - - gz - internally used by Encodesem_destroy 3- 3 3 1402354212 A - - gz destroy an unnamed semaphorexcb_glx_get_pixel_mapusv_data_end- 3 3 1540917640 B - - gz jnf- 3 3 1402354210 B - - gz Bessel functions of the first kindxcb_render_trapezoids_checked- 3 3 1540917640 B - - gz extutils::mm_dosExtUtils::MM_DOS 3pm 3 1402365499 A - - gz DOS specific subclass of ExtUtils::MM_Unixform_field_info- 3x 3 1720626759 A - - gz retrieve field characteristicsbn_subBN_sub 3ssl 3 1721417624 B - - gz arithmetic operations on BIGNUMsfopen fopen 3 fopen 3pxcb_glx_get_tex_envfv_data- 3 3 1540917640 B - - gz lwres_getrrsetbyname- 3 3 1725373371 A - - gz retrieve DNS recordsxtextpropertyXTextProperty 3 3 1710950786 B - - gz convert string lists and text property structureresource.h- 0p 0p 1402354203 B - - gz definitions for XSI resource operationsnew_panel- 3x 3 1720626759 B - - gz panel stack extension for cursescabs 3p- 3p 3p 1402354214 A - - gz return a complex absolute valueeuca-create-dhcp-options- 1 1 1484780705 A - - gz Create a VPC DHCP option setxcb_glx_get_lightiv_unchecked- 3 3 1540917640 B - - gz tcgetattr tcgetattr 3 tcgetattr 3pxcb_get_atom_name_reply- 3 3 1540917640 B - - gz mkfontdir- 1 1 1540918774 A - - gz create an index of X font files in a directoryilogb ilogb 3 ilogb 3pdoveadm-altmove- 1 1 1724195936 A - - gz Move matching mails to the alternative storage (dbox-only)rsa_freeRSA_free 3ssl 3 1721417624 B - - gz allocate and free RSA objectsfmodl fmodl 3 fmodl 3pdatetime::locale::ku_arab_iqDateTime::Locale::ku_Arab_IQ 3pm 3 1402390632 A - - gz lwres_context_freemem- 3 3 1725373371 B - - gz lightweight resolver context managementclose close n close 2 close 3pnss-policy-check- 1 1 1730826028 A - - gz nss-policy-check policy-fileperl5121delta- 1 1 1698237662 A - - gz what is new for perl v5.12.1O  z "next@ \U"dbi:'@ Z0N"xcb_@ #msgc Gy[#x509 H"drem@ <>7"if_iA T{3"dateuA 3)b"exprA "tracA HNm"gets0B "6"xcb_`B t"fmafB *;"EnchB !N"fpclB ;Џ"xfonB C"xcb_LC !"tcl_C U)"xcb_C c"bitm'D DB"utf-uD IV"xcb_D "fontD J\R"qsorLE ("cpan|E Z"qiflE ;E#ssl_[ a5D"acos8F =\ '"xcb_~F s#bn_b W"openF FS{ "fclaG H"obj_ZG D"mysqG 9h"xcb_G s1h"dbd:'H a}"tgamH .-"tempH ]#("tcl_1I ON"log1I {z"dateI 3Ű"xsizI uR^"ssl_qJ V7"msgcJ 5"eucaK Qq#sha2E |"matc}K ݻ"gccL 9^Q "xtowKL ;tW"inseL Fz"mmapL ;2"chmo%M 0 X"cpup]M I"fegeM D'"aio_N I>#bunde \h"tcl_dN S~#syst E!#getp- 2u"xcb_N ) #bn_nl 8ө"xkbcO MR"lldioO P~#xfre >&!#rand <."tld_O '$#gpro@ :~"tcl_ Tk#tcl_ P "x509h S"xml:֐ N#"xcb_0 0V"nran{ QE#sem. 3ao#getf /#"findב K"fpat* =c"iso_s ^!"systܒ 3$x"putp' 6ޮ "mysqf >+i"dpkg ?f2"inne 7ɝ#fputW ;q#xcb_ )-#date 03x#tap:# r i#join D0"vgcrN 0)E"pod: LF "xcb_ P#fmtm 9."getc :η#rdma, $"{x"httpb B?ƨ"wcpc Wb"xfs_ 39"xcb_K ."xdra ?_"pcreݖ >6"evp_3 a"fwri 5ǩ"xkbd lN="boolk C?A"yaml ["a64l "tcl_4 R "xcb_ *O;"fgcoܙ =S@"perl# >~"rc4 k ,EX"caco @"sepe Ia"text QX1`"xcb_q " #xscrU P"syst Vw"xcb_ )]"xcb_` r,"menu B"eulb֜ U-Ӕ#unic Hz "posiG y{]"irqbߝ fV"set_P <Nno#expm Hn"geth On"xcb_ "l,#fclo( P7#flexC >[D,#rege > #xcb_ "sess6 JG#test L.I#pem_\ ?"O#atol ^?"gete -g0"x509 \ºZ"vgimr E"even R|"tcl_$ V"winc \82"loca ,ӗ"if.h 5 ȫ"at.d+ H5#lega 9:"gets{ 8Q"pthr P"mvad( \><"sin ݓ"svct F-]"evp_ >C"xcb_A #evenG ddu"xcb_q {2"item G"xcb_ C"dirf# ?2R"xcb_h #/<"mvwc R.="ed 1 &F#conj v"btow- E~l#secu J#temp ^ "xcb_{ tcl_unicharncasecmpTcl_UniCharNcasecmp 3 3 1448008823 B - - gz routines for manipulating UTF-8 stringsx509_verify_param_set_timeX509_VERIFY_PARAM_set_time 3ssl 3 1721417624 B - - gz X509 verification parametersxml::parserXML::Parser 3pm 3 1402361425 A - - gz A perl module for parsing XML documentsxcb_selinux_get_device_create_context_unchecked- 3 3 1540917640 B - - gz nrand48 3p- 3p 3p 1402354216 B - - gz generate uniformly distributed pseudo-random numbersfindbinFindBin 3pm 3 1698237674 A - - gz Locate directory of original perl scriptfpathconf 3- 3 3 1402354211 A - - gz get configuration values for filesiso_8859_6- 7 7 1402354220 B - t gz ISO 8859-6 character set encoded in octal, decimal, and hexadecimalsystemd-suspend.service- 8 8 1711457788 A - - gz System sleep state logicputpwent- 3 3 1402354211 A - - gz write a password file entrymysql_secure_installation- 1 1 1697025034 A - - gz improve MySQL installation securitydpkg-statoverride- 1 1 1642076111 A - - gz override ownership and mode of filesinnetgr- 3 3 1402354212 A - - gz handle network group entriesvgcreate- 8 8 1619616701 A - - gz Create a volume grouppod::perldoc::tortfPod::Perldoc::ToRtf 3pm 3 1402388268 A - - gz let Perldoc render Pod as RTFxcb_ungrab_keyboard_checked- 3 3 1540917640 B - - gz getchar 3- 3 3 1402354209 B - - gz input of characters and stringshttp::daemonHTTP::Daemon 3pm 3 1540929264 A - - gz a simple http server classwcpcpy- 3 3 1402354213 A - - gz copy a wide-character string, returning a pointer to its endxfs_info- 8 8 1605296068 B - - gz expand an XFS filesystemxcb_selinux_set_window_create_context_checked- 3 3 1540917640 B - - gz xdrawarcsXDrawArcs 3 3 1710950785 B - te gz draw arcs and arc structurepcre_get_substring_list- 3 3 1501643278 A - - gz Perl-compatible regular expressionsevp_pkey_cmp_parametersEVP_PKEY_cmp_parameters 3ssl 3 1721417624 B - - gz public key parameter and comparison functionsfwrite_unlocked- 3 3 1402354209 B - - gz nonlocking stdio functionsxkbdevicebellXkbDeviceBell 3 3 1710950785 A - t gz Rings the bell on an X input extension device or the default keyboardbooleans 5- 5 5 1585710994 A - - gz The SELinux booleans configuration filesyaml::tinyYAML::Tiny 3pm 3 1402377744 A - - gz Read/Write YAML files with as little code as possiblea64l a64l 3 a64l 3ptcl_tracecommandTcl_TraceCommand 3 3 1448008822 B - - gz monitor renames and deletes of a commandxcb_xfixes_delete_pointer_barrier_checked- 3 3 1540917640 B - - gz fgconsole- 1 1 1637771557 A - - gz print the number of the active VT.perlembed- 1 1 1698237664 A - - gz how to embed perl in your C programrc4 3ssl- 3ssl 3 1699892217 A - - gz RC4 encryptioncacosl cacosl 3 cacosl 3psepermit.conf- 5 5 1585713591 A - - gz configuration file for the pam_sepermit moduletext::soundexText::Soundex 3pm 3 1402353181 A - - gz Implementation of the soundex algorithm.xcb_get_modifier_mapping_keycodes- 3 3 1540917640 B - - gz systemd-rfkill@.service- 8 8 1711457788 A - - gz Load and save the RF kill switch state at boot and shutdownxcb_randr_get_screen_resources_unchecked- 3 3 1540917640 B - - gz xcb_lookup_color- 3 3 1540917640 A - - gz menu 3x- 3x 3 1715932339 A - t gz curses extension for programming menuseulb-detach-lb-from-subnets- 1 1 1484780705 A - - gz [VPC only] Remove a load balancer from one or more subnetsposix_spawnattr_getschedpolicy- 3p 3p 1402354217 A - - gz get and set the spawn-schedpolicy attribute of a spawn attributes object (ADVANCED REALTIME)irqbalance- 1 1 1565308660 A - - gz distribute hardware interrupts across processors on a multiprocessor systemset_panel_userptr- 3x 3 1720626759 B - - gz panel stack extension for cursesgethostid 3- 3 3 1402354212 A - - gz get or set the unique identifier of the current hostxcb_glx_create_glx_pixmap_checked- 3 3 1540917640 B - - gz sessreg- 1 1 1502476988 A - - gz manage utmpx/wtmpx entries for non-init clientsgetegid 2- 2 2 1402354204 B - - gz get group identitylocale.h- 0p 0p 1402354203 A - - gz category macros a p Ww bf_cp>E execMp )> tc-hp P{ xcb_p@ pthrq4 pthrZq (ɞ tcl_q <y> xcb_q' fpatr @. rsa_arX: strtr wcsnr GN vgreHs 0@ xprosTv ec_psz{8 datet3% pthrt;s]l cpanuSrh umouufm updwu; dateu0>u lwre-v NӼ rsa_vD xcmsvC/ sigw2w@m gvimw cc iso_w ^[ vfscUx C- readx accexO inwsxS: key_@y A ssl_yf~V xrmszD f xcb_[zI xcb_z&͖ getuz 3 m" bio_ {= seli^{|< objc{ I F remqN| 0O4_ shmg| E( pkcs|,(L xcb_ }"%V menuF}?t cima} 8)] xml:}N dige6~ 9Z echo|~0 proc~ 4W atan~ A& floo;s dbi:Vf  strn@U pthrO/Q isbl <h xshmM tcl_3F 5 cms_Y logby dhclCo lexgN@R^ xcb_)x ssl_\Ӭ xcb_JZ scal odbc L8z slee? tcl_A =e ps w x509 P set_9 extu>`Z* lwreF ui_o 9 xrmsPMym xcb_t posiX7 tcl_UV xcb_'Ӷ seti @^= bio_LG|a rema <7 fwid 3r eufo,-`_ optom3 ioctwS cter M xcb_- xcb_@ b xmod{es iswa =` pack8h] io:: Oliz pam_3] xcb_b+~M xequ Mi ispr <\~ mincHI mbst w sche,HX= clnt F xfs_K Nڥ ssl_h! tcl_&S3 loca cg[2 l64aY$+ avc_v Cl ssl_ #|Yt xcb_b )E wcto E sulo , cosf *VE rsysJ 85 type Bl appc \!z swabD . xcb_y  pthr 2* next E log1; 7т shad{ 1~ gets 7k vmco <"( perlD 4_ xcb_ 'R mbrl P 5 m!unse +!cursS 5﹁!sock 8\>\!mpx 5!sha -Y!rewiA ",j!xcb_e !!xcb_ %9!ssl_ a+!git-[ 4rU!xcb_ u\!pem_ @i!xsha) K!posi BЋ!open s!ssl_ I40!xcb_B ,q!mbsr `C!div PWp!testL L 2!carg 7/!wmem <D!xcb_D H!xcb_l !date 4!gsdj V!inchH OO:!syst 5nJ!xcb_ # !gett ,sUY!systT Z?!xcb_ 0!tcl_ Bꩋ!secun B.!secu J&!dmevf 5=X!arpd 06M!bool !date 5.!ldco ET!scal _T!blocf I !vgco >!asin -\!pthr 2J!xsyn` GG!paus }!sys/ (!stty ; ;!:D >I9!xins m!ssl_ X&!xcb_s Vґ!xkbs T!s2pG *mb@!gethu C|Я!sest >!get_ [&!catau !QK!getd >!Read U-*!stanB Rs!wpri ~ 1!xkbf #!evp_K NO/!fcfo 5J!xcb_ l!date% 1hlw!sg_fl WP!tcl_ V{{!date8 3!euar AB!logl 5!sha u~!mall 5+!cryp@ Yb!cgi: S(!xcb_ 8tp !stroU 8d:!xcb_ 6,!atan !!geto (},C!icon, s-!xcb_S !fute 2!semo B!xcb_ $!xcb_W 9Y!cfse j!xuni D!evp_ ;W!dateH 8B!xtis F{W!xtva O!iswp\ d!xcb_} !rege #!fc 1 >7>!cgdi N!atofZ Jk!xmov Y!xtdi C &~!cpanj Xf!cpan cv!fope[ 2`!xset ^=!attr H|mV!form[ ?R!rais C !upda >ǽ!contN K!strt G!euar V[!/etc: %/!eulbp 1!xcha l!xcb_3 6!io:: Kscalbf- 3 3 1402354212 B - - gz multiply floating-point number by integral power of radix (OBSOLETE)blockdev- 8 8 1612283497 A - - gz call block device ioctls from the command linevgconvert- 8 8 1619616701 A - - gz Change volume group metadata formatasinl asinl 3 asinl 3ppthread_attr_setstack pthread_attr_setstack 3 pthread_attr_setstack 3pxsynchronizeXSynchronize 3 3 1710950786 A - - gz enable or disable synchronizationpause pause 2 pause 3psys/socket.h- 0p 0p 1402354203 C sys_socket.h - gz stty 1p- 1p 1p 1402354204 A - t gz set the options for a terminal:- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)xinsertmodifiermapentryXInsertModifiermapEntry 3 3 1710950785 B - - gz manipulate keyboard encoding and keyboard encoding structuressl_conf_cmd_argvSSL_CONF_cmd_argv 3ssl 3 1699892218 A - - gz SSL configuration command line processing.xcb_screensaver_suspend- 3 3 1540917640 A - - gz xkbsetmodactionvmodsXkbSetModActionVMods 3 3 1710950785 A - - gz Sets the vmods1 and vmods2 fields of act using the vmods format of an Xkb modifier descriptions2p- 1 1 1698237679 B - - gz a stream editorgethostid 3p- 3p 3p 1402354215 A - - gz get an identifier for the current hostsestatus.conf- 5 5 1585713889 A - - gz The sestatus(8) configuration file.get_wstr- 3x 3 1720626759 B - - gz get an array of wide characters from a curses terminal keyboardcatanhl catanhl 3 catanhl 3pgetdate_err 3p- 3p 3p 1402354215 B - t gz convert user format date and timeReadonly 3pm- 3pm 3 1402353358 A - - gz Facility for creating read-only scalars, arrays, hashes.standout- 3x 3 1720626759 B - - gz curses character and window attribute control routineswprintf wprintf 3 wprintf 3pxkbforcebellXkbForceBell 3 3 1710950785 A - t gz Overrides user preference settings for audible bells to ring the bell on the default keyboardevp_decodeblockEVP_DecodeBlock 3ssl 3 1721417624 B - - gz EVP base 64 encode/decode routinesfcfontmatchFcFontMatch 3 3 1520307172 A - - gz Return best fontxcb_alloc_color_cells_masks_end- 3 3 1540917640 B - - gz datetime::locale::tigDateTime::Locale::tig 3pm 3 1402390635 A - - gz sg_format- 8 8 1585715378 A - - gz format or resize a SCSI disk (perhaps change its block size)tcl_commandtraceinfoTcl_CommandTraceInfo 3 3 1448008822 A - - gz monitor renames and deletes of a commanddatetime::locale::dz_btDateTime::Locale::dz_BT 3pm 3 1402390636 A - - gz euare-groupmod- 1 1 1484780705 A - - gz Change the name and/or path of a grouplogl logl 3 logl 3psha sha 3ssl sha 1sslmalloc_hook- 3 3 1402354210 A - - gz malloc debugging variablescrypt::rc4Crypt::RC4 3pm 3 1408386253 A - - gz Perl implementation of the RC4 encryption algorithmcgi::prettyCGI::Pretty 3pm 3 1402342275 A - - gz module to produce nicely formatted HTML codexcb_query_extension_reply- 3 3 1540917640 B - - gz check if extension is presentstropts.h- 0p 0p 1402354203 A - - gz STREAMS interface (STREAMS)xcb_dri3_get_supported_modifiers_window_modifiers_end- 3 3 1540917640 B - - gz atan atan 3 atan 3pgetopt getopt 3 getopt 3pm getopt 1 getopt 3piconv_open iconv_open 3 iconv_open 3pxcb_randr_get_output_primary- 3 3 1540917640 A - - gz futex 7- 7 7 1402354219 A - - gz fast user-space lockingsemodule_package- 8 8 1585713889 A - - gz Create a SELinux policy module package.xcb_change_keyboard_control_checked- 3 3 1540917640 B - - gz xcb_shm_put_image- 3 3 1540917640 A - - gz cfsetospeed cfsetospeed 3 cfsetospeed 3pxuniquecontextXUniqueContext 3 3 1710950786 B - - gz associative look-up routinesevp_rc2_ofbEVP_rc2_ofb 3ssl 3 1721417624 B - - gz EVP cipher routinesdatetime::locale::ha_latn_ngDateTime::Locale::ha_Latn_NG 3pm 3 1402390638 A - - gz logout 3- 3 3 1402354210 B - - gz write utmp and wtmp entriesssl_get_ssl_methodSSL_get_ssl_method 3ssl 3 1721417624 B - - gz choose a new TLS/SSL methoddoveadm-index- 1 1 1724195936 A - - gz Index mailboxeseuscale-describe-auto-scaling-notification-types- 1 1 1484780705 A - - gz List all notification types supported by the servicexkbgetxlibcontrolsXkbGetXlibControls 3 3 1710950785 A - t gz Determines the current state of the Library Controlsform_fields- 3x 3 1720626759 B - - gz make and break connections between fields and formsxcb_dri3_buffers_from_pixmap_reply- 3 3 1540917640 B - - gz xset- 1 1 1502476988 A - - gz user preference utility for Xld-linux- 8 8 1402354220 B - - gz dynamic linker/loadergetdomainname- 2 2 1402354205 A - - gz get/set NIS domain namefcvt fcvt 3 fcvt 3pi2d_ecpkparameters_bioi2d_ECPKParameters_bio 3ssl 3 1721417624 B - - gz Functions for decoding and encoding ASN1 representations of elliptic curve entitiesendhostent endhostent 3 endhostent 3pbkgrndset- 3x 3 1720626759 B - - gz curses window complex background manipulation routinescpan::debugCPAN::Debug 3pm 3 1698237384 A - - gz internal debugging for CPAN.pmperlmpeix- 1 1 1698237666 A - - gz Perl/iX for HP e3000 MPEdes_xcbc_encryptDES_xcbc_encrypt 3ssl 3 1721417624 B - - gz DES encryptionzip- 1 1 1213663180 A - - gz package and compress (archive) filesenviron 3p- 3p 3p 1402354215 A - - gz execute a fileiswlower 3- 3 3 1402354210 A - - gz test for lowercase wide charactermenu_driver- 3x 3 1715932339 A - - gz command-processing loop of the menu systemxcb_xvmc_destroy_surface- 3 3 1540917640 A - - gz fma 3p- 3p 3p 1402354215 A - - gz floating-point multiply-addpselect 3p- 3p 3p 1402354217 B - - gz synchronous I/O multiplexingxcb_dri3_buffer_from_pixmap- 3 3 1540917640 A - - gz tcl_ischannelregisteredTcl_IsChannelRegistered 3 3 1448008821 B - - gz procedures for creating and manipulating channelsxcb_list_properties_unchecked- 3 3 1540917640 B - - gz wcstok 3p- 3p 3p 1402354219 A - - gz split a wide-character string into tokensaccept 3p- 3p 3p 1402354214 A - - gz accept a new connection on a sockettimezone 3p- 3p 3p 1402354219 B - t gz set timezone conversion informationabrt-python- 5 5 1601569731 A - t gz abrt-python DocumentationxtiswidgetXtIsWidget 3 3 1501646833 B - - gz obtain and verify a widget's classxtvaappinitializeXtVaAppInitialize 3 3 1501646833 B - - gz initialize, open, or close a displayiswpunct iswpunct 3 iswpunct 3pxcb_xv_ungrab_port- 3 3 1540917640 A - - gz regex regex 3 regex 7fc 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)cgdisk- 8 8 1393783057 A - - gz Curses-based GUID partition table (GPT) manipulatoratof 3p- 3p 3p 1402354214 A - - gz convert a string to a double-precision numberxmoveresizewindowXMoveResizeWindow 3 3 1710950785 B - t gz configure windows and window changes structurextdirectconvertXtDirectConvert 3 3 1501646833 B - - gz invoke resource converterscpanplus::internals::utilsCPANPLUS::Internals::Utils 3pm 3 1402392266 A - - gz convenience functions for CPANPLUScpanplus::dist::autobundleCPANPLUS::Dist::Autobundle 3pm 3 1402392266 A - - gz distribution class for installation snapshotsfopencookie- 3 3 1402354209 A - - gz opening a custom streamxsettransientforhintXSetTransientForHint 3 3 1710950786 A - - gz set or read a window's WM_TRANSIENT_FOR propertyattr 1- 1 1 1523407242 A - - gz extended attributes on XFS filesystem objectsform_request_by_name- 3x 3 1720626759 B - - gz handle printable form request namesraise 3p- 3p 3p 1402354217 A - - gz send a signal to the executing processupdate-smart-drivedb- 8 8 1585715574 A - - gz update smartmontools drive databasecontext_free- 3 3 1585710994 B - - gz Routines to manipulate SELinux security contextsstrtoimax strtoimax 3 strtoimax 3peuare-accountuploadpolicy- 1 1 1484780705 A - - gz [Eucalyptus cloud admin only] Attach a policy to an account/etc/hosts.equiv- 5 5 1402354219 C hosts.equiv - gz eulb-delete-lb- 1 1 1484780705 A - - gz Delete a load balancerxchangekeyboardmappingXChangeKeyboardMapping 3 3 1710950786 A - - gz manipulate keyboard encoding and keyboard encoding structurexcb_dri3_get_supported_modifiers_screen_modifiers_end- 3 3 1540917640 B - - gz wmemchr 3p- 3p 3p 1402354219 A - - gz find a wide character in memoryx509_name_entry_countX509_NAME_entry_count 3ssl 3 1721417624 B - - gz X509_NAME lookup and enumeration functionsvgimport- 8 8 1619616701 A - - gz Register exported volume group with systemeventmaskofscreenEventMaskOfScreen 3 3 1710950785 B - - gz screen information functions and macrostcl_externaltoutfTcl_ExternalToUtf 3 3 1448008821 B - - gz procedures for creating and using encodingswinchstr- 3x 3 1720626759 B - - gz get a string of characters (and attributes) from a curses windowif.h- 0p 0p 1402354203 A - - gz sockets local interfacesat.deny- 5 5 1652889240 A - - gz determine who can submit jobs via at or batchgetservbyname_r- 3 3 1402354209 B - - gz get service entry (reentrant)pthread_attr_init 3p- 3p 3p 1402354217 A - - gz destroy and initialize the thread attributes objectmvaddnstr- 3x 3 1720626759 B - - gz add a string of characters to a curses window and advance cursorsin sin 3 sin 3psvctcp_create- 3 3 1402354212 B - - gz library routines for remote procedure callsevp_cipherinitEVP_CipherInit 3ssl 3 1721417624 B - - gz EVP cipher routinesxcb_dpms_force_level- 3 3 1540917640 A - - gz xcb_glx_get_mapiv_data- 3 3 1540917640 B - - gz item_userptr- 3x 3 1720626759 B - - gz associate application data with a menu itemxcb_store_colors- 3 3 1540917640 A - - gz dirfd- 3 3 1402354208 A - - gz get directory stream file descriptorxcb_dri2_connect_alignment_pad_end- 3 3 1540917640 B - - gz mvwchgat- 3x 3 1720626759 B - - gz curses character and window attribute control routinesed 1p- 1p 1p 1402354203 A - t gz edit textbtowc 3p- 3p 3p 1402354214 A - - gz single byte to wide character conversionxcb_glx_get_tex_parameterfv- 3 3 1540917640 A - - gz msgconv- 1 1 1465650365 A - - gz character set conversion for message catalogx509_check_ip_ascX509_check_ip_asc 3ssl 3 1721417624 B - - gz X.509 certificate matchingssl_ctx_get_ex_new_indexSSL_CTX_get_ex_new_index 3ssl 3 1721417624 A - - gz internal application specific data functionsbn_blinding_create_paramBN_BLINDING_create_param 3ssl 3 1721417624 B - - gz blinding related BIGNUM functions.sha256 SHA256 3ssl sha256 1sslbundle::image::info::xbmBundle::Image::Info::XBM 3pm 3 1402363342 A - - gz XBM (X11 bitmap) support for Image::Infosystemd.index- 7 7 1711457788 A - - gz List all manpages from the systemd projectgetpwuid_r 3- 3 3 1402354209 B - - gz get password file entrybn_num_bytesBN_num_bytes 3ssl 3 1721417624 A - - gz get BIGNUM sizexfreepixmapXFreePixmap 3 3 1710950785 B - - gz create or destroy pixmapsrandom_r- 3 3 1402354212 A - - gz reentrant random number generatorgprof- 1 1 1696859911 A - - gz display call graph profile datatcl_appendformattoobjTcl_AppendFormatToObj 3 3 1448008822 A - - gz manipulate Tcl objects as stringssem.h- 0p 0p 1402354203 B - - gz XSI semaphore facilitygetfsent- 3 3 1402354212 A - - gz handle fstab entriesfputs 3- 3 3 1402354209 B - - gz output of characters and stringsxcb_input_get_device_motion_events_reply- 3 3 1540917640 B - - gz datetime::locale::tnDateTime::Locale::tn 3pm 3 1402390638 A - - gz tap::baseTAP::Base 3pm 3 1439389327 A - - gz Base class that provides common functionality to TAP::Parser and TAP::Harnessjoin 1- 1 1 1605565487 A - - gz join lines of two files on a common fieldfmtmsg 3- 3 3 1402354209 A - - gz print formatted error messagesrdma- 8 8 1601484048 A - - gz RDMA toolxscreenresourcestringXScreenResourceString 3 3 1710950786 B - - gz obtain server resource propertiesunicode_stop- 1 1 1637771557 A - - gz revert keyboard and console from unicode modeexpm1 expm1 3 expm1 3pfclose fclose 3 fclose 3pflex++- 1 1 1573511011 B - - gz the fast lexical analyser generatorregex.h- 0p 0p 1402354203 A - - gz regular expression matching typesxcb_xc_misc_get_xid_list- 3 3 1540917640 A - - gz test::builderTest::Builder 3pm 3 1402359208 A - - gz Backend for building test librariespem_read_rsaprivatekeyPEM_read_RSAPrivateKey 3ssl 3 1721417624 B - - gz PEM routinesatoll atoll 3 atoll 3pconjl conjl 3 conjl 3plegacy_coding- 3x 3 1715932339 A - - gz use terminal's default colorsevent- n n 1448008912 A - - gz Miscellaneous event facilities: define virtual events and generate eventssecurity_compute_create_raw- 3 3 1585710994 B - - gz query the SELinux policy database in the kerneltemplate::configTemplate::Config 3pm 3 1402357152 A - - gz Factory module for instantiating other TT2 modulesdatetime::locale::es_gtDateTime::Locale::es_GT 3pm 3 1402390643 A - - gz O  /  "next@ \U"dbi:'@ Z0N"xcb_@ "drem@ <>7"if_iA T{3"dateuA 3)b"exprA "tracA HNm"gets0B "6"xcb_`B t"fmafB *;"EnchB !N"fpclB ;Џ"xfonB C"xcb_LC !"tcl_C U)"xcb_C c"bitm'D DB"utf-uD IV"xcb_D "fontD J\R"qsorLE ("cpan|E Z"qiflE ;5D"acos8F =\ '"xcb_~F "openF FS{ "fclaG H"obj_ZG D"mysqG 9h"xcb_G s1h"dbd:'H a}"tgamH .-"tempH ]#("tcl_1I ON"log1I {z"dateI 3Ű"xsizI uR^"ssl_qJ V7"msgcJ 5"eucaK Q|"matc}K ݻ"gccL 9^Q "xtowKL ;tW"inseL Fz"mmapL ;2"chmo%M 0 X"cpup]M I"fegeM D'"aio_N Ih"tcl_dN Su"xcb_N )ө"xkbcO MR"lldioO P."tld_O '~"tcl_ T "x509h S"xml:֐ N#"xcb_0 0V"nran{ Q#"findב K"fpat* =c"iso_s ^!"systܒ 3$x"putp' 6ޮ "mysqf >+i"dpkg ?f2"inne 70"vgcrN 0)E"pod: LF "xcb_ ."getc :"{x"httpb B?ƨ"wcpc Wb"xfs_ 39"xcb_K ."xdra ?_"pcreݖ >6"evp_3 a"fwri 5ǩ"xkbd lN="boolk C?A"yaml ["a64l "tcl_4 R "xcb_ *O;"fgcoܙ =S@"perl# >~"rc4 k ,EX"caco @"sepe Ia"text QX1`"xcb_q ""syst Vw"xcb_ )]"xcb_` r,"menu B"eulb֜ Uz "posiG y{]"irqbߝ fV"set_P <Hn"geth On"xcb_ ""sess6 J^?"gete -g0"x509 \ºZ"vgimr E"even R|"tcl_$ V"winc \82"loca ,ӗ"if.h 5 ȫ"at.d+ H:"gets{ 8Q"pthr P"mvad( \><"sin ݓ"svct F-]"evp_ >C"xcb_A du"xcb_q {2"item G"xcb_ C"dirf# ?2R"xcb_h #/<"mvwc R.="ed 1 &v"btow- E "xcb_{ ?9 z#msgc Gy[#x509 HE#ssl_[ as#bn_b Wq#sha2E >#bunde \~#syst E!#getp- 2 #bn_nl 8~#xfre >&!#rand <$#gpro@ :k#tcl_ PE#sem. 3ao#getf /ɝ#fputW ;q#xcb_ )-#date 03x#tap:# r i#join DP#fmtm 9η#rdma, $ #xscrU P-Ӕ#unic HNno#expm l,#fclo( P7#flexC >[D,#rege > #xcb_ G#test L.I#pem_\ ?"O#atol 5#lega 9#evenG dF#conj ~l#secu J#temp ^{#date 3o#tiff ]Q#listo @Eq#exec )-#ctan Aq#xtse3! 8-M#lwpt! B #syst! ET#setu" B]#xque^" >l#cryp" 7^#acos" @dh#posi3# %Rk#asse# B#bio_# H!#xcb_S$ |#xcb_$ 1J#bio_$ Eӓ#pod:1% M6#tcl_% P'|:#bio_% ="#ssl_:& Ot/#sinl& *#sg_s& Z1#tcl_5' a#sela' Y#xcb_B( -}#mbsr( P/O#asin( }#des_) :!9#evp_K) :p#xcb_) q#lzca) C#tie:) 2 q#pcre1* >e#xgra~* 8y #appc* #setvU+ 9>#tcl_+ GH|#iswp+ ;R~#file5, {#newp, :#date - 0#xcb_N- ߞ#ssl_- Q7o#scsi- AH#d2i_;. SE#tail. eā#rsa_/ P,#xcb_}/ #setr/ Iw#pam_0 Hy#dupR0 4~#mq_nd0 P.#ssl_0 O2#atan%1 /#rand\1 ;g#xml:1 E#wsta2 R2#e2im\2 U;#fdop2 +``#dige2 H:#rsa_=3 A7#csqr3 .&#mtre3 >P$#dpms4 I#xdraU4 E #tcl_4 Vh.i#snmp5 E]#xcb_^5 U#fcna5 ;>0A#tcl_5 N=g#xcb_26 S8!#pcree6 > )#disp6 Gj?#pam_7 7qdM#nan I7 0=#xcb_7 5(#tk_p7 , #capt8 e#memow8 TP#pcre8 >P#xcb_$9 x n#read]9 &"V #sha59 -tiffwriterawstripTIFFWriteRawStrip 3tiff 3 1729525165 A - - gz write a strip of raw data to an open TIFF filelistbox- n n 1448008912 A - - gz Create and manipulate listbox widgetsexecvp 3- 3 3 1402354208 B - - gz execute a filectanh 3p- 3p 3p 1402354214 A - - gz complex hyperbolic tangent functionsxtsetargXtSetArg 3 3 1501646833 A - - gz set and merge ArgListslwpLWP 3pm 3 1402363153 A - - gz The World-Wide Web library for Perlsystemd-sleep.conf- 5 5 1711457788 A - - gz Suspend and hibernation configuration filesetupterm- 3x 3 1720626759 B - - gz curses interfaces to terminfo databasexquerypointerXQueryPointer 3 3 1710950786 A - - gz get pointer coordinatescrypt_r- 3 3 1402354208 B - t gz password and data encryptionacoshl 3p- 3p 3p 1402354214 B - - gz inverse hyperbolic cosine functionsposix_trace_eventtypelist_getnext_id- 3p 3p 1402354217 A - - gz iterate over a mapping of trace event types (TRACING)assert 3- 3 3 1402354207 A - - gz abort the program if assertion is falsebio_get_info_callbackBIO_get_info_callback 3ssl 3 1721417624 B - - gz BIO control operationsxcb_glx_get_integerv_unchecked- 3 3 1540917640 B - - gz xcb_x_print_print_set_image_resolution_unchecked- 3 3 1540917640 B - - gz bio_debug_callbackBIO_debug_callback 3ssl 3 1721417624 B - - gz BIO callback functionspod::textPod::Text 3pm 3 1402343774 A - - gz Convert POD data to formatted ASCII texttcl_deletetimerhandlerTcl_DeleteTimerHandler 3 3 1448008821 B - - gz call a procedure at a given timebio_find_typeBIO_find_type 3ssl 3 1721417624 A - - gz BIO chain traversalssl_ctx_set_ssl_versionSSL_CTX_set_ssl_version 3ssl 3 1721417624 A - - gz choose a new TLS/SSL methodsinl 3p- 3p 3p 1402354218 B - - gz sine functionsg_scan- 8 8 1585715378 A - - gz scans sg devices (or SCSI/ATAPI/ATA devices) and prints resultstcl_unicharisgraphTcl_UniCharIsGraph 3 3 1448008823 B - - gz routines for classification of Tcl_UniChar charactersselabel_partial_match- 3 3 1585710994 A - - gz determine whether a direct or partial match is possible on a file path - Only supported on file backend.xcb_randr_get_screen_resources_current_reply- 3 3 1540917640 B - - gz mbsrtowcs 3- 3 3 1402354211 A - - gz convert a multibyte string to a wide-character stringasinhl asinhl 3 asinhl 3pdes_cfb_encryptDES_cfb_encrypt 3ssl 3 1721417624 B - - gz DES encryptionevp_sha512EVP_sha512 3ssl 3 1721417624 B - - gz EVP digest routinesxcb_glx_get_tex_geniv_unchecked- 3 3 1540917640 B - - gz lzcat- 1 1 1655494379 C xzcat - gz tie::extrahashTie::ExtraHash 3pm 3 1698237678 C Tie::Hash - gz pcreprecompile- 3 3 1501643278 A - - gz Perl-compatible regular expressionsxgrabkeyboardXGrabKeyboard 3 3 1710950786 A - - gz grab the keyboardappconfig::getoptAppConfig::Getopt 3pm 3 1402380594 A - - gz Perl5 module for processing command line arguments via delegation to Getopt::Long.setvbuf 3p- 3p 3p 1402354218 A - - gz assign buffering to a streamtcl_setlistobjTcl_SetListObj 3 3 1448008822 B - - gz manipulate Tcl objects as listsiswprint 3- 3 3 1402354210 A - - gz test for printing wide characterfile_contexts.subs_dist- 5 5 1585710994 B - - gz userspace SELinux labeling interface and configuration file format for the file contexts backendnewpad- 3x 3 1720626759 B - - gz create and display curses padsdatetime::locale::aaDateTime::Locale::aa 3pm 3 1402390634 A - - gz xcb_list_installed_colormaps- 3 3 1540917640 A - - gz ssl_ctx_sess_timeoutsSSL_CTX_sess_timeouts 3ssl 3 1721417624 B - - gz obtain session cache statisticsscsi_readcap- 8 8 1585715378 A - - gz do SCSI READ CAPACITY command on disksd2i_x509_crl_biod2i_X509_CRL_bio 3ssl 3 1721417624 B - - gz PKCS#10 certificate request functions.tailq_insert_tailTAILQ_INSERT_TAIL 3 3 1402354207 B - - gz implementations of lists, tail queues, and circular queuesrsa_padding_check_noneRSA_padding_check_none 3ssl 3 1721417624 B - - gz asymmetric encryption paddingxcb_poly_text_16- 3 3 1540917640 A - - gz setresgid32- 2 2 1402354206 B - - gz set real, effective and saved user or group IDpam_umask- 8 8 1585713592 A - - gz PAM module to set the file mode creation maskdup dup 2 dup 3pmq_notify 2- 2 2 1402354205 B - - gz register for notification when a message is availablessl_use_rsaprivatekeySSL_use_RSAPrivateKey 3ssl 3 1721417624 B - - gz load certificate and key dataatanf 3- 3 3 1402354207 B - - gz arc tangent functionrand_r 3p- 3p 3p 1402354217 B - - gz pseudo-random number generatorxml::libxml::xpathcontextXML::LibXML::XPathContext 3pm 3 1402352993 A - - gz XPath Evaluationwstandend- 3x 3 1720626759 B - - gz curses character and window attribute control routinese2image- 8 8 1711459141 A - - gz Save critical ext2/ext3/ext4 filesystem metadata to a filefdopendir- 3 3 1402354211 A - - gz open a directorydigestDigest 3pm 3 1402391631 A - - gz Modules that calculate message digestsrsa_newRSA_new 3ssl 3 1721417624 A - - gz allocate and free RSA objectscsqrtl 3- 3 3 1402354208 B - - gz complex square rootmtree- 5 5 1580221477 A - - gz format of mtree dir hierarchy filesdpmsenableDPMSEnable 3 3 1448003986 A - - gz enables DPMS on the specified displayxdrawpointsXDrawPoints 3 3 1710950786 B - - gz draw points and points structuretcl_opencommandchannelTcl_OpenCommandChannel 3 3 1448008822 B - - gz buffered I/O facilities using channelssnmpd- 8 8 1706198099 A - - gz daemon to respond to SNMP request packets.xcb_glx_swap_buffers- 3 3 1540917640 A - - gz fcnameparseFcNameParse 3 3 1520307172 A - - gz Parse a pattern stringtcl_dictobjputTcl_DictObjPut 3 3 1448008821 B - - gz manipulate Tcl objects as dictionariesxcb_xkb_set_device_info- 3 3 1540917640 A - - gz pcrestack- 3 3 1501643278 A - - gz Perl-compatible regular expressionsdisplaywidthDisplayWidth 3 3 1710950785 B - - gz image format functions and macrospam_open_session- 3 3 1585713595 A - - gz start PAM session managementnan 3- 3 3 1402354211 A - - gz return 'Not a Number'xcb_xf86dri_query_direct_rendering_capable_unchecked- 3 3 1540917640 B - - gz tk_popup- n n 1448008912 A - - gz Post a popup menucapture::tinyCapture::Tiny 3pm 3 1402346503 A - - gz Capture STDOUT and STDERR from Perl, XS or external programsmemoize::expirefileMemoize::ExpireFile 3pm 3 1698237676 A - - gz test for Memoize expiration semanticspcre16- 3 3 1501643278 A - - gz Perl-compatible regular expressionsxcb_input_xi_change_hierarchy- 3 3 1540917640 A - - gz read read n read 2 read 1p read 1 read 3psha512 1ssl- 1ssl 1 1721417624 B - - gz message digestshtobe64- 3 3 1402354210 B - - gz convert values between host and big-/little-endian byte ordercursesCurses 3pm 3 1391093716 A - - gz terminal screen handling and optimizationsetcon_raw- 3 3 1585710994 B - - gz get SELinux security context of a processcrypto_threadid_cmpCRYPTO_THREADID_cmp 3ssl 3 1721417624 B - - gz OpenSSL thread supporttcl_createhashentryTcl_CreateHashEntry 3 3 1448008822 A - - gz procedures to manage hash tablesxcb_shape_get_rectangles_unchecked- 3 3 1540917640 B - - gz chown 3p- 3p 3p 1402354214 A - - gz change owner and group of a fileeuca-modify-instance-type- 1 1 1484780705 A - - gz [Eucalyptus cloud admin only] Modify an instance typeclock_getres clock_getres 3 clock_getres 2 clock_getres 3pxcb_xv_put_video_checked- 3 3 1540917640 B - - gz systemd-modules-load.service- 8 8 1711457788 A - - gz Load kernel modules at bootisendwin_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionxcb_input_get_device_focus_unchecked- 3 3 1540917640 B - - gz noraw_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionmantisbt_formatdup.conf- 5 5 1585834715 A - - gz configuration file for libreport.rsa_padding_check_pkcs1_type_2RSA_padding_check_PKCS1_type_2 3ssl 3 1721417624 B - - gz asymmetric encryption paddingimagebyteorderImageByteOrder 3 3 1710950786 A - - gz image format functions and macrosres_send- 3 3 1402354211 B - - gz resolver routinesxcb_randr_get_crtc_transform_pad_3- 3 3 1540917640 B - - gz pure-certd- 8 8 1730292103 A - - gz TLS certificate agent for Pure-FTPd.psfgettable- 1 1 1637771557 A - - gz extract the embedded Unicode character table from a console fontpthread_attr_setdetachstate pthread_attr_setdetachstate 3 pthread_attr_setdetachstate 3pui_get0_user_dataUI_get0_user_data 3ssl 3 1721417624 B - - gz New User Interfaceva_start va_start 3 va_start 3pmvwinsstr- 3x 3 1720626759 B - - gz insert string before cursor in a curses windowxcb_xevie_end- 3 3 1540917640 A - - gz wcsncat wcsncat 3 wcsncat 3ptkwait- n n 1448008912 A - - gz Wait for variable to change or window to be destroyediptables-restore- 8 8 1601571148 A - - gz Restore IP Tablesnl-qdisc-add- 8 8 1501789719 A - - gz Manage queueing disciplinesxcb_render_query_filters_filters_iterator- 3 3 1540917640 B - - gz ceil 3p- 3p 3p 1402354214 A - - gz ceiling value functionselinux_user_contexts_path- 3 3 1585710994 B - - gz These functions return the paths to the active SELinux policy configuration directories and filesccoshf 3- 3 3 1402354207 B - - gz complex hyperbolic cosinemunlockall 2- 2 2 1402354205 B - - gz lock and unlock memorydaylight 3- 3 3 1402354208 B - - gz initialize time conversion informationlwres_gabnrequest_free- 3 3 1725373371 B - - gz lightweight resolver getaddrbyname message handlingxcb_copy_gc_checked- 3 3 1540917640 B - - gz xcb_input_xi_passive_grab_device_modifiers- 3 3 1540917640 B - - gz tcl_reallocTcl_Realloc 3 3 1448008821 B - - gz allocate or free heap memoryecparam- 1ssl 1 1699892200 A - - gz EC parameter manipulation and generationset_item_userptr- 3x 3 1720626759 B - - gz associate application data with a menu itemgrub-probe- 8 8 1722985065 C grub2-probe - gz nfsdcltrack- 8 8 1634214566 A - - gz NFSv4 Client Tracking Callout Programget_escdelay_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionxcb_selinux_get_window_create_context_reply- 3 3 1540917640 B - - gz xdg-open- 1 1 1478360732 A - - gz opens a file or URL in the user's preferred applicationcsinl csinl 3 csinl 3pssl_ctx_set0_chainSSL_CTX_set0_chain 3ssl 3 1721417624 B - - gz extra chain certificate processingsystemd.device- 5 5 1711457787 A - - gz Device unit configurationtimerclear- 3 3 1402354213 B - - gz timeval operationsfgetc 3- 3 3 1402354209 B - - gz input of characters and stringsevp_pkey_ctx_new_idEVP_PKEY_CTX_new_id 3ssl 3 1721417624 B - - gz public key algorithm context functions.finite- 3 3 1402354210 A - - gz BSD floating-point classification functionsdh_new_methodDH_new_method 3ssl 3 1721417624 B - - gz select DH method_ 7 A rQ&tap:P y&xcmsP Q'chec 9H'secu KvL'pthr` ;l'xcb_ $t)U&fminQ {Y&ln 1Q '4g&xrmuDQ Bt8&uriQ &eucaQ @:&xcb_R &appc@R ujw&xcb_R ZS&lio_R b&magiS <v'fcca MT&ec_k^S jhL&cuseS 'g9&xcb_T %7g%&xcb_BT .&bootT Il]&git-T H!)&wins7U O}u&xkbsU _&setgU )>qS&syst1V Jc&sadcV :צ&lh_fV 0J&mvwiW ObG&dateXW Xf&git-W 9)'wcstI "'at 1m =&xcmsX 8&xcb_QX $S/&xcb_X Q@'has_ ;'coll 9;'ec_k= mk 'sys_ @B+o'perr B~_&xcb_X 3}F&digeX d̦'xcb_L ^G'funzv MJ&sg_weY 7:*&gioY /'5&mlocY 1A&xfsdZ B+&bcmpcZ 1Icm&chpaZ 9Mԩ&pcreZ >&pod:1[ M*r&b::d[ P%l"&lwre[ RXS&htmlJ\ N9&bsea\ Ě&xfs_\ A`V&pwri] T&tcl_n] H&xcb_] 0&asn1^ G{6J&datei^ 3Vs&date^ 2g&plac^ ON&fuseR_ _Q&csin_ Agr&pod: Uc&iso-e ^X&word΀ DV &xtap K}:&getyv DV&ftry j.4&xcb_ 'Q;s&fcco/ <&vsws} Uׂ&grubۂ Tq'getg g'ip-m +3'msgc k&fcst@ Ab&poll_ Pd'ssl_' `l'ssl 'xcb_ 7&date 07z&xgraփ 4Nv&xcb_ $B#q&unic| IQ1'tcl_ v&tc-v؄ 3N_&csh UomC&tk_ol O]}&getcɅ 8x&is_c 4&openI Q-&pem_ >{&mq_u &CX &xcb_- #I}&tgmak 0Mh&qsub ,eo&perlՇ DvM&ctim! Oo&lvscz Hx&ctanɈ 3NB&xcb_ &xshm0 IU&date 0N&tiffˉ Xi(&grow5 Z'd2i_ U +<'tcl_ F3'ssl_Q S@&ec_k u)F'pod: /s'err_ O1&i386# lP&pcre >2&ops Uo'va_co 2FY'ssl_ c>s&git-? Vo'euca F&xcb_ 8ϝ'xcb_| %&iscn <* &pcre@ >oj'xcb_ NO'try- ;Fek&conf U%&extu V'xcb_: -('read >^'git- J>'ntoh M-'lranp Oc &httpV X &gex Ap&seed g&bio_ ?,y&wcsnl U^Yd&tcl_ TS4&creaɏ 8&audig g=&fsck :p&fact )ڷ&euwaP @&posi TP&strt U&pthr= Fh&bsd_ 9q8&getp 24'ccos @|ܯ'tcseJ A'xml: [Ҙ3'tcl_ Q'tcl_r C4'xcb_ ) &xcb_ %#'xcb_ &slk_] ;@sc&j0 3 =&atrm Lt &keyc: 'b}&labso Cpod::pom::nodesPod::POM::Nodes 3pm 3 1402385888 A - - gz convenience class to load all node classesiso-8859-1- 7 7 1402354219 B - t gz ISO 8859-1 character set encoded in octal, decimal, and hexadecimalwordexp 3- 3 3 1402354213 A - - gz perform word expansion like a posix-shellxtappaddsignalXtAppAddSignal 3 3 1501646833 A - - gz register and remove a signal sourcegetyx- 3x 3 1720626759 B - - gz get curses cursor and window coordinatesftrylockfile ftrylockfile 3 ftrylockfile 3pxcb_input_query_device_state_unchecked- 3 3 1540917640 B - - gz fcconfiggetblanksFcConfigGetBlanks 3 3 1520307172 A - - gz Get config blanksvswscanf- 3p 3p 1402354219 B - - gz wide-character formatted input of a stdarg argument listgrub2-ofpathname- 8 8 1722985065 A - - gz Generate an IEEE-1275 device path for a specified device.fcstrlistcreateFcStrListCreate 3 3 1520307172 A - - gz create a string iteratordatetime::locale::deDateTime::Locale::de 3pm 3 1402390642 A - - gz xgrabserverXGrabServer 3 3 1710950786 A - - gz grab the serverxcb_list_fonts_with_info_properties- 3 3 1540917640 B - - gz get matching font names and informationunicode::normalizeUnicode::Normalize 3pm 3 1698237678 A - - gz Unicode Normalization Formstc-vlan- 8 8 1601484048 A - - gz vlan manipulation modulecsh- 1 1 1605900805 B - - gz C shell with file name completion and command line editingtk_optionmenutk_optionMenu n n 1448008912 A - - gz Create an option menubutton and its menugetcwd 3- 3 3 1402354210 A - - gz get current working directoryis_cleared- 3x 3 1720626759 B - - gz curses window propertiesopenssl_configOPENSSL_config 3ssl 3 1721417624 A - - gz simple OpenSSL configuration functionspem_read_bio_dhparamsPEM_read_bio_DHparams 3ssl 3 1721417624 B - - gz PEM routinesmq_unlink mq_unlink 3 mq_unlink 2 mq_unlink 3pxcb_glx_get_pixel_mapusv_unchecked- 3 3 1540917640 B - - gz tgmath.h- 0p 0p 1402354203 A - t gz type-generic macrosqsub- 1p 1p 1402354204 A - t gz submit a scriptperlgpl- 1 1 1698237665 A - - gz the GNU General Public License, version 1ctime_r 3- 3 3 1402354208 B - - gz transform date and time to broken-down time or ASCIIlvscan- 8 8 1619616701 A - - gz List all logical volumes in all volume groupsctanf 3- 3 3 1402354208 B - - gz complex tangent functionxcb_xv_get_still- 3 3 1540917640 A - - gz xshmputimageXShmPutImage 3 3 1448003986 B - - gz X Shared Memory extension functionsdatetime::locale::ruDateTime::Locale::ru 3pm 3 1402390636 A - - gz tifffielddatatypeTIFFFieldDataType 3tiff 3 1729525165 A - - gz Get TIFF data type from field informationgrowpart- 1 1 1565305265 A - - gz extend a partition in a partition table to fill available spaceec_key_set_public_keyEC_KEY_set_public_key 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_KEY objects.i386- 8 8 1612283497 B - - gz change reported architecture in new program environment and set personality flagspcre_free_substring- 3 3 1501643278 A - - gz Perl-compatible regular expressionsops- 3pm 3 1698237678 A - - gz Perl pragma to restrict unsafe operations when compilinggit-count-objects- 1 1 1722330782 A - - gz Count unpacked number of objects and their disk consumptionxcb_selinux_get_selection_create_context_context_length- 3 3 1540917640 B - - gz iscntrl 3- 3 3 1402354210 B - - gz character classification routinespcre_jit_exec- 3 3 1501643278 A - - gz Perl-compatible regular expressionsconf_modules_freeCONF_modules_free 3ssl 3 1721417624 A - - gz OpenSSL configuration cleanup functionsextutils::myExtUtils::MY 3pm 3 1402365499 A - - gz ExtUtils::MakeMaker subclass for customizationhttp::daemon::sslHTTP::Daemon::SSL 3pm 3 1457361102 A - - gz a simple http server class with SSL supportgex- 1 1 1720542354 B - - gz Vi IMproved, a programmers text editorseed48 seed48 3 seed48 3pbio_ptr_ctrlBIO_ptr_ctrl 3ssl 3 1721417624 B - - gz BIO control operationswcsnlen- 3 3 1402354213 A - - gz determine the length of a fixed-size wide-character stringcreall creall 3 creall 3pmsgctl msgctl 2 msgctl 3p  o =O HP ` $psfgF [9$use_ ;g$blkdh 6KO$temp Nuj$io_d  >$xcb_T !l $getg =N\$date 9U$lio_2 9i$autoy B[!$xcb_ 1f$getp ->]@$isunK T$dbi: b-v $bc 1# D$mysqm 6.$xevi QRb$set_ Gy$iopeh < r$ssh- ]W$xcb_ #U$eucaE 3Q$extu [`$brid Iy$dateN 0?M$$euwa <J$smar dG}$lwreZ FPX$ttys 3l$euca 3V$sysl8 A[$cwd H4$git- F$tail# `$$fcdi >  $tbl 2H$geth <$closa /#$getc $xmap' /t$urna T嗭$sche <*$md4_ G7$opteX 5@M$fege IT$xsha Lp$rsa_I [$xcb_ 7`$sys/ &c$isxd7 H$mb_cX aH$pow  *:$remq` =R$perlF` @d7$syst` @y\$xcb_` dX$xcb_%a ({[$dateha 3 ׂ$finia Eo$xfonb T"8$pipehb Ts$mathb Gy$mv 1b .1K$jran c O*ss$ssl_bc VG$evp_c ?0$xcb_$d .{$ctanmd X$evp_d =͂$semad 9^$pcree >K3$xcb_Ye !:K$gite $tkvae 6X/$tgete W$regcEf c$yum-cf ?ڝ$domaf FM$collg >vM$mbleTg Pȣ$xcb_g &oG$logrg EA{k$pr29Ah '%$Encoph 8O$sem_h 7:}$xcb_i "$jnfAi =$xcb_i $extui V#}$form"j :^a$bn_slj CYa$fopej $xcb_j `6$lwrek /S$xtexHk WS$resok DzX$new_k <?$cabsBl <;$eucal 75$xcb_l ]$tcgem $xcb_3m Rk$mkfofm Iz[H$ilogm Ab$dovem UX$rsa_6n B$fmodn r$daten 8UI$lwren B4$closFo "$nss-fo 7 |$perlo 7}$htob@ XJ$curs`@ K7$setc@ DLZ$crypA Ft$tcl_[A M$xcb_A #V$chowA =C$euca@B PR$clocB /$xcb_B sS$systC 6ru$isenmC ;/$xcb_C %+$noraC ;6$mant8D <jk$rsa_D Xk$imagE I$res_[E , $xcb_E #^U$pureE ?op$msgc  ~ ~%pthrF >%ui_gF @Ξ%va_s+G %mvwiLG JQ+%xcb_G TA%wcsnG =%tkwaG P.%ipta>H ,ʭ%nl-q{H 6%xcb_H *Dj%ceilI 3@%seli>I | g%ccosI 4?%munlJ 1J%daylPJ A %lwreJ N;b%xcb_K b%xcb_0K +C%tcl_vK A|%ecpaK FK%set_L G.%grubiL %[ %nfsdL @%get_L ;'%%xcb_0M ,H`%xdg-wM R#%csinM i*%ssl_M Q%systNN 4n^%timeN -i%fgetN :%evp_ O W%finivO F%%dh_nP :%xcb_ n%xcb_6 %%perlu /%euar 5;a*%cert :f%pcreA > %tcl_ d{%date 3{%dateL 3Щ%cms_ Zf%io:: WO:d%killw =%even  K{%xcb_г 473%xkbg {y%geti 2<%xcb_ e-%xfil' K%xcb_ $%xcb_ *p%uloc C %slk_I ;Rf%stre 5:\%expfж 1D%xcb_ &.%strsJ =>@%xcb_ %ssl_ɷ Js%bio_ ?=0%idnah '|%xfs_ 3W}C%xcb_޸ 8쳹%fwri* Ǣ8%extuE ^!%http U5%item* NJm%pcre >mu%xkbs̺ pK%sigl» @%rand =<%fccoW <F3%io:: PL%fsck >xU%fcpaD :m-%slat FJ%xcb_޽ Q^%tcl_ K0m%attrl R%strcƾ G%ssl_ ^%expa 1 %git- ;%pthrF 8%insqſ %bn_a ?%%xcms CQok%xcb_8 H%xcb_q %%xset iVt%gitw. H%xcb_ 9)%xget 24K#%tcl_ @Mh%circE h%ec_p %%datem 0O%FD_I 7%logb A.%scal< =X%tcl_ X%www: M H%xcb__ !X%geta O%open 0'%xcb_8 P%eucai Jî%%xkbc |<%xsetT @=mB%secu 5Ã%du 1 6j#4%xmap 3;;$%conta #9%syst "0%qrls /ޠ%ipc: I V%xcb_l 5?Ó%pam_ I5m%xcb_ &C%gsetZ 7%time B%db_p GkU%xcb_@ #xcb_dri2_connect_unchecked- 3 3 1540917640 B - - gz xcb_image_text_16_checked- 3 3 1540917640 B - - gz Draws textperlpodstyle- 1 1 1402343774 A - - gz Perl POD style guideeuare-groupuploadpolicy- 1 1 1484780705 A - - gz Attach a policy to a groupcert8.db- 5 5 1730826028 A - - gz Legacy NSS certificate databasepcresyntax- 3 3 1501643278 A - - gz Perl-compatible regular expressionstcl_finalizethreadTcl_FinalizeThread 3 3 1448008821 B - - gz end the application or thread (and invoke exit handlers)datetime::locale::gu_inDateTime::Locale::gu_IN 3pm 3 1402390637 A - - gz datetime::locale::ak_ghDateTime::Locale::ak_GH 3pm 3 1402390635 A - - gz cms_signerinfo_get0_signer_idCMS_SignerInfo_get0_signer_id 3ssl 3 1721417624 B - - gz CMS signedData signer functions.io::socket::inetIO::Socket::INET 3pm 3 1698237674 A - - gz Object interface for AF_INET domain socketskillchar- 3x 3 1720626759 B - - gz curses environment query routineseventfd eventfd 2xcb_randr_get_screen_resources_current_crtcs_length- 3 3 1540917640 B - - gz xkbgetkeymodifiermapXkbGetKeyModifierMap 3 3 1710950785 A - - gz Update the modifier map for one or more of the keys in a keyboard descriptiongetifaddrs- 3 3 1402354209 A - - gz get interface addressesxcb_xkb_get_kbd_by_name_replies- 3 3 1540917640 B - - gz xfillrectanglesXFillRectangles 3 3 1710950786 B - - gz fill rectangles, polygons, or arcsxcb_xc_misc_get_xid_list_ids_length- 3 3 1540917640 B - - gz xcb_glx_get_integerv_data- 3 3 1540917640 B - - gz ulockmgr_server- 1 1 1540935154 A - - gz Lock Manager Server for FUSE filesystemsslk_set_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionstrerror 3p- 3p 3p 1402354218 A - - gz get error message stringexpf 3p- 3p 3p 1402354215 B - - gz exponential functionxcb_input_xi_change_hierarchy_checked- 3 3 1540917640 B - - gz strspn 3- 3 3 1402354212 A - - gz search a string for a set of bytesxcb_configure_request_event_t- 3 3 1540917640 A - - gz ssl_readSSL_read 3ssl 3 1699892224 A - - gz read bytes from a TLS/SSL connection.bio_int_ctrlBIO_int_ctrl 3ssl 3 1721417624 B - - gz BIO control operationsidna_to_ascii_4z- 3 3 1448125246 A - - gz API functionxfs_repair- 8 8 1601488312 A - - gz repair an XFS filesystemxcb_query_extension- 3 3 1540917640 A - - gz check if extension is presentfwrite fwrite 3 fwrite 3pextutils::makemaker::faqExtUtils::MakeMaker::FAQ 3pm 3 1402365499 A - - gz Frequently Asked Questions About MakeMakerhttp::cookies::microsoftHTTP::Cookies::Microsoft 3pm 3 1402365673 A - - gz access to Microsoft cookies filesitem_count- 3x 3 1720626759 B - - gz make and break connections between items and menuspcrecompat- 3 3 1501643278 A - - gz Perl-compatible regular expressionsxkbsetnameddeviceindicatorXkbSetNamedDeviceIndicator 3 3 1710950785 B - - gz Names an indicator if it is not already named; toggles the state of the indicator; sets the indicator to a specified state and sets the indicator map for the indicatorsiglongjmp 3p- 3p 3p 1402354218 A - - gz non-local goto with signal handlingrand_seedRAND_seed 3ssl 3 1721417624 B - - gz add entropy to the PRNGfcconfigfilenameFcConfigFilename 3 3 1520307172 A - - gz Find a config fileio::wrapIO::Wrap 3pm 3 1402371105 A - - gz wrap raw filehandles in IO::Handle interfacefsck.fat- 8 8 1573511351 A - - gz check and repair MS-DOS filesystemsfcpatternaddboolFcPatternAddBool 3 3 1520307172 C FcPatternAdd-Type - gz slattach- 8 8 1565313023 A - - gz attach a network interface to a serial linexcb_glx_delete_window- 3 3 1540917640 A - - gz tcl_nexthashentryTcl_NextHashEntry 3 3 1448008822 B - - gz procedures to manage hash tablesattroff- 3x 3 1720626759 B - - gz curses character and window attribute control routinesstrcoll 3- 3 3 1402354212 A - - gz compare two strings using the current localessl_alert_desc_stringSSL_alert_desc_string 3ssl 3 1721417624 B - - gz get textual description of alert informationexpand 1- 1 1 1605565487 A - - gz convert tabs to spacesinsque insque 3 insque 3pgit-commit- 1 1 1722330780 A - - gz Record changes to the repositorypthread_getconcurrency 3- 3 3 1402354211 B - - gz set/get the concurrency levelbn_add_words- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionsxcmssetwhitepointXcmsSetWhitePoint 3 3 1710950786 A - - gz modifying CCC attributesxcb_shape_query_version_reply- 3 3 1540917640 B - - gz xcb_dri3_buffers_from_pixmap_offsets- 3 3 1540917640 B - - gz xsetmodifiermappingXSetModifierMapping 3 3 1710950785 B - - gz manipulate keyboard encoding and keyboard encoding structuregitweb.conf- 5 5 1722330784 A - - gz Gitweb (Git web interface) configuration filexcb_randr_free_lease_checked- 3 3 1540917640 B - - gz xgetpixelXGetPixel 3 3 1710950785 B - - gz image utilitiestcl_objsetvar2Tcl_ObjSetVar2 3 3 1448008822 B - - gz manipulate Tcl variablescircleq_insert_afterCIRCLEQ_INSERT_AFTER 3 3 1402354206 B - - gz implementations of lists, tail queues, and circular queuesec_point_set_jprojective_coordinatesEC_POINT_set_Jprojective_coordinates 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_POINT objects.datetime::locale::amDateTime::Locale::am 3pm 3 1402390634 A - - gz FD_ISSET 3- 3 3 1402354206 B - - gz synchronous I/O multiplexinglogb 3- 3 3 1402354210 A - - gz get exponent of a floating-point valuescalblnl 3p- 3p 3p 1402354218 B - - gz compute exponent using FLT_RADIXtcl_utftounichardstringTcl_UtfToUniCharDString 3 3 1448008823 B - - gz routines for manipulating UTF-8 stringswww::robotrules::anydbm_fileWWW::RobotRules::AnyDBM_File 3pm 3 1402373315 A - - gz Persistent RobotRulesxcb_input_xi_query_version_reply- 3 3 1540917640 B - - gz getaddrinfo_a- 3 3 1402354209 A - - gz asynchronous network address and service translationopen_wmemstream- 3 3 1402354211 B - - gz open memory as streamxcb_res_query_version- 3 3 1540917640 A - - gz euca-create-tags- 1 1 1484780705 A - - gz Add or overwrite tags for one or more resourcesxkbchangeindicatorsXkbChangeIndicators 3 3 1710950785 A - - gz Changes indicator maps or state without passing the entire keyboard descriptionxseterrorhandlerXSetErrorHandler 3 3 1710950786 A - - gz default error handlerssecurity- 2 2 1402354205 B - - gz unimplemented system callsdu 1p- 1p 1p 1402354203 A - - gz estimate file space usagexmapsubwindowsXMapSubwindows 3 3 1710950786 B - - gz map windowscontinue continue n continue 1p continue 1systemd-readahead-collect.service- 8 8 1711457788 B - - gz Disk read ahead logicqrls- 1p 1p 1402354204 A - - gz release batch jobsipc::run::timerIPC::Run::Timer 3pm 3 1402354788 A - - gz - Timer channels for IPC::Run.xcb_selinux_get_property_data_context_context_length- 3 3 1540917640 B - - gz pam_timestamp_check- 8 8 1585713592 A - - gz Check to see if the default timestamp is validxcb_render_query_pict_formats_formats- 3 3 1540917640 B - - gz gsettings- 1 1 1523070240 A - - gz GSettings configuration tooltimer_create 3p- 3p 3p 1402354219 A - - gz create a per-process timer (REALTIME)db_printlog- 1 1 1481720631 A - - gz Dumps log files into a human-readable formatxcb_xv_query_port_attributes_reply- 3 3 1540917640 B - - gz tcl_getlongfromobjTcl_GetLongFromObj 3 3 1448008822 B - - gz manipulate Tcl objects as integer valuesaudit2allow- 1 1 1585713889 A - - gz generate SELinux policy allow/dontaudit rules from logs of denied operationsfsck.cramfs- 8 8 1612283497 A - - gz fsck compressed ROM file systemfactor- 1 1 1605565487 A - - gz factor numberseuwatch-set-alarm-state- 1 1 1484780705 A - - gz Temporarily set the state of an alarmposix_trace_attr_getmaxdatasize- 3p 3p 1402354217 B - - gz retrieve and set trace stream size attributes (TRACING)strtoull strtoull 3 strtoull 3ppthread_rwlock_wrlock- 3p 3p 1402354217 A - - gz lock a read-write lock object for writingbsd_signal 3p- 3p 3p 1402354214 A - - gz simplified signal facilitiesgetpwnam 3- 3 3 1402354209 A - - gz get password file entryxcb_input_get_feedback_control_reply- 3 3 1540917640 B - - gz slk_attroff_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionj0 3- 3 3 1402354210 A - - gz Bessel functions of the first kindatrm- 1 1 1653075403 B - - gz queue, examine or delete jobs for later executionkeyctl_revoke- 3 3 1402366674 A - - gz Revoke a keylabs 3- 3 3 1402354210 B - - gz compute the absolute value of an integercheckmodule- 8 8 1540936118 A - - gz SELinux policy module compilersecurity_load_booleans- 3 3 1585710994 A - - gz routines for manipulating SELinux boolean valuespthread_getattr_np- 3 3 1402354211 A - - gz get attributes of created threadxcb_randr_get_output_info_unchecked- 3 3 1540917640 B - - gz fccachenumfontFcCacheNumFont 3 3 1520307172 A - - gz Returns the number of fonts in cache.wcstoumax wcstoumax 3 wcstoumax 3pat 1p- 1p 1p 1402354203 A - - gz execute commands at a later timehas_mouse_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensioncollectdmon- 1 1 1671356063 A - - gz Monitoring daemon for collectdec_key_up_refEC_KEY_up_ref 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_KEY objects.sys_un.h- 0p 0p 1402354203 A - - gz definitions for UNIX domain socketsperror 1- 1 1 1697025034 A - - gz display MySQL error message informationxcb_shm_attach- 3 3 1540917640 A - - gz funzip- 1 1 1240180690 A - - gz filter for extracting from a ZIP archive in a pipegetgrnam_r getgrnam_r 3 getgrnam_r 3pip-monitor- 8 8 1601484048 A - - gz state monitoringssl_session_get_ex_dataSSL_SESSION_get_ex_data 3ssl 3 1699892221 A - - gz internal application specific data functionsssl SSL 3ssl ssl 3sslxcb_configure_window_checked- 3 3 1540917640 B - - gz Configures window attributestcl_unichartolowerTcl_UniCharToLower 3 3 1448008822 A - - gz routines for manipulating the case of Unicode characters and UTF-8 stringsd2i_dsaprivatekeyd2i_DSAPrivateKey 3ssl 3 1721417624 B - - gz DSA key encoding and parsing functions.tcl_findensembleTcl_FindEnsemble 3 3 1448008821 B - - gz manipulate ensemble commandsssl_ctx_set_psk_client_callbackSSL_CTX_set_psk_client_callback 3ssl 3 1721417624 A - - gz set PSK client callbackpod::pom::node::podPod::POM::Node::Pod 3pm 3 1402385888 A - - gz err_peek_error_line_dataERR_peek_error_line_data 3ssl 3 1721417624 B - - gz obtain error code and datava_copy 3- 3 3 1402354213 B - - gz variable argument listsssl_set_sessionSSL_set_session 3ssl 3 1699892224 A - - gz set a TLS/SSL session to be used during TLS/SSL connecteuca-detach-vpn-gateway- 1 1 1484780705 A - - gz Detach a virtual private gateway from a VPCxcb_glx_get_tex_parameterfv_data_end- 3 3 1540917640 B - - gz xcb_selinux_get_client_context- 3 3 1540917640 A - - gz try-from- 8 8 1402375311 A - - gz test program for the tcp_wrapperxcb_randr_list_provider_properties_atoms_end- 3 3 1540917640 B - - gz read 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)git-merge- 1 1 1722330784 A - - gz Join two or more development histories togetherntohs 3- 3 3 1402354211 B - - gz convert values between host and network byte orderlrand48 3- 3 3 1402354210 B - - gz generate uniformly distributed pseudo-random numbersccoshl 3p- 3p 3p 1402354214 B - - gz complex hyperbolic cosine functionstcsendbreak 3p- 3p 3p 1402354218 A - - gz send a break for a specific durationxml::libxml::inputcallbackXML::LibXML::InputCallback 3pm 3 1402352993 A - - gz XML::LibXML Class for Input Callbackstcl_utffindfirstTcl_UtfFindFirst 3 3 1448008823 B - - gz routines for manipulating UTF-8 stringstcl_dstringinitTcl_DStringInit 3 3 1448008821 B - - gz manipulate dynamic stringsxcb_glx_get_convolution_filter_unchecked- 3 3 1540917640 B - - gz xcb_glx_pixel_storei_checked- 3 3 1540917640 B - - gz ts- 1ssl 1 1699892201 A - - gz Time Stamping Authority tool (client/server)_ 7 r p zrQ&tap:P y&xcmsP Qt)U&fminQ {Y&ln 1Q '4g&xrmuDQ Bt8&uriQ &eucaQ @:&xcb_R &appc@R ujw&xcb_R ZS&lio_R b&magiS <T&ec_k^S jhL&cuseS 'g9&xcb_T %7g%&xcb_BT .&bootT Il]&git-T H!)&wins7U O}u&xkbsU _&setgU )>qS&syst1V Jc&sadcV :צ&lh_fV 0J&mvwiW ObG&dateXW Xf&git-W 9&xcmsX 8&xcb_QX $S/&xcb_X ~_&xcb_X 3}F&digeX dJ&sg_weY 7:*&gioY /'5&mlocY 1A&xfsdZ B+&bcmpcZ 1Icm&chpaZ 9Mԩ&pcreZ >&pod:1[ M*r&b::d[ P%l"&lwre[ RXS&htmlJ\ N9&bsea\ Ě&xfs_\ A`V&pwri] T&tcl_n] H&xcb_] 0&asn1^ G{6J&datei^ 3Vs&date^ 2g&plac^ ON&fuseR_ _Q&csin_ Agr&pod: Uc&iso-e ^X&word΀ DV &xtap K}:&getyv DV&ftry j.4&xcb_ 'Q;s&fcco/ <&vsws} Uׂ&grubۂ Tk&fcst@ Ab&poll_ &date 07z&xgraփ 4Nv&xcb_ $B#q&unic| I&tc-v؄ 3N_&csh UomC&tk_ol O]}&getcɅ 8x&is_c 4&openI Q-&pem_ >{&mq_u &CX &xcb_- #I}&tgmak 0Mh&qsub ,eo&perlՇ DvM&ctim! Oo&lvscz Hx&ctanɈ 3NB&xcb_ &xshm0 IU&date 0N&tiffˉ Xi(&grow5 Z@&ec_k u1&i386# lP&pcre >2&ops U>s&git-? V&xcb_ 8&iscn <* &pcre@ >Fek&conf U%&extu Vc &httpV X &gex Ap&seed g&bio_ ?,y&wcsnl U^Yd&tcl_ TS4&creaɏ 8&audig g=&fsck :p&fact )ڷ&euwaP @&posi TP&strt U&pthr= Fh&bsd_ 9q8&getp 2 &xcb_ %&slk_] ;@sc&j0 3 =&atrm Lt &keyc: 'b}&labso C  ) ~'chec 9H'secu KvL'pthr` ;l'xcb_ $v'fcca M)'wcstI "'at 1m =Q@'has_ ;'coll 9;'ec_k= mk 'sys_ @B+o'perr B̦'xcb_L ^G'funzv Mq'getg g'ip-m +3'msgc Pd'ssl_' `l'ssl 'xcb_ 7Q1'tcl_ v'd2i_ U +<'tcl_ F3'ssl_Q S)F'pod: /s'err_ Oo'va_co 2FY'ssl_ co'euca Fϝ'xcb_| %oj'xcb_ NO'try- ;'xcb_: -('read >^'git- J>'ntoh M-'lranp O4'ccos @|ܯ'tcseJ A'xml: [Ҙ3'tcl_ Q'tcl_r C4'xcb_ )#'xcb_ D'tsA Ji 'expr /-'pass6 W'madv\ 5d'tcl_ Z%Ì'abrt V 'sysfj ;]r'tcpd -u^$'tcl_ fgU'evp_X Q/'xkba iXfn'set_5 1cc'safer S^_t'syst >'xfre f'argz ;hz'snic Aa'uuen AtRR'bundj X'git- R'xcb_6 @'perlo 9'xcb_ (̯C'iso_ _ 'perl_ E37'git- JF'eusc 2%,`'xcb_Z r9'xget T'err_ A'xcb_< I'cursw [CT'time ,'doup ;'c99[ 8 !'db_d E'ssl_ O 'bn_cG KvV'dbi: f.'casi +>'scheN C1'encr 2pPL'log: L 'insd; F;'ssl_ TeԄ'scri >x'pars4 ]{L'xget YU'xcb_  0.'extu\ GDaZ'fcna MQ'lib <@`a'pivo\ 6Fc'xcb_ 21'base 4lў'file! Gyq'unlzw! >'getn! 7r'qsor! 'xcir! P 'sys/a" *[\W'lsip" ^jy'www:" PΌ'xkbtd# z'setu# H='fcca$ U 'eufo$ 6IC'ftim$ /X,'xall% B7'xfreV% E}>'strt% ;,2'fing% JH'TempQ& @o'perl& *v'item& 9O'isna'' +y'tcl_[' I'ssl_' G'xcb_( 3e'xcb_P( !v5'xcb_( 0؆'dosf( >expr 1- 1 1 1605565487 A - - gz evaluate expressionspasswd passwd 1ssl passwd 1 passwd 5madvise1- 2 2 1402354205 B - - gz unimplemented system callstcl_limitgettimeTcl_LimitGetTime 3 3 1448008822 B - - gz manage and check resource limits on interpretersabrt-watch-log- 1 1 1601569733 A - - gz Watch log file and run command when it grows or is replacedsysfs- 2 2 1402354206 A - - gz get file system type informationtcpdmatch- 8 8 1402375311 A - - gz tcp wrapper oracletcl_createslaveTcl_CreateSlave 3 3 1448008821 B - - gz manage multiple Tcl interpreters, aliases and hidden commandsevp_verifyupdateEVP_VerifyUpdate 3ssl 3 1721417624 B - - gz EVP signature verification functionsxkballocclientmapXkbAllocClientMap 3 3 1710950785 A - t gz Allocate and initialize an empty client map description recordset_tabsize- 3x 3 1720626759 B - - gz curses thread supportsafeSafe 3pm 3 1698237677 A - - gz Compile and execute code in restricted compartmentssystemd-delta- 1 1 1711457787 A - - gz Find overridden configuration filesxfreemodifiermapXFreeModifiermap 3 3 1710950785 B - - gz manipulate keyboard encoding and keyboard encoding structureargz_stringify- 3 3 1402354207 B - - gz functions to handle an argz listsnice- 1 1 1601486472 B - - gz send a signal or report process statusuuencode 1- 1 1 1357525303 A - - gz encode a file into email friendly textbundle::dbd::mysqlBundle::DBD::mysql 3pm 3 1523403904 A - - gz A bundle to install Perl drivers for MySQLgit-lost-found- 1 1 1722330782 A - - gz Recover lost refs that luckily have not yet been prunedxcb_sync_create_alarm_checked- 3 3 1540917640 B - - gz perltoot- 1 1 1698237670 A - - gz This document has been deletedxcb_xf86dri_get_drawable_info_unchecked- 3 3 1540917640 B - - gz iso_8859_13- 7 7 1402354220 B - t gz ISO 8859-13 character set encoded in octal, decimal, and hexadecimalperlexperiment- 1 1 1698237664 A - - gz A listing of experimental features in Perlgit-credential-cache- 1 1 1722330780 A - - gz Helper to temporarily store passwords in memoryeuscale-delete-policy- 1 1 1484780705 A - - gz Delete a scaling policyxcb_damage_create- 3 3 1540917640 A - - gz xgetwmiconnameXGetWMIconName 3 3 1710950786 B - - gz set or read a window's WM_ICON_NAME propertyerr_print_errorsERR_print_errors 3ssl 3 1721417624 A - - gz print error messagesxcb_screensaver_suspend_checked- 3 3 1540917640 B - - gz curs_get_wstr- 3x 3 1715932337 A - - gz get an array of wide characters from a curses terminal keyboardtimes 2- 2 2 1402354206 A - - gz get process timesdoupdate_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionc99- 1p 1p 1402354203 A - t gz compile standard C programsdb_dump- 1 1 1573510866 A - - gz Write database file using flat-text formatssl_ctx_sess_acceptSSL_CTX_sess_accept 3ssl 3 1721417624 B - - gz obtain session cache statisticsbn_ctx_initBN_CTX_init 3ssl 3 1721417624 B - - gz allocate and free BN_CTX structuresdbi::util::cachememoryDBI::Util::CacheMemory 3pm 3 1402362412 A - - gz a very fast but very minimal subset of Cache::Memorycasin 3- 3 3 1402354207 A - - gz complex arc sinesched_setscheduler 2- 2 2 1402354205 A - - gz set and get scheduling policy/parametersencrypt 3- 3 3 1402354212 A - - gz encrypt 64-bit messageslog::messageLog::Message 3pm 3 1402343798 A - - gz A generic message storing mechanism;insdelln- 3x 3 1720626759 B - - gz delete and insert lines in a curses windowssl_session_freeSSL_SESSION_free 3ssl 3 1699892221 A - - gz free an allocated SSL_SESSION structurescript- 1 1 1612283497 A - - gz make typescript of terminal sessionparse::cpan::metaParse::CPAN::Meta 3pm 3 1402363068 A - - gz Parse META.yml and META.json CPAN metadata filesxgetfontpropertyXGetFontProperty 3 3 1710950786 B - - gz load or unload fonts and font metric structuresxcb_query_tree_children_length- 3 3 1540917640 B - - gz query the window treeextutils::makemakerExtUtils::MakeMaker 3pm 3 1402365499 A - - gz Create a module Makefilelib- 3pm 3 1698237678 A - - gz manipulate @INC at compile timefcnameconstantFcNameConstant 3 3 1520307172 A - - gz Get the value for a symbolic constantpivot_root 2- 2 2 1402354205 A - - gz change the root file systemxcb_list_fonts- 3 3 1540917640 A - - gz get matching font namesbasename 3- 3 3 1402354208 A - t gz parse pathname componentsfile::spec::epocFile::Spec::Epoc 3pm 3 1402373474 A - - gz methods for Epoc file specsunlzma- 1 1 1655494379 C xzcat - gz getnetgrent_r- 3 3 1402354209 B - - gz handle network group entriesqsort qsort 3 qsort 3pxcirculaterequesteventXCirculateRequestEvent 3 3 1710950786 A - - gz CirculateRequest event structuresys/resource.h- 0p 0p 1402354203 C sys_resource.h - gz lsipc- 1 1 1612283497 A - - gz show information on IPC facilities currently employed in the systemwww::mechanize::imageWWW::Mechanize::Image 3pm 3 1391076350 A - - gz Image object for WWW::MechanizexkbtranslatekeysymXkbTranslateKeySym 3 3 1710950785 A - - gz Find the string and symbol associated with a keysym for a given keyboard statesetutxent setutxent 3 setutxent 3pfccachecreatetagfileFcCacheCreateTagFile 3 3 1520307172 A - - gz Create CACHEDIR.TAG at cache directory.euform-describe-stacks- 1 1 1484780705 A - - gz Describe one or more stacksftime 3- 3 3 1402354209 A - - gz return date and timexallocnamedcolorXAllocNamedColor 3 3 1710950785 B - e gz allocate and free colorsxfreeextensionlistXFreeExtensionList 3 3 1710950786 B - - gz list available extensionsstrtoumax 3p- 3p 3p 1402354218 B - - gz convert string to integer typefingerprint-auth- 5 5 1588181479 B - - gz Common configuration file for PAMified servicesTemplate::Tools::tpage 3pm- 3pm 3 1402357152 A - - gz Process templates from command lineperlcygwin- 1 1 1698237664 A - - gz Perl for Cygwinitem_opts_on- 3x 3 1720626759 B - - gz set and get menu item optionsisnan 3p- 3p 3p 1402354216 A - - gz test for a NaNtcl_closeTcl_Close 3 3 1448008822 A - - gz buffered I/O facilities using channelsssl_shutdownSSL_shutdown 3ssl 3 1699892224 A - - gz shut down a TLS/SSL connectionxcb_selinux_get_selection_create_context_unchecked- 3 3 1540917640 B - - gz xcb_xvmc_destroy_context_checked- 3 3 1540917640 B - - gz xcb_selinux_list_properties_properties_iterator- 3 3 1540917640 B - - gz dosfsck- 8 8 1573511351 B - - gz check and repair MS-DOS filesystemspthread_condattr_setclock- 3p 3p 1402354217 B - - gz get and set the clock selection condition variable attribute (ADVANCED REALTIME)datetime::locale::shDateTime::Locale::sh 3pm 3 1402390643 A - - gz raw 7- 7 7 1402354220 A - t gz Linux IPv4 raw socketspassword-auth- 5 5 1588181479 B - - gz Common configuration file for PAMified servicestifffieldreadcountTIFFFieldReadCount 3tiff 3 1729525165 A - - gz Get number of values to be read from fieldbio_f_base64BIO_f_base64 3ssl 3 1699892203 A - - gz base64 BIO filtersystemd-remount-fs- 8 8 1711457788 B - - gz Remount root and kernel file systemsdatetime::locale::cchDateTime::Locale::cch 3pm 3 1402390641 A - - gz dh_get_default_methodDH_get_default_method 3ssl 3 1721417624 B - - gz select DH methodrsa_padding_add_pkcs1_oaepRSA_padding_add_PKCS1_OAEP 3ssl 3 1721417624 B - - gz asymmetric encryption paddingxcb_translate_coordinates_unchecked- 3 3 1540917640 B - - gz lcong48_r- 3 3 1402354210 B - - gz generate uniformly distributed pseudo-random numbers reentrantlyssl_ctx_get0_paramSSL_CTX_get0_param 3ssl 3 1721417624 A - - gz get and set verification parametersxcb_poly_rectangle_checked- 3 3 1540917640 B - - gz matchpathcon_filespec_destroy- 3 3 1585710994 B - - gz check and report whether any specification index has no matches with any inode. Maintenance and statistics on inode associationspcre32_refcount- 3 3 1573510868 B - - gz Perl-compatible regular expressionstcl_detachpidsTcl_DetachPids 3 3 1448008821 A - - gz manage child processes in backgroundlibtiff- 3tiff 3 1729525165 A - - gz introduction to libtiff, a library for reading and writing TIFF filescol- 1 1 1612283497 A - - gz filter reverse line feeds from inputlwres_gai_strerror- 3 3 1725373371 A - - gz print suitable error stringx509_name_get_entryX509_NAME_get_entry 3ssl 3 1721417624 B - - gz X509_NAME lookup and enumeration functionslocale::codes::script_retiredLocale::Codes::Script_Retired 3pm 3 1402383324 A - - gz retired script codes for the Locale::Codes::Script modulelldiv lldiv 3 lldiv 3ptcl_limitgetgranularityTcl_LimitGetGranularity 3 3 1448008822 B - - gz manage and check resource limits on interpretersstrcspn 3p- 3p 3p 1402354218 A - - gz get the length of a complementary substringsem_timedwait 3p- 3p 3p 1402354218 A - - gz lock a semaphore (ADVANCED REALTIME)xcb_randr_delete_output_property- 3 3 1540917640 A - - gz grops- 1 1 1402345033 A - - gz PostScript driver for grofflroundf 3p- 3p 3p 1402354216 B - - gz round to nearest integer valueisdigit 3p- 3p 3p 1402354216 A - - gz test for a decimal digitincr- n n 1448008823 A - - gz Increment the value of a variabletcl_waitpidTcl_WaitPid 3 3 1448008821 B - - gz manage child processes in backgroundfilecacheFileCache 3pm 3 1698237674 A - - gz keep more files open than the system permitsioctl 2- 2 2 1402354205 A - - gz control devicexcreateglyphcursorXCreateGlyphCursor 3 3 1710950785 B - - gz create cursorsgnu_get_libc_release- 3 3 1402354210 B - - gz get glibc version and releaseperlbook- 1 1 1698237663 A - - gz Books about and related to Perlvgimportclone- 8 8 1619616701 A - - gz Import a VG from cloned PVsremquol 3- 3 3 1402354211 B - - gz remainder and part of quotientlwresd- 8 8 1725373372 A - - gz lightweight resolver daemonxcb_xkb_set_device_info_checked- 3 3 1540917640 B - - gz tcl_wordbreakbeforetcl_wordBreakBefore n n 1448008823 B - - gz standard library of Tcl proceduresssl_conf_cmdSSL_CONF_cmd 3ssl 3 1699892218 A - - gz send configuration commandlslogins- 1 1 1612283497 A - - gz display information about known users in the systemiswdigit 3p- 3p 3p 1402354216 A - - gz test for a decimal digit wide-character codeget_nprocs_conf- 3 3 1402354209 A - - gz get number of processorsxcb_glx_render_checked- 3 3 1540917640 B - - gz abrt-action-analyze-vmcore- 1 1 1601569733 A - - gz Extracts the oops message from the kernel core and install the kernel debuginfo if neededevp_rc2_ecbEVP_rc2_ecb 3ssl 3 1721417624 B - - gz EVP cipher routinesposix_trace_eventid_open- 3p 3p 1402354217 B - - gz trace functions for instrumenting application code (TRACING)pcre32_get_named_substring- 3 3 1573510868 B - - gz Perl-compatible regular expressionspcre16_free_substring_list- 3 3 1573510868 B - - gz Perl-compatible regular expressionswbkgrnd- 3x 3 1720626759 B - - gz curses window complex background manipulation routinessigpending 2- 2 2 1402354206 A - - gz examine pending signalsxdisplaykeycodesXDisplayKeycodes 3 3 1710950785 B - - gz manipulate keyboard encoding and keyboard encoding structurexcb_copy_colormap_and_free_checked- 3 3 1540917640 B - - gz xkbdevicebelleventXkbDeviceBellEvent 3 3 1710950785 A - t gz Creates a bell event for an X input extension device or for the keyboard, without ringing the corresponding bellperlxstypemap- 1 1 1698237671 A - - gz Perl XS C/Perl type mappingextutils::mm_uwinExtUtils::MM_UWIN 3pm 3 1402365499 A - - gz U/WIN specific subclass of ExtUtils::MM_Unixip-gue- 8 8 1601484048 B - - gz Generic UDP Encapsulation receive port configurationtcl_querytimeprocTcl_QueryTimeProc 3 3 1448008822 B - - gz get date and timexlookupkeysymXLookupKeysym 3 3 1710950786 A - - gz handle keyboard input events in Latin-1avc_audit- 3 3 1585710994 B - - gz obtain and audit SELinux access decisionscurs_mouse- 3x 3 1715932338 A - - gz mouse interface through curseseuare-oidcprovideraddclientid- 1 1 1484780705 A - - gz Add a client ID to an OpenID Connect providerendservent 3p- 3p 3p 1402354214 B - - gz network services database functionsdh_generate_parametersDH_generate_parameters 3ssl 3 1721417624 A - - gz generate and check Diffie-Hellman parametersevp_des_ede3EVP_des_ede3 3ssl 3 1721417624 B - - gz EVP cipher routinesbio_set_closeBIO_set_close 3ssl 3 1721417624 B - - gz BIO control operationsssl_session_reusedSSL_session_reused 3ssl 3 1699892224 A - - gz query whether a reused session was negotiated during handshakeec_key_set_private_keyEC_KEY_set_private_key 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_KEY objects.xcb_xv_shm_put_image_checked- 3 3 1540917640 B - - gz less less 3pm less 1memmem- 3 3 1402354211 A - - gz locate a substringtemplate::plugin::directoryTemplate::Plugin::Directory 3pm 3 1402357151 A - - gz Plugin for generating directory listingscrypto- 3ssl 3 1699892215 A - - gz OpenSSL cryptographic librarysha384 1ssl- 1ssl 1 1721417624 B - - gz message digestsfputws 3p- 3p 3p 1402354215 A - - gz put a wide-character string on a streamtanhf 3- 3 3 1402354213 B - - gz hyperbolic tangent functionsendto 3p- 3p 3p 1402354218 A - - gz send a message on a socketrt_sigreturn- 2 2 1402354205 B - - gz return from signal handler and cleanup stack framednssec-signzone- 8 8 1725373373 A - - gz DNSSEC zone signing toolxtdisplayofobjectXtDisplayOfObject 3 3 1501646833 B - - gz obtain window information about a widgetxcb_xfixes_create_pointer_barrier_checked- 3 3 1540917640 B - - gz data::dumperData::Dumper 3pm 3 1402342613 A - - gz stringified perl data structures, suitable for both printing and "eval"datetime::locale::jaDateTime::Locale::ja 3pm 3 1402390640 A - - gz dpmssettimeoutsDPMSSetTimeouts 3 3 1448003986 A - - gz permits applications to set the timeout values used by the X server for DPMS timingsmove_pages- 2 2 1402354205 A - - gz move individual pages of a process to another nodelz4c- 1 1 1720626732 B - - gz lz4, unlz4, lz4cat - Compress or decompress .lz4 filesva_end 3p- 3p 3p 1402354219 B - - gz handle variable argument listperluniprops- 1 1 1698237670 A - - gz Index of Unicode Version 6.1.0 character properties in Perlcopysignl 3p- 3p 3p 1402354214 B - - gz number manipulation functionavc_netlink_loop- 3 3 1585710994 A - - gz SELinux netlink processingxhost- 1 1 1502476988 A - - gz server access control program for Xxcb_present_query_capabilities- 3 3 1540917640 A - - gz create-cracklib-dict- 8 8 1337469855 A - - gz Check passwords using libcrack2datetime::locale::so_soDateTime::Locale::so_SO 3pm 3 1402390639 A - - gz xscreennumberofscreenXScreenNumberOfScreen 3 3 1710950786 A - - gz screen information functions and macrosinet- 3 3 1402354210 A - - gz Internet address manipulation routinescheckbutton- n n 1448008911 A - - gz Create and manipulate checkbutton widgetssetgid32- 2 2 1402354205 B - - gz set group identitybio_ctrlBIO_ctrl 3ssl 3 1721417624 A - - gz BIO control operationspure-uploadscript- 8 8 1730292103 A - - gz Automatically run an external program after a successful uploadrc4_set_keyRC4_set_key 3ssl 3 1721417624 B - - gz RC4 encryptionssl_set_bioSSL_set_bio 3ssl 3 1699892224 A - - gz connect the SSL object with a BIOwbkgrndset- 3x 3 1720626759 B - - gz curses window complex background manipulation routinesgit-push- 1 1 1722330780 A - - gz Update remote refs along with associated objectsgit-hash-object- 1 1 1722330780 A - - gz Compute object ID and optionally creates a blob from a filestrtold 3p- 3p 3p 1402354218 B - - gz convert a string to a double-precision numberpathchk 1p- 1p 1p 1402354204 A - - gz check pathnamescbrtl cbrtl 3 cbrtl 3pclone2- 2 2 1402354204 B - - gz create a child processposix_fadvise 3p- 3p 3p 1402354216 A - - gz file advisory information (ADVANCED REALTIME)xcb_render_create_picture_checked- 3 3 1540917640 B - - gz xcopygcXCopyGC 3 3 1710950785 B - t gz create or free graphics contexts and graphics context structurexconvertcaseXConvertCase 3 3 1710950786 B - - gz convert keysymsregexec regexec 3 regexec 3pencode::supportedEncode::Supported 3pm 3 1402368577 A - - gz - Encodings supported by Encodesystemd.generator- 7 7 1711457788 A - - gz Systemd unit generatorsb::debugB::Debug 3pm 3 1698237671 A - - gz Walk Perl syntax tree, printing debug info about opssys_stat.h- 0p 0p 1402354203 A - - gz data returned by the stat() functionxtopendisplayXtOpenDisplay 3 3 1501646833 B - - gz initialize, open, or close a displayoptind optind 3 optind 3ppem_write_pubkeyPEM_write_PUBKEY 3ssl 3 1721417624 B - - gz PEM routinessqrt sqrt 3 sqrt 3pmemset memset 3 memset 3psystemd-ask-password-console.path- 8 8 1711457788 B - - gz Query the user for system passwords on the console and via wallxcb_glx_vendor_private_with_reply_unchecked- 3 3 1540917640 B - - gz euca-get-password-data- 1 1 1484780705 A - - gz Retrieve the encrypted administrator password for an instance running Windows. The encrypted password may be decrypted using the private key of the key pair given when launching the instance.datetime::locale::tsDateTime::Locale::ts 3pm 3 1402390643 A - - gz xcb_randr_get_crtc_gamma_blue_length- 3 3 1540917640 B - - gz selinux_file_context_local_path- 3 3 1585710994 B - - gz These functions return the paths to the active SELinux policy configuration directories and filesfmaf 3- 3 3 1402354209 B - - gz floating-point multiply and addstring_to_av_perm- 3 3 1585710994 B - - gz convert between SELinux class and permission values and string names. print_access_vector - display an access vector in human-readable form.pthread_cond_signal- 3p 3p 1402354217 A - - gz broadcast or signal a conditionssl_set_optionsSSL_set_options 3ssl 3 1699892220 A - - gz manipulate SSL options_tracechar- 3x 3 1720626759 B - - gz curses debugging routinesxcb_randr_list_provider_properties_atoms_length- 3 3 1540917640 B - - gz pod::pom::node::head3Pod::POM::Node::Head3 3pm 3 1402385888 A - - gz tcl_stringcasematchTcl_StringCaseMatch 3 3 1448008822 A - - gz test whether a string matches a patternevp_pkey_cmpEVP_PKEY_cmp 3ssl 3 1721417624 A - - gz public key parameter and comparison functionsstrcat 3p- 3p 3p 1402354218 A - - gz concatenate two stringsumask 3p- 3p 3p 1402354219 A - - gz set and get the file mode creation maskerror::process-tracking- 7stap 7 1602605484 A - - gz process-tracking facilities are not availablexcb_xfixes_create_region_from_gc- 3 3 1540917640 A - - gz iso_8859_14- 7 7 1402354220 B - t gz ISO 8859-14 character set encoded in octal, decimal, and hexadecimalfcmatrixscaleFcMatrixScale 3 3 1520307172 A - - gz Scale a matrixgenhostid- 1 1 1605543616 A - - gz generate and set a hostid for the current hostps2pdfwr- 1 1 1601482853 A - - gz Convert PostScript to PDF without specifying CompatibilityLevel, using ghostscriptdirname 1p- 1p 1p 1402354203 A - t gz return the directory portion of a pathnametcl_unsetvar2Tcl_UnsetVar2 3 3 1448008822 B - - gz manipulate Tcl variablesstart_color_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensioni2d_dsapublickeyi2d_DSAPublicKey 3ssl 3 1721417624 B - - gz DSA key encoding and parsing functions.bn_mod_sqrBN_mod_sqr 3ssl 3 1721417624 B - - gz arithmetic operations on BIGNUMsec_group_get_pentanomial_basisEC_GROUP_get_pentanomial_basis 3ssl 3 1721417624 B - - gz Functions for manipulating EC_GROUP objects.xcb_get_keyboard_mapping_reply- 3 3 1540917640 B - - gz wcolor_set- 3x 3 1720626759 B - - gz curses character and window attribute control routinesxcb_xkb_get_names_reply- 3 3 1540917640 B - - gz pod::simple::textcontentPod::Simple::TextContent 3pm 3 1402365606 A - - gz - get the text content of Pod AxsetcliporiginXSetClipOrigin 3 3 1710950786 A - - gz GC convenience routinesabrt-handle-upload- 1 1 1601569733 A - - gz Unpacks and moves problem data.wordexp.h- 0p 0p 1402354203 A - - gz word-expansion typesintro 8- 8 8 1402354220 A - - gz introduction to administration and privileged commandsevp_decryptfinal_exEVP_DecryptFinal_ex 3ssl 3 1721417624 B - - gz EVP cipher routinesxcb_sync_query_counter_unchecked- 3 3 1540917640 B - - gz xkbnotenamechangesXkbNoteNameChanges 3 3 1710950785 A - t gz Note the changed names in a changes structurecpu_zeroCPU_ZERO 3 3 1402354206 B - - gz macros for manipulating CPU setsgetgrent_r- 3 3 1402354209 A - - gz get group file entry reentrantlyswapcontext 3- 3 3 1402354212 B - - gz manipulate user contextcurs_print- 3x 3 1715932338 A - - gz ship binary data to printerfccharsetdestroyFcCharSetDestroy 3 3 1520307172 A - - gz Destroy a character setpure-quotacheck- 8 8 1730292103 A - - gz Update virtual quota files for Pure-FTPdmcheck- 3 3 1402354211 A - - gz heap consistency checkingwrite write 2 write 1p write 1 write 3pxcb_randr_get_provider_property_data_end- 3 3 1540917640 B - - gz pipe 2- 2 2 1402354205 A - - gz create pipevfyserv_- 1 1 1730826028 C vfyserv - gz unsetenv 3- 3 3 1402354213 B - - gz change or add an environment variablecfsetospeed 3p- 3p 3p 1402354214 A - - gz set output baud ratedatetime::locale::be_byDateTime::Locale::be_BY 3pm 3 1402390642 A - - gz atan 3- 3 3 1402354207 A - - gz arc tangent functionnfsiostat- 8 8 1634214565 A - - gz Emulate iostat for NFS mount points using /proc/self/mountstatsxcb_glx_gen_lists- 3 3 1540917640 A - - gz llround llround 3 llround 3phtole64- 3 3 1402354210 B - - gz convert values between host and big-/little-endian byte orderxcb_render_free_glyphs_checked- 3 3 1540917640 B - - gz sg_referrals- 8 8 1585715378 A - - gz send SCSI REPORT REFERRALS commandsecurity_commit_booleans- 3 3 1585710994 B - - gz routines for manipulating SELinux boolean valuesxcb_xkb_get_map_map- 3 3 1540917640 B - - gz unzip- 1 1 1716843539 A - - gz list, test and extract compressed files in a ZIP archivetzname 3p- 3p 3p 1402354219 B - t gz set timezone conversion informationsetpgid 3p- 3p 3p 1402354218 A - - gz set process group ID for job controlxcb_ungrab_pointer_checked- 3 3 1540917640 B - - gz release the pointerxcb_xkb_select_events_checked- 3 3 1540917640 B - - gz pam_setcred- 3 3 1585713595 A - - gz establish / delete user credentialssg_wr_mode- 8 8 1585715378 A - - gz write (modify) SCSI mode pagegrub2-set-default- 8 8 1722985065 A - - gz Set the default boot menu entry for GRUB.modf modf 3 modf 3pxcb_ungrab_keyboard- 3 3 1540917640 A - - gz heightmmofscreenHeightMMOfScreen 3 3 1710950785 B - - gz screen information functions and macrosttyname_r 3p- 3p 3p 1402354219 B - - gz find the pathname of a terminalxcolorXColor 3 3 1710950786 A - - gz create, copy, or destroy colormaps and color structuremalloc 3- 3 3 1402354211 A - - gz allocate and free dynamic memoryxrotatebuffersXRotateBuffers 3 3 1710950786 B - - gz manipulate cut and paste buffersxcb_glx_is_enabled_unchecked- 3 3 1540917640 B - - gz tknewsbiff- 1 1 1435097319 A - - gz pop up a window when news appearsxcupqueryversionXcupQueryVersion 3 3 1448003986 A - - gz Returns TOG-CUP protocol version supported by the X servertctmttest- 1 1 1402385697 A - - gz test cases of the table database APIcpanplus::dist::sampleCPANPLUS::Dist::Sample 3pm 3 1402392266 A - - gz - Sample code to create your own Dist::* pluginxcb_randr_create_lease- 3 3 1540917640 A - - gz systemd-sysv-generator- 8 8 1711457788 A - - gz Unit generator for SysV init scriptscoredumpctl- 1 1 1711457787 A - - gz Retrieve coredumps from the journaleuimage-pack-image- 1 1 1484780705 A - - gz ***TECH PREVIEW***vfprintf vfprintf 3 vfprintf 3pntohs ntohs 3 ntohs 3pxcb_glx_get_tex_gendv_data_end- 3 3 1540917640 B - - gz touchline- 3x 3 1720626759 B - - gz curses refresh control routinesasctime_r asctime_r 3 asctime_r 3p 4 *date' 0y*xlooNP NDG9*avc_P Do!*cursP :[:t*euar=Q HMQ*endsQ @ i*dh_gQ _*evp_gR <QR*bio_R @Ǚ*ssl_R m^*perlY Vxr*keycK 5P*lwre B?*xhosZ >N*xcb_ [  L*creaD[ :{:t*date[ 3*xscr[ VM+prea 2*inetJ\ AK*chec\ DO*setg\ -T*bio_] ;b*pureZ] Zusx*rc4_] 6(9*ssl_^ IA *wbkg]^ RI*git-^ K$*git-_ V*strtt_ J*snmp I!f*fchoT =PA*tcl_ JEN*newt ;D+xkba hݏ(+striy +xdel9 L%-*xml:< mDb+ccis 6+xfre Qp+svce1 F**extu e*T*tcl_3 rA*xext M&u+extu W*xkbf i0)*path_ ,*canv ?*kerbأ 5JY+b::s W+extuO VΆ*vlin P{y*xcb_l 9*ec_k rۆ*git-* Pw*expm ]O*psel V*getgϥ DN]*fabs 4*tcl_\ Hځ*matc *fseeg :J*adjt K&*mloc 5*mq_n P[5*evp_q O*gpg_ը P,Lt*xtap3 Bj+syst i7*fcma 57*rresɩ N%*xcb_$ ݐ+time Wb+xunl ?|,*pkacQ @}E*fcfi H>+ssl_N ~Q+cons Q+tiffF _{T*xcb_ *F*unbu3 *-*xcb_f )v+tk_t H1J*sets j1*pvck) F+setl *xsett G U*sslvά o+=*versJ ? *linu l'h*nat  .*add_- m*auto ={e*date 3˦*xcb_6 #=w+curs/ ukf+xcb_ -a+read 6e+xkbfD Mwe*crypt N+mq_t A3,+sema Cn*wmem Lu+secuL P+pod: [&*xtapV H+getf~ m I+mvde 1@*curs Z*xcb_ $*xcb_Q C!*strt =I*xcb_ *xcms 81E*perlA 6 {*bool <k*NAN 3s]*powf +<:*git-3 C*rpci 1oL *netlޯ *getp ?x*loca =Id*evp_P YU*xcb_ 5n*lrin \;*cpup` X[L*xcb_ %1a*colu **list6 f*ip  1>*tcl_P <_*moveX Mˮ.*avc_Z 5e*trun =**ec_k~S v FI*xcb_ %q*unli; K.Y*perl (_,*gawk C֥}*xcb_ x *xcmsD 2\*loca F0k*va_eY :e *copy:Z 9{:*date 3snmpd.conf- 5 5 1706198099 A - - gz configuration file for the Net-SNMP SNMP agentfchown 3p- 3p 3p 1402354215 A - - gz change owner and group of a filetcl_sethashvalueTcl_SetHashValue 3 3 1448008822 B - - gz procedures to manage hash tablesnewterm_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionxml::libxml::regexpXML::LibXML::RegExp 3pm 3 1402352994 A - - gz XML::LibXML::RegExp - interface to libxml2 regular expressionsextutils::mm_nw5ExtUtils::MM_NW5 3pm 3 1402365500 A - - gz methods to override UN*X behaviour in ExtUtils::MakeMakertcl_utftotitleTcl_UtfToTitle 3 3 1448008822 B - - gz routines for manipulating the case of Unicode characters and UTF-8 stringsxextendedmaxrequestsizeXExtendedMaxRequestSize 3 3 1710950785 B - - gz Display macros and functionsxkbfreecontrolsXkbFreeControls 3 3 1710950785 A - t gz Frees memory used by the ctrls member of an XkbDescRec structurecanvas- n n 1448008911 A - - gz Create and manipulate canvas widgetskerberos- 7 7 1726771586 A - - gz Overview of using Kerberosvline- 3x 3 1720626759 B - - gz create curses borders, horizontal and vertical linesxcb_screensaver_query_version- 3 3 1540917640 A - - gz ec_key_clear_flagsEC_KEY_clear_flags 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_KEY objects.git-cherry-pick- 1 1 1722330783 A - - gz Apply the changes introduced by some existing commitsexpm1f expm1f 3 expm1f 3ppselect 3- 3 3 1402354206 C FD_CLR - gz getgrgid 3p- 3p 3p 1402354215 A - - gz get group database entry for a group IDfabsl 3p- 3p 3p 1402354215 B - - gz absolute value functiontcl_parseexprTcl_ParseExpr 3 3 1448008822 B - - gz parse Tcl scripts and expressionsmatchpathcon_filespec_add- 3 3 1585710994 B - - gz check and report whether any specification index has no matches with any inode. Maintenance and statistics on inode associationsfseeko 3- 3 3 1402354209 A - - gz seek to or report file positionadjtime- 3 3 1402354207 A - - gz correct the time to synchronize the system clockmlock mlock 2 mlock 3pmq_notify 3- 3 3 1402354211 A - - gz register for notification when a message is availableevp_pkey_get1_ec_keyEVP_PKEY_get1_EC_KEY 3ssl 3 1721417624 B - - gz EVP_PKEY assignment functions.gpg_keys.conf- 5 5 1601569733 A - - gz Configuration file for abrt-action-save-package-data.xtappsetexitflagXtAppSetExitFlag 3 3 1501646833 A - - gz thread support functionsfcmatrixshearFcMatrixShear 3 3 1520307172 A - - gz Shear a matrixrresvport_af- 3 3 1402354212 B - - gz routines for returning a stream to a remote commandxcb_dri2_wait_sbc- 3 3 1540917640 A - - gz pkaction- 1 1 1643139762 A - - gz Get details about a registered actionfcfileisdirFcFileIsDir 3 3 1520307172 A - - gz check whether a file is a directoryxcb_render_query_pict_index_values_values- 3 3 1540917640 B - - gz unbuffer- 1 1 1435097319 A - - gz unbuffer outputxcb_xvmc_list_subpicture_types_unchecked- 3 3 1540917640 B - - gz setsockcreatecon_raw- 3 3 1585710994 B - - gz get or set the SELinux security context used for creating a new labeled socketspvck- 8 8 1619616701 A - - gz Check the consistency of physical volume(s)xsetpointermappingXSetPointerMapping 3 3 1710950786 A - - gz manipulate pointer settingssslv2_methodSSLv2_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionsversion 3pm- 3pm 3 1585713786 A - - gz Perl extension for Version Objectslinux64- 8 8 1612283497 B - - gz change reported architecture in new program environment and set personality flagsnat- 8 8 1601484048 C tc-nat - gz add_wch- 3x 3 1720626759 B - - gz add a complex character and rendition to a curses window, then advance the cursorauto_execok- n n 1448008823 A - - gz standard library of Tcl proceduresdatetime::locale::ar_saDateTime::Locale::ar_SA 3pm 3 1402390641 A - - gz xcb_xv_query_encodings_info_length- 3 3 1540917640 B - - gz crypto_set_locking_callbackCRYPTO_set_locking_callback 3ssl 3 1721417624 B - - gz OpenSSL thread supportnetlink netlink 3 netlink 7? &D  $9M(xcb_ (evp_2 @jSc(rfki K(cont ? (tcl_ < ;(locam UF(memc /Zo(/etc &V-(ulim 's(xrec7 :)(tclt B[(msgs <wz(mvin S(setlk /%?(xtse (mq_nH RP(winw SC(warn C(hashX O8(frex YA(tap: !n(mall ;@~v(perl 8{ (date7 3$C(xsub G](tk_d D)(tcl_ n%B(fmin J6(ec 3 6g(xcre- @Nn(date{ W (xcb_ +EĎ(cata+ D(db_sF 9X (strt 4 `(xcb_ ;(xcb_ -!T(tcl_E YC=(tcdr "ks(atan /W(eval 0(html SV(fcco} I^>(getm P(prli1 2V(tcl_m N{(date 3a(brea @ũ(git-^ Buz(tlsv oq(date( 8^:c(syst} "2R(cter0 8*E(xtnaB0 \" (mall0 G(defa1 X5(lwrep1 RR(xcb_1 -~(ssl_ 2 u)(io::2 t]E(xcb_ :(shut*3 Eg(fcnaz3 P(pchr3 i(git-4 :W(pthrM4 Y>((xkbf4 -(strxW5 ](nanfu5 -(bn_b5 T(bio_6 6Hs(cbrtS6 -(cpan6 E(xcb_6 &:(nftw$7 )(lwreT7 AVk(xcb_7 u(sigl7  T(mke28 >E(lwreF8 A.E(evp_8 _%Ƚ(fcat9 FP(fnmaq9 D(xcb_9 "u(link9 /r (mran: [[i(slogh: D~P#(euca: @oa(_tif; 3$(exp1E; 7|<(fcra; A_1(remo; *{(date < 3G(repoT< B-(fput< 9(putc< "H(yaml< U4(xcb_I= ) (evp_= N}D(desk= 7#(cpan8> ND(fcra> O(eusc? P_R(randj? $BG(pthr0 m(xcb_? -(date0 0-(raw 0 1U" (pass1 J\(tiff[1 Zt>(bio_1 :(syst2 ?ae(datea2 1Ok(dh_g2 B?*(rsa_3 TF5(xcb_o3 $gQ(lcon3 [A(ssl_4 R-(xcb_x4 3(matc4 D(pcreg5 >.(true? .(tcl_5 L.(tanh? (libt6 dP(col|6 ?(lwre6 6]\(x5097 Z4(locav7 rK(lldi8 d(tcl_8 a(strc8 HQm(sem_8 A m"(xcb_<9 !(gropx9 6_(lrou9 ;(isdi9 5? / y4)vfsc 2)tcl_{: I:9)file: Q)ioct+; )`)xcre\; :u)gnu_; 8@)perl; :)vgim9< 6)remq}< 9L)lwre< 6 )xcb_< o")tcl_8= O-)ssl_= C)lslo= N)iswdB> I 1)get_> 3|V=)xcb_> )abrt ? t,_)posi@ Y)evp_? ; )pcrer@ >)pcre@ >޸)wbkg$A Rad)sigp~A 2)xdisA f)xcb_4B #8b)xkbdrB )perl!C 6)extueC YA)ip-gC O D)defa ?m)xcb_I $#)aio_ `b)xtca )xrms H/)sest .b)xlis- MIWL)e4de B)xwct H)xcb_* ),)tempn L2I)line 7\)repo <~)nohuN Z)attef 7)cpup p)xcb_ y!)mysq ^P)dhpa IcU)ssl_ Mײ)od 17 @Ʀ)term| EH)xkbg P)sran /)fiel N)stdoq 1A)tcpd 4o)ssl_ TDX)log1W  )xcb_r 7Ξ/)tabs ')curs :I)asn1 F0)mempy +16)tcl_ nF)"io:0 9()lrepz G9)lwre K.)file 9[()strlc ;z)loca f)mii-$ Nm)i2d_{ e)bn_c KD)endm 2)_tif 2n)xcb_ JR)df  RK)euar& f)xcb_ %^)menu ?c)iso-L ^u )posi G,)trun 8 4~)wcsnW A|)sys: Q<)unpo KDL)cpanW bzhV)id 1 1wb)mvwi K6R)xcre^ 9uC)net: }n)comp2 wCnn)sigp ?)tcl_ L%)aspr] 4Z)d2i_ R)xcb_ ')xcb_> 5)add_w b˷)dsa_ <B)fsca KX)xcb_/ 'n)mysqq @r)dove ;o )wcss H*)setsU 2>)log2 6=)loca W*)xloc2 8&)updav O`)wcsn HKZ)xdr_+ FU)bsd_} :)xcms 8.I)UTF- <)__fr =})perlV KK)cloc 3f)mble )incr:: <defaultgcDefaultGC 3 3 1710950785 B - - gz Display macros and functionsxcb_randr_get_output_property_reply- 3 3 1540917640 B - - gz aio_error 3p- 3p 3p 1402354214 A - - gz retrieve errors status for an asynchronous I/O operation (REALTIME)xtcancelselectionrequestXtCancelSelectionRequest 3 3 1501646833 B - - gz bundle multiple selection conversion requests into a single request using MULTIPLE targetxrmstringtoquarklistXrmStringToQuarkList 3 3 1710950786 B - t gz manipulate resource quarkssestatus- 8 8 1585713889 A - - gz SELinux status toolxlistfontsXListFonts 3 3 1710950786 A - - gz obtain or free font names and informatione4defrag- 8 8 1711459141 A - - gz online defragmenter for ext4 filesystemxwctextescapementXwcTextEscapement 3 3 1710950786 B - - gz obtain the escapement of textxcb_glx_get_minmax_parameteriv_unchecked- 3 3 1540917640 B - - gz templateTemplate 3pm 3 1402357151 A - - gz Front-end module to the Template ToolkitlinesLINES 3x 3 1720626759 B - - gz curses global variablesreport_mailx.conf- 5 5 1585834715 A - - gz configuration file for libreport.nohup nohup 1p nohup 1attemptckrealloc- 3 3 1448008821 B - - gz allocate or free heap memorycpupower-idle-info- 1 1 1731045638 A - - gz xcb_xv_list_image_formats- 3 3 1540917640 A - - gz mysql_config_editor- 1 1 1697025034 A - - gz configure authentication information for connecting to MySQL serverdhparams_printDHparams_print 3ssl 3 1721417624 B - - gz print cryptographic parametersssl_set0_chainSSL_set0_chain 3ssl 3 1721417624 B - - gz extra chain certificate processingod 1- 1 1 1605565487 A - - gz dump files in octal and other formatsterm::completeTerm::Complete 3pm 3 1698237677 A - - gz Perl word completion modulexkbgetdeviceinfoXkbGetDeviceInfo 3 3 1710950785 A - - gz Determine whether the X server allows Xkb access to particular capabilities of input devices other than the core X keyboard, or to determine the status of indicator maps, indicator names or button actions on a non-KeyClass extension devicesrandom srandom 3 srandom 3pfield_init- 3x 3 1720626759 B - - gz set hooks for automatic invocation by applicationsstdout 3p- 3p 3p 1402354218 B - - gz standard I/O streamstcpdump- 8 8 1575308684 A - - gz dump traffic on a networkssl_use_rsaprivatekey_fileSSL_use_RSAPrivateKey_file 3ssl 3 1721417624 B - - gz load certificate and key datalog1pf log1pf 3 log1pf 3pxcb_circulate_window_checked- 3 3 1540917640 B - - gz Change window stacking ordertabs tabs 1p tabs 1curs_pad- 3x 3 1715932338 A - - gz create and display curses padsasn1_time_set_stringASN1_TIME_set_string 3ssl 3 1721417624 B - - gz ASN.1 Time functions.mempcpy- 3 3 1402354213 A - - gz copy memory areatcl_deletefilehandlerTcl_DeleteFileHandler 3 3 1448008821 B - - gz associate procedure callbacks with files or devices (Unix only)"io::socket::ip""IO::Socket::IP" 3pm 3 1523406931 C IO::Socket::IP - gz lreplace- n n 1448008823 A - - gz Replace elements in a list with new elementslwres- 3 3 1725373371 A - - gz introduction to the lightweight resolver libraryfile-hierarchy- 7 7 1711457788 A - t gz File system hierarchy overviewstrlen 3- 3 3 1402354212 A - - gz calculate the length of a stringlocale::codes::langfamLocale::Codes::LangFam 3pm 3 1402383323 A - - gz standard codes for language extension identificationmii-tool- 8 8 1565313023 A - - gz view, manipulate media-independent interface statusi2d_ecpkparameters_fpi2d_ECPKParameters_fp 3ssl 3 1721417624 B - - gz Functions for decoding and encoding ASN1 representations of elliptic curve entitiesbn_ctx_freeBN_CTX_free 3ssl 3 1699892205 A - - gz allocate and free BN_CTX structuresend- 3 3 1402354208 A - - gz end of program segments_tiffmemset_TIFFmemset 3tiff 3 1729525165 C TIFFmemory - gz xcb_glx_delete_queries_arb- 3 3 1540917640 A - - gz df df 1p df 1euare-accountgetsummary- 1 1 1484780705 A - - gz Display account-level information about account entity usage and IAM quotasxcb_res_query_client_resources_reply- 3 3 1540917640 B - - gz fscanf fscanf 3 fscanf 3pmenu_spacing- 3x 3 1720626759 A - - gz Control spacing between menu items.iso-8859-6- 7 7 1402354219 B - t gz ISO 8859-6 character set encoded in octal, decimal, and hexadecimalposix_trace_eventset_fill- 3p 3p 1402354217 B - - gz manipulate trace event type sets (TRACING)truncf 3- 3 3 1402354213 B - - gz round to integer, toward zerowcsncpy 3p- 3p 3p 1402354219 A - - gz copy part of a wide-character stringsys::syslogSys::Syslog 3pm 3 1402356609 A - - gz Perl interface to the UNIX syslog(3) callsunpost_menu- 3x 3 1720626759 B - - gz write or erase menus from associated subwindowscpanplus::config::homeenvCPANPLUS::Config::HomeEnv 3pm 3 1402392266 A - - gz Set the environment for the CPANPLUS base dirid 1p- 1p 1p 1402354204 A - - gz return user identitymvwinstr- 3x 3 1720626759 B - - gz get a string of characters from a curses windowxcreateocXCreateOC 3 3 1710950786 A - - gz create output contextsnet::ssleay::handleNet::SSLeay::Handle 3pm 3 1501668898 A - - gz Perl module that lets SSL (HTTPS) sockets be handled as standard file handles.compare- 1 1 1731392888 A - - gz mathematically and visually annotate the difference between an image and its reconstruction.sigprocmask 3p- 3p 3p 1402354218 A - - gz examine and change blocked signalstcl_setunicodeobjTcl_SetUnicodeObj 3 3 1448008822 B - - gz manipulate Tcl objects as stringsasprintf- 3 3 1402354213 A - - gz print to allocated stringd2i_x509_req_fpd2i_X509_REQ_fp 3ssl 3 1721417624 B - - gz PKCS#10 certificate request functions.xcb_randr_get_screen_info_rates_length- 3 3 1540917640 B - - gz xcb_shape_query_extents_reply- 3 3 1540917640 B - - gz add_wchstr- 3x 3 1720626759 B - - gz add an array of complex characters (and attributes) to a curses windowdsa_set_methodDSA_set_method 3ssl 3 1721417624 A - - gz select DSA methodxcb_selinux_set_device_context_checked- 3 3 1540917640 B - - gz mysqladmin- 1 1 1697025034 A - - gz a MySQL server administration programdoveadm-stop- 1 1 1694697466 B - - gz Dovecot's administration utilitywcsstr 3- 3 3 1402354213 A - - gz locate a substring in a wide-character stringsetstate 3- 3 3 1402354212 B - - gz random number generatorlog2l 3- 3 3 1402354210 B - - gz base-2 logarithmic functionlocal::lib- 3pm 3 1501962388 A - - gz create and use a local lib/ for perl modules with PERL5LIBxlocaleofomXLocaleOfOM 3 3 1710950786 B - - gz open output methodsupdate-alternatives- 8 8 1605295997 B - - gz maintain symbolic links determining default commandswcsncmp 3- 3 3 1402354213 A - - gz compare two fixed-size wide-character stringsxdr_callhdr- 3 3 1402354213 B - - gz library routines for remote procedure callsbsd_signal bsd_signal 3 bsd_signal 3pxcmsciexyyXcmsCIExyY 3 3 1710950786 B - - gz Xcms color structureUTF-8 7- 7 7 1402354220 C utf8 - gz __freadable- 3 3 1402354207 B - - gz interfaces to stdio FILE structureperltie- 1 1 1698237668 A - - gz how to hide an object class in a simple variableclock_getres 3- 3 3 1402354208 A - - gz clock and time functionsmblen mblen 3 mblen 3pvfscanf 3- 3 3 1402354213 B - - gz input format conversionwmemchr 3- 3 3 1402354213 A - - gz search a wide character in a wide-character arrayxtappunlockXtAppUnlock 3 3 1501646833 B - - gz lock and unlock application contextcurs_addchstr- 3x 3 1715932335 A - - gz add a string of characters (and attributes) to a curses windowxcb_dri2_connect_driver_name_length- 3 3 1540917640 B - - gz xcb_glx_get_floatv_reply- 3 3 1540917640 B - - gz strtoq- 3 3 1402354212 B - - gz convert a string to a long integerxcb_present_query_version- 3 3 1540917640 A - - gz xcmscieluvXcmsCIELuv 3 3 1710950786 B - - gz Xcms color structureperlhaiku- 1 1 1698237666 A - - gz Perl version 5.10+ on Haikuboolcodes- 3x 3 1720626759 B - - gz curses terminfo global variablesNAN 3- 3 3 1402354207 B - - gz floating-point constantspowf 3p- 3p 3p 1402354217 B - - gz power functiongit-sh-i18n--envsubst- 1 1 1722330782 A - - gz Git's own envsubst(1) for i18n fallbacksrpcinfo- 8 8 1585714772 A - - gz report RPC informationgetpt- 3 3 1402354209 A - - gz open the pseudoterminal master (PTM)locale 5- 5 5 1402354219 A - - gz describes a locale definition fileevp_pkey_paramgen_initEVP_PKEY_paramgen_init 3ssl 3 1721417624 B - - gz key and parameter generation functionsxcb_genericevent_query_version- 3 3 1540917640 A - - gz lrintf 3p- 3p 3p 1402354216 B - - gz round to nearest integer value using current rounding directioncpupower-set- 1 1 1731045638 A - - gz Set processor power related kernel or hardware configurationsxcb_res_query_client_resources_types- 3 3 1540917640 B - - gz column- 1 1 1612283497 A - - gz columnate listslisten 3p- 3p 3p 1402354216 A - - gz listen for socket connections and limit the queue of incoming connectionsip ip 8 ip 7truncl 3p- 3p 3p 1402354219 B - - gz round to truncated integer valuexcb_selinux_get_device_context_reply- 3 3 1540917640 B - - gz unlink 2- 2 2 1402354206 A - - gz delete a name and possibly the file it refers toperldoc 3pm- 3pm 3 1402388268 C Pod::perldoc - gz gawk- 1 1 1720626735 A - - gz pattern scanning and processing languagexcb_randr_get_crtc_gamma_size- 3 3 1540917640 A - - gz xcmsstorecolorXcmsStoreColor 3 3 1710950786 A - - gz set colorslocale::maketextLocale::Maketext 3pm 3 1402353872 A - - gz framework for localizationdatetime::locale::zh_sgDateTime::Locale::zh_SG 3pm 3 1402390638 A - - gz datetime::locale::stDateTime::Locale::st 3pm 3 1402390636 A - - gz trace n- n n 1448008824 A - - gz Monitor variable accesses, command usages and command executionsxcb_glx_get_materialiv_data- 3 3 1540917640 B - - gz fgetwc_unlocked- 3 3 1402354209 B - - gz nonlocking stdio functionskeyctl_search- 3 3 1402366674 A - - gz Search a keyring for a keylwres_context_initserial- 3 3 1725373371 B - - gz lightweight resolver context managementpread pread 2 pread 3pxkbaddgeomcolorXkbAddGeomColor 3 3 1710950785 A - - gz Add one color name to an existing keyboard geometry descriptionstring_to_security_class- 3 3 1585710994 B - - gz convert between SELinux class and permission values and string names. print_access_vector - display an access vector in human-readable form.xdeletepropertyXDeleteProperty 3 3 1710950786 B - - gz obtain and change window propertiescciss- 4 4 1402354219 A - - gz HP Smart Array block driverxfreefontnamesXFreeFontNames 3 3 1710950786 B - - gz obtain or free font names and informationsvcerr_auth- 3 3 1402354212 B - - gz library routines for remote procedure callsextutils::mm_macosExtUtils::MM_MacOS 3pm 3 1402365499 A - - gz once produced Makefiles for MacOS Classicb::showlexB::Showlex 3pm 3 1698237671 A - - gz Show lexical variables used in functions or filesextutils::mm_vosExtUtils::MM_VOS 3pm 3 1402365499 A - - gz VOS specific subclass of ExtUtils::MM_Unixsystemd-gpt-auto-generator- 8 8 1711457788 A - t gz Generator for automatically discovering and mounting root, /home and /srv partitions, as well as discovering and enabling swap partitions, based on GPT partition type GUIDs.time::localTime::Local 3pm 3 1402342288 A - - gz efficiently compute time from local and GMT timexunlockdisplayXUnlockDisplay 3 3 1710950786 B - - gz multi-threading supportssl_ctx_set_client_ca_listSSL_CTX_set_client_CA_list 3ssl 3 1721417624 A - - gz set list of CAs sent to the client when requesting a client certificateconsolehelper- 8 8 1565320163 A - - gz A wrapper that helps console users run system programstiffwritetileTIFFWriteTile 3tiff 3 1729525165 A - - gz encode and write a tile of data to an open TIFF filetk_textpastetk_textPaste n n 1448008912 B - - gz Create and manipulate text widgetssetlogmask setlogmask 3 setlogmask 3pcurs_getcchar- 3x 3 1715932337 A - - gz Get a wide character string and rendition from a cchar_t or set a cchar_t from a wide-character stringxcb_xfixes_create_region_from_window_checked- 3 3 1540917640 B - - gz read 2- 2 2 1402354205 A - - gz read from a file descriptorxkbfreedeviceinfoXkbFreeDeviceInfo 3 3 1710950785 A - - gz Free an XkbDeviceInfoRec structuremq_timedreceive 2- 2 2 1402354205 B - - gz receive a message from a message queuesemanage-dontaudit- 8 8 1585713889 A - - gz SELinux Policy Management dontaudit toolsecurity_av_perm_to_string- 3 3 1585710994 B - - gz convert between SELinux class and permission values and string names. print_access_vector - display an access vector in human-readable form.pod::simple::methodyPod::Simple::Methody 3pm 3 1402365606 A - - gz - turn Pod::Simple events into method callsgetfscreatecon- 3 3 1585710994 A - - gz get or set the SELinux security context used for creating a new file system objectmvderwin- 3x 3 1720626759 B - - gz create curses windowsttk_image- n n 1448008912 A - - gz Define an element based on an image |  ֥}*xcb_ y*xlooNP NDG9*avc_P Do!*cursP :[:t*euar=Q HMQ*endsQ @ i*dh_gQ _*evp_gR <QR*bio_R @Ǚ*ssl_R mx *xcmsD 2S*xcb_ T *lessCT *memmYT -L*tempT _'*crypU ;Ώ*sha3JU -/]*fputU D+*tanhU 6&̕*sendV 7r*rt_sPV M*dnssV 3+o*xtdiV SX*xcb_RW *]*dataW o*dateX 0m*dpmsXX }\*loca FQ*lz4c=Y Q0k*va_eY :>^*perlY Ve *copy:Z 9{:*date 3?*xhosZ >N*xcb_ [  L*creaD[ :{:t*date[ 3*xscr[ V2*inetJ\ AK*chec\ DO*setg\ -T*bio_] ;b*pureZ] Zusx*rc4_] 6(9*ssl_^ IA *wbkg]^ RI*git-^ K$*git-_ V*strtt_ J*snmp I!f*fchoT =PA*tcl_ JEN*newt ;%-*xml:< m**extu e*T*tcl_3 rA*xext M*xkbf i0)*path_ ,*canv ?*kerbأ 5Ά*vlin P{y*xcb_l 9*ec_k rۆ*git-* Pw*expm ]O*psel V*getgϥ DN]*fabs 4*tcl_\ Hځ*matc *fseeg :J*adjt K&*mloc 5*mq_n P[5*evp_q O*gpg_ը P,Lt*xtap3 Bi7*fcma 57*rresɩ N%*xcb_$ |,*pkacQ @}E*fcfi H{T*xcb_ *F*unbu3 *-*xcb_f )1J*sets j1*pvck) F*xsett G U*sslvά o+=*versJ ? *linu l'h*nat  .*add_- m*auto ={e*date 3˦*xcb_6 #we*crypt Nn*wmem L&*xtapV H@*curs Z*xcb_ $*xcb_Q C!*strt =I*xcb_ *xcms 81E*perlA 6 {*bool <k*NAN 3s]*powf +<:*git-3 C*rpci 1oL *netlޯ *getp ?x*loca =Id*evp_P YU*xcb_ 5n*lrin \;*cpup` X[L*xcb_ %1a*colu **list6 f*date' 0*ip  1>*tcl_P <_*moveX Mˮ.*avc_Z 5e*trun =**ec_k~S v FI*xcb_ %q*unli; K+ssl_N ~Q+cons Q+tiffF _v+tk_t H+setl =w+curs/ ukf+xcb_ -a+read 6e+xkbfD M+mq_t A3,+sema Cu+secuL P+pod: [+getf~ m I+mvde 1w_+ttk_4 > +inno0 ?\i+innwL0 S@+json0 A6 8+dtls0 u7+jour{1 4fS~+euwa1 *+iswg1 ::+pcreA2 >+posi2 X+dbi:3 e.+ldexq3 PF)+tc-p3 R{+date#4 3-+rintn4 3+vw_p4 D2+xrec4 J_+seliV5 J0z+memc5 /h+pcre5 >p+sema.6 @&0c+tiff~6 4nX+cpu_6 C+curs7 ;2+evp_U7 AÃ+lind7 :Ւ+euca7 !1+chro;9 %+db_uU9 V@ƽ+copy9 0D4+syst9 /4F+lvre9: CM+xcb_: !~s+msgg: >d+nran; Og+real`; /R+tcl_; 9ʛ+xget; 9+xcb_'< "{+dated< 3F+fget< JƏ+tty_= @Z+mlocL= RqL+siga= Gr+xcb_> V+euar;> 7 +ftry> .{Չ+xcir> H+xcb_? &+sign]? $+date? 0ly+llri@ `m*+moduk@ Cb+nolo@ 2+grub@ Hs+machUA >ê+posiA T5+xtde B CB+umou\B 8{+dateB 3J+scheB .+mdc2? Ү+fget&C v+x509DC a$+xargH S+syst(H Pdڭ+ssl_H ^-|+xcb_ I +syst3I >z +xmatI X̓+bio_I =e+mdc27+featK ?+xcb_bK +fcmaK 7q+net:K Dۘ+xcb_/L %B+xkbgL nI+bio_M A*Ɗ+lgamfM /Y5++fgetM +tcbtM AS+xcb_N { +date6N 3+mandN HY+drrN  @P+xcb_N 'ٯ9+fc 15O =OJb+perlxO FGiW+evp_P @[@+bio_QP 6Ϙ+xpenP E+wsetP 1+ssl_#Q e-/v+grubQ PF+set_Q H+lvchUR E,$+perlR L+xcb_R /p+randAS 9du+ilogO PXL+threS PjW+set_S X^z+execFT )M+prea innochecksum- 1 1 1697025034 A - - gz offline InnoDB file checksum utilityinnwstr- 3x 3 1720626759 B - - gz get a string of wchar_t characters from a curses windowjson::pp56JSON::PP56 3pm 3 1402382640 C JSON::backportPP::Compat5006 - gz dtls_client_methodDTLS_client_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionsjournalctl- 1 1 1711457787 A - - gz Query the systemd journaleuwatch-describe-alarms- 1 1 1484780705 A - - gz Describe alarmsiswgraph 3- 3 3 1402354210 A - - gz test for graphic wide characterpcre16_study- 3 3 1573510868 B - - gz Perl-compatible regular expressionsposix_trace_attr_getgenversion- 3p 3p 1402354217 B - - gz retrieve and set information about a trace stream (TRACING)dbi::faqDBI::FAQ 3pm 3 1402362412 A - - gz - The Frequently Asked Questions for the Perl5 Database Interfaceldexpf 3- 3 3 1402354210 B - - gz multiply floating-point number by integral power of 2tc-pie- 8 8 1601484048 A - - gz Proportional Integral controller-Enhanced AQM algorithmdatetime::locale::lo_laDateTime::Locale::lo_LA 3pm 3 1402390632 A - - gz rintl 3- 3 3 1402354212 B - - gz round to nearest integervw_printw- 3x 3 1720626759 B - - gz print formatted output in curses windowsxreconfigurewmwindowXReconfigureWMWindow 3 3 1710950786 B - - gz manipulate top-level windowsselinux_check_passwd_access- 3 3 1585710994 B - - gz query the SELinux policy database in the kernelmemccpy memccpy 3 memccpy 3ppcre32_copy_substring- 3 3 1573510868 B - - gz Perl-compatible regular expressionssemanage-export- 8 8 1585713889 A - - gz SELinux Policy Management import tooltiffvstripsizeTIFFVStripSize 3tiff 3 1729525165 C TIFFstrip - gz cpu_issetCPU_ISSET 3 3 1402354206 B - - gz macros for manipulating CPU setscurs_extend- 3x 3 1715932336 A - - gz miscellaneous curses extensionsevp_digestinit_exEVP_DigestInit_ex 3ssl 3 1721417624 B - - gz EVP digest routineslindex- n n 1448008823 A - - gz Retrieve an element from a listeuca-generate-environment-config- 1 1 1484780705 A - - gz Read environment variables and euca2ools.ini(5) files to discover the service URLs and credentials for a region, then output shellcode with the corresponding environment variables for that information. This output will contain secret access keys and should be treated with care.chroot chroot 2 chroot 1db_upgrade- 1 1 1481720647 A - - gz Upgrade files and databases to the current release version.copysignl 3- 3 3 1402354208 B - - gz copy sign of a numbersystemd-localed.service- 8 8 1711457788 A - - gz Locale bus mechanismlvremove- 8 8 1619616701 A - - gz Remove logical volume(s) from the systemxcb_xfixes_get_cursor_name_reply- 3 3 1540917640 B - - gz msggrep- 1 1 1465650365 A - - gz pattern matching on message catalognrand48 3- 3 3 1402354211 B - - gz generate uniformly distributed pseudo-random numbersrealpath 3p- 3p 3p 1402354217 A - - gz resolve a pathnametcl_evalobjvTcl_EvalObjv 3 3 1448008821 B - - gz execute Tcl scriptsxgetomvaluesXGetOMValues 3 3 1710950786 B - - gz open output methodsxcb_glx_vendor_private_with_reply- 3 3 1540917640 A - - gz datetime::locale::sa_inDateTime::Locale::sa_IN 3pm 3 1402390637 A - - gz fgetws 3- 3 3 1402354209 A - - gz read a wide-character string from a FILE streamtty_ioctl- 4 4 1402354219 A - - gz ioctls for terminals and serial linesmlockall 3p- 3p 3p 1402354216 A - - gz lock/unlock the address space of a process (REALTIME)sigaltstack 3p- 3p 3p 1402354218 A - - gz set and get signal alternate stack contextxcb_randr_set_panning_unchecked- 3 3 1540917640 B - - gz euare-groupdelpolicy- 1 1 1484780705 A - - gz Remove a policy from a groupftrylockfile 3- 3 3 1402354209 B - - gz lock FILE for stdioxcirculateeventXCirculateEvent 3 3 1710950786 A - - gz CirculateNotify event structurexcb_randr_get_output_info_name_length- 3 3 1540917640 B - - gz signal.h- 0p 0p 1402354203 A - t gz signalsdatetime::locale::guDateTime::Locale::gu 3pm 3 1402390643 A - - gz mdc2 MDC2 3ssl mdc2 3ssl mdc2 1sslllrintl 3p- 3p 3p 1402354216 B - - gz round to the nearest integer value using current rounding directionmodules-load.d- 5 5 1711457788 A - - gz Configure kernel modules to load at bootnologin 8- 8 8 1612283497 A - - gz politely refuse a logingrub2-sparc64-setup- 8 8 1722985065 A - - gz Set up a device to boot a sparc64 GRUB image.machine-id- 5 5 1711457787 A - - gz Local machine ID configuration fileposix_trace_get_status- 3p 3p 1402354217 A - - gz retrieve the trace attributes or trace status (TRACING)xtdestroywidgetXtDestroyWidget 3 3 1501646833 B - - gz create and destroy widgetsumount.nfs- 8 8 1634214566 A - - gz unmount a Network File Systemdatetime::locale::en_guDateTime::Locale::en_GU 3pm 3 1402390637 A - - gz sched_yield 2- 2 2 1402354205 A - - gz yield the processorfgetpos fgetpos 3 fgetpos 3px509_name_get_index_by_objX509_NAME_get_index_by_OBJ 3ssl 3 1721417624 B - - gz X509_NAME lookup and enumeration functionsnice 1p- 1p 1p 1402354204 A - - gz invoke a utility with an altered nice valueaio_error 3- 3 3 1402354207 A - - gz get error status of asynchronous I/O operationxcb_randr_query_output_property_unchecked- 3 3 1540917640 B - - gz xcb_glx_create_new_context_checked- 3 3 1540917640 B - - gz pause 2- 2 2 1402354205 A - - gz wait for signalxremovefromsavesetXRemoveFromSaveSet 3 3 1710950785 B - - gz change a client's save setec_point_mulEC_POINT_mul 3ssl 3 1721417624 B - - gz Functions for performing mathematical operations and tests on EC_POINT objects.locale::maketext::gutsloaderLocale::Maketext::GutsLoader 3pm 3 1402353872 A - - gz Deprecated module to load Locale::Maketext utf8 coderipemd160_initRIPEMD160_Init 3ssl 3 1721417624 B - - gz RIPEMD-160 hash functionposix_spawn_file_actions_addopen- 3p 3p 1402354216 A - - gz add close or open action to spawn file actions object (ADVANCED REALTIME)fcdircacheunloadFcDirCacheUnload 3 3 1520307172 A - - gz unload a cache filetowlower towlower 3 towlower 3pmd5 3ssl- 3ssl 3 1699892217 A - - gz MD2, MD4, and MD5 hash functionsxargs xargs 1p xargs 1systemd-getty-generator- 8 8 1711457788 A - - gz Generator for enabling getty instances on the consolessl_ctx_add_extra_chain_certSSL_CTX_add_extra_chain_cert 3ssl 3 1721417624 A - - gz add or clear extra chain certificatesxcb_xkb_bell- 3 3 1540917640 A - - gz systemd-sysctl- 8 8 1711457788 B - - gz Configure kernel parameters at bootxmatchvisualinfoXMatchVisualInfo 3 3 1710950786 B - t gz obtain visual information and visual structurebio_get_conn_int_portBIO_get_conn_int_port 3ssl 3 1721417624 B - - gz connect BIOmdc2_updateMDC2_Update 3ssl 3 1721417624 B - - gz MDC2 hash functionuri::heuristicURI::Heuristic 3pm 3 1402351652 A - - gz Expand URI using heuristicscexp2l- 3 3 1402354207 B - - gz base-2 exponent of a complex numberfeature- 3pm 3 1698237678 A - - gz Perl pragma to enable new featuresxcb_record_enable_context_data- 3 3 1540917640 B - - gz fcmatrixrotateFcMatrixRotate 3 3 1520307172 A - - gz Rotate a matrixnet::sslNet::SSL 3pm 3 1402373604 A - - gz support for Secure Sockets Layerxcb_list_fonts_with_info_name_length- 3 3 1540917640 B - - gz get matching font names and informationxkbgetgeometryXkbGetGeometry 3 3 1710950785 A - - gz Loads a keyboard geometry if you already have the keyboard descriptionbio_get_retry_bioBIO_get_retry_BIO 3ssl 3 1699892204 A - - gz BIO retry functionslgammaf 3p- 3p 3p 1402354216 B - - gz log gamma functionfgetc fgetc 3 fgetc 3ptcbtest- 1 1 1402385697 A - - gz test cases of the B+ tree database APIxcb_poly_fill_arc_checked- 3 3 1540917640 B - - gz datetime::locale::lt_ltDateTime::Locale::lt_LT 3pm 3 1402390641 A - - gz mandb- 8 8 1540931193 A - t gz create or update the manual page index cachesdrr- 8 8 1601484048 C tc-drr - gz xcb_list_installed_colormaps_cmaps_end- 3 3 1540917640 B - - gz fc 1p- 1p 1p 1402354203 A - - gz process the command history listperlintro- 1 1 1698237666 A - - gz - a brief introduction and overview of Perlilogbf ilogbf 3 ilogbf 3pevp_cipher_flagsEVP_CIPHER_flags 3ssl 3 1721417624 B - - gz EVP cipher routinesbio_read_filenameBIO_read_filename 3ssl 3 1721417624 B - - gz FILE bioxpendingXPending 3 3 1710950786 B - - gz handle output buffer or event queuewsetscrreg- 3x 3 1720626759 B - - gz curses output optionsssl_set_connect_stateSSL_set_connect_state 3ssl 3 1721417624 A - - gz prepare SSL object to work in client or server modegrub2-mkfont- 1 1 1722985065 A - - gz Convert common font file formats into the PF2 format.set_field_userptr- 3x 3 1720626759 B - - gz associate application data with a form fieldlvchange- 8 8 1619616701 A - - gz Change the attributes of logical volume(s)perlos2- 1 1 1698237667 A - - gz Perl under OS/2, DOS, Win0.3*, Win0.95 and WinNT.xcb_glx_get_compressed_tex_image_arb_unchecked- 3 3 1540917640 B - - gz rand_file_nameRAND_file_name 3ssl 3 1721417624 B - - gz PRNG seed filethreadThread 3pm 3 1698237678 A - - gz Manipulate threads in Perl (for old code only)set_mempolicy- 2 2 1402354205 A - - gz set default NUMA memory policy for a process and its childrenexecl 3- 3 3 1402354208 B - - gz execute a filexcb_glx_destroy_glx_pixmap_checked- 3 3 1540917640 B - - gz swprintf swprintf 3 swprintf 3pfcconfiggetcachedirsFcConfigGetCacheDirs 3 3 1520307172 A - - gz return the list of directories searched for cache filesskill- 1 1 1601486472 A - - gz send a signal or report process statusselection- n n 1448008912 A - - gz Manipulate the X selectionxcb_ungrab_key- 3 3 1540917640 A - - gz release a key combinationxcontextualdrawingXContextualDrawing 3 3 1710950786 B - - gz obtain fontset informationkeyok_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensioncasin casin 3 casin 3pevp_pkey_keygenEVP_PKEY_keygen 3ssl 3 1721417624 A - - gz key and parameter generation functionsglibc- 7 7 1402354219 B - - gz overview of standard C libraries on Linuxxcb_render_query_pict_formats_screens_iterator- 3 3 1540917640 B - - gz git-fast-import- 1 1 1722330780 A - - gz Backend for fast Git data importersxcb_x_print_print_get_screen_of_context_reply- 3 3 1540917640 B - - gz btrecord- 8 8 1565305324 A - - gz recreate IO loads recorded by blktraceeuare-roledel- 1 1 1484780705 A - - gz Delete a roletext::abbrevText::Abbrev 3pm 3 1698237677 A - - gz abbrev - create an abbreviation table from a listfinitel- 3 3 1402354209 B - - gz BSD floating-point classification functionsgetusershell- 3 3 1402354212 A - - gz get permitted user shellspow10l- 3 3 1402354211 B - - gz base-10 power functionsdatetime::locale::sw_keDateTime::Locale::sw_KE 3pm 3 1402390642 A - - gz grub-mkimage- 1 1 1722985065 C grub2-mkimage - gz abs 3p- 3p 3p 1402354214 A - - gz return an integer absolute valueeulb-describe-lb-attributes- 1 1 1484780705 A - - gz Show a load balancer's attributesxcb_xkb_list_components_compat_maps_iterator- 3 3 1540917640 B - - gz git-show-branch- 1 1 1722330782 A - - gz Show branches and their commitstrue 1- 1 1 1605565487 A - - gz do nothing, successfullyendservent endservent 3 endservent 3pungetch_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionxcreateimageXCreateImage 3 3 1710950785 B - - gz image utilitiesec_point_point2hexEC_POINT_point2hex 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_POINT objects.ttyname_r 3- 3 3 1402354213 B - - gz return name of a terminalarping- 8 8 1501833662 A - - gz send ARP REQUEST to a neighbour hostio::atomicfileIO::AtomicFile 3pm 3 1402371105 A - - gz write a file which is updated atomicallyec_gfp_nistp224_methodEC_GFp_nistp224_method 3ssl 3 1721417624 B - - gz Functions for obtaining EC_METHOD objects.xcb_glx_get_separable_filter_rows_and_cols_length- 3 3 1540917640 B - - gz false false 1p false 1close 2- 2 2 1402354204 A - - gz close a file descriptorrepodiff- 1 1 1589300861 A - - gz list differences between two or more Yum repositoriesmemchr 3- 3 3 1402354211 A - - gz scan memory for a charactersys-unconfig- 8 8 1605543616 A - - gz shell script to reconfigure the system upon next bootmodule::build::platform::riscosModule::Build::Platform::RiscOS 3pm 3 1402373050 A - - gz Builder class for RiscOS platformsssh-pkcs11-helper- 8 8 1707907012 A - - gz ssh-agent helper program for PKCS#11 supportmkostemp- 3 3 1402354211 B - - gz create a unique temporary filexorg-x11-fonts-update-dirs- 1 1 1540911299 A - - gz update X11 font directoriesdatetime::locale::rw_rwDateTime::Locale::rw_RW 3pm 3 1402390636 A - - gz xkbsetindicatormapXkbSetIndicatorMap 3 3 1710950785 A - t gz Downloads the changes to the server based on modifications to a local copy of the keyboard description which will update the maps for one or more indicatorsexecv 3- 3 3 1402354208 B - - gz execute a filessl_set_current_certSSL_set_current_cert 3ssl 3 1721417624 B - - gz extra chain certificate processingfloat.h- 0p 0p 1402354203 A - - gz floating typessend send n send 2 send 3pxcb_randr_get_monitors_unchecked- 3 3 1540917640 B - - gz i2d_ecpkparametersi2d_ECPKParameters 3ssl 3 1721417624 B - - gz Functions for decoding and encoding ASN1 representations of elliptic curve entities o {  .xcb_ 2.clon` 1 /aio_/ Iɗ/rpma [h.posiP` J?/gai_ /perl 6P/d2i_V OvJ.xcb_` "Fu.xcop` `.xconPa 5.regea 0_.encoa L.systb 2.b::dRb X /xcb_ /casi B.sys_b AW.xtopb K9.optiXc S.pem_sc 9cf.sqrtc <.memsc 9.systc "Zê.xcb_id ,:.eucad .datee 0m.xcb_e %u.seli&f |` \.fmaff :.strig ө.pthrg <.ssl_ h Bi._tra^h 5.xcb_h 00.pod:h 1-.tcl_0i Tь.evp_i V.strci 4+.umas9j D}e.erroj L.xcb_j !x\.iso_&k _9D.fcmak 5.genhk I0.ps2p'l mژ.dirnl G;.tcl_l ?I.star.xadd; P6.xcb_ 9PJ.shut I.log2= M.xcb_U & .ps2p =,.striٖ 'g.tc-m Mt.undor 9HV.xcb_ +2.atan @of.ssl_G T.xpee 9Npo/d2i_ I.zips @q/xkbc9 S+/x509 Ue{/xcb_ "9/clntK F/eulb B2.getb7 Rd.zles QM/FD_C $7.endp :~.exp2 9i!/fese-&c/tcsec _m/euca|N/xcb__*1Q.x509L P.ec_p o/fd_z :".inl_' #5{.ssl_P iH.git-Л @-.err_! T.strn o.atan A=.xcb_ .Ī.nextE =x.poll C͊.dispٝ CF].utim* .pwriA C.grubV (@{.comm 5X@.tcse L6.pastY /YU.wait ;,/asn1Aq.memo R<.getc/ 6%/hmac I +/scal) QV.mkdi̟ +.unger Plߥ.sg_l G3M.seli F|.xcb_q vQ.geti >.xkbs ow=.tcl_ S\.xcb_ ".sigg, )#_.xcb_` n~T.filt Eb.xcb_ 9u.git-@ 4Mk.rese 5l].nl 1 0,.strt JX.xfreR P.recu IΡ.sign @i.tcl_Y XM.xcb_ $N.xcb_ (u,.semcH ..inetc .sidp FjM.msyn ۞.perl 9בX.pthr- OVu.modf c.xtwi h%.ftok 08.cbrt` =.stdb 4sort 3pm- 3pm 3 1698237678 A - - gz perl pragma to control sort() behaviourperlriscos- 1 1 1698237668 A - - gz Perl version 5 for RISC OSxtdisplaytoapplicationcontextXtDisplayToApplicationContext 3 3 1501646833 A - - gz obtain an application contextbio_rw_filenameBIO_rw_filename 3ssl 3 1721417624 B - - gz FILE bioxcb_x_print_print_get_document_data_data_length- 3 3 1540917640 B - - gz xcb_shm_query_version_reply- 3 3 1540917640 B - - gz xparsecolorXParseColor 3 3 1710950786 B - t gz obtain color valuesxcb_selinux_get_window_create_context_context_end- 3 3 1540917640 B - - gz cpanplus::configCPANPLUS::Config 3pm 3 1402392266 A - - gz configuration defaults and heuristics for CPANPLUStap::formatter::file::sessionTAP::Formatter::File::Session 3pm 3 1439389327 A - - gz Harness output delegate for file outputtcl_errnoidTcl_ErrnoId 3 3 1448008822 A - - gz manipulate errno to store and retrieve error codespem 3ssl- 3ssl 3 1699892217 A - - gz PEM routinesec_key_set_public_key_affine_coordinatesEC_KEY_set_public_key_affine_coordinates 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_KEY objects.fchown32- 2 2 1402354204 B - - gz change ownership of a filemv 1p- 1p 1p 1402354204 A - - gz move filescrypt 3p- 3p 3p 1402354214 A - - gz string encoding function (CRYPT)xaddhostXAddHost 3 3 1710950786 A - - gz control host access and host control structurexcb_dri3_get_supported_modifiers_window_modifiers_length- 3 3 1540917640 B - - gz shutdown 3p- 3p 3p 1402354218 A - - gz shut down socket send and receive operationslog2l log2l 3 log2l 3pxcb_dri2_get_buffers_buffers_iterator- 3 3 1540917640 B - - gz ps2ps- 1 1 1605296035 A - - gz Ghostscript PostScript "distiller"stringprep_utf8_to_unichar- 3 3 1448125246 A - - gz API functiontc-mqprio- 8 8 1601484048 A - - gz Multiqueue Priority Qdisc (Offloaded Hardware QOS)undocumented- 3 3 1402354213 A - - gz undocumented library functionsxcb_xkb_get_compat_map_group_rtrn_iterator- 3 3 1540917640 B - - gz atan2l 3- 3 3 1402354207 B - - gz arc tangent function of two variablesssl_set_tmp_dhSSL_set_tmp_dh 3ssl 3 1721417624 B - - gz handle DH keys for ephemeral key exchangexpeekeventXPeekEvent 3 3 1710950786 B - - gz select events by typezipsplit- 1 1 1478364590 A - - gz split a zipfile into smaller zipfilesgetbkgrnd- 3x 3 1720626759 B - - gz curses window complex background manipulation routineszless- 1 1 1652367512 A - - gz file perusal filter for crt viewing of compressed textendpwent endpwent 3 endpwent 3pexp2 3p- 3p 3p 1402354215 A - - gz exponential base 2 functionsx509v3_config- 5ssl 5 1699892202 A - - gz X509 V3 certificate extension configuration formatec_point_freeEC_POINT_free 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_POINT objects.inl_p- 2 2 1402354205 B - - gz port I/Ossl_ctx_set_read_aheadSSL_CTX_set_read_ahead 3ssl 3 1721417624 A - - gz manage whether to read as many input bytes as possiblegit-symbolic-ref- 1 1 1722330782 A - - gz Read, modify and delete symbolic refserr_peek_last_error_line_dataERR_peek_last_error_line_data 3ssl 3 1721417624 B - - gz obtain error code and datastrncmp strncmp 3 strncmp 3patanhf 3p- 3p 3p 1402354214 B - - gz inverse hyperbolic tangent functionsxcb_xf86dri_get_drawable_info_back_clip_rects- 3 3 1540917640 B - - gz nextafterf 3- 3 3 1402354211 B - - gz floating-point number manipulationpoll 2- 2 2 1402354205 A - - gz wait for some event on a file descriptordisplaystringDisplayString 3 3 1710950785 B - - gz Display macros and functionsutimensat utimensat 2pwritev- 2 2 1402354205 B - - gz read or write data into multiple buffersa64l 3- 3 3 1402354210 A - - gz convert between long and base-64locale::codes::langext_codesLocale::Codes::LangExt_Codes 3pm 3 1402383323 A - - gz langext codes for the Locale::Codes::LangExt modulegrub-rpm-sort- 8 8 1722985065 C grub2-rpm-sort - gz command 1p- 1p 1p 1402354203 A - - gz execute a simple commandmkdir 1- 1 1 1605565487 A - - gz make directories  Xo p !E,xcb_]c .y5w,xcb_I ,datez 0[0,xdra K,xcb_! 35",xdg-X! N*,dbus! @^,isle" T( ,systk" 8J&?,perl" 6*,euca" FG?,tcl_[# G,xcb_# P,xcms# O> ,pthrF$ >q,ssl_$ L||M,def_% 5,xcb_G% !|,form% 4z,iden% @v,mvad& Zחf,lwp-l& 97,rhts& <,ctan& ,luse' &,md2_D' F{,date' 3M,curs' =18F,tcl_+( TV@,wpri( Dz,date( 1U,xcb_() #v,getpf) 2B,pthr) <&G,alia) 6"$$,coll5* D,xkbf* Hb,xcb_* -,xcb_+ 2y,packh+ Fe,ssl_+ cn },dove1, BH,setv, 6¡,getc, 5b_,stat, ){,ncur- H,pthri- 4,bio_- :{`,date- 3ք,dirC. 2,xlisy. RG/,xcb_. 'Z,sets/ 9d4,mantZ/ <,xcb_/ &,xsetp ?wT,abrtNp :X,wordp 1 H,intrp QRG,evp_/q C.%,xcb_q !b,xkbnq YX,cpu_.r BYS,mkti/ x,getgyr ;*,swapr 21,cursr 7=,fcchAs A:,pures C],mches 4H,writ!t #&q,xcb_Jt )8,pipet &Z,vfyst !,unset @,cfse0u 1{,datepu 35,atanu /߅,nfsiu Z$,xcb_Uv 9e,llrov },htolv X#,xcb_w ,sg_r:w =,secuw Ko,xcb_w >,unzix SS,tznapx @Ei,setpx A>,xcb_y .,xcb_Oy ,,pam_y >J,sg_wy 8N^[,grubz D!,modfkz |,xcb_z Rb,heigz Q8M,ttyn{ <О,xcolZ{ V,mall{ ; v,xrot{ H],xcb_R| l,tkne| <0hp,xcup| dP,tctmF} ?h,cpan} aR,xcb_~ dg,syst9~ ?,core~ >EK,euim~ - ,vfpr [,ntoh: 2,xcb_R  ,touc ;4,asct +,swpr` 0,fcco!` eH,skil` AT,sele` 54,xcb_!a 4V',xconda F,keyoa ;a,casib ZV,evp_b R6,glib{b D=,ar 1 D",xcb_b /C,git-c >FQ,btrec A$Y,euarc ( < N B-text&d Yѝ5-finid F-getud 4-pow1e 2{ -dateTe 3-grube ''-abs e =wz-eulbf <}_-xcb_of ->x-git-f :n#X-trueg 3=-ends;g ,F-ungebg ;>-xcreg 5i-ec_pg t-ttynqh 4 o-arpih ?'c-io::h R0-ec_gXi ] -xcb_i 2.-falsj HZG-clos1j 2R-repokj P-memcj 6-sys-k PZ-modu`k ]KI-ssh-k Gc-mkos6l 9n-xorgxl 6{d-datel 3t--xkbsm ^z-execm )!-ssl_ n S-floan +"-sendn d-xcb_n !-ܛ-i2d_o  {"-base Q-tpagX >-grub &-date J-perl _;-xutfM ULY-yum- )-uran >v-io::1 K9:-ftim x-maps ;+-fsta 5O-cloc6 A{-wipe 9W -ldex E+ -nfs LcK-sinhg L[-tcl_| ] z-ip6t 8@&-pvsc5 4T-xdefp W[-tap: #fi-snpr_ [}$-numf <'-curs b-xcb_8 t)-uuidr , T-fcfi ;-fcch F-xexp@ <w-file >B-open Z-lvmc &a|-uude7 1 f-pcres >n-floo +^-pthr O-cfgeg _;N-butt ?:--xcb_ "C-tlsvW vm-xcb_ " -pthr V[-xcb_K 0-loglv 7O5-bn_b T-xcb_ :-tan Q +R-xcb_ S-has_ ;:-tlsv q:Z-tcl_| C!S-dlfc ,ھ-tcl_ U̯-iso-w _X-tld_ '_N-xcb_5 -clog -inotn 9-__fw =;:-bn_c G݅-xcb_K (%-fold 5)B-fcma ;p-sigs {\-date8 3-sete @3@H-thin q6-mvwdG P%g-sele 6"-fcvt Fϲx-setu ,-tabs= 1m-xmbuu CR-xtna 4-free 4-fminA v,^-xrmvY z u-arm_ Eq'-ethe2 AH -bf_e~ :-cont K#s-pod: @}A-scank 44-devl 5-tcl_ _6-rexe\ <M5-pod: ] X|-new_ :F -xcb__ +L^-huns h-cmsu --zipgX U7K-vspr D@hr-fget !-xtcr fZ7-grub eyk-xcb_ 1n-PCREY 1;-tcl_ hyR-xcb_ ,v0-moduR PI-bio_ 3T-setr 2-xkbg4 6-prog E-tty d Zد-nget Cbase64- 1 1 1605565487 A - - gz base64 encode/decode data and print to standard outputtpage- 1 1 1402357150 A - - gz Process templates from command linegrub-reboot- 8 8 1722985065 C grub2-reboot - gz date date 1p date 1perlpolicy- 1 1 1698237667 A - - gz Various and sundry policies and commitments related to the Perl corexutf8lookupstringXutf8LookupString 3 3 1710950786 B - t gz obtain composed input from an input methodyum-langpacks- 8 8 1381222345 A - - gz Plugin for yumurandom- 4 4 1402354219 B - - gz kernel random number source devicesio::uncompress::bunzip2IO::Uncompress::Bunzip2 3pm 3 1402361983 A - - gz Read bzip2 files/buffersftime ftime 3 ftime 2 ftime 3pmapscrn- 8 8 1637771557 A - - gz load screen output mapping tablefstatfs64- 2 2 1402354204 B - - gz get file system statisticsclock_settime 3p- 3p 3p 1402354214 B - - gz clock and timer functions (REALTIME)wipefs- 8 8 1612283497 A - - gz wipe a signature from a deviceldexpl 3p- 3p 3p 1402354216 B - - gz load exponent of a floating-point numbernfs- 5 5 1634214566 A - - gz fstab format and options for the nfs file systemssinh sinh 3 sinh 3ptcl_getdoublefromobjTcl_GetDoubleFromObj 3 3 1448008821 A - - gz manipulate Tcl objects as floating-point valuesip6tables-save- 8 8 1601571148 B - - gz dump iptables rules to stdoutpvscan- 8 8 1619616701 A - - gz List all physical volumesxdefaultstringXDefaultString 3 3 1710950786 B - t gz convert text lists and text property structurestap::parser::sourcehandler::handleTAP::Parser::SourceHandler::Handle 3pm 3 1439389327 A - - gz Stream TAP from an IO::Handle or a GLOB.snprintf snprintf 3 snprintf 3pnumfnames- 3x 3 1720626759 B - - gz curses terminfo global variablescurs_border_set- 3x 3 1715932336 A - - gz create curses borders or lines using complex characters and renditionsxcb_shape_select_input_checked- 3 3 1540917640 B - - gz uuid_copy- 3 3 1612283497 A - - gz copy a UUID valuefcfiniFcFini 3 3 1520307172 A - - gz finalize fontconfig libraryfccharsetcreateFcCharSetCreate 3 3 1520307172 A - - gz Create an empty character setxexposeeventXExposeEvent 3 3 1710950786 A - - gz Expose event structurefile file n file 1p file 1open 3pm- 3pm 3 1698237678 A - - gz perl pragma to set default PerlIO layers for input and outputlvmcache- 7 7 1619616701 A - - gz LVM cachinguudecode 1- 1 1 1357525299 A - - gz decode an encoded filepcre32_get_substring_list- 3 3 1573510868 B - - gz Perl-compatible regular expressionsfloor 3p- 3p 3p 1402354215 A - - gz floor functionpthread_mutex_consistent- 3p 3p 1402354217 A - - gz mark state protected by robust mutex as consistentcfgetispeed 3- 3 3 1402354207 B - - gz get and set terminal attributes, line control, get and set baud ratebutton- n n 1448008911 A - - gz Create and manipulate button widgetsxcb_glx_get_polygon_stipple_reply- 3 3 1540917640 B - - gz tlsv1_server_methodTLSv1_server_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionsxcb_x_print_print_end_job_checked- 3 3 1540917640 B - - gz pthread_join pthread_join 3 pthread_join 3pxcb_grab_server- 3 3 1540917640 A - - gz logl 3- 3 3 1402354210 B - - gz natural logarithmic functionbn_blinding_set_flagsBN_BLINDING_set_flags 3ssl 3 1721417624 B - - gz blinding related BIGNUM functions.xcb_glx_feedback_buffer- 3 3 1540917640 A - - gz tan 3- 3 3 1402354213 A - - gz tangent functionxcb_dpms_disable_checked- 3 3 1540917640 B - - gz has_key_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensiontlsv1_2_methodTLSv1_2_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionstcl_appendexportlistTcl_AppendExportList 3 3 1448008822 A - - gz manipulate namespacesdlfcn.h- 0p 0p 1402354203 A - - gz dynamic linkingtcl_getindexfromobjstructTcl_GetIndexFromObjStruct 3 3 1448008822 B - - gz lookup string in table of keywordsiso-8859-13- 7 7 1402354219 B - t gz ISO 8859-13 character set encoded in octal, decimal, and hexadecimalclog clog 3 clog 3ptld_check_4tz- 3 3 1448125246 A - - gz API functionxcb_get_pointer_control_reply- 3 3 1540917640 B - - gz inotify_init1- 2 2 1402354205 B - - gz initialize an inotify instance__fwriting- 3 3 1402354207 B - - gz interfaces to stdio FILE structurebn_cmpBN_cmp 3ssl 3 1721417624 A - - gz BIGNUM comparison and test functionsxcb_glx_get_histogram_parameteriv_reply- 3 3 1540917640 B - - gz fold 1p- 1p 1p 1402354203 A - - gz filter for folding linesfcmatrixequalFcMatrixEqual 3 3 1520307172 A - - gz Compare two matricessigsetjmp sigsetjmp 3 sigsetjmp 3pdatetime::locale::ti_erDateTime::Locale::ti_ER 3pm 3 1402390638 A - - gz setenv 3- 3 3 1402354213 A - - gz change or add an environment variablethin_rmap- 8 8 1605543195 A - - gz output reverse map of a thin provisioned region of blocks frommetadata device or file.mvwdelch- 3x 3 1720626759 B - - gz delete character under the cursor in a curses windowselect select 2 select 3pfcvt 3- 3 3 1402354209 B - - gz convert a floating-point number to a stringsetuid 2- 2 2 1402354206 A - - gz set user identitytabs 1- 1 1 1715932340 A - - gz set tabs on a terminalxmbufgetversionXmbufGetVersion 3 3 1448003986 A - - gz X multibuffering functionsxtnameXtName 3 3 1501646833 A - - gz obtain widget's namefree_form- 3x 3 1720626759 B - - gz create and destroy formsfminf fminf 3 fminf 3pxrmvalueXrmValue 3 3 1710950786 B - - gz initialize the Resource Manager, Resource Manager structures, and parse the command linearm_fadvise64_64- 2 2 1402354204 B - - gz predeclare an access pattern for file dataether_ntoa- 3 3 1402354208 B - - gz Ethernet address manipulation routinesbf_encryptBF_encrypt 3ssl 3 1721417624 B - - gz Blowfish encryptioncontext_type_set- 3 3 1585710994 B - - gz Routines to manipulate SELinux security contextspod::simplePod::Simple 3pm 3 1402365606 A - - gz framework for parsing Podscanf 3p- 3p 3p 1402354218 A - - gz convert formatted inputdevlink-port- 8 8 1601484048 A - - gz devlink port configurationtcl_cancelidlecallTcl_CancelIdleCall 3 3 1448008821 A - - gz invoke a procedure when there are no pending eventsrexec_af- 3 3 1402354211 B - - gz return stream to a remote commandpod::simple::pullparsertokenPod::Simple::PullParserToken 3pm 3 1402365606 A - - gz - tokens from Pod::Simple::PullParsernew_field- 3x 3 1720626759 B - - gz create and destroy form fieldsxcb_grab_pointer- 3 3 1540917640 A - - gz Grab the pointerhunspell hunspell 4 hunspell 1cmsutil- 1 1 1730826028 A - - gz Performs basic cryptograpic operations, such as encryption and decryption, on Cryptographic Message Syntax (CMS) messages.zipgrep- 1 1 1240180732 A - - gz search files in a ZIP archive for lines matching a patternvsprintf 3p- 3p 3p 1402354219 B - - gz format output of a stdarg argument listfgetwc fgetwc 3 fgetwc 3pxtcreateapplicationcontextXtCreateApplicationContext 3 3 1501646833 A - - gz create, destroy, and obtain an application contextgrub2-setpassword- 8 8 1722985065 A - - gz Generate the user.cfg file containing the hashed grub bootloader password.xcb_grab_button- 3 3 1540917640 A - - gz Grab pointer button(s)PCRE 3- 3 3 1573510868 C pcre32_assign_jit_stack - gz tcl_exposecommandTcl_ExposeCommand 3 3 1448008821 B - - gz manage multiple Tcl interpreters, aliases and hidden commandsxcb_destroy_window_checked- 3 3 1540917640 B - - gz Destroys a windowmodule::build::baseModule::Build::Base 3pm 3 1402373050 A - - gz Default methods for Module::Buildbio_s_socketBIO_s_socket 3ssl 3 1721417624 A - - gz socket BIOsetrlimit 2- 2 2 1402354205 A - - gz get/set resource limitsxkbgetdeviceinfochangesXkbGetDeviceInfoChanges 3 3 1710950785 A - - gz Query the changes that have occurred in the button actions or indicator names and indicator maps associated with an input extension deviceprogram_invocation_name- 3 3 1402354211 A - - gz obtain name used to invoke calling programtty 1- 1 1 1605565487 A - - gz print the file name of the terminal connected to standard inputngettext 1- 1 1 1585708958 A - - gz translate message and choose plural formtcsetattr 3p- 3p 3p 1402354218 A - - gz set the parameters associated with the terminalpaste 1- 1 1 1605565487 A - - gz merge lines of fileswaitpid 2- 2 2 1402354206 B - - gz wait for process to change statememoizeMemoize 3pm 3 1698237676 A - - gz Make functions faster by trading space for timegetcontext 3- 3 3 1402354212 A - - gz get or set the user contextungetwc 3p- 3p 3p 1402354219 A - - gz push wide-character code back into the input streamsg_logs- 8 8 1585715378 A - - gz access log pages with SCSI LOG SENSE commandselinuxconlist- 8 8 1585710994 A - - gz list all SELinux context reachable for userxcb_dri3_fence_from_fd_checked- 3 3 1540917640 B - - gz getipnodebyaddr- 3 3 1402354209 B - - gz get network hostnames and addressesxkbsetdevicebuttonactionsXkbSetDeviceButtonActions 3 3 1710950785 A - - gz Change only the button actions for an input extension devicetcl_setensembleunknownhandlerTcl_SetEnsembleUnknownHandler 3 3 1448008821 B - - gz manipulate ensemble commandsxcb_test_grab_control_checked- 3 3 1540917640 B - - gz siggetmask- 3 3 1402354212 B - - gz BSD signal APIxcb_sync_query_counter_reply- 3 3 1540917640 B - - gz filter::simpleFilter::Simple 3pm 3 1698237674 A - - gz Simplified source filteringxcb_dri3_get_supported_modifiers_screen_modifiers_length- 3 3 1540917640 B - - gz git-show-index- 1 1 1722330780 A - - gz Show packed archive indexreset_shell_mode- 3x 3 1720626759 B - - gz low-level curses routinesnl 1- 1 1 1605565487 A - - gz number lines of filesstrtod 3p- 3p 3p 1402354218 A - - gz convert a string to a double-precision numberxfreefontinfoXFreeFontInfo 3 3 1710950786 B - - gz obtain or free font names and informationrecursive_key_scan- 3 3 1573510998 A - - gz Apply a function to all keys in a keyring treesignificandf- 3 3 1402354212 B - - gz get mantissa of floating-point numbertcl_fsfilesysteminfoTcl_FSFileSystemInfo 3 3 1448008822 B - - gz procedures to interact with any filesystemxcb_xv_query_image_attributes_reply- 3 3 1540917640 B - - gz xcb_randr_get_output_info_clones_length- 3 3 1540917640 B - - gz semctl semctl 2 semctl 3pinet_addr inet_addr 3 inet_addr 3psidput- 3 3 1585710994 B - - gz obtain and manipulate SELinux security ID'smsync msync 2 msync 3pperlbot- 1 1 1698237663 A - - gz This document has been deletedpthread_getschedparam 3- 3 3 1402354211 B - - gz set/get scheduling policy and parameters of a threadmodff 3- 3 3 1402354211 B - - gz extract signed integral and fractional values from floating-point numberxtwidgettoapplicationcontextXtWidgetToApplicationContext 3 3 1501646833 B - - gz create, destroy, and obtain an application contextftok 3p- 3p 3p 1402354215 A - - gz generate an IPC keystdbool.h- 0p 0p 1402354203 A - - gz boolean type and valuesxcb_get_image_data_length- 3 3 1540917640 B - - gz aio_suspend 3- 3 3 1402354207 A - - gz wait for asynchronous I/O operation or timeoutrpmatch- 3 3 1402354212 A - - gz determine if the answer to a question is affirmative or negativegai_strerror gai_strerror 3 gai_strerror 3pperlmacos- 1 1 1698237666 A - - gz Perl under Mac OS (Classic)d2i_x509_reqd2i_X509_REQ 3ssl 3 1721417624 A - - gz PKCS#10 certificate request functions.xcb_render_free_glyph_set- 3 3 1540917640 A - - gz casinhf 3p- 3p 3p 1402354214 B - - gz complex arc hyperbolic sine functionsmodule::build::cookbookModule::Build::Cookbook 3pm 3 1402373050 A - - gz Examples of Module::Build Usagekeyctl 1- 1 1 1402366674 A - - gz Key management facility controld2i_x509_algord2i_X509_ALGOR 3ssl 3 1721417624 A - - gz AlgorithmIdentifier functions.xkbcopykeytypesXkbCopyKeyTypes 3 3 1710950785 A - - gz Copy more than one XkbKeyTypeRec structurex509_verify_param_set1_emailX509_VERIFY_PARAM_set1_email 3ssl 3 1721417624 B - - gz X509 verification parametersxcb_input_grab_device_key_checked- 3 3 1540917640 B - - gz clntudp_create- 3 3 1402354208 B - - gz library routines for remote procedure callseulb-create-tags- 1 1 1484780705 A - - gz Add one or more tags to a load balancerFD_CLR 2- 2 2 1402354205 C select_tut - gz fesetexceptflag fesetexceptflag 3 fesetexceptflag 3ptcsetattr 3- 3 3 1402354213 B - - gz get and set terminal attributes, line control, get and set baud rateeuca-fingerprint-key- 1 1 1484780705 A - - gz Show the fingerprint of a private key as it would appear in the output of euca-describe-keypairs.xcb_glx_query_server_string_string_length- 3 3 1540917640 B - - gz fd_zero FD_ZERO 3 FD_ZERO 2 FD_ZERO 3pkeyctl_link- 3 3 1573510998 A - - gz Link a key to a keyring keyctl_unlink - Unlink a key from a keyringpcre32_config- 3 3 1573510868 B - - gz Perl-compatible regular expressionsasn1_time_printASN1_TIME_print 3ssl 3 1721417624 B - - gz ASN.1 Time functions.hmac_init_exHMAC_Init_ex 3ssl 3 1721417624 B - - gz HMAC message authentication codescale_form- 3x 3 1720626759 B - - gz make and break form window and subwindow associationsxcb_glx_get_lightiv_data_length- 3 3 1540917640 B - - gz  o @  =.stdb 42.clon` 1h.posiP` JvJ.xcb_` "Fu.xcop` `.xconPa 5.regea 0_.encoa L.systb 2.b::dRb X.sys_b AW.xtopb K9.optiXc S.pem_sc 9cf.sqrtc <.memsc 9.systc "Zê.xcb_id ,:.eucad .datee 0m.xcb_e %u.seli&f |` \.fmaff :.strig ө.pthrg <.ssl_ h Bi._tra^h 5.xcb_h 00.pod:h 1-.tcl_0i Tь.evp_i V.strci 4+.umas9j D}e.erroj L.xcb_j !x\.iso_&k _9D.fcmak 5.genhk I0.ps2p'l mژ.dirnl G;.tcl_l ?I.star.xadd; P6.xcb_ 9PJ.shut I.log2= M.xcb_U & .ps2p =,.striٖ 'g.tc-m Mt.undor 9HV.xcb_ +2.atan @of.ssl_G T.xpee 9.zips @2.getb7 Rd.zles Q7.endp :~.exp2 91Q.x509L P.ec_p o:".inl_' #5{.ssl_P iH.git-Л @-.err_! T.strn o.atan A=.xcb_ .Ī.nextE =x.poll C͊.dispٝ CF].utim* .pwriA C.xkbs ow=.tcl_ S\.xcb_ ".sigg, )#_.xcb_` n~T.filt Eb.xcb_ 9u.git-@ 4Mk.rese 5l].nl 1 0,.strt JX.xfreR P.recu IΡ.sign @i.tcl_Y XM.xcb_ $N.xcb_ (u,.semcH ..inetc .sidp FjM.msyn ۞.perl 9בX.pthr- OVu.modf c.xtwi h .xcb_ %.ftok 08.cbrt` ?I UYP /aio_/ Iɗ/rpma [?/gai_ /perl 6P/d2i_V O /xcb_ /casi B/modu4 R'*%/keyc :Npo/d2i_ Iq/xkbc9 S+/x509 Ue{/xcb_ "9/clntK F/eulb BM/FD_C $i!/fese-&c/tcsec _m/euca|N/xcb__*/fd_z -r/keyc ^C2/pcre6>,/asn1A%/hmac I +/scal) QGo/xcb_ /pute0*w/xcb_0-/xkbfc0A|W/xcb_0&/extu0N^/ssl_X1e /svce1F!U/genc/2A@/futiw2 Koi/ssl_2 T/d2i_,3 IfJ/http3a(/spka3C{/gpg2F4>z/getp4@ٺ8/rsa_4Es/log145 7E/io::u5 L/xcb_5/euca6>9;/ftw W6)&͛/krb56 6t ;!/xkibz>Hk/rand> $/des_>?2/evp_L? :gb/phar? ?$@"/fcpa@:/nl_tK@ 'G /sinh}@31/bn_u@HA/sendA =91D/posiNA;p/xmbuA9}/xdraAP/xcb_9B./systoBHś/xcb_B0 /menuC4E7/xkbgXCm@D/tap:CM/tanh?Z/boolCD <#/xdr_D Li/dateD0^/uniq%E /caco:E 9zT/rpmd|E,fi/ui_fE6ݱ/tcl_E ?8[/ec_g5Fn^/i18nF`/capg-G<*/systpG 2*/consG @B?/cpu_G CBK/ec_gFH\, /tigeH B\k/BN_pI0&/xcms?IN/memaI 2{ /dateI3oVl/pem_'J<f$/stdiwJ =/get_J9x/cpuiK2 /fcpa?K8/sslvKv/imagL7b/xcb_PL(ys/tlsvLx.G/tempM5(j/xcb_aM"/bn_bMU/ssl_ N[h1/xcb_vN'3/bio_N <l/xcb_N'ɰ/xrmq@OWx.P/xsetPH/tcl_O JF)/sg_lYPLvp/tailPf˰|/xcb_&Q%3}w/refc~QO&@/git-QJ*/xfre/R Rg/perlR w//euca SC֓/xcb_jS/clogS@O,/ffs S7/stdi(T 1)/cursbT 5Bp/locaTf/data U Cj/syscnU >putenv putenv 3 putenv 3pxcb_xv_query_image_attributes_offsets_length- 3 3 1540917640 B - - gz xkbfreegeomdoodadsXkbFreeGeomDoodads 3 3 1710950785 A - - gz Free geometry doodadsxcb_xkb_get_compat_map_si_rtrn_length- 3 3 1540917640 B - - gz extutils::parsexsExtUtils::ParseXS 3pm 3 1501652625 A - - gz converts Perl XS code into C codessl_ctx_set0_chain_cert_storeSSL_CTX_set0_chain_cert_store 3ssl 3 1721417624 B - - gz set certificate verification or chain storesvcerr_decode- 3 3 1402354212 B - - gz library routines for remote procedure callsgencat- 1p 1p 1402354203 A - t gz generate a formatted message catalogfutimens 3- 3 3 1402354209 B - - gz change file timestamps with nanosecond precisionssl_set_fdSSL_set_fd 3ssl 3 1699892224 A - - gz connect the SSL object with a file descriptord2i_x509_biod2i_X509_bio 3ssl 3 1721417624 B - - gz X509 encode and decode functionshttp::server::simple::cgiHTTP::Server::Simple::CGI 3pm 3 1391019031 A - - gz CGI.pm-style version of HTTP::Server::Simplespkac- 1ssl 1 1699892201 A - - gz SPKAC printing and generating utilitygpg2- 1 1 1533764355 A - - gz OpenPGP encryption and signing toolgetprotobyname 3p- 3p 3p 1402354215 B - - gz network protocol database functionsrsa_generate_key_exRSA_generate_key_ex 3ssl 3 1721417624 B - - gz generate RSA key pairlog10f 3p- 3p 3p 1402354216 B - - gz base 10 logarithm functionio::selectIO::Select 3pm 3 1698237674 A - - gz OO interface to the select system callxcb_glx_make_current_unchecked- 3 3 1540917640 B - - gz euca-attach-volume- 1 1 1484780705 A - - gz Attach an EBS volume to an instanceftw 3- 3 3 1402354211 A - - gz file tree walkkrb5.conf- 5 5 1726771586 A - t gz Kerberos configuration fileresolver 3- 3 3 1402354211 A - - gz resolver routineslogger logger 1p logger 1less 1- 1 1 1718116513 A - - gz opposite of moredoessaveundersDoesSaveUnders 3 3 1710950785 B - - gz screen information functions and macroscur_term- 3x 3 1720626759 B - - gz curses terminfo global variablestiffrasterscanlinesizeTIFFRasterScanlineSize 3tiff 3 1729525165 C TIFFsize - gz crypto_threadid_currentCRYPTO_THREADID_current 3ssl 3 1721417624 B - - gz OpenSSL thread supporttcpd- 8 8 824917156 A - - gz access control facility for internet servicesmenu_term- 3x 3 1720626759 B - - gz set hooks for automatic invocation by applicationsmro- 3pm 3 1698237678 A - - gz Method Resolution Orderlink 3p- 3p 3p 1402354216 A - - gz link to a filepm-pmu- 8 8 1410891653 A - - gz suspend the computer on machines using a Macintosh-style PMUtcl_getbignumfromobjTcl_GetBignumFromObj 3 3 1448008822 A - - gz manipulate Tcl objects as integer valueseuform-describe-stack-events- 1 1 1484780705 A - - gz Describe events that occurred in a stackxml::libxml::nodelistXML::LibXML::NodeList 3pm 3 1402352994 A - - gz a list of XML document nodesindex 3p- 3p 3p 1402354216 A - - gz character string operations (LEGACY)xkballocdeviceledinfoXkbAllocDeviceLedInfo 3 3 1710950785 A - - gz Obtain an XkbDeviceLedInfoRec structurehtml::linkextorHTML::LinkExtor 3pm 3 1402367721 A - - gz Extract links from an HTML documentattr 5- 5 5 1523407242 A - - gz Extended attributesgetgroups getgroups 2 getgroups 3pputwchar 3p- 3p 3p 1402354217 A - - gz put a wide character on a stdout streamxcb_randr_get_output_info_modes_end- 3 3 1540917640 B - - gz selinux_file_context_verify- 3 3 1585710994 A - - gz Compare the SELinux security context on disk to the default security context required by the policy file contexts filesg_senddiag- 8 8 1585715378 A - - gz performs a SCSI SEND DIAGNOSTIC commandflushinp_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionxkibitz- 1 1 1435097319 A - - gz allow multiple people to interact in an xtermrand 3ssl- 3ssl 3 1699892217 C sslrand - gz des_ede3_cbc_encryptDES_ede3_cbc_encrypt 3ssl 3 1721417624 B - - gz DES encryptionevp_bf_ecbEVP_bf_ecb 3ssl 3 1721417624 B - - gz EVP cipher routinesphar.phar- 1 1 1572624395 B - - gz PHAR (PHP archive) command line tooltanhf tanhf 3 tanhf 3pfcpatterngetboolFcPatternGetBool 3 3 1520307172 C FcPatternGet-Type - gz nl_types.h- 0p 0p 1402354203 A - - gz data typessinhf 3- 3 3 1402354212 B - - gz hyperbolic sine functionbn_ucmpBN_ucmp 3ssl 3 1721417624 B - - gz BIGNUM comparison and test functionssendmmsg- 2 2 1402354205 A - - gz send multiple messages on a socketposix_trace_start- 3p 3p 1402354217 A - - gz trace start and stop (TRACING)xmbufXmbuf 3 3 1448003986 A - - gz X multibuffering functionsxdrawrectangleXDrawRectangle 3 3 1710950786 A - - gz draw rectangles and rectangles structurexcb_change_pointer_control- 3 3 1540917640 A - - gz systemd-detect-virt- 1 1 1711457787 A - t gz Detect execution in a virtualized environmentxcb_xinerama_query_screens_screen_info_iterator- 3 3 1540917640 B - - gz menu_opts_off- 3x 3 1720626759 B - - gz set and get menu optionsxkbgetnamedgeometryXkbGetNamedGeometry 3 3 1710950785 A - t gz Loads a keyboard geometry description from this database by nametap::parser::result::unknownTAP::Parser::Result::Unknown 3pm 3 1439389327 A - - gz Unknown result token.boolfnames- 3x 3 1720626759 B - - gz curses terminfo global variablesxdr_array- 3 3 1402354213 B - - gz library routines for external data representationdatetime::locale::afDateTime::Locale::af 3pm 3 1402390643 A - - gz uniq uniq 1p uniq 1cacos 3p- 3p 3p 1402354214 A - - gz complex arc cosine functionsrpmdb- 8 8 1637771608 A - - gz RPM Database Toolui_freeUI_free 3ssl 3 1721417624 B - - gz New User Interfacetcl_panicTcl_Panic 3 3 1448008822 A - - gz report fatal error and abortec_group_new_by_curve_nameEC_GROUP_new_by_curve_name 3ssl 3 1721417624 B - - gz Functions for creating and destroying EC_GROUP objects.i18n::langtagsI18N::LangTags 3pm 3 1698237674 A - - gz functions for dealing with RFC3066-style language tagscapget- 2 2 1402354204 A - - gz set/get capabilities of thread(s)systemd.swap- 5 5 1711457788 A - - gz Swap unit configurationconsole 4- 4 4 1402354219 A - - gz console terminal and virtual consolescpu_equalCPU_EQUAL 3 3 1402354206 B - - gz macros for manipulating CPU setsec_group_get_degreeEC_GROUP_get_degree 3ssl 3 1721417624 B - - gz Functions for manipulating EC_GROUP objects.tigetnum- 3x 3 1720626759 B - - gz curses interfaces to terminfo databaseBN_print 3ssl- 3ssl 3 1721417624 B - - gz format conversionsxcmscielabqueryminlXcmsCIELabQueryMinL 3 3 1710950786 B - - gz obtain the CIE L*a*b* coordinatesmemalign- 3 3 1402354211 B - - gz allocate aligned memorydatetime::locale::om_keDateTime::Locale::om_KE 3pm 3 1402390632 A - - gz pem_read_dsa_pubkeyPEM_read_DSA_PUBKEY 3ssl 3 1721417624 B - - gz PEM routinesstdio_ext- 3 3 1402354212 A - - gz interfaces to stdio FILE structureget_robust_list- 2 2 1402354205 A - - gz get/set list of robust futexescpuid- 4 4 1402354219 A - - gz x86 CPUID access devicefcpatternvapbuildFcPatternVapBuild 3 3 1520307172 C FcPatternBuild - gz sslv2_server_methodSSLv2_server_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionsimage- n n 1448008912 A - - gz Create and manipulate imagesxcb_send_event- 3 3 1540917640 A - - gz send an eventtlsv1_2_server_methodTLSv1_2_server_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionstemplate::tools::tpage Template::Tools::tpage 3pm Template::Tools::tpage 1xcb_glx_query_server_string_reply- 3 3 1540917640 B - - gz bn_blinding_convert_exBN_BLINDING_convert_ex 3ssl 3 1721417624 B - - gz blinding related BIGNUM functions.ssl_set_shutdownSSL_set_shutdown 3ssl 3 1721417624 A - - gz manipulate shutdown state of an SSL connectionxcb_glx_get_tex_level_parameteriv_data- 3 3 1540917640 B - - gz bio_resetBIO_reset 3ssl 3 1721417624 B - - gz BIO control operationsxcb_input_change_device_notify_event_t- 3 3 1540917640 A - - gz xrmqgetsearchlistXrmQGetSearchList 3 3 1710950786 B - - gz retrieve database resources and search liststcl_substobjTcl_SubstObj 3 3 1448008822 A - - gz perform substitutions on Tcl objectsxsetwmpropertiesXSetWMProperties 3 3 1710950786 A - - gz set standard window propertiessg_luns- 8 8 1585715378 A - - gz send SCSI REPORT LUNS command or decode given LUNtailq_insert_afterTAILQ_INSERT_AFTER 3 3 1402354207 B - - gz implementations of lists, tail queues, and circular queuesxcb_change_window_attributes_checked- 3 3 1540917640 B - - gz change window attributesrefchan- n n 1448008823 A - - gz Command handler API of reflected channels, version 1git-unpack-file- 1 1 1722330781 A - - gz Creates a temporary file with a blob's contentsxfreefontXFreeFont 3 3 1710950786 B - - gz load or unload fonts and font metric structuresperltru64- 1 1 1698237670 A - - gz Perl version 5 on Tru64 (formerly known as Digital UNIX formerly known as DEC OSF/1) systemseuca-describe-bundle-tasks- 1 1 1484780705 A - - gz Describe current instance-bundling tasksxcb_glx_get_mapfv_data_length- 3 3 1540917640 B - - gz clogf 3- 3 3 1402354208 B - - gz natural logarithm of a complex numberffs 3- 3 3 1402354209 A - - gz find first bit set in a wordstdin 3p- 3p 3p 1402354218 A - - gz standard I/O streamscurs_kernel- 3x 3 1715932338 A - - gz low-level curses routineslocale::maketext::gutsLocale::Maketext::Guts 3pm 3 1402353872 A - - gz Deprecated module to load Locale::Maketext utf8 codedata_ahead- 3x 3 1720626759 B - - gz test for off-screen data in given formssysconf 3p- 3p 3p 1402354218 A - t gz get configurable system variablesps2pdf- 1 1 1605296035 A - - gz Convert PostScript to PDF using ghostscripttcl_freeTcl_Free 3 3 1448008821 B - - gz allocate or free heap memoryssl_set_tmp_rsaSSL_set_tmp_rsa 3ssl 3 1721417624 B - - gz handle RSA keys for ephemeral key exchangederdump- 1 1 1730826028 A - - gz Dumps C-sequence strings from a DER encoded certificate filesem_wait 3- 3 3 1402354212 A - - gz lock a semaphoreopenssl_add_ssl_algorithmsOpenSSL_add_ssl_algorithms 3ssl 3 1721417624 B - - gz initialize SSL library by registering algorithmshttp::headers::utilHTTP::Headers::Util 3pm 3 1402363906 A - - gz Header value parsing utility functionsllroundl 3p- 3p 3p 1402354216 B - - gz round to nearest integer valuemcheck_check_all- 3 3 1402354211 B - - gz heap consistency checkingxtgetsubresourcesXtGetSubresources 3 3 1501646833 A - - gz obtain subresourcesdatetime::locale::es_arDateTime::Locale::es_AR 3pm 3 1402390643 A - - gz euare-instanceprofileremoverole- 1 1 1484780705 A - - gz Remove a role from an instance profilegetitimer getitimer 2 getitimer 3pj0 3p- 3p 3p 1402354216 A - - gz Bessel functions of the first kindwhline- 3x 3 1720626759 B - - gz create curses borders, horizontal and vertical linesmirred- 8 8 1601484048 C tc-mirred - gz hsearch hsearch 3 hsearch 3phttxt2dbm- 1 1 1573651647 A - - gz Generate dbm files for use with RewriteMapstrndup- 3 3 1402354212 B - - gz duplicate a stringxtopenapplicationXtOpenApplication 3 3 1501646833 A - - gz initialize, open, or close a displayxcb_list_hosts- 3 3 1540917640 A - - gz systemd-kexec.service- 8 8 1711457788 B - - gz System shutdown logicxkblookupkeybindingXkbLookupKeyBinding 3 3 1710950785 A - - gz Find the string bound to a key by XRebindKeySymlex 1- 1 1 1573511011 B - - gz the fast lexical analyser generatormenu_format- 3x 3 1720626759 A - - gz set and get menu sizesripoffline_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionfmin 3- 3 3 1402354209 A - - gz determine minimum of two floating-point numbersxtgetkeysymtableXtGetKeysymTable 3 3 1501646833 A - - gz query keysyms and keycodesxcmspadXcmsPad 3 3 1710950786 B - - gz Xcms color structuredatetime::locale::de_deDateTime::Locale::de_DE 3pm 3 1402390638 A - - gz expect Expect 3pm expect 1datetime::locale::foDateTime::Locale::fo 3pm 3 1402390634 A - - gz xcb_selinux_get_client_context_context_end- 3 3 1540917640 B - - gz getsubopt getsubopt 3 getsubopt 3pclnt_sperrno- 3 3 1402354208 B - - gz library routines for remote procedure callsperlrequick- 1 1 1698237667 A - - gz Perl regular expressions quick startgetpmsg 2- 2 2 1402354205 B - - gz unimplemented system callsfile::basenameFile::Basename 3pm 3 1698237673 A - - gz Parse file paths into directory, filename and suffix.bio_freeBIO_free 3ssl 3 1721417624 B - - gz BIO allocation and freeing functionsbuf_strndupBUF_strndup 3ssl 3 1721417624 B - - gz standard C library equivalentsruserok- 3 3 1402354212 B - - gz routines for returning a stream to a remote commandwtimeout- 3x 3 1720626759 B - - gz curses input optionseuca-create-snapshot- 1 1 1484780705 A - - gz Create a snapshot of a volumeinb_p- 2 2 1402354205 B - - gz port I/Ossh-agent- 1 1 1707907012 A - - gz authentication agentpem_read_netscape_cert_sequencePEM_read_NETSCAPE_CERT_SEQUENCE 3ssl 3 1721417624 B - - gz PEM routinesdatetime::locale::de_atDateTime::Locale::de_AT 3pm 3 1402390641 A - - gz xcb_test_compare_cursor_unchecked- 3 3 1540917640 B - - gz errno 3p- 3p 3p 1402354215 A - - gz error return valuessl_ctx_clear_optionsSSL_CTX_clear_options 3ssl 3 1721417624 B - - gz manipulate SSL optionsxsetocvaluesXSetOCValues 3 3 1710950785 B - - gz create output contextsfdimf 3p- 3p 3p 1402354215 B - - gz compute positive difference between two floating-point numbersbio_set_ssl_renegotiate_bytesBIO_set_ssl_renegotiate_bytes 3ssl 3 1721417624 B - - gz SSL BIOgnu_dev_major- 3 3 1402354210 B - - gz manage a device numbersethostid 2- 2 2 1402354205 B - - gz get or set the unique identifier of the current hostoldstat- 2 2 1402354205 B - t gz get file statussys_timeb.h- 0p 0p 1402354203 A - - gz additional definitions for date and timenfs4_name_to_gid- 3 3 1523419630 C nfs4_uid_to_name - gz mitem_visible- 3x 3 1720626759 A - - gz check visibility of a menu itemxcb_xvmc_destroy_subpicture- 3 3 1540917640 A - - gz err_load_stringsERR_load_strings 3ssl 3 1721417624 A - - gz load arbitrary error stringsxdr- 3 3 1402354213 A - - gz library routines for external data representationxcb_sync_query_alarm_reply- 3 3 1540917640 B - - gz mvwaddch- 3x 3 1720626759 B - - gz add a character (with attributes) to a curses window, then advance the cursorsg_sat_identify- 8 8 1585715378 A - - gz send ATA IDENTIFY DEVICE command via SCSI to ATA Translation (SAT) layertc-ematch- 8 8 1601484048 A - - gz extended matches for use with "basic" or "flow" filtersopenssl_load_builtin_modulesOPENSSL_load_builtin_modules 3ssl 3 1721417624 A - - gz add standard configuration modulesdatetime::locale::isDateTime::Locale::is 3pm 3 1402390643 A - - gz rcsclean- 1 1 1585714623 A - - gz clean up working filesautopoint- 1 1 1465650366 A - - gz copies standard gettext infrastructurextaddexposuretoregionXtAddExposureToRegion 3 3 1501646833 A - - gz merge exposure events into a regiongai_strerror 3- 3 3 1402354209 B - - gz network address and service translationsetsockopt 2- 2 2 1402354205 A - - gz get and set options on socketsevp_des_cfbEVP_des_cfb 3ssl 3 1721417624 B - - gz EVP cipher routinesxloadfontXLoadFont 3 3 1710950786 A - - gz load or unload fonts and font metric structuressigwaitinfo sigwaitinfo 2 sigwaitinfo 3pterm term 7 term 5tcl_eventuallyfreeTcl_EventuallyFree 3 3 1448008822 A - - gz avoid freeing storage while it is being usedtemplate::documentTemplate::Document 3pm 3 1402357152 A - - gz Compiled template document objectxcb_dpms_info_unchecked- 3 3 1540917640 B - - gz tcl_asyncmarkTcl_AsyncMark 3 3 1448008821 B - - gz handle asynchronous eventssinhf sinhf 3 sinhf 3piswctype iswctype 3 iswctype 3ppod::pomPod::POM 3pm 3 1402385888 A - - gz POD Object Modeldatetime::locale::en_jmDateTime::Locale::en_JM 3pm 3 1402390644 A - - gz puts n- n n 1448008823 A - - gz Write to a channellongjmp 3p- 3p 3p 1402354216 A - - gz non-local gototracepath6- 8 8 1501833663 A - - gz traces path to a network host discovering MTU along this pathxcb_glx_get_booleanv_data_end- 3 3 1540917640 B - - gz xcb_dri2_connect_alignment_pad- 3 3 1540917640 B - - gz perlcheat- 1 1 1698237664 A - - gz Perl 5 Cheat Sheetvimrc- 5 5 1720542354 B - - gz Vi IMproved, a programmers text editorxtprocesseventXtProcessEvent 3 3 1501646833 B - - gz query and process events and inputxtnumberXtNumber 3 3 1501646833 B - - gz determine the byte offset or number of array elementstcfmgr- 1 1 1402385697 A - - gz the command line utility of the fixed-length database APIpsiginfo- 3 3 1402354211 B - - gz print signal messagepmap_getmaps- 3 3 1402354211 B - - gz library routines for remote procedure callsencode::perlioEncode::PerlIO 3pm 3 1402368577 A - - gz - a detailed document on Encode and PerlIOtmpwatch- 8 8 1337986892 A - - gz removes files which haven't been accessed for a period of timemq_receive mq_receive 3 mq_receive 3pdirname dirname 3 dirname 1p dirname 1 dirname 3perr_get_error_lineERR_get_error_line 3ssl 3 1721417624 B - - gz obtain error code and datapcresample- 3 3 1501643278 A - - gz Perl-compatible regular expressionscpanplusCPANPLUS 3pm 3 1402392266 A - - gz API & CLI access to the CPAN mirrorsopenssl_no_configOPENSSL_no_config 3ssl 3 1721417624 B - - gz simple OpenSSL configuration functionsclear 1- 1 1 1715932335 A - - gz clear the terminal screendsa_sig_newDSA_SIG_new 3ssl 3 1721417624 A - - gz allocate and free DSA signature objectsform_sub- 3x 3 1720626759 B - - gz make and break form window and subwindow associationsdatetime::locale::furDateTime::Locale::fur 3pm 3 1402390637 A - - gz fcpatternreferenceFcPatternReference 3 3 1520307172 A - - gz Increment pattern reference countip6tables-restore- 8 8 1601571148 B - - gz Restore IPv6 Tablesfile::pathFile::Path 3pm 3 1402361289 A - - gz Create or remove directory treesfcrangecopyFcRangeCopy 3 3 1520307172 A - - gz Copy a range objectxml::libxml::literalXML::LibXML::Literal 3pm 3 1402352994 A - - gz Simple string values.xcb_input_get_device_modifier_mapping_keymaps- 3 3 1540917640 B - - gz x509_name_get_text_by_nidX509_NAME_get_text_by_NID 3ssl 3 1721417624 B - - gz X509_NAME lookup and enumeration functionspem_write_bio_cms_streamPEM_write_bio_CMS_stream 3ssl 3 1699892211 A - - gz output CMS_ContentInfo structure in PEM format.mvinchnstr- 3x 3 1720626759 B - - gz get a string of characters (and attributes) from a curses windowfcutf16lenFcUtf16Len 3 3 1520307172 A - - gz count UTF-16 encoded charspthread_rwlockattr_init- 3p 3p 1402354217 A - - gz destroy and initialize the read-write lock attributes objectnfs4_gss_princ_to_ids- 3 3 1523419630 C nfs4_uid_to_name - gz xcb_xc_misc_get_xid_list_ids_end- 3 3 1540917640 B - - gz is_syncok- 3x 3 1720626759 B - - gz curses window propertiesxkboutofrangegroupinfoXkbOutOfRangeGroupInfo 3 3 1710950785 A - t gz Returns only the out-of-range processing information from the group_info field of an XkbSymMapRec structurexcb_randr_query_version- 3 3 1540917640 A - - gz datetime::locale::en_ttDateTime::Locale::en_TT 3pm 3 1402390640 A - - gz nail- 1 1 1533764336 B - t gz send and receive Internet mailperlnewmod- 1 1 1698237666 A - - gz preparing a new module for distributionwcsncat 3p- 3p 3p 1402354219 A - - gz concatenate a wide-character string with part of anotherislessequal 3- 3 3 1402354210 B - - gz floating-point relational tests without exception for NaNcosh 3p- 3p 3p 1402354214 A - - gz hyperbolic cosine functionssubgid- 5 5 1565319053 A - - gz the subordinate gid filexcb_xevie_query_version_unchecked- 3 3 1540917640 B - - gz perlcall- 1 1 1698237664 A - - gz Perl calling conventions from Cevp_pkey_verify_recoverEVP_PKEY_verify_recover 3ssl 3 1721417624 A - - gz recover signature using a public key algorithmlogout 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)strrchr 3- 3 3 1402354212 B - - gz locate character in stringresize_term- 3x 3 1720626759 B - - gz change the curses terminal sizexwctextlisttotextpropertyXwcTextListToTextProperty 3 3 1710950786 B - t gz convert text lists and text property structurescurs_overlay- 3x 3 1715932338 A - - gz overlay and manipulate overlapped curses windowstie::hash::namedcaptureTie::Hash::NamedCapture 3pm 3 1698237678 A - - gz Named regexp capture buffersssl_build_cert_chainSSL_build_cert_chain 3ssl 3 1721417624 B - - gz extra chain certificate processingdlvsym- 3 3 1402354208 B - - gz programming interface to dynamic linking loadergetopt_long_only- 3 3 1402354209 B - - gz Parse command-line optionsGDBM 3- 3 3 1402349942 C gdbm - gz erasechar_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionprintw- 3x 3 1720626759 B - - gz print formatted output in curses windowssvc_sendreply- 3 3 1402354212 B - - gz library routines for remote procedure callsxquerykeymapXQueryKeymap 3 3 1710950785 B - t gz manipulate keyboard settings and keyboard control structuretime n- n n 1448008824 A - - gz Time the execution of a scripteuca-modify-image-attribute- 1 1 1484780705 A - - gz Modify an attribute of an imageeuare-userdelkey- 1 1 1484780705 A - - gz Delete an access keyiso-8859-15- 7 7 1402354219 B - t gz ISO 8859-15 character set encoded in octal, decimal, and hexadecimalgethostname 2- 2 2 1402354205 A - - gz get/set hostnameluserdel- 1 1 1381614967 A - - gz Delete an userxtranslatecoordinatesXTranslateCoordinates 3 3 1710950786 A - - gz translate window coordinatesdatetime::locale::fa_afDateTime::Locale::fa_AF 3pm 3 1402390642 A - - gz try::tinyTry::Tiny 3pm 3 1402356190 A - - gz minimal try/catch with proper localization of $@xcb_alloc_color_planes_reply- 3 3 1540917640 B - - gz xtunrealizewidgetXtUnrealizeWidget 3 3 1501646833 B - - gz realize and unrealize widgetsfcatomicorigfileFcAtomicOrigFile 3 3 1520307172 A - - gz return original file namextcallbacknoneXtCallbackNone 3 3 1501646833 B - - gz map a pop-updatetime::locale::ukDateTime::Locale::uk 3pm 3 1402390639 A - - gz userhelper- 8 8 1565320163 A - - gz A helper interface to PAM. 2db_hotbackup- 1 1 1565309747 A - - gz Create "hot backup" or "hot failover" snapshotsneqn- 1 1 1533764324 A - - gz format equations for ascii outputfseek 3- 3 3 1402354211 A - - gz reposition a streamflower- 8 8 1601484048 C tc-flower - gz xtgetselectionrequestXtGetSelectionRequest 3 3 1501646833 A - - gz retrieve the event that triggered the XtConvertSelectionProclog::message::handlersLog::Message::Handlers 3pm 3 1402343798 A - - gz Message handlers for Log::Messagehtdbm- 1 1 1712068782 A - - gz Manipulate DBM password databasesls 1- 1 1 1605565487 A - - gz list directory contentstcl_utfnextTcl_UtfNext 3 3 1448008823 B - - gz routines for manipulating UTF-8 stringsxcb_glx_are_textures_resident_data- 3 3 1540917640 B - - gz xcb_xv_list_image_formats_format- 3 3 1540917640 B - - gz bio_new_fdBIO_new_fd 3ssl 3 1721417624 B - - gz file descriptor BIOipcrm 1p- 1p 1p 1402354204 A - - gz remove an XSI message queue, semaphore set, or shared memory segment identifieropendir opendir 3 opendir 3psinh 3- 3 3 1402354212 A - - gz hyperbolic sine functiongroup- 5 5 1402354219 A - - gz user group fileerr_error_stringERR_error_string 3ssl 3 1721417624 A - - gz obtain human-readable error messagesetfsent- 3 3 1402354212 B - - gz handle fstab entriescatanhl 3p- 3p 3p 1402354214 B - - gz complex arc hyperbolic tangent functionslwp::useragentLWP::UserAgent 3pm 3 1402363153 A - - gz Web user agent classwprintf 3p- 3p 3p 1402354219 A - - gz print formatted wide-character outputpthread_testcancel 3- 3 3 1402354211 A - - gz request delivery of any pending cancellation requestform_driver- 3x 3 1715932339 A - - gz command-processing loop of the form systemgetttynam- 3 3 1402354209 B - - gz get ttys file entrygetcap- 8 8 1699264317 A - - gz examine file capabilitiesposix_trace_attr_destroy- 3p 3p 1402354217 B - - gz destroy and initialize the trace stream attributes object (TRACING)menu_request_name- 3x 3 1720626759 B - - gz handle printable menu request namesxcb_xkb_bell_notify_event_t- 3 3 1540917640 A - - gz xcb_randr_change_output_property_checked- 3 3 1540917640 B - - gz fcfontsetprintFcFontSetPrint 3 3 1520307172 A - - gz Print a set of patterns to stdoutdsa 1ssl- 1ssl 1 1699892200 A - - gz DSA key processingdes_set_keyDES_set_key 3ssl 3 1721417624 B - - gz DES encryptionnet::ftpNet::FTP 3pm 3 1698237676 A - - gz FTP Client classxcb_glx_get_materialfv- 3 3 1540917640 A - - gz iconv 3- 3 3 1402354210 A - - gz perform character set conversionlvextend- 8 8 1619616701 A - - gz Add space to a logical volumexcb_glx_finish- 3 3 1540917640 A - - gz xdrrec_create- 3 3 1402354213 B - - gz library routines for external data representationsystemd-cgls- 1 1 1711457787 A - - gz Recursively show control group contentsmore 1p- 1p 1p 1402354204 A - - gz display files on a page-by-page basisgettimeofday 3p- 3p 3p 1402354215 A - - gz get the date and timeherror- 3 3 1402354210 B - - gz get network host entryxcb_input_open_device_unchecked- 3 3 1540917640 B - - gz module::corelistModule::CoreList 3pm 3 1698237389 A - - gz what modules shipped with versions of perlauto_reset- n n 1448008823 B - - gz standard library of Tcl proceduresxml::sax::buildsaxbaseXML::SAX::BuildSAXBase 3pm 3 1402366964 A - - gz Base class SAX Drivers and Filterstcl_fsnewnativepathTcl_FSNewNativePath 3 3 1448008822 B - - gz procedures to interact with any filesystemtc-pedit- 8 8 1601484048 A - - gz generic packet editor actionipc::open3IPC::Open3 3pm 3 1698237674 A - - gz open a process for reading, writing, and error handling using open3()xcb_input_xi_warp_pointer- 3 3 1540917640 A - - gz sgpio- 1 1 1227526032 A - - gz captive backplane LED control utilityselectsaverSelectSaver 3pm 3 1698237677 A - - gz save and restore selected file handlesysconf 3- 3 3 1402354212 A - - gz get configuration information at run timemath::bigint::calcemuMath::BigInt::CalcEmu 3pm 3 1698237675 A - - gz Emulate low-level math with BigInt codelsearch lsearch 3 lsearch n lsearch 3pxrmqputresourceXrmQPutResource 3 3 1710950786 B - - gz store database resourcesxcb_xevie_end_reply- 3 3 1540917640 B - - gz xcb_input_xi_query_device- 3 3 1540917640 A - - gz selinux_policy_root- 3 3 1585710994 A - - gz return the path of the SELinux policy files for this machine selinux_set_policy_root - Set an alternate SELinux root path for the SELinux policy files for this machine.tcl_fsgetnativepathTcl_FSGetNativePath 3 3 1448008822 B - - gz procedures to interact with any filesystemxrmpermstringtoquarkXrmPermStringToQuark 3 3 1710950786 B - t gz manipulate resource quarkssymlink symlink 2 symlink 7 symlink 3pgit-revert- 1 1 1722330782 A - - gz Revert some existing commitssyncok- 3x 3 1720626759 B - - gz create curses windowsbn_sub_words- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionsssl_ctx_get_session_cache_modeSSL_CTX_get_session_cache_mode 3ssl 3 1699892221 A - - gz enable/disable session cachingcproj 3- 3 3 1402354208 A - - gz project into Riemann SpherexcmsquerycolorsXcmsQueryColors 3 3 1710950786 B - - gz obtain color valuesdebuginfo-install- 1 1 1589300860 A - - gz install debuginfo packages and their dependenciessin 3- 3 3 1402354212 A - - gz sine functionprocmailrc- 5 5 1511905870 A - - gz procmail rcfileghostscript- 1 1 1605296035 B - - gz Ghostscript (PostScript and PDF language interpreter and previewer)mq_receive 3p- 3p 3p 1402354216 A - - gz receive a message from a message queue (REALTIME)pvremove- 8 8 1619616701 A - - gz Remove LVM label(s) from physical volume(s)scr_set- 3x 3 1720626759 B - - gz read (write) a curses screen from (to) a filesyncfs- 2 2 1402354206 B - - gz commit buffer cache to diskxcb_dri2_authenticate- 3 3 1540917640 A - - gz datetime::locale::bynDateTime::Locale::byn 3pm 3 1402390635 A - - gz xcb_glx_query_version_unchecked- 3 3 1540917640 B - - gz getrusage getrusage 2 getrusage 3peuca-get-password- 1 1 1484780705 A - - gz Retrieve the administrator password for an instance running Windowslwres_getaddrinfo- 3 3 1725373371 B - - gz socket address structure to host and service namedbd::gofer::transport::streamDBD::Gofer::Transport::stream 3pm 3 1402362412 A - - gz DBD::Gofer transport for stdio streamingevp_cipher_asn1_to_paramEVP_CIPHER_asn1_to_param 3ssl 3 1721417624 B - - gz EVP cipher routinesasn1_time_checkASN1_TIME_check 3ssl 3 1721417624 B - - gz ASN.1 Time functions.xkbresizedevicebuttonactionsXkbResizeDeviceButtonActions 3 3 1710950785 A - - gz Allocate additional space for button actions in an XkbDeviceInfoRec structurexkbbelleventXkbBellEvent 3 3 1710950785 A - t gz Provides a function that initiates a bell event for the keyboard without ringing the bellxcb_sync_list_system_counters_counters_length- 3 3 1540917640 B - - gz ether_ntoa_r- 3 3 1402354208 B - - gz Ethernet address manipulation routinestcl_getcommandinfofromtokenTcl_GetCommandInfoFromToken 3 3 1448008821 B - - gz implement new commands in Ctap::formatter::baseTAP::Formatter::Base 3pm 3 1439389327 A - - gz Base class for harness output delegateshttp::cookiesHTTP::Cookies 3pm 3 1402365673 A - - gz HTTP cookie jarswish- 1 1 1448008910 A - - gz Simple windowing shellposix_trace_rewind- 3p 3p 1402354217 B - t gz trace log management (TRACING)nice 3p- 3p 3p 1402354216 A - - gz change the nice value of a processxtappsetwarninghandlerXtAppSetWarningHandler 3 3 1501646833 B - - gz low-level error handlersxcb_xfixes_destroy_region- 3 3 1540917640 A - - gz wcsncpy 3- 3 3 1402354213 A - - gz copy a fixed-size string of wide charactersscalbnf 3p- 3p 3p 1402354218 B - - gz compute exponent using FLT_RADIXisgreaterequal 3p- 3p 3p 1402354216 A - - gz test if x is greater than or equal to yrand_statusRAND_status 3ssl 3 1721417624 B - - gz add entropy to the PRNGxcb_sync_get_priority_unchecked- 3 3 1540917640 B - - gz bind bind n bind 2 bind 1 bind 3passume_default_colors- 3x 3 1720626759 B - - gz use terminal's default colorsavc_netlink_acquire_fd- 3 3 1585710994 B - - gz SELinux netlink processingpam_vsyslog- 3 3 1585713595 B - - gz send messages to the system loggerrindex rindex 3 rindex 3pget_default_context_with_role- 3 3 1585710994 B - - gz determine SELinux context(s) for user sessionswborder- 3x 3 1720626759 B - - gz create curses borders, horizontal and vertical linesdatetime::locale::es_uyDateTime::Locale::es_UY 3pm 3 1402390632 A - - gz setdomainname- 2 2 1402354204 A - - gz get/set NIS domain nameulimit.h- 0p 0p 1402354203 A - - gz ulimit commandspam_sm_setcred- 3 3 1585713595 A - - gz PAM service function to alter credentialshtobe32- 3 3 1402354210 B - - gz convert values between host and big-/little-endian byte ordereuare-groupaddpolicy- 1 1 1484780705 A - - gz Add a new policy to a group. To add more complex policies than this tool supports, see euare-groupuploadpolicy(1).wget Wget 1 wget 1pthread_attr_setstacksize pthread_attr_setstacksize 3 pthread_attr_setstacksize 3ppopen popen 3 popen 3pposix_trace_attr_getmaxsystemeventsize- 3p 3p 1402354217 B - - gz retrieve and set trace stream size attributes (TRACING)ceill 3- 3 3 1402354207 B - - gz ceiling function: smallest integral value not less than argumentpthread_setconcurrency 3p- 3p 3p 1402354217 B - - gz get and set the level of concurrencyclock_getcpuclockid 3- 3 3 1402354208 A - - gz obtain ID of a process CPU-time clockxcb_randr_get_screen_resources_current_modes_length- 3 3 1540917640 B - - gz fcfontsetaddFcFontSetAdd 3 3 1520307172 A - - gz Add to a font setenvz_add- 3 3 1402354208 A - - gz environment string supportjobs 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)Pod::perldoc 3pm- 3pm 3 1402388268 A - - gz Look up Perl documentation in Pod format.xcb_render_free_glyphs- 3 3 1540917640 A - - gz xcb_input_change_device_control_unchecked- 3 3 1540917640 B - - gz execve execve 2 execve 3pset_menu_grey- 3x 3 1720626759 B - - gz color and attribute control for menusget_thread_area- 2 2 1402354204 A - - gz get a thread-local storage (TLS) areauncompress- 1p 1p 1402354204 A - - gz expand compressed dataigawk- 1 1 1711653987 A - - gz gawk with include filesabrt-action-install-debuginfo- 1 1 1601569733 A - - gz Install debuginfos for build-idswaddch- 3x 3 1720626759 B - - gz add a character (with attributes) to a curses window, then advance the cursorxkballocgeomrowsXkbAllocGeomRows 3 3 1710950785 A - - gz Allocate rows in a sectionccosf 3p- 3p 3p 1402354214 B - - gz complex cosine functionsbio_s_fileBIO_s_file 3ssl 3 1721417624 A - - gz FILE biorpc 5- 5 5 1402354219 A - - gz RPC program number data basecpio 1- 1 1 1712304738 A - - gz copy files to and from archivestcl_dstringendsublistTcl_DStringEndSublist 3 3 1448008821 B - - gz manipulate dynamic stringsblowfish- 3ssl 3 1721417624 A - - gz Blowfish encryptionip-neighbour- 8 8 1601484048 A - - gz neighbour/arp tables management.xcb_glx_vendor_private_with_reply_data_2_end- 3 3 1540917640 B - - gz lvs- 8 8 1619616701 A - - gz Display information about logical volumesx509_store_ctx_get_current_certX509_STORE_CTX_get_current_cert 3ssl 3 1721417624 B - - gz get or set certificate verification status informationxinternatomXInternAtom 3 3 1710950786 A - - gz create or return atom namesgetsid getsid 2 getsid 3pfenv.h- 0p 0p 1402354203 A - - gz floating-point environmentgit-remote-testgit- 1 1 1722330783 A - - gz Example remote-helpermenu_win- 3x 3 1720626759 A - - gz make and break menu window and subwindow associationsvid_puts- 3x 3 1720626759 B - - gz curses interfaces to terminfo databasemktemp mktemp 3 mktemp 1 mktemp 3preaddir 3p- 3p 3p 1402354217 A - - gz read a directorycatan 3p- 3p 3p 1402354214 A - - gz complex arc tangent functionsautodie::hints- 3pm 3 1402392173 A - - gz Provide hints about user subroutines to autodiexcb_xfixes_fetch_region_rectangles_length- 3 3 1540917640 B - - gz init_color- 3x 3 1720626759 B - - gz curses color manipulation routinesxcb_xfixes_get_cursor_image_unchecked- 3 3 1540917640 B - - gz locate- 1 1 1523418406 A - - gz find files by nameIpam_get_data- 3 3 1585713595 A - - gz get module internal datapod::simple::pullparserendtokenPod::Simple::PullParserEndToken 3pm 3 1402365606 A - - gz - end-tokens from Pod::Simple::PullParserpread 2- 2 2 1402354205 A - - gz read from or write to a file descriptor at a given offsetxcb_xvmc_list_surface_types_surfaces_length- 3 3 1540917640 B - - gz ec_group_get_curve_gf2mEC_GROUP_get_curve_GF2m 3ssl 3 1721417624 B - - gz Functions for creating and destroying EC_GROUP objects.setenforce- 8 8 1585710994 A - - gz modify the mode SELinux is running inxgrabbuttonXGrabButton 3 3 1710950786 A - - gz grab pointer buttonsxcb_glx_is_list_unchecked- 3 3 1540917640 B - - gz msr- 4 4 1402354219 A - - gz x86 CPU MSR access devicelog 3p- 3p 3p 1402354216 A - - gz natural logarithm functionxopendisplayXOpenDisplay 3 3 1710950786 A - - gz connect or disconnect to X servercsinh 3p- 3p 3p 1402354214 A - - gz complex hyperbolic sine functionsclogf clogf 3 clogf 3plgammaf 3- 3 3 1402354210 B - - gz log gamma functioneuca-describe-snapshots- 1 1 1484780705 A - - gz Show information about snapshotsssl_set0_chain_cert_storeSSL_set0_chain_cert_store 3ssl 3 1721417624 B - - gz set certificate verification or chain storedaemon daemon 3 daemon 7 Daemon 1cimagl 3- 3 3 1402354207 B - - gz get imaginary part of a complex numberxkbgetkeyboardbynameXkbGetKeyboardByName 3 3 1710950785 A - t gz Build a new keyboard description from a set of named components, and to optionally have the server use the resulting description to replace an active oneh_errno 3p- 3p 3p 1402354215 A - - gz error return value for network database operationsgetsockname 2- 2 2 1402354205 A - - gz get socket nameflush- n n 1448008823 A - - gz Flush buffered output for a channelxtcreatemanagedwidgetXtCreateManagedWidget 3 3 1501646833 B - - gz create and destroy widgetscharsets- 7 7 1402354219 A - - gz programmer's view of character sets and internationalizationnfsd 7- 7 7 1634214566 A - - gz special filesystem for controlling Linux NFS servereuare-usermodkey- 1 1 1484780705 A - - gz Change the status of an access key from Active to Inactive, or vice versaslk_touch_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionsyslog 3p- 3p 3p 1402354218 A - - gz control system logstat 2- 2 2 1402354206 A - t gz get file statusstrverscmp- 3 3 1402354212 A - - gz compare two version stringsxcb_input_get_feedback_control- 3 3 1540917640 A - - gz systemd-efi-boot-generator- 8 8 1711457788 A - - gz Generator for automatically mounting the EFI System Partition used by the current boot to /bootevp_cipher_typeEVP_CIPHER_type 3ssl 3 1721417624 B - - gz EVP cipher routinesxcb_glx_get_tex_level_parameteriv_data_end- 3 3 1540917640 B - - gz getline- 3 3 1402354209 A - - gz delimited string inputdatetime::locale::dvDateTime::Locale::dv 3pm 3 1402390638 A - - gz pclose pclose 3 pclose 3pdtlsv1_methodDTLSv1_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionscommand command 1p command 1inet_lnaof- 3 3 1402354210 B - - gz Internet address manipulation routinestcl_appendobjtoobjTcl_AppendObjToObj 3 3 1448008822 B - - gz manipulate Tcl objects as stringssetrlimit 3- 3 3 1402354213 C vlimit - gz euare-accountaliasdelete- 1 1 1484780705 A - - gz Delete an account's alias, a.k.a. its account namegrub-render-label- 1 1 1722985065 C grub2-render-label - gz dbix::simple::result::rowobjectDBIx::Simple::Result::RowObject 3pm 3 1402379379 A - - gz Simple result row object classpure-ftpd- 8 8 1730292103 A - - gz simple File Transfer Protocol servertsort 1p- 1p 1p 1402354204 A - - gz topological sortgetservbyport 3- 3 3 1402354209 B - - gz get service entryshar- 1 1 1357525291 A - - gz create a shell archivelwres_getnamebyaddr- 3 3 1725373371 B - - gz lightweight resolver utility functionsxgetmotioneventsXGetMotionEvents 3 3 1710950786 B - - gz send events and pointer motion history structuregetwchar getwchar 3 getwchar 3pexecle execle 3 execle 3pmremap- 2 2 1402354205 A - - gz remap a virtual memory addressxkbkeygroupswidthXkbKeyGroupsWidth 3 3 1710950785 A - - gz Computes the maximum width associated with the key corresponding to keycodestrtold 3- 3 3 1402354212 B - - gz convert ASCII string to floating-point numberdot- 1p 1p 1402354203 A - - gz execute commands in the current environmentmsginit- 1 1 1465650365 A - - gz initialize a message catalogausearch-expression- 5 5 1565265962 A - - gz audit search expression formaterror::pass3- 7stap 7 1602605484 A - - gz systemtap pass-3 errorscerfcl- 3 3 1402354207 B - - gz complex error functionferaiseexcept 3p- 3p 3p 1402354215 A - - gz raise floating-point exceptionx509_verify_cert_error_stringX509_verify_cert_error_string 3ssl 3 1721417624 B - - gz get or set certificate verification status informationwcscpy 3- 3 3 1402354213 A - - gz copy a wide-character stringxtgetmulticlicktimeXtGetMultiClickTime 3 3 1501646833 B - - gz set and get multi-click timesbuf_strdupBUF_strdup 3ssl 3 1721417624 B - - gz standard C library equivalentslibuser.conf- 5 5 1523558650 A - t gz configuration for libuser and libuser utilitiesremquo 3p- 3p 3p 1402354218 A - - gz remainder functionscurses::ui::dialog::errorCurses::UI::Dialog::Error 3pm 3 1454728582 A - - gz Create and manipulate error dialogszcat zcat 1p zcat 1wcswidth 3p- 3p 3p 1402354219 A - - gz number of column positions of a wide-character stringxmbufdestroybuffersXmbufDestroyBuffers 3 3 1448003986 B - - gz X multibuffering functionsgetnetgrent- 3 3 1402354209 B - - gz handle network group entriestanf 3p- 3p 3p 1402354218 B - - gz tangent functiontcl_unicharisupperTcl_UniCharIsUpper 3 3 1448008823 B - - gz routines for classification of Tcl_UniChar charactersxcb_enter_notify_event_t- 3 3 1540917640 A - - gz the pointer is in a different windowpathchk 1- 1 1 1605565487 A - - gz check whether file names are valid or portabletcl_setencodingsearchpathTcl_SetEncodingSearchPath 3 3 1448008821 B - - gz procedures for creating and using encodingsdes_set_odd_parityDES_set_odd_parity 3ssl 3 1721417624 B - - gz DES encryptionssl_ctx_use_privatekeySSL_CTX_use_PrivateKey 3ssl 3 1721417624 B - - gz load certificate and key dataxcb_xkb_list_components_compat_maps_length- 3 3 1540917640 B - - gz casinf casinf 3 casinf 3pwarnings- 3pm 3 1698237678 A - - gz Perl pragma to control optional warningsmvwin_wchstr- 3x 3 1720626759 B - - gz get an array of complex characters and renditions from a curses windowxcb_dri3_open_reply- 3 3 1540917640 B - - gz isgraph 3p- 3p 3p 1402354216 A - - gz test for a visible characterxcb_xvmc_destroy_subpicture_checked- 3 3 1540917640 B - - gz rpc.idmapd- 8 8 1682710367 B - - gz NFSv4 ID <-> Name Mapperxcb_glx_get_polygon_stipple_unchecked- 3 3 1540917640 B - - gz ip 7- 7 7 1402354219 A - t gz Linux IPv4 protocol implementationtcl_preserveTcl_Preserve 3 3 1448008822 B - - gz avoid freeing storage while it is being usedtcl_vartraceinfoTcl_VarTraceInfo 3 3 1448008822 B - - gz monitor accesses to a variablexcb_alloc_color_planes_pixels- 3 3 1540917640 B - - gz bn_num_bits_wordBN_num_bits_word 3ssl 3 1721417624 B - - gz get BIGNUM sizesrand48_r- 3 3 1402354212 B - - gz generate uniformly distributed pseudo-random numbers reentrantlypsignal- 3 3 1402354211 A - - gz print signal messageqfcvt- 3 3 1402354211 B - - gz convert a floating-point number to a stringi2d_cms_bio_streami2d_CMS_bio_stream 3ssl 3 1699892217 A - - gz output CMS_ContentInfo structure in BER format.llrintl 3- 3 3 1402354210 B - - gz round to nearest integergetppid 3p- 3p 3p 1402354215 A - - gz get the parent process IDpthread_condattr_getclock- 3p 3p 1402354217 A - - gz get and set the clock selection condition variable attribute (ADVANCED REALTIME)j1l- 3 3 1402354210 B - - gz Bessel functions of the first kindxtmainloopXtMainLoop 3 3 1501646833 B - - gz query and process events and inputstrrchr 3p- 3p 3p 1402354218 A - - gz string scanning operationgrub-file- 1 1 1722985065 C grub2-file - gz sscanf 3p- 3p 3p 1402354218 B - - gz convert formatted inputbn_mul_low_recursive- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionsxtgetactionkeysymXtGetActionKeysym 3 3 1501646833 A - - gz obtain corresponding keysymdate 1- 1 1 1605565487 A - - gz print or set the system date and timetcl_mutexfinalizeTcl_MutexFinalize 3 3 1448008822 B - - gz Tcl thread supporttcl_fsmatchindirectoryTcl_FSMatchInDirectory 3 3 1448008822 B - - gz procedures to interact with any filesystembn_gencb_callBN_GENCB_call 3ssl 3 1721417624 B - - gz generate primes and test for primalitybio_s_memBIO_s_mem 3ssl 3 1721417624 A - - gz memory BIOxevigetvisualinfoXeviGetVisualInfo 3 3 1448003986 B - - gz X Extended Visual Information functionsremainderf 3p- 3p 3p 1402354218 B - - gz remainder functionwcswcs- 3p 3p 1402354219 A - - gz find a wide substring (LEGACY)datetime::locale::saDateTime::Locale::sa 3pm 3 1402390644 A - - gz time 1p- 1p 1p 1402354204 A - - gz time a simple commandendgrent 3- 3 3 1402354208 B - - gz get group file entryxcb_xv_list_image_formats_format_length- 3 3 1540917640 B - - gz sha256_initSHA256_Init 3ssl 3 1721417624 B - - gz Secure Hash Algorithmasin asin 3 asin 3pxkbsetaccessxtimeoutXkbSetAccessXTimeout 3 3 1710950785 A - t gz Configures the AccessXTimeout options for a keyboard devicecurses::ui::dialog::statusCurses::UI::Dialog::Status 3pm 3 1454728582 A - - gz Create and manipulate status dialogsroundl roundl 3 roundl 3ppvchange- 8 8 1619616701 A - - gz Change attributes of physical volume(s)euwatch-delete-alarms- 1 1 1484780705 A - - gz Delete alarmsextutils::mm_darwinExtUtils::MM_Darwin 3pm 3 1402365499 A - - gz special behaviors for OS Xenv 1- 1 1 1605565487 A - - gz run a program in a modified environmentfile 1- 1 1 1601482102 A - - gz determine file typeipc 2- 2 2 1402354205 A - - gz System V IPC system callssetregid 2- 2 2 1402354206 B - - gz set real and/or effective user or group IDlibexslt- 3 3 1242109774 A - - gz extension library for XSLTxfs_rtcp- 8 8 1601488312 A - - gz XFS realtime copy commandset_field_status- 3x 3 1720626759 B - - gz field buffer controlmkfs.cramfs- 8 8 1612283497 A - - gz make compressed ROM file systemtemplate::manual::introTemplate::Manual::Intro 3pm 3 1402357151 A - - gz Introduction to the Template Toolkitferror_unlocked- 3 3 1402354209 B - - gz nonlocking stdio functionsjobs jobs 1p jobs 1endnetent 3- 3 3 1402354209 A - - gz get network entryperlpod- 1 1 1698237667 A - - gz the Plain Old Documentation formatutime 3p- 3p 3p 1402354219 A - - gz set file access and modification timesdatetime::locale::igDateTime::Locale::ig 3pm 3 1402390637 A - - gz cacoshl 3p- 3p 3p 1402354214 B - - gz complex arc hyperbolic cosine functionshdestroy hdestroy 3 hdestroy 3psum- 1 1 1605565487 A - - gz checksum and count the blocks in a filetzselect- 8 8 1402354220 A - - gz select a timezonecpu_xor_sCPU_XOR_S 3 3 1402354206 B - - gz macros for manipulating CPU setskexec_load- 2 2 1402354205 A - - gz load a new kernel for later executioncbc_crypt- 3 3 1402354207 B - - gz fast DES encryptionui_processUI_process 3ssl 3 1721417624 B - - gz New User Interfacepkttyagent- 1 1 1643139762 A - - gz Textual authentication helperva_arg 3p- 3p 3p 1402354219 A - - gz handle variable argument listxcb_randr_get_screen_resources_current_crtcs_end- 3 3 1540917640 B - - gz ssl_use_certificateSSL_use_certificate 3ssl 3 1721417624 B - - gz load certificate and key dataxdg-settings- 1 1 1478360732 A - - gz get various settings from the desktop environmenttcl_dstringlengthTcl_DStringLength 3 3 1448008821 B - - gz manipulate dynamic stringstiffqueryTIFFquery 3tiff 3 1729525165 A - - gz query routinesbuffer- 3ssl 3 1699892215 A - - gz simple character array structureptmx- 4 4 1402354219 B - - gz pseudoterminal master and slavebzegrep- 1 1 1167789655 C bzgrep - gz euca-modify-subnet-attribute- 1 1 1484780705 A - - gz Modify an attribute of a subnetxcb_randr_create_mode- 3 3 1540917640 A - - gz  o>q{xkbs0r~0setjspu_0 3_S0lvm2WeucaX ?xcb_V'prin 2'"0pam_D~0dumpް E0xcb_,P0xset\ =ͽ0curs^w?0xcb_!0xcb_RMt0safe "{:0date30ssl_#\0pthruQƉ 0dpms۳ Rxcb_CZ&}0xrms6Oattr4fdR0xcb_#dateB53curs[ K!i0xcb_ߴ 0getu 3#I0sshdO-0xcb_4gets6 ,`0getiе>cr|0tcl_Icp126[evp_[V:0renau ']0podc Msyst8 ,M0tcl_\h0xfs_k 3*Y 0xuni 7#0x509aq$0getsi 9Ф0xcb_-m0unam /0lckp-90git-n Y;0getcй?free; 4b0sqrt /30bn_gWTev0bio_Hn0pam_ =xcb_q<&rpc.< .xcb_<1ui_a8=Asetu=@50xkbgTzremq4> 9swapw>a0pam_޻ TO&0pure?MQx0abrtJ0secuKt0xcb_^$!wi0date1mѠ0xcb_!10xcb_ 40xcb_l$!?0xcb_2\ 0xcb_)-0path<6R0fc-qZ +xcb_]date]3A0xkbcRy0key_ 9i0endnE 7dbd:`BVO0grub )*0syst 5extuCZmcooD;9l0dbi: d0pope ;90ctan 3s0x509 [M0tcl_~ ;؜0modu Wc0ecds4 SN n0exec 9`0mkfs BX0d2i_ rK0dovex MJ0hmac clasGQ#0pod: ?O0gets: @@M0euar #E0xcb_ crl2r^ TmallH ?f Y0pack$ VO=0xcb_ 0u#0xcb_ "0pod: NEg0xcb_v c40perl At0res_ ,m,0wmou. :u]0lwp:u h50bio_ 7Lg0nano6 M 0term ;90sepo b= 0hmac> H0stat =S0git- Yevp_mLE1Y0xtma< :xcb_2M$capsqM3 0fcpa 70xcb_ z0euar 8}0ftpuR O]y0svcu Fec_gMslk_V60git- 2YH0posi; .^0kbd_{ :isleCUExcb_N(date O8M0xcb_ 2ttk:O 2hostP m0fcpa  <돏0ipc:Z Q f0pod: `m0batc' X0sys/? $͓^0sed p * 0pthr p0ps2p`F.0tcl_M` >0ssl_`V+M0derd`W0sem_Ya +0openagS70httpbUŔ0llrozb ;3T@0mcheb4ً0xtgec>{n0dateVc3acosSset_oT9xcb_Ssslr(T :fW0xcb_ ?L0euarc Ai0getid gؗ0whlikdPe0j0 3&d?À!0mirrd#?oH-q}pzxcb_")1hseadputw| oIN1httx e E1strnYe-cI1xtopeOn1xcb_excb_)>R1systf0llab5Cdated0+1xkbl_f\xcb_΢1lex f>|(1menug 21ripoQg;`1fmingJfmin0Jissp =posiʤtssl_XPxdr_ L|51xtgegD[1xcms@h5{0$1date}h3k 1expehE1dateh0*1xcb_)i+PJ1getsoi 1clnti F11perli ?1getp1j 5 1filepj_mysq) 9b1bio_j I1buf_0k Ffsck >1rusekNdbi:VMG1wtimk 0ecpkewI1eucal8::1inb_^l#}1ssh-l /`w1pem_l H{^1date(m3J1xcb_sm"C@1errnm /|d1ssl_mHssl_QK1xsetFn <csinUfny1fdimn [!1bio_nA21gnu_Ro1$1setho O\r1oldsp*/E1sys_2p Elz(1nfs4p*fget:pthr®?xcb_1mitep;htbI">1xcb_qeucaNposia;1date08g1pod2U0Dxcb_Z'{R1xcb_0pm-iJ1gsdj0\tailexcb_%tcl_pg^ximogaA1bger51G#1puts1<41xgra1DΡ1evp_2?1pam_i2 Liso_Qi _dwziHwatt RE81regd2 D)1pod: 3Q 1bio_r36B1xwmh3 v{1hwcl74@1tcl_4 @M>1xcb_4$U1imag 5 X!1datel5001tcl_5QcX1dels6 R1pthru6;ui1extu6eI1git-=7 ;1mysq7 44e1euca7&Ie1xcb_08*1ctanu8 Ay1asin8 >P1g++99O1ssl_D9z`1io::9 V1xcb_4:%l1sigeo:7k1tolo:1eufo:.?o1prin; 3aw-1isalV; ?a]1pass;d`1is_c<bnet:Jn F\?1strc< =I1perl< )xcb_+1bn_i = JC1ssl_]=YyT1xcb_=+61lh_e> 0D1prof9>5s1traps>)5u1xcb_>֓1xcb_>"Y3-1spri? 3K91lrouU? C1uif?0beA1drac@J/1tc-pc@)#{1des_@Ai1date@0f1hypo1A 6tP1isdipA <-s1acceA >ؠX1charBJL!1xallRB ;yk41killB 9N.1evp_BCG1maxc3CQq1pairC \C>1xcmsC5BC1xshm:DMM P1xcb_D.5M1locaDuA1rint?euca`Axcb__`&posi`G1cms_uET 1selaE pr 1a(p1obj_F Er1xcb_GS1showOGAZ_1dvipGRJ1xtlaGV1gssd`H,ip-mb =vwprc Vdranc Qpow1q2xcb_cxcb_Vqdatetime::locale::pa_guru_inDateTime::Locale::pa_Guru_IN 3pm 3 1402390644 A - - gz pod2man- 1 1 1402343774 A - - gz Convert POD data to formatted *roff inputxcb_dri2_get_buffers- 3 3 1540917640 A - - gz gsdj500- 1 1 1605296035 B - - gz Format and print text for DeskJet 500 BubbleJet using ghostscriptbgerror- n n 1448008823 A - - gz Command invoked to process background errorsputs 3p- 3p 3p 1402354217 A - - gz put a string on standard outputxgravityeventXGravityEvent 3 3 1710950786 A - - gz GravityNotify event structureevp_aes_128_gcmEVP_aes_128_gcm 3ssl 3 1721417624 B - - gz EVP cipher routinespam_wheel- 8 8 1585713593 A - - gz Only permit root access to members of group wheelregdbdump- 8 8 1540938735 A - - gz parse and print out regulatory rules filepod::perldoc::topodPod::Perldoc::ToPod 3pm 3 1402388268 A - - gz let Perldoc render Pod as ... Pod!bio_set_mem_bufBIO_set_mem_buf 3ssl 3 1721417624 B - - gz memory BIOxwmhintsXWMHints 3 3 1710950785 B - t gz allocate window manager hints structure and set or read a window's WM_HINTS propertyhwclock- 8 8 1612283497 A - - gz query or set the hardware clock (RTC)tcl_upvar2Tcl_UpVar2 3 3 1448008823 B - - gz link one variable to anotherxcb_randr_set_provider_offload_sink- 3 3 1540917640 A - - gz image::xpmImage::Xpm 3pm 3 1402365107 A - - gz Load, create, manipulate and save xpm image files.datetime::locale::klDateTime::Locale::kl 3pm 3 1402390636 A - - gz tcl_evaltokensstandardTcl_EvalTokensStandard 3 3 1448008822 B - - gz parse Tcl scripts and expressionsdelscreen- 3x 3 1720626759 B - - gz curses screen initialization and manipulation routinespthread_setaffinity_np- 3 3 1402354211 A - - gz set/get CPU affinity of a threadextutils::mm_os2ExtUtils::MM_OS2 3pm 3 1402365499 A - - gz methods to override UN*X behaviour in ExtUtils::MakeMakergit-branch- 1 1 1722330780 A - - gz List, create, or delete branchesmysqlpump- 1 1 1697025034 A - t gz a database backup programeuca-describe-vpc-peering-connections- 1 1 1484780705 A - - gz Show information about VPC peering connectionsxcb_glx_get_convolution_parameterfv_reply- 3 3 1540917640 B - - gz ctanhf 3p- 3p 3p 1402354214 B - - gz complex hyperbolic tangent functionsasinh 3p- 3p 3p 1402354214 A - - gz inverse hyperbolic sine functionsg++- 1 1 1601432236 A - - gz GNU project C and C++ compilerssl_set_client_ca_listSSL_set_client_CA_list 3ssl 3 1721417624 B - - gz set list of CAs sent to the client when requesting a client certificateio::htmlIO::HTML 3pm 3 1402340463 A - - gz Open an HTML file with automatic charset detectionxcb_poly_line_checked- 3 3 1540917640 B - - gz draw linessigemptyset 3- 3 3 1402354212 B - - gz POSIX signal set operations.tolower tolower 3 tolower 3peuform-validate-template- 1 1 1484780705 A - - gz Validate a templateprintf 3p- 3p 3p 1402354218 A - - gz print formatted outputisalnum 3p- 3p 3p 1402354216 A - - gz test for an alphanumeric characterpassword-auth-ac- 5 5 1501837535 B - - gz Common configuration files for PAMified services written by authconfig(8)is_context_customizable- 3 3 1585710994 A - - gz check whether SELinux context type is customizable by the administratorstrcspn 3- 3 3 1402354212 B - - gz search a string for a set of bytesperldebug- 1 1 1698237664 A - - gz Perl debuggingbn_is_oddBN_is_odd 3ssl 3 1721417624 B - - gz BIGNUM comparison and test functionsssl_want_writeSSL_want_write 3ssl 3 1721417624 B - - gz obtain state information TLS/SSL I/O operationxcb_free_cursor- 3 3 1540917640 A - - gz Deletes a cursorlh_error- 3ssl 3 1721417624 B - - gz dynamic hash tableprof- 2 2 1402354206 A - - gz unimplemented system callstrap 1p- 1p 1p 1402354204 A - t gz trap signalsxcb_map_subwindows_checked- 3 3 1540917640 B - - gz xcb_x_print_print_destroy_context- 3 3 1540917640 A - - gz sprintf 3p- 3p 3p 1402354218 B - - gz print formatted outputlroundf 3- 3 3 1402354210 B - - gz round to nearest integer, away from zeroui- 3ssl 3 1699892218 A - - gz New User Interfacerintl rintl 3 rintl 3pdracut-initqueue.service- 8 8 1601481478 A - - gz runs the dracut main loop to find the real roottc-prio- 8 8 1601484048 A - - gz Priority qdiscdes_ede3_cfb64_encryptDES_ede3_cfb64_encrypt 3ssl 3 1721417624 B - - gz DES encryptiondatetime::locale::arDateTime::Locale::ar 3pm 3 1402390644 A - - gz hypotl 3- 3 3 1402354210 B - - gz Euclidean distance functionisdigit 3- 3 3 1402354210 B - - gz character classification routinesaccess.conf- 5 5 1585713585 A - - gz the login access control table filecharmap- 5 5 1402354219 A - - gz character symbols to define character encodingsxalloweventsXAllowEvents 3 3 1710950786 A - - gz release queued eventskillpg 2- 2 2 1402354205 A - - gz send signal to a process groupevp_get_digestbyobjEVP_get_digestbyobj 3ssl 3 1721417624 B - - gz EVP digest routinesmaxcmapsofscreenMaxCmapsOfScreen 3 3 1710950785 B - - gz screen information functions and macrospair_numberPAIR_NUMBER 3x 3 1720626759 B - - gz curses character and window attribute control routinesxcmsrgbXcmsRGB 3 3 1710950786 B - - gz Xcms color structurexshmcreatepixmapXShmCreatePixmap 3 3 1448003986 B - - gz X Shared Memory extension functionsxcb_glx_get_color_table_parameteriv_unchecked- 3 3 1540917640 B - - gz locale::codes::langvar_retiredLocale::Codes::LangVar_Retired 3pm 3 1402383323 A - - gz retired langvar codes for the Locale::Codes::LangVar modulecms_get1_certsCMS_get1_certs 3ssl 3 1721417624 B - - gz CMS certificate and CRL utility functionsselabel_x- 5 5 1585710994 A - t gz userspace SELinux labeling interface and configuration file format for the X Window System contexts backend. This backend is also used to determine the default context for labeling remotely connected X clientsobj_txt2objOBJ_txt2obj 3ssl 3 1721417624 B - - gz ASN1 object utility functionsxcb_sync_await_fence- 3 3 1540917640 A - - gz showkey- 1 1 1637771557 A - - gz examine the codes sent by the keyboarddvipdf- 1 1 1601482853 A - - gz Convert TeX DVI file to PDF using ghostscript and dvipsxtlasttimestampprocessedXtLastTimestampProcessed 3 3 1501646833 B - - gz last event, last timestamp processedgssd- 8 8 1634214566 A - - gz RPCSEC_GSS daemonunload- n n 1448008824 A - - gz Unload machine codex509_name_get_text_by_objX509_NAME_get_text_by_OBJ 3ssl 3 1721417624 B - - gz X509_NAME lookup and enumeration functionsfwscanf- 3p 3p 1402354219 A - - gz convert formatted wide-character inputfsfreeze- 8 8 1612283497 A - - gz suspend access to a filesystem (Linux Ext3/4, ReiserFS, JFS, XFS)xcb_xvmc_list_subpicture_types_types_length- 3 3 1540917640 B - - gz hostname hostname 7 hostname 1 hostname 5termname_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensiongetkeycreatecon- 3 3 1585710994 A - - gz get or set the SELinux security context used for creating a new kernel keyringseuare-roledelpolicy- 1 1 1484780705 A - - gz Remove a policy from a roleacosf 3p- 3p 3p 1402354214 B - - gz arc cosine functionsoutw- 2 2 1402354205 B - - gz port I/Ops2epsi- 1 1 1601482853 A - t gz generate conforming Encapsulated PostScriptsetrlimit 3p- 3p 3p 1402354218 B - - gz control maximum resource consumptiontypeahead- 3x 3 1720626759 B - - gz curses input optionsdes_crypt DES_crypt 3ssl des_crypt 3euca-create-keypair- 1 1 1484780705 A - - gz Create a new SSH key pair for use with instanceseuscale-put-notification-configuration- 1 1 1484780705 A - - gz Create or replace an auto-scaling group's notification configurationeuca-attach-internet-gateway- 1 1 1484780705 A - - gz Attach an Internet gateway to a VPCxcb_input_list_device_properties_reply- 3 3 1540917640 B - - gz passwd2des- 3 3 1402354211 B - - gz RFS password encryptiondatetime::locale::urDateTime::Locale::ur 3pm 3 1402390644 A - - gz drem- 3 3 1402354208 B - - gz floating-point remainder functiondes_read_password- 3ssl 3 1721417624 B - - gz Compatibility user interface functionsxcb_input_grab_device- 3 3 1540917640 A - - gz ssl_ctx_set_max_cert_listSSL_CTX_set_max_cert_list 3ssl 3 1721417624 A - - gz manipulate allowed for the peer's certificate chaintest 1p- 1p 1p 1402354204 A - - gz evaluate expressionperltrap- 1 1 1698237670 A - - gz Perl traps for the unwaryslk_color- 3x 3 1720626759 B - - gz curses soft label routinesbn_recp_ctx_newBN_RECP_CTX_new 3ssl 3 1721417624 B - - gz modular multiplication using reciprocalxcb_kill_client_checked- 3 3 1540917640 B - - gz kills a clientdata::dump::filteredData::Dump::Filtered 3pm 3 1390483835 A - - gz Pretty printing with filteringstream- 1 1 1731392889 A - - gz a lightweight tool to stream one or more pixel components of the image or portion of the image to your choice of storage formats.xcb_record_disable_context_checked- 3 3 1540917640 B - - gz strfmon 3p- 3p 3p 1402354218 A - - gz convert monetary value to a stringxcb_randr_get_crtc_transform_pending_params- 3 3 1540917640 B - - gz cms_recipientinfo_typeCMS_RecipientInfo_type 3ssl 3 1721417624 B - - gz CMS envelopedData RecipientInfo routinespthread_join 3- 3 3 1402354211 A - - gz join with a terminated threadxgeticonsizesXGetIconSizes 3 3 1710950785 B - - gz allocate icon size structure and set or read a window's WM_ICON_SIZES propertymq_getattr 3- 3 3 1402354211 A - - gz get/set message queue attributesdatetime::locale::trv_twDateTime::Locale::trv_TW 3pm 3 1402390643 A - - gz getlogin 3p- 3p 3p 1402354215 A - - gz get login namexgetselectionownerXGetSelectionOwner 3 3 1710950786 B - - gz manipulate window selectioneulb-describe-lb-policy-types- 1 1 1484780705 A - - gz Show information about load balancer policy typesstringprep_locale_charset- 3 3 1448125246 A - - gz API functionpcre16_jit_exec- 3 3 1573510868 B - - gz Perl-compatible regular expressionsdefaultdepthofscreenDefaultDepthOfScreen 3 3 1710950785 B - - gz screen information functions and macrosxkbfreecompatmapXkbFreeCompatMap 3 3 1710950785 A - t gz Free an entire compatibility map or selected portions of oneevp_encryptfinal_exEVP_EncryptFinal_ex 3ssl 3 1721417624 B - - gz EVP cipher routinesdatetime::locale::ko_krDateTime::Locale::ko_KR 3pm 3 1402390638 A - - gz gsnd- 1 1 1601482853 A - - gz Run ghostscript (PostScript and PDF engine) without displayrview- 1 1 1722022359 B - - gz Vi IMproved, a programmers text editorxcb_get_keyboard_mapping- 3 3 1540917640 A - - gz tc-connmark- 8 8 1601484048 A - - gz netfilter connmark retriever actionptsname_r- 3 3 1402354211 B - - gz get the name of the slave pseudoterminalreadonly 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)xcb_glx_get_tex_parameteriv_reply- 3 3 1540917640 B - - gz cpio cpio 1 cpio 5xcb_set_close_down_mode- 3 3 1540917640 A - - gz xtscreenXtScreen 3 3 1501646833 B - - gz obtain window information about a widget ls3erro 6!`3xkbk@v@3strt H93dotH]3msgif7<~3ause93M3x509p!3cerf51#3seli;aK3xcb_"if 3jIEI3wcscG 7`3xtgeJpthr0z3buf_ Et`3libu5 Jxcb_IQ3remq 0 &3cursXd3zcat8Õ3wcswM R3xmbuG !3getn 7f3tanfI-3tcl_~aU3xcb_? 73pathJ IK3tcl_^7 3des_=xdr_Fslee##3ssl_ePkn3xcb_+wctoYJ IxsltJ 6Ak3casi){3warn- E3mvwi{ bI3xcb_si73isgr 9s3xcb_]$xcb_ %3rpc. 3modi )fstrHG`3xcb_&fcst`O|3ip 7=p3tcl_] R V<3tcl_HLu3xcb_fP3bn_nN<X3sran [g3psig/n3qfcv7FY3i2d_^G3llri 3M3getp1 6BW3pthrrm{3j1l=l*3xtma: F3strr 6xdr_ LE3bund T|]`3grub $bdflJ3tiff` F>3od 1:23init xcb_(!H+3libpSifP3euaroF>b3xkbk̑ _3tcl_6H3xcb_-o_3tcl_Ԓ:Xku3cerf143svceUFF3modf03xsetU,m3umou& .]\3xcb_]H3imag P7/(3ec_g Uv3xcb_R3repoJiI3iswb =syst$6]3xset/ 9"3get_q 1k3xcb_3eulb!UO3evp_Y?g23pod:"h3xcb_2Y3acceb C4w3mvwi S3io_s  =8k3xdr_Q Lj3host <Vj3dpmsdbn_g( DfJ3curs`Pe3systš5xcb_)")3tcl_SF3atolsk3sche$nU3atex N43conjpara+SinetM 6acos+{3date(3xcb_*,&evp_k,Bsetp,xset,BPQ3sigis O3perl 1ipc- U!s3xcb_Ԝ3grub4git-8. =$3ssl_Gd63setec.3tc-r1 7+3xcb_q ^3manuIcmp U@.h3euar-3tcl_NX3arp V 3grou GN N3exec˟iE3wdelQPR3mvwa \z%3grub,Y,3uniq83menu- < $3waits EdateE4 y3eusc"Dд3sran( ;3lrounu3feram;A3fcpal[-3locaM+3mrem9bundle::dbiBundle::DBI 3pm 3 1402362413 A - - gz A bundle to install DBI and required modules.tiffbufferTIFFbuffer 3tiff 3 1729525165 A - - gz I/O buffering control routinesod 1p- 1p 1p 1402354204 A - t gz dump files in various formatsinitstate initstate 3 initstate 3plibpng- 3 3 1602604336 A - - gz Portable Network Graphics (PNG) Reference Library 1.5.13euare-rolelistpolicies- 1 1 1484780705 A - - gz List one or all policies attached to a rolexkbkeytypeXkbKeyType 3 3 1710950785 A - - gz Obtain the index of a key type or the pointer to a key typetcl_concatobjTcl_ConcatObj 3 3 1448008822 B - - gz manipulate Tcl objects as stringsxcb_glx_get_color_table_parameterfv_data_end- 3 3 1540917640 B - - gz tcl_settimeprocTcl_SetTimeProc 3 3 1448008822 B - - gz get date and timecerfl- 3 3 1402354207 B - - gz complex error functionsvcerr_noproc- 3 3 1402354212 B - - gz library routines for remote procedure callsmodff modff 3 modff 3pxsetwmprotocolsXSetWMProtocols 3 3 1710950786 A - - gz set or read a window's WM_PROTOCOLS propertyumount 2- 2 2 1402354206 A - - gz unmount file systemxcb_glx_get_tex_gendv_reply- 3 3 1540917640 B - - gz image::infoImage::Info 3pm 3 1402363342 A - - gz Extract meta information from image filesec_group_cmpEC_GROUP_cmp 3ssl 3 1721417624 B - - gz Functions for manipulating EC_GROUP objects.xcb_glx_get_minmax_data_length- 3 3 1540917640 B - - gz reporter-ureport- 1 1 1585834715 A - - gz Reports ABRT problems in format of micro reportiswblank 3- 3 3 1402354210 A - - gz test for whitespace wide characterxsetfontXSetFont 3 3 1710950786 A - - gz GC convenience routinesget_escdelay- 3x 3 1720626759 B - - gz curses thread supportxcb_glx_is_texture_reply- 3 3 1540917640 B - - gz eulb-set-lb-policies-of-listener- 1 1 1484780705 A - - gz Change the policy associated with a load balancer listenerevp_cipher_modeEVP_CIPHER_mode 3ssl 3 1721417624 B - - gz EVP cipher routinespod::simple::pullparserstarttokenPod::Simple::PullParserStartToken 3pm 3 1402365606 A - - gz - start-tokens from Pod::Simple::PullParserxcb_render_add_traps- 3 3 1540917640 A - - gz access 2- 2 2 1402354204 A - - gz check real user's permissions for a filemvwinwstr- 3x 3 1720626759 B - - gz get a string of wchar_t characters from a curses windowio_setup- 2 2 1402354205 A - - gz create an asynchronous I/O contextxdr_bool- 3 3 1402354213 B - - gz library routines for external data representationhostname 5- 5 5 1711457787 A - - gz Local hostname configuration filedpmsforcelevelDPMSForceLevel 3 3 1448003986 A - - gz forces a DPMS capable display into the specified power levelcurses::ui::labelCurses::UI::Label 3pm 3 1454728582 A - - gz Create and manipulate label widgetssystemd-initctl.socket- 8 8 1711457788 B - - gz /dev/initctl compatibilitytcl_newwideintobjTcl_NewWideIntObj 3 3 1448008822 B - - gz manipulate Tcl objects as integer valuesatol atol 3 atol 3psched_getparam sched_getparam 2 sched_getparam 3patexit 3p- 3p 3p 1402354214 A - - gz register a function to run at process terminationconj conj 3 conj 3pdatetime::locale::en_beDateTime::Locale::en_BE 3pm 3 1402390636 A - - gz sigignore sigignore 3 sigignore 3pperldebguts- 1 1 1698237664 A - - gz Guts of Perl debuggingxcb_get_motion_events- 3 3 1540917640 A - - gz grub2-install- 8 8 1722985065 A - - gz Install GRUB on a device.ssl_set_alpn_protosSSL_set_alpn_protos 3ssl 3 1721417624 B - - gz handle application layer protocol negotiation (ALPN)setexeccon_raw- 3 3 1585710994 B - - gz get or set the SELinux security context used for executing a new processtc-route- 8 8 1601484048 A - - gz route traffic control filterxcb_glx_feedback_buffer_checked- 3 3 1540917640 B - - gz manual_user_enter_context- 3 3 1585710994 B - - gz determine SELinux context(s) for user sessionseuare-groupcreate- 1 1 1484780705 A - - gz Create a new grouptcl_getencodingnameTcl_GetEncodingName 3 3 1448008821 B - - gz procedures for creating and using encodingsarp arp 8 arp 7execv execv 3 execv 3plround lround 3 lround 3p_ 2bp\xkbs0rSX2xrmqAgcovW0E2xcb_QeucaX ?bn_b2 8prin 2'xtowN2Fk$2xcb_xkba2Gxml:YXidI3  2seli`2tcl_W %2xrmpH,2symlT +\K2git-| 7G2sync1,I2bn_s ?*2ssl_BY.I2cpro6K2xcms<qo]2debuDLW{2sin (6+2procд *tiffg[Ffont[4conn5 %date54gets6 ,TpK2ghos ^<52mq_roN;_2pvre˵ FOI2scr_Id2i_F7v-H2synck6syst8 , 2xcb_auto8=bn_b8 8mall+9 =D2dateٶ1fcpa9Jpcre9>l^`2xcb_  date:3z2getr[ free; 422euca^ssl_;Uxcb_;!=2lwreL9K2dbd:Ma2evp_̸Hpr2asn1-ACZ2xkbr~'2xkbb 2xcb_.remq4> 9swapw>pthr>>y2ethe Aį2tcl_APW2tap:Wq2http9X2wish`1F2posi;]v_2nice?2xtap+HA2xcb_lset:AAxcb_])W2wcsn Fxcb_]date]3u,.2scal =xdr_ALlh_n B.dbd:`BVxkbaBidateJC5extuCZmcooD;abID?tiffD _logiD6Q62isgrWDa:2rand ?J2xcb_ H2bind3T@2assuV92avc_5r2ssca 4dateUG3w<2bn_m>?].2xtgeF^R2date@rewi{H JlocaH(h2tcl_1=2tcl_Z 2bn_gP+42bio_O 0uf>2xeviRstdi[I/E'2rema/llroH_ ;;H2wcsw*;2datel0urepI <d2i_`[3,2time25T2endg /menuJ NA2xcb_%(ZS#2sha2h =q02asin~d2xkbsi2v2cursDZG2roun+2pvch B(2euwa( `2extu]Ip2env B4`2file.2ipc 74xcb_M/Yo2setrq Epod:NW\ramN*,d,2libe 5xcb_S&2xfs_ 4xcb_N(date O8keycaO;ttk:O 2W@2set_<0*-2mkfs} :tcl_yP<xcb_P2tempWd2ferr2 5y2jobsw h2endn  ,u2perl =wcssQ geuarRMasn1tR?2utim  CI2dateU 0v#2caco  DispruSctanT k2hdes  x2sum Bpx2tzseP  ,set_oT9fdim1semaT\isleCUEaio_U Jxcb_Ussl_Wislk_V6spu_0 3+(O $SPV2cpu_  C2kexe  @pthr@sett .2cbc_  .!2ui_pU  92pktt  872va_a  :lh_d 0O@2xcb_ 1Л2ssl_l MvgdiW ;pam_ 3jobsJ2xdg-  Lķ2tcl_&E2tiff} 5xcms<tcl_QOtc-cxJ 4xcb_"eucaJ#HkeycL %posi}=log1 7avc_ =^F2buff>mvin K Oxcb_zK+getuKB2ptmx:f2bzeg@ t2eucah:2xcb_n2unloP.V2x5095P`2fwscPCicon  /6~2fsfrP \tcl_ dc2xcb__Q,cpro  6tR2hostQ "g2termQ ;tcl_  Gifst MLm2getkRj"N2euarR6+2acosR 17:2outwS#tcl_ Q3'2ps2e>SFuse_r ;chdi 5odbm >xdbe>Ksetu 3ճ2setrS AerfcL7!2typeS 0c2des_T RV2euca:TKbio_M /__cl_P 12euscT'_xcb_*Nv52eucaU>2xcb_zU'2passU 22dateU0~_2drem>V<v2des_VDtzfiXQ/xcb_Q)forQ%winsQ RuserVR Qpido[ODtiffR]xcb_Oavc_P^Q2xcb_Vb2ssl_Wi2testW0B2perlW 4sg_rS ^^2slk_W 62bn_r>XSxfs_Q AU2xcb_X)xcb_Q&tcl_TPxcb_R&isnaUFP2dataXNabrtTRMxcb_ V-2streEYh 2xcb_Y#2strf&Z ?xcb_Vmvcu/W ;xcb_sW12xcb_pZ,xcb_Wg2cms_Z[V2pthr)[8Q2xgetp[utsorEY3perlY>xcb_YM2mq_g[ ;creaLZ<etheZAp2date;\42getl\ +tracc[$xcb_[! 2xget\GFפ2eulb]L2stri]'12pcre]>.X2defa^Ud2xkbf|^fʣ2evp_^C{2dateJ_32gsnd_V2rvie`A82xcb_G`2tc-c{` >fata_Xdate@5confO@Mxcb_@4xcb_@$2ptsn` Cxcb_AccosgfdlA8ssl_B_ssl_BfendiCXiso_rC ^svceCFmkos. 9stap1D0tk_miD\sys/D%J2reada >/2xcb_[a"S&2cpioaY2xcb_a\q2xtsca Jtcl_FQperfF8!2xall{xutfGdquot H <touc_G^2pcre>perl *2e2fsC>2mq_t'Ii2d_q >date02defaExallocwmhintsXAllocWMHints 3 3 1710950786 A - - gz allocate window manager hints structure and set or read a window's WM_HINTS propertypcre16_jit_stack_free- 3 3 1573510868 B - - gz Perl-compatible regular expressionse2fsck- 8 8 1711459140 A - - gz check a Linux ext2/ext3/ext4 file systemmq_timedsend 3p- 3p 3p 1402354216 B - - gz send a message to a message queue (REALTIME)defaultcolormapDefaultColormap 3 3 1710950785 B - - gz Display macros and functionsgroupmems- 8 8 1565319053 A - - gz administer members of a user's primary groupwdelch- 3x 3 1720626759 B - - gz delete character under the cursor in a curses windowmvwaddstr- 3x 3 1720626759 B - - gz add a string of characters to a curses window and advance cursorgrub-script-check- 1 1 1722985065 C grub2-script-check - gz eulb-describe-instance-health- 1 1 1484780705 A - - gz Show the state of instances registered with a load balancermbsinit 3p- 3p 3p 1402354216 A - - gz determine conversion object statussleep 3p- 3p 3p 1402354218 A - - gz suspend execution for an interval of timeidna_to_ascii_4i- 3 3 1448125246 A - - gz API functioncreal 3p- 3p 3p 1402354214 A - - gz complex real functionskillall- 1 1 1601486412 A - - gz kill processes by namemlock 2- 2 2 1402354205 A - - gz lock and unlock memorysha1sum- 1 1 1605565487 A - - gz compute and check SHA1 message digestdatetime::locale::kcg_ngDateTime::Locale::kcg_NG 3pm 3 1402390633 A - - gz datetime::locale::beDateTime::Locale::be 3pm 3 1402390635 A - - gz logbl 3p- 3p 3p 1402354216 B - - gz radix-independent exponentio::pipeIO::Pipe 3pm 3 1698237674 A - - gz supply object methods for pipesxfs_freeze- 8 8 1601488312 A - - gz suspend access to an XFS filesystemuniq 1- 1 1 1605565487 A - - gz report or omit repeated linesmenu_mark- 3x 3 1720626759 A - - gz get and set the menu mark stringwaitid 3p- 3p 3p 1402354219 A - - gz wait for a child process to change stateeuscale-update-auto-scaling-group- 1 1 1484780705 A - - gz Update an auto-scaling group's parameterssrand 3p- 3p 3p 1402354217 A - - gz pseudo-random number generatorfcpatterngetwithbindingFcPatternGetWithBinding 3 3 1520307172 A - - gz Return a value with binding from a patternlocaltime_r 3p- 3p 3p 1402354216 B - - gz convert a time value to a broken-down local timeselinux_status_updated- 3 3 1585710994 B - - gz reference the SELinux kernel status without invocation of system callsxcb_glx_get_tex_image_data_length- 3 3 1540917640 B - - gz evp_pkey_paramgenEVP_PKEY_paramgen 3ssl 3 1721417624 B - - gz key and parameter generation functionsxml::libxml::errnoXML::LibXML::ErrNo 3pm 3 1402352993 A - - gz Structured Errors This module is based on xmlerror.h libxml2 C header file. It defines symbolic constants for all libxml2 error codes. Currently libxml2 uses over 480 different error codes. See also XML::LibXML::Error.asinf 3- 3 3 1402354207 B - - gz arc sine functionpthread_getcpuclockid 3- 3 3 1402354211 A - - gz retrieve ID of a thread's CPU time clockcut 1p- 1p 1p 1402354203 A - - gz cut out selected fields of each line of a filefsf-funding-libstdc++-plesk-12.2.0- 7 7 631195200 A - - gz Funding Free Softwareuri::fileURI::file 3pm 3 1402351652 A - - gz URI that maps to local file namesnoqiflush_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionxcb_x_print_notify_event_t- 3 3 1540917640 A - - gz xcb_query_keymap_unchecked- 3 3 1540917640 B - - gz sg_write_same- 8 8 1585715378 A - - gz send SCSI WRITE SAME commandgetfsspec- 3 3 1402354209 B - - gz handle fstab entriesgrantpt 3p- 3p 3p 1402354215 A - - gz grant access to the slave pseudo-terminal devicemyisamlog- 1 1 1697025034 A - - gz display MyISAM log file contentstanh 3- 3 3 1402354213 A - - gz hyperbolic tangent functionwcwidth 3p- 3p 3p 1402354219 A - - gz number of column positions of a wide-character codestrip strip 1p strip 1tld_default_table- 3 3 1448125246 A - - gz API functionset_matchpathcon_invalidcon- 3 3 1585710994 B - - gz set flags controlling the operation of matchpathcon or matchpathcon_index and configure the behaviour of validity checking and error displayingpthread_attr_getguardsize pthread_attr_getguardsize 3 pthread_attr_getguardsize 3pxtungrabkeyXtUngrabKey 3 3 1501646833 B - - gz manage grabsre_syntax- n n 1448008823 A - - gz Syntax of Tcl regular expressionsiso_8859_15- 7 7 1402354220 B - t gz ISO 8859-15 character set encoded in octal, decimal, and hexadecimalxtappgetselectiontimeoutXtAppGetSelectionTimeout 3 3 1501646833 A - - gz set and obtain selection timeout valuessplain 1- 1 1 1698237679 A - - gz produce verbose warning diagnosticsfstatvfs 2- 2 2 1402354204 B - - gz get file system statisticsecdsa_do_sign_exECDSA_do_sign_ex 3ssl 3 1721417624 B - - gz Elliptic Curve Digital Signature Algorithmxcb_store_named_color_checked- 3 3 1540917640 B - - gz d2i_pkcs8privatekeyd2i_PKCS8PrivateKey 3ssl 3 1699892215 A - - gz PKCS#8 format private key functionsxcb_xfixes_set_cursor_name_checked- 3 3 1540917640 B - - gz paperconf- 1 1 1601484498 A - - gz print paper configuration informationsscr_init_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionevp_idea_cbcEVP_idea_cbc 3ssl 3 1721417624 B - - gz EVP cipher routinesssl_ctx_sess_hitsSSL_CTX_sess_hits 3ssl 3 1721417624 B - - gz obtain session cache statisticsmunlock 3p- 3p 3p 1402354216 B - - gz lock or unlock a range of process address space (REALTIME)slk_attron_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionxrmquarktostringXrmQuarkToString 3 3 1710950786 B - t gz manipulate resource quarksfmod fmod 3 fmod 3perror::buildid- 7stap 7 1602605484 A - - gz build-id verification failuresevp_md_ctx_initEVP_MD_CTX_init 3ssl 3 1721417624 B - - gz EVP digest routinesselinux_restorecon_set_sehandle- 3 3 1585710994 A - - gz set a labeling handle for use by selinux_restorecon (3)dgst- 1ssl 1 1721417624 A - - gz message digestssecurity_compute_create_name- 3 3 1585710994 B - - gz query the SELinux policy database in the kernelset_menu_items- 3x 3 1720626759 B - - gz make and break connections between items and menuslwres_noopresponse_render- 3 3 1725373371 B - - gz lightweight resolver no-op message handlingeuare-groupremoveuser- 1 1 1484780705 A - - gz Remove a user from a groupgit-help- 1 1 1722330782 A - - gz Display help information about Gitxcb_glx_get_minmax_parameterfv_data- 3 3 1540917640 B - - gz sg_map- 8 8 1585715378 A - - gz displays mapping between Linux sg and other SCSI devicespthread_attr_setdetachstate 3- 3 3 1402354211 A - - gz set/get detach state attribute in thread attributes objectdatetime::locale::wal_etDateTime::Locale::wal_ET 3pm 3 1402390632 A - - gz semanage-boolean- 8 8 1585713889 A - - gz SELinux Policy Management boolean toolPEM 3ssl- 3ssl 3 1721417624 B - - gz PEM routinesxcb_glx_query_context_reply- 3 3 1540917640 B - - gz update-pciids- 8 8 1523415040 A - - gz download new version of the PCI ID listnumfmt- 1 1 1605565487 A - - gz Convert numbers from/to human-readable stringssetsebool- 8 8 1585713889 A - - gz set SELinux boolean valuestrict- 3pm 3 1698237678 A - - gz Perl pragma to restrict unsafe constructsgdisk- 8 8 1393783057 A - - gz Interactive GUID partition table (GPT) manipulatorssl_ctx_sessionsSSL_CTX_sessions 3ssl 3 1699892219 A - - gz access internal session cache  /I7sigh$v;96pam_ =)6rindI,6get_dIm6wborP{fQ6date#36setdn2eD6ulim ,v6pam_D{6htob6XuJ6euarO6wget86pthrL: 6pope6posi'ThU6ceil3[{6pthrAt7pechBv :6cloc@6xcb_G4D^6fcfo 7հ6envz 5 6jobs>HA7ssl_v a6Pod:]FX<6xcb_j6xcb_*v6exec+6k6set_FA:[6get_@b6unco 36igaw#2u6abrt[;I1P6waddi`6xkba$D6ccosy 56bio_ /B6rpc 7C6cpio.:ѧ6tcl_oIs>6blow 16ip-n ;#\6xcb_P-1d06lvsD6x509 r6xintr @L6gets6fenv77Y6git-0/ k6menuZ Q6vid_ BM6mkte6read# - Y6cata[ :6autoLɭ6xcb_* 7dirnv >X7fcma=w;ۑ17tcl_w^ 6init> >V6xcb_&%6perl  G66perlQ 2XY6geth <n 6loca-.27ec_gw_̦7systqx*]L6top_  <]6pcre!>6xcb_h!5*-6HEAD!9S6unli! [w7mvadx \L6memc\"B7avcsy9wR6posiw"%VX6mvvl"P)6xcb_J#>wS6bund}#\9@6syst#*[6xcms-$J6open$7]y6xmll$0{rV7dateYy3 6hcre% 5p7dsay7bzgryZ{6dateB%3Q6date%06eusc%5,6clnt&F$Z6lwreu&H'6scro& BDg7setlz ߬6http' V$6tcl_|'@ݺ6sigs' .S3(7xcb_@z,*6init(Eٶ"6xcha[(>u86xcb_(/J 37tcl_zOxq6xrem(P&6sem_`)D6getu) /Y7formz? 6euca)7L6scal:*_k6perl* Yza6tcuc+ 86systF+">6lgam+TÊ7xcb_5{6rpm_+ cWB6xtpa0,L5?7prean{T^6crac,8K46xcre,@26vall*-2M6ftimc-'Zy6catg-Bo6logf-!k66xcb_- R6perl- 7m6requ=. U6pwd .T7abrt{ H6xcb_.6ec_k!/ kd6xdrs/LVN6modupb6perljp :^6xcb_p)~57getp|>RX6initp /36bind/q>7strig|')?J6xmbdtqHa7strt| ?)Z7halt|@7xtis<}Jؑ6defaqC2m6lvrer > 6ffslbr76sqrtrb97sete} 9>7xtre}M˂)6evp_r :7upda7~p)7auto~ LZ7time;I07ssl_XS6xcb_r06posiGsGh7xcb_扤7dsa_DT6isfis 2!7x509[T"6truns T6xcheItWk6sigitA6strit ,K6gitc4uCb0-6ar 1uA$}6tcamuP17pcreˀ>perlootut- 1 1 1698237666 A - - gz Object-Oriented Programming in Perl Tutorialperlko- 1 1 1698237666 A - - gz PerlXX XXXXXXXX XXXXXXXgethostent 3p- 3p 3p 1402354218 A - - gz network host database functionstop_panel- 3x 3 1720626759 B - - gz panel stack extension for cursespcre16_compile2- 3 3 1573510868 B - - gz Perl-compatible regular expressionsxcb_randr_get_provider_info_associated_providers_end- 3 3 1540917640 B - - gz HEAD 1- 1 1 1402363153 A - - gz Simple command line user agentunlinkat- 2 2 1402354206 A - - gz remove a directory entry relative to a directory file descriptormemcpy memcpy 3 memcpy 3pposix_trace_attr_setstreamfullpolicy- 3p 3p 1402354217 B - - gz retrieve and set the behavior of a trace stream (TRACING)mvvline- 3x 3 1720626759 B - - gz create curses borders, horizontal and vertical linesxcb_test_compare_cursor- 3 3 1540917640 A - - gz bundle::image::info::xpmBundle::Image::Info::XPM 3pm 3 1402363342 A - - gz XPM (X11 pixmap) support for Image::Infosystemd-journald- 8 8 1711457788 B - - gz Journal servicexcmstekhvcquerymaxcXcmsTekHVCQueryMaxC 3 3 1710950786 A - - gz obtain the TekHVC coordinatesopenssl- 1ssl 1 1699892200 A - - gz OpenSSL command line toolxmllint- 1 1 1708355032 A - - gz command line XML toolhcreate 3p- 3p 3p 1402354216 A - - gz manage hash search tabledatetime::locale::bg_bgDateTime::Locale::bg_BG 3pm 3 1402390640 A - - gz datetime::locale::ocDateTime::Locale::oc 3pm 3 1402390638 A - - gz euscale-describe-tags- 1 1 1484780705 A - - gz Describe auto-scaling tagsclnt_pcreateerror- 3 3 1402354208 B - - gz library routines for remote procedure callslwres_hstrerror- 3 3 1725373371 B - - gz lightweight resolver error message generationscrollbar- n n 1448008912 A - - gz Create and manipulate scrollbar widgetshttp::configHTTP::Config 3pm 3 1402363906 A - - gz Configuration for request and response objectstcl_appendelementTcl_AppendElement 3 3 1448008822 A - - gz manipulate Tcl resultsigset 3p- 3p 3p 1402354218 A - - gz signal managementinit_selinuxmnt- 3 3 1585710994 A - - gz initialize the global variable selinux_mntxchangepointercontrolXChangePointerControl 3 3 1710950786 A - - gz control pointerxcb_xv_query_port_attributes_attributes_length- 3 3 1540917640 B - - gz xremoveconnectionwatchXRemoveConnectionWatch 3 3 1710950786 B - - gz handle Xlib internal connectionssem_getvalue 3p- 3p 3p 1402354218 A - - gz get the value of a semaphore (REALTIME)getuid 3p- 3p 3p 1402354215 A - - gz get a real user IDeuca-reboot-instances- 1 1 1484780705 A - - gz Reboot one or more instancesscalbl- 3 3 1402354212 B - - gz multiply floating-point number by integral power of radix (OBSOLETE)perlio::viaPerlIO::via 3pm 3 1698237676 A - - gz Helper class for PerlIO layers implemented in perltcucodec- 1 1 1402385697 A - - gz popular encoders and decoderssystemd-machine-id-commit.service- 8 8 1711457788 A - - gz Commit transient machine-id to disklgamma lgamma 3 lgamma 3prpm_execcon- 3 3 1585710994 B - - gz get or set the SELinux security context used for executing a new processxtparseacceleratortableXtParseAcceleratorTable 3 3 1501646833 A - - gz managing accelerator tablescracklib-packer- 8 8 1337469855 A - - gz cracklib dictionary utilitiesxcreateregionXCreateRegion 3 3 1710950786 A - - gz create or destroy regionsvalloc- 3 3 1402354213 B - - gz allocate aligned memoryftime 2- 2 2 1402354206 C unimplemented - gz catgets catgets 3 catgets 3plogf logf 3 logf 3pxcb_input_list_input_devices- 3 3 1540917640 A - - gz perlfaq7- 1 1 1698237665 A - - gz General Perl Language Issuesrequest-key- 8 8 1402366674 A - - gz Handle key instantiation callback requests from the kernelpwd n- n n 1448008823 A - - gz Return the absolute path of the current working directoryxcb_fill_poly- 3 3 1540917640 A - - gz ec_key_freeEC_KEY_free 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_KEY objects.xdrstdio_create- 3 3 1402354213 B - - gz library routines for external data representation ! U}4err_I=84gran6 MV4xcb_n4wcwi P 4strik]4tc-eŁ R;4open![I4date0z4rcscނ 14auto A4xtadcR݇4gai_˃BtuneX3>4sets 9<4evp_b ;xcb_ 4tige=4 ;׊4xloa Rxs4sigw N4term/T4tcl_CXk}4tempO4xcb_4tcl_CAe4sinh#4iswc 4pod:ˆ 4{44date34putsS-R4long +l4trac X*؂4xcb_ ^4xcb_Y 4perl -4vimrʈAV4xtprJڞY4xtnuj W$#4tcfmʉT`4psig% /d4pmap] Fa`4encoT4tmpw Yfcpa9JA4mq_ru k4dirn+%;4err_ϋI4pcre+ >4cpant H4openŌT4clea+4xcb_;!_"4dsa_g O^l4form QAZ4date14fcpacMui_a8=A4ip6tÎ.NU`4file F+4fcraT 8T4xml:E(94pam_ 3{C4pod:@ dm`4preaTu4xcb_ ,4ec_ggkE4sete @Q4xgra5 9CH4xcb_z|_4msr4x4log 7D4xope% G4csiny >b4clog:d4lgam -4euca;I4ssl_ba\8?4daemO4cima Ant4xkbgJ4h_er& On4gets*9x4flus>5;4xtcrIU4char[ Wp4nfsdNwP4euardxkbk5EdateE4poll F6y4slk_ ;LQ4sysl /S4stat*caco G-z 4strv7 6isblGYe4xcb_x04systzl4evp_G?4xcb_+mallH ?coslFIstdi[I/xcb_I&urepI <'4getl1m4date04pcloZ!`4dtlsupform8K8readK.dbi:Kffile5L0evp_mLEtcl_LWV~4comm{4inet AS4tcl_]Mm4setr ?:4euarM|Y>4grubO,xcb_M/ec_gMramN*)4dbix Y d4pure ?h4tsorO -keycaO;f4gets,hostP m~4shar1xcb_P4lwreA4xgetLZ`q4evp_T 4xml:f#=4getw m4asin,wcssQ geuarRMg4pthrCm4 1R*C14cut Kc4myis ;Ǫ4fsf-b#/V4uri: Fv4exec5^4noqi ;4xcb_Lk4xcb_bF14sg_w7u4xdrZL4tanh6 4getf /-{4mvwa iZ4sg_sRcMe4tld_'_Xotcl_XTB5set_(5pthr:5xtun 1eucaX ?%75re_s <$#v5iso_Y _p5xtapYK35spla6 >xcb_CZ&errnZ/m5fsta} 585ecdsWm5xcb_%+55d2i_^Sm5xcb_#5pape Ax5scr_N ;xcb_])date[]0A5evp_ <o5ssl_MAm5munl= Wz5slk_;~5xrmqDt15fmod=畄5erroR=xcb__(d2i_`[,5evp_?5seli R^t5dgst_-T5secuJ5set_N(5lwreUFC5euar5a)5git- =\5xcb_F$ҷ5sg_mS5pthrUxcb_"dsa_@BE5dates45semaA8N$5PEM  *X5xcb_El5upda|B5numfIȥ5sets 4w5striZFK5gdisM#?5ssl_J5semtP 85des_CP<$5xcb_P15timeP bjY5xcb_GQ6I)5bio_Q /:5renaQ 5/5reseR2we5pthr?RO? 5bn_dR Uq.5xtisSI5dbd:^Sdp5unicS Bva_arI5tiff$TF5gpl-T5xcb_'!_trac5/t5xcb_T5sendU5x5iso->U _5tcl_UR<5xcb_ V"45timeGV>zq5ps2pV kf5msguWJinsw#q5secuSW6>5xchaWP-5vendWC5xkba@XXTS5xmotX y_T5xcb_2Y#*5ssl_pYT5dateY045stde$Z8@5extu?ZO5putmZ̓5sg_sZ _̱5inst-[M5ssl_L[m5xcb_[&s5csin\Z5pam_-\ 3P5tcl_m\WG5tker\GUw5evp_(]O25bio_] /{05date]33m5nrof ^;2A5pam_L^A$<5euca^!e@F5strt_ J;VU5timeo_:x5gets` 95xcb__!{P5dateD`30{5inot`8sW5chmo` 2e5cabs a=5wcstOa BX"5getaaB5sepga0j65pam_~b 0Js5remab 15xtcab9G5evp_-cDZ5mq_tc8f5xcb_c,H5xcb_d6%5cpowNd 4'5cpand$Tssl_b 5ferre15tcl_eUX5xauwe C5ssl_e"k05ssl_ffkY5tcl_f LvU5listGg(?05sysctgA=5bigngCht5locag Q(15conj3h:mq_u >n75crypuh#Un 5t1lih S05xcolLiF5slk_i 6Ⱇ5net:i TdT<5xtap=j >i5Glusj #yy5xcb_j'dbi:S Z5tempj]75pdf2hkLcrdalmysq Jtanh9n5tcl_k@15cryp l^[5writ|l5KԲ5showlGVB5pthrm3sޓ5net:Qm _u5pem_m@K5xcb_n-Bj5xcb_n$5bn_bn 8 5lchoo Jpod:NW\semtimedop- 2 2 1402354205 B - - gz System V semaphore operationsdes_ofb64_encryptDES_ofb64_encrypt 3ssl 3 1721417624 B - - gz DES encryptionxcb_get_property_value- 3 3 1540917640 B - - gz Gets a window propertytime::hiresTime::HiRes 3pm 3 1402343817 A - - gz High resolution alarm, sleep, gettimeofday, interval timersxcb_get_geometry- 3 3 1540917640 A - - gz Get current window geometrybio_get_sslBIO_get_ssl 3ssl 3 1721417624 B - - gz SSL BIOrename n- n n 1448008823 A - - gz Rename or delete a commandreset- 1 1 1720626759 B - - gz terminal initializationpthread_attr_setstack 3- 3 3 1402354211 A - - gz set/get stack attributes in thread attributes objectbn_div_wordBN_div_word 3ssl 3 1721417624 B - - gz arithmetic functions on BIGNUMs with integersxtiscompositeXtIsComposite 3 3 1501646833 B - - gz obtain and verify a widget's classdbd::file::roadmapDBD::File::Roadmap 3pm 3 1402362411 A - - gz Planned Enhancements for DBD::File and pure Perl DBD'sunicode::ucdUnicode::UCD 3pm 3 1698237678 A - - gz Unicode character databasetiffcheckpointdirectoryTIFFCheckpointDirectory 3tiff 3 1729525165 C TIFFWriteDirectory - gz gpl-libstdc++-plesk-6.3.0- 7 7 1547112203 A - - gz GNU General Public Licensexcb_glx_get_tex_envfv- 3 3 1540917640 A - - gz send 2- 2 2 1402354205 A - - gz send a message on a socketiso-8859-14- 7 7 1402354219 B - t gz ISO 8859-14 character set encoded in octal, decimal, and hexadecimaltcl_fsregisterTcl_FSRegister 3 3 1448008822 B - - gz procedures to interact with any filesystemxcb_glx_query_context_attribs_end- 3 3 1540917640 B - - gz times 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)ps2pdf13- 1 1 1605296035 B - - gz Convert PostScript to PDF 1.3 (Acrobat 4-and-later compatible) using ghostscriptmsguniq- 1 1 1465650365 A - - gz unify duplicate translations in message catalogsecure_getenv- 3 3 1402354212 B - - gz get an environment variablexchar2bXChar2b 3 3 1710950786 B - - gz load or unload fonts and font metric structuresvendorreleaseVendorRelease 3 3 1710950785 B - - gz Display macros and functionsxkbadddeviceledinfoXkbAddDeviceLedInfo 3 3 1710950785 A - - gz Initialize an XkbDeviceLedInfoRec structurexmotioneventXMotionEvent 3 3 1710950785 B - - gz KeyPress, KeyRelease, ButtonPress, ButtonRelease, and MotionNotify event structuresxcb_input_list_input_devices_pad_1- 3 3 1540917640 B - - gz ssl_ctx_get_quiet_shutdownSSL_CTX_get_quiet_shutdown 3ssl 3 1721417624 B - - gz manipulate shutdown behaviourdatetime::locale::veDateTime::Locale::ve 3pm 3 1402390634 A - - gz stderr stderr 3 stderr 3pextutils::makemaker::configExtUtils::MakeMaker::Config 3pm 3 1402365500 A - - gz Wrapper around Config.pmputmsg putmsg 2 putmsg 3psg_start- 8 8 1585715378 A - - gz send SCSI START STOP UNIT command: start, stop, load or eject mediuminstall INSTALL 3pm install 1ssl_ctx_set_default_passwd_cbSSL_CTX_set_default_passwd_cb 3ssl 3 1721417624 A - - gz set passwd callback for encrypted PEM file handlingxcb_glx_query_server_string_unchecked- 3 3 1540917640 B - - gz csin csin 3 csin 3ppam_get_item- 3 3 1585713595 A - - gz getting PAM informationstcl_getregexpfromobjTcl_GetRegExpFromObj 3 3 1448008822 A - - gz Pattern matching with regular expressionstkerror- n n 1448008912 A - - gz Command invoked to process background errorsevp_verifyinitEVP_VerifyInit 3ssl 3 1721417624 A - - gz EVP signature verification functionsbio_get_fpBIO_get_fp 3ssl 3 1721417624 B - - gz FILE biodatetime::locale::en_usDateTime::Locale::en_US 3pm 3 1402390637 A - - gz nroff- 1 1 1533764324 A - - gz emulate nroff command with groffpam_ftp- 8 8 1585713589 A - - gz PAM module for anonymous access moduleeuca-delete-vpn-connection-route- 1 1 1484780705 A - - gz Delete a static route from a virtual private gateway to a customer gatewaystrtof 3p- 3p 3p 1402354218 B - - gz convert a string to a double-precision numbertimer_getoverrun 3p- 3p 3p 1402354219 B - - gz per-process timers (REALTIME)xcb_randr_get_output_info_clones- 3 3 1540917640 B - - gz getspent_r- 3 3 1402354209 B - - gz get shadow password file entrydatetime::locale::ar_tnDateTime::Locale::ar_TN 3pm 3 1402390636 A - - gz inotify- 7 7 1402354219 A - - gz monitoring file system eventschmod 3p- 3p 3p 1402354214 A - - gz change mode of a filecabsl 3- 3 3 1402354207 B - - gz absolute value of a complex numberwcstok 3- 3 3 1402354213 A - - gz split wide-character string into tokensgetaddrinfo 3- 3 3 1402354209 A - - gz network address and service translationsepgsql_contexts- 5 5 1585710994 B - t gz userspace SELinux labeling interface and configuration file format for the RDBMS objects context backendpam_rhosts- 8 8 1585713591 A - - gz The rhosts PAM moduleremainderf remainderf 3 remainderf 3pxtcallbackexclusiveXtCallbackExclusive 3 3 1501646833 B - - gz map a pop-upevp_rc5_32_12_16_cbcEVP_rc5_32_12_16_cbc 3ssl 3 1721417624 B - - gz EVP cipher routinesmq_timedreceive mq_timedreceive 3 mq_timedreceive 2 mq_timedreceive 3pxcb_randr_set_provider_offload_sink_checked- 3 3 1540917640 B - - gz xcb_xf86dri_get_drawable_info- 3 3 1540917640 A - - gz cpowf 3p- 3p 3p 1402354214 B - - gz complex power functionscpanplus::internals::source::sqliteCPANPLUS::Internals::Source::SQLite 3pm 3 1402392266 A - - gz SQLite implementationferror ferror 3 ferror 3ptcl_getchannelnamesexTcl_GetChannelNamesEx 3 3 1448008822 B - - gz buffered I/O facilities using channelsxauwriteauthXauWriteAuth 3 3 1402361801 B - - gz X authority database routinesssl_comp_free_compression_methodsSSL_COMP_free_compression_methods 3ssl 3 1721417624 B - - gz handle SSL/TLS integrated compression methodsssl_ctx_load_verify_locationsSSL_CTX_load_verify_locations 3ssl 3 1699892219 A - - gz set default locations for trusted CA certificatestcl_unicharTcl_UniChar 3 3 1448008823 B - - gz routines for manipulating UTF-8 stringslist- n n 1448008823 A - - gz Create a listsysctl sysctl 8 sysctl 2bignum- 3pm 3 1698237678 A - - gz Transparent BigNumber support for Perllocalectl- 1 1 1711457787 A - - gz Control the system locale and keyboard layout settingsconjf 3- 3 3 1402354208 B - - gz calculate the complex conjugatecrypto_set_dynlock_create_callbackCRYPTO_set_dynlock_create_callback 3ssl 3 1721417624 B - - gz OpenSSL thread supportt1libconfig- 8 8 1198424983 A - - gz create the t1lib.config and FontDataBase files for t1libxcolormapeventXColormapEvent 3 3 1710950786 A - - gz ColormapNotify event structureslk_init- 3x 3 1720626759 B - - gz curses soft label routinesnet::cmdNet::Cmd 3pm 3 1698237676 A - - gz Network Command class (as used by FTP, SMTP etc)xtappwarningXtAppWarning 3 3 1501646833 B - - gz low-level error handlersGlusterFS 8- 8 8 1649176098 C glusterfs - gz xcb_randr_list_output_properties_reply- 3 3 1540917640 B - - gz template::contextTemplate::Context 3pm 3 1402357151 A - - gz Runtime context in which templates are processedpdf2dsc- 1 1 1601482853 A - - gz generate a PostScript page list of a PDF documenttcl_sourcercfileTcl_SourceRCFile 3 3 1448008822 A - - gz source the Tcl rc filecrypt::passwdmd5Crypt::PasswdMD5 3pm 3 1402355021 A - - gz Provides interoperable MD5-based crypt() functionswrite 2- 2 2 1402354206 A - - gz write to a file descriptorshow-installed- 1 1 1589300861 A - - gz show installed RPM packages and descriptionspthread_exit 3- 3 3 1402354211 A - - gz terminate calling threadnet::netentNet::netent 3pm 3 1698237676 A - - gz by-name interface to Perl's built-in getnet*() functionspem_read_bio_rsa_pubkeyPEM_read_bio_RSA_PUBKEY 3ssl 3 1721417624 B - - gz PEM routinesxcb_list_fonts_with_info_properties_iterator- 3 3 1540917640 B - - gz get matching font names and informationxcb_xkb_get_device_info_name_length- 3 3 1540917640 B - - gz bn_bn2hexBN_bn2hex 3ssl 3 1721417624 B - - gz format conversionslchown 3p- 3p 3p 1402354216 A - - gz change the owner and group of a symbolic linkmodutil- 1 1 1730826028 A - - gz Manage PKCS #11 module information within the security module database.perlpacktut- 1 1 1698237667 A - - gz tutorial on "pack" and "unpack"xcb_xvmc_create_subpicture_priv_data_end- 3 3 1540917640 B - - gz init_module- 2 2 1402354205 A - - gz load a kernel modulebind 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)xmbdrawstringXmbDrawString 3 3 1710950786 A - - gz draw text using a single font setdefaultscreenDefaultScreen 3 3 1710950785 B - - gz Display macros and functionslvreduce- 8 8 1619616701 A - - gz Reduce the size of a logical volumeffsll- 3 3 1402354209 B - - gz find first bit set in a wordsqrtf sqrtf 3 sqrtf 3pevp_bf_cfbEVP_bf_cfb 3ssl 3 1721417624 B - - gz EVP cipher routinesxcb_x_print_print_get_page_dimensions_unchecked- 3 3 1540917640 B - - gz posix_trace_eventset_ismember- 3p 3p 1402354217 B - - gz manipulate trace event type sets (TRACING)isfinite 3p- 3p 3p 1402354216 A - - gz test for finite valuetruncate 1- 1 1 1605565487 A - - gz shrink or extend the size of a file to the specified sizexcheckifeventXCheckIfEvent 3 3 1710950786 B - - gz check the event queue with a predicate proceduresiginterrupt 3p- 3p 3p 1402354218 A - - gz allow signals to interrupt functionsstring 3- 3 3 1402354212 A - - gz string operationsgitcredentials- 7 7 1722330784 A - - gz providing usernames and passwords to Gitar 1p- 1p 1p 1402354203 A - - gz create and maintain library archivestcamgr- 1 1 1402385697 A - - gz the command line utility of the abstract database APIsighold sighold 3 sighold 3ppecho_wchar- 3x 3 1720626759 B - - gz create and display curses padsssl_pendingSSL_pending 3ssl 3 1699892224 A - - gz obtain number of readable bytes buffered in an SSL objectdirname 1- 1 1 1605565487 A - - gz strip last component from file namefcmatrixmultiplyFcMatrixMultiply 3 3 1520307172 A - - gz Multiply matricestcl_ischannelsharedTcl_IsChannelShared 3 3 1448008821 B - - gz procedures for creating and manipulating channelsec_group_set_asn1_flagEC_GROUP_set_asn1_flag 3ssl 3 1721417624 B - - gz Functions for manipulating EC_GROUP objects.systemd-journald.socket- 8 8 1711457788 B - - gz Journal servicemvaddstr- 3x 3 1720626759 B - - gz add a string of characters to a curses window and advance cursoravcstat- 8 8 1585710994 A - - gz Display SELinux AVC statisticsdatetime::locale::en_gbDateTime::Locale::en_GB 3pm 3 1402390639 A - - gz dsa dsa 3ssl dsa 1sslbzgrep- 1 1 1167789655 A - - gz search possibly bzip2 compressed files for a regular expressionsetlocale setlocale 3 setlocale 3pxcb_dri3_buffers_from_pixmap_strides_length- 3 3 1540917640 B - - gz tcl_serviceallTcl_ServiceAll 3 3 1448008822 B - - gz the event queue and notifier interfacesform_requestname- 3x 3 1720626759 A - - gz handle printable form request namesxcb_res_query_clients_clients- 3 3 1540917640 B - - gz pread64- 2 2 1402354205 B - - gz read from or write to a file descriptor at a given offsetabrt-cli- 1 1 1601569733 A - - gz List, remove, print, analyze, report problemsgetpriority 2- 2 2 1402354206 A - - gz get/set program scheduling prioritystringprep_utf8_nfkc_normalize- 3 3 1448125246 A - - gz API functionstrtoll 3p- 3p 3p 1402354218 B - - gz convert a string to a long integerhalt- 8 8 1711457788 A - - gz Halt, power-off or reboot the machinextisconstraintXtIsConstraint 3 3 1501646833 B - - gz obtain and verify a widget's classsetegid 2- 2 2 1402354205 B - - gz set effective user or group IDxtremovecallbacksXtRemoveCallbacks 3 3 1501646833 B - - gz add and remove callback proceduresupdate-ca-trust- 8 8 1730832676 A - - gz manage consolidated and dynamic configuration of CA certificates and associated trustautoexpect- 1 1 1435097319 A - - gz generate an Expect script from watching a sessiontimer_create 2- 2 2 1402354206 A - - gz create a POSIX per-process timerssl_get0_chain_certsSSL_get0_chain_certs 3ssl 3 1721417624 B - - gz extra chain certificate processingxcb_selinux_list_properties- 3 3 1540917640 A - - gz dsa_get_default_methodDSA_get_default_method 3ssl 3 1721417624 B - - gz select DSA methodx509_verify_param_set_flagsX509_VERIFY_PARAM_set_flags 3ssl 3 1721417624 A - - gz X509 verification parameterspcre_jit_stack_free- 3 3 1501643278 A - - gz Perl-compatible regular expressionspem_write_x509_req_newPEM_write_X509_REQ_NEW 3ssl 3 1721417624 B - - gz PEM routines  /sps2p0 k;96pam_ =)6rindI,6get_dIm6wborP{fQ6date#36setdn2eD6ulim ,v6pam_D{6htob6XuJ6euarO6wget86pthrL: 6pope6posi'ThU6ceil3[{6pthrAdate546cloc@6xcb_G4D^6fcfo 7հ6envz 5 6jobs>euar 7N6Pod:]FX<6xcb_j6xcb_*v6exec+6k6set_FA:[6get_@b6unco 36igaw#2u6abrt[;I1P6waddi`6xkba$D6ccosy 56bio_ /B6rpc 7C6cpio.:ѧ6tcl_oIs>6blow 16ip-n ;#\6xcb_P-1d06lvsD6x509 r6xintr @L6gets6fenv77Y6git-0/ k6menuZ Q6vid_ BM6mkte6read# - Y6cata[ :6autoLɭ6xcb_*fcst#?@remar?/baud? = 6init> >V6xcb_&%6perl  G66perlQ 2XY6geth <n 6loca-getoӁ ;isat 7]L6top_  <]6pcre!>6xcb_h!5*-6HEAD!9S6unli! [key43L6memc\"unsh#0wR6posiw"%VX6mvvl"P)6xcb_J#>wS6bund}#\9@6syst#*[6xcms-$J6open$7]y6xmll$0xcb_! 6hcre% 5setsB 9xcb_*{6dateB%3Q6date%06eusc%5,6clnt&F$Z6lwreu&H'6scro& Bpem_8߬6http' V$6tcl_|'@ݺ6sigs' .evp_P*6init(Eٶ"6xcha[(>u86xcb_(/sigs >xq6xrem(P&6sem_`)D6getu) /fcweh 6euca)7L6scal:*_k6perl* Yza6tcuc+ 86systF+">6lgam+grubŽ;6rpm_+ cWB6xtpa0,L^6crac,8K46xcre,@26vall*-2M6ftimc-'Zy6catg-Bo6logf-!k66xcb_- R6perl- 7m6requ=. U6pwd .Tgetc6xcb_.6ec_k!/ kd6xdrs/LVN6modupb6perljp :^6xcb_p)pcre\ >RX6initp /36bind/q>xcb_3)?J6xmbdtqHcpan|Lxcb_%ؑ6defaqC2m6lvrer > 6ffslbr76sqrtrtarq lwreA˂)6evp_r :setn bord5 bcolo)modu[6xcb_r06posiGsGrtneo 4T6isfis 2rsa_K"6truns T6xcheItWk6sigitA6strit ,K6gitc4uCb0-6ar 1uA$}6tcamuP>b0I7sigh$vtestbxcb_"t7pechBv :HA7ssl_v a 7dirnv >X7fcma=w;ۑ17tcl_w^x509QT.27ec_gw_̦7systqx*w7mvadx \B7avcsy9{rV7dateYy3p7dsay7bzgryZDg7setlz S3(7xcb_@z,J 37tcl_zOY7formz?TÊ7xcb_5{5?7prean{T7abrt{ H~57getp|>7strig|'a7strt| ?)Z7halt|@7xtis<}Jb97sete} 9>7xtre}M7upda7~p)7auto~ LZ7time;I07ssl_XSh7xcb_xcb_扤7dsa_D!7x509[Txcb_'17pcreˀ>7pem_?+v7iw_UR57strnXt7ssl_v e)bc7expl]67xcb_Cq7xcb_J#O7getmPPm7tempX+ b7secuJBen7ethe F e7dbm_Etd7sha2N B7ciphFh7date5P7eusc7#H07syst37ssl_PcP7iso_Y ^7getrµ ({37getd 1)7xdis. Vt7ip-n ?rr7_nc_ٶ,|͇7xclo" 5a7mebi`P7zcat327nl-p=/7fget  9}97eucaQBr87pthr VT7git- E -J7connmFCb7erfcĹ :O+7bn_bX-7fmody<NU7aio_ E@`7msyn?7xcb_U7nfsm<i7fstaٻ7svc_FT7commE >b7xcb_47clntܼ F<7xcb_/C 7pem_g@JA7scre A뇀7bio_  2w7xputH 2wl7fcto I7date׾0TN7perl Wȱ7scal~ =7xcb_ƿ>7xcb_n7fcfo98(te7xcb_#X7mvwg [F7err_$OuX7xcb_.!P7xkbgc7tcl_O ;7sand;7x509V&x6O7euwa5 7csin0[O7pcre>8pZ7xcb_Yֳ7nfss Ao'#7xtgeAevp_(Vbn_m>)F!7setr( =sete)rand) <7xtapqLsyst%* Iec_gx* `8ӄ7dbm_A |7xcb_)TT7xcb_a 47perl +̗w7on_eY;p7xcb_3+@#7memoyT7defaRh7fts_E 4"7git-A7rand 9u7xgetBϲ7lwrecA#7nisdF*7xcb_7xtcaA9>T7euca+!7xcb_#xsto/ 0strt/x7pwritap:eiw- 8 8 1540923033 A - - gz show / manipulate wireless devices and their configurationstrncpy strncpy 3 strncpy 3pssl_set_tlsext_status_ocsp_respSSL_set_tlsext_status_ocsp_resp 3ssl 3 1721417624 B - - gz OCSP Certificate Status Request functionsexpl expl 3 expl 3pxcb_res_query_client_resources- 3 3 1540917640 A - - gz xcb_input_raw_button_press_event_t- 3 3 1540917640 A - - gz getmaxx- 3x 3 1720626759 B - - gz get curses cursor and window coordinates, attributestemplate::serviceTemplate::Service 3pm 3 1402357152 A - - gz General purpose template processing servicesecurity_check_context- 3 3 1585710994 A - - gz check the validity of a SELinux contextether-wake- 8 8 1565313023 A - - gz A tool to send a Wake-On-LAN "Magic Packet"dbm_filter::compressDBM_Filter::compress 3pm 3 1698237673 A - - gz filter for DBM_Filtersha224sum- 1 1 1605565487 A - - gz compute and check SHA224 message digestciphers- 1ssl 1 1699892199 A - - gz SSL cipher display and cipher list tool.datetime::locale::ha_arabDateTime::Locale::ha_Arab 3pm 3 1402390637 A - - gz euscale-describe-scheduled-actions- 1 1 1484780705 A - - gz Describe scheduled auto-scaling group actionssystemd-hybrid-sleep.service- 8 8 1711457788 B - - gz System sleep state logicssl_set_quiet_shutdownSSL_set_quiet_shutdown 3ssl 3 1721417624 B - - gz manipulate shutdown behaviouriso_8859-4- 7 7 1402354220 A - t gz ISO 8859-4 character set encoded in octal, decimal, and hexadecimalgetrpcent- 3 3 1402354212 A - - gz get RPC entrygetdelim- 3 3 1402354209 B - - gz delimited string inputxdisplayofimXDisplayOfIM 3 3 1710950786 B - - gz open, close, and obtain input method informationip-netns- 8 8 1601484048 A - - gz process network namespace management_nc_freeall_nc_free_and_exit- 3x 3 1720626759 C _nc_free_and_exit - gz xcloseomXCloseOM 3 3 1710950786 B - - gz open output methodsmebi- 7 7 1402354220 C units t gz zcat 1- 1 1 1652367512 B - - gz compress or expand filesnl-pktloc-lookup- 8 8 1501789719 A - - gz Lookup packet location definitionsfgetspent_r- 3 3 1402354209 B - - gz get shadow password file entryeuca-download-bundle- 1 1 1484780705 A - - gz Download a bundled image from the cloudpthread_attr_setinheritsched 3p- 3p 3p 1402354217 B - - gz get and set the inheritsched attribute (REALTIME THREADS)git-apply- 1 1 1722330783 A - - gz Apply a patch to files and/or to the indexconnectionnumberConnectionNumber 3 3 1710950785 B - - gz Display macros and functionserfcf 3p- 3p 3p 1402354215 B - - gz complementary error functionsbn_blinding_get_thread_idBN_BLINDING_get_thread_id 3ssl 3 1721417624 B - - gz blinding related BIGNUM functions.fmodf 3- 3 3 1402354209 B - - gz floating-point remainder functionaio_read 3p- 3p 3p 1402354214 A - - gz asynchronous read from a file (REALTIME)msync 2- 2 2 1402354205 A - - gz synchronize a file with a memory mapxcb_selinux_get_device_context- 3 3 1540917640 A - - gz nfsmount.conf- 5 5 1634214566 A - - gz Configuration file for NFS mountsfstat fstat 2 fstat 3psvc_getcaller- 3 3 1402354212 B - - gz library routines for remote procedure callscommand 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)xcb_randr_query_output_property_valid_values_length- 3 3 1540917640 B - - gz clnt_freeres- 3 3 1402354208 B - - gz library routines for remote procedure callsxcb_input_grab_device_button- 3 3 1540917640 A - - gz pem_read_bio_privatekeyPEM_read_bio_PrivateKey 3ssl 3 1721417624 B - - gz PEM routinesscreencountScreenCount 3 3 1710950785 B - - gz Display macros and functionsbio_s_bioBIO_s_bio 3ssl 3 1721417624 A - - gz BIO pair BIOxputpixelXPutPixel 3 3 1710950785 B - - gz image utilitiesfctolowerFcToLower 3 3 1520307172 A - - gz convert upper case ASCII to lower casedatetime::locale::haDateTime::Locale::ha 3pm 3 1402390641 A - - gz perllocale- 1 1 1698237666 A - - gz Perl locale handling (internationalization and localization)scalbln 3p- 3p 3p 1402354218 B - - gz compute exponent using FLT_RADIXxcb_glx_get_lightfv_data_end- 3 3 1540917640 B - - gz xcb_glx_delete_window_checked- 3 3 1540917640 B - - gz fcfontsetsortFcFontSetSort 3 3 1520307172 A - - gz Add to a font setxcb_randr_change_provider_property- 3 3 1540917640 A - - gz mvwget_wstr- 3x 3 1720626759 B - - gz get an array of wide characters from a curses terminal keyboarderr_load_crypto_stringsERR_load_crypto_strings 3ssl 3 1721417624 A - - gz load and free error stringsxcb_selinux_get_selection_use_context_context- 3 3 1540917640 B - - gz xkbgetautoresetcontrolsXkbGetAutoResetControls 3 3 1710950785 A - - gz Gets the current values of the auto-reset controlstcl_exprobjTcl_ExprObj 3 3 1448008822 B - - gz evaluate an expressionsandbox- 8 8 1585713889 A - - gz Run cmd under an SELinux sandboxx509_name_entry_set_dataX509_NAME_ENTRY_set_data 3ssl 3 1721417624 B - - gz X509_NAME_ENTRY utility functionsx509_store_ctx_set_errorX509_STORE_CTX_set_error 3ssl 3 1721417624 B - - gz get or set certificate verification status informationxcb_sync_change_counter- 3 3 1540917640 A - - gz fcstrsetcreateFcStrSetCreate 3 3 1520307172 A - - gz create a string settie::memoizeTie::Memoize 3pm 3 1698237678 A - - gz add data to hash when neededsys/wait.h- 0p 0p 1402354203 C sys_wait.h - gz extutils::xssymsetExtUtils::XSSymSet 3pm 3 1698237673 A - - gz keep sets of symbol names palatable to the VMS linkerdd dd 1p dd 1dracut-pre-trigger.service- 8 8 1601481478 A - - gz runs the dracut hooks before udevd is triggeredhtons 3p- 3p 3p 1402354216 B - - gz convert values between host and network byte orderlua- 1 1 1478400454 A - - gz Lua interpretercproj cproj 3 cproj 3pacoshl 3- 3 3 1402354207 B - - gz inverse hyperbolic cosine functionungetwc 3- 3 3 1402354213 A - - gz push back a wide character onto a FILE streamxvacreatenestedlistXVaCreateNestedList 3 3 1710950786 A - - gz allocate a nested variable argument listmount mount 8 mount 2getgroups32- 2 2 1402354204 B - - gz get/set list of supplementary group IDssinf 3p- 3p 3p 1402354218 B - - gz sine functionxcmsfreecccXcmsFreeCCC 3 3 1710950786 B - - gz creating and destroying CCCsupdatedb.conf- 5 5 1523418406 A - - gz a configuration file for updatedb(8)euwatch-get-stats- 1 1 1484780705 A - - gz Show a metric's statisticscsinf 3- 3 3 1402354208 B - - gz complex sine functionpcre32_jit_stack_alloc- 3 3 1573510868 B - - gz Perl-compatible regular expressionsxcb_xv_query_best_size- 3 3 1540917640 A - - gz nfsservctl- 2 2 1402354205 A - - gz syscall interface to kernel nfs daemonxtgetactionlistXtGetActionList 3 3 1501646833 A - - gz obtain class action listsetregid 3p- 3p 3p 1402354218 A - - gz set real and effective group IDsxtappsetwarningmsghandlerXtAppSetWarningMsgHandler 3 3 1501646833 B - - gz high-level error handlersdbm_filter::utf8DBM_Filter::utf8 3pm 3 1698237673 A - - gz filter for DBM_Filterxcb_render_create_solid_fill- 3 3 1540917640 A - - gz xcb_xv_query_adaptors_unchecked- 3 3 1540917640 B - - gz perlunifaq- 1 1 1698237670 A - - gz Perl Unicode FAQon_exit- 3 3 1402354211 A - - gz register a function to be called at normal process terminationxcb_x_print_print_input_selected_unchecked- 3 3 1540917640 B - - gz memoize::expiretestMemoize::ExpireTest 3pm 3 1698237676 A - - gz test for Memoize expiration semanticsdefaultgcofscreenDefaultGCOfScreen 3 3 1710950785 B - - gz screen information functions and macrosfts_read- 3 3 1402354209 B - - gz traverse a file hierarchygit-ls-remote- 1 1 1722330781 A - - gz List references in a remote repositoryrand_r 3- 3 3 1402354211 B - - gz pseudo-random number generatorxgetatomnamesXGetAtomNames 3 3 1710950786 B - - gz create or return atom nameslwres_buffer_putuint16- 3 3 1725373371 B - - gz lightweight resolver buffer managementnisdomainname- 1 1 1571414522 A - - gz show or set the system's NIS/YP domain namexcb_shape_select_input- 3 3 1540917640 A - - gz xtcallbackpopdownXtCallbackPopdown 3 3 1501646833 B - - gz unmap a pop-upeuca-create-vpc- 1 1 1484780705 A - - gz Create a new VPCpwrite pwrite 2 pwrite 3pxcb_input_xi_ungrab_device_checked- 3 3 1540917640 B - - gz modf 3- 3 3 1402354211 A - - gz extract signed integral and fractional values from floating-point numberxcb_x_print_print_get_attributes_reply- 3 3 1540917640 B - - gz ssl_get_psk_identitySSL_get_psk_identity 3ssl 3 1721417624 A - - gz get PSK client identity and hinterr_print_errors_fpERR_print_errors_fp 3ssl 3 1699892209 A - - gz print error messagestcl_getbytearrayfromobjTcl_GetByteArrayFromObj 3 3 1448008821 A - - gz manipulate Tcl objects as a arrays of byteslibpngpf- 3 3 1602604336 A - - gz Portable Network Graphics (PNG) Reference Library 1.5.13 (private functions)casinhf 3- 3 3 1402354207 B - - gz complex arc sine hyperbolicunlocked_stdio- 3 3 1402354213 A - - gz nonlocking stdio functionsclog 3- 3 3 1402354208 A - - gz natural logarithm of a complex numbereuscale-resume-processes- 1 1 1484780705 A - - gz Resume an auto-scaling group's auto-scaling processesxcb_glx_get_tex_geniv_data_end- 3 3 1540917640 B - - gz bundle::image::info::svgBundle::Image::Info::SVG 3pm 3 1402363342 A - - gz SVG support for Image::Infoxcb_alloc_color_cells_masks- 3 3 1540917640 B - - gz grub-get-kernel-settings- 3 3 1722985065 C grub2-get-kernel-settings - gz xcb_randr_query_version_unchecked- 3 3 1540917640 B - - gz ttk::radiobutton- n n 1448008912 A - - gz Mutually exclusive option widgetbuiltin- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)xcb_get_modifier_mapping_reply- 3 3 1540917640 B - - gz xzcat- 1 1 1655494379 B - - gz Compress or decompress .xz and .lzma fileseuca-create-image- 1 1 1484780705 A - - gz Create an EBS image from a running or stopped EBS instanceglobfree 3p- 3p 3p 1402354215 B - t gz generate pathnames matching a patternExpect 3pm- 3pm 3 1391095915 A - - gz Expect for Perldatetime::locale::euDateTime::Locale::eu 3pm 3 1402390632 A - - gz lusermod- 1 1 1381614967 A - - gz Modify an userxtsetselectionparametersXtSetSelectionParameters 3 3 1501646833 A - - gz specify target parameters for a selection request with a single targetxtwarningmsgXtWarningMsg 3 3 1501646833 B - - gz high-level error handlersnumnames- 3x 3 1720626759 B - - gz curses terminfo global variablesdatetime::locale::sh_csDateTime::Locale::sh_CS 3pm 3 1402390645 A - - gz xcb_close_font- 3 3 1540917640 A - - gz xcb_poly_rectangle- 3 3 1540917640 A - - gz nl 1p- 1p 1p 1402354204 A - t gz line numbering filterxcb_selection_notify_event_t- 3 3 1540917640 A - - gz restorecon- 8 8 1585713889 A - - gz restore file(s) default SELinux security contexts.iswxdigit iswxdigit 3 iswxdigit 3pfcconfiggetfontsFcConfigGetFonts 3 3 1520307172 A - - gz Get config font setpam_faildelay- 8 8 1585713588 A - - gz Change the delay on failure per-applicationecvt 3p- 3p 3p 1402354215 A - - gz convert a floating-point number to a string (LEGACY)grub2-mkrelpath- 1 1 1722985065 A - - gz Generate a relative GRUB path given an OS path.eulb-delete-lb-policy- 1 1 1484780705 A - - gz Delete a policy from a load balancerclog10- 3 3 1402354208 A - - gz base-10 logarithm of a complex numberhtml::parserHTML::Parser 3pm 3 1402367721 A - - gz HTML parser classtiffstripTIFFstrip 3tiff 3 1729525165 A - - gz strip-related utility routinesxcb_create_gc_checked- 3 3 1540917640 B - - gz Creates a graphics contextsched_setaffinity- 2 2 1402354205 A - - gz set and get a process's CPU affinity maskeuform-cancel-update-stack- 1 1 1484780705 A - - gz Cancel a stack update that is currently runningxkbfreeservermapXkbFreeServerMap 3 3 1710950785 A - t gz Free memory used by the server member of an XkbDescRec structuretcgetsid 3- 3 3 1402354213 A - - gz get session IDtypes::serialiserTypes::Serialiser 3pm 3 1390406810 A - - gz simple data types for common serialisation formatsxcb_render_query_pict_index_values- 3 3 1540917640 A - - gz dremf- 3 3 1402354208 B - - gz floating-point remainder functionpem_read_rsapublickeyPEM_read_RSAPublicKey 3ssl 3 1721417624 B - - gz PEM routinesxcb_xkb_get_state_unchecked- 3 3 1540917640 B - - gz y1 3- 3 3 1402354213 B - - gz Bessel functions of the second kindgit-http-fetch- 1 1 1722330783 A - - gz Download from a remote Git repository via HTTPsos.conf- 5 5 1708443765 A - - gz sosreport configurationec_group_dupEC_GROUP_dup 3ssl 3 1721417624 B - - gz Functions for manipulating EC_GROUP objects.perl582delta- 1 1 1698237663 A - - gz what is new for perl v5.8.2tcl_chdirTcl_Chdir 3 3 1448008822 A - - gz manipulate the current working directoryetext- 3 3 1402354208 B - - gz end of program segmentsperlglossary- 1 1 1698237665 A - - gz Perl GlossaryxtiswmshellXtIsWMShell 3 3 1501646833 B - - gz obtain and verify a widget's classext2- 5 5 1711459141 A - t gz the second extended file systemextutils::typemapsExtUtils::Typemaps 3pm 3 1501652625 A - - gz Read/Write/Modify Perl/XS typemap filessystemd-logind- 8 8 1711457788 B - - gz Login managerdatetime::locale::es_veDateTime::Locale::es_VE 3pm 3 1402390638 A - - gz xcb_x_print_print_get_printer_list_reply- 3 3 1540917640 B - - gz xtismanagedXtIsManaged 3 3 1501646833 B - - gz manage and unmanage childrenevp_pkey_ctx_freeEVP_PKEY_CTX_free 3ssl 3 1721417624 B - - gz public key algorithm context functions.xcb_glx_get_histogram_parameterfv_data- 3 3 1540917640 B - - gz xsettextpropertyXSetTextProperty 3 3 1710950786 A - - gz set and read text propertiesulckpwdf- 3 3 1402354213 B - - gz get shadow password file entryxcb_xv_list_image_formats_reply- 3 3 1540917640 B - - gz dbd::mysql::installDBD::mysql::INSTALL 3pm 3 1523403904 A - - gz How to install and configure DBD::mysqlxcb_set_font_path- 3 3 1540917640 A - - gz pam_misc_drop_env- 3 3 1585713595 A - - gz liberating a locally saved environmentzlib- 3 3 1711387409 A - - gz compression/decompression libraryfstatvfs 3p- 3p 3p 1402354215 B - - gz get file system informationsqrt 3- 3 3 1402354212 A - - gz square root functionxcb_xfixes_subtract_region- 3 3 1540917640 A - - gz xcb_input_get_device_dont_propagate_list_unchecked- 3 3 1540917640 B - - gz signalfd- 2 2 1402354206 A - - gz create a file descriptor for accepting signalssvc_unregister- 3 3 1402354212 B - - gz library routines for remote procedure callsnanl nanl 3 nanl 3pcabsl cabsl 3 cabsl 3pwhile- n n 1448008824 A - - gz Execute script repeatedly as long as a condition is metio::uncompress::unzipIO::Uncompress::Unzip 3pm 3 1402361983 A - - gz Read zip files/bufferstcl_getsobjTcl_GetsObj 3 3 1448008822 B - - gz buffered I/O facilities using channelsxcb_glx_get_compressed_tex_image_arb_reply- 3 3 1540917640 B - - gz diff diff 1p diff 1strstr 3p- 3p 3p 1402354218 A - - gz find a substringxdrrec_eof- 3 3 1402354213 B - - gz library routines for external data representationfeholdexcept 3p- 3p 3p 1402354215 A - - gz save current floating-point environmentxcb_randr_configure_provider_property_checked- 3 3 1540917640 B - - gz hstrerror- 3 3 1402354210 B - - gz get network host entrytcl_fsunregisterTcl_FSUnregister 3 3 1448008822 B - - gz procedures to interact with any filesystemdatetime::locale::az_cyrlDateTime::Locale::az_Cyrl 3pm 3 1402390640 A - - gz wget 1- 1 1 1723717335 A - - gz The non-interactive network downloader.perlfaq2- 1 1 1698237664 A - - gz Obtaining and Learning about Perldbi::gofer::serializer::baseDBI::Gofer::Serializer::Base 3pm 3 1402362413 A - - gz base class for Gofer serializationfesetround 3- 3 3 1402354209 B - - gz floating-point rounding and exception handlingencode::encoderEncode::Encoder 3pm 3 1402368577 A - - gz - Object Oriented Encodermath::bigratMath::BigRat 3pm 3 1698237675 A - - gz Arbitrary big rational numberslh_node_usage_stats_bio- 3ssl 3 1721417624 B - - gz LHASH statisticsxml::parser::style::streamXML::Parser::Style::Stream 3pm 3 1402361425 A - - gz Stream style for XML::Parserbusiness::isbnBusiness::ISBN 3pm 3 1402381485 A - - gz work with International Standard Book Numbersgetutxid getutxid 3 getutxid 3plwres_conf_get- 3 3 1725373371 B - - gz lightweight resolver configurationterm::readlineTerm::ReadLine 3pm 3 1698237677 A - - gz Perl interface to various "readline" packages. If no real package is found, substitutes stubs instead of basic functions.sys_errlist- 3 3 1402354212 B - - gz print a system error messageperl5142delta- 1 1 1698237662 A - - gz what is new for perl v5.14.2echo echo 3x echo 1p echo 1xcb_x_print_print_get_document_data_unchecked- 3 3 1540917640 B - - gz pam_vprompt- 3 3 1585713595 B - - gz interface to conversation functionpipe 7- 7 7 1402354220 A - - gz overview of pipes and FIFOstap::parser::result::planTAP::Parser::Result::Plan 3pm 3 1439389327 A - - gz Plan result token.pwd 1- 1 1 1605565487 A - - gz print name of current/working directorylrintf 3- 3 3 1402354210 B - - gz round to nearest integercontext_range_set- 3 3 1585710994 B - - gz Routines to manipulate SELinux security contextsssl_get_verify_depthSSL_get_verify_depth 3ssl 3 1721417624 B - - gz get currently set verification parametersxdr_float- 3 3 1402354213 B - - gz library routines for external data representationdnssec-verify- 8 8 1725373373 A - - gz DNSSEC zone verification toolxcb_res_query_client_pixmap_bytes_unchecked- 3 3 1540917640 B - - gz endutent- 3 3 1402354208 B - - gz access utmp file entriessystem-auth- 5 5 1588181479 A - - gz Common configuration file for PAMified servicesslabtop- 1 1 1601486472 A - t gz display kernel slab cache information in real timepcre16_pattern_to_host_byte_order- 3 3 1573510868 B - - gz Perl-compatible regular expressionsdsa_generate_parametersDSA_generate_parameters 3ssl 3 1721417624 A - - gz generate DSA parameterstemplate::plugin::mathTemplate::Plugin::Math 3pm 3 1402357151 A - - gz Plugin providing mathematical functionsfcnameregisterconstantsFcNameRegisterConstants 3 3 1520307172 A - - gz Register symbolic constantsmvwgetstr- 3x 3 1720626759 B - - gz accept character strings from curses terminal keyboardfcpatternbuildFcPatternBuild 3 3 1520307172 A - - gz Create patterns from argumentstcl_discardinterpstateTcl_DiscardInterpState 3 3 1448008822 A - - gz save and restore an interpreter's statecurs_outopts- 3x 3 1715932338 A - - gz curses output optionsreadelf- 1 1 1696859909 A - - gz Displays information about ELF files.va_end 3- 3 3 1402354213 B - - gz variable argument listsfcconfiguptodateFcConfigUptoDate 3 3 1520307172 A - - gz Check timestamps on config fileseuare-roleupdateassumepolicy- 1 1 1484780705 A - - gz Update a role's trust policy, the policy that allows entities to assume a rolexsetclipmaskXSetClipMask 3 3 1710950786 B - - gz GC convenience routinesisgreater 3- 3 3 1402354210 A - - gz floating-point relational tests without exception for NaNerf erf 3 erf 3pxcb_change_active_pointer_grab_checked- 3 3 1540917640 B - - gz dh_get_ex_dataDH_get_ex_data 3ssl 3 1721417624 B - - gz add application specific data to DH structureswarn- 3 3 1402354213 B - - gz formatted error messagescrypto_set_ex_dataCRYPTO_set_ex_data 3ssl 3 1721417624 A - - gz internal application specific data functionsatoi atoi 3 atoi 3pfputws 3- 3 3 1402354209 A - - gz write a wide-character string to a FILE streamrsa_check_keyRSA_check_key 3ssl 3 1699892212 A - - gz validate private RSA keyshcreate 3- 3 3 1402354210 B - - gz hash table managementxcb_xfixes_change_cursor_by_name- 3 3 1540917640 A - - gz tcl_regexpexecTcl_RegExpExec 3 3 1448008822 B - - gz Pattern matching with regular expressionscrypto_threadid_get_callbackCRYPTO_THREADID_get_callback 3ssl 3 1721417624 B - - gz OpenSSL thread supportdtlsv1_2_client_methodDTLSv1_2_client_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionssecurity_compute_av_raw- 3 3 1585710994 B - - gz query the SELinux policy database in the kernelllrint 3p- 3p 3p 1402354216 A - - gz round to the nearest integer value using current rounding directionfegetenv fegetenv 3 fegetenv 3pxcb_dri2_get_buffers_with_format- 3 3 1540917640 A - - gz xkbsetserverinternalmodsXkbSetServerInternalMods 3 3 1710950785 A - t gz Sets the modifiers that are consumed by the server before events are delivered to the clientcbrt cbrt 3 cbrt 3pxrmcombinefiledatabaseXrmCombineFileDatabase 3 3 1710950786 B - - gz merge resource databasestcl_dictobjnextTcl_DictObjNext 3 3 1448008821 B - - gz manipulate Tcl objects as dictionarieslgammal lgammal 3 lgammal 3pxcb_dri2_wait_sbc_unchecked- 3 3 1540917640 B - - gz pthread_attr_getscope 3p- 3p 3p 1402354217 A - - gz get and set the contentionscope attribute (REALTIME THREADS)type 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)pinfo- 1 1 1402374126 A - - gz curses based lynx-style info browserfrexpf 3- 3 3 1402354209 B - - gz convert floating-point number to fractional and integral componentspthread_attr_setschedpolicy 3- 3 3 1402354211 A - - gz set/get scheduling policy attribute in thread attributes objectproc proc n proc 5filesystems- 5 5 1402354219 A - - gz Linux file-system types: minix, ext, ext2, ext3, ext4, Reiserfs, XFS, JFS, xia, msdos, umsdos, vfat, ntfs, proc, nfs, iso9660, hpfs, sysv, smb, ncpfsxcb_dri3_pixmap_from_buffers- 3 3 1540917640 A - - gz inchnstr- 3x 3 1720626759 B - - gz get a string of characters (and attributes) from a curses windowui_new_methodUI_new_method 3ssl 3 1721417624 B - - gz New User Interfaceon_ac_power- 1 1 1410891653 A - - gz test whether the computer is running on line powerpmap- 1 1 1601486472 A - - gz report memory map of a processera_check- 8 8 1605543195 A - - gz validate era metadata on device or file.huge_valfHUGE_VALF 3 3 1402354206 B - - gz floating-point constantsxcb_gravity_notify_event_t- 3 3 1540917640 A - - gz qsig- 1p 1p 1402354204 A - - gz signal batch jobsgetexeccon- 3 3 1585710994 A - - gz get or set the SELinux security context used for executing a new processwcstombs 3- 3 3 1402354213 A - - gz convert a wide-character string to a multibyte stringsigsuspend 2- 2 2 1402354206 A - - gz wait for a signaloverload- 3pm 3 1698237678 A - - gz Package for overloading Perl operationsconfig::extensionsConfig::Extensions 3pm 3 1698237672 A - - gz hash lookup of which core extensions were built.getopt_long- 3 3 1402354209 B - - gz Parse command-line optionsnl 3x- 3x 3 1720626759 B - - gz curses output optionsshadow 3- 3 3 1565319053 A - - gz encrypted password file routinesdatetime::locale::ms_bnDateTime::Locale::ms_BN 3pm 3 1402390643 A - - gz getfilecon_raw- 3 3 1585710994 B - - gz get SELinux security context of a filedatetime::locale::sr_cyrl_meDateTime::Locale::sr_Cyrl_ME 3pm 3 1402390632 A - - gz xz- 1 1 1655494379 A - - gz Compress or decompress .xz and .lzma filespam_fail_delay- 3 3 1585713595 A - - gz request a delay on failurembsinit 3- 3 3 1402354211 A - - gz test for initial shift stateform_field_userptr- 3x 3 1720626759 A - - gz associate application data with a form fielduio.h- 0p 0p 1402354203 B - - gz definitions for vector I/O operationssg_read_buffer- 8 8 1585715378 A - - gz send SCSI READ BUFFER commandtlsv1_1_methodTLSv1_1_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionsmdmon- 8 8 1645636188 A - - gz monitor MD external metadata arraysuse_default_colors_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensiond2i_rsa_pubkeyd2i_RSA_PUBKEY 3ssl 3 1721417624 B - - gz RSA public and private key encoding functions.cexp 3p- 3p 3p 1402354214 A - - gz complex exponential functionsxcb_xc_misc_get_xid_range- 3 3 1540917640 A - - gz powl powl 3 powl 3pfccharsetfirstpageFcCharSetFirstPage 3 3 1520307172 A - - gz Start enumerating charset contentsec_point_get_affine_coordinates_gf2mEC_POINT_get_affine_coordinates_GF2m 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_POINT objects.xtsetwmcolormapwindowsXtSetWMColormapWindows 3 3 1501646833 A - - gz Set the value of the WM_COLORMAP_WINDOWS propertyxcb_xkb_use_extension_reply- 3 3 1540917640 B - - gz xregisteriminstantiatecallbackXRegisterIMInstantiateCallback 3 3 1710950786 B - - gz open, close, and obtain input method informationgetgrouplist- 3 3 1402354209 A - - gz get list of groups to which a user belongsdatetime::locale::zhDateTime::Locale::zh 3pm 3 1402390643 A - - gz xcb_selinux_get_device_context_context- 3 3 1540917640 B - - gz floorf 3p- 3p 3p 1402354215 B - - gz floor functionfmodf fmodf 3 fmodf 3p_oĤi;ssl_ȨH釰;dateY5:perl 67c:tcl_C KT*:etex2j:perl (:xtis G)+:ext2X:l;xtvaDp:extuU;wclr @n:syst(߲7;err G ){<:date63u :xcb_)cj:xtis A$n:evp_UP:xcb_y':xsetFg:ulck 9:xcb_T _:dbd:VQJm:xcb_8:pam_&Ap|:zliby<i:fsta 8hr~;tc-by C/;xcb_Ū+M;git- KOV:sqrt/;lwp-] 9C:xcb_4:xcb_j3F:sign I5;updaV`t;sock1s;alphI @mq:svc_ F9g;xcb_+B+;mysq @J ;pathM =׿;eranLX:nanl_Qj;des_9j:cabst:whilR&:io::G7/w:tcl_A K:xcb_+SH:diffH:strs -0;xresFz:xdrr*  L:feho D3:xcb_ .:hstr  1:tcl_Y T@:date 5:wget B :perlV  <&$:dbi: Z/:fese  IE:encoh D1ie:math  Fj:lh_n .3:xml:U R:busi W~:getu( &2:lwreI=|:term":sys_G 7u:perl7߀:euwaP4B:d2i_MPb::rawmP 6:I:xcb_P3E:evp_MQ76H:abrtQI4:spriQ 6;:fcco)RM:menuR 4{P:dateR3|:ungeS ]I:echo/:winsSKAg:io::Sda:set_MT;PC:setbT 9<:isalT <:xcb_!U L:putc\U5=B :msgcU >2<:bio_U @V:xcb_3V*g:UnicxV !\G:sshdV @jJ:seliV @ :wcss9WLG:locaTWXg:xcb_W%:pwhiWhc0:iso_uX ^:fcchX4â:iswl!Y c:iso_BY ^:eucaY!LJg=:fchdZ$ :umou3Z $2:yamlcZ Bg:uuidZ9:dateZ0\:cacoB[ 8::mail[E 4;fc-lS/u;xkbgiz;xcb_::tcl_[c^:bind\2y[:striQ\ .f:gtty\5:iswa\ ?W:pthr ]GVv:iptaq]8Kid:getu] ,):xcb_]{H:date&^3T@:xcb_q^2J:xtap^B.z:tcl_ _:W:atanS_ 1W;open/'5:xsetz:tcl_aǪ:pthr_@J;:xcb_.o:tcl_GV3:xcb_P:xcb_YP:disl :lock; =};xcb_[#h";bn_c ?:xthoF;b8:getnآ =;hesiI\ݤ;xcb_Q%YT:colo =8:xcb_N-:ec_p:tcl_-TNg:xcb_}`:reseˤ59:xcb_!l:setrD FT:yaml N_:benc ID:xunsDHgl:xcb_$:xcb_٦$>:futi1R5:posiQG:nl_l@:pthr?y9:pod:[@I=;verr 3:casieuwatch-put-metric-alarm- 1 1 1484780705 A - - gz Create or update an alarmd2i_ssl_sessiond2i_SSL_SESSION 3ssl 3 1721417624 A - - gz convert SSL_SESSION object from/to ASN1 representationrawmemchr- 3 3 1402354211 B - - gz scan memory for a characterxcb_randr_query_provider_property_valid_values_end- 3 3 1540917640 B - - gz evp_shaEVP_sha 3ssl 3 1721417624 B - - gz EVP digest routinesabrt-auto-reporting- 1 1 1601569733 A - - gz Get or modify the auto reporting option valuessprintf 3- 3 3 1402354211 A - - gz formatted output conversionfcconfigsetrescanintervalFcConfigSetRescanInterval 3 3 1520307172 A - - gz Set config rescan intervalmenu_opts- 3x 3 1720626759 A - - gz set and get menu optionsdatetime::locale::sw_tzDateTime::Locale::sw_TZ 3pm 3 1402390642 A - - gz unget_wch- 3x 3 1720626759 B - - gz get (or push back) a wide character from curses terminal keyboardwinstr- 3x 3 1720626759 B - - gz get a string of characters from a curses windowio::socket::ssl::utilsIO::Socket::SSL::Utils 3pm 3 1523404370 A - - gz - loading, storing, creating certificates and keysset_escdelay_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionsetbuf 3p- 3p 3p 1402354218 A - - gz assign buffering to a streamisalnum 3- 3 3 1402354210 B - - gz character classification routinesxcb_present_query_version_reply- 3 3 1540917640 B - - gz putc_unlocked 3- 3 3 1402354211 B - - gz nonlocking stdio functionsmsgctl 2- 2 2 1402354205 A - - gz System V message control operationsbio_get_mdBIO_get_md 3ssl 3 1699892203 A - - gz message digest BIO filterxcb_input_change_pointer_device_unchecked- 3 3 1540917640 B - - gz Unicode 7- 7 7 1402354220 C unicode - gz sshd_config- 5 5 1707907012 A - - gz OpenSSH SSH daemon configuration fileselinux 8- 8 8 1585710994 A - - gz NSA Security-Enhanced Linux (SELinux)wcsspn wcsspn 3 wcsspn 3plocale::maketext::tpj13Locale::Maketext::TPJ13 3pm 3 1402353872 A - - gz - article about software localizationxcb_glx_get_floatv_unchecked- 3 3 1540917640 B - - gz pwhistory_helper- 8 8 1585713591 A - - gz Helper binary that transfers password hashes from passwd or shadow to opasswdiso_8859-9- 7 7 1402354220 A - t gz ISO 8859-9 character set encoded in octal, decimal, and hexadecimalfccharsetunionFcCharSetUnion 3 3 1520307172 A - - gz Add charsetsiswlower iswlower 3 iswlower 3piso_8859_3- 7 7 1402354220 B - t gz ISO 8859-3 character set encoded in octal, decimal, and hexadecimaleuca-describe-snapshot-attribute- 1 1 1484780705 A - - gz Show information about an attribute of a snapshotfchdir fchdir 2 fchdir 3pumount.nfs4- 8 8 1634214566 C umount.nfs - gz yaml::tagYAML::Tag 3pm 3 1402340435 A - - gz Tag URI object class for YAMLuuid_generate_random- 3 3 1612283497 B - - gz create a new unique UUID valuedatetime::locale::akDateTime::Locale::ak 3pm 3 1402390635 A - - gz cacoshl 3- 3 3 1402354207 B - - gz complex arc hyperbolic cosinemailx mailx 1p mailx 1tcl_clearchannelhandlersTcl_ClearChannelHandlers 3 3 1448008821 B - - gz procedures for creating and manipulating channelsbind 2- 2 2 1402354204 A - - gz bind a name to a socketstrings.h- 0p 0p 1402354203 A - - gz string operationsgtty- 2 2 1402354205 B - - gz unimplemented system callsiswalnum 3- 3 3 1402354210 A - - gz test for alphanumeric wide characterpthread_attr_getguardsize 3p- 3p 3p 1402354217 A - - gz get and set the thread guardsize attributeiptables-save- 8 8 1601571148 A - - gz dump iptables rules to stdoutgetuid32- 2 2 1402354205 B - - gz get user identityxcb_render_reference_glyph_set- 3 3 1540917640 A - - gz datetime::locale::es_hnDateTime::Locale::es_HN 3pm 3 1402390644 A - - gz xcb_list_fonts_reply- 3 3 1540917640 B - - gz get matching font namesxtappwarningmsgXtAppWarningMsg 3 3 1501646833 B - - gz high-level error handlerstcl_jointhreadTcl_JoinThread 3 3 1448008822 B - - gz Tcl thread supportatanl 3p- 3p 3p 1402354214 B - - gz arc tangent functionpthread_attr_setstacksize 3p- 3p 3p 1402354217 B - - gz get and set the stacksize attribute :80FU8grub =gc8tiffK :ɝ8fput ;3W8perl 7 d8xcb_! 8getlV 3VyR8xcb_ kk8xcre 9-8date 0,D8xcb_^ )XV8tap: PJNP8sys_ 318iscu: AiB]8colo @GU8type Z78bind Rf8lchoD 5`8conf TL>8seth Or8xtse^x68xcb_[?H8open /:%z8_tra 5ŜF8xcb_Q ":]8xtwa ?8xcli 2Hm;8xcb_ !Qn98lwre\ A8mke2 8oA8euar Q,8semaa 2bn_mJHEx8bn_i Ko8leav 1gh8pl2p. X8strc <U8moun + 8posi T{.8datep 3ܑ8xcb_ &=8pod: LK8grubU * 8euca 8I8sg_r 8N8xcb_! *{f8datef 3F8euca >h8hton MFl8nfsdP ->T8dige O28xcb_ ݾ8ssl_ P8ssl_} !\8xenc 2 8getw5 58inst| 8>"8team 3;8db_h J̑8neqnW<Ť8fsee.!8flowΠ#8xtgek 8log:yS8htdb<6U8ls 1%2q8tcl_\ L1g8xcb_#ei8xcb_!8bio_. :G8ipcrs l _8openxkbqN`tracfO HO8sinh38grou@*Ӫ8err_pPe8setfѤ /8cata  E 8lwp:Y>xml:Xexp2 9mF8wpri B8pthrO}8formW F>%/8gett .ɦ|8getc4r8posi`date73syst!0 d8menu?{1 8xcb_L98xcb_)v8fcfoaI8dsa  0[e8des_ 68net:4 4tiffZ9du8xcb_q* 8icon;xcb_9xauumDw8lvex 8\8xcb_'u8xdrrQL8syst Bқ8moreBu8gettD2V8herr1H8xcb_ ̯8moduVG 8auto` =f~8xml:T[8tcl_Wreni#xcb_>extuuMclosԊ z8tc-p~ 7}*8ipc: k]@8xcb_48sgpii@)8sele L{8sysc D8mathUX 8modfc^*8xcb_j't8ssl_Qy8err_D+8tcl_j\$%8libp ggB8lseaï q8casiN 6=8unlo5O8clog@xcb_)#git-g UI8euscP2.8xcb_>8bundO”8xcb_$8grub[3nJ8xcb_"ޫ8ttk:;}k8buil0>[8nl 1#2q 8auvi P8xcb_v[8xzcaE8eucaU_8globb B_g8Expe ,>E8numn; <<^8xcb_8date0h8http= C& 8xcb_ +Μ8xcb_{ڑ8date38luse, )bY%8rest M8iswx U8fcco=U8pam_]F6sZ(9ecvtQD:9grub J[9eulbd?audi# gtputKxcb_-date(1dynao:bpf"xunm7=yv9clog@jI9html 99tiffF Egetr4K9xcb_59scheD 9eufo6Joper HtiffO3l9xkbfjN+D9tcge )shas/7o9typeJ_E9xcb_#getfD8git- I9drem<Y9pem_;>xs9xcb_9y1 3>^9git-CI79sos. 2trun =erfc7Q9ec_g Utemp?U{Ƙ9date3xcb_99tgamK 5"9optiR/9pvmoKXU9tcl_6DTt9_tif 2 29cargɁ 749memm f9gnro';:qQ9systicN9ssl_Vk9xcb_FNZ9wmem~O79finde9git- Udate#49fcgi 2 9xsetQ?9git-AK9rngdbxtpe% EL9eucaZ3?أ9xcb_09item ;#9xorg8<htonW&Mǽ9term_˅9pthr4>9isas6 jf9setpZ-π9sudo <_=9ssl_ڇI͊f9xset7bv9asinF9gethň \Ɩ9xpoi@B9ssl_3M>9tcl_B9xcb_,F9time-%xcb_)W.9tiffZ2~)9euca<evp_9*?9fts_4syst*Z9fts1429ec_gi]9xcb_݋%f9j0p 9sslt,Qb9gnu_1mall-LNsB9repoÌK'X[9setc .9tcl_^^9tcl_WP9getd N9ssl_Rrlog.K&9xkbkd=A9cmsgE<M9type @9net: fw9xfre` 7Edc9cursU# 9xcb_ &p9perlNAxo9chgrُ[D9d2i_ >9rpc. -9git- @fdim/!9dsa_i 949xkeyeS9acn$ENv'9pod:lRvdodp2 I*9encoӔDc>9xcb_'*xcb_m3,39xfonl R e9pthrȕ<)9iswa RE9xcb_9,Fj9Fcnt 7x9chgaRfH9fcpa<cms_G6\xcb_69ctim7{9gitrh0ripoq7 59pem_<9getu 3xwcdg8Hstri8'date819inet= Acloc93cbre9 ;E9matc mysqd: 4;9xcb_D$9tiff4perlP; 7perl;7a9i18n(T(9cursT{9tcl_Wp9bio_d?9freeKt '9xnoeT.V9ttk:x ?xcb_>/9xmax›Entohh> Om^9ec_g[݋9xchaBXP(9fcfo֜Kdatetime::locale::aa_erDateTime::Locale::aa_ER 3pm 3 1402390644 A - - gz tgammaf 3p- 3p 3p 1402354218 B - - gz compute gamma() functionoption- n n 1448008912 A - - gz Add/retrieve window options to/from the option databasepvmove- 8 8 1619616701 A - - gz Move extents from one physical volume to anothertcl_dstringvalueTcl_DStringValue 3 3 1448008821 B - - gz manipulate dynamic strings_tiffmemcpy_TIFFmemcpy 3tiff 3 1729525165 C TIFFmemory - gz cargf 3p- 3p 3p 1402354214 B - - gz complex argument functionsmemmove memmove 3 memmove 3pgnroff- 1 1 1533764324 B - - gz emulate nroff command with groffsystemd-socket-proxyd- 8 8 1711457788 A - - gz Bidirectionally proxy local sockets to another (possibly remote) socket.ssl_get_errorSSL_get_error 3ssl 3 1699892223 A - - gz obtain result code for TLS/SSL I/O operationxcb_dri3_buffers_from_pixmap- 3 3 1540917640 A - - gz wmemcmp wmemcmp 3 wmemcmp 3pfind find 1p find 1git-mailinfo- 1 1 1722330782 A - - gz Extracts patch and authorship from a single e-mail messagefcgistarter- 8 8 1581182771 A - - gz Start a FastCGI programxsetforegroundXSetForeground 3 3 1710950786 B - - gz GC convenience routinesgit-mergetool--lib- 1 1 1722330780 A - - gz Common Git merge tool shell scriptletsrngd- 8 8 1585714781 A - - gz Check and feed random data from hardware device to kernel random deviceeuca-delete-network-acl- 1 1 1484780705 A - - gz Delete a VPC network ACLxcb_glx_get_color_table_parameterfv_data_length- 3 3 1540917640 B - - gz item_visible- 3x 3 1720626759 B - - gz check visibility of a menu itemxorg_event.conf- 5 5 1601569733 B - - gz configuration file for libreport.termios- 3 3 1402354213 A - - gz get and set terminal attributes, line control, get and set baud ratepthread_setcancelstate pthread_setcancelstate 3 pthread_setcancelstate 3pisastream isastream 2 isastream 3psetprotoent 3- 3 3 1402354212 B - - gz get protocol entrysudoedit- 8 8 1720626758 B - - gz execute a command as another userssl_cipher_get_bitsSSL_CIPHER_get_bits 3ssl 3 1721417624 B - - gz get SSL_CIPHER propertiesxseteventqueueownerXSetEventQueueOwner 3 3 1710950786 A - - gz set event queue owner on a shared Xlib/XCB connectionasinf asinf 3 asinf 3pgethostent gethostent 3 gethostent 3pxpointXPoint 3 3 1710950786 B - - gz draw points and points structuressl_get_shared_curveSSL_get_shared_curve 3ssl 3 1721417624 B - - gz EC supported curve functionstcl_asyncreadyTcl_AsyncReady 3 3 1448008821 B - - gz handle asynchronous eventsxcb_input_get_device_modifier_mapping_reply- 3 3 1540917640 B - - gz time 3p- 3p 3p 1402354219 A - - gz get timetiffchecktileTIFFCheckTile 3tiff 3 1729525165 C TIFFtile - gz euca-modify-snapshot-attribute- 1 1 1484780705 A - - gz Modify an attribute of a snapshotfts_set- 3 3 1402354209 B - - gz traverse a file hierarchyfts- 3 3 1402354209 A - - gz traverse a file hierarchyec_gfp_nistp256_methodEC_GFp_nistp256_method 3ssl 3 1721417624 B - - gz Functions for obtaining EC_METHOD objects.xcb_randr_delete_output_mode_checked- 3 3 1540917640 B - - gz j0 j0 3 j0 3pssltap- 1 1 1730826028 A - - gz Tap into SSL connections and display the data going bygnu_dev_minor- 3 3 1402354210 B - - gz manage a device numberreporter-mailx- 1 1 1585834715 A - - gz Sends contents of a problem directory via email.setcchar- 3x 3 1720626759 B - - gz Get a wide character string and rendition from a cchar_t or set a cchar_t from a wide-character stringtcl_createclosehandlerTcl_CreateCloseHandler 3 3 1448008821 A - - gz arrange for callbacks when channels are closedtcl_fsmountschangedTcl_FSMountsChanged 3 3 1448008822 B - - gz procedures to interact with any filesystemgetdate_r- 3 3 1402354209 B - - gz convert a date-plus-time string to broken-down timessl_ctx_set1_paramSSL_CTX_set1_param 3ssl 3 1721417624 B - - gz get and set verification parameterscmsg_firsthdrCMSG_FIRSTHDR 3 3 1402354206 B - - gz access ancillary datatype_ipv4TYPE_IPV4 3x 3 1720626759 B - - gz form system global variableschgrp chgrp 1p chgrp 1xkbkeyactionentryXkbKeyActionEntry 3 3 1710950785 A - - gz Returns a pointer to the key action corresponding to group grp and shift level lvl from the two-dimensional table of key actions associated with the key corresponding to keycodenet::domainNet::Domain 3pm 3 1698237676 A - - gz Attempt to evaluate the current host's internet name and domainxfreecursorXFreeCursor 3 3 1710950786 B - - gz manipulate cursorscurses::ui::tutorialCurses::UI::Tutorial 3pm 3 1454728582 A - - gz Tutorial for the Curses::UI frameworkxcb_glx_get_tex_parameteriv_unchecked- 3 3 1540917640 B - - gz perlio::scalarPerlIO::scalar 3pm 3 1698237676 A - - gz in-memory IO, scalar IOd2i_x509_sigd2i_X509_SIG 3ssl 3 1721417624 A - - gz DigestInfo functions.rpc.nfsd- 8 8 1682710367 B - - gz NFS server processgit-stage- 1 1 1722330780 A - - gz Add file contents to the staging areadsa_opensslDSA_OpenSSL 3ssl 3 1721417624 B - - gz select DSA methodxkeyboardcontrolXKeyboardControl 3 3 1710950785 B - t gz manipulate keyboard settings and keyboard control structureac- 1 1 1501750853 A - - gz print statistics about users' connect timepod::perldoc::toansiPod::Perldoc::ToANSI 3pm 3 1402388268 A - - gz render Pod with ANSI color escapesencode::gsm0338Encode::GSM0338 3pm 3 1402368577 A - - gz - ESTI GSM 03.38 Encodingxcb_input_get_extension_version_unchecked- 3 3 1540917640 B - - gz xfontpropXFontProp 3 3 1710950786 B - - gz load or unload fonts and font metric structurespthread_setspecific- 3p 3p 1402354217 B - - gz thread-specific data managementiswalpha iswalpha 3 iswalpha 3pxcb_randr_get_screen_resources_names_length- 3 3 1540917640 B - - gz Fcntl 3pm- 3pm 3 1698237673 A - - gz load the C Fcntl.h defineschgat- 3x 3 1720626759 B - - gz curses character and window attribute control routinesfcpatterngetstringFcPatternGetString 3 3 1520307172 C FcPatternGet-Type - gz gitrepository-layout- 5 5 1722330784 A - - gz Git Repository Layoutpem_read_bio_pubkeyPEM_read_bio_PUBKEY 3ssl 3 1721417624 B - - gz PEM routinesgetutxline 3- 3 3 1402354210 B - - gz access utmp file entriesinet_aton- 3 3 1402354210 B - - gz Internet address manipulation routinesmatchpathcon matchpathcon 8 matchpathcon 3xcb_shm_create_pixmap- 3 3 1540917640 A - - gz tiffycbcrtorgbTIFFYCbCrtoRGB 3tiff 3 1729525165 C TIFFcolor - gz i18n::langtags::listI18N::LangTags::List 3pm 3 1698237674 A - - gz - tags and names for human languagescurses::ui::listboxCurses::UI::Listbox 3pm 3 1454728582 A - - gz Create and manipulate listbox widgetstcl_fspathseparatorTcl_FSPathSeparator 3 3 1448008822 B - - gz procedures to interact with any filesystembio_get_write_buf_sizeBIO_get_write_buf_size 3ssl 3 1721417624 B - - gz BIO pair BIOfreetype-config- 1 1 1710151230 A - - gz Get information about a libfreetype installationxnoexposeeventXNoExposeEvent 3 3 1710950786 B - - gz GraphicsExpose and NoExpose event structuresttk::scale- n n 1448008912 A - - gz Create and manipulate a scale widgetxmaxrequestsizeXMaxRequestSize 3 3 1710950785 B - - gz Display macros and functionsec_group_get0_seedEC_GROUP_get0_seed 3ssl 3 1721417624 B - - gz Functions for manipulating EC_GROUP objects.xchangesavesetXChangeSaveSet 3 3 1710950786 A - - gz change a client's save setfcfontsetsortdestroyFcFontSetSortDestroy 3 3 1520307172 A - - gz DEPRECATED destroy a font setxsetwmsizehintsXSetWMSizeHints 3 3 1710950785 B - t gz allocate size hints structure and set or read a window's WM_NORMAL_HINTS propertytcl_unicharisdigitTcl_UniCharIsDigit 3 3 1448008823 B - - gz routines for classification of Tcl_UniChar charactersxcb_x_print_print_rehash_printer_list_checked- 3 3 1540917640 B - - gz tcl_createeventsourceTcl_CreateEventSource 3 3 1448008822 B - - gz the event queue and notifier interfacesxcb_sync_reset_fence- 3 3 1540917640 A - - gz xcb_xkb_set_indicator_map- 3 3 1540917640 A - - gz dislocate Dislocate 1 dislocate 1lockfile- 1 1 1511905870 A - - gz conditional semaphore-file creatorxthooksofdisplayXtHooksOfDisplay 3 3 1501646833 A - - gz external agent access pointsgetnetbyname getnetbyname 3 getnetbyname 3pcolor_pairsCOLOR_PAIRS 3x 3 1720626759 B - - gz curses global variablesxcb_input_xi_barrier_release_pointer_checked- 3 3 1540917640 B - - gz ec_points_make_affineEC_POINTs_make_affine 3ssl 3 1721417624 B - - gz Functions for performing mathematical operations and tests on EC_POINT objects.tcl_regexpexecobjTcl_RegExpExecObj 3 3 1448008822 B - - gz Pattern matching with regular expressionsxcb_xkb_get_names_value_list- 3 3 1540917640 B - - gz resetty- 3x 3 1720626759 B - - gz low-level curses routinesxcb_alloc_color_planes_unchecked- 3 3 1540917640 B - - gz setregdomain- 1 1 1540910944 A - - gz set regulatory domain based on country codeyaml::errorYAML::Error 3pm 3 1402340435 A - - gz Error formatting class for YAML modulesbenchmarkBenchmark 3pm 3 1698237671 A - - gz benchmark running times of Perl codexunseticfocusXUnsetICFocus 3 3 1710950786 B - - gz set and unset input context focusxcb_dri2_get_buffers_buffers_length- 3 3 1540917640 B - - gz xcb_present_redirect_notify_event_t- 3 3 1540917640 A - - gz futimes- 3 3 1402354210 A - - gz change file timestampsposix_trace_eventset_empty- 3p 3p 1402354217 B - - gz manipulate trace event type sets (TRACING)nl_langinfo 3- 3 3 1402354211 A - - gz query language and locale informationpthread_rwlock_timedwrlock- 3p 3p 1402354217 A - - gz lock a read-write lock for writingpod::simple::htmlPod::Simple::HTML 3pm 3 1402365606 A - - gz convert Pod to HTMLcasinh casinh 3 casinh 3pssl_get1_curvesSSL_get1_curves 3ssl 3 1721417624 B - - gz EC supported curve functionsverrx- 3 3 1402354213 B - - gz formatted error messagesdatetime::locale::uz_cyrlDateTime::Locale::uz_Cyrl 3pm 3 1402390635 A - - gz xtvacreatewidgetXtVaCreateWidget 3 3 1501646833 B - - gz create and destroy widgetswclrtobot- 3x 3 1720626759 B - - gz clear all or part of a curses windowerr 3ssl- 3ssl 3 1699892217 A - - gz error codestc-bfifo- 8 8 1601484048 A - - gz Packet limited First In, First Out queuexcb_render_create_conical_gradient_checked- 3 3 1540917640 B - - gz git-mv- 1 1 1722330783 A - - gz Move or rename a file, a directory, or a symlinklwp-download- 1 1 1402363153 A - - gz Fetch large files from the webupdate-desktop-database- 1 1 1445965787 A - - gz Build cache database of MIME types handled by desktop filessocket Socket 3pm socket n socket 2 socket 7 socket 3palphasort- 3 3 1402354207 B - - gz scan a directory for matching entriesxcb_list_fonts_with_info_properties_length- 3 3 1540917640 B - - gz get matching font names and informationmysql_config- 1 1 1697025034 A - - gz display options for compiling clientspathconf 3- 3 3 1402354209 A - - gz get configuration values for fileserand48 erand48 3 erand48 3pdes_random_keyDES_random_key 3ssl 3 1721417624 B - - gz DES encryptionxresetscreensaverXResetScreenSaver 3 3 1710950786 B - - gz manipulate the screen saverfc-list- 1 1 1519011780 A - - gz list available fontsxkbgetkeyboardXkbGetKeyboard 3 3 1710950785 A - t gz Retrieves one or more components of a keyboard device descriptionxcb_glx_get_mapiv- 3 3 1540917640 A - - gz open open 3pm open n open 2 open 1 open 3pxcb_render_fill_rectangles_checked- 3 3 1540917640 B - - gz bn_cmp_words- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionshesinfo- 1 1 1402359731 A - - gz find out what is stored in the Hesiod databasexcb_input_get_device_control_control- 3 3 1540917640 B - - gz euare-usergetinfo- 1 1 1484780705 A - - gz [Eucalyptus only] Display information about a user_@sendsetsj:perl 67c:tcl_C KT*:etex2j:perl (:xtis G)+:ext2X:poli'#p:extuUxcb_In:syst(iso_ ^{<:date63u :xcb_)cj:xtis A$n:evp_UP:xcb_y':xsetFg:ulck 9:xcb_T _:dbd:VQJm:xcb_8:pam_&Ap|:zliby<i:fsta 8tcl_Yhas_4Wpuny'OV:sqrt/slee##C:xcb_4:xcb_j3F:sign IxtgeJypod:}K3showGmq:svc_ FposiKTpkg_O Utcl_ Pxcb_ LX:nanl_modi )j:cabst:whilR&:io::G7/w:tcl_A K:xcb_+SH:diffH:strs -logbz:xdrr*  L:feho D3:xcb_ .:hstr  1:tcl_Y T@:date 5:wget B :perlV  <&$:dbi: Z/:fese  IE:encoh D1ie:math  Fj:lh_n .3:xml:U R:busi W~:getu( &2:lwreI=|:term":sys_G 7u:perl7߀:euwaP4B:d2i_MPb::rawmP 6:I:xcb_P3E:evp_MQ76H:abrtQI4:spriQ 6;:fcco)RM:menuR 4{P:dateR3|:ungeS ]I:echo/:winsSKAg:io::Sda:set_MT;PC:setbT 9<:isalT <:xcb_!U L:putc\U5=B :msgcU >2<:bio_U @V:xcb_3V*g:UnicxV !\G:sshdV @jJ:seliV @ :wcss9WLG:locaTWXg:xcb_W%:pwhiWhc0:iso_uX ^:fcchX4â:iswl!Y c:iso_BY ^:eucaY!LJg=:fchdZ$ :umou3Z $2:yamlcZ Bg:uuidZ9:dateZ0\:cacoB[ 8::mail[strs,xcb_*,&evp_k,B::tcl_[c^:bind\2y[:striQ\ .f:gtty\5:iswa\ ?W:pthr ]GVv:iptaq]8Kid:getu] ,):xcb_]{H:date&^3T@:xcb_q^2J:xtap^B.z:tcl_ _:W:atanS_ 1itemnM 85:xsetz:tcl_aǪ:pthr_@J;:xcb_.o:tcl_GV3:xcb_P:xcb_YP:disl :lock; =tcl_&BReucaBP:xthoF;b8:getnآ dateaC0tcl_C 7YT:colo =8:xcb_N-:ec_p:tcl_-TNg:xcb_}`:reseˤ59:xcb_!l:setrD FT:yaml N_:benc ID:xunsDHgl:xcb_$:xcb_٦$>:futi1R5:posiQG:nl_l@:pthr?y9:pod:[@ckreG 7:casi% Z Ĥi;ssl_ȨH;pod:pf_~;json7;pod:'0<;copyl 9-m;iso6 2hr~;tc-by C/;xcb_Ū+M;git- K;lwp-] 95;updaVclntFio::L Y`t;sock1s;alphI @9g;xcb_+B+;mysq @J ;pathM =׿;eransdbmL >Qj;des_90;xresFcurs@XE 4;fc-lS/wcsc ]pthrm>u;xkbgiz;xcb_W;open/'};xcb_[#h";bn_c ?=;hesiI\ݤ;xcb_Q% A;euarMf;mbin?+;svceEFP;scal Ttcl_achro9 Wpm-s=date3{;dela;pem_u;shmgwcfse WH;perlE +base Dxcb_`xcb_";sp:|=A;buf_ Fid;envz5endp@-caco{Z;strfH < :;bigiDA;pthr7Y-;dbi#F;netdm Dx];chacPl;xcb_ˈ;fegeEI;pthr60_a;sem_ :zx;xcb_,"";strfi =;xtgr 2,;xtreKg;defaOJD;isqlE;fiel :!G;sem_9 @M;vimr<_;syst6;dhcl9N;pcap`G&;conjZ;mysq 0$;syst ?<;xcb_]#;ccos 4J-;intrXa/;vers8 @j;csqr.g;pam_ 6>|;tiff6f|;euarB33;curl)@ A;ssl_UT;ssl_ep;xsetB?6*;xcb_#hj;isfu/C5;dnssCp;type ALK;fde-Rm;stanO R#H;xcb_2;vidp ;6 ;xget= Kߧ;rtc*;grub,Ԯ;cpu_ Cto;regcM 8 ;slk_ 6[;jnl=o";perl>$V4;mvwiY SX_;ceil{;date3L;tcl_R;grp.},ޖ;tcl_b:;xget)b;dtlsrJ;bn_s#4 ;pthr_"H';pcre>%;fcla<%};euar7T{v;date3{e;date3G+;getp8-;pam_xD;rand >$;tcl_c{;;date3(;perl7e;eufo!2(;nocbf ;xy;tcl_ K`e;dump ;#;xremH TSn?;des_@m;byte`;fwpre E~K;form:LO;vdpr 5G;set_<;;date0 i;inssJ&;endp Y;xcb_F ;xkba~I7;d2i_qM;gvimW (S)A;xter9dp;abrt<$w;sign .Na[;xkbaRRv;xwcfZ ;xcb_%# D;xdbecJݻ;lrou/;curs <o;pem_I@l;xtvaDn;xcb_4;evp_L釰;dateY5YKe;ospeNWI=;verr 3cE ;dispO;d2i_V;wclr @߲7;err G )mbind- 2 2 1402354205 A - - gz set memory policy for a memory rangesvcerr_systemerr- 3 3 1402354212 B - - gz library routines for remote procedure callsscalbnf 3- 3 3 1402354212 B - - gz multiply floating-point number by integral power of radixdelay_output_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionperlnetware- 1 1 1698237666 A - - gz Perl for NetWarespSP 3x 3 1720626759 B - - gz curses terminfo global variablesbuf_strlcpyBUF_strlcpy 3ssl 3 1721417624 B - - gz standard C library equivalentsenvz- 3 3 1402354208 B - - gz environment string supportstrfnames- 3x 3 1720626759 B - - gz curses terminfo global variablesbigint- 3pm 3 1698237678 A - - gz Transparent BigInteger support for Perlpthread_setname_np- 3 3 1402354211 A - - gz set/get the name of a threaddbiDBI 3pm 3 1402362412 A - - gz Database independent interface for Perlnetdevice- 7 7 1402354220 A - t gz low-level access to Linux network deviceschacl- 1 1 1585707370 A - - gz change the access control list of a file or directoryxcb_get_modifier_mapping- 3 3 1540917640 A - - gz fegetexceptflag 3- 3 3 1402354209 B - - gz floating-point rounding and exception handlingpthread_self 3p- 3p 3p 1402354217 A - - gz get the calling thread IDsem_post 3p- 3p 3p 1402354218 A - - gz unlock a semaphore (REALTIME)xcb_res_query_client_pixmap_bytes- 3 3 1540917640 A - - gz strfmon 3- 3 3 1402354212 A - - gz convert monetary value to a stringxtgrabbuttonXtGrabButton 3 3 1501646833 B - - gz manage grabsxtregistergrabactionXtRegisterGrabAction 3 3 1501646833 A - - gz register button and key grabsdefault_contexts- 5 5 1585710994 A - - gz The SELinux default contexts configuration fileisql- 1 1 1565320310 A - - gz unixODBC command-line interactive SQL toolfield_info- 3x 3 1720626759 B - - gz retrieve field characteristicssem_open 3- 3 3 1402354212 A - - gz initialize and open a named semaphorevimrc_event.conf- 5 5 1601569733 B - - gz configuration file for libreport.systemd-timedated- 8 8 1711457788 B - - gz Time and date bus mechanismdhclient.conf- 5 5 1718116541 A - - gz DHCP client configuration filepcap-linktype- 7 7 1649175930 A - - gz link-layer header types supported by libpcapconjf conjf 3 conjf 3pmysqlimport- 1 1 1697025034 A - - gz a data import programsystemd-ask-password- 1 1 1711457787 A - - gz Query the user for a system passwordxcb_input_xi_query_pointer_buttons- 3 3 1540917640 B - - gz ccoshl 3- 3 3 1402354207 B - - gz complex hyperbolic cosineintro 7- 7 7 1402354219 A - - gz introduction to overview, conventions, and miscellany sectionversionsort- 3 3 1402354212 A - - gz scan a directory for matching entriescsqrt 3- 3 3 1402354208 A - - gz complex square rootpam_group- 8 8 1585713589 A - - gz PAM module for group accesstiffnumberoftilesTIFFNumberOfTiles 3tiff 3 1729525165 C TIFFtile - gz euare-groupgetpolicy- 1 1 1484780705 A - - gz Display a group's policycurl- 1 1 1711128730 A - - gz transfer a URLssl_get_versionSSL_get_version 3ssl 3 1699892224 A - - gz get the protocol version of a connection.ssl_ctx_set_info_callbackSSL_CTX_set_info_callback 3ssl 3 1721417624 A - - gz handle information callback for SSL connectionsxsetioerrorhandlerXSetIOErrorHandler 3 3 1710950786 B - - gz default error handlersxcb_get_pointer_mapping_map_length- 3 3 1540917640 B - - gz isfunctionkeyIsFunctionKey 3 3 1710950785 B - - gz keysym classification macrosdnssec-coverage- 8 8 1725373374 A - - gz checks future DNSKEY coverage for a zonetype_alnumTYPE_ALNUM 3x 3 1720626759 B - - gz form system global variablesfd- 4 4 1402354219 A - t gz floppy disk devicestandend- 3x 3 1720626759 B - - gz curses character and window attribute control routinesxcb_dri2_get_buffers_with_format_buffers_iterator- 3 3 1540917640 B - - gz vidputs_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionxgetwmnameXGetWMName 3 3 1710950786 B - - gz set or read a window's WM_NAME propertyrtc- 4 4 1402354219 A - - gz real-time clockgrub-syslinux2cfg- 1 1 1722985065 C grub2-syslinux2cfg - gz cpu_clr_sCPU_CLR_S 3 3 1402354206 B - - gz macros for manipulating CPU setsregcomp 3p- 3p 3p 1402354218 A - t gz regular expression matchingslk_restore- 3x 3 1720626759 B - - gz curses soft label routinesjnl- 3 3 1402354210 B - - gz Bessel functions of the first kindperlvms- 1 1 1698237671 A - - gz VMS-specific documentation for Perlmvwin_wch- 3x 3 1720626759 B - - gz extract a complex character and rendition from a windowceill ceill 3 ceill 3pdatetime::locale::en_inDateTime::Locale::en_IN 3pm 3 1402390637 A - - gz tcl_alertnotifierTcl_AlertNotifier 3 3 1448008822 A - - gz the event queue and notifier interfacesgrp.h- 0p 0p 1402354203 A - - gz group structuretcl_channeltruncateprocTcl_ChannelTruncateProc 3 3 1448008821 B - - gz procedures for creating and manipulating channelsxgetwmcolormapwindowsXGetWMColormapWindows 3 3 1710950786 B - - gz set or read a window's WM_COLORMAP_WINDOWS propertydtlsv1_2_methodDTLSv1_2_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionsbn_swapBN_swap 3ssl 3 1699892206 A - - gz exchange BIGNUMspthread_equal pthread_equal 3 pthread_equal 3ppcre32_copy_named_substring- 3 3 1573510868 B - - gz Perl-compatible regular expressionsfclangsetsubtractFcLangSetSubtract 3 3 1520307172 A - - gz Subtract langsetseuare-accountgetpolicy- 1 1 1484780705 A - - gz [Eucalyptus cloud admin only] Display an account's policydatetime::locale::mn_mnDateTime::Locale::mn_MN 3pm 3 1402390639 A - - gz datetime::locale::te_inDateTime::Locale::te_IN 3pm 3 1402390640 A - - gz getprotobynumber 3- 3 3 1402354209 B - - gz get protocol entrypam_misc_setenv- 3 3 1585713595 A - - gz BSD like PAM environment variable settingrand_eventRAND_event 3ssl 3 1721417624 B - - gz add entropy to the PRNGtcl_channelgetoptionprocTcl_ChannelGetOptionProc 3 3 1448008821 B - - gz procedures for creating and manipulating channelsdatetime::locale::sr_meDateTime::Locale::sr_ME 3pm 3 1402390641 A - - gz perl5124delta- 1 1 1698237662 A - - gz what is new for perl v5.12.4euform-list-stacks- 1 1 1484780705 A - - gz List all running stacksnocbreak_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensiontcl_readrawTcl_ReadRaw 3 3 1448008822 B - - gz buffered I/O facilities using channelsdumpkeys- 1 1 1637771557 A - - gz dump keyboard translation tablesxremovehostsXRemoveHosts 3 3 1710950785 B - - gz control host access and host control structuredes_ede3_cbcm_encryptDES_ede3_cbcm_encrypt 3ssl 3 1721417624 B - - gz DES encryptionbytes- 3pm 3 1698237678 A - - gz Perl pragma to force byte semantics rather than character semanticsfwprintf 3- 3 3 1402354209 B - - gz formatted wide-character output conversionform_field_new- 3x 3 1720626759 A - - gz create and destroy form fieldsvdprintf- 3 3 1402354213 B - - gz print to a file descriptorset_tabsize_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensiondatetime::locale::hyDateTime::Locale::hy 3pm 3 1402390636 A - - gz insstr- 3x 3 1720626759 B - - gz insert string before cursor in a curses windowendprotoent endprotoent 3 endprotoent 3pxcb_glx_set_client_info_2arb- 3 3 1540917640 A - - gz xkballocnamesXkbAllocNames 3 3 1710950785 A - t gz Allocate symbolic names structuresd2i_ecprivatekeyd2i_ECPrivateKey 3ssl 3 1699892215 A - - gz Encode and decode functions for saving and reading EC_KEY structuresgvimtutor- 1 1 1720542354 B - - gz the Vim tutorxterrorXtError 3 3 1501646833 A - - gz low-level error handlersabrt-harvest-vmcore- 1 1 1601569733 A - - gz Converts VMCores to ABRT problemssignal 3p- 3p 3p 1402354218 A - - gz signal managementxkbaddgeomoverlaykeyXkbAddGeomOverlayKey 3 3 1710950785 A - - gz Add a key to an existing overlay rowxwcfreestringlistXwcFreeStringList 3 3 1710950786 B - t gz convert text lists and text property structuresxcb_input_query_device_state_reply- 3 3 1540917640 B - - gz xdbeswapbuffersXdbeSwapBuffers 3 3 1448003986 A - - gz swaps front and back DBE buffers.lroundl lroundl 3 lroundl 3pcurs_refresh- 3x 3 1715932338 A - - gz refresh curses windows and linespem_write_dsaprivatekeyPEM_write_DSAPrivateKey 3ssl 3 1721417624 B - - gz PEM routinesxcb_input_change_device_dont_propagate_list_checked- 3 3 1540917640 B - - gz evp_pkey_get1_rsaEVP_PKEY_get1_RSA 3ssl 3 1721417624 B - - gz EVP_PKEY assignment functions.ospeed- 3x 3 1720626759 B - - gz direct curses interface to the terminfo capability databasedisplay- 1 1 1731392888 A - - gz displays an image or image sequence on any X server.d2i_pkcs8privatekey_fpd2i_PKCS8PrivateKey_fp 3ssl 3 1721417624 B - - gz PKCS#8 format private key functionspod::inputobjectsPod::InputObjects 3pm 3 1402373048 A - - gz objects representing POD input paragraphs, commands, etc.json_xs- 1 1 1392571439 A - - gz JSON::XS commandline utilitypod::pom::node::textPod::POM::Node::Text 3pm 3 1402385888 A - - gz copysign 3p- 3p 3p 1402354214 A - - gz number manipulation functioniso646.h- 0p 0p 1402354203 A - - gz alternative spellingsimage::info::bmpImage::Info::BMP 3pm 3 1402363342 A - - gz Windows Device Indepdent Bitmap support for Image::Infoxcb_xfixes_expand_region_checked- 3 3 1540917640 B - - gz mtrace- 3 3 1402354211 A - - gz malloc tracing_syscall- 2 2 1402354204 A - - gz invoking a system call without library support (OBSOLETE)perlstyle- 1 1 1698237668 A - - gz Perl style guideflash- 3x 3 1720626759 B - - gz curses bell and screen flash routinesxtappaddworkprocXtAppAddWorkProc 3 3 1501646833 A - - gz Add and remove background processing proceduresdoveadm-rebuild- 1 1 1724195936 A - - gz Commands related to rebuilding various aspects of mails matching given search query.uuid_unparse- 3 3 1612283497 A - - gz convert an UUID from binary representation to a stringtcl_duplicateobjTcl_DuplicateObj 3 3 1448008822 B - - gz manipulate Tcl objectsdes_set_key_checkedDES_set_key_checked 3ssl 3 1721417624 B - - gz DES encryptionxcb_ungrab_pointer- 3 3 1540917640 A - - gz release the pointernew_fieldtype- 3x 3 1720626759 B - - gz define validation-field typesxcb_sync_change_counter_checked- 3 3 1540917640 B - - gz xcb_shape_combine_checked- 3 3 1540917640 B - - gz nproc- 1 1 1605565487 A - - gz print the number of processing units availablelinux-boot-prober- 1 1 1478403002 A - - gz Determine boot characteristics of a specified device.iso_8859_16- 7 7 1402354220 B - t gz ISO 8859-16 character set encoded in octal, decimal, and hexadecimaltap::parser::result::yamlTAP::Parser::Result::YAML 3pm 3 1439389327 A - - gz YAML result token.remove 3- 3 3 1402354211 A - - gz remove a file or directoryd2i_x509_named2i_X509_NAME 3ssl 3 1721417624 A - - gz X509_NAME encoding functionsdatetime::locale::hy_amDateTime::Locale::hy_AM 3pm 3 1402390639 A - - gz ssl_ctx_use_psk_identity_hintSSL_CTX_use_psk_identity_hint 3ssl 3 1721417624 A - - gz set PSK identity hint to usecurses::ui::texteditorCurses::UI::TextEditor 3pm 3 1454728582 A - - gz Create and manipulate texteditor widgetssg- 1 1 1565319053 A - - gz execute command as different group IDlinux32- 8 8 1612283497 B - - gz change reported architecture in new program environment and set personality flagskeyctl_invalidate- 3 3 1402366674 A - - gz Invalidate a keyudp- 7 7 1402354220 A - - gz User Datagram Protocol for IPv4lsmcli- 1 1 1615908399 A - - gz libStorageMgmt command line interfacegcvt 3p- 3p 3p 1402354215 B - - gz convert a floating-point number to a string (LEGACY)xcb_input_raw_touch_begin_event_t- 3 3 1540917640 A - - gz sess_id- 1ssl 1 1699892201 A - - gz SSL/TLS session handling utilitytiffwarningTIFFWarning 3tiff 3 1729525165 A - - gz library warning interfacebio_f_bufferBIO_f_buffer 3ssl 3 1699892203 A - - gz buffering BIOxcb_dpms_capable_unchecked- 3 3 1540917640 B - - gz xcb_glx_get_tex_level_parameterfv_data_length- 3 3 1540917640 B - - gz pod::parserPod::Parser 3pm 3 1402373049 A - - gz base class for creating POD filters and translatorsisgraph 3- 3 3 1402354210 B - - gz character classification routinesjson::backportpp::compat5005JSON::backportPP::Compat5005 3pm 3 1402382639 A - - gz Helper module in using JSON::PP in Perl 5.005xcb_input_set_device_button_mapping_unchecked- 3 3 1540917640 B - - gz gethostent_r- 3 3 1402354209 A - - gz get network host entryxcb_destroy_window- 3 3 1540917640 A - - gz Destroys a windowmachine-info- 5 5 1711457787 A - - gz Local machine information filedir_colors- 5 5 1402354219 A - t gz configuration file for dircolors(1)xcb_present_select_input_checked- 3 3 1540917640 B - - gz sgdisk- 8 8 1393783057 A - - gz Command-line GUID partition table (GPT) manipulator for Linux and Unixpvs- 8 8 1619616701 A - - gz Display information about physical volumessigpause 3p- 3p 3p 1402354218 B - - gz signal managementsort sort 3pm sort 1p sort 1tk_focusprevtk_focusPrev n n 1448008912 B - - gz Utility procedures for managing the input focus.pam_nologin- 8 8 1585713590 A - - gz Prevent non-root users from loginutimes utimes 2 utimes 3piconv iconv 3 iconv 1p iconv 3pxtmanagechildXtManageChild 3 3 1501646833 B - - gz manage and unmanage childrengetopts 1p- 1p 1p 1402354203 A - - gz parse utility optionsxcb_randr_get_crtc_gamma_green_end- 3 3 1540917640 B - - gz crypto_set_dynlock_destroy_callbackCRYPTO_set_dynlock_destroy_callback 3ssl 3 1721417624 B - - gz OpenSSL thread supportxcb_glx_vendor_private_with_reply_data_2_length- 3 3 1540917640 B - - gz getwc_unlocked- 3 3 1402354210 B - - gz nonlocking stdio functionsxml::libxml::documentXML::LibXML::Document 3pm 3 1402352993 A - - gz XML::LibXML DOM Document Classh_errno 3- 3 3 1402354210 B - - gz get network host entrygettext 3- 3 3 1465650185 A - - gz translate messagemakecontext makecontext 3 makecontext 3pdatetime::locale::es_mxDateTime::Locale::es_MX 3pm 3 1402390643 A - - gz cpan::kwalifyCPAN::Kwalify 3pm 3 1698237384 A - - gz Interface between CPAN.pm and Kwalify.pmeulb-configure-healthcheck- 1 1 1484780705 A - - gz Configure health checking for instance registerd with a load balancer ' 6k>xcb_.5o>pam_I =fR>pipe61 >tap:G>pwd 0Bnw>lrinx 3DZ>contKYP>ssl_Zu=>key_N=Y>dnss8>xcb_,;3>enduc 3u9>bio_ 5>trun 86>pcreJ">5>dsa_K>temp Ym>fcna}L>mvwg R!>fcpa=F>tcl_WU[ >curs 1s>read>@t>va_e 2$Dt?git-! QGE?xcb_|-!&>fccoJgY>euari.>xset =R#>isgr Th?is_sħ 4?pos_4M>erfLg?halfH 0w?read +8;?crea_^y>xcb_^'?xwitE,>dh_gY>warn33>cryp@[H>atoi ?g>fput I2>rsa_C?>hcref 0}>xcb_!X>tcl_QL?xcb_ s6x?xcb_C">cryp<O?0?gvimA#?formƩ5г?shm_ E?ssl_^G>dtlsy?sigw?(?tcl_BN?ssl_ZR>secu8J?>llri `>fege F>xcb_%!L7>xkbsaw>cbrtF>xrmcHcQ>tcl_|O>hdgP4ƽ?fcchB3lgam[w?yum-^QuaN>expo7P PH>magiPe߷>doveQMF>perlbQ Xi>nextQ {?dateȬ3,?euar-$(?grepQ8?>man Q9(?ssl_Va >pure1RC!>evp_|RS >yamlR N>sg3_:S K09>evp_S7a>xcb_S1>gethT"{>pvalJT2>ec_kTtm>strx U 2HI?ob_H>iconJU8{1>dateU3/>net:U Jk>xcb_+V(s>xcb_nV^p>diffV5`{&>y0fV>(%>loadW D>conffW.>cursW J>bordWP>ssl_/X^pH>tcl_XM >longY =>fccoHY? !>dateY iav>xkba#Zd>atqZLta>hostZL-c>ctan>[ 6t>shmg}[ =oV>sigv[) >wcsl[T>tcl_\T"k>xcb_u\ >chro\ 0H}>ssl_\QE >lwreR]A>xmbr] G>xcb_].$>tcl_E^@c>quot^ 1Den>fcob^<>use__ AY>getpi_ ?5;>xfsfFe>xtnojK̴?daylI z?net:j a3A?ceilخ;_?upn!XO>tcl_Ġ U~?date|5*>scal# Tmh?strc˯2?nofi A0?xcb_J%ީ?unim5H>log1_[>xgra 4{f?dateͰ33z>>bn_m Ud!o>git- 6&>hton_٢$>xcb_^%0Lp?sg_gHΧS>xcb_!Q0?ssl_nc?mvdePؖ>xtgeڢL,>xcb_:>systof8?cursGb o?ps 1IJFpH:>caco 9k_>bios7 3P >slabMGZP>matcuT>x509 EXv>xdr_ L>ssl_Ra>cproɥ$>syst J>dove ]hd- 4 4 1402354219 A - - gz MFM/IDE hard disk devicesexporterExporter 3pm 3 1402373350 A - - gz Implements default import method for modulesmagickcore-configMagickCore-config 1 1 1570314376 A - - gz get information about the installed version of ImageMagickdoveadm-quota- 1 1 1724195936 A - - gz Initialize/recalculate or show current quota usageperl::ostypePerl::OSType 3pm 3 1402382818 A - - gz Map Perl operating system names to generic typesnexttowardl nexttowardl 3 nexttowardl 3pman 1p- 1p 1p 1402354204 A - - gz display system documentationpure-pw- 8 8 1730292103 A - - gz Manage virtual users files for Pure-FTPdevp_pkey_ctx_ctrlEVP_PKEY_CTX_ctrl 3ssl 3 1721417624 A - - gz algorithm specific control operationsyaml::syckYAML::Syck 3pm 3 1402366046 A - - gz Fast, lightweight YAML loader and dumpersg3_utils- 8 8 1585715378 A - - gz a package of utilities for sending SCSI commandsevp_md5EVP_md5 3ssl 3 1721417624 B - - gz EVP digest routinesxcb_selinux_get_selection_context_context_length- 3 3 1540917640 B - - gz gethostbyname gethostbyname 3 gethostbyname 3ppvalloc- 3 3 1402354211 B - - gz allocate aligned memoryec_key_set_conv_formEC_KEY_set_conv_form 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_KEY objects.strxfrm 3p- 3p 3p 1402354218 A - - gz string transformationiconv.h- 0p 0p 1402354203 A - - gz codeset conversion facilitydatetime::locale::lv_lvDateTime::Locale::lv_LV 3pm 3 1402390634 A - - gz net::configNet::Config 3pm 3 1698237676 A - - gz Local configuration data for libnetxcb_randr_get_provider_info_outputs_end- 3 3 1540917640 B - - gz xcb_copy_plane- 3 3 1540917640 A - - gz diff 1- 1 1 1678200503 A - - gz compare files line by liney0f- 3 3 1402354213 B - - gz Bessel functions of the second kindload_policy- 8 8 1585713889 A - - gz load a new SELinux policy into the kernelconfstr confstr 3 confstr 3pcurs_bkgd- 3x 3 1715932336 A - - gz curses window background manipulation routinesborder- 3x 3 1720626759 B - - gz create curses borders, horizontal and vertical linesssl_ctx_get_verify_depthSSL_CTX_get_verify_depth 3ssl 3 1721417624 B - - gz get currently set verification parameterstcl_initmemoryTcl_InitMemory 3 3 1448008821 B - - gz Validated memory allocation interfacelongname- 3x 3 1720626759 B - - gz curses environment query routinesfcconfigbuildfontsFcConfigBuildFonts 3 3 1520307172 A - - gz Build font databasedatetime::timezone::local::unixDateTime::TimeZone::Local::Unix 3pm 3 1565315819 A - - gz Determine the local system's time zone on UnixxkballocgeomdoodadsXkbAllocGeomDoodads 3 3 1710950785 A - - gz Allocate doodads that are global to a keyboard geometryatq- 1 1 1653075403 B - - gz queue, examine or delete jobs for later executionhostid- 1 1 1605565487 A - - gz print the numeric identifier for the current hostctanl 3p- 3p 3p 1402354214 B - - gz complex tangent functionsshmget 3p- 3p 3p 1402354218 A - - gz get an XSI shared memory segmentsigvec- 3 3 1402354212 A - - gz BSD signal APIwcslen wcslen 3 wcslen 3ptcl_setbooleanobjTcl_SetBooleanObj 3 3 1448008821 B - - gz store/retrieve boolean value in a Tcl_Objxcb_glx_get_materialfv_data_end- 3 3 1540917640 B - - gz chroot 2- 2 2 1402354204 A - - gz change root directoryssl_use_privatekey_fileSSL_use_PrivateKey_file 3ssl 3 1721417624 B - - gz load certificate and key datalwres_buffer_putuint32- 3 3 1725373371 B - - gz lightweight resolver buffer managementxmbreseticXmbResetIC 3 3 1710950786 A - - gz reset the state of an input contextxcb_xvmc_list_subpicture_types_types_iterator- 3 3 1540917640 B - - gz tcl_convertelementTcl_ConvertElement 3 3 1448008822 B - - gz manipulate Tcl listsquotactl- 2 2 1402354205 A - - gz manipulate disk quotasfcobjectsetaddFcObjectSetAdd 3 3 1520307172 A - - gz Add to an object setuse_tioctl- 3x 3 1720626759 B - - gz miscellaneous curses utility routinesgetpwuid 3p- 3p 3p 1402354215 A - - gz search user database for a user IDlog1pl log1pl 3 log1pl 3phtonl htonl 3 htonl 3pcreat creat 2 creat 3p / #0xnCGS(Nif!=xcb_!Wd=md5_ GݝI=pvsfExcb_IwcsnI=sigp .B=sortn=tk_f VxtgeJyה=pam_j <ɂ=xtma CposiKTreso;LFttynL <sethL 1k*=utimwho\M=getoQ  2ssl_M]Cי=xcb_ #f=icon=cryp $Vbi=xcb_F!0Ar=getw!5xcb_NϏ=xml:!Otc-c(O/,=h_er:" 1=gettu" ,remqDxcb_bbuf_ IH=make" {=date"3z=cpan #QI=eulb#`=unknGU=newuO Bperl7w=stri'kF=ssl_ۀbe_=pam_S.Ũi=euar6swscTCmq_s ;7=waddց b@=poweE @=csin{=date3N=euar @glus/ 0w=selaQL!=xcb_uV=bsea 9getpoPEs=name'Ikill'sg_sKgd=tget ;=dateƄ[=tcl_;]a;e=scal=xwcdƅS;kd=xkbf,?trunm B2r=xcb_{0?)=xcb_Ɔ=xcb_ asctw Oroot @tcl_rec_g`euar@fileqMkx=serv. B=xcb_}\=frex Yexpo C+=is_n  4nearo>F=attrL F =matc=d2i_.rxcb_r.xtauHcrypF-=fput4m=findʉD =stdo /@=yumM4=xmbuLextuUH=innsKaio_V I=xcb_<S=mkstt 9D=getdT4=dbusCdateZ5utimD{7=datep3gamm7<selaz ?dovePxcb_0=gran C/L=iswp V=fcdi)Jwinf<tƴ=feof B=x509 vH=wcwi/ Hl=getn8 K=scsiȎ MA5k=fput5=cms_dT=tc-f8#:=xkbf>@sd9=putpЏzs =getr G]=tlsvߐxqߞ=lddm<k=perlRȰ=asin,s;=csumB!=www:hMS=cp 1Ē5=posiTa =menun/=chatH=lwreғF =xget._c=iso_ ^k h=expo=virt H3=busiqb,W=tcl_X=putcT3wI=isgr 5]=xkbkіyU=fsee[j=hosts>ƪ=long AopenuTtiff<getpO `=fmax ZN=xcb_m"F4=xcb_=xcb_i*=usle > :=tiffaf=nanoۙ 0_=sgdiaunknown- n n 1448008824 A - - gz Handle attempts to use non-existent commandsnewuidmap- 1 1 1565319053 A - - gz set the uid mapping of a user namespacestringprep_check_version- 3 3 1448125246 A - - gz API functionssl_set_verify_resultSSL_set_verify_result 3ssl 3 1699892224 A - - gz override result of peer certificate verificationpam_sss- 8 8 1706198158 A - - gz PAM module for SSSDeuare-accountaliaslist- 1 1 1484780705 A - - gz List your account's aliaseswadd_wchnstr- 3x 3 1720626759 B - - gz add an array of complex characters (and attributes) to a curses windowpoweroff- 8 8 1711457788 B - - gz Halt, power-off or reboot the machinecsinf csinf 3 csinf 3pdatetime::locale::mn_cnDateTime::Locale::mn_CN 3pm 3 1402390634 A - - gz euare-instanceprofilelistbypath- 1 1 1484780705 A - - gz List your account's instance profilesselabel_digest- 3 3 1585710994 A - - gz Return digest of specfiles and list of files usedxcb_glx_gen_lists_unchecked- 3 3 1540917640 B - - gz bsearch 3p- 3p 3p 1402354214 A - - gz binary search a sorted tablenamed-checkzone- 8 8 1726680962 A - - gz zone file validity checking or converting tooltgetstr_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensiondatetime::timezone::localDateTime::TimeZone::Local 3pm 3 1565315819 A - - gz Determine the local system's time zonetcl_getchannelmodeTcl_GetChannelMode 3 3 1448008821 B - - gz procedures for creating and manipulating channelsscalbn scalbn 3 scalbn 3pxwcdrawimagestringXwcDrawImageString 3 3 1710950786 B - - gz draw image text using a single font setxkbfreegeomrowsXkbFreeGeomRows 3 3 1710950785 A - - gz Free rows in a sectionxcb_selinux_get_property_data_context_unchecked- 3 3 1540917640 B - - gz xcb_glx_is_direct- 3 3 1540917640 A - - gz xcb_glx_query_extensions_string- 3 3 1540917640 A - - gz servervendorServerVendor 3 3 1710950785 B - - gz Display macros and functionsxcb_create_cursor- 3 3 1540917640 A - - gz frexpl 3p- 3p 3p 1402354215 B - - gz extract mantissa and exponent from a double precision numberis_nodelay- 3x 3 1720626759 B - - gz curses window propertiesattributes- 3pm 3 1698237678 A - - gz get/set subroutine or variable attributesmatchpathcon_init- 3 3 1585710994 B - - gz get the default SELinux security context for the specified path from the file contexts configurationd2i_ecprivate_keyd2i_ECPrivate_key 3ssl 3 1721417624 B - - gz Encode and decode functions for saving and reading EC_KEY structuresfputc fputc 3 fputc 3pfind 1- 1 1 1540917774 A - t gz search for files in a directory hierarchystdout 3- 3 3 1402354212 B - - gz standard I/O streamsyum- 8 8 1601571824 A - - - Yellowdog Updater ModifiedxmbufgetwindowattributesXmbufGetWindowAttributes 3 3 1448003986 B - - gz X multibuffering functionsinnstr- 3x 3 1720626759 B - - gz get a string of characters from a curses windowxcb_xv_query_port_attributes- 3 3 1540917640 A - - gz mkstemps- 3 3 1402354211 B - - gz create a unique temporary filegetdirentries- 3 3 1402354209 A - - gz get directory entries in a file system-independent formatdbus-cleanup-sockets- 1 1 1601481284 A - - gz clean up leftover sockets in a directorydatetime::locale::es_ecDateTime::Locale::es_EC 3pm 3 1402390639 A - - gz grantpt 3- 3 3 1402354210 A - - gz grant access to the slave pseudoterminaliswprint iswprint 3 iswprint 3pfcdircacheunlinkFcDirCacheUnlink 3 3 1520307172 A - - gz Remove all caches related to dirfeof feof 3 feof 3px509_store_ctx_get_ex_new_indexX509_STORE_CTX_get_ex_new_index 3ssl 3 1721417624 A - - gz add application specific data to X509_STORE_CTX structureswcwidth 3- 3 3 1402354213 A - - gz determine columns needed for a wide charactergetnetbyname_r- 3 3 1402354209 B - - gz get network entry (reentrant)scsi_satl- 8 8 1585715378 A - - gz check SCSI to ATA Translation (SAT) device supportfputwc_unlocked- 3 3 1402354209 B - - gz nonlocking stdio functionscms_signerinfo_cert_cmpCMS_SignerInfo_cert_cmp 3ssl 3 1721417624 B - - gz CMS signedData signer functions.putpmsg putpmsg 2 putpmsg 3ptc-fw- 8 8 1601484048 A - - gz fwmark traffic control filterxkbfreegeometryXkbFreeGeometry 3 3 1710950785 A - - gz Free an entire geometrygetresuid- 2 2 1402354205 A - - gz get real, effective and saved user/group IDstlsv1_1_server_methodTLSv1_1_server_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionsldd- 1 1 1402354203 A - - gz print shared library dependenciesperlrebackslash- 1 1 1698237667 A - - gz Perl Regular Expression Backslash Sequences and Escapesasin 3- 3 3 1402354207 A - - gz arc sine functioncsum- 8 8 1601484048 C tc-csum - gz www::mechanizeWWW::Mechanize 3pm 3 1391076350 A - - gz Handy web browsing in a Perl objectcp 1- 1 1 1605565487 A - - gz copy files and directoriesposix_trace_attr_setlogsize- 3p 3p 1402354217 B - - gz retrieve and set trace stream size attributes (TRACING)menu menu 3x menu nchattr- 1 1 1711459141 A - - gz change file attributes on a Linux file systemlwres_gethostbyaddr_r- 3 3 1725373371 B - - gz lightweight resolver get network host entryxgeteventdataXGetEventData 3 3 1710950786 A - - gz retrieve and free additional event data through cookies.iso_8859_8- 7 7 1402354220 B - t gz ISO 8859-8 character set encoded in octal, decimal, and hexadecimalexport export 1p export 1virt-what- 1 1 1630421255 A - - gz detect if we are running in a virtual machinebusiness::isbn10Business::ISBN10 3pm 3 1402381485 A - - gz work with 10 digit International Standard Book Numberstcl_unichartoutfdstringTcl_UniCharToUtfDString 3 3 1448008823 B - - gz routines for manipulating UTF-8 stringsputc 3p- 3p 3p 1402354217 A - - gz put a byte on a streamisgreater 3p- 3p 3p 1402354216 A - - gz test if x greater than yxkbkeynumactionsXkbKeyNumActions 3 3 1710950785 A - - gz Computes the number of actions associated with the key corresponding to keycodefseek fseek 3 fseek 3phosts_access 5- 5 5 1533764322 A - - gz format of host access control fileslongjmp 3- 3 3 1402354212 A - - gz nonlocal jump to a saved stack contextfmax 3p- 3p 3p 1402354215 A - - gz determine maximum numeric value of two floating-point numbersxcb_big_requests_enable_unchecked- 3 3 1540917640 B - - gz xcb_glx_get_booleanv_reply- 3 3 1540917640 B - - gz xcb_sync_set_priority_checked- 3 3 1540917640 B - - gz usleep 3p- 3p 3p 1402354219 A - - gz suspend execution for an intervaltiffreadencodedtileTIFFReadEncodedTile 3tiff 3 1729525165 A - - gz read and decode a tile of data from an open TIFF filenanosleep 2- 2 2 1402354205 A - - gz high-resolution sleepmd5_updateMD5_Update 3ssl 3 1721417624 B - - gz MD2, MD4, and MD5 hash functionsxfs- 5 5 1601488312 A - - gz layout, mount options, and supported file attributes for the XFS filesystemxtnoticesignalXtNoticeSignal 3 3 1501646833 B - - gz register and remove a signal sourcetcl_sleepTcl_Sleep 3 3 1448008822 A - - gz delay execution for a given number of millisecondsscalblnf 3- 3 3 1402354212 B - - gz multiply floating-point number by integral power of radixxgrabkeyXGrabKey 3 3 1710950786 A - - gz grab keyboard keysbn_mod_wordBN_mod_word 3ssl 3 1699892205 A - - gz arithmetic functions on BIGNUMs with integersgit-var- 1 1 1722330781 A - - gz Show a Git logical variablexcb_glx_get_pixel_mapuiv_data_length- 3 3 1540917640 B - - gz xcb_input_xi_passive_grab_device- 3 3 1540917640 A - - gz xtgetclassextensionXtGetClassExtension 3 3 1501646833 A - - gz locate a class extension recordxcb_randr_set_screen_size- 3 3 1540917640 A - - gz systemd-tmpfiles-setup.service- 8 8 1711457788 B - - gz Creates, deletes and cleans up volatile and temporary files and directoriescacosf 3p- 3p 3p 1402354214 B - - gz complex arc cosine functionsbiosdecode- 8 8 1615908358 A - - gz BIOS information decodermatchpathcon 3- 3 3 1585710994 A - - gz get the default SELinux security context for the specified path from the file contexts configurationx509 1ssl- 1ssl 1 1699892202 A - - gz Certificate display and signing utilityssl_set_info_callbackSSL_set_info_callback 3ssl 3 1721417624 B - - gz handle information callback for SSL connectionscprojf cprojf 3 cprojf 3pdoveadm-move- 1 1 1724195936 A - - gz Move messages matching the given search query into another mailboxkey_secretkey_is_set- 3 3 1402354210 B - - gz interfaces to rpc keyserver daemonbio_s_nullBIO_s_null 3ssl 3 1699892204 A - - gz null data sinktruncl 3- 3 3 1402354213 B - - gz round to integer, toward zerogit-prune- 1 1 1722330780 A - - gz Prune all unreachable objects from the object databasexcb_xfixes_get_cursor_image_cursor_image_end- 3 3 1540917640 B - - gz is_scrollok- 3x 3 1720626759 B - - gz curses window propertiespos_menu_cursor- 3x 3 1720626759 B - - gz position a menu's cursorhalfdelay- 3x 3 1720626759 B - - gz curses input optionsreaddir 3- 3 3 1402354211 A - - gz read a directoryxwithdrawwindowXWithdrawWindow 3 3 1710950786 B - - gz manipulate top-level windowsxcb_xfixes_intersect_region- 3 3 1540917640 A - - gz xcb_render_free_glyph_set_checked- 3 3 1540917640 B - - gz gvim- 1 1 1720542354 B - - gz Vi IMproved, a programmers text editorform_field_opts- 3x 3 1720626759 A - - gz set and get field optionsshm_unlink 3p- 3p 3p 1402354218 A - - gz remove a shared memory object (REALTIME)ssl_ctx_set_modeSSL_CTX_set_mode 3ssl 3 1721417624 A - - gz manipulate SSL engine modesigwaitinfo 3p- 3p 3p 1402354218 A - - gz wait for queued signals (REALTIME)tcl_deletenamespaceTcl_DeleteNamespace 3 3 1448008822 B - - gz manipulate namespacesssl_add1_chain_certSSL_add1_chain_cert 3ssl 3 1721417624 B - - gz extra chain certificate processingfccharsetcountFcCharSetCount 3 3 1520307172 A - - gz Count entries in a charsetsg_rmsn- 8 8 1585715378 A - - gz send SCSI READ MEDIA SERIAL NUMBER commandyum-complete-transaction- 8 8 1589300861 A - - gz attempt to complete failed or aborted Yum transactionsdatetime::locale::ln_cdDateTime::Locale::ln_CD 3pm 3 1402390642 A - - gz euare-assumerole- 1 1 1484780705 A - - gz Assume an IAM rolegrep 1p- 1p 1p 1402354204 A - - gz search a file for a patternssl_ctx_add0_chain_certSSL_CTX_add0_chain_cert 3ssl 3 1721417624 B - - gz extra chain certificate processingoO 3pm 3 1698237676 A - - gz Generic interface to Perl Compiler backendsdaylight daylight 3 daylight 3pnet::serventNet::servent 3pm 3 1698237676 A - - gz by-name interface to Perl's built-in getserv*() functionsceiling_panel- 3x 3 1720626759 B - - gz curses screen-pointer extensionupUP 3x 3 1720626759 B - - gz direct curses interface to the terminfo capability databasedatetime::locale::az_latnDateTime::Locale::az_Latn 3pm 3 1402390639 A - - gz strcmp strcmp 3 strcmp 3pnofilter- 3x 3 1720626759 B - - gz miscellaneous curses utility routinesxcb_screensaver_select_input_checked- 3 3 1540917640 B - - gz unimplemented- 2 2 1402354206 A - - gz unimplemented system callsdatetime::locale::en_umDateTime::Locale::en_UM 3pm 3 1402390640 A - - gz sg_get_config- 8 8 1585715378 A - - gz send SCSI GET CONFIGURATION command (MMC-4 +)ssl_ctx_set_tlsext_status_argSSL_CTX_set_tlsext_status_arg 3ssl 3 1721417624 B - - gz OCSP Certificate Status Request functionsmvdelch- 3x 3 1720626759 B - - gz delete character under the cursor in a curses windowcurses::ui::radiobuttonboxCurses::UI::Radiobuttonbox 3pm 3 1454728582 A - - gz Create and manipulate radiobuttonbox widgetsps 1- 1 1 1601486472 A - t gz report a snapshot of the current processes.datetime::locale::ps_afDateTime::Locale::ps_AF 3pm 3 1402390638 A - - gz  Z@~6k>xcb_.5o>pam_I =fR>pipe61 >tap:G>pwd 0Bnw>lrinx 3DZ>contKYP>ssl_Z>cproɥY>dnss8>xcb_,;3>enduc 3$>syst J>dove ]6>pcreJ">5>dsa_K>temp Ym>fcna}L>mvwg R!>fcpa=F>tcl_WU[ >curs 1s>read>@t>va_e 2tcl_TDcpowT!&>fccoJgY>euari.>xset =R#>isgr TM>erfLversV^sche W4^y>xcb_^',>dh_gY>warn33>cryp@[H>atoi ?g>fput I2>rsa_C?>hcref 0}>xcb_!X>tcl_Qreco=ZM>cryp<Opem_Z;sigs3[ ?>dtlsylvmc~[5>secu8J?>llri `>fege F>xcb_%!L7>xkbsaw>cbrtF>xrmcHcQ>tcl_|O>hdgP4pam_] 0;->lgamxcb_^$uaN>expo7P PH>magiPe߷>doveQMF>perlbQ Xi>nextQ xcb_#xcb_>evp_kA?>man Q9bool Ya >pure1RC!>evp_|RS >yamlR N>sg3_:S K09>evp_S7a>xcb_S1>gethT"{>pvalJT2>ec_kTtm>strx U 2xcb_(>iconJU8{1>dateU3/>net:U Jk>xcb_+V(s>xcb_nV^p>diffV5`{&>y0fV>(%>loadW D>conffW.>cursW J>bordWP>ssl_/X^pH>tcl_XM >longY =>fccoHY? !>dateY iav>xkba#Zd>atqZLta>hostZL-c>ctan>[ 6t>shmg}[ =oV>sigv[) >wcsl[T>tcl_\T"k>xcb_u\ >chro\ 0H}>ssl_\QE >lwreR]A>xmbr] G>xcb_].$>tcl_E^@c>quot^ 1Den>fcob^<>use__ AY>getpi_ ?5;>xfsfFe>xtnojKgit- ^tempLYarch PcsinO>tcl_Ġ Ufile{*>scal# Textuy&dmoduWtcl_wOH>log1_[>xgra 4lwre$Q3z>>bn_m Ud!o>git- 6&>hton_٢$>xcb_^%io::QΧS>xcb_!xcb_+m4 1:ؖ>xtgeڢL,>xcb_:>systofmsgc .pH:>caco 9k_>bios7 3P >slabMGZP>matcuu9>bio_ 5T>x509 E>trun 8u=>key_N=Xv>xdr_ L>ssl_Ra2$Dt?git-! QGE?xcb_|-h?is_sħ 4?pos_4?perlExcb_ #w?read +8;?crea_?xwitEL?xcb_ s6x?xcb_C"?0?gvimA#?formƩ5г?shm_ E?ssl_^G?sigw?(?tcl_BN?ssl_ZRƽ?fcchB3#?mbst R!c?xfs_{ AB?pod:a:s?xkbg>F?perl 4 ?xkbld?tcl_F{?date3b?tiff) P?grubKD?tcdr <endfF /fileF Knran0Gui_dNGB?vpdd( 0?xcb_b?fccoG?unsh N51?awk ME%@?asn1Jw?newgx^?gete ,\?xtadItc-mJ Kdsa_GK B]\V?xcb_ key. LM" 2?xml-W %?test[.|?pod:4o?dbm_I /?xtapJuګ?tcl_Npo?fcnaAHinetM AccosLNucd?iopl5bindN4b?nolo R?bn_n9<bn_m8O?dateO3?tap:|bi?ecdsT="?xcb_^:?xcb_^^Q?exp26?dbix Ugit-Q+t ?fnmav ;?xcms 7timeO 2?serv 9\;?sha5? Bk?xcb_-tzsePS @i?atol9asinS.lwreS=Z2?blki@ I ?d2i_Sp?erfl,޻?dpri*5ߋ`?conjg:odeU Ze?add_ bB?sha1k?term=tcl_>V Qtcl_V ^?echoe1Zr?asin >xcb_W?date0$?expm*?x86_EB L?ssl_%W1?xcb_)?tap:^`koopY<?xcb_-,+?uuid%Oř"?xsety|B?log2?xcb_.?xcb_e2X?mkfi [+?sha1 ={?htol_X'3e?xcb_#P?xcb_4J2?wait+FQzZ?grouw Fj!?secuDmr-?tcl_"Y ?date8C?getn,n?intr! 0y?tap:[XR?xsetHW?xcb_& }?bio_]=`?ui_gD M?cloc 3%?tcp.M]ׄ?xtpo-g?halfH 0lrintl 3p- 3p 3p 1402354216 B - - gz round to nearest integer value using current rounding directionmvwgetch- 3x 3 1720626759 B - - gz get (or push back) characters from curses terminal keyboardcpu_and_sCPU_AND_S 3 3 1402354206 B - - gz macros for manipulating CPU setsxcb_xf86dri_get_client_driver_name_client_driver_name_length- 3 3 1540917640 B - - gz systemd.directives- 7 7 1711457788 A - - gz Index of configuration directivesfminl 3p- 3p 3p 1402354215 B - - gz determine minimum numeric value of two floating-point numbersmbstowcs 3p- 3p 3p 1402354216 A - - gz convert a character string to a wide-character stringxfs_quota- 8 8 1601488312 A - - gz manage use of quota on XFS filesystemspod::simple::htmlbatchPod::Simple::HTMLBatch 3pm 3 1402365606 A - - gz convert several Pod files to several HTML filesxkbgetkeyactionsXkbGetKeyActions 3 3 1710950785 A - - gz Update the actions (the key_acts array) for a subset of the keys in a keyboard descriptionperlfilter- 3pm 3 1402353952 C Filter::Util::perlfilter - gz xkblockmodifiersXkbLockModifiers 3 3 1710950785 A - t gz Locks and unlocks any of the eight real keyboard modifierstcl_setpanicprocTcl_SetPanicProc 3 3 1448008822 B - - gz report fatal error and abortdatetime::locale::ha_neDateTime::Locale::ha_NE 3pm 3 1402390638 A - - gz tiffflushTIFFFlush 3tiff 3 1729525165 A - - gz flush pending writes to an open TIFF filegrub2-script-check- 1 1 1722985065 A - - gz Check GRUB configuration file for syntax errors.tcdrain 3p- 3p 3p 1402354218 A - - gz wait for transmission of outputvpddecode- 8 8 1615908358 A - - gz VPD structure decoderxcb_x_print_print_start_job- 3 3 1540917640 A - - gz fcconfigparseandloadFcConfigParseAndLoad 3 3 1520307172 A - - gz load a configuration fileunshare 2- 2 2 1402354206 A - - gz disassociate parts of the process execution contextawk 1p- 1p 1p 1402354203 A - t gz pattern scanning and processing languageasn1_string_dataASN1_STRING_data 3ssl 3 1721417624 B - - gz ASN1_STRING utility functionsfcislowerFcIsLower 3 3 1520307172 A - - gz check for lower case ASCII characterreadv 3p- 3p 3p 1402354217 A - - gz read a vectornewgrp newgrp 1p newgrp 1geteuid 2- 2 2 1402354204 B - - gz get user identityxtaddcallbackXtAddCallback 3 3 1501646833 A - - gz add and remove callback proceduresxcb_glx_get_tex_geniv_reply- 3 3 1540917640 B - - gz xml-config- 1 1 1708355032 C xml2-config - gz test::builder::io::scalarTest::Builder::IO::Scalar 3pm 3 1402359208 A - - gz A copy of IO::Scalar for Test::Builderpod::pom::node::verbatimPod::POM::Node::Verbatim 3pm 3 1402385888 A - - gz dbm_store- 3p 3p 1402354214 B - - gz database functionsxtappcreateshellXtAppCreateShell 3 3 1501646833 A - - gz create top-level widget instancetcl_getstackedchannelTcl_GetStackedChannel 3 3 1448008821 A - - gz manipulate stacked I/O channelsfcnameregisterobjecttypesFcNameRegisterObjectTypes 3 3 1520307172 A - - gz Register object typesiopl- 2 2 1402354205 A - - gz change I/O privilege levelnologin 5- 5 5 1402354219 A - - gz prevent unprivileged users from logging into the systembn_newBN_new 3ssl 3 1721417624 A - - gz allocate and free BIGNUMstap::parser::iterator::streamTAP::Parser::Iterator::Stream 3pm 3 1439389327 A - - gz Iterator for filehandle-based TAP sourcesecdsa_sig_newECDSA_SIG_new 3ssl 3 1721417624 B - - gz Elliptic Curve Digital Signature Algorithmxcb_sync_set_counter_checked- 3 3 1540917640 B - - gz xcb_test_get_version_reply- 3 3 1540917640 B - - gz exp2l 3- 3 3 1402354208 B - - gz base-2 exponential functiondbix::simple::examplesDBIx::Simple::Examples 3pm 3 1402379379 A - - gz Examples of how to use DBIx::Simplefnmatch 3p- 3p 3p 1402354215 A - - gz match a filename or a pathnamexcmscolorXcmsColor 3 3 1710950786 A - - gz Xcms color structureservices- 5 5 1402354219 A - - gz Internet network services listsha512sum- 1 1 1605565487 A - - gz compute and check SHA512 message digestxcb_randr_get_screen_resources_current_crtcs- 3 3 1540917640 B - - gz sha1 SHA1 3ssl sha1 1sslatol 3- 3 3 1402354207 B - - gz convert a string to an integerblkiomon- 8 8 1565305324 A - - gz monitor block device I/O based o blktrace datad2i_x509_req_biod2i_X509_REQ_bio 3ssl 3 1721417624 B - - gz PKCS#10 certificate request functions.erfl 3p- 3p 3p 1402354215 B - - gz error functionsdprintf- 3 3 1402354213 A - - gz print to a file descriptorconj 3- 3 3 1402354208 A - - gz calculate the complex conjugateadd_wchnstr- 3x 3 1720626759 B - - gz add an array of complex characters (and attributes) to a curses windowterm::ui::historyTerm::UI::History 3pm 3 1402373836 A - - gz history functionecho 1- 1 1 1605565487 A - - gz display a line of textasinhf 3p- 3p 3p 1402354214 B - - gz inverse hyperbolic sine functionsdatetime::locale::srDateTime::Locale::sr 3pm 3 1402390643 A - - gz expm1l expm1l 3 expm1l 3px86_energy_perf_policy- 8 8 1731045640 A - - gz read or write MSR_IA32_ENERGY_PERF_BIASssl_get_secure_renegotiation_supportSSL_get_secure_renegotiation_support 3ssl 3 1721417624 B - - gz manipulate SSL optionsxcb_xf86dri_get_drawable_info_clip_rects- 3 3 1540917640 B - - gz tap::parser::iterator::processTAP::Parser::Iterator::Process 3pm 3 1439389327 A - - gz Iterator for process-based TAP sourcesxcb_shape_get_rectangles_rectangles_iterator- 3 3 1540917640 B - - gz uuid- 3 3 1612283497 A - - gz DCE compatible Universally Unique Identifier libraryxsetwmnormalhintsXSetWMNormalHints 3 3 1710950785 B - t gz allocate size hints structure and set or read a window's WM_NORMAL_HINTS propertylog2 log2 3 log2 3pxcb_xvmc_list_surface_types_surfaces_iterator- 3 3 1540917640 B - - gz xcb_xf86dri_get_device_info_device_private_length- 3 3 1540917640 B - - gz mkfifoat- 3 3 1402354211 A - - gz make a FIFO (named pipe) relative to a directory file descriptorsha1_updateSHA1_Update 3ssl 3 1721417624 B - - gz Secure Hash Algorithmhtole32- 3 3 1402354210 B - - gz convert values between host and big-/little-endian byte orderxcb_input_get_device_motion_events- 3 3 1540917640 A - - gz xcb_glx_get_floatv- 3 3 1540917640 A - - gz wait4- 2 2 1402354206 A - - gz wait for process to change state, BSD stylegroup.conf- 5 5 1585713589 A - - gz configuration file for the pam_group modulesecurity_deny_unknown- 3 3 1585710994 B - - gz get or set the enforcing state of SELinuxtcl_fsopenfilechannelTcl_FSOpenFileChannel 3 3 1448008822 B - - gz procedures to interact with any filesystemdatetime::locale::ha_arab_ngDateTime::Locale::ha_Arab_NG 3pm 3 1402390636 A - - gz getnetbyname 3- 3 3 1402354209 B - - gz get network entryintrflush- 3x 3 1720626759 B - - gz curses input optionstap::parser::resultTAP::Parser::Result 3pm 3 1439389327 A - - gz Base class for TAP::Parser output objectsxsetwindowborderpixmapXSetWindowBorderPixmap 3 3 1710950786 A - - gz change window attributesxcb_xkb_set_named_indicator- 3 3 1540917640 A - - gz bio_set_conn_hostnameBIO_set_conn_hostname 3ssl 3 1721417624 B - - gz connect BIOui_get_default_methodUI_get_default_method 3ssl 3 1721417624 B - - gz New User Interfaceclock_settime 2- 2 2 1402354204 B - - gz clock and time functionstcp.h- 0p 0p 1402354203 A - - gz definitions for the Internet Transmission Control Protocol (TCP)xtpopupXtPopup 3 3 1501646833 A - - gz map a pop-upperlref- 1 1 1698237667 A - - gz Perl references and nested data structurespcre32_fullinfo- 3 3 1573510868 B - - gz Perl-compatible regular expressionsxcb_x_print_print_query_screens_roots- 3 3 1540917640 B - - gz datetime::locale::es_usDateTime::Locale::es_US 3pm 3 1402390639 A - - gz exit exit 3 exit n exit 2 exit 1p exit 1 exit 3pputgrent- 3 3 1402354211 A - - gz write a group database entry to a filefcpatternequalFcPatternEqual 3 3 1520307172 A - - gz Compare patternsdb_fileDB_File 3pm 3 1425618020 A - - gz Perl5 access to Berkeley DB version 1.xxcb_list_fonts_with_info_reply- 3 3 1540917640 B - - gz get matching font names and informationsimple- 8 8 1601484048 C tc-simple - gz xcb_get_keyboard_control_reply- 3 3 1540917640 B - - gz tcl_initcustomhashtableTcl_InitCustomHashTable 3 3 1448008822 B - - gz procedures to manage hash tablesxcb_xfixes_fetch_region_rectangles_iterator- 3 3 1540917640 B - - gz posix_fadvise 2- 2 2 1402354205 A - - gz predeclare an access pattern for file dataround 3p- 3p 3p 1402354218 A - - gz round to the nearest integer value in a floating-point formatfputwc fputwc 3 fputwc 3pxcb_dri2_swap_interval_checked- 3 3 1540917640 B - - gz xcb_glx_get_pixel_mapusv_data- 3 3 1540917640 B - - gz semanage-ibpkey- 8 8 1585713889 A - - gz SELinux Policy Management ibpkey mapping toolcurs_trace- 3x 3 1715932338 A - - gz curses debugging routinesxdr_enum- 3 3 1402354213 B - - gz library routines for external data representationvars- 3pm 3 1698237678 A - - gz Perl pragma to predeclare global variable names (obsolete)define_key- 3x 3 1715932339 A - - gz define a keycodelh_delete- 3ssl 3 1721417624 B - - gz dynamic hash tabletifflastdirectoryTIFFLastDirectory 3tiff 3 1729525165 C TIFFquery - gz clock n- n n 1448008823 A - - gz Obtain and manipulate dates and timesencoding 3pm- 3pm 3 1402368577 A - - gz allows you to write your script in non-ascii or non-utf8inotify_init- 2 2 1402354205 A - - gz initialize an inotify instancexcb_sync_initialize_unchecked- 3 3 1540917640 B - - gz bn_mul_high- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionsxcb_glx_get_histogram_parameterfv_data_end- 3 3 1540917640 B - - gz fcstrstrignorecaseFcStrStrIgnoreCase 3 3 1520307172 A - - gz locate UTF-8 substring ignoring ASCII casexkbgetdeviceledinfoXkbGetDeviceLedInfo 3 3 1710950785 A - - gz Query the indicator names, maps, and state associated with an LED feedback of an input extension devicedatetime::locale::uz_latnDateTime::Locale::uz_Latn 3pm 3 1402390638 A - - gz clog10l- 3 3 1402354208 B - - gz base-10 logarithm of a complex numberinfocmp- 1m 1 1715932339 A - t gz compare or print out terminfo descriptionsnohup 1- 1 1 1605565487 A - - gz run a command immune to hangups, with output to a non-ttypthread_cancel 3p- 3p 3p 1402354217 A - - gz cancel execution of a threadgetchar_unlocked 3p- 3p 3p 1402354217 A - - gz stdio with explicit client lockingtcl_appendobjtoerrorinfoTcl_AppendObjToErrorInfo 3 3 1448008821 B - - gz retrieve or record information about errors and other return optionsfstat 2- 2 2 1402354204 B - t gz get file statusmemrchr- 3 3 1402354211 B - - gz scan memory for a characterstrtoll 3- 3 3 1402354212 B - - gz convert a string to a long integerfile_contexts- 5 5 1585710994 B - - gz userspace SELinux labeling interface and configuration file format for the file contexts backendeuare-userenablemfadevice- 1 1 1484780705 A - - gz Enable an MFA devicexcb_install_colormap_checked- 3 3 1540917640 B - - gz bn_generate_prime_exBN_generate_prime_ex 3ssl 3 1721417624 B - - gz generate primes and test for primalitysmime_write_pkcs7SMIME_write_PKCS7 3ssl 3 1699892214 A - - gz convert PKCS#7 structure to S/MIME format.tcl_channelwatchprocTcl_ChannelWatchProc 3 3 1448008821 B - - gz procedures for creating and manipulating channelsvgmerge- 8 8 1619616701 A - - gz Merge volume groupsaccton- 8 8 1501750853 A - - gz turns process accounting on or offcms_recipientinfo_set0_pkeyCMS_RecipientInfo_set0_pkey 3ssl 3 1721417624 B - - gz CMS envelopedData RecipientInfo routineserr_error_string_nERR_error_string_n 3ssl 3 1721417624 B - - gz obtain human-readable error messagepthread_rwlockattr_destroy- 3p 3p 1402354217 B - - gz destroy and initialize the read-write lock attributes objectlwres_conf_print- 3 3 1725373371 B - - gz lightweight resolver configurationgetpwnam getpwnam 3 getpwnam 3pmunmap munmap 3 munmap 2 munmap 3pxcb_selinux_get_property_use_context_unchecked- 3 3 1540917640 B - - gz nfs4_gid_to_name- 3 3 1523419630 C nfs4_uid_to_name - gz xcb_record_get_context_unchecked- 3 3 1540917640 B - - gz vlan- 8 8 1601484048 C tc-vlan - gz getrpcbynumber_r- 3 3 1402354209 B - - gz get RPC entry (reentrant)freeaddrinfo freeaddrinfo 3 freeaddrinfo 3plzmadec- 1 1 1443524256 C xzdec - gz nextafterl 3p- 3p 3p 1402354216 B - - gz next representable floating-point numberlog2f 3- 3 3 1402354210 B - - gz base-2 logarithmic functionnet::libnetfaqNet::libnetFAQ 3pm 3 1698237676 A - - gz libnet Frequently Asked Questionsxcb_xkb_get_names- 3 3 1540917640 A - - gz alloc_hugepages- 2 2 1402354204 A - - gz allocate or free huge pagestcl_appinitTcl_AppInit 3 3 1448008821 A - - gz perform application-specific initializationdgettext- 3 3 1354602538 B - - gz translate messagexcb_query_tree_children- 3 3 1540917640 B - - gz query the window treexcb_test_fake_input_checked- 3 3 1540917640 B - - gz load- n n 1448008823 A - - gz Load machine code and initialize new commandsxcb_record_unregister_clients- 3 3 1540917640 A - - gz podlint- 1 1 1402385888 A - - gz check POD for correctness using Pod::POMdatetime::locale::mtDateTime::Locale::mt 3pm 3 1402390635 A - - gz Dislocate 1- 1 1 1435097319 C dislocate - gz xrmputresourceXrmPutResource 3 3 1710950786 A - - gz store database resourcesacosh 3- 3 3 1402354207 A - - gz inverse hyperbolic cosine functionfts_children- 3 3 1402354209 B - - gz traverse a file hierarchygmtime_r 3- 3 3 1402354210 B - - gz transform date and time to broken-down time or ASCIIdatetime::locale::syr_syDateTime::Locale::syr_SY 3pm 3 1402390636 A - - gz xcb_x_print_print_get_document_data_data- 3 3 1540917640 B - - gz gethostname gethostname 2 gethostname 3pcpan::api::howtoCPAN::API::HOWTO 3pm 3 1698237384 A - - gz a recipe book for programming with CPAN.pmmode_to_security_class- 3 3 1585710994 B - - gz convert between SELinux class and permission values and string names. print_access_vector - display an access vector in human-readable form.RC4 3ssl- 3ssl 3 1721417624 B - - gz RC4 encryptionxcb_dri2_create_drawable- 3 3 1540917640 A - - gz extutils::mkbootstrapExtUtils::Mkbootstrap 3pm 3 1402365499 A - - gz make a bootstrap file for use by DynaLoaderpanel_hidden- 3x 3 1720626759 B - - gz panel stack extension for cursesui_ctrlUI_ctrl 3ssl 3 1721417624 B - - gz New User Interfacexcb_xfixes_union_region- 3 3 1540917640 A - - gz cms_get0_signerinfosCMS_get0_SignerInfos 3ssl 3 1721417624 A - - gz CMS signedData signer functions.file_contexts.homedirs- 5 5 1585710994 B - - gz userspace SELinux labeling interface and configuration file format for the file contexts backendctags- 1p 1p 1402354203 A - - gz create a tags file (DEVELOPMENT, FORTRAN)tcl_interpdeletedTcl_InterpDeleted 3 3 1448008821 B - - gz create and delete Tcl command interpretersxrmputstringresourceXrmPutStringResource 3 3 1710950786 B - - gz store database resourcestcl_errnomsgTcl_ErrnoMsg 3 3 1448008822 B - - gz manipulate errno to store and retrieve error codeswgetnstr- 3x 3 1720626759 B - - gz accept character strings from curses terminal keyboardset_form_init- 3x 3 1720626759 B - - gz set hooks for automatic invocation by applicationsget_default_type- 3 3 1585710994 B - - gz determine SELinux context(s) for user sessionsgs- 1 1 1605296035 A - - gz Ghostscript (PostScript and PDF language interpreter and previewer)xtextitem16XTextItem16 3 3 1710950786 B - - gz draw polytext text and text drawing structuresxsetwmiconnameXSetWMIconName 3 3 1710950786 A - - gz set or read a window's WM_ICON_NAME propertyx509_store_set_verify_cbX509_STORE_set_verify_cb 3ssl 3 1699892214 A - - gz set verification callbackxcb_randr_get_crtc_info_possible_end- 3 3 1540917640 B - - gz io::uncompress::baseIO::Uncompress::Base 3pm 3 1402361982 A - - gz Base Class for IO::Uncompress modulesdatetime::locale::daDateTime::Locale::da 3pm 3 1402390642 A - - gz xcb_x_print_print_start_doc_checked- 3 3 1540917640 B - - gz curses::ui::menubarCurses::UI::Menubar 3pm 3 1454728582 A - - gz Create and manipulate menubar widgetsdatetime::locale::da_dkDateTime::Locale::da_DK 3pm 3 1402390642 A - - gz xcb_xv_query_extension_reply- 3 3 1540917640 B - - gz xcb_input_set_device_button_mapping_reply- 3 3 1540917640 B - - gz tcl_getvarTcl_GetVar 3 3 1448008822 A - - gz manipulate Tcl variablesxcb_glx_get_minmax_parameteriv_data_end- 3 3 1540917640 B - - gz tcl_createobjcommandTcl_CreateObjCommand 3 3 1448008821 A - - gz implement new commands in Crsa rsa 3ssl rsa 1sslgetegid getegid 2 getegid 3pfmax 3- 3 3 1402354209 A - - gz determine maximum of two floating-point numbersinit_pair- 3x 3 1720626759 B - - gz curses color manipulation routinestcl_setensemblesubcommandlistTcl_SetEnsembleSubcommandList 3 3 1448008821 B - - gz manipulate ensemble commandsacosl acosl 3 acosl 3pbn_clear_freeBN_clear_free 3ssl 3 1721417624 B - - gz allocate and free BIGNUMscpu_set_sCPU_SET_S 3 3 1402354206 B - - gz macros for manipulating CPU setssem_close sem_close 3 sem_close 3pxqueryfontXQueryFont 3 3 1710950786 B - - gz load or unload fonts and font metric structurestap::parser::sourcehandler::executableTAP::Parser::SourceHandler::Executable 3pm 3 1439389327 A - - gz Stream output from an executable TAP sourcexcb_composite_query_version_reply- 3 3 1540917640 B - - gz tcgetpgrp 3- 3 3 1402354213 A - - gz get and set terminal foreground process grouplwres_buffer_invalidate- 3 3 1725373371 B - - gz lightweight resolver buffer managementsg_vpd- 8 8 1585715378 A - - gz fetch Vital Product Data (VPD) pages via a SCSI INQUIRY commandxcb_randr_get_provider_info_name_length- 3 3 1540917640 B - - gz set_menu_spacing- 3x 3 1720626759 B - - gz Control spacing between menu items.xcb_query_best_size_unchecked- 3 3 1540917640 B - - gz xrmparsecommandXrmParseCommand 3 3 1710950786 B - - gz initialize the Resource Manager, Resource Manager structures, and parse the command lineperldoc perldoc 3pm perldoc 1datetime::locale::to_toDateTime::Locale::to_TO 3pm 3 1402390633 A - - gz xcb_render_free_picture- 3 3 1540917640 A - - gz git-remote-ext- 1 1 1722330782 A - - gz Bridge smart transport to external command.iptunnel- 8 8 1565313023 A - - gz creates, deletes, and displays configured tunnelstc-flower- 8 8 1601484048 A - - gz flow based traffic control filterxcb_glx_are_textures_resident_data_length- 3 3 1540917640 B - - gz wctob 3- 3 3 1402354213 A - - gz try to represent a wide character as a single byteattr_set- 3x 3 1720626759 B - - gz curses character and window attribute control routinesxcb_glx_get_tex_envfv_data_end- 3 3 1540917640 B - - gz find-repos-of-install- 1 1 1589300861 A - - gz report which Yum repository a package was installed frommodule::build::platform::unixModule::Build::Platform::Unix 3pm 3 1402373049 A - - gz Builder class for Unix platformspam_prompt- 3 3 1585713595 A - - gz interface to conversation functionmprotect 3p- 3p 3p 1402354216 A - - gz set protection of memory mappingexpm1f 3- 3 3 1402354208 B - - gz exponential minus 1xcb_get_input_focus_unchecked- 3 3 1540917640 B - - gz perlopenbsd- 1 1 1698237667 A - - gz Perl version 5 on OpenBSD systemstcl_geterrnoTcl_GetErrno 3 3 1448008822 B - - gz manipulate errno to store and retrieve error codesutmpxname- 3 3 1402354213 B - - gz access utmp file entriesnextafterf 3p- 3p 3p 1402354216 B - - gz next representable floating-point numberversion::internalsversion::Internals 3pm 3 1585713786 A - - gz Perl extension for Version Objectstcl_varevalTcl_VarEval 3 3 1448008821 B - - gz execute Tcl scriptspcre16_config- 3 3 1573510868 B - - gz Perl-compatible regular expressionsglob glob 3 glob n glob 7 glob 3pxcb_xkb_extension_device_notify_event_t- 3 3 1540917640 A - - gz wcstok wcstok 3 wcstok 3pwcsncasecmp- 3 3 1402354213 A - - gz compare two fixed-size wide-character strings, ignoring caselwres_freerrset- 3 3 1725373371 C lwres_getrrsetbyname - gz xcb_randr_get_crtc_transform_pending_filter_name_end- 3 3 1540917640 B - - gz grub2-syslinux2cfg- 1 1 1722985065 A - - gz Transform a syslinux config file into a GRUB config.recv 3p- 3p 3p 1402354217 A - - gz receive a message from a connected socketwcslen 3p- 3p 3p 1402354219 A - - gz get wide-character string lengthconvert- 1 1 1731392888 A - - gz convert between image formats as well as resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more.dpkg-deb- 1 1 1642076111 A - - gz Debian package archive (.deb) manipulation toolgetcontext 3p- 3p 3p 1402354218 A - - gz get and set current user contextPxgeterrordatabasetextXGetErrorDatabaseText 3 3 1710950786 B - - gz default error handlerscloud-publish-tarball- 1 1 1410347192 A - - gz publish a cloud archivexcb_selinux_get_window_create_context_unchecked- 3 3 1540917640 B - - gz setfsgid- 2 2 1402354205 A - - gz set group identity used for file system checksdatetime::locale::as_inDateTime::Locale::as_IN 3pm 3 1402390642 A - - gz islower 3- 3 3 1402354210 B - - gz character classification routinesxcb_alloc_color_reply- 3 3 1540917640 B - - gz Allocate a colorxcb_glx_get_pixel_mapuiv_data_end- 3 3 1540917640 B - - gz xkbgetkeyexplicitcomponentsXkbGetKeyExplicitComponents 3 3 1710950785 A - t gz Obtain the explicit components (the explicit array) for a subset of the keys in a keyboard descriptiondatetime::locale::he_ilDateTime::Locale::he_IL 3pm 3 1402390640 A - - gz xcb_input_list_input_devices_infos_iterator- 3 3 1540917640 B - - gz continue n- n n 1448008823 A - - gz Skip to the next iteration of a looptime time n time 2 time 7 time 1p time 1 time 3pinstall-info- 1 1 1523408614 A - - gz update info/dir entriesflushinp- 3x 3 1720626759 B - - gz miscellaneous curses utility routinespem PEM 3ssl pem 3sslrun-with-aspell- 1 1 1402355076 A - - gz script to help use GNU Aspell as an ispell replacementpatch 1- 1 1 1571788776 A - - gz apply a diff file to an originalmknod mknod 2 mknod 1 mknod 3pfree_item- 3x 3 1720626759 B - - gz create and destroy menu itemsslk_attr_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionsefcontext_compile- 8 8 1585710994 A - - gz compile file context regular expression filesalloca- 3 3 1402354207 A - - gz allocate memory that is automatically freednet::pop3Net::POP3 3pm 3 1698237676 A - - gz Post Office Protocol 3 Client class (RFC1939)sha1 1ssl- 1ssl 1 1721417624 B - - gz message digestswc wc 1p wc 1fprintd- 1 1 1540945906 A - - gz Fingerprint management daemon, and test applicationsutmpdump- 1 1 1612283497 A - - gz dump UTMP and WTMP files in raw formatdracut.cmdline- 7 7 1605296031 A - - gz dracut kernel command line optionslynx- 1 1 1402374479 A - - gz a general purpose distributed information browser for the World Wide Webxcb_randr_query_provider_property- 3 3 1540917640 A - - gz nfsiostat-sysstat- 1 1 1697208922 A - - gz datetime::locale::eeDateTime::Locale::ee 3pm 3 1402390633 A - - gz cpan::meta::yamlCPAN::Meta::YAML 3pm 3 1402344993 A - - gz Read and write a subset of YAML for CPAN Meta filesxcb_glx_get_queryiv_arb_data- 3 3 1540917640 B - - gz xsetpointer- 1 1 1502476988 A - - gz set an X Input device as the main pointersqrtf 3p- 3p 3p 1402354218 B - - gz square root functionbn_hex2bnBN_hex2bn 3ssl 3 1721417624 B - - gz format conversionspthread_attr_setdetachstate 3p- 3p 3p 1402354217 B - - gz get and set the detachstate attributetee 1- 1 1 1605565487 A - - gz read from standard input and write to standard output and filesxttoolkitthreadinitializeXtToolkitThreadInitialize 3 3 1501646833 A - - gz initialize the toolkit for multiple threadsirb- 1 1 1352953364 A - - gz Interactive Ruby Shellclone- 2 2 1402354204 A - - gz create a child processxcb_randr_get_screen_resources_modes- 3 3 1540917640 B - - gz getpmsg getpmsg 2 getpmsg 3pgetgid getgid 2 getgid 3pselinux_raw_context_to_color- 3 3 1585710994 A - - gz Return RGB color string for an SELinux security contextclnt_destroy- 3 3 1402354208 B - - gz library routines for remote procedure callsiptables-extensions- 8 8 1601571148 A - - gz list of extensions in the standard iptables distributionnetinet/in.h- 0p 0p 1402354203 C in.h - gz readlink 3p- 3p 3p 1402354217 A - - gz read the contents of a symbolic linkxdestroyimageXDestroyImage 3 3 1710950785 B - - gz image utilitiesxcb_ungrab_server_checked- 3 3 1540917640 B - - gz xkbptractionxXkbPtrActionX 3 3 1710950785 A - t gz Returns the high_XXX and low_XXX fields of act converted to a signed intxcb_dri2_query_version_reply- 3 3 1540917640 B - - gz exp2 3- 3 3 1402354208 A - - gz base-2 exponential functionxcb_xv_set_port_attribute_checked- 3 3 1540917640 B - - gz png- 5 5 1602604336 A - - gz Portable Network Graphics (PNG) formatevp_pkey_assign_dhEVP_PKEY_assign_DH 3ssl 3 1721417624 B - - gz EVP_PKEY assignment functions.git-subtree- 1 1 1722330789 A - - gz Merge subtrees together and split repository into subtreesssl_ctx_add_server_custom_extSSL_CTX_add_server_custom_ext 3ssl 3 1721417624 B - - gz custom TLS extension handlingpem_write_x509PEM_write_X509 3ssl 3 1721417624 B - - gz PEM routinesdbilogstrip- 1 1 1402362411 A - - gz filter to normalize DBI trace logs for diff'ingdatetime::locale::xhDateTime::Locale::xh 3pm 3 1402390641 A - - gz xcb_x_print_print_get_one_attributes_unchecked- 3 3 1540917640 B - - gz xcb_dri3_query_version- 3 3 1540917640 A - - gz statvfs statvfs 3 statvfs 2 statvfs 3pbkgdset- 3x 3 1720626759 B - - gz curses window background manipulation routinesbn_to_montgomeryBN_to_montgomery 3ssl 3 1721417624 B - - gz Montgomery multiplicationswapcontext 2- 2 2 1402354206 A - - gz Swap out old context with new contextgetprotoent_r- 3 3 1402354209 A - - gz get protocol entry (reentrant)i2d_dsaparamsi2d_DSAparams 3ssl 3 1721417624 B - - gz DSA key encoding and parsing functions.sysctl 2- 2 2 1402354206 A - - gz read/write system parametersssl_get_peer_cert_chainSSL_get_peer_cert_chain 3ssl 3 1699892223 A - - gz get the X509 certificate chain of the peerpcre_compile- 3 3 1501643278 A - - gz Perl-compatible regular expressionssymlink 3p- 3p 3p 1402354218 A - - gz make a symbolic link to a filebn_ctx_newBN_CTX_new 3ssl 3 1721417624 A - - gz allocate and free BN_CTX structurestcl_dstringstartsublistTcl_DStringStartSublist 3 3 1448008821 B - - gz manipulate dynamic stringsbio_f_mdBIO_f_md 3ssl 3 1721417624 A - - gz message digest BIO filterhttp::tinyHTTP::Tiny 3pm 3 1402347209 A - - gz A small, simple, correct HTTP/1.1 clientfegetexcept- 3 3 1402354209 B - - gz floating-point rounding and exception handlingdh_get_ex_new_indexDH_get_ex_new_index 3ssl 3 1721417624 A - - gz add application specific data to DH structurescsqrtf csqrtf 3 csqrtf 3preboot reboot 8 reboot 2bio_should_writeBIO_should_write 3ssl 3 1721417624 B - - gz BIO retry functionssvc_freeargs- 3 3 1402354212 B - - gz library routines for remote procedure callsmman.h- 0p 0p 1402354203 B - - gz memory management declarationsiso_8859-11- 7 7 1402354220 A - t gz ISO 8859-11 character set encoded in octal, decimal, and hexadecimalbatch 1- 1 1 1653075403 B - - gz queue, examine or delete jobs for later executiongit-update-index- 1 1 1722330780 A - - gz Register file contents in the working tree to the indexmakecontext 3p- 3p 3p 1402354218 A - - gz manipulate user contextsinsnstr- 3x 3 1720626759 B - - gz insert string before cursor in a curses windowxcb_glx_get_query_objectuiv_arb- 3 3 1540917640 A - - gz pthread_attr_setstack 3p- 3p 3p 1402354217 B - - gz get and set stack attributesgtar- 1 1 1573511261 B - - gz manual page for tar 1.26tcl_limitsettimeTcl_LimitSetTime 3 3 1448008822 B - - gz manage and check resource limits on interpretersremquo 3- 3 3 1402354211 A - - gz remainder and part of quotientgetnetent 3p- 3p 3p 1402354218 A - - gz network database functionsftello 3p- 3p 3p 1402354215 B - - gz return a file offset in a streamunlink 3p- 3p 3p 1402354219 A - - gz remove a directory entrylwp::mediatypesLWP::MediaTypes 3pm 3 1402339501 A - - gz guess media type for a file or a URLerr_peek_last_errorERR_peek_last_error 3ssl 3 1721417624 B - - gz obtain error code and datamysql_install_db- 1 1 1697025034 A - - gz initialize MySQL data directoryrpm2cpio- 8 8 1637771608 A - - gz Extract cpio archive from RPM Package Manager (RPM) package.xreparenteventXReparentEvent 3 3 1710950786 A - - gz ReparentNotify event structuresqrtl 3p- 3p 3p 1402354218 B - - gz square root functionwdctl- 8 8 1612283497 A - - gz show hardware watchdog statusxfreeeventdataXFreeEventData 3 3 1710950786 B - - gz retrieve and free additional event data through cookies.msgrcv 2- 2 2 1402354205 A - - gz System V message queue operationsmount.glusterfs- 8 8 1649176098 A - - gz script to mount native GlusterFS volumegets n- n n 1448008823 A - - gz Read a line from a channelio_getevents- 2 2 1402354205 A - - gz read asynchronous I/O events from the completion queuecsinhl 3p- 3p 3p 1402354214 B - - gz complex hyperbolic sine functionslfind 3- 3 3 1402354210 B - - gz linear search of an arraydbi::dbd::sqlengine::developersDBI::DBD::SqlEngine::Developers 3pm 3 1402362412 A - - gz Developers documentation for DBI::DBD::SqlEnginecurses_version- 3x 3 1720626759 B - - gz miscellaneous curses extensionseuscale-describe-metric-collection-types- 1 1 1484780705 A - - gz Describe auto-scaling metrics and granularitiesbio_new_sslBIO_new_ssl 3ssl 3 1721417624 B - - gz SSL BIOpr29_4- 3 3 1448125246 A - - gz API functiontcl_exprlongTcl_ExprLong 3 3 1448008821 B - - gz evaluate an expressionxsetarcmodeXSetArcMode 3 3 1710950786 A - - gz GC convenience routinesgpg-zip- 1 1 1531487121 A - - gz Encrypt or sign files into an archivepthread_barrierattr_setpshared- 3p 3p 1402354217 B - - gz get and set the process-shared attribute of the barrier attributes object (ADVANCED REALTIME THREADS)xcb_input_get_device_control_unchecked- 3 3 1540917640 B - - gz fcpatternaddrangeFcPatternAddRange 3 3 1520307172 C FcPatternAdd-Type - gz xcb_dri2_get_buffers_buffers- 3 3 1540917640 B - - gz tc-mirred- 8 8 1601484048 A - - gz mirror/redirect actionxcb_xv_get_video- 3 3 1540917640 A - - gz kpartx- 8 8 1668612094 A - - gz Create device maps from partition tablestime::tmTime::tm 3pm 3 1698237678 A - - gz internal object used by Time::gmtime and Time::localtimepkcs7_verifyPKCS7_verify 3ssl 3 1721417624 A - - gz verify a PKCS#7 signedData structurentohl 3- 3 3 1402354211 B - - gz convert values between host and network byte orderpcre16_version- 3 3 1573510868 B - - gz Perl-compatible regular expressionslocaleconv 3- 3 3 1402354210 A - - gz get numeric formatting informationccpp_event.conf- 5 5 1601569733 B - - gz configuration file for libreport.xcb_client_message_event_t- 3 3 1540917640 A - - gz NOT YET DOCUMENTEDstringprep_4i- 3 3 1448125246 A - - gz API functionshmctl shmctl 2 shmctl 3pxraisewindowXRaiseWindow 3 3 1710950786 A - - gz change window stacking orderopendir 3- 3 3 1402354211 A - - gz open a directoryiswalpha 3p- 3p 3p 1402354216 A - - gz test for an alphabetic wide-character codewcscasecmp- 3 3 1402354213 A - - gz compare two wide-character strings, ignoring caseterm_attrs- 3x 3 1720626759 B - - gz curses environment query routinesxkbsasetscreenXkbSASetScreen 3 3 1710950785 A - t gz Sets the screenXXX field of act from sxmbtextescapementXmbTextEscapement 3 3 1710950786 A - - gz obtain the escapement of texttcl_dictobjgetTcl_DictObjGet 3 3 1448008821 B - - gz manipulate Tcl objects as dictionariesbind_textdomain_codeset- 3 3 1465650185 A - - gz set encoding of message translationsdatetime::locale::kpeDateTime::Locale::kpe 3pm 3 1402390638 A - - gz csplit 1p- 1p 1p 1402354203 A - - gz split files based on contextgpg-agent- 1 1 1531487121 A - - gz Secret key management for GnuPGxgetgeometryXGetGeometry 3 3 1710950786 B - t gz get current window attribute or geometry and current window attributes structurebn_mpi2bnBN_mpi2bn 3ssl 3 1721417624 B - - gz format conversionserror::simpleError::Simple 3pm 3 1402345188 A - - gz the simple error sub-class of Errordel_curterm- 3x 3 1720626759 B - - gz curses interfaces to terminfo databasedrand48_r- 3 3 1402354212 A - - gz generate uniformly distributed pseudo-random numbers reentrantlyevp_digestinitEVP_DigestInit 3ssl 3 1721417624 A - - gz EVP digest routinestcl_unicharisspaceTcl_UniCharIsSpace 3 3 1448008823 B - - gz routines for classification of Tcl_UniChar charactersxcmscieluvquerymaxlcXcmsCIELuvQueryMaxLC 3 3 1710950786 B - - gz obtain the CIE L*u*v* coordinatesdatetime::locale::ss_szDateTime::Locale::ss_SZ 3pm 3 1402390633 A - - gz wcscat wcscat 3 wcscat 3p6xcb_selinux_get_device_create_context_context- 3 3 1540917640 B - - gz tcl_dumpactivememoryTcl_DumpActiveMemory 3 3 1448008821 A - - gz Validated memory allocation interfacesgetmask- 2 2 1402354206 A - - gz manipulation of signal mask (obsolete)prezip-bin- 1 1 1402355076 A - - gz prefix zip delta word list compressor/decompressorabrt-install-ccpp-hook- 1 1 1601569733 A - - gz Install coredump handler.fc-validate- 1 1 1519011782 A - - gz validate font fileseuca-describe-availability-zones- 1 1 1484780705 A - - gz Display availability zones within the current regionautoheader- 1 1 1402378884 A - - gz Create a template header for configurexcb_randr_get_crtc_gamma_green- 3 3 1540917640 B - - gz tclcommandwritingTclCommandWriting 3 3 922862262 C ObjCmdWrite - gz xcb_xfixes_get_cursor_image_and_name_reply- 3 3 1540917640 B - - gz smime_write_cmsSMIME_write_CMS 3ssl 3 1699892213 A - - gz convert CMS structure to S/MIME format.pipe2- 2 2 1402354205 B - - gz create pipedbm_open- 3p 3p 1402354214 A - - gz database functionsaio_init- 3 3 1402354207 A - - gz asynchronous I/O initializationrsa_get_default_methodRSA_get_default_method 3ssl 3 1721417624 B - - gz select RSA methodmemmove 3p- 3p 3p 1402354216 A - - gz copy bytes in memory with overlapping areassigaction 3p- 3p 3p 1402354218 A - t gz examine and change a signal actionxcb_input_open_device_pad_1- 3 3 1540917640 B - - gz evp_cipher_ctx_initEVP_CIPHER_CTX_init 3ssl 3 1721417624 B - - gz EVP cipher routineslist::util::xsList::Util::XS 3pm 3 1402358219 A - - gz Indicate if List::Util was compiled with a C compilerrmdir rmdir 2 rmdir 1p rmdir 1 rmdir 3phdestroy 3p- 3p 3p 1402354215 B - - gz manage hash search tablepthread_cond_init- 3p 3p 1402354217 A - - gz destroy and initialize condition variablesxcb_input_get_device_button_mapping_map_end- 3 3 1540917640 B - - gz setup-nsssysinit- 1 1 1730826028 A - - gz Query or enable the nss-sysinit moduletolower 3- 3 3 1402354213 B - - gz convert letter to upper or lower caseutimes 2- 2 2 1402354206 B - - gz change file last access and modification timesxcb_xkb_list_components_keymaps_length- 3 3 1540917640 B - - gz tc-htb- 8 8 1601484048 A - - gz Hierarchy Token Bucketxcb_randr_get_crtc_info_outputs- 3 3 1540917640 B - - gz sg_rbuf- 8 8 1585715378 A - - gz reads data using SCSI READ BUFFER commandxkbfreegeomoverlaykeysXkbFreeGeomOverlayKeys 3 3 1710950785 A - - gz Free keys in an overlay rowxdrawrectanglesXDrawRectangles 3 3 1710950786 B - - gz draw rectangles and rectangles structurevdoformat- 8 8 1601488174 A - - gz format a VDO devicemvscanw- 3x 3 1720626759 B - - gz convert formatted input from a curses windowresize_term_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionfilter::cppFilter::cpp 3pm 3 1402353952 A - - gz cpp source filterxcb_glx_query_context_attribs- 3 3 1540917640 B - - gz tie::refhashTie::RefHash 3pm 3 1698237678 A - - gz use references as hash keyseuca-bundle-image- 1 1 1484780705 A - - gz Prepare an image for use in the cloudispunct ispunct 3 ispunct 3pxcb_input_xi_query_version- 3 3 1540917640 A - - gz datetime::locale::kpe_gnDateTime::Locale::kpe_GN 3pm 3 1402390637 A - - gz tiffswabarrayoflongTIFFSwabArrayOfLong 3tiff 3 1729525165 C TIFFswab - gz xkbgetkeysymsXkbGetKeySyms 3 3 1710950785 A - - gz Obtain the symbols for a subset of the keys in a keyboard descriptionmkfs.minix- 8 8 1612283497 A - - gz make a Minix filesystemeuimage-describe-pack- 1 1 1484780705 A - - gz ***TECH PREVIEW***wmemcmp 3p- 3p 3p 1402354219 A - - gz compare wide characters in memoryreport_event.conf- 5 5 1601569733 A - - gz configuration file for libreport.xcb_sync_destroy_counter_checked- 3 3 1540917640 B - - gz crypttab- 5 5 1711457788 A - - gz Configuration for encrypted block devicesget_nprocs- 3 3 1402354209 B - - gz get number of processorsposix_trace_set_filter- 3p 3p 1402354217 B - - gz retrieve and set the filter of an initialized trace stream (TRACING)mmap 3p- 3p 3p 1402354216 A - t gz map pages of memoryxtappnexteventXtAppNextEvent 3 3 1501646833 A - - gz query and process events and inputxcb_list_properties- 3 3 1540917640 A - - gz lwres_sethostent- 3 3 1725373371 B - - gz lightweight resolver get network host entrymd4 MD4 3ssl md4 1sslgetresuid32- 2 2 1402354205 B - - gz get real, effective and saved user/group IDsimagemagickImageMagick 1 1 1731392888 A - - gz is a free software suite for the creation, modification and display of bitmap images.mvgetn_wstr- 3x 3 1720626759 B - - gz get an array of wide characters from a curses terminal keyboardgetgrnam 3- 3 3 1402354209 A - - gz get group file entrydatetime::locale::moDateTime::Locale::mo 3pm 3 1402390643 A - - gz xutf8textescapementXutf8TextEscapement 3 3 1710950786 B - - gz obtain the escapement of textnextafterl nextafterl 3 nextafterl 3pxcb_present_notify_msc_checked- 3 3 1540917640 B - - gz keyctl_update- 3 3 1402366674 A - - gz Update a keydatetime::locale::zu_zaDateTime::Locale::zu_ZA 3pm 3 1402390644 A - - gz cms_get1_crlsCMS_get1_crls 3ssl 3 1721417624 B - - gz CMS certificate and CRL utility functionsxcb_input_xi_query_device_infos_iterator- 3 3 1540917640 B - - gz wattron- 3x 3 1720626759 B - - gz curses character and window attribute control routinesbio_set_accept_biosBIO_set_accept_bios 3ssl 3 1721417624 B - - gz accept BIOgnu_dev_makedev- 3 3 1402354210 B - - gz manage a device numberssl_ctx_set_tmp_rsa_callbackSSL_CTX_set_tmp_rsa_callback 3ssl 3 1721417624 A - - gz handle RSA keys for ephemeral key exchangexcb_get_keyboard_control- 3 3 1540917640 A - - gz meta- 3x 3 1720626759 B - - gz curses input optionsset_robust_list- 2 2 1402354205 B - - gz get/set list of robust futexesiso-8859-8- 7 7 1402354219 B - t gz ISO 8859-8 character set encoded in octal, decimal, and hexadecimalxcb_list_fonts_with_info- 3 3 1540917640 A - - gz get matching font names and informationwarning::symbols- 7stap 7 1602605484 A - - gz systemtap missing-symbols warningsscalbnl scalbnl 3 scalbnl 3pidna_to_unicode_lzlz- 3 3 1448125246 A - - gz API functionexp2l exp2l 3 exp2l 3px509_name_print_exX509_NAME_print_ex 3ssl 3 1721417624 A - - gz X509_NAME printing routines.xcb_glx_get_color_table_parameteriv_reply- 3 3 1540917640 B - - gz winch- 3x 3 1720626759 B - - gz get a character and attributes from a curses windowxcb_xinerama_get_state- 3 3 1540917640 A - - gz tgamma tgamma 3 tgamma 3pfcpatternaddftfaceFcPatternAddFTFace 3 3 1520307172 C FcPatternAdd-Type - gz mq_timedsend 2- 2 2 1402354205 B - - gz send a message to a message queuepam_timestamp- 8 8 1585713592 A - - gz Authenticate using cached successful authentication attemptseuca-attach-vpn-gateway- 1 1 1484780705 A - - gz Attach a virtual private gateway to a VPCxcb_selinux_get_selection_context_unchecked- 3 3 1540917640 B - - gz rt_sigqueueinfo- 2 2 1402354205 A - - gz queue a signal and datapthread_attr_getstackaddr 3- 3 3 1402354211 B - - gz set/get stack address attribute in thread attributes objectnfs4_name_to_uid- 3 3 1523419630 C nfs4_uid_to_name - gz look- 1 1 1612283497 A - - gz display lines beginning with a given stringregcomp 3- 3 3 1402354211 B - - gz POSIX regex functionsldiv 3p- 3p 3p 1402354216 A - - gz compute quotient and remainder of a long divisionmvcur- 3x 3 1720626759 B - - gz curses interfaces to terminfo databasepanel_userptr- 3x 3 1720626759 B - - gz panel stack extension for cursesdhclient- 8 8 1718116541 A - - gz Dynamic Host Configuration Protocol Clientevp_pkey_assign_rsaEVP_PKEY_assign_RSA 3ssl 3 1721417624 B - - gz EVP_PKEY assignment functions.xcb_render_composite_glyphs_16_checked- 3 3 1540917640 B - - gz grub-kbdcomp- 1 1 1722985065 C grub2-kbdcomp - gz getpgrp 2- 2 2 1402354206 A - - gz set/get process grouplocale::codes::language_retiredLocale::Codes::Language_Retired 3pm 3 1402383323 A - - gz retired language codes for the Locale::Codes::Language moduleputchar_unlocked 3- 3 3 1402354211 B - - gz nonlocking stdio functionsxcb_shape_rectangles_checked- 3 3 1540917640 B - - gz wdeleteln- 3x 3 1720626759 B - - gz delete and insert lines in a curses windowcurses::ui::passwordentryCurses::UI::PasswordEntry 3pm 3 1454728582 A - - gz Create and manipulate passwordentry widgetspem_read_bio_pkcs7PEM_read_bio_PKCS7 3ssl 3 1721417624 B - - gz PEM routinesip-netconf- 8 8 1601484048 A - - gz network configuration monitoringregexp- n n 1448008823 A - - gz Match a regular expression against a stringlgetfilecon- 3 3 1585710994 B - - gz get SELinux security context of a filefccharsetnextpageFcCharSetNextPage 3 3 1520307172 A - - gz Continue enumerating charset contentsasn1_object_freeASN1_OBJECT_free 3ssl 3 1699892202 A - - gz object allocation functionsxgamma- 1 1 1502476988 A - - gz Alter a monitor's gamma correction through the X servervswprintf 3- 3 3 1402354213 B - - gz formatted wide-character output conversionevp_des_edeEVP_des_ede 3ssl 3 1721417624 B - - gz EVP cipher routinesevp_des_ede_cfbEVP_des_ede_cfb 3ssl 3 1721417624 B - - gz EVP cipher routinessetgroups32- 2 2 1402354205 B - - gz get/set list of supplementary group IDsendpwent 3p- 3p 3p 1402354214 B - - gz user database functionsxcb_composite_redirect_window- 3 3 1540917640 A - - gz sched_rr_get_interval 2- 2 2 1402354205 A - - gz get the SCHED_RR interval for the named processsecuretty_types- 5 5 1585710994 A - - gz The SELinux secure tty type configuration filetgammal tgammal 3 tgammal 3ppmap_getport- 3 3 1402354211 B - - gz library routines for remote procedure callsxwctextpropertytotextlistXwcTextPropertyToTextList 3 3 1710950786 B - t gz convert text lists and text property structuresceil ceil 3 ceil 3ptimer_settime 3p- 3p 3p 1402354219 B - - gz per-process timers (REALTIME)xcmsalloccolorXcmsAllocColor 3 3 1710950786 A - - gz allocate colorstap::parser::schedulerTAP::Parser::Scheduler 3pm 3 1439389327 A - - gz Schedule tests during parallel testingxml::parser::style::objectsXML::Parser::Style::Objects 3pm 3 1402361425 A - - gz pfbtopfa- 1 1 1601482853 A - - gz Convert Postscript .pfb fonts to .pfa format using ghostscripttimerfd_gettime- 2 2 1402354206 B - - gz timers that notify via file descriptorsxcb_glx_get_polygon_stipple_data_end- 3 3 1540917640 B - - gz epoll_create1- 2 2 1402354204 B - - gz open an epoll file descriptorsln- 8 8 1402354220 A - - gz create symbolic linksprintf 1p- 1p 1p 1402354204 A - t gz write formatted outputfcatomicdestroyFcAtomicDestroy 3 3 1520307172 A - - gz destroy an FcAtomic objecttmpfiles.d- 5 5 1711457788 A - t gz Configuration for creation, deletion and cleaning of volatile and temporary filesdiv 3p- 3p 3p 1402354214 A - - gz compute the quotient and remainder of an integer divisionxcb_glx_get_clip_plane_reply- 3 3 1540917640 B - - gz showmount- 8 8 1634214566 A - - gz show mount information for an NFS serversecurity_get_initial_context- 3 3 1585710994 B - - gz query the SELinux policy database in the kernelbzip2recover- 1 1 1533764347 B - - gz recovers data from damaged bzip2 filesxlistextensionsXListExtensions 3 3 1710950786 B - - gz list available extensionstemplate::manual::pluginsTemplate::Manual::Plugins 3pm 3 1402357151 A - - gz Standard pluginsxcb_xkb_set_names_checked- 3 3 1540917640 B - - gz file::findFile::Find 3pm 3 1698237673 A - - gz Traverse a directory tree.xcb_glx_get_tex_parameteriv- 3 3 1540917640 A - - gz tcl_limittypesetTcl_LimitTypeSet 3 3 1448008822 B - - gz manage and check resource limits on interpretersxallociconsizeXAllocIconSize 3 3 1710950786 A - - gz allocate icon size structure and set or read a window's WM_ICON_SIZES propertygetent- 1 1 1402354203 A - - gz get entries from Name Service Switch librariesxtsettypeconverterXtSetTypeConverter 3 3 1501646833 B - - gz register resource converterstrerror_r 3p- 3p 3p 1402354218 B - - gz get error message stringargz_delete- 3 3 1402354207 B - - gz functions to handle an argz listxcb_damage_notify_event_t- 3 3 1540917640 A - - gz xcb_xc_misc_get_xid_range_reply- 3 3 1540917640 B - - gz expf expf 3 expf 3pshift shift 1p shift 1tcl_getaliasTcl_GetAlias 3 3 1448008821 B - - gz manage multiple Tcl interpreters, aliases and hidden commandsnamed- 8 8 1725373372 A - - gz Internet domain name serverpam_getenv- 3 3 1585713595 A - - gz get a PAM environment variabletc-fq_codel- 8 8 1601484048 A - - gz Fair Queuing (FQ) with Controlled Delay (CoDel)avc_cache_stats- 3 3 1585710994 A - - gz obtain userspace SELinux AVC statisticsxcb_image_text_8- 3 3 1540917640 A - - gz Draws textxkbgetnamedindicatorXkbGetNamedIndicator 3 3 1710950785 A - - gz Look up the indicator map and other information for an indicator by namexdr_long- 3 3 1402354213 B - - gz library routines for external data representationgetsockname getsockname 2 getsockname 3pngettext 3- 3 3 1465650185 A - - gz translate message and choose plural formfnmatch 3- 3 3 1402354209 A - - gz match filename or pathnamecreat 2- 2 2 1402354204 B - - gz open and possibly create a file or devicepthread_mutexattr_setprotocol- 3p 3p 1402354217 B - - gz get and set the protocol attribute of the mutex attributes object (REALTIME THREADS)html::templateHTML::Template 3pm 3 1392149318 A - - gz Perl module to use HTML-like templating languagesetnetgrent- 3 3 1402354212 A - - gz handle network group entrieseuca-cancel-bundle-task- 1 1 1484780705 A - - gz Cancel an instance bundling operationnm nm 1p nm 1git-fetch-pack- 1 1 1722330779 A - - gz Receive missing objects from another repositorytap::parser::multiplexerTAP::Parser::Multiplexer 3pm 3 1439389327 A - - gz Multiplex multiple TAP::Parserstgetent- 3x 3 1720626759 B - - gz direct curses interface to the terminfo capability databaseposix_openpt posix_openpt 3 posix_openpt 3pset_menu_init- 3x 3 1720626759 B - - gz set hooks for automatic invocation by applicationsgit-merge-index- 1 1 1722330782 A - - gz Run a merge for files needing mergingpthread_attr_destroy 3p- 3p 3p 1402354217 B - - gz destroy and initialize the thread attributes objectxtappaddblockhookXtAppAddBlockHook 3 3 1501646833 A - - gz register a block hook procedurewgetn_wstr- 3x 3 1720626759 B - - gz get an array of wide characters from a curses terminal keyboardclock_settime clock_settime 3 clock_settime 2 clock_settime 3plseek lseek 2 lseek 3pwattr_on- 3x 3 1720626759 B - - gz curses character and window attribute control routinesssl_ctx_get_timeoutSSL_CTX_get_timeout 3ssl 3 1699892221 A - - gz manipulate timeout values for session cachingtiffdatawidthTIFFDataWidth 3tiff 3 1729525165 A - - gz Get the size of TIFF data typesfd_set FD_SET 3 FD_SET 2 FD_SET 3pe2freefrag- 8 8 1711459141 A - - gz report free space fragmentation informationtcl_channelcloseprocTcl_ChannelCloseProc 3 3 1448008821 B - - gz procedures for creating and manipulating channelsfield_opts- 3x 3 1720626759 B - - gz set and get field optionskbdrate- 8 8 1637771557 A - - gz reset the keyboard repeat rate and delay timeld-linux.so*- 8 8 1402354220 C ld.so - gz ausyscall- 8 8 1565265961 A - - gz a program that allows mapping syscall names and numbersfile::listingFile::Listing 3pm 3 1402392730 A - - gz parse directory listingxcb_dri2_connect- 3 3 1540917640 A - - gz xcb_glx_is_texture- 3 3 1540917640 A - - gz inet_ntoa 3- 3 3 1402354210 B - - gz Internet address manipulation routinessyslog 3- 3 3 1402354213 A - - gz send messages to the system loggertc-sample- 8 8 1601484048 A - - gz packet sampling tc actionxcb_glx_pbuffer_clobber_event_t- 3 3 1540917640 A - - gz hacking.podHACKING.pod 3pm 3 1439389327 C Test::HACKING - gz systemd-halt.service- 8 8 1711457788 A - - gz System shutdown logicxcb_get_font_path_reply- 3 3 1540917640 B - - gz abrt-server- 1 1 1601569733 A - - gz Unix socket for ABRT.quota- 1 1 1319118019 A - - gz display disk usage and limitsmysqlbinlog- 1 1 1697025034 A - t gz utility for processing binary log filesbdftruncate- 1 1 1540918774 A - - gz generate truncated BDF font from ISO 10646-1-encoded BDF fontobj_createOBJ_create 3ssl 3 1721417624 B - - gz ASN1 object utility functionsatof atof 3 atof 3psystemd-tmpfiles-clean.service- 8 8 1711457788 B - - gz Creates, deletes and cleans up volatile and temporary files and directoriestgammaf 3- 3 3 1402354213 B - - gz true gamma functionbn_mul_wordBN_mul_word 3ssl 3 1721417624 B - - gz arithmetic functions on BIGNUMs with integersxcb_xfixes_intersect_region_checked- 3 3 1540917640 B - - gz xdr_pmaplist- 3 3 1402354213 B - - gz library routines for remote procedure callsxcb_glx_get_visual_configs_property_list_end- 3 3 1540917640 B - - gz euca-describe-group- 1 1 1484780705 A - - gz Show information about security groupsmvprintw- 3x 3 1720626759 B - - gz print formatted output in curses windowsmozilla::caMozilla::CA 3pm 3 1402359504 A - - gz Mozilla's CA cert bundle in PEM formatdatetime::locale::si_lkDateTime::Locale::si_LK 3pm 3 1402390642 A - - gz strtod 3- 3 3 1402354212 A - - gz convert ASCII string to floating-point numberfilter_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionsigisemptyset- 3 3 1402354212 B - - gz POSIX signal set operations.xxd- 1 1 1720542352 A - - gz make a hexdump or do the reverse.rsa_set_methodRSA_set_method 3ssl 3 1721417624 A - - gz select RSA methodxchangewindowattributesXChangeWindowAttributes 3 3 1710950786 A - - gz change window attributesxtissensitiveXtIsSensitive 3 3 1501646833 B - - gz set and check a widget's sensitivity statemvaddwstr- 3x 3 1720626759 B - - gz add a string of wide characters to a curses window and advance cursorxcb_glx_get_lightiv_reply- 3 3 1540917640 B - - gz xsetwmclientmachineXSetWMClientMachine 3 3 1710950786 A - - gz set or read a window's WM_CLIENT_MACHINE propertytanhl 3p- 3p 3p 1402354218 B - - gz hyperbolic tangent functionsxcb_poly_text_16_checked- 3 3 1540917640 B - - gz crealf 3p- 3p 3p 1402354214 B - - gz complex real functionsshm_unlink shm_unlink 3 shm_unlink 3pxcb_big_requests_enable- 3 3 1540917640 A - - gz delpart- 8 8 1612283497 A - - gz simple wrapper around the "del partition" ioctlbundle::image::info::everythingBundle::Image::Info::Everything 3pm 3 1402363342 A - - gz complete support for Image::Infothin_delta- 8 8 1605543195 A - - gz Print the differences in the mappings between two thin devices.asn1_generate_nconfASN1_generate_nconf 3ssl 3 1721417624 A - - gz ASN1 generation functionslstat lstat 2 lstat 3preadlink readlink 2 readlink 1 readlink 3pxkbfreegeomoverlayrowsXkbFreeGeomOverlayRows 3 3 1710950785 A - - gz Free rows in an overlayeuca-describe-conversion-tasks- 1 1 1484780705 A - - gz Show information about import operations_tracedump- 3x 3 1720626759 B - - gz curses debugging routinesclock_nanosleep 3p- 3p 3p 1402354214 A - - gz high resolution sleep with specifiable clock (ADVANCED REALTIME)xcb_x_print_print_set_context- 3 3 1540917640 A - - gz tiffsetfieldTIFFSetField 3tiff 3 1729525165 A - - gz set the value(s) of a tag in a TIFF file open for writingpost_form- 3x 3 1720626759 B - - gz write or erase forms from associated subwindowseuform-describe-stack-resources- 1 1 1484780705 A - - gz List all of the resources in one or more stacksxshapeinputselectedXShapeInputSelected 3 3 1448003986 B - - gz X nonrectangular shape functionsfclangsetequalFcLangSetEqual 3 3 1520307172 A - - gz test for matching langsetsec_key_set_enc_flagsEC_KEY_set_enc_flags 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_KEY objects.xquerycolorXQueryColor 3 3 1710950786 A - t gz obtain color valuesui_add_user_dataUI_add_user_data 3ssl 3 1721417624 B - - gz New User Interfacewmempcpy- 3 3 1402354211 A - - gz copy memory areaexpl 3- 3 3 1402354208 B - - gz base-e exponential functiongit-init-db- 1 1 1722330782 A - - gz Creates an empty Git repositoryxtmallocXtMalloc 3 3 1501646833 A - - gz memory management functionsstrcat 3- 3 3 1402354212 A - - gz concatenate two stringsevp_enc_nullEVP_enc_null 3ssl 3 1721417624 B - - gz EVP cipher routinesrand_get_rand_methodRAND_get_rand_method 3ssl 3 1721417624 B - - gz select RAND methodsed sed 1p sed 1ipcs ipcs 1p ipcs 1rndc- 8 8 1725373372 A - - gz name server control utilitylwres_buffer_getmem- 3 3 1725373371 B - - gz lightweight resolver buffer managementx509_check_emailX509_check_email 3ssl 3 1721417624 B - - gz X.509 certificate matchinggetrpcbynumber- 3 3 1402354209 B - - gz get RPC entryrequest_init- 3 3 824054487 C hosts_access - gz tiffreadrgbaimageTIFFReadRGBAImage 3tiff 3 1729525165 A - - gz read and decode an image into a fixed-format rasterxcb_query_colors_colors- 3 3 1540917640 B - - gz xcb_set_screen_saver- 3 3 1540917640 A - - gz pod::simple::dumpastextPod::Simple::DumpAsText 3pm 3 1402365606 A - - gz - dump Pod-parsing events as textdatetime::locale::ss_zaDateTime::Locale::ss_ZA 3pm 3 1402390641 A - - gz datetime::timezoneDateTime::TimeZone 3pm 3 1565315819 A - - gz Time zone object base class and factoryfreeaddrinfo 3- 3 3 1402354209 B - - gz network address and service translationdbix::simpleDBIx::Simple 3pm 3 1402379379 A - - gz Very complete easy-to-use OO interface to DBIsg_ses- 8 8 1585715378 A - - gz access a SCSI Enclosure Services (SES) deviceevp_digestsignfinalEVP_DigestSignFinal 3ssl 3 1721417624 B - - gz EVP signing functionsprojects- 5 5 1601488312 A - - gz persistent project root definitionxcb_input_change_device_dont_propagate_list- 3 3 1540917640 A - - gz bsearch 3- 3 3 1402354207 A - - gz binary search of a sorted arrayxtsessionreturntokenXtSessionReturnToken 3 3 1501646833 B - - gz token management for checkpointingform_term- 3x 3 1720626759 B - - gz set hooks for automatic invocation by applicationsfindmnt- 8 8 1612283497 A - - gz find a filesystemgethostid gethostid 3 gethostid 2 gethostid 3pconf_modules_unloadCONF_modules_unload 3ssl 3 1721417624 B - - gz OpenSSL configuration cleanup functionsldap.conf- 5 5 1695762319 A - - gz LDAP configuration file/environment variablestcl_setstringobjTcl_SetStringObj 3 3 1448008822 B - - gz manipulate Tcl objects as stringsmakedumpfile- 8 8 1623254998 A - - gz make a small dumpfile of kdumpxcb_input_change_feedback_control_checked- 3 3 1540917640 B - - gz tcl_gettimeTcl_GetTime 3 3 1448008822 A - - gz get date and timetcl_cutchannelTcl_CutChannel 3 3 1448008821 B - - gz procedures for creating and manipulating channelsmsgop- 2 2 1402354205 A - - gz System V message queue operationsperror perror 3 perror 1 perror 3ptap::formatter::colorTAP::Formatter::Color 3pm 3 1439389327 A - - gz Run Perl test scripts with colorqsort_r- 3 3 1402354211 B - - gz sort an arrayffsl- 3 3 1402354209 B - - gz find first bit set in a wordcrontab crontab 1p crontab 1 crontab 5curses::ui::dialog::progressCurses::UI::Dialog::Progress 3pm 3 1454728582 A - - gz Create and manipulate progress dialogstcl_fsfileattrsgetTcl_FSFileAttrsGet 3 3 1448008822 B - - gz procedures to interact with any filesystemform_field_just- 3x 3 1720626759 A - - gz retrieve field characteristicslwres_buffer_first- 3 3 1725373371 B - - gz lightweight resolver buffer managementreplace- 1 1 1697025034 A - - gz a string-replacement utilityxcb_screensaver_query_info_reply- 3 3 1540917640 B - - gz git-request-pull- 1 1 1722330780 A - - gz Generates a summary of pending changesposix_spawn_file_actions_addclose- 3p 3p 1402354216 B - - gz add close or open action to spawn file actions object (ADVANCED REALTIME)inet_ntoa 3p- 3p 3p 1402354216 B - - gz IPv4 address manipulationnanl 3- 3 3 1402354211 B - - gz return 'Not a Number'reporter-mantisbt- 1 1 1585834715 A - - gz Reports problem to Mantis Bug Tracker.getnetbyaddr 3p- 3p 3p 1402354215 B - - gz network database functionsgetpwent getpwent 3 getpwent 3pxcb_alloc_named_color- 3 3 1540917640 A - - gz unlockpt 3- 3 3 1402354213 A - - gz unlock a pseudoterminal master/slave pairsystemd.exec- 5 5 1711457787 A - t gz Execution environment configurationtsearch tsearch 3 tsearch 3pxcb_randr_get_crtc_info_reply- 3 3 1540917640 B - - gz Mail 1- 1 1 1533764336 B - - gz send and receive Internet mailxcb_glx_render_large- 3 3 1540917640 A - - gz cut cut 1p cut 1 astrtoull 3p- 3p 3p 1402354218 B - - gz convert a string to an unsigned longttk::checkbutton- n n 1448008912 A - - gz On/off widgetip-vrf- 8 8 1601484048 A - - gz run a command against a vrfxtappaddinputXtAppAddInput 3 3 1501646833 A - - gz register and remove an input sourcegetsockopt 3p- 3p 3p 1402354215 A - - gz get the socket optionsxcb_xc_misc_get_version_reply- 3 3 1540917640 B - - gz sigdelset 3p- 3p 3p 1402354218 A - - gz delete a signal from a signal setdatetime::locale::en_dsrtDateTime::Locale::en_Dsrt 3pm 3 1402390633 A - - gz dumpvalueDumpvalue 3pm 3 1698237673 A - - gz provides screen dump of Perl data.euca2ools.ini- 5 5 1484780705 A - - gz configuration for euca2oolsfalse 1- 1 1 1605565487 A - - gz do nothing, unsuccessfullyva_start 3p- 3p 3p 1402354219 B - - gz handle variable argument listdh_sizeDH_size 3ssl 3 1699892207 A - - gz get Diffie-Hellman prime sizexcb_glx_read_pixels_data- 3 3 1540917640 B - - gz catanf 3p- 3p 3p 1402354214 B - - gz complex arc tangent functionsautrace- 8 8 1565265962 A - - gz a program similar to straceasn1_string_to_utf8ASN1_STRING_to_UTF8 3ssl 3 1721417624 B - - gz ASN1_STRING utility functionsxcb_randr_delete_output_property_checked- 3 3 1540917640 B - - gz udplite- 7 7 1402354220 A - - gz Lightweight User Datagram Protocolcbq CBQ 8 cbq 8unistd.h- 0p 0p 1402354203 A - - gz standard symbolic constants and typesrvi- 1 1 1722022359 B - - gz Vi IMproved, a programmers text editorxcb_input_get_selected_extension_events- 3 3 1540917640 A - - gz strcpy 3p- 3p 3p 1402354218 A - - gz copy a stringxkbaddgeomoutlineXkbAddGeomOutline 3 3 1710950785 A - - gz Add one outline to an existing shapelvresize- 8 8 1619616701 A - - gz Resize a logical volumeset_menu_pad- 3x 3 1720626759 B - - gz color and attribute control for menusrand_query_egd_bytesRAND_query_egd_bytes 3ssl 3 1699892212 A - - gz query entropy gathering daemonxmaskeventXMaskEvent 3 3 1710950786 B - - gz select events by typesigngam signgam 3 signgam 3pxcb_render_query_pict_formats_reply- 3 3 1540917640 B - - gz ssl_set_psk_server_callbackSSL_set_psk_server_callback 3ssl 3 1721417624 B - - gz set PSK identity hint to uselutimes- 3 3 1402354209 A - - gz change file timestampsapp::prove::state::resultApp::Prove::State::Result 3pm 3 1439389327 A - - gz Individual test suite results.lvmraid- 7 7 1619616701 A - - gz LVM RAIDpem_write_bio_privatekeyPEM_write_bio_PrivateKey 3ssl 3 1721417624 B - - gz PEM routinesdatetime::locale::ar_yeDateTime::Locale::ar_YE 3pm 3 1402390644 A - - gz log10l 3p- 3p 3p 1402354216 B - - gz base 10 logarithm functiongmtime 3p- 3p 3p 1402354215 A - - gz convert a time value to a broken-down UTC timescalb 3p- 3p 3p 1402354218 A - - gz load exponent of a radix-independent floating-point numbersg_compare_and_write- 8 8 1585715378 A - - gz send the SCSI COMPARE AND WRITE commandxcb_selinux_get_property_create_context_context_end- 3 3 1540917640 B - - gz cms_add1_recipient_certCMS_add1_recipient_cert 3ssl 3 1721417624 A - - gz add recipients to a CMS enveloped data structurexcb_query_tree- 3 3 1540917640 A - - gz query the window treefcfilescanFcFileScan 3 3 1520307172 A - - gz scan a font fileauto_mkindex- n n 1448008823 B - - gz standard library of Tcl proceduresssl_state_string_longSSL_state_string_long 3ssl 3 1721417624 B - - gz get textual description of state of an SSL objectfsck.ext2- 8 8 1711459140 B - - gz check a Linux ext2/ext3/ext4 file systemtcl_getensembleflagsTcl_GetEnsembleFlags 3 3 1448008821 B - - gz manipulate ensemble commandsxcb_x_print_print_set_context_checked- 3 3 1540917640 B - - gz datetime::locale::bo_inDateTime::Locale::bo_IN 3pm 3 1402390639 A - - gz xcb_xfixes_set_region- 3 3 1540917640 A - - gz ec_group_get_cofactorEC_GROUP_get_cofactor 3ssl 3 1721417624 B - - gz Functions for manipulating EC_GROUP objects.qlengthQLength 3 3 1710950785 B - - gz Display macros and functionsfcvaluedestroyFcValueDestroy 3 3 1520307172 A - - gz Free a valueexpand expand 1p expand 1%o Ur{Bdatel3]Btgam . BSHA2l 3KBxcb_Bxcb_ƺBtiff c-Bposto K]BeufoĻ J BBxsha.M\6Ciso-/q _ACxml:qFBfclaBcBec_kt{!qBlwreB Q&gBxnex 9H@Bxcb_/^ҶBxdrr, LBxcb_ VBtcl_ OBswap!  S<Bxcb_} ?*Bfile Jn[WBxvis J$Baio_j _wBxcb_ Becds TB?)Beucad =ZBif_i OׄBputw B"Bregei  0,IBdbd: \ Bquot9Bread[ `^Bi2d_LfBpang" ,&rBcellYNBfget` BB[Bdup2>6BmemcM` 14Bphot`,0ABcsin` >ZKBcms_a[#Bxcb_ta=Brtima9A)mBdatea5Bipcs֔BswapZKBgdbf+ՒBdnsdf<Bdateg0 HVKBsystDk0g\BlwrekNQuBfcdikC BxrmdNlQxcmsquerywhiteXcmsQueryWhite 3 3 1710950786 B - - gz obtain black, blue, green, red, and white CCC color specificationslvm-config- 8 8 1619616701 B - - gz Display and manipulate configuration informationsetusershell- 3 3 1402354209 A - - gz get permitted user shellsbeep- 3x 3 1720626759 B - - gz curses bell and screen flash routinesxcb_glx_get_queryiv_arb_data_length- 3 3 1540917640 B - - gz xgetkeyboardmappingXGetKeyboardMapping 3 3 1710950785 B - - gz manipulate keyboard encoding and keyboard encoding structureengine_add_conf_moduleENGINE_add_conf_module 3ssl 3 1721417624 B - - gz add standard configuration modulesxcb_get_pointer_mapping_unchecked- 3 3 1540917640 B - - gz evp_pkey_ctx_get_app_dataEVP_PKEY_CTX_get_app_data 3ssl 3 1721417624 B - - gz key and parameter generation functionsdbi::pureperlDBI::PurePerl 3pm 3 1402362413 A - - gz - a DBI emulation using pure perl (no C/XS compilation required)killall5- 8 8 1402355803 A - - gz send a signal to all processes.tcl_startofpreviouswordtcl_startOfPreviousWord n n 1448008823 B - - gz standard library of Tcl proceduresisinf 3- 3 3 1402354210 B - - gz floating-point classification macrosxcb_xkb_state_notify_event_t- 3 3 1540917640 A - - gz ls 1p- 1p 1p 1402354204 A - - gz list directory contentseuca-copy-image- 1 1 1484780705 A - - gz Copy an image from another regionxcb_xfixes_destroy_region_checked- 3 3 1540917640 B - - gz perlvos- 1 1 1698237671 A - - gz Perl for Stratus VOSssl_ctx_get0_chain_certsSSL_CTX_get0_chain_certs 3ssl 3 1721417624 B - - gz extra chain certificate processingperlcommunity- 1 1 1698237664 A - - gz a brief overview of the Perl communitysystemd.kill- 5 5 1711457787 A - - gz Process killing procedure configurationcpu_zero_sCPU_ZERO_S 3 3 1402354206 B - - gz macros for manipulating CPU setscms_uncompressCMS_uncompress 3ssl 3 1699892206 A - - gz uncompress a CMS CompressedData structurepod::simple::checkerPod::Simple::Checker 3pm 3 1402365606 A - - gz - check the Pod syntax of a documentbn_sqrBN_sqr 3ssl 3 1721417624 B - - gz arithmetic operations on BIGNUMslwres_gnba- 3 3 1725373371 A - - gz lightweight resolver getnamebyaddress message handlingxnexteventXNextEvent 3 3 1710950786 A - - gz select events by typexcb_glx_get_drawable_attributes_attribs_length- 3 3 1540917640 B - - gz xdrrec_endofrecord- 3 3 1402354213 B - - gz library routines for external data representationxcb_xf86dri_close_connection- 3 3 1540917640 A - - gz tcl_queueeventTcl_QueueEvent 3 3 1448008822 B - - gz the event queue and notifier interfacesswapon 8- 8 8 1612283497 A - - gz enable/disable devices and files for paging and swappingxcb_x_print_print_start_page- 3 3 1540917640 A - - gz file::spec::macFile::Spec::Mac 3pm 3 1402373474 A - - gz File::Spec for Mac OS (Classic)xvisibilityeventXVisibilityEvent 3 3 1710950786 A - - gz VisibilityNotify event structureaio_return 3p- 3p 3p 1402354214 A - - gz retrieve return status of an asynchronous I/O operation (REALTIME)xcb_poly_text_8- 3 3 1540917640 A - - gz ecdsa_sign_exECDSA_sign_ex 3ssl 3 1721417624 B - - gz Elliptic Curve Digital Signature Algorithmeuca-create-network-interface- 1 1 1484780705 A - - gz Create a new VPC network interfaceif_indextoname 3- 3 3 1402354210 B - - gz mappings between network interface names and indexesputwc 3- 3 3 1402354211 B - - gz write a wide character to a FILE streamregerror 3- 3 3 1402354211 A - - gz POSIX regex functionsdbd::gofer::policy::pedanticDBD::Gofer::Policy::pedantic 3pm 3 1402362412 A - - gz The 'pedantic' policy for DBD::Goferquot- 8 8 1284035243 A - - gz summarize filesystem ownershipreadlinkat- 2 2 1402354205 A - - gz read value of a symbolic link relative to a directory file descriptori2d_asn1_objecti2d_ASN1_OBJECT 3ssl 3 1699892215 A - - gz ASN1 OBJECT IDENTIFIER functionspango-view- 1 1 1568397769 A - - gz Pango text viewercellsofscreenCellsOfScreen 3 3 1710950785 B - - gz screen information functions and macrosdup2 3p- 3p 3p 1402354214 B - - gz duplicate an open file descriptor/) "@vlan-!IU@getrS4tanhX68"@net:~ I4Q@xcb_ xcb_U,@xcb_!'xset  <tcl_T c/ @seleH! 7@xcb_!X@dbd:!^@fflu6"5@lwre{"Fc@git-" ;@posi#%V;@call#F<@xkbs#Mi@strtP$ Q@daten$4@bn_m$FB@sysv% B5,@has_`%;'@__fb% =Ԍ@pam_%1I@git-3&5>@sarx&P{@date&3"@ping'B@tcl_^'a?H@ypdo' F)@pthr0(LJt@menu( Ng@wnou( <@pod:1)4k[@git-~) =y@ec_p){4@consQ*E @ncur*> ;T@rema* <deK@wadd<+ bs\@seli+|^y@tracA, 5V@date, ;TF@cron, >S @trof#-R[@llab{- A"@tcl_-C<@scal. Tl@pem_v.<F(@dsap.M+g@xcb_&/uP,@yum-Y/N@ilog/er@tcl_O @ec_pj$$`@tcl_z.@xcb_!S@xcb_ڑ%Q@wcty Ply#@iswps GLG@towuƒ @ @euca< @xsetc Oj@mbrt/@mkdi - @fiel G_@git-FEr҆@abor=İ@xtchH@loca;f|I@conf H Q@SELi !N@syst7f,@xcb_@xdr_ L @curs8B\)@fcchFB@a@xcb_ߗe@MD4  >Z @cms_\[*@euar͘<+@open#J0@ect+ b@sran ;f1@if_nΙK @sche) =@cracS:n@fget 7 Z@x509ܚN)I@pthr@4@xtda HHs@cbrtޛ-ہ@upda 8@pod:T^ѻ@gstaȜCݐ@pthraj@file gR׽@islo@log:VKE@fd_i #4@loca ^`q@date4Y@dsa_c DRI@xcb_@pcre>$@xcb_N&{@date3){@exit-$@putg  AJy@fcpaV8a@db_fJIĶ@xcb_B@simpP#q@xcb_z@tcl_Q Z@xcb_,e@posidE@roun Z`%@fputIn@xcb_7|;7@xcb_qcT@semaH@curs 5@xdr_B LV@varsW*U@defi ,@lh_d* 0M@tiffd7H@cloc@G@enco UzI@inotW 9@xcb_@bn_m ?@xcb_!+H@fcstgVy@xkbg@datex 5bN@clog @}@info FA@nohu] T)@pthr 9a@getc ?D@tcl_W v)?@fsta *@؍@memr 6;@strtV  =K)@file {N@euar& /}@xcb_o x.@bn_g WR~@smimX^,@tcl_}_-<@vgme.@acct'=t@xcb_l/yW@cms_k`gP@err_R @pthreY@lwre=' @getp' 0@whoi: 79@nfs4*KK|@munmH@xcb_ z@xcb_!O? VqAfree +AlzmaǦAmathUAkeyp0pthrԠC>~Alog2?66Anet:}K(LAxtma0Lnfs4*llab5CAxcb_b0!Aunix0GwAttk:07=jAxcb_/1*Agrubt1 &8Axcb_1_Axcb_1/TAopen&2SZAmoun2,wApthr24wApthr3ACAxselb3PYAutmp3(Acurs3 R7Aip-rT4 3s%Amail4 <Hn+Apod:4 IAxcb_+5jAcons_5yAfcob|5A$RAnet/5 Aunix5 RazAxcb_W6#Aeuca66Aperl6 5Amsgh71wAxcb_X7Aeufo7Q|Axprt7FAsemcJ8 @Axcb_8$Adele8 FAwpri!9 E`Afmodp9<\VtAcata9 :Arint9Adpkg : 2 Arsa_G:Rssl_Qsigi .:Assle:c~~Apod:$;Z/-Ahost;<*GAsetl;0OAsetr < EAsortY<3sAteam<=mAfget< AWAsinc#=?Axcb_i=+SFAcpan=*aAio::=NAAdate>8#Agetp>;+[Adate>rAiso_@? _,Aperl? 5Ayn 3@>}uApthrC@ ;ĘAxcb_@-|xAyum-@Pxcb_%%Afatt-AWAlwreKA=AcircAbV Axkba BLL%AxtsekBI&Axcb_B0wAvgcfB =_Assl_ICLwatt Rcrea2k*AldexC PQ"AtiffD EfcdibC9Axcb_PD"xcb_8AsetfDmRvCAxcms EjAmvadE b H9QBfilt ; &BsigiԳ7Bxxd<Brsa_Y<#%BxchaIa_BxtisQVKBsystDk0g\BlwrekNQuBfcdikC(7ABtanhv 9 BxrmdNlQCWBcrea 3_Bshm_) S.Bxcb_PY5BdelpJmailj 8{+Bbundշ [*"BthinP ZCBasn1I[@_BlstaR֖Bread* #aBxkbfVGXBBeucaCsB_tra 5jBclocV]evp_l=Bxcb_ƺBtiff c-Bposto K]BeufoĻ J BBxsha.Mxcb_7m%BfclaBcBec_kt{!qBlwreB Q&gBxnex 9H@Bxcb_/^ҶBxdrr, LBxcb_ VBtcl_ OBswap!  S<Bxcb_} ?*Bfile Jn[WBxvis J$Baio_j _wBxcb_ Becds TB?)Beucad =ZBif_i OׄBputw B"Bregei  0,IBdbd: \ Bquot9Bread[ `^Bi2d_LfBpang" ,&rBcellYNBfget` BB[Bdup2>6BmemcM` 14Bphot`,0ABcsin` >ZKBcms_a[#Bxcb_ta=Brtima9A)mBdatea5Bipcs֔BswapZKBgdbf+ՒBdnsdf<Bdateg0\6Ciso-/q _ACxml:qFcCrtasqX/_CxargUrNCatan ACxcb_K(8qCmiteG0Cwcsf MbCeuca9kCxtne @tCdmracNCred 4lCxcb_)7(Cssl_N4qCgit-HCsetcأ 6*Cgeto"Csets6 HlyCbn_m`?Cbio_DCfcna CfCdaem^ ?Cfrea )SCset إKxcb_[.xcb_}aCbn_o*? eCy1 3p@ CgrpcJ'YCx509Q)|TCtcl_qFACssl_ɧT"Cxcb_8( Cres_{,uCdate8EsCxcb_ )_ACget_P {'Cdate3Cxaddҩ 2bRCsem_"j^Cxcb_>%xvCutsn~ 2/Cdove1. ClocaRZCmoduZeeuca;setlN /#WCxcb_Ы6sICxcb_!m]CopenYDssl_ieiCmd5s?Ni'Clog1 7'-Cxcb_*Cnanob =MCdove F(ZClwreA%,Ccpu_P@$7%Cvari EƄCtcl_Qtcl_6>getc Nllro Cgit-H5HCtcl_^Cdate1RCinstG ?GGCif_i$7.MCfileð F}|Ctcl_R-Crintw3ipc:k DxkbrXxcb_(/7CregebAFCsetq% *ϲ{Ci2d_XV Cpthrò;curs Rsys_ 5f5!Ce2fs 8-Cxcb_U' jCfcis Gxcb_ 'T,Cxcb_#dateX 5thin  UCrecv& :tap:V \d2i_ T{Cxgetj VGCfstaʹ*sd 6BCtcht>tcl_S p{{HCfpriE)(Cndbmc >;Cxcb_7NClwreRMCgrubE+Cbio_ JZCnoneն&dCencoF#YCrcsf^ Qh7Cllro ;-@Ccloc 1Cxtre9FpkCxpee Vi18nPBbackQP Abio_PBcompP`xcb_mQ\(Cevp_YodbcQ P $Crt_sa2,'Cxgra 6}#Cpure 67Ctcl_&Fq^Cxcb_{5[Csfqƺ :Ccfma _CxkbsSW:VCinw_#~pCffluEatanhl 3p- 3p 3p 1402354214 B - - gz inverse hyperbolic tangent functionsxcb_render_query_pict_formats_subpixels- 3 3 1540917640 B - - gz mitem_userptr- 3x 3 1720626759 A - - gz associate application data with a menu itemwcsftime- 3p 3p 1402354219 A - - gz convert date and time to a wide-character stringeuca-create-vpn-connection- 1 1 1484780705 A - - gz Create a VPN connection between a virtual private gateway and a customer gatewayxtnewstringXtNewString 3 3 1501646833 B - - gz memory management functionswww::mechanize::cookbookWWW::Mechanize::Cookbook 3pm 3 1391076350 A - - gz Recipes for using WWW::MechanizexshapequeryversionXShapeQueryVersion 3 3 1448003986 B - - gz X nonrectangular shape functionssg_sync- 8 8 1585715378 A - - gz send SCSI SYNCHRONIZE CACHE commandssl_load_error_stringsSSL_load_error_strings 3ssl 3 1721417624 B - - gz load and free error stringsgit-remote-fd- 1 1 1722330779 A - - gz Reflect smart transport stream back to callersetcontext 3- 3 3 1402354212 B - - gz get or set the user contextgetopts getopts 3pm getopts 1p getopts 1fflush fflush 3 fflush 3pbn_mul_add_words- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionsbio_get_retry_reasonBIO_get_retry_reason 3ssl 3 1721417624 B - - gz BIO retry functionsfcnamegetconstantFcNameGetConstant 3 3 1520307172 A - - gz Lookup symbolic constantdaemon 7- 7 7 1711457788 A - - gz Writing and packaging system daemonsfread 3p- 3p 3p 1402354215 A - - gz binary inputset 1p- 1p 1p 1402354204 A - - gz set or unset options and positional parametersbn_oneBN_one 3ssl 3 1721417624 B - - gz BIGNUM assignment operationsy1 3p- 3p 3p 1402354219 B - - gz Bessel functions of the second kindgrpconv- 8 8 1565319053 B - - gz convert to and from shadow passwords and groupsx509_store_ctx_set_certX509_STORE_CTX_set_cert 3ssl 3 1721417624 B - - gz X509_STORE_CTX initialisationtcl_converttotypeTcl_ConvertToType 3 3 1448008822 B - - gz manipulate Tcl object typesssl_use_rsaprivatekey_asn1SSL_use_RSAPrivateKey_ASN1 3ssl 3 1721417624 B - - gz load certificate and key dataxcb_xinerama_get_screen_count_unchecked- 3 3 1540917640 B - - gz res_querydomain- 3 3 1402354211 B - - gz resolver routinesdatetime::locale::ku_latn_trDateTime::Locale::ku_Latn_TR 3pm 3 1402390637 A - - gz xcb_glx_get_query_objectiv_arb_unchecked- 3 3 1540917640 B - - gz get_current_dir_name 2- 2 2 1402354204 C getcwd - gz datetime::locale::bs_baDateTime::Locale::bs_BA 3pm 3 1402390642 A - - gz xaddpixelXAddPixel 3 3 1710950785 B - - gz image utilitiessem_timedwait sem_timedwait 3 sem_timedwait 3pxcb_selinux_set_property_use_context- 3 3 1540917640 A - - gz utsname.h- 0p 0p 1402354203 B - - gz system name structuredoveadm-stats- 1 1 1724195936 A - - gz Inspect or reset statslocale::scriptLocale::Script 3pm 3 1402383323 A - - gz standard codes for script identificationmodule::metadataModule::Metadata 3pm 3 1402343824 A - - gz Gather package and POD information from perl module filesxcb_randr_query_provider_property_valid_values_length- 3 3 1540917640 B - - gz xcb_record_get_context_reply- 3 3 1540917640 B - - gz open 2- 2 2 1402354205 A - - gz open and possibly create a file or devicemd5sum- 1 1 1605565487 A - - gz compute and check MD5 message digestlog10f 3- 3 3 1402354210 B - - gz base-10 logarithmic functionxcb_glx_is_texture_unchecked- 3 3 1540917640 B - - gz nanosleep 3p- 3p 3p 1402354216 A - - gz high resolution sleep (REALTIME)doveadm-who- 1 1 1724195936 A - - gz Show who is logged in to the Dovecot serverlwres_addr_parse- 3 3 1725373371 A - - gz lightweight resolver utility functionscpu_orCPU_OR 3 3 1402354206 B - - gz macros for manipulating CPU setsvariable- n n 1448008824 A - - gz create and initialize a namespace variabletcl_detachchannelTcl_DetachChannel 3 3 1448008822 B - - gz buffered I/O facilities using channelsgit-merge-file- 1 1 1722330780 A - - gz Run a three-way file mergetcl_limittypeenabledTcl_LimitTypeEnabled 3 3 1448008822 B - - gz manage and check resource limits on interpretersdatetime::locale::kajDateTime::Locale::kaj 3pm 3 1402390637 A - - gz instmodsh- 1 1 1402365499 A - - gz A shell to examine installed modulesif_indextoname if_indextoname 3 if_indextoname 3pfileno 3p- 3p 3p 1402354215 A - - gz map a stream pointer to a file descriptortcl_restoreresultTcl_RestoreResult 3 3 1448008822 B - - gz save and restore an interpreter's staterintf 3- 3 3 1402354212 B - - gz round to nearest integerregexp::assembleRegexp::Assemble 3pm 3 1417445410 A - - gz Assemble multiple Regular Expressions into a single REsetquota- 8 8 1565318038 A - - gz set disk quotasi2d_pkcs7_bio_streami2d_PKCS7_bio_stream 3ssl 3 1699892217 A - - gz output PKCS7 structure in BER format.pthread_mutex_init- 3p 3p 1402354217 A - - gz destroy and initialize a mutexe2fsck.conf- 5 5 1711459140 A - - gz Configuration file for e2fsckxcb_screensaver_set_attributes_checked- 3 3 1540917640 B - - gz fcisupperFcIsUpper 3 3 1520307172 A - - gz check for upper case ASCII characterxcb_randr_delete_provider_property- 3 3 1540917640 A - - gz recvmsg 2- 2 2 1402354205 B - - gz receive a message from a socketxgetimvaluesXGetIMValues 3 3 1710950786 B - - gz open, close, and obtain input method informationfstat64- 2 2 1402354204 B - t gz get file statustchtest- 1 1 1402385697 A - - gz test cases of the hash database APIfprintf fprintf 3 fprintf 3pndbm_fileNDBM_File 3pm 3 1698237676 A - - gz Tied access to ndbm filesxcb_xc_misc_get_xid_list_ids- 3 3 1540917640 B - - gz lwres_getipnode- 3 3 1725373371 B - - gz lightweight resolver nodename / address translation APIgrub-setpassword- 8 8 1722985065 C grub2-setpassword - gz bio_vfreeBIO_vfree 3ssl 3 1721417624 B - - gz BIO allocation and freeing functionsnone- 3 3 1402354213 C undocumented - gz encode::cjkconstants.pmEncode::CJKConstants.pm 3pm 3 1402368577 C Encode::CJKConstants - gz rcsfreeze- 1 1 1585714623 A - - gz freeze a configuration of sources checked in under RCSllround 3p- 3p 3p 1402354216 A - - gz round to nearest integer valueclock 3p- 3p 3p 1402354214 A - - gz report CPU time usedxtrealizewidgetXtRealizeWidget 3 3 1501646833 A - - gz realize and unrealize widgetsxpeekifeventXPeekIfEvent 3 3 1710950786 B - - gz check the event queue with a predicate procedureevp_pkey_print_publicEVP_PKEY_print_public 3ssl 3 1721417624 B - - gz public key algorithm printing routines.rt_sigpending- 2 2 1402354205 B - - gz examine pending signalsxgrabpointerXGrabPointer 3 3 1710950786 A - - gz grab the pointerpure-ftpwho- 8 8 1730292103 A - - gz Report current FTP sessionstcl_untracevarTcl_UntraceVar 3 3 1448008822 B - - gz monitor accesses to a variablexcb_key_press_event_t- 3 3 1540917640 A - - gz a key was pressed/releasedsfq- 8 8 1601484048 C tc-sfq - gz cfmakeraw- 3 3 1402354207 B - - gz get and set terminal attributes, line control, get and set baud ratexkbsaredirectsetvmodsXkbSARedirectSetVMods 3 3 1710950785 A - - gz Sets the vmods0 and vmods1 of act from vinw_p- 2 2 1402354205 B - - gz port I/Oxcb_input_xi_select_events_checked- 3 3 1540917640 B - - gz pam_localuser- 8 8 1585713590 A - - gz require users to be listed in /etc/passwdcpu_setCPU_SET 3 3 1402354206 A - - gz macros for manipulating CPU setsSocket 3pm- 3pm 3 1585713785 A - - gz networking constants and support functionsmpstat- 1 1 1697208922 A - - gz Report processors related statistics.sg_map26- 8 8 1585715378 A - - gz map SCSI generic (sg) device to corresponding device namesxcb_xkb_latch_lock_state- 3 3 1540917640 A - - gz cfgetospeed 3- 3 3 1402354207 B - - gz get and set terminal attributes, line control, get and set baud rateisxdigit 3p- 3p 3p 1402354216 A - - gz test for a hexadecimal digitfonts-conf- 5 5 1520307172 A - - gz Font configuration fileswrite 1- 1 1 1612283497 A - - gz send a message to another usertemplate::manual::variablesTemplate::Manual::Variables 3pm 3 1402357152 A - - gz Template variables and code bindingsxcb_randr_get_crtc_transform_current_filter_name_end- 3 3 1540917640 B - - gz tcl_dontcallwhendeletedTcl_DontCallWhenDeleted 3 3 1448008821 B - - gz Arrange for callback when interpreter is deletedmvwadd_wchstr- 3x 3 1720626759 B - - gz add an array of complex characters (and attributes) to a curses windowlwp-dump- 1 1 1402363153 A - - gz See what headers and content is returned for a URLremainder remainder 3 remainder 3pdmraid- 8 8 1478390957 A - - gz discover, configure and activate software (ATA)RAIDred 1- 1 1 1533764426 B - - gz line-oriented text editorxcb_glx_get_color_table_parameteriv_data- 3 3 1540917640 B - - gz setstate setstate 3 setstate 3psvc_register- 3 3 1402354212 B - - gz library routines for remote procedure callsevp_pkey_get1_dsaEVP_PKEY_get1_DSA 3ssl 3 1721417624 B - - gz EVP_PKEY assignment functions.tcl_setmaxblocktimeTcl_SetMaxBlockTime 3 3 1448008822 B - - gz the event queue and notifier interfacesxcb_res_query_clients- 3 3 1540917640 A - - gz io::compress::gzipIO::Compress::Gzip 3pm 3 1402361982 A - - gz Write RFC 1952 files/bufferstemplate::plugin::assertTemplate::Plugin::Assert 3pm 3 1402357151 A - - gz trap undefined valueseuca-unbundle-stream- 1 1 1484780705 A - - gz Recreate an image solely from its combined bundled parts without using a manifestxcb_xkb_list_components_keycodes_length- 3 3 1540917640 B - - gz d2i_rsaprivatekeyd2i_RSAPrivateKey 3ssl 3 1721417624 B - - gz RSA public and private key encoding functions.wscanw- 3x 3 1720626759 B - - gz convert formatted input from a curses windowxcb_glx_get_tex_parameterfv_data_length- 3 3 1540917640 B - - gz cerf- 3 3 1402354207 A - - gz complex error functionfcstrlistfirstFcStrListFirst 3 3 1520307172 A - - gz get first string in iterationbasename 1p- 1p 1p 1402354203 A - - gz return non-directory portion of a pathnameautosplitAutoSplit 3pm 3 1698237671 A - - gz split a package for autoloading_setjmp- 3p 3p 1402354213 A - - gz non-local gotopthread_cleanup_push 3- 3 3 1402354211 A - - gz push and pop thread cancellation clean-up handlerscurs_touch- 3x 3 1715932338 A - - gz curses refresh control routinesxcb_glx_get_separable_filter- 3 3 1540917640 A - - gz key_defined_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensiondoveadm-exec- 1 1 1724195936 A - - gz easily execute commands from Dovecot's libexec_direxit 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)datetime::locale::faDateTime::Locale::fa 3pm 3 1402390635 A - - gz sg_readcap- 8 8 1585715378 A - - gz send SCSI READ CAPACITY commandtiffcurrentdirectoryTIFFCurrentDirectory 3tiff 3 1729525165 C TIFFquery - gz vfwscanf- 3p 3p 1402354219 B - - gz wide-character formatted input of a stdarg argument listgetpwnam_r 3- 3 3 1402354209 B - - gz get password file entrycat 1p- 1p 1p 1402354203 A - - gz concatenate and print filesmodule::build::versionModule::Build::Version 3pm 3 1402373050 A - - gz DEPRECATEDfcconfiggetcurrentFcConfigGetCurrent 3 3 1520307172 A - - gz Return current configurationtcl_limitexceededTcl_LimitExceeded 3 3 1448008822 B - - gz manage and check resource limits on interpretersedquota- 8 8 1565318038 A - - gz edit user quotascertutil- 1 1 1730826028 A - - gz Manage keys and certificate in both NSS databases and other NSS tokensget_ordered_context_list_with_level- 3 3 1585710994 B - - gz determine SELinux context(s) for user sessionstcl_fsgetpathtypeTcl_FSGetPathType 3 3 1448008822 B - - gz procedures to interact with any filesystemxcb_xfixes_get_cursor_image_cursor_image_length- 3 3 1540917640 B - - gz tcl_newbignumobjTcl_NewBignumObj 3 3 1448008822 B - - gz manipulate Tcl objects as integer valuesxtgetdisplaysXtGetDisplays 3 3 1501646833 A - - gz retrieve a list of displays associated with an application contextprintenv- 1 1 1605565487 A - - gz print all or part of environmentxtsetvaluesXtSetValues 3 3 1501646833 A - - gz obtain and set widget resourcesnstat- 8 8 1601484048 B - - gz network statistics tools.sha224_finalSHA224_Final 3ssl 3 1721417624 B - - gz Secure Hash AlgorithmxsetwindowborderwidthXSetWindowBorderWidth 3 3 1710950785 B - t gz configure windows and window changes structurexcb_xvmc_create_surface_reply- 3 3 1540917640 B - - gz Pod::Perldoc 3pm- 3pm 3 1402388268 A - - gz Look up Perl documentation in Pod format.tcl_decrrefcountTcl_DecrRefCount 3 3 1448008822 A - - gz manipulate Tcl objectscurs_sp_funcs- 3x 3 1715932338 A - - gz curses screen-pointer extensionregexec 3p- 3p 3p 1402354218 B - t gz regular expression matchingxcb_sync_query_fence_unchecked- 3 3 1540917640 B - - gz semodule- 8 8 1585713889 A - - gz Manage SELinux policy modules.cbrtf cbrtf 3 cbrtf 3paudispd- 8 8 1565265962 A - - gz an event multiplexorxparsegeometryXParseGeometry 3 3 1710950786 A - - gz parse window geometryxkbptractionyXkbPtrActionY 3 3 1710950785 A - t gz Returns the high_YYY and low_YYY fields of act converted to a signed intgrub-mkconfig- 8 8 1722985065 C grub2-mkconfig - gz xcb_randr_query_output_property_valid_values_end- 3 3 1540917640 B - - gz  ^Gxcb_v0jGxcb_Kw-Frndc6Flwre;AFx509GqGisinwSGrevw;Fgetr(NTFrequ %cFtiffQbcFxcb_SFxcb_ǣJFpod:(T{GFdate3BJFdateUfFfreeGBrlFdbix U^Fsg_sHvFevp_IE2YGatanw@¦Fproj =LFxcb_,/Fbsea/ :mGobj_0x DFxtsesP[Fform N*LGhsea.y 5WwFfind0,>Fgethd &2FconfWQsFldap HnGstrtny 5AMFtcl_QKhFmake 9;Fxcb_*f Ftcl_8 6tFtcl_zYdFmsgo<8Fperr$IFtap:HQ!Fqsor(CFffsl7IFcron FcursC^Ftcl_VFform':@FlwreqAix;Frepl75Fxcb_!Q Fgit-@A*LFposi"fu#Finet 68GFnanl]0F>FrepoA5Fgetn7aFFgetp. gFxcb_Oi}Funlo DZFsyst >Fasr? _&7Gseli{|^lGvmsi>|R|FgenpM4Flog2SFsinh 65Fbn_m?X=Fbn_f1HFunse vFfcstK3Fprot EyFdatea4VFLGmq_g|;ƗFfont $|Fssca 2ϫFdsa_ Q"Ggit-|4Fxcb_t%WFlvdi E$Fdate5k"FctanR 5vncFevp_?6F_tou LLbGmodp'}?j_Gdbm_t}C%Gdate}0ooGpic~<{Gva_aO~ 2Gxcb_~.5Fcurs48]vGx509~D Fgeoit AGxFauto :МFxcb_I2Fssl_>KFxque<eFis_i 4tFsha3* BFxcb_v%fGbio_9CcgGxtgra3VFl64ai$Fssl_p CFblkpPp UuFxcrepAfdFfcpaq: Ftk_mRq B/sFfall ͖Fpthrq.Fgit-qCAFipta4r >GFeucar*2P8Fsigdr 7Fmbsrr Fxcb_#sGFfileRsbsFwcpnsf, Fpem_3t;gAFsematKZFgetot >=Fxcb_'uFpam_^u3{2Fmodfu >։2FeuaruH-FclogUv @VFvscav>Fxtcav =Gtcl_xK#oGwinnxKx509_name_add_entry_by_nidX509_NAME_add_entry_by_NID 3ssl 3 1721417624 B - - gz X509_NAME modification functionsxcb_query_colors_reply- 3 3 1540917640 B - - gz form_opts_off- 3x 3 1720626759 B - - gz set and get form optionswait wait 2 wait 1p wait 1 wait 3pxcb_get_atom_name- 3 3 1540917640 A - - gz ssl_ctx_get_default_read_aheadSSL_CTX_get_default_read_ahead 3ssl 3 1721417624 B - - gz manage whether to read as many input bytes as possibleperlos390- 1 1 1698237667 A - - gz building and installing Perl for OS/390 and z/OSxbuttoneventXButtonEvent 3 3 1710950786 A - - gz KeyPress, KeyRelease, ButtonPress, ButtonRelease, and MotionNotify event structurestcl_setbytearrayobjTcl_SetByteArrayObj 3 3 1448008821 B - - gz manipulate Tcl objects as a arrays of bytesevp_rc2_cbcEVP_rc2_cbc 3ssl 3 1721417624 B - - gz EVP cipher routinesulimit 3p- 3p 3p 1402354219 A - - gz get and set process limitsxtisvendorshellXtIsVendorShell 3 3 1501646833 B - - gz obtain and verify a widget's classxcb_glx_get_lightfv_unchecked- 3 3 1540917640 B - - gz tcl_getchanneloptionTcl_GetChannelOption 3 3 1448008822 B - - gz buffered I/O facilities using channelsattr_get- 3x 3 1720626759 B - - gz curses character and window attribute control routinesgio-querymodules- 1 1 1523070240 A - - gz GIO module cache creationbn_copyBN_copy 3ssl 3 1721417624 A - - gz copy BIGNUMsgetsockopt getsockopt 2 getsockopt 3prequest-key.conf- 5 5 1402366674 A - - gz Instantiation handler configuration fileis_immedok- 3x 3 1720626759 B - - gz curses window propertiesinsch- 3x 3 1720626759 B - - gz insert a character before cursor in a curses windowwww::mechanize::linkWWW::Mechanize::Link 3pm 3 1391076350 A - - gz Link object for WWW::Mechanizexcb_alloc_color- 3 3 1540917640 A - - gz Allocate a colorxcb_get_pointer_mapping- 3 3 1540917640 A - - gz dbDB 3pm 3 1698237672 A - - gz programmatic interface to the Perl debugging APIstrace-log-merge- 1 1 1694528833 A - - gz merge strace - ff - tt outputcurs_insch- 3x 3 1715932337 A - - gz insert a character before cursor in a curses windowas AS 1 as 1genpkey- 1ssl 1 1699892200 A - - gz generate a private keylog2f log2f 3 log2f 3psinhl 3p- 3p 3p 1402354218 B - - gz hyperbolic sine functionsbn_mul_low_normal- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionsbn_from_montgomeryBN_from_montgomery 3ssl 3 1721417624 B - - gz Montgomery multiplicationunsetenv unsetenv 3 unsetenv 3pfcstrsetaddfilenameFcStrSetAddFilename 3 3 1520307172 A - - gz add a filename to a string setprotocolversionProtocolVersion 3 3 1710950785 B - - gz Display macros and functionsdatetime::locale::kfo_ciDateTime::Locale::kfo_CI 3pm 3 1402390635 A - - gz fonts.conf- 5 5 1520307172 C fonts-conf - gz sscanf 3- 3 3 1402354212 B - - gz input format conversiondsa_dup_dhDSA_dup_DH 3ssl 3 1699892207 A - - gz create a DH structure out of DSA structurexcb_glx_get_fb_configs_property_list- 3 3 1540917640 B - - gz lvdisplay- 8 8 1619616701 A - - gz Display information about a logical volumedatetime::locale::en_shawDateTime::Locale::en_Shaw 3pm 3 1402390636 A - - gz ctanhf 3- 3 3 1402354208 B - - gz complex hyperbolic tangentevp_aes_256_ccmEVP_aes_256_ccm 3ssl 3 1721417624 B - - gz EVP cipher routines_toupper- 3p 3p 1402354214 A - - gz transliterate lowercase characters to uppercasecursors- n n 1448008912 A - - gz mouse cursors available in Tkgeoipupdate- 1 1 1686578457 A - - gz GeoIP2 and GeoIP Legacy Update Programautomake- 1 1 1402387391 B - - gz manual page for automake 1.13.4xcb_xkb_action_message_event_t- 3 3 1540917640 A - - gz ssl_ctx_remove_sessionSSL_CTX_remove_session 3ssl 3 1721417624 B - - gz manipulate session cachexquerybestcursorXQueryBestCursor 3 3 1710950786 B - - gz manipulate cursorsis_idcok- 3x 3 1720626759 B - - gz curses window propertiessha384sum- 1 1 1605565487 A - - gz compute and check SHA384 message digestxcb_input_xi_query_pointer_unchecked- 3 3 1540917640 B - - gz l64a l64a 3 l64a 3pfallocate fallocate 2 fallocate 1  ~f/DxtapJcIDxcb_Y:DlwreFDmd4߀\cDgetr GzDimagI zDmvgeρ [qpDgetg6 /Ddatep0gDxutfJDnext ֙Dxcb_:Dkeyct'{Ddate3Dcms_S2Dxcb_U)EDwattR3Dbio_:(,Dgnu_A1VDssl_cgDxcb_a5Dmeta60BDset_k9c]Diso- ^{Dxcb_BS-DwarnxAlogr Extap1Iitem Nwcur 1Dscalʇ{Didna'NDexp2$encoL_Dx509<KYDxcb_*4Dwinc߈Ov Dxcb_4nHDtgamfDfcpa<XDmq_tЉ<GCDpam_WKoDeucaDVDxcb_܊,4Drt_s#2N`DpthreVlzDnfs4׋*eucaU"HDlookFOtDregc] 0stap <^DldivN|DmvcuBٰkDpane5<@Ddhcl E2e2Devp_͍NIDxcb_/' Dgrubq 'hDgetp 0KDlocaߎ xDputcw5Dxcb_dateI0menu 4Dstrt Aargz= ;QDttk:M(cDip-v6fini(J /jsondJ]systJ:aDxtapJ Dgets3;6Dxcb_\xmbt<WDDsigd >ynlK>AQDdate5pam_ >mRDdump/ GHDeuca6ӭDfals5deskD}~Dva_s :xcb_ZDdh_sGADxcb_pDcata :NDautr6ֈDasn1FMvDxcb_)Dudpl=>Dcbq0 rDunisA BDrviADxcb_("%Dstrc *6=DxkbaHO0hDlvre 2%VDset_ AEDrand2O{Dxmas 90Dsign KDxcb_$3Dssl_7TXDluti1j=Dapp:SSHDlvmrM#,GDpem_xA{}Ddate3wiDlog1 7Dgmti^ K}Dscal WMDsg_cB+(Dxcb_j4XDcms_d*=EDxcb_50@UDfcfit 4Dauto =xcb_[NO\Dssl_cxJDfsckv C̷Dtcl_JJDxcb_"&{MDdatec3*\Dxcb_Dec_g^DqlenS=9`Dfcva4Dsvc_ F࢒Devp_SLߛDtcl_Ti Dxcb_Dio::JJhIDtempIDeuca ldj!Dxcb_(Dd2i_\ >DexpasDwsca;HqSDxcb_(3Dcerf1 DfcstEaDbaseW GDauto DTDD_set+&pDpthr+MIiDcurs ;֧Dxcb_Dkey_ ;:խDdoveW MiDexit>EDdate0ͮDsg_r; :dDtiff:Dvfws UGTDgetp- 27mDcat l8 Dmodu<tcl_6CYkDfccoHform.D5putuqD 32Dtcl_Y["Dedqu+cbrtiS0 _` SEtcl__ AֶEget_c$I};Etcl_U|Embto` I.Etcl_R/VEwtmpS`(\pEprin\ ;EM{Extse DeuarA(1Ensta4ctan:Esha2* >%Exsetu]1Excb_syst;pow{EPod:!F=Etcl_x@ {Ecurs;RErege 8Excb_UEəEsemo 9lHEaudi/8EcbrtizExpar7='yExkbporLEgrub(fRExcb_61KExcb_@َ{Elapp0@?NEpod:w@Sq/]Etime@dv&Euri:SA CSQEabrt+CEL#Eld_C)IEwinsCOEiswgD LExset"D :/ jEpthrfDRExcb_D$,Epam_ E9|Edbi:REUAExcb_EZEdlopE EQtEttytHF KEmounF #xcb_Č'EcursF i&Ei2d_?G HsExcb_G"JEsetiG perlG 47ExutfGL~EdracIHA>EstrcHD #Excb_Hf{Egit-HTEsyscVI <*$ Essh-IR`EtcumI Cnanl-msgmN =avc_Fctst;ssl_0kfc-c<FD_Z 9semg= 6*EsystEJ3syst 2scal_'gEwgetJ R\'ExempJ McEpod:=KQtempXqEtcl_KPkEtoplK AB Emd4 HL -Epyth~L<ExfetL EEerr_MJExcb_{MExcb_M{xEdateM3Eec_g1Ni$Excb_N0EprocNGGscEtracTO XwDEgrubPNExwmgO :4+EmcheaP4xcb_m*comm@bn_e ?perlB:TXEdb_cP?yEtar P3>Eclnt+QFʅ!Excb_Q!_vExstaQ_Excb_-R!EidnaiR')tEaio_R bdEarp R:Edate S0.EcppQS-pxEfsckS @>EidnaS'Erecv T %$Excms*Ti) EmsgrT)EsignT Ik5EperlUD$8EgpgvcU4mEx509U 8MExcb_UcEcpanVJSEcacohV DEstrnV 8;RExvisV[MEfccohW[ExtpaW B.EcpioX7vEgit-]X, ExcmsXMEprinX 6pfifZ"q8Ewcsn7Y AswabExtgeYGEuuidY A&2Esetg&Z BMEgetsrZ Eevp_Z%faMEtcl_$[?O~Efpatq[ ]Excb_[OEfmt[8СEprov\;EcpanF\Islk_ 6tiff̳jnEdate\ BbbEabor\.mEtanl ]XExkbv]vBEzcmp]3-Ebn_b] 8RExcb_70Etiff$^6ۊExcb_k^+ExtgeinEgssp^;Ecert aoExsel^HcEclntR_Fxcb_list_hosts_reply- 3 3 1540917640 B - - gz lappend- n n 1448008823 A - - gz Append list elements onto a variablepod::perldoc::totextPod::Perldoc::ToText 3pm 3 1402388268 A - - gz let Perldoc render Pod as plaintexttime::localtimeTime::localtime 3pm 3 1698237678 A - - gz by-name interface to Perl's built-in localtime() functionuri::ldapURI::ldap 3pm 3 1402351652 A - - gz LDAP Uniform Resource Locatorsxcb_create_pixmap- 3 3 1540917640 A - - gz Creates a pixmappam_deny- 8 8 1585713586 A - - gz The locking-out PAM modulepoll.h- 0p 0p 1402354203 A - - gz definitions for the poll() functiontouchwin- 3x 3 1720626759 B - - gz curses refresh control routinesxcb_glx_get_minmax_parameterfv_reply- 3 3 1540917640 B - - gz exec 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)abrt-dump-oops- 1 1 1601569733 A - - gz Extract oops from FILE (or standard input)ld- 1 1 1696859911 A - - gz The GNU linkerwinsch- 3x 3 1720626759 B - - gz insert a character before cursor in a curses windowiswgraph iswgraph 3 iswgraph 3pxsetstateXSetState 3 3 1710950786 A - - gz GC convenience routinespthread_spin_unlock- 3p 3p 1402354217 A - - gz unlock a spin lock object (ADVANCED REALTIME THREADS)xcb_input_get_device_button_mapping- 3 3 1540917640 A - - gz pam_chauthtok- 3 3 1585713595 A - - gz updating authentication tokensdbi::const::getinfotypeDBI::Const::GetInfoType 3pm 3 1402362411 A - - gz Data describing GetInfo type codesxcb_uninstall_colormap_checked- 3 3 1540917640 B - - gz dlopen 3p- 3p 3p 1402354214 A - - gz gain access to an executable object filettytype 5- 5 5 1402354219 A - - gz terminal device to default terminal type mappingmount.nfs4- 8 8 1634214566 C mount.nfs - gz curs_addch- 3x 3 1715932335 A - - gz add a character (with attributes) to a curses window, then advance the cursori2d_x509_fpi2d_X509_fp 3ssl 3 1721417624 B - - gz X509 encode and decode functionsxcb_dpms_get_timeouts- 3 3 1540917640 A - - gz setitimer setitimer 2 setitimer 3pxutf8setwmpropertiesXutf8SetWMProperties 3 3 1710950786 B - - gz set standard window propertiesdracut-shutdown.service- 8 8 1601481478 A - - gz unpack the initramfs to /run/initramfsstrchr strchr 3 strchr 3pxcb_list_hosts_hosts_length- 3 3 1540917640 B - - gz git-imap-send- 1 1 1722330781 A - - gz Send a collection of patches from stdin to an IMAP foldersysctl.conf- 5 5 1601486472 A - - gz sysctl preload/configuration filessh-add- 1 1 1707907012 A - - gz adds private key identities to the authentication agenttcumttest- 1 1 1402385697 A - - gz test cases of the on-memory database APIsystemd-sleep- 8 8 1711457788 B - - gz System sleep state logicwgetbkgrnd- 3x 3 1720626759 B - - gz curses window complex background manipulation routinesxemptyregionXEmptyRegion 3 3 1710950786 A - - gz determine if regions are empty or equalpod::parseutilsPod::ParseUtils 3pm 3 1402373048 A - - gz helpers for POD parsing and conversiontcl_unicharncmpTcl_UniCharNcmp 3 3 1448008823 B - - gz routines for manipulating UTF-8 stringstoplevel- n n 1448008912 A - - gz Create and manipulate toplevel widgetsmd4 1ssl- 1ssl 1 1721417624 B - - gz message digestspython_event.conf- 5 5 1601569733 B - - gz configuration file for libreport.xfetchbytesXFetchBytes 3 3 1710950786 B - - gz manipulate cut and paste bufferserr_peek_error_lineERR_peek_error_line 3ssl 3 1721417624 B - - gz obtain error code and dataxcb_glx_get_tex_enviv_data- 3 3 1540917640 B - - gz xcb_xfixes_region_extents- 3 3 1540917640 A - - gz datetime::locale::pt_ptDateTime::Locale::pt_PT 3pm 3 1402390637 A - - gz ec_get_builtin_curvesEC_get_builtin_curves 3ssl 3 1721417624 B - - gz Functions for creating and destroying EC_GROUP objects.xcb_input_xi_get_selected_events_masks_iterator- 3 3 1540917640 B - - gz process_vm_writev- 2 2 1402354205 B - - gz transfer data between process address spacestracepath- 8 8 1533764364 A - - gz traces path to a network host discovering MTU along this pathxwmgeometryXWMGeometry 3 3 1710950786 B - - gz parse window geometrygrub2-mkstandalone- 1 1 1722985065 A - - gz Generate a standalone image in the selected format.mcheck_pedantic- 3 3 1402354211 B - - gz heap consistency checkingdb_checkpoint- 1 1 1481720592 A - - gz Periodically checkpoint transactionstar 1- 1 1 1573511261 A - - gz manual page for tar 1.26clnt_broadcast- 3 3 1402354207 B - - gz library routines for remote procedure callsxcb_xinerama_query_screens_reply- 3 3 1540917640 B - - gz xstandardcolormapXStandardColormap 3 3 1710950785 B - t gz allocate, set, or read a standard colormap structurexcb_input_get_device_key_mapping- 3 3 1540917640 A - - gz idna_to_unicode_8z8z- 3 3 1448125246 A - - gz API functionaio_return aio_return 3 aio_return 3parp 8- 8 8 1565313023 A - - gz manipulate the system ARP cachedatetime::locale::hrDateTime::Locale::hr 3pm 3 1402390642 A - - gz cpp- 1 1 1601432236 A - - gz The C Preprocessorfsck.minix- 8 8 1612283497 A - - gz check consistency of Minix filesystemidna_to_unicode_4z4z- 3 3 1448125246 A - - gz API functionrecvfrom recvfrom 2 recvfrom 3pxcmsqueryblueXcmsQueryBlue 3 3 1710950786 B - - gz obtain black, blue, green, red, and white CCC color specificationsmsgrcv msgrcv 2 msgrcv 3psignalfd4- 2 2 1402354206 B - - gz create a file descriptor for accepting signalsperlrecharclass- 1 1 1698237667 A - - gz Perl Regular Expression Character Classesgpgv2- 1 1 1533764355 A - - gz Verify OpenPGP signaturesx509 3ssl- 3ssl 3 1699892218 A - - gz X.509 certificate handlingxcb_glx_render_mode_data_end- 3 3 1540917640 B - - gz cpan 1- 1 1 1698237392 A - - gz easily interact with CPAN from the command linecacosh 3p- 3p 3p 1402354214 A - - gz complex arc hyperbolic cosine functionsstrncmp 3p- 3p 3p 1402354218 A - - gz compare part of two stringsxvisualidfromvisualXVisualIDFromVisual 3 3 1710950786 B - t gz obtain visual information and visual structurefcconfiggetcacheFcConfigGetCache 3 3 1520307172 A - - gz DEPRECATED used to return per-user cache filenamextparentXtParent 3 3 1501646833 A - - gz obtain widget's parent widget idcpio 5- 5 5 1580221477 A - - gz format of cpio archive filesgit-fast-export- 1 1 1722330783 A - - gz Git data exporterxcmscccofcolormapXcmsCCCOfColormap 3 3 1710950786 A - - gz query and modify CCC of a colormapprintf 3- 3 3 1402354213 A - - gz formatted output conversionwcsncat 3- 3 3 1402354213 A - - gz concatenate two wide-character stringsxtgetsubvaluesXtGetSubvalues 3 3 1501646833 B - - gz obtain and set widget resourcesuuid_compare- 3 3 1612283497 A - - gz compare whether two UUIDs are the samesetgroups- 2 2 1402354205 B - - gz get/set list of supplementary group IDsgetservent getservent 3 getservent 3pevp_pkey_ctx_set_rsa_rsa_keygen_bitsEVP_PKEY_CTX_set_rsa_rsa_keygen_bits 3ssl 3 1721417624 B - - gz algorithm specific control operationstcl_setvar2exTcl_SetVar2Ex 3 3 1448008822 B - - gz manipulate Tcl variablesfpathconf fpathconf 3 fpathconf 3pxcb_xv_get_still_checked- 3 3 1540917640 B - - gz fmt- 1 1 1605565487 A - - gz simple optimal text formatterprove- 1 1 1439389327 A - - gz Run tests through a TAP harness.cpanplus::configureCPANPLUS::Configure 3pm 3 1402392266 A - - gz configuration for CPANPLUSdate::formatDate::Format 3pm 3 1402364546 A - - gz Date formating subroutinesabort abort 3 abort 3ptanl tanl 3 tanl 3pxkbvirtualmodstorealXkbVirtualModsToReal 3 3 1710950785 A - - gz Determines the mapping of virtual modifiers to core X protocol modifierszcmp- 1 1 1652367512 B - - gz compare compressed filesbn_bn2binBN_bn2bin 3ssl 3 1721417624 A - - gz format conversionstiffcurrentstripTIFFCurrentStrip 3tiff 3 1729525165 C TIFFquery - gz xcb_shape_get_rectangles_rectangles_length- 3 3 1540917640 B - - gz gssproxy-mech- 8 8 1623255005 A - - gz GssProxy GSSAPI mechanism pluginxselectioneventXSelectionEvent 3 3 1710950786 A - - gz SelectionNotify event structureclnttcp_create- 3 3 1402354208 B - - gz library routines for remote procedure callstcl_panicvaTcl_PanicVA 3 3 1448008822 B - - gz report fatal error and abortmbtowc 3p- 3p 3p 1402354216 A - - gz convert a character to a wide-character codewtmp- 5 5 1402354219 B - - gz login recordsssl_set_modeSSL_set_mode 3ssl 3 1699892220 A - - gz manipulate SSL engine modeblkparse- 1 1 1565305324 A - - gz produce formatted output of event streams of block devicesxcreatebitmapfromdataXCreateBitmapFromData 3 3 1710950786 B - - gz manipulate bitmapsfcpatternduplicateFcPatternDuplicate 3 3 1520307172 A - - gz Copy a patterntk_menubartk_menuBar n n 1448008912 B - - gz Obsolete support for menu barspthread_cleanup_pop pthread_cleanup_pop 3 pthread_cleanup_pop 3pgit-repo-config- 1 1 1722330780 A - - gz Get and set repository or global optionsiptables-xml- 1 1 1601571148 A - - gz Convert iptables-save format to XMLeuca-delete-volume- 1 1 1484780705 A - - gz Delete a volumesigdelset 3- 3 3 1402354212 B - - gz POSIX signal set operations.mbsrtowcs mbsrtowcs 3 mbsrtowcs 3pxcb_glx_get_lightiv- 3 3 1540917640 A - - gz file::spec::unixFile::Spec::Unix 3pm 3 1402373475 A - - gz File::Spec for Unix, base for other File::Spec moduleswcpncpy- 3 3 1402354213 A - - gz copy a fixed-size string of wide characters, returning a pointer to its endpem_write_x509_auxPEM_write_X509_AUX 3ssl 3 1721417624 B - - gz PEM routinessemanage-interface- 8 8 1585713889 A - - gz SELinux Policy Management network interface toolgetopts 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)xcb_glx_get_polygon_stipple- 3 3 1540917640 A - - gz pam_get_authtok_verify- 3 3 1585713595 B - - gz get authentication tokenmodfl 3p- 3p 3p 1402354216 B - - gz decompose a floating-point numbereuare-servercertgetattributes- 1 1 1484780705 A - - gz Show the ARN and GUID of a server certificateclogl 3p- 3p 3p 1402354214 B - - gz complex natural logarithm functionsvscanf vscanf 3 vscanf 3pxtcallocXtCalloc 3 3 1501646833 B - - gz memory management functionsxcb_query_tree_children_end- 3 3 1540917640 B - - gz query the window treexcb_warp_pointer_checked- 3 3 1540917640 B - - gz move mouse pointerisinf isinf 3 isinf 3prev- 1 1 1612283497 A - - gz reverse lines of a file or filesatan2 3- 3 3 1402354207 A - - gz arc tangent function of two variablesobj_nid2snOBJ_nid2sn 3ssl 3 1721417624 B - - gz ASN1 object utility functionstcl_setobjlengthTcl_SetObjLength 3 3 1448008822 B - - gz manipulate Tcl objects as stringswinnstr- 3x 3 1720626759 B - - gz get a string of characters from a curses windowhsearch 3p- 3p 3p 1402354215 A - - gz manage hash search tablestrtok 3p- 3p 3p 1402354218 A - - gz split string into tokensputwc putwc 3 putwc 3pccpp_retrace_event.conf- 5 5 1601569733 B - - gz configuration file for libreport.zlib_decompress- 1 1 1697025034 A - - gz decompress mysqlpump ZLIB-compressed outputssl_callback_ctrlSSL_callback_ctrl 3ssl 3 1721417624 B - - gz internal handling functions for SSL_CTX and SSL objectstcdrain 3- 3 3 1402354213 B - - gz get and set terminal attributes, line control, get and set baud ratenamed-journalprint- 8 8 1725373373 A - - gz print zone journal in human-readable formselinux_current_policy_path- 3 3 1585710994 B - - gz These functions return the paths to the active SELinux policy configuration directories and filesvmsish- 3pm 3 1698237678 A - - gz Perl pragma to control VMS-specific language featuresmq_getsetattr- 2 2 1402354205 A - - gz get/set message queue attributesgit-pack-redundant- 1 1 1722330782 A - - gz Find redundant pack filesmodprobe.conf- 5 5 1588181505 B - - gz Configuration directory for modprobedbm_filter::encodeDBM_Filter::encode 3pm 3 1698237673 A - - gz filter for DBM_Filterdatetime::locale::nbDateTime::Locale::nb 3pm 3 1402390641 A - - gz pic- 1 1 1533764324 A - - gz compile pictures for troff or TeXva_arg 3- 3 3 1402354213 B - - gz variable argument listsxcb_set_access_control_checked- 3 3 1540917640 B - - gz x509_check_ipX509_check_ip 3ssl 3 1721417624 B - - gz X.509 certificate matchingbio_get_conn_portBIO_get_conn_port 3ssl 3 1721417624 B - - gz connect BIOxtgrabpointerXtGrabPointer 3 3 1501646833 B - - gz manage grabsaudit.rules- 7 7 1565265962 A - - gz a set of rules loaded in the kernel audit system xcb_2strc <Frndc6Flwre;AFx509Ghash:>evp_IFgetr(NTFrequ %cFtiffQbcFxcb_SFxcb_ǣJFpod:(T{GFdate3BJFdateUfFfreeGBrlFdbix U^Fsg_sHvFevp_IEargzi ;¦Fproj =LFxcb_,/Fbsea/ :FxtsesP[Fform Ndbi:+PWwFfind0,>Fgethd &2FconfWQsFldap HAMFtcl_QKhFmake 9;Fxcb_*f Ftcl_8 6tFtcl_zYdFmsgo<8Fperr$IFtap:HQ!Fqsor(CFffsl7IFcron FcursC^Ftcl_VFform':@FlwreqAix;Frepl75Fxcb_!Q Fgit-@A*LFposi"fu#Finet 68GFnanl]0F>FrepoA5Fgetn7aFFgetp. gFxcb_Oi}Funlo DZFsyst >Fasr? box+Pxml:,M|FgenpM4Flog2SFsinh 65Fbn_m?X=Fbn_f1HFunse vFfcstK3Fprot EyFdatea4xkba.NƗFfont $|Fssca 2ϫFdsa_ Qxcb_0!Fxcb_t%WFlvdi E$Fdate5k"FctanR 5vncFevp_?6F_tou Lwcss2 <powl2+posi!3aulim30.5Fcurs48syst445 Fgeoit AGxFauto :МFxcb_I2Fssl_>KFxque<eFis_i 4tFsha3* BFxcb_v%euca6'Hcosf7VFl64ai$Fssl_p CFblkpPp UuFxcrepAfdFfcpaq: Ftk_mRq B/sFfall ͖Fpthrq.Fgit-qCAFipta4r >GFeucar*2P8Fsigdr 7Fmbsrr Fxcb_#sGFfileRsbsFwcpnsf, Fpem_3t;gAFsematKZFgetot >=Fxcb_'uFpam_^u3{2Fmodfu >։2FeuaruH-FclogUv @VFvscav>Fxtcav =syst|0xkbgO+տ Gxcb_v0jGxcb_Kw-qGisinwSGrevw;2YGatanw@mGobj_0x DGxcb_uGxcb_"*LGhsea.y 5msga QnGstrtny 5GputwyJGGccppy<xfre =xuni =YmGzlibzFNKGssl_ozeGtcdrz _ GnameO{D_&7Gseli{|^lGvmsi>|RVFLGmq_g|;"Ggit-|4LbGmodp'}?pthrYec_gj_logr Extap1Ij_Gdbm_t}C%Gdate}0ooGpic~<{Gva_aO~ 2Gxcb_~]vGx509~DfGbio_9CcgGxtgra3getp Dxcb_b=uGaudi Kxutf IfcgeO 9)g]Gfcst =%Gtcl_IQGebta O[tGtiffנ3٧Gxcb_&ĶGtdesY /؀Gdbd:WGdf 1>DGec_kApH^Gstrx¢ 0Gxtex QoGcursW RْGsyst <xtgeAfsee MdGxconPtlsv[v{̢Gdatee3;GGstra9pGxtadH?]GmsgsJ 7I&Gmd2_ E ;Gfcnt٥Gxnoo+fLGnear, 3k5Gupdal<e|GposiTTGtcl_&r{^8Gdate3,GxintT GlwreaQGxcb_ɨkGxset L-TGpthr[2Gtcl_>_|Gxcb__ՠGlwre*FUGdef_;R7GeuarԪ8UGzfor!D{^)Gdatel3$Gxcb_'pGqdel.4+Gtcl_,@Gresc{XGtcl_ O(:GveriA KGgit- C7Gcore?X.Gposi4f%vGungesGxcb_ʮGgfdl9WG_fluQ =Gsyst:*{Geuca<xgetc OGpthrR2PGsetkjJ:Ggit-+GperlQ <QGclnt F{uGdate3 Gxkbk5 <DAGdate~g 3GfcpaT'GsemaiLtxGxcb_ɳ#-zGcgi: JC!Gfconm ;6Glsns*YGx509VGxcb_V ʪGdate8$WGxqms J߲Gpos_99LGtail%`Ggrub >@Gyes˶BGcapt U!=Gendpp@;Gxcb_.4dGsvceFt8Geulb\1 Gtmpn ?ڼGtolo L@JGxcb_<1Glock 4IGatex Y{TGdata#WNGpowl*[(Gstrn <wGxkba=Gpem_M>Gdl_i>sdcGtee 3}Gperl(0fmaxF@ Zzipm@ -posi@2[GGctan` AmvinoA SGsgp_[ Gextu Vfget#oGwinnxK-Gxgett AGdate½0$GbunddNAGepoly:$JGterm8. Gsche;ջGxcb_M&Gipcs@NWGsigr MGtcl_xKUGset_W0fcstrsetdelFcStrSetDel 3 3 1520307172 A - - gz delete from a string settcl_listobjappendelementTcl_ListObjAppendElement 3 3 1448008822 A - - gz manipulate Tcl objects as listsebtables- 8 8 1523414694 A - - gz tiffflushdataTIFFFlushData 3tiff 3 1729525165 C TIFFFlush - gz xcb_xf86dri_get_device_info_unchecked- 3 3 1540917640 B - - gz tdestroy- 3 3 1402354213 B - - gz manage a binary treedbd::file::developersDBD::File::Developers 3pm 3 1402362413 A - - gz Developers documentation for DBD::Filedf 1- 1 1 1605565487 A - - gz report file system disk space usageec_key_check_keyEC_KEY_check_key 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_KEY objects.strxfrm 3- 3 3 1402354212 A - - gz string transformationxtextitemXTextItem 3 3 1710950786 B - - gz draw polytext text and text drawing structurescurs_bkgrnd- 3x 3 1715932336 A - - gz curses window complex background manipulation routinessystemd-hwdb- 8 8 1711457788 A - - gz hardware database management toolxconfigurerequesteventXConfigureRequestEvent 3 3 1710950786 A - - gz ConfigureRequest event structuredatetime::locale::ne_npDateTime::Locale::ne_NP 3pm 3 1402390639 A - - gz strace- 1 1 1694528833 A - t gz trace system calls and signalsxtaddeventhandlerXtAddEventHandler 3 3 1501646833 A - - gz add and remove event handlersmsgsnd 3p- 3p 3p 1402354216 A - - gz XSI message send operationmd2_initMD2_Init 3ssl 3 1721417624 B - - gz MD2, MD4, and MD5 hash functionsfcntl Fcntl 3pm fcntl 2 fcntl 3pxnoopXNoOp 3 3 1710950786 A - - gz No Operationnearbyintf 3- 3 3 1402354211 B - - gz round to nearest integerupdate_panels- 3x 3 1720626759 B - - gz panel stack extension for cursesposix_trace_attr_getlogsize- 3p 3p 1402354217 A - - gz retrieve and set trace stream size attributes (TRACING)tcl_utftolowerTcl_UtfToLower 3 3 1448008822 B - - gz routines for manipulating the case of Unicode characters and UTF-8 stringsdatetime::locale::ga_ieDateTime::Locale::ga_IE 3pm 3 1402390634 A - - gz xinternalconnectionnumbersXInternalConnectionNumbers 3 3 1710950786 B - - gz handle Xlib internal connectionslwres_gnbarequest_free- 3 3 1725373371 B - - gz lightweight resolver getnamebyaddress message handlingxcb_glx_get_string_string_end- 3 3 1540917640 B - - gz xsetfontpathXSetFontPath 3 3 1710950786 A - - gz set, get, or free the font search pathpthread_attr_getstack pthread_attr_getstack 3 pthread_attr_getstack 3ptcl_globalevalobjTcl_GlobalEvalObj 3 3 1448008821 B - - gz execute Tcl scriptsxcb_randr_set_panning_reply- 3 3 1540917640 B - - gz lwres_nooprequest_parse- 3 3 1725373371 B - - gz lightweight resolver no-op message handlingdef_prog_mode_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensioneuare-grouplistusers- 1 1 1484780705 A - - gz List all the users in a groupzforce- 1 1 1652367512 A - - gz force a '.gz' extension on all gzip filesdatetime::locale::ku_iqDateTime::Locale::ku_IQ 3pm 3 1402390638 A - - gz xcb_glx_make_context_current_unchecked- 3 3 1540917640 B - - gz qdel- 1p 1p 1402354204 A - - gz delete batch jobstcl_objgetvar2Tcl_ObjGetVar2 3 3 1448008822 B - - gz manipulate Tcl variablesrescan-scsi-bus.sh- 8 8 1574879742 A - - gz script for adding and removing SCSI devices without rebootingtcl_fschdirTcl_FSChdir 3 3 1448008822 B - - gz procedures to interact with any filesystemverifytree- 1 1 1589300861 A - - gz verify that a local yum repository is consistentgit-config- 1 1 1722330784 A - - gz Get and set repository or global optionscoredump.conf.d- 5 5 1711457788 B - - gz Coredump storage configuration filesposix_trace_shutdown- 3p 3p 1402354217 B - t gz trace stream initialization, flush, and shutdown from a process (TRACING)ungetc ungetc 3 ungetc 3pxcb_get_image_unchecked- 3 3 1540917640 B - - gz gfdl-libstdc++-plesk-6.3.0- 7 7 1547112203 A - - gz GNU Free Documentation License_flushlbf- 3 3 1402354207 B - - gz interfaces to stdio FILE structuresystemd-quotacheck- 8 8 1711457788 B - - gz File system quota checker logictail tail 1p tail 1euca-describe-regions- 1 1 1484780705 A - - gz Display information about regionspthread_setschedparam pthread_setschedparam 3 pthread_setschedparam 3psetkeycreatecon- 3 3 1585710994 B - - gz get or set the SELinux security context used for creating a new kernel keyringsgit-filter-branch- 1 1 1722330781 A - - gz Rewrite branchesperlretut- 1 1 1698237668 A - - gz Perl regular expressions tutorialclnt_control- 3 3 1402354208 B - - gz library routines for remote procedure callsdatetime::locale::id_idDateTime::Locale::id_ID 3pm 3 1402390640 A - - gz xkbkeyactionXkbKeyAction 3 3 1710950785 A - - gz Returns the key actiondatetime::timezone::local::vmsDateTime::TimeZone::Local::VMS 3pm 3 1565315819 A - - gz Determine the local system's time zone on VMSfcpatternaddweakFcPatternAddWeak 3 3 1520307172 A - - gz Add a value to a pattern with weak bindingsemanage-permissive- 8 8 1585713889 A - - gz SELinux Policy Management permissive mapping toolxcb_query_font_char_infos_iterator- 3 3 1540917640 B - - gz query font metricscgi::utilCGI::Util 3pm 3 1402342275 A - - gz Internal utilities used by CGI modulefconfigure- n n 1448008823 A - - gz Set and get options on a channellsns- 8 8 1612283497 A - - gz list namespacesx509_verify_param_add0_policyX509_VERIFY_PARAM_add0_policy 3ssl 3 1721417624 B - - gz X509 verification parametersxcb_input_xi_get_property_items- 3 3 1540917640 B - - gz datetime::locale::ha_arab_sdDateTime::Locale::ha_Arab_SD 3pm 3 1402390638 A - - gz xqmstats- 8 8 1284035243 A - - gz Display XFS quota manager statistics from /procpos_form_cursor- 3x 3 1720626759 B - - gz position a form window cursorgrub2-file- 1 1 1722985065 A - - gz Check if FILE is of specified type.yes- 1 1 1605565487 A - - gz output a string repeatedly until killedcaptoinfo- 1m 1 1715932335 A - t gz convert a termcap description into a terminfo descriptionendprotoent 3p- 3p 3p 1402354215 A - - gz network protocol database functionsxcb_selinux_get_selection_context_context_end- 3 3 1540917640 B - - gz svcerr_noprog- 3 3 1402354212 B - - gz library routines for remote procedure callseulb-create-lb- 1 1 1484780705 A - - gz Create a load balancertmpnam 3p- 3p 3p 1402354219 A - - gz create a name for a temporary filetolower 3p- 3p 3p 1402354219 A - - gz transliterate uppercase characters to lowercasexcb_get_property_reply- 3 3 1540917640 B - - gz Gets a window propertylockf 3p- 3p 3p 1402354216 A - t gz record locking on filesatexit 3- 3 3 1402354207 A - - gz register a function to be called at normal process terminationdata::dump::traceData::Dump::Trace 3pm 3 1390483835 A - - gz Helpers to trace function and method callspowl 3- 3 3 1402354211 B - - gz power functionsstrnames- 3x 3 1720626759 B - - gz curses terminfo global variablesxkbaddgeomrowXkbAddGeomRow 3 3 1710950785 A - - gz Add a row to a sectionpem_read_bio_x509_crlPEM_read_bio_X509_CRL 3ssl 3 1721417624 B - - gz PEM routinesdl_iterate_phdr- 3 3 1402354208 A - - gz walk through list of shared objectstee 2- 2 2 1402354206 A - - gz duplicating pipe contentperlobj- 1 1 1698237666 A - - gz Perl object referencectanhl 3p- 3p 3p 1402354214 B - - gz complex hyperbolic tangent functionssgp_dd- 8 8 1585715378 A - - gz copy data to and from files and devices, especially SCSI devicesextutils::mm_qnxExtUtils::MM_QNX 3pm 3 1402365500 A - - gz QNX specific subclass of ExtUtils::MM_UnixxgetatomnameXGetAtomName 3 3 1710950786 B - - gz create or return atom namesdatetime::locale::psDateTime::Locale::ps 3pm 3 1402390633 A - - gz bundle::plrpcBundle::PlRPC 3pm 3 1402366910 A - - gz A bundle to install PlRPC-Server, Client and prerequisites.epoll- 7 7 1402354219 A - - gz I/O event notification facilityterm 5- 5 5 1715932340 A - - gz format of compiled term file.sched_get_priority_min 3p- 3p 3p 1402354218 B - - gz get priority limits (REALTIME)xcb_x_print_print_query_version_reply- 3 3 1540917640 B - - gz ipcs 1- 1 1 1612283497 A - - gz provide information on IPC facilitiessigreturn- 2 2 1402354206 A - - gz return from signal handler and cleanup stack frameset_field_buffer- 3x 3 1720626759 B - - gz field buffer controlxcb_dri2_connect_driver_name- 3 3 1540917640 B - - gz xcb_xfixes_delete_pointer_barrier- 3 3 1540917640 A - - gz times 3p- 3p 3p 1402354219 A - - gz get process and waited-for child process timesxcb_input_xi_warp_pointer_checked- 3 3 1540917640 B - - gz xkbchangeenabledcontrolsXkbChangeEnabledControls 3 3 1710950785 A - t gz Manipulates the EnabledControls controlxcb_input_xi_list_properties- 3 3 1540917640 A - - gz fcntl.h- 0p 0p 1402354203 A - - gz file control optionspthread_getcpuclockid 3p- 3p 3p 1402354217 A - - gz access a thread CPU-time clock (ADVANCED REALTIME THREADS)securetty- 5 5 1402354219 A - - gz file which lists terminals from which root can log inexit 2- 2 2 1402354204 B - - gz terminate the calling processfccharsetdelcharFcCharSetDelChar 3 3 1520307172 A - - gz Add a character to a charsetreq- 1ssl 1 1699892201 A - - gz PKCS#10 certificate request and certificate generating utility.cp 1p- 1p 1p 1402354203 A - - gz copy fileslscpu- 1 1 1612283497 A - - gz display information about the CPU architectureputmsg 2- 2 2 1402354205 B - - gz unimplemented system callsxcb_xf86dri_create_context_reply- 3 3 1540917640 B - - gz tcl_limitsetgranularityTcl_LimitSetGranularity 3 3 1448008822 B - - gz manage and check resource limits on interpretersxcb_glx_buffer_swap_complete_event_t- 3 3 1540917640 A - - gz fclangnormalizeFcLangNormalize 3 3 1520307172 A - - gz Normalize the language stringxcb_selinux_get_window_create_context_context_length- 3 3 1540917640 B - - gz $home/.odbc.ini$HOME/.odbc.ini 5 5 1565320310 C odbc.ini - gz fcfontsetdestroyFcFontSetDestroy 3 3 1520307172 A - - gz Destroy a font seteps2eps- 1 1 1601482853 A - - gz Ghostscript PostScript "distiller"xcb_ge_generic_event_t- 3 3 1540917640 A - - gz generic event (with length)dde- n n 1448008823 A - - gz Execute a Dynamic Data Exchange commandbio_set_accept_portBIO_set_accept_port 3ssl 3 1721417624 B - - gz accept BIOxcb_record_free_context- 3 3 1540917640 A - - gz net::http::nbNet::HTTP::NB 3pm 3 1402390514 A - - gz Non-blocking HTTP clientxcb_glx_get_visual_configs_property_list_length- 3 3 1540917640 B - - gz idn_free- 3 3 1448125246 A - - gz API functionpkcs7_get0_signersPKCS7_get0_signers 3ssl 3 1721417624 B - - gz verify a PKCS#7 signedData structurestat64- 2 2 1402354206 B - t gz get file statusfcvalueequalFcValueEqual 3 3 1520307172 A - - gz Test two values for equalityusb_modeswitch- 1 1 1523404127 A - - gz control the mode of 'multi-state' USB devicescrontab 1- 1 1 1684247301 A - - gz maintains crontab files for individual usersxcb_glx_get_color_table_parameterfv_unchecked- 3 3 1540917640 B - - gz rintf rintf 3 rintf 3pxcb_xfixes_get_cursor_image- 3 3 1540917640 A - - gz datetime::locale::fr_snDateTime::Locale::fr_SN 3pm 3 1402390635 A - - gz cpanplus::internals::source::memoryCPANPLUS::Internals::Source::Memory 3pm 3 1402392266 A - - gz In memory implementationpatch patch 1p patch 1sincosl- 3 3 1402354212 B - - gz calculate sin and cos simultaneouslyscsi_mandat- 8 8 1585715378 A - - gz check SCSI device support for mandatory commandsinchstr- 3x 3 1720626759 B - - gz get a string of characters (and attributes) from a curses windowFontDatabase 5- 5 5 1198424983 A - - gz database of fonts accessible to t1lib.git-fmt-merge-msg- 1 1 1722330783 A - - gz Produce a merge commit messagetemplate::plugin::cgiTemplate::Plugin::CGI 3pm 3 1402357152 A - - gz Interface to the CGI moduletowlower 3p- 3p 3p 1402354219 A - - gz transliterate uppercase wide-character code to lowercaseps 1p- 1p 1p 1402354204 A - t gz report process statusptx- 1 1 1605565487 A - - gz produce a permuted index of file contentsxcb_present_generic_event_t- 3 3 1540917640 A - - gz sfb- 8 8 1601484048 C tc-sfb - gz consoletype- 1 1 1605543617 A - - gz print type of the console connected to standard inputdb_log_verify- 1 1 1481720625 A - - gz Verify log files of a database environmentlibtoolize- 1 1 1492023431 A - - gz manual page for libtoolize 2.4.1apidstat- 1 1 1697208922 A - - gz Report statistics for Linux tasks.srandom 3- 3 3 1402354212 B - - gz random number generatorxtfreeXtFree 3 3 1501646833 B - - gz memory management functionskeyctl_get_security_alloc- 3 3 1573510998 B - - gz Retrieve a key's security contextxcb_glx_query_server_string- 3 3 1540917640 A - - gz git-tar-tree- 1 1 1722330782 A - - gz Create a tar archive of the files in the named tree objectpem_read_bio_x509_auxPEM_read_bio_X509_AUX 3ssl 3 1721417624 B - - gz PEM routinespam_get_authtok- 3 3 1585713595 A - - gz get authentication tokenmq_open 2- 2 2 1402354205 B - - gz open a message queuefcdirsaveFcDirSave 3 3 1520307172 A - - gz DEPRECATED: formerly used to save a directory cacheperltodo- 1 1 1698237670 A - - gz Perl TO-DO Listpcreperform- 3 3 1501643278 A - - gz Perl-compatible regular expressionstemplate::manual::syntaxTemplate::Manual::Syntax 3pm 3 1402357152 A - - gz Directive syntax, structure and semanticsnamei- 1 1 1612283497 A - - gz follow a pathname until a terminal point is foundxrmgetdatabaseXrmGetDatabase 3 3 1710950786 B - - gz retrieve and store resource databasessg_sat_set_features- 8 8 1585715378 A - - gz use ATA SET FEATURES command via a SCSI to ATA Translation (SAT) layererr_peek_last_error_lineERR_peek_last_error_line 3ssl 3 1721417624 B - - gz obtain error code and dataxcb_glx_pixel_storef- 3 3 1540917640 A - - gz euwatch-describe-alarm-history- 1 1 1484780705 A - - gz Retrieve history for one alarm or all alarmssigaction 2- 2 2 1402354206 A - - gz examine and change a signal actionlocale::codes::langext_retiredLocale::Codes::LangExt_Retired 3pm 3 1402383323 A - - gz retired langext codes for the Locale::Codes::LangExt moduleexp 3p- 3p 3p 1402354215 A - - gz exponential functionxcb_render_create_cursor- 3 3 1540917640 A - - gz ecvt_r- 3 3 1402354211 A - - gz convert a floating-point number to a stringtcl_getintfromobjTcl_GetIntFromObj 3 3 1448008822 B - - gz manipulate Tcl objects as integer valuesmontage- 1 1 1731392889 A - - gz create a composite image by combining several separate images. The images are tiled on the composite image optionally adorned with a border, frame, image name, and more.lwres_noopresponse_parse- 3 3 1725373371 B - - gz lightweight resolver no-op message handlingevp_digestupdateEVP_DigestUpdate 3ssl 3 1721417624 B - - gz EVP digest routinescpupower-frequency-info- 1 1 1731045638 A - - gz object::accessorObject::Accessor 3pm 3 1698237389 A - - gz interface to create per object accessorsxcb_randr_get_provider_info_associated_providers- 3 3 1540917640 B - - gz xcb_dri2_swap_interval- 3 3 1540917640 A - - gz pcre32_maketables- 3 3 1573510868 B - - gz Perl-compatible regular expressionspcre32_get_stringnumber- 3 3 1573510868 B - - gz Perl-compatible regular expressionspod::pom::node::itemPod::POM::Node::Item 3pm 3 1402385888 A - - gz compress- 1p 1p 1402354203 A - - gz compress datacpanplus::dist::build::constantsCPANPLUS::Dist::Build::Constants 3pm 3 1402353121 A - - gz Constants for CPANPLUS::Dist::Builddes_string_to_2keysDES_string_to_2keys 3ssl 3 1721417624 B - - gz DES encryptionioctl 3p- 3p 3p 1402354216 A - - gz control a STREAMS device (STREAMS)tcl_unstackchannelTcl_UnstackChannel 3 3 1448008821 B - - gz manipulate stacked I/O channelsxcb_x_print_print_get_attributes_attributes- 3 3 1540917640 B - - gz pwrite 2- 2 2 1402354205 B - - gz read from or write to a file descriptor at a given offsetxcb_input_list_device_properties_unchecked- 3 3 1540917640 B - - gz datetime::locale::glDateTime::Locale::gl 3pm 3 1402390635 A - - gz standards- 7 7 1402354220 A - - gz C and UNIX Standardshypot 3- 3 3 1402354210 A - - gz Euclidean distance functionslk_clear- 3x 3 1720626759 B - - gz curses soft label routinespod::pom::node::head4Pod::POM::Node::Head4 3pm 3 1402385888 A - - gz color_content_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensiondatetime::locale::ur_pkDateTime::Locale::ur_PK 3pm 3 1402390639 A - - gz doveadm-log- 1 1 1724195936 A - - gz Locate, test or reopen Dovecot's log filesmantisbt_format_analyzer_libreport.conf- 5 5 1585834715 A - - gz configuration file for libreport.xcb_selinux_get_selection_create_context- 3 3 1540917640 A - - gz xcb_selinux_set_selection_use_context_checked- 3 3 1540917640 B - - gz wctrans wctrans 3 wctrans 3pwcsrtombs 3p- 3p 3p 1402354219 A - - gz convert a wide-character string to a character string (restartable)bn_gencb_set_oldBN_GENCB_set_old 3ssl 3 1721417624 B - - gz generate primes and test for primalitycmsg- 3 3 1402354208 A - - gz access ancillary dataxcb_xf86dri_auth_connection_reply- 3 3 1540917640 B - - gz /etc/nscd.conf- 5 5 1402354219 C nscd.conf - gz roundf 3p- 3p 3p 1402354218 B - - gz round to the nearest integer value in a floating-point formatgetdents- 2 2 1402354204 A - - gz get directory entriesaio_error aio_error 3 aio_error 3prnano- 1 1 1402375673 A - - gz Restricted mode for Nano's ANOther editor, an enhanced free Pico clonensupdate- 1 1 1725373374 A - - gz Dynamic DNS update utilitysighold 3p- 3p 3p 1402354218 B - - gz signal managementx509_verify_param_set_hostflagsX509_VERIFY_PARAM_set_hostflags 3ssl 3 1721417624 B - - gz X509 verification parameterseuscale-describe-account-limits- 1 1 1484780705 A - - gz Describe your account's limits on auto-scaling resourceseventfd_read- 3 3 1402354208 B - - gz create a file descriptor for event notificationxcb_free_colormap- 3 3 1540917640 A - - gz system system 3 system 3pxcb-examples- 3 3 1540917641 A - - gz manpage examplescurs_legacy- 3x 3 1715932338 A - - gz get curses cursor and window coordinates, attributesxcb_record_free_context_checked- 3 3 1540917640 B - - gz sigrelse 3- 3 3 1402354212 B - - gz System V signal APIfegetround 3p- 3p 3p 1402354215 A - - gz get and set current rounding directionxsetwindowbackgroundpixmapXSetWindowBackgroundPixmap 3 3 1710950785 B - - gz change window attributessync 3p- 3p 3p 1402354218 A - - gz schedule file system updatesselinux_getenforcemode- 3 3 1585710994 A - - gz get the enforcing state of SELinuxremap_file_pages- 2 2 1402354205 A - - gz create a nonlinear file mappingevp_des_ede3_cfbEVP_des_ede3_cfb 3ssl 3 1721417624 B - - gz EVP cipher routinessearch::dictSearch::Dict 3pm 3 1698237677 A - - gz look - search for key in dictionary filetimeb.h- 0p 0p 1402354203 B - - gz additional definitions for date and timefcpatterngetftfaceFcPatternGetFTFace 3 3 1520307172 C FcPatternGet-Type - gz arpa/inet.h- 0p 0p 1402354203 C inet.h - gz ceilf 3- 3 3 1402354207 B - - gz ceiling function: smallest integral value not less than argumentproc 5- 5 5 1402354219 A - - gz process information pseudo-file systemkeyname- 3x 3 1720626759 B - - gz miscellaneous curses utility routineskeyctl keyctl 3 keyctl 2 keyctl 1wscrl- 3x 3 1720626759 B - - gz scroll a curses windowxcb_glx_is_direct_unchecked- 3 3 1540917640 B - - gz FD_ZERO 2- 2 2 1402354205 C select_tut - gz xcb_glx_query_version_reply- 3 3 1540917640 B - - gz vim vim 1fopen 3p- 3p 3p 1402354215 A - - gz open a streamperlhpux- 1 1 1698237666 A - - gz Perl version 5 on Hewlett-Packard Unix (HP-UX) systemsgit-rebase- 1 1 1722330781 A - - gz Forward-port local commits to the updated upstream headxtaddworkprocXtAddWorkProc 3 3 1501646833 B - - gz register input, timeout, and workprocsisinff- 3 3 1402354210 B - - gz BSD floating-point classification functionsbn_divBN_div 3ssl 3 1721417624 B - - gz arithmetic operations on BIGNUMs__realloc_hook- 3 3 1402354207 B - - gz malloc debugging variablesjson::backportppJSON::backportPP 3pm 3 1402382640 A - - gz JSON::XS compatible pure-Perl module.lstat64- 2 2 1402354205 B - t gz get file statuslgroupdel- 1 1 1381614967 A - - gz Delete an user groupxcreatepixmapcursorXCreatePixmapCursor 3 3 1710950785 B - - gz create cursorsxcb_glx_end_list- 3 3 1540917640 A - - gz strncpy 3p- 3p 3p 1402354218 A - - gz copy part of a stringklogctl klogctl 3ilogb 3p- 3p 3p 1402354216 A - - gz return an unbiased exponentvwscanf- 3p 3p 1402354219 A - - gz wide-character formatted input of a stdarg argument listsockatmark 3p- 3p 3p 1402354218 A - - gz determine whether a socket is at the out-of-band marksocket 2- 2 2 1402354206 A - t gz create an endpoint for communicationxcb_x_print_print_set_attributes- 3 3 1540917640 A - - gz evp_cipher_ctx_set_paddingEVP_CIPHER_CTX_set_padding 3ssl 3 1721417624 B - - gz EVP cipher routinessendfile64- 2 2 1402354205 B - - gz transfer data between file descriptorseuca-reset-image-attribute- 1 1 1484780705 A - - gz Reset an attribute of an image to its default valuex509_name_add_entryX509_NAME_add_entry 3ssl 3 1721417624 B - - gz X509_NAME modification functionsvimx- 1 1 1720542354 B - - gz Vi IMproved, a programmers text editoryn 3p- 3p 3p 1402354219 B - - gz Bessel functions of the second kindcpu_isset_sCPU_ISSET_S 3 3 1402354206 B - - gz macros for manipulating CPU setsclearerr 3- 3 3 1402354207 B - - gz check and reset stream statussched_rr_get_interval sched_rr_get_interval 2 sched_rr_get_interval 3pllround 3- 3 3 1402354210 B - - gz round to nearest integer, away from zerosleep.conf.d- 5 5 1711457787 A - - gz Suspend and hibernation configuration filefgetfilecon_raw- 3 3 1585710994 B - - gz get SELinux security context of a filextvacreatepopupshellXtVaCreatePopupShell 3 3 1501646833 B - - gz create a popup shelldsa_sign_setupDSA_sign_setup 3ssl 3 1721417624 B - - gz DSA signaturesx509_check_hostX509_check_host 3ssl 3 1721417624 A - - gz X.509 certificate matchingpod::simple::xmloutstreamPod::Simple::XMLOutStream 3pm 3 1402365606 A - - gz - turn Pod into XMLdatetime::locale::tr_trDateTime::Locale::tr_TR 3pm 3 1402390636 A - - gz btt- 1 1 1565305324 A - - gz analyse block i/o traces produces by blktracesystemd-hostnamed.service- 8 8 1711457788 A - - gz Host name bus mechanismsetpriority 2- 2 2 1402354206 B - - gz get/set program scheduling priorityxcb_xkb_get_device_info_name_end- 3 3 1540917640 B - - gz pam_pwhistory- 8 8 1585713591 A - - gz PAM module to remember last passwordsxcb_glx_vendor_private_with_reply_reply- 3 3 1540917640 B - - gz xcb_open_font_checked- 3 3 1540917640 B - - gz opens a fontdiff3- 1 1 1678200503 A - - gz compare three files line by linexgetclasshintXGetClassHint 3 3 1710950785 B - - gz allocate class hints structure and set or read a window's WM_CLASS propertyec_group_get_curve_gfpEC_GROUP_get_curve_GFp 3ssl 3 1721417624 B - - gz Functions for creating and destroying EC_GROUP objects.getwd 3- 3 3 1402354210 B - - gz get current working directorysetsid setsid 2 setsid 1 setsid 3patan2 atan2 3 atan2 3pdsp56k- 4 4 1402354219 A - - gz DSP56001 interface devicexdr_opaque- 3 3 1402354213 B - - gz library routines for external data representationgit-update-server-info- 1 1 1722330781 A - - gz Update auxiliary info file to help dumb serversxfs_ncheck- 8 8 1601488312 A - - gz generate pathnames from i-numbers for XFShline_set- 3x 3 1720626759 B - - gz create curses borders or lines using complex characters and renditionsfcobjectsetcreateFcObjectSetCreate 3 3 1520307172 A - - gz Create an object setfunlockfile 3- 3 3 1402354209 B - - gz lock FILE for stdiosem_close 3- 3 3 1402354212 A - - gz close a named semaphorextappaddactionhookXtAppAddActionHook 3 3 1501646833 A - - gz register an action hook procedurestrtoumax strtoumax 3 strtoumax 3ppanel_window- 3x 3 1720626759 B - - gz panel stack extension for cursespselect6- 2 2 1402354205 B - - gz synchronous I/O multiplexingxkbfreeclientmapXkbFreeClientMap 3 3 1710950785 A - t gz Free memory used by the client map member of an XkbDescRec structurexcb_glx_finish_reply- 3 3 1540917640 B - - gz setrpcent- 3 3 1402354212 B - - gz get RPC entryxcb_xvmc_create_context_reply- 3 3 1540917640 B - - gz pcre_free_substring_list- 3 3 1501643278 A - - gz Perl-compatible regular expressionsfcfreetypecharindexFcFreeTypeCharIndex 3 3 1520307172 A - - gz map Unicode to glyph idtiffdefaulttilesizeTIFFDefaultTileSize 3tiff 3 1729525165 C TIFFtile - gz optarg 3p- 3p 3p 1402354216 B - - gz command option parsingy1 y1 3 y1 3pssl_ctx_add_client_caSSL_CTX_add_client_CA 3ssl 3 1721417624 B - - gz set list of CAs sent to the client when requesting a client certificatexcmstekhvcquerymaxvcXcmsTekHVCQueryMaxVC 3 3 1710950786 B - - gz obtain the TekHVC coordinatesxrebindkeysymXRebindKeysym 3 3 1710950786 B - - gz handle keyboard input events in Latin-1xactivatescreensaverXActivateScreenSaver 3 3 1710950786 B - - gz manipulate the screen saverxcb_render_composite_glyphs_32- 3 3 1540917640 A - - gz cgroup- 8 8 1601484048 C tc-cgroup - gz /џixJmq_o /OJfcdi9 VM\Jsem_O qJpcre > Jtemp]qmJnameL0Jxcb_) K__af5I UKpthrJYKtail8Jsg_s:aJerr_O^Jxcb_#JeuwaGGJsiga =Jlocau;00Kdbd: RKsetuZ (kߢKxtclCJexp 1Jxcb_Kxcmsז3?Kxcb_'߀JecvtFoJtcl_CSjJmont^JlwretF-Jevp_@԰Jcpup$JobjeWT"Kxcb_\*FTKxgethDJxcb_14%yKgetp ~Jxcb_cJpcre:>KrdmaG 21-Jpcre>vJpod:05zJcomp% *`.JcpanX!_cJdes_>ϯJioct* ?1lKstatAsU#Kxkbt˘^#Kposi=fNJtcl_rKcA Jxcb_,$}}Jpwri T^Jxcb_t+qJdate0K#Klogb 7Kmvwi1{TKdate+3Jstan /Jhypo86D|Jslk_v 6Jpod:1xJcolo;{ JdateI3 Jdove E KJmant(<|6Jxcb_I) Jxcb_.rIJwctr@Jwcsr `T`Jbn_gaS޳Jtcl_@P3vJcmsg0[Jevp_f@OJxcb_@$ueJnet: A^XM&JnextyAEx%JgetgA /JcbrtB-Kptsv:+Kxcb_ Jtc-x;B-Kumas CJxcb_nB&zKmemc; +K1Jevp_B @ەKxcb_pKpthr>]KxconHKclocW@JejecB0HKevp_7Kwcscޜ ?Ksem_' ?[KlsmosIKabrtH{vKdate)3=Jxcb_2C!FJxcb_nC!JxtneC:DJpam_CR`qKrandtJxcb_KD$nJvid_D ;&ʰJec_gD`nLvJttk:IE( %JdelaE Aޱ*JgetnE ,>AKxcb_3DKcomp JstrnF8?Jipv6$F=CUKpam_ DO۲JwaitfF>wbJendmF @TJbio_F C{JdateXG3o* JxrmmGCo1_JjsonG30Jinsb3H#6Kxcb_G ! Jsyst[HMKcata EJpcreH >j Jtcl_IRQJsigsdI .̜Jxcb_I$ɞJxcb_IpJxcb_J#ķJgetd?J 0]tKxcb_3Q(Jtap:zJ#o~}Jopen K5AJxcb_IKѹJsock|K 1<_zJmunlKR"Kssl_NXJxcb_L)]M Ktie: N 5Kasn1I"ǢJcms_ZLcAJdevlL'hJinet M S-=JwencjM :@JpthrM47Jx509MMJxcb_WNAJxcb_N"UJtempNCJeuwa"O#?4JxtapOJ[Jxcb_SJxcb_8&9Jssl_yc[Jexec):yJgett()j Jxcb_`! $>Jclou0Jdate09Jpcre%>/Jlwpck5uJeuarJsJeuca7{Jxcb_R,DJstrt ?Jstor HJxrmgM 0Jwsyn31_Jperl *Jeucal7tcl_getunicodefromobjTcl_GetUnicodeFromObj 3 3 1448008822 B - - gz manipulate Tcl objects as stringsevp_pkey_set1_ec_keyEVP_PKEY_set1_EC_KEY 3ssl 3 1721417624 B - - gz EVP_PKEY assignment functions.xcb_xfixes_selection_notify_event_t- 3 3 1540917640 A - - gz net::daemon::testNet::Daemon::Test 3pm 3 1402381129 A - - gz support functions for testing Net::Daemon serversnexttowardl 3p- 3p 3p 1402354216 B - - gz next representable floating-point numbergetgrent 3- 3 3 1402354212 A - - gz get group file entrycbrt 3- 3 3 1402354207 A - - gz cube root functiontc-xt- 8 8 1601484048 A - - gz tc iptables actionxcb_xv_query_image_attributes_pitches- 3 3 1540917640 B - - gz evp_sealinitEVP_SealInit 3ssl 3 1721417624 A - - gz EVP envelope encryptioneject- 1 1 1612283497 A - - gz eject removable mediaxcb_input_select_extension_event- 3 3 1540917640 A - - gz xcb_glx_get_tex_parameterfv_data- 3 3 1540917640 B - - gz xtnewXtNew 3 3 1501646833 B - - gz memory management functionspam_postgresok- 8 8 1585713588 A - - gz simple check of real UID and corresponding account namexcb_xkb_new_keyboard_notify_event_t- 3 3 1540917640 A - - gz vid_attr_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionec_group_get_basis_typeEC_GROUP_get_basis_type 3ssl 3 1721417624 B - - gz Functions for manipulating EC_GROUP objects.ttk::separator- n n 1448008912 A - - gz Separator bardelay_output- 3x 3 1720626759 B - - gz miscellaneous curses utility routinesgetnetent 3- 3 3 1402354212 A - - gz get network entrystrncat strncat 3 strncat 3pipv6- 7 7 1402354219 A - - gz Linux IPv6 protocol implementationwait 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)endmntent- 3 3 1402354208 B - - gz get file system descriptor file entrybio_set_ssl_renegotiate_timeoutBIO_set_ssl_renegotiate_timeout 3ssl 3 1721417624 B - - gz SSL BIOdatetime::locale::es_crDateTime::Locale::es_CR 3pm 3 1402390645 A - - gz xrmmergedatabasesXrmMergeDatabases 3 3 1710950786 A - - gz merge resource databasesjson_pp- 1 1 1402370164 A - - gz JSON::PP command utilityinsb- 2 2 1402354205 B - - gz port I/Osystemd-machined- 8 8 1711457788 B - - gz Virtual machine and container registration managerpcre16_exec- 3 3 1573510868 B - - gz Perl-compatible regular expressionstcl_fscopyfileTcl_FSCopyFile 3 3 1448008822 B - - gz procedures to interact with any filesystemsigset 3- 3 3 1402354212 A - - gz System V signal APIxcb_glx_get_histogram_data- 3 3 1540917640 B - - gz xcb_poly_arc_checked- 3 3 1540917640 B - - gz xcb_input_xi_passive_ungrab_device- 3 3 1540917640 A - - gz getdents64- 2 2 1402354204 B - - gz get directory entriestap::parser::sourcehandler::rawtapTAP::Parser::SourceHandler::RawTAP 3pm 3 1439389327 A - - gz Stream output from raw TAP in a scalar/array ref.openpty- 3 3 1402354211 A - - gz terminal utility functionsxcb_xkb_set_map_checked- 3 3 1540917640 B - - gz socket 7- 7 7 1402354220 A - t gz Linux socket interfacemunlockall 3p- 3p 3p 1402354216 B - - gz lock/unlock the address space of a process (REALTIME)xcb_xfixes_create_region_from_gc_checked- 3 3 1540917640 B - - gz cms_recipientinfo_kekri_id_cmpCMS_RecipientInfo_kekri_id_cmp 3ssl 3 1721417624 B - - gz CMS envelopedData RecipientInfo routinesdevlink- 8 8 1601484048 A - - gz Devlink toolinet_pton 3- 3 3 1402354210 A - - gz convert IPv4 and IPv6 addresses from text to binary formwenclose- 3x 3 1720626759 B - - gz mouse interface through cursespthread_mutex_unlock- 3p 3p 1402354217 B - - gz lock and unlock a mutexx509_store_ctx_freeX509_STORE_CTX_free 3ssl 3 1721417624 B - - gz X509_STORE_CTX initialisationxcb_shm_create_pixmap_checked- 3 3 1540917640 B - - gz xcb_xkb_set_indicator_map_checked- 3 3 1540917640 B - - gz template::pluginsTemplate::Plugins 3pm 3 1402357152 A - - gz Plugin provider moduleeuwatch-describe-alarms-for-metric- 1 1 1484780705 A - - gz Describe alarms for a single metric.xtapppeekeventXtAppPeekEvent 3 3 1501646833 B - - gz query and process events and inputsem_wait sem_wait 3 sem_wait 3p _8 ԌHxcb_P""GHpng=PApthrbn Hevp_PMyHgit-P UHssl_CQW@Hpem_Q7HDHdbilQ JHdateTR0m]RHxcb_R/ Hxcb_Rec_pctvHHstatS Hbkgd=SJZHbn_tSFzHswapS@fwHgetp4T9xcb_#-pHi2d_{TQ4HsyscT 7 Hssl_U^ɥHpcreU >uHsymlU ;opta@6Hbn_c!V J3 Htcl_vVKHbio_V >krb5V JDyHhttp W NOjHfegeyW IYDHdh_gW^tHcsqr@X`HHrebo[X@Hbio_uX@+Hsvc_X FHmmanY;t<+Hiso_[Y _HbatcYLHgit-ZR rHmake}Z58HinsnZJHxcb_[ HpthrN[9Hgtar[3dHtcl_[ZHremqC\ 9xHgetn\ 7W{Hftel\ =VHunli] 5_Hlwp:O]OHerr_]J&Hmysq ^:xcb_f$perl>g 4]Hrpm2W^ W Hxrep^FnHsqrt _ 1euar6tcl_[ Zsetuatan 2rsa_{gVTHwdctF_8jHxfre_`ЌHtcl_ cqHnamep6n1Hpam_ 9zoHtc-f J2Havc_FBHxcb_%F HxkbgΡvxHxdr_Y LHgets دHngetآ COHfnma& 5rNHcreaeD!Hpthrqmesgx@FHhtml@Zxcb_j-mHsetn 7j7HHeuca@Hnm_D dateD3animO7VHgit-SJ:0/Htap:SqHtgetWtzHposiw Hset_NpHgit-@)[HpthrPPF.HxtapJdump;l Gsyst[^~Hwget [49Hclocz2[,HlseeisalYpcrew>wcscMo~HwattҨ Rnu^Hssl_-]aPHtiffJV{Hfd_s^He2fr FV4Htcl_k_|YHfielߪ 5EUHkbdrHHld-lo j=Hausy RI7Hfile@vg4Hxcb_EbHxcb_qP/lHinet AZHsysl =eHtc-s2 4Hxcb_p 1qHhack 33xHsyst0/(Hxcb_/AHabrtb 02Hquot8Ă>Hmysqܮ B}oHbdft* XʚHobj_ D(vHtime K'2Hxcb_T"%PHxkbcYzHxcb_0Hfcnt;1@HpthrtW ΈHsecu P?hoHexit>8Hfcch}FS?Hreq]x2&Hcp 15'[T]HlscpbItHputm 5FHatofݯoHxcb_!Htcl_+a>Hxcb_% HfclaF>XHxcb_:5XH$hom0xcb_"tempKpem_(=pcrez>jHfcfo<xYHeps2=fHxcb_\6tempilabsYHddeBeuca @e$IHbio_:Hxcb_=pthr`2exec`+Hidn_  'EV\Hstat*Hpkcs:SHnet:pA$aHxcb_0mxIperl 6Itcl_>BbIcronw GM 0Ixcb_.menu A!IrintxIxcb_)cloc"if_fD(proc}1resi3{zIdate`3Icpan$WG sIpatc&xtseExtapDretuZnear~ 3,GIsinc>?xcb_C%Iscsi KxIinch\ ,IFont@AtempY$Igit-9resi];sqrt/ItempLItowl= UIps 12_IptxDMIxcb_G+IsfbU bxIconsy P.Idb_lE"Ilibt( <X5Ipidso=;Isran 2R?+Ixtfr;IkeycB<KIxcb_y2Igit- Uxcb_OQIpem_1>]Ipam_3.Itcl_p_S1Itcl_tpd%Idatep0IdIglob1qBB~Ixpro{qFIatoiq9DIx509rVgetuN ,IIevp_rBSIfutir MoIposir"#Iblkrs Gdate 4Iintrqs0;Isysts2Itcl_sUolIgets_t 8cKIsinltIlatit_'aIqemu u 2\,Ixcb_[u-p\ Iresou KsIxsetu ?!]BIinetv Y`?IxrmgvvQjIxcb_v0/Iexec%w *IfcchXwX!HIjourw>'IselixJCIsnmpixGyIxkblx]" Ixcb_.y$@g6Iposimysxcb_ ;Ilvmey4fchoa ]Igets5z )rdma  4gzipF3xcb_~EIcasigzjIxcb_z0Iec_pz nm'LIxgetH{UIxget{ y8jsIclas4|VHIpush|>bio_ѦC|Inetl| ) Istdb}d/Ild.sz}0Ivigr}YvIsela~?wait5perl 762lIxcb_[~ YInew_~ ;bIxcb_~1_VIsigf( 7Idatel0Ibn_bN(KImran:aIeuar^Gscheë4xcb_eucaA#HcpanPIdrac9tIreso 6cIdlcll;IfcfoE:uOIstrt Hungewm.:Iteam <˂Ievp_' :$Iputsl 9%Ilwpt.`5Ifeof8xcb__8pthr`:Isyst"5Ibuf_qKiIenco˃KrHIboot'0hdes 0tcl_;PIlibn^ 2`Ipod:[getw;argz' ;)Ienvs  T{vIxcb_j(0Iset_ 1)XItime C\Ilcon:֘IxkboXOIinet@x509 X^Idb_re EۻIfediI$TImvad mIusb_ HIgit- B$DIgmakшJhIllro! C[Isysto=Ieuca8FIdate 9SIfcva B:Iseli`|tcl_channelflushprocTcl_ChannelFlushProc 3 3 1448008821 B - - gz procedures for creating and manipulating channelstcl_backgrounderrorTcl_BackgroundError 3 3 1448008821 A - - gz report Tcl error that occurred in background processingdatetime::locale::nnDateTime::Locale::nn 3pm 3 1402390632 A - - gz glob 3p- 3p 3p 1402354215 A - t gz generate pathnames matching a patternxpropertyeventXPropertyEvent 3 3 1710950786 A - - gz PropertyNotify event structureatoi 3- 3 3 1402354207 A - - gz convert a string to an integerx509_store_ctx_trusted_stackX509_STORE_CTX_trusted_stack 3ssl 3 1721417624 B - - gz X509_STORE_CTX initialisationevp_cipherfinal_exEVP_CipherFinal_ex 3ssl 3 1721417624 B - - gz EVP cipher routinesfutimens futimens 3posix_fadvise posix_fadvise 2 posix_fadvise 3pblkrawverify- 1 1 1565305324 A - - gz verifies an output file produced by blkparseintro 6- 6 6 1402354219 A - - gz introduction to gamessystemd-hibernate-resume- 8 8 1711457788 B - - gz Resume from hibernationtcl_unregisterchannelTcl_UnregisterChannel 3 3 1448008822 B - - gz buffered I/O facilities using channelsgetservent_r- 3 3 1402354209 A - - gz get service entry (reentrant)sinl sinl 3 sinl 3platin10- 7 7 1402354220 B - t gz ISO 8859-16 character set encoded in octal, decimal, and hexadecimalqemu-img- 1 1 1652966903 A - - gz QEMU disk image utilityxcb_reparent_window_checked- 3 3 1540917640 B - - gz Reparents a windowresolver resolver 3 resolver 5xseticvaluesXSetICValues 3 3 1710950786 A - - gz set and obtain XIC valuesinet_pton 3p- 3p 3p 1402354216 B - - gz convert IPv4 and IPv6 addresses between binary and text formxrmgetfiledatabaseXrmGetFileDatabase 3 3 1710950786 A - - gz retrieve and store resource databasesxcb_randr_get_crtc_transform_pending_params_end- 3 3 1540917640 B - - gz execve 2- 2 2 1402354204 A - - gz execute programfccharsetcoverageFcCharSetCoverage 3 3 1520307172 A - - gz DEPRECATED return coverage for a Unicode pagejournald.conf.d- 5 5 1711457788 B - - gz Journal service configuration filesselinuxexeccon- 8 8 1585710994 A - - gz report SELinux context used for this executablesnmpd.internal- 5 5 1706198099 A - - gz internal configuration of the Net-SNMP agentxkblistcomponentsXkbListComponents 3 3 1710950785 A - - gz List of components for one or more component typesxcb_glx_are_textures_resident_reply- 3 3 1540917640 B - - gz posix_spawnattr_getflags- 3p 3p 1402354217 A - - gz get and set the spawn-flags attribute of a spawn attributes object (ADVANCED REALTIME)lvmetad- 8 8 1619616701 A - - gz LVM metadata cache daemongetsid 2- 2 2 1402354205 A - - gz get session IDcasinl casinl 3 casinl 3pxcb_input_set_device_modifier_mapping_unchecked- 3 3 1540917640 B - - gz ec_point_newEC_POINT_new 3ssl 3 1721417624 A - - gz Functions for creating, destroying and manipulating EC_POINT objects.xgetxcbconnectionXGetXCBConnection 3 3 1710950786 A - - gz get the XCB connection for an Xlib DisplayxgetwmhintsXGetWMHints 3 3 1710950785 B - t gz allocate window manager hints structure and set or read a window's WM_HINTS propertyclass::structClass::Struct 3pm 3 1698237672 A - - gz declare struct-like datatypes as Perl classespushd- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)netlink 3- 3 3 1402354211 A - - gz Netlink macrosstdbuf- 1 1 1605565487 A - - gz Run COMMAND, with modified buffering operations for its standard streams.ld.so- 8 8 1402354220 A - - gz dynamic linker/loadervigr- 8 8 1565319053 B - - gz edit the password, group, shadow-password or shadow-group fileselabel_close- 3 3 1585710994 B - - gz userspace SELinux labeling interfacexcb_input_raw_key_press_event_t- 3 3 1540917640 A - - gz new_form_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionxcb_get_window_attributes- 3 3 1540917640 A - - gz Gets window attributessigfillset 3- 3 3 1402354212 B - - gz POSIX signal set operations.datetime::locale::skDateTime::Locale::sk 3pm 3 1402390642 A - - gz mrand48 mrand48 3 mrand48 3pdlclose dlclose 3 dlclose 3pbn_blinding_newBN_BLINDING_new 3ssl 3 1721417624 A - - gz blinding related BIGNUM functions.euare-rolegetattributes- 1 1 1484780705 A - - gz Display a role's ARN, GUID, and trust policydracut.bootup- 7 7 1601481478 A - - gz boot ordering in the initramfsresolver 5- 5 5 1402354219 B - - gz resolver configuration filefcfontsetcreateFcFontSetCreate 3 3 1520307172 A - - gz Create a font setstrtof 3- 3 3 1402354212 B - - gz convert ASCII string to floating-point numberteamd.conf- 5 5 1601484672 A - - gz libteam daemon configuration fileevp_bf_cbcEVP_bf_cbc 3ssl 3 1721417624 B - - gz EVP cipher routinesputspent- 3 3 1402354211 B - - gz get shadow password file entrylwptut- 3pm 3 1402363153 A - - gz - An LWP Tutorialfeof 3- 3 3 1402354209 B - - gz check and reset stream statussystemd-shutdownd.service- 8 8 1711457788 A - - gz Scheduled shutdown servicebuf_mem_new_exBUF_MEM_new_ex 3ssl 3 1721417624 B - - gz simple character array structureencode::jp::jis7Encode::JP::JIS7 3pm 3 1402368577 A - - gz - internally used by Encode::JPbootup- 7 7 1711457788 A - - gz System bootup processlibnetfaqlibnetFAQ 3pm 3 1698237676 C Net::libnetFAQ - gz pod::simple::pullparserPod::Simple::PullParser 3pm 3 1402365606 A - - gz - a pull-parser interface to parsing Podenvsubst- 1 1 1465650185 A - - gz substitutes environment variables in shell format stringsxcb_xkb_get_compat_map_si_rtrn_iterator- 3 3 1540917640 B - - gz set_escdelay- 3x 3 1720626759 B - - gz curses thread supporttime::pieceTime::Piece 3pm 3 1698237678 A - - gz Object Oriented time objectslcong48 lcong48 3 lcong48 3pxkboutofrangegroupnumberXkbOutOfRangeGroupNumber 3 3 1710950785 A - t gz Returns the out-of-range group number, represented as a group index, from the group_info field of an XkbSymMapRec structureinet.h- 0p 0p 1402354203 A - - gz definitions for internet operationsdb_recover- 1 1 1481720635 A - - gz Recover the database to a consistent statefedisableexcept- 3 3 1402354209 B - - gz floating-point rounding and exception handlingmvadd_wch- 3x 3 1720626759 B - - gz add a complex character and rendition to a curses window, then advance the cursorgit-clone- 1 1 1722330783 A - - gz Clone a repository into a new directorygmake- 1 1 1573511351 B - - gz GNU make utility to maintain groups of programsllroundf 3- 3 3 1402354210 B - - gz round to nearest integer, away from zerosystemd- 1 1 1711457787 A - - gz systemd system and service managereuca-delete-internet-gateway- 1 1 1484780705 A - - gz Delete a VPC Internet gatewaydatetime::locale::aa_er_saahoDateTime::Locale::aa_ER_SAAHO 3pm 3 1402390643 A - - gz selinux_netfilter_context_path- 3 3 1585710994 B - - gz These functions return the paths to the active SELinux policy configuration directories and filesperl581delta- 1 1 1698237663 A - - gz what is new for perl v5.8.1tcl_exprbooleanobjTcl_ExprBooleanObj 3 3 1448008822 A - - gz evaluate an expressionxcb_glx_copy_context_checked- 3 3 1540917640 B - - gz xcb_xkb_get_device_info_leds_iterator- 3 3 1540917640 B - - gz ssl_alert_desc_string_longSSL_alert_desc_string_long 3ssl 3 1721417624 B - - gz get textual description of alert informationexecvpe- 3 3 1402354208 B - - gz execute a filegettimeofday 2- 2 2 1402354206 A - - gz get / set timexcb_glx_get_clip_plane_unchecked- 3 3 1540917640 B - - gz cloud-publish-image- 1 1 1410347192 A - - gz publish a cloud imagedatetime::locale::boDateTime::Locale::bo 3pm 3 1402390638 A - - gz pcrejit- 3 3 1501643278 A - - gz Perl-compatible regular expressionslwpcook- 3pm 3 1402363153 A - - gz The libwww-perl cookbookeuare-accountdel- 1 1 1484780705 A - - gz [Eucalyptus cloud admin only] Delete an accounteuca-create-nat-gateway- 1 1 1484780705 A - - gz Create a new VPC NAT gatewayxcb_input_query_device_state_classes_length- 3 3 1540917640 B - - gz strtol 3p- 3p 3p 1402354218 A - - gz convert a string to a long integerstorableStorable 3pm 3 1402367395 A - - gz persistence for Perl data structureswsyncup- 3x 3 1720626759 B - - gz create curses windowseuca-create-route-table- 1 1 1484780705 A - - gz Create a new VPC route tablexcb_selinux_get_client_context_unchecked- 3 3 1540917640 B - - gz __after_morecore_hook- 3 3 1402354207 B - - gz malloc debugging variablespthread_condattr_setpshared- 3p 3p 1402354217 B - - gz get and set the process-shared condition variable attributestail 1- 1 1 1605565487 A - - gz output the last part of filesdbd::fileDBD::File 3pm 3 1402362412 A - - gz Base class for writing file based DBI driverssetuid 3p- 3p 3p 1402354218 A - - gz set user IDxtclassXtClass 3 3 1501646833 A - - gz obtain and verify a widget's classxcmsstorecolorsXcmsStoreColors 3 3 1710950786 B - - gz set colorsxcb_glx_query_server_string_string_end- 3 3 1540917640 B - - gz xcb_randr_get_screen_size_range_unchecked- 3 3 1540917640 B - - gz xgetkeyboardcontrolXGetKeyboardControl 3 3 1710950785 B - t gz manipulate keyboard settings and keyboard control structuregetpriority getpriority 2 getpriority 3prdma-link- 8 8 1601484048 A - - gz rdma link configurationstat.h- 0p 0p 1402354203 B - - gz data returned by the stat() functionxkbtranslatekeycodeXkbTranslateKeyCode 3 3 1710950785 A - - gz Translate a keycode to a key symbol and modifiersposix_mem_offset- 3p 3p 1402354216 A - - gz find offset and length of a mapped typed memory block (ADVANCED REALTIME)logbf 3p- 3p 3p 1402354216 B - - gz radix-independent exponentmvwin- 3x 3 1720626759 B - - gz create curses windowsdatetime::locale::ii_cnDateTime::Locale::ii_CN 3pm 3 1402390632 A - - gz pts- 4 4 1402354219 A - - gz pseudoterminal master and slavexcb_glx_read_pixels_data_length- 3 3 1540917640 B - - gz umask 1p- 1p 1p 1402354204 A - - gz get or set the file mode creation maskmemccpy 3- 3 3 1402354211 A - - gz copy memory areaxcb_xv_stop_video_checked- 3 3 1540917640 B - - gz pthread_attr_getdetachstate pthread_attr_getdetachstate 3 pthread_attr_getdetachstate 3pxconfigureeventXConfigureEvent 3 3 1710950786 A - - gz ConfigureNotify event structureclock 8- 8 8 1612283497 B - - gz query or set the hardware clock (RTC)evp_rc4EVP_rc4 3ssl 3 1721417624 B - - gz EVP cipher routineswcscmp 3p- 3p 3p 1402354219 A - - gz compare two wide-character stringssem_close 3p- 3p 3p 1402354218 A - - gz close a named semaphore (REALTIME)lsmod- 8 8 1585709895 A - - gz Show the status of modules in the Linux Kernelabrt-action-analyze-ccpp-local- 1 1 1601569733 A - - gz Generates backtrace and search for duplicatesdatetime::locale::ee_ghDateTime::Locale::ee_GH 3pm 3 1402390636 A - - gz random random 3 random 4 random 3pxcb_unmap_window_checked- 3 3 1540917640 B - - gz Makes a window invisiblecompose Compose 5pam_keyinit- 8 8 1585713589 A - - gz Kernel session keyring initialiser modulexcb_res_query_version_unchecked- 3 3 1540917640 B - - gz catanh 3p- 3p 3p 1402354214 A - - gz complex arc hyperbolic tangent functionsxcb_render_query_pict_index_values_values_iterator- 3 3 1540917640 B - - gz ssl_set_ex_dataSSL_set_ex_data 3ssl 3 1699892223 A - - gz internal application specific data functionstie::handleTie::Handle 3pm 3 1698237678 A - - gz base class definitions for tied handlesasn1_string_cmpASN1_STRING_cmp 3ssl 3 1721417624 B - - gz ASN1_STRING utility functionsstrip 1- 1 1 1696859909 A - - gz Discard symbols from object files./џR0|xJmq_o /OJfcdi9 V_Jperl *qJpcre > Jtemp]qmJnameLJeucal7xcb_xcb_]ZJsg_s:aJerr_O^Jxcb_#JeuwaGGJsiga =Jlocaucgi: _Jexp 1Jxcb_xcb_߀JecvtFoJtcl_CSjJmont^JlwretF-Jevp_@԰Jcpup$JobjeWTsemaNxfocKODJxcb_1set_:~Jxcb_cJpcre:>cred .1-Jpcre>vJpod:05zJcomp% *`.JcpanX!_cJdes_>ϯJioct* ?x25&DTestn Qeuca@@NJtcl_rKcA Jxcb_,$}}Jpwri T^Jxcb_t+qJdate0xcb_A setrA Jstan /Jhypo86D|Jslk_v 6Jpod:1xJcolo;{ JdateI3 Jdove E KJmant(<|6Jxcb_I) Jxcb_.rIJwctr@Jwcsr `T`Jbn_gaS޳Jtcl_@P3vJcmsg0[Jevp_f@OJxcb_@$ueJnet: A^XM&JnextyAEx%JgetgA /JcbrtB-Jtc-x;B-temp EeJxcb_nB&xcb_E3K1Jevp_B @unicFlxcb_Gxcb_YG#fontG JejecB0freaGxungG8menu"H=crlufH=Jxcb_2C!FJxcb_nC!JxtneC:DJpam_CRperlFJ 2Jxcb_KD$nJvid_D ;&ʰJec_gD`nLvJttk:IE( %JdelaE Aޱ*JgetnE ,tigeL ;xcb_HLJstrnF8?Jipv6$F=exitL0O۲JwaitfF>wbJendmF @TJbio_F C{JdateXG3o* JxrmmGCo1_JjsonG30Jinsb3H#logb,N! Jsyst[HMtcl_ANKJpcreH >j Jtcl_IRQJsigsdI .̜Jxcb_I$ɞJxcb_IpJxcb_J#ķJgetd?J 0sushEP8Q(Jtap:zJ#o~}Jopen K5AJxcb_IKѹJsock|K 1<_zJmunlKRxcb_Q8Jxcb_L)fdfoIR 9pklaRQ"ǢJcms_ZLcAJdevlL'hJinet M S-=JwencjM :@JpthrM47Jx509MMJxcb_WNAJxcb_N"UJtempNCJeuwa"O#?4JxtapOJ[Jxcb_SJxcb_8&9Jssl_yc[Jexec):yJgett()j Jxcb_`! $>Jclou0Jdate09Jpcre%>/Jlwpck5uJeuarJsJeuca7{Jxcb_R,DJstrt ?M\Jsem_O Jstor HJxrmgM 0Jwsyn310Jxcb_) nq?zKgendQI UKpthrJYKtail8;00Kdbd: Rr|BKmq_sAD7JKxtinJKuux5?Kxcb_'"Kxcb_\*FTKxgeth4%yKgetp KrdmaG 21lKstatAsU#Kxkbt˘^#Kposi=fK#Klogb 7Kmvwi1{TKdate+3YKterm/7tcl_.G+Kxcb_ Kumas CzKmemc; +opta@tcl_[gەKxcb_pKpthr>]KxconHsystJacos 1KclocW@pthr.HKevp_7Kwcscޜ ?Ksem_' ?xcb_!lsmosIKabrtH{vKdate)3bcmp`qKrandt>AKxcb_3DKcomp CUKpam_ D6Kxcb_G Kcata E]tKxcb_3"Kssl_NX]M Ktie: N 5Kasn1I8Kstrii=h[gKauto:Kgit-HCaKxfs_ >VKxcb_Kmdc2  - KvfprD DKpvre 4Kpm-s =ځKswpr BژKdirng P=Kdate8[Kfget ..Klog:ONxҸKcpan0Ktk_c\۱KsystQVWsKmbsn PKfcpa=HKclosb0~Kpem_C7Ktcl_YьKstrngFpKtouc FoUtKsche0rsa_BS Ktcl_C IOKmove OdateD3animO>`Kset_@$Kgetp@9rKlsta*&Kabrt 73Kmvge RYuKtigeY B Kgetc"0Keuar7leKvwpr DiKca1j; Krpc. +Kxcb_XkUKcerf1eKperlK Nxtwi% J?|KvdofFinKevale1,Kname T!Kcreat9W.KeuscQA(Kvswp& VWKxallt4Kfcdi NiKcabspFnKxkbak NEKevp_ :;KtempJKKexit; Ktc-t7SKlh_nE.0Knet:IKgetc 6Kseth<Ksigah 99FKxtseVKcoll];Kendg n`UKxfs_B{XKdate3zKpam_: NGrKxcb_+xKdsa_ 3Kwcsr PKwvlirPKdate0OKsetr 4Kcirc/g /Kbio_ 7kߢKxtclCxKsdifAPKpam_26L)Ktcfmw FKxcmsז3dxcKtcl_;:mKwcspnKuser/` QxKbadb 9nKxcb_!{Kdate3lKtemp_Z1Kssl_jKgetsG"+gKxmovw S5Ksys_ 'yKasin .P7Kimax?Kdove] F K__af5ďKxdra >UKxcb_#m(Kxcb_4#KsetuZ (Klog2r6!%aKmove5Kptsv:automake-1.13- 1 1 1402387391 A - - gz manual page for automake 1.13.4git-am- 1 1 1722330780 A - - gz Apply a series of patches from a mailboxxfs_bmap- 8 8 1601488312 A - - gz print block mapping for an XFS filexcb_glx_get_lightfv_data- 3 3 1540917640 B - - gz mdc2 1ssl- 1ssl 1 1721417624 B - - gz message digestsvfprintf 3p- 3p 3p 1402354219 B - - gz format output of a stdarg argument listpvresize- 8 8 1619616701 A - - gz Resize physical volume(s)pm-suspend- 8 8 1533764400 B - - gz Suspend or Hibernate your computerswprintf 3p- 3p 3p 1402354218 B - - gz print formatted wide-character outputdirname 3p- 3p 3p 1402354214 A - t gz report the parent directory name of a file pathnamedatetime::locale::ku_arab_irDateTime::Locale::ku_Arab_IR 3pm 3 1402390634 A - - gz fgetpos 3- 3 3 1402354209 B - - gz reposition a streamlog::message::itemLog::Message::Item 3pm 3 1402343798 A - - gz Message objects for Log::Messagecpanp- 1 1 1402392266 A - - gz The CPANPLUS launchertk_choosecolortk_chooseColor n n 1448008911 A - - gz pops up a dialog box for the user to select a color.systemd-binfmt- 8 8 1711457788 B - - gz Configure additional binary formats for executables at bootmbsnrtowcs- 3 3 1402354211 A - - gz convert a multibyte string to a wide-character stringfcpatternaddcharsetFcPatternAddCharSet 3 3 1520307172 C FcPatternAdd-Type - gz close n- n n 1448008823 A - - gz Close an open channelpem_read_bio_dsaprivatekeyPEM_read_bio_DSAPrivateKey 3ssl 3 1721417624 B - - gz PEM routinestcl_fsfileattrstringsTcl_FSFileAttrStrings 3 3 1448008822 B - - gz procedures to interact with any filesystemstrnlen- 3 3 1402354212 A - - gz determine the length of a fixed-size stringtouch 1p- 1p 1p 1402354204 A - t gz change file access and modification timessched_yield 3p- 3p 3p 1402354218 A - - gz yield the processortcl_writeTcl_Write 3 3 1448008822 B - - gz buffered I/O facilities using channelsmove_field- 3x 3 1720626759 B - - gz make and break connections between fields and formsset_thread_area- 2 2 1402354205 A - - gz set a thread local storage (TLS) areagetprotobyname_r- 3 3 1402354209 B - - gz get protocol entry (reentrant)lstat 2- 2 2 1402354205 B - t gz get file statusabrt.conf- 5 5 1601569733 A - - gz Configuration file for abrt.mvgetnstr- 3x 3 1720626759 B - - gz accept character strings from curses terminal keyboardtigetstr- 3x 3 1720626759 B - - gz curses interfaces to terminfo databasegetc_unlocked getc_unlocked 3 getc_unlocked 3peuare-useraddcert- 1 1 1484780705 A - - gz Upload a signing certificatevwprintw- 3x 3 1720626759 B - - gz print formatted output in curses windowsca- 1ssl 1 1699892199 A - - gz sample minimal CA applicationrpc.mountd- 8 8 1682710367 B - - gz NFS mount daemonxcb_xfixes_change_save_set- 3 3 1540917640 A - - gz cerff- 3 3 1402354207 B - - gz complex error functionperlebcdic- 1 1 1698237664 A - - gz Considerations for running Perl on EBCDIC platformsvdoforcerebuild- 8 8 1601488174 A - - gz prepare a VDO device to exit read-only modeeval eval n eval 1p eval 1namespace- n n 1448008823 A - - gz create and manipulate contexts for commands and variablescreate_module- 2 2 1402354204 A - - gz create a loadable module entryeuscale-suspend-processes- 1 1 1484780705 A - - gz Suspend an auto-scaling group's auto-scaling processesvswprintf 3p- 3p 3p 1402354219 B - - gz wide-character formatted output of a stdarg argument listxallocclasshintXAllocClassHint 3 3 1710950786 A - - gz allocate class hints structure and set or read a window's WM_CLASS propertyfcdircachecreateuuidFcDirCacheCreateUUID 3 3 1520307172 A - - gz Create .uuid file at a directorycabs cabs 3 cabs 3pxkballocgeomoutlinesXkbAllocGeomOutlines 3 3 1710950785 A - - gz Allocate space for an arbitrary number of outlines to a shapeevp_rc4_40EVP_rc4_40 3ssl 3 1721417624 B - - gz EVP cipher routinestemplate::manual::directivesTemplate::Manual::Directives 3pm 3 1402357151 A - - gz Template directivesexit 3- 3 3 1402354208 A - - gz cause normal process terminationtc-tunnel_key- 8 8 1601484048 A - - gz Tunnel metadata manipulationlh_node_stats- 3ssl 3 1721417624 B - - gz LHASH statisticsnet::daemon::logNet::Daemon::Log 3pm 3 1402381129 A - - gz Utility functions for logginggetcontext 2- 2 2 1402354205 A - - gz get or set the user contextsethostent 3p- 3p 3p 1402354218 B - - gz network host database functionssigaddset 3p- 3p 3p 1402354218 A - - gz add a signal to a signal setxtsetselectiontimeoutXtSetSelectionTimeout 3 3 1501646833 B - - gz set and obtain selection timeout valuescollectd.conf- 5 5 1671356063 A - - gz Configuration for the system statistics collection daemon collectdendgrent endgrent 3 endgrent 3pxfs_io- 8 8 1601488312 A - - gz debug the I/O path of an XFS filesystemdatetime::locale::ar_joDateTime::Locale::ar_JO 3pm 3 1402390634 A - - gz pam_systemd- 8 8 1711457788 A - - gz Register user sessions in the systemd login managerxcb_glx_get_minmax_parameterfv_data_length- 3 3 1540917640 B - - gz dsa_signDSA_sign 3ssl 3 1721417624 A - - gz DSA signatureswcsrtombs 3- 3 3 1402354213 A - - gz convert a wide-character string to a multibyte stringwvline- 3x 3 1720626759 B - - gz create curses borders, horizontal and vertical linesdatetime::locale::swDateTime::Locale::sw 3pm 3 1402390637 A - - gz setreuid setreuid 2 setreuid 3pcircleq_insert_tailCIRCLEQ_INSERT_TAIL 3 3 1402354206 B - - gz implementations of lists, tail queues, and circular queuesbio_writeBIO_write 3ssl 3 1721417624 B - - gz BIO I/O functionssdiff- 1 1 1678200503 A - - gz side-by-side merge of file differencespam_getenvlist- 3 3 1585713595 A - - gz getting the PAM environmenttcfmttest- 1 1 1402385697 A - - gz test cases of the fixed-length database APItcl_globalevalTcl_GlobalEval 3 3 1448008821 B - - gz execute Tcl scriptswcspbrk wcspbrk 3 wcspbrk 3pusers- 1 1 1605565487 A - - gz print the user names of users currently logged in to the current hostbadblocks- 8 8 1711459141 A - - gz search a device for bad blocksxcb_composite_get_overlay_window- 3 3 1540917640 A - - gz datetime::locale::sh_baDateTime::Locale::sh_BA 3pm 3 1402390642 A - - gz template::viewTemplate::View 3pm 3 1402357151 A - - gz customised view of a template processing contextssl_session_set_timeSSL_SESSION_set_time 3ssl 3 1721417624 B - - gz retrieve and manipulate session time and timeout settingsgetservbyname getservbyname 3 getservbyname 3pxmovewindowXMoveWindow 3 3 1710950785 B - t gz configure windows and window changes structuresys_time.h- 0p 0p 1402354203 A - - gz time typesasinl 3p- 3p 3p 1402354214 B - - gz arc sine functionimaxabs imaxabs 3 imaxabs 3pdoveadm-fts- 1 1 1724195936 A - - gz Manipulate the Full Text Search (FTS) indexxdrawarcXDrawArc 3 3 1710950786 A - te gz draw arcs and arc structurexcb_x_print_print_end_page_checked- 3 3 1540917640 B - - gz xcb_render_query_filters_unchecked- 3 3 1540917640 B - - gz log2 3- 3 3 1402354210 A - - gz base-2 logarithmic functionmove- 3x 3 1720626759 B - - gz move curses window cursorgendsa- 1ssl 1 1699892200 A - - gz generate a DSA private key from a set of parametersmq_setattr 3p- 3p 3p 1402354216 A - - gz set message queue attributes (REALTIME)xtinserteventtypehandlerXtInsertEventTypeHandler 3 3 1501646833 A - - gz extension event handlinguux- 1p 1p 1402354204 A - - gz remote command executiontermcap- 5 5 1402354219 A - - gz terminal capability databasessl_ctx_sess_set_remove_cbSSL_CTX_sess_set_remove_cb 3ssl 3 1721417624 B - - gz provide callback functions for server side external session cachingdatetime::locale::kokDateTime::Locale::kok 3pm 3 1402390644 A - - gz epoll_wait- 2 2 1402354204 A - - gz wait for an I/O event on an epoll file descriptorcabsf 3- 3 3 1402354207 B - - gz absolute value of a complex numberpam_unix- 8 8 1585713593 A - - gz Module for traditional password authenticationqselect- 1p 1p 1402354204 A - - gz select batch jobslog1p 3p- 3p 3p 1402354216 A - - gz compute a natural logarithmxcb_glx_get_tex_envfv_data_length- 3 3 1540917640 B - - gz avc_netlink_close- 3 3 1585710994 B - - gz SELinux netlink processingxcb_glx_get_tex_genfv_data- 3 3 1540917640 B - - gz pause 3p- 3p 3p 1402354216 A - - gz suspend the thread until a signal is receivedgetparyx- 3x 3 1720626759 B - - gz get curses cursor and window coordinateswho 1- 1 1 1605565487 A - - gz show who is logged onxcb_glx_get_mapiv_unchecked- 3 3 1540917640 B - - gz curses::ui::buttonboxCurses::UI::Buttonbox 3pm 3 1454728582 A - - gz Create and manipulate button widgetspcre32_free_substring- 3 3 1573510868 B - - gz Perl-compatible regular expressionswand-configWand-config 1 1 1570314376 A - - gz get information about the installed version of the Magick Wandbzfgrep- 1 1 1167789655 C bzgrep - gz snprintf 3p- 3p 3p 1402354217 A - - gz print formatted outputtiffsetsubdirectoryTIFFSetSubDirectory 3tiff 3 1729525165 C TIFFSetDirectory - gz ruserok_af- 3 3 1402354212 B - - gz routines for returning a stream to a remote commandi2d_rsapublickeyi2d_RSAPublicKey 3ssl 3 1721417624 B - - gz RSA public and private key encoding functions.xcb_randr_get_provider_info_associated_capability_end- 3 3 1540917640 B - - gz module::build::yamlModule::Build::YAML 3pm 3 1402373050 A - - gz DEPRECATEDxcb_input_ungrab_device_button- 3 3 1540917640 A - - gz filter- 3x 3 1720626759 B - - gz miscellaneous curses utility routinesfcdirscanFcDirScan 3 3 1520307172 A - - gz scan a font directory without caching itexec 3- 3 3 1402354208 A - - gz execute a filedbd::mysqlDBD::mysql 3pm 3 1523403904 A - - gz MySQL driver for the Perl5 Database Interface (DBI)lh_retrieve- 3ssl 3 1721417624 B - - gz dynamic hash tabletcl_accessTcl_Access 3 3 1448008821 A - - gz check file permissions and other attributesxcb_input_xi_get_client_pointer_unchecked- 3 3 1540917640 B - - gz ec_group_get_seed_lenEC_GROUP_get_seed_len 3ssl 3 1721417624 B - - gz Functions for manipulating EC_GROUP objects.ssl_set_read_aheadSSL_set_read_ahead 3ssl 3 1721417624 B - - gz manage whether to read as many input bytes as possiblex86_64- 8 8 1612283497 B - - gz change reported architecture in new program environment and set personality flagsxcb_present_query_version_unchecked- 3 3 1540917640 B - - gz form_win- 3x 3 1720626759 A - - gz make and break form window and subwindow associationsopenssl_applinkOPENSSL_Applink 3ssl 3 1699892211 A - - gz glue between OpenSSL BIO and Win32 compiler run-timesystemd-ask-password-wall.service- 8 8 1711457788 B - - gz Query the user for system passwords on the console and via walltld_check_4z- 3 3 1448125246 A - - gz API functiontemplate::tutorial::webTemplate::Tutorial::Web 3pm 3 1402357151 A - - gz Generating Web Content Using the Template Toolkitbe16toh- 3 3 1402354208 A - - gz convert values between host and big-/little-endian byte ordersigaddset 3- 3 3 1402354212 B - - gz POSIX signal set operations.selabel_db- 5 5 1585710994 A - t gz userspace SELinux labeling interface and configuration file format for the RDBMS objects context backendxcb_glx_client_info_checked- 3 3 1540917640 B - - gz xiconsizeXIconSize 3 3 1710950785 B - - gz allocate icon size structure and set or read a window's WM_ICON_SIZES propertypod::simple::linksectionPod::Simple::LinkSection 3pm 3 1402365606 A - - gz - represent "section" attributes of L codespthread_attr_init pthread_attr_init 3 pthread_attr_init 3pxcb_x_print_print_query_version- 3 3 1540917640 A - - gz cms_get0_contentCMS_get0_content 3ssl 3 1721417624 B - - gz get and set CMS content types and contentxcb_render_query_pict_formats_formats_length- 3 3 1540917640 B - - gz fcconfigcreateFcConfigCreate 3 3 1520307172 A - - gz Create a configurationfcfreetypequeryFcFreeTypeQuery 3 3 1520307172 A - - gz compute pattern from font file (and index)ssl_ctx_set_ex_dataSSL_CTX_set_ex_data 3ssl 3 1721417624 B - - gz internal application specific data functionsavc_netlink_release_fd- 3 3 1585710994 B - - gz SELinux netlink processingupvar- n n 1448008824 A - - gz Create link to variable in a different stack framerepotrack- 1 1 1589300861 A - - gz track a package and its dependencies and download themsg_prevent- 8 8 1585715378 A - - gz send SCSI PREVENT ALLOW MEDIUM REMOVAL commandnan 3p- 3p 3p 1402354216 A - - gz return quiet NaNcoshl 3- 3 3 1402354208 B - - gz hyperbolic cosine function? \ >Nxcb_"!SN/etc=#NticJCgXNgetd 0bNaio_  Nrnan0afNnsup 5Nsigh .2Nx509 XKNeusc SNtemp[Nxcb_P\Nsyst}NrestV>TF?Nengl>aNxtge#?E^cNterm?@}2Nifco 88 Ounix W'Oxcb_c&8OlwreBNxcb_?@-ONperlA 9Nssl_b!nNuala 3CNcpan=ZJgNxtlaR㱑Nseth HOtimeß {DNdateD3--NxtrePOOkill =.NComp J]NsecuHJ Ncurs7jNwatt R ,NregeP 0NNtcl_ANgetcٔ]0#Nsigp=4yNxtvaI~?OzsoeF@Oselai$Npthrٕ[fNbn_eL ?Nlz4_Eb%Nxcb_{fNdate 33Oiswu <%Nxcb_kNargz ;w(/Nmq_s jNhost : Nxcb_V"lCNwmemNeven JNNcurs PjNrouno Z Nxcb_,ūNfmaxJclose 3p- 3p 3p 1402354214 A - - gz close a file descriptortcl_gettopchannelTcl_GetTopChannel 3 3 1448008821 B - - gz manipulate stacked I/O channelstemplate::plugin::fileTemplate::Plugin::File 3pm 3 1402357151 A - - gz Plugin providing information about fileseuca-create-route- 1 1 1484780705 A - - gz Add a route to a VPC route tablegit-mergetool- 1 1 1722330780 A - - gz Run merge conflict resolution tools to resolve merge conflictserf 3- 3 3 1402354208 A - - gz error functiondbd::dbmDBD::DBM 3pm 3 1402362411 A - - gz a DBI driver for DBM & MLDBM filesfcutf8lenFcUtf8Len 3 3 1520307172 A - - gz count UTF-8 encoded charsstrncmp 3- 3 3 1402354212 B - - gz compare two stringsstrstr 3- 3 3 1402354212 A - - gz locate a substringFD_CLR 3p- 3p 3p 1402354213 B - - gz synchronous I/O multiplexingmq_close 3- 3 3 1402354211 A - - gz close a message queue descriptorservice_seusers- 5 5 1585710994 A - - gz The SELinux GNU/Linux user and service to SELinux user mapping configuration filesxkballoccompatmapXkbAllocCompatMap 3 3 1710950785 A - t gz Allocate a new compatibility map if you do not already have one availabletailf- 1 1 1612283497 A - - gz follow the growth of a log filextgetkeyboardfocuswidgetXtGetKeyboardFocusWidget 3 3 1501646833 A - - gz extension event handlinglocale::codes::script_codesLocale::Codes::Script_Codes 3pm 3 1402383323 A - - gz script codes for the Locale::Codes::Script modulepthread_testcancel pthread_testcancel 3 pthread_testcancel 3popenssl_add_all_algorithmsOpenSSL_add_all_algorithms 3ssl 3 1721417624 A - - gz add algorithms to internal tabledirhandleDirHandle 3pm 3 1698237673 A - - gz supply object methods for directory handlescrond- 8 8 1684247301 B - - gz daemon to execute scheduled commandsstddef.h- 0p 0p 1402354203 A - - gz standard type definitionsxcb_present_notify_msc- 3 3 1540917640 A - - gz profil 3- 3 3 1402354211 A - - gz execution time profilewait 2- 2 2 1402354206 A - - gz wait for process to change stateeuca-describe-network-interfaces- 1 1 1484780705 A - - gz Show information about VPC network interfacesxcb_composite_redirect_window_checked- 3 3 1540917640 B - - gz xcb_selinux_query_version- 3 3 1540917640 A - - gz matchpathcon 8- 8 8 1585710994 A - - gz get the default SELinux security context for the specified path from the file contexts configurationbdftopcf- 1 1 1540918774 A - - gz convert X font from Bitmap Distribution Format to Portable Compiled Formatstrftime 3- 3 3 1402354212 A - - gz format date and timedbus-daemon- 1 1 1601481284 A - - gz Message bus daemonsetbuf 3- 3 3 1402354212 A - - gz stream buffering operationslwres_gethostbyname_r- 3 3 1725373371 B - - gz lightweight resolver get network host entryendaliasent- 3 3 1402354208 B - - gz read an alias entrysqlite3- 1 1 1698752878 A - - gz A command line interface for SQLite version 3git-index-pack- 1 1 1722330782 A - - gz Build pack index file for an existing packed archivetcl_setensemblemappingdictTcl_SetEnsembleMappingDict 3 3 1448008821 B - - gz manipulate ensemble commandsttyslot- 3 3 1402354213 A - - gz find the slot of the current user's terminal in some filemodule::build::platform::cygwinModule::Build::Platform::cygwin 3pm 3 1402373050 A - - gz Builder class for Cygwin platformtcl_setintobjTcl_SetIntObj 3 3 1448008822 B - - gz manipulate Tcl objects as integer valuesxcb_input_list_device_properties_atoms- 3 3 1540917640 B - - gz ssl_want_nothingSSL_want_nothing 3ssl 3 1721417624 B - - gz obtain state information TLS/SSL I/O operationpcre_get_named_substring- 3 3 1501643278 A - - gz Perl-compatible regular expressionsrestart_syscall- 2 2 1402354205 A - - gz restart a system call after interruption by a stop signalenglishEnglish 3pm 3 1698237673 A - - gz use nice English (or awk) names for ugly punctuation variablesxtgeterrordatabasetextXtGetErrorDatabaseText 3 3 1501646833 B - - gz obtain error databaseterm 7- 7 7 1715932340 A - - gz conventions for naming terminal typesxcb_glx_get_error_reply- 3 3 1540917640 B - - gz r 7 b qLwdel FaLcursP`Lpem_ʐ;Lip-n ;bIOLrege^FgqLlget Ae LfcchP+Lasn1ZH LxgamRLLvswp  E&Levp_] ; HLevp_?Lsetg BLendpA 48Lxcb_ȈLscheJXLsecuIleLxcb_6^ Lmodu9DLxwctbՇLexec+)pod:LLtimew:time#pLxcms–7arLtap:Xxcb_.ilogIZ2kLxallv! Lgete.I;Lxtse~G Lstre؞5set_NtSPLargz ;_Lxcb_bLxcb_ 2Lx509PLvimxdATLyn 3@Lcpu_ EstP +xcb_~ VLcleaA 8~jLsche2xtap Aprog ECjLllro CGxLslee Eva_cr :tcse HLfgetkA)b"Lexpfҟ>ELxtvaBcirc gyaml S2_Ldsa_9'Lx509[FLpod:H{P Ldate3CeLbtt^HLsyst2,Lsetp>ssl_9 z(Lxcb_B!}`Lpam_~@Lxcb_(#KwLxcb_'C~LdiffL;+LxgetrLec_g j(LshifLgetw8Lsets"kLatan6`Ldsp5 4amLxdr_E L-Lgit-JLxfs_ DM%LhlinL b0Lfcob?Lfunl .Lsem_E 2NbLxtapMt=Lstrt smimU @endh <xcb_ Lpane <8LpselP 7xget Lcerf 1ڻLxkbfndates 4jGLxcb__Lsetr? (extuWP Z'Lxcb_qeTLpcre>LfcfrDmoduWQ L_T|LtiffY8Lopta 34Ly1 Lssl_yxcb_%S TLxcmsK߭PLxrebN:Lxact<IR"Lxcb_^Lssl_zqLdate1Lepol Ltsig[U 3eLcabs3=xkblU ijtLpam_x I~jLqsel.Llog1 8$Lxcb_A">Lavc_~5jLxcb_|18Lpaus JoLgetpN DlocaX TݯLcgro#oLwho 0xLxcb_LcursULpcres>H*Lwand c9Lbzfg6 6VLxcb_TvLfiltAzILsnpr^ 3ϨULfcdi K8Ltiff@`Lruse N@Li2d_J[`Ltgamu%bMfcfrSxMssl__\PMavc_5 MupvaMMxcb_ ={Mrepon QoҜMsg_p I6Mnan -(McoshQ531Mremo`SMxtise`MHKMscal`>vMpthraa~.Mxtdi~a!\Mxkbkao"Malarxbk Msys/b $atMxtalb QMpod:cRīMcpan|cd.Mgsspc=!V=Mxcb_)kMgrubd/Mpem_d;TuMmemo%ee/Mfcpae=PMevp_eDZMferaDf"ςMxcb_tf)CMencof g1FMxcb_g*MsockgiMvgsp@hTS[Mrinth3PMnet-hNO$Msecu.c4Moffs 7Mdes_(98RMTempp4McimaA$Mbn_dtj?Mxcb_j(mMeucajREMtcl_gkbEu1Mssl_k!iMpcrehl?_Mselil@`VMrt_sm=(^Mshm.Pm7 Mpthrm-c.Msha5m >SMxcb_nJMxcb_Ln6Mbzdin9[Mpvdin KMxtpro@.MglobDxcb_/Mxcb_pLLMssl_7pYwclr @pam_ Clwre=FxkbfCgdbme)kMxcb_p#VQMbf_op@STMxcb_3q!hMthreo1Miswboq QMdateq0semaWbMxcb_q$Mxcb_r)MaddcXr Z#Mnl_sr;nMxungr 6 Mtcl_>s[FMpod:s01dMxcb_s,PMtype=t C[MmkhotFhMinitt <Mavc_,u5Mposiru7s3Mcpu_u BhMcexpv7MtcamBv B÷Mdup v6wMtcl_vQsock< kMxcb_,w0Mdnssww5=Mpod2w &FXMsuspw>@{Mwin8xIg ?MlwrexNaMbzcmx9 Mloca(y <6Mxcb_ny!+NMcms_y\ޞMdbi:1zTaEMxcb_z+ʋMperlz (!Mstrd { /|3MmousF{:6]Mlshw{(Mdate{0Mexpm| :wLMcatgC| 3V4Mxtme|?unex 3[IMxcb_|kMdate}DWOMatola} ?"Mxcb_}2A gMmunl} SMsetc ~0RMllseW~<G~Mfcna~^+MsemaFM=MconjZ 8R"Mmq_n &ec_pMasct1MdelcPuMgit-VEMtcl_cT BMfchd' 3Mgit-c D:Mdbd:[ YȆMset_?dE MlwreNxcb_"!SN/etc=#jNrouno ZgXNgetd 0bNaio_  Nrnan0afNnsup 5Nsigh .2Nx509 XKNeusc S Nxcb_,Nxcb_P\Nsyst}NrestV>TF?Nengl>aNxtge#?E^cNterm?@}2Nifco 8log1D 7cpanE ZNxcb_?@-ONperlA 9Nssl_b!nNuala 3CNcpan=ZJgNxtlaR㱑Nseth xcb_F "{DNdateD3--NxtrePshm_G C.NComp J]NsecuHJ Ncurs7jNwatt R ,NregeP 0NNtcl_ANgetcٔ]0#Nsigp=4yNxtvaIxcb_'J xcb_XJ $$Npthrٕ[fNbn_eL ?Nlz4_Eb%Nxcb_{fNdate 3bio_K ;%Nxcb_kNargz ;w(/Nmq_s jNhost :NticJC Nxcb_V"lCNwmemNeven JNNcurs PNtemp[KINcms_J7 b {xml:VOmodpZ Gxcb_iaObio_EjOdbi:m Osele )datek33;Oset_Gssl_IhOrepozec_kz#hOxrefXhOxcb_{"OdateP3OsttyOOsetu ,jOdige M_-Oxcb_F+ʏOdes_ 55Oget_Ξ8}iOperlCOwcsnh P8 Ounix W'Oxcb_c&8OlwreBssl_/XHOtimeß OOkill =evp_;?~?OzsoeF@Oselai3Oiswu <peek.Hcach} Xsend Qread>CxkbaDOxcb_\)# Oxcb_%ؒIOrpcd@ Gevp_?dVOxcb_+Otcl_ cnOCOLOB 3.2Ormg |Ohesi Dsigi>Oxkbf;>_Omake)1]Oformb?3Oxcb_!posi:waOxcb_(dOeqn2?isleset_NPdOdateu8pcapk 89BOfmod Devp_ 80@rOrena&OsystD7W%OxopeQmOgetcDOliba6DOdbixN9Ocatm?J6Omkfs >Owritq$)=Otcbm^Odates 42wOssl_FeOtiff7Oxcb_W-sqrt 6Oxcb_xtas Q ?moduWQ Ltcl_Q =ZOdove QextuAR Xtap:R Yxcb_%S 0 Ocopy/ vOxcb_ShOwidtNheOtest TjOsys:@RuOfcblIjOmemoU77Oxcb_agOcsin 3?Opthr!tօOlseah 56OlocaXحOcal -OcapaN 9hOsg_v JӉOxcb_#i'[Oxcb_&%perliX 4locaX TOevalY>RYOxcb_&tcl_cY ?FXOpcre >mu?Oxkbg(|Oxcb_1tanlY - /Odbip COslk_K;;Operl7٤Opcre>raisl[ K{ڑOdate03+OOvisu{0! OautoAxtisI] Lftw xcb_input_xi_delete_property_checked- 3 3 1540917640 B - - gz rpcdebug- 8 8 1634214565 A - - gz set and clear NFS and RPC kernel debug flagsxcb_selinux_get_property_use_context_reply- 3 3 1540917640 B - - gz tcl_mainTcl_Main 3 3 1448008822 A - - gz main program and event loop definition for Tcl-based applicationsCOLORS 3x- 3x 3 1720626759 B - - gz curses global variablesrm rm 1p rm 1hesiod.conf- 5 5 1402359731 A - - gz Configuration file for the Hesiod libraryxkbfreegeomkeysXkbFreeGeomKeys 3 3 1710950785 A - - gz Free geometry keysmakedev- 3 3 1402354211 A - - gz manage a device numberform_request_name- 3x 3 1720626759 B - - gz handle printable form request namesxcb_screensaver_unset_attributes- 3 3 1540917640 A - - gz xcb_input_open_device_class_info_length- 3 3 1540917640 B - - gz eqn- 1 1 1533764324 A - - gz format equations for troff or MathMLdatetime::locale::zh_hant_hkDateTime::Locale::zh_Hant_HK 3pm 3 1402390644 A - - gz fmodl 3p- 3p 3p 1402354215 B - - gz floating-point remainder value functionrename rename n rename 2 rename 1 rename 3psystemd-udevd-kernel.socket- 8 8 1711457788 B - - gz Device event managing daemonxopenimXOpenIM 3 3 1710950786 A - - gz open, close, and obtain input method informationgetcon- 3 3 1585710994 A - - gz get SELinux security context of a processaddr2line- 1 1 1696859909 A - - gz convert addresses into file names and line numbers.rewind rewind 3 rewind 3pstrerror_r strerror_r 3 strerror_r 3pdhcp-eval- 5 5 1718116541 A - - gz ISC DHCP conditional evaluationpivot_root pivot_root 8 pivot_root 2xcmstekhvcqueryminvXcmsTekHVCQueryMinV 3 3 1710950786 B - - gz obtain the TekHVC coordinatesxkbsetdebuggingflagsXkbSetDebuggingFlags 3 3 1710950785 A - t gz Change the values of any of the debug controlsxcb_glx_get_query_objectuiv_arb_data- 3 3 1540917640 B - - gz nanf nanf 3 nanf 3peuare-groupadduser- 1 1 1484780705 A - - gz Add a user to a grouperr_free_stringsERR_free_strings 3ssl 3 1699892208 A - - gz load and free error stringswww::robotrulesWWW::RobotRules 3pm 3 1402373315 A - - gz database of robots.txt-derived permissionsxcb_xfixes_create_pointer_barrier- 3 3 1540917640 A - - gz repoclosure- 1 1 1589300861 A - - gz display a list of unresolved dependencies for a yum repositoryiso_8859-1- 7 7 1402354220 A - t gz ISO 8859-1 character set encoded in octal, decimal, and hexadecimalpthread_attr_setguardsize 3- 3 3 1402354211 A - - gz set/get guard size attribute in thread attributes objectxcb_xkb_get_device_info_btn_actions- 3 3 1540917640 B - - gz is_term_resized_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionxcb_glx_vendor_private_checked- 3 3 1540917640 B - - gz isnormal 3- 3 3 1402354210 B - - gz floating-point classification macrosxlistpropertiesXListProperties 3 3 1710950786 B - - gz obtain and change window propertiesopendir 3p- 3p 3p 1402354216 A - - gz open a directorytcl_exprdoubleobjTcl_ExprDoubleObj 3 3 1448008822 B - - gz evaluate an expressionstrsignal- 3 3 1402354212 A - - gz return string describing signalssl_conf_ctx_set_flagsSSL_CONF_CTX_set_flags 3ssl 3 1721417624 A - - gz Set of clear SSL configuration context flagsfnmatch.h- 0p 0p 1402354203 A - - gz filename-matching typeslwres_freehostent- 3 3 1725373371 A - - gz lightweight resolver nodename / address translation APIhexdump- 1 1 1612283497 A - - gz display file contents in ascii, decimal, hexadecimal, or octalipc::sharedmemIPC::SharedMem 3pm 3 1698237674 A - - gz SysV Shared Memory IPC object classpow 3p- 3p 3p 1402354217 A - - gz power functionhistory history 3 history n history 1xtcreatepopupshellXtCreatePopupShell 3 3 1501646833 A - - gz create a popup shellcms_add1_crlCMS_add1_crl 3ssl 3 1721417624 B - - gz CMS certificate and CRL utility functionsprefresh- 3x 3 1720626759 B - - gz create and display curses padscrypto_destroy_dynlockidCRYPTO_destroy_dynlockid 3ssl 3 1721417624 B - - gz OpenSSL thread supportdatetime::locale::de_luDateTime::Locale::de_LU 3pm 3 1402390644 A - - gz euare-instanceprofiledel- 1 1 1484780705 A - - gz Delete an instance profilexcb_x_print_print_get_attributes_unchecked- 3 3 1540917640 B - - gz libaudit.conf- 5 5 1565265962 A - - gz libaudit configuration filedbix::simple::comparisonDBIx::Simple::Comparison 3pm 3 1402379379 A - - gz DBIx::Simple in DBI jargoncatman- 8 8 1540931193 A - - gz create or update the pre-formatted manual pagesmkfs.ext2- 8 8 1711459141 B - - gz create an ext2/ext3/ext4 filesystemwrite-mime-multipart- 1 1 1410347192 A - - gz utilty for creating mime-multipart files, likely for use via user data and cloud-init.tcbmgr- 1 1 1402385697 A - - gz the command line utility of the B+ tree database APIssl_ctx_get_optionsSSL_CTX_get_options 3ssl 3 1721417624 B - - gz manipulate SSL optionstiffisbyteswappedTIFFIsByteSwapped 3tiff 3 1729525165 C TIFFquery - gz xcb_xfixes_create_region_from_bitmap_checked- 3 3 1540917640 B - - gz xcb_shape_mask_checked- 3 3 1540917640 B - - gz doveadm-dump- 1 1 1724195936 A - - gz Dump the content of Dovecot's binary mailbox index/logcopysignl copysignl 3 copysignl 3pxcb_uninstall_colormap- 3 3 1540917640 A - - gz widthofscreenWidthOfScreen 3 3 1710950785 B - - gz screen information functions and macrostest::moreTest::More 3pm 3 1402359209 A - - gz yet another framework for writing test scriptssys::hostnameSys::Hostname 3pm 3 1698237677 A - - gz Try every conceivable way to get hostnamefcblanksismemberFcBlanksIsMember 3 3 1520307172 A - - gz Query membership in an FcBlanksmemoize::storableMemoize::Storable 3pm 3 1698237676 A - - gz store Memoized data in Storable databasexcb_xinerama_query_version- 3 3 1540917640 A - - gz csinl 3p- 3p 3p 1402354214 B - - gz complex sine functionspthread_mutexattr_setprioceiling- 3p 3p 1402354217 B - - gz get and set the prioceiling attribute of the mutex attributes object (REALTIME THREADS)lsearch 3p- 3p 3p 1402354216 A - - gz linear search and updatelocale::maketext::cookbookLocale::Maketext::Cookbook 3pm 3 1402353872 A - - gz recipes for using Locale::Maketextcal 1- 1 1 1612283497 A - - gz display a calendarcapabilities- 7 7 1402354219 A - - gz overview of Linux capabilitiessg_verify- 8 8 1585715378 A - - gz invoke SCSI VERIFY command(s) on a block devicexcb_xfixes_query_version_unchecked- 3 3 1540917640 B - - gz xcb_copy_area- 3 3 1540917640 A - - gz copy areaseval 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)xcb_get_motion_events_events_iterator- 3 3 1540917640 B - - gz pcrelimits- 3 3 1501643278 A - - gz Perl-compatible regular expressionsxkbgetnameddeviceindicatorXkbGetNamedDeviceIndicator 3 3 1710950785 B - - gz Look up the indicator map and other information for an indicator by namexcb_map_window- 3 3 1540917640 A - - gz Makes a window visibledbiproxy- 1 1 1402362411 A - - gz A proxy server for the DBD::Proxy driverslk_restore_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionperl5163delta- 1 1 1698237662 A - - gz what is new for perl v5.16.3pcre16_assign_jit_stack- 3 3 1573510868 B - - gz Perl-compatible regular expressionsdatetime::locale::sr_csDateTime::Locale::sr_CS 3pm 3 1402390639 A - - gz visudo- 8 8 1711647470 A - - gz edit the sudoers fileautodie::exception- 3pm 3 1402392173 A - - gz Exceptions from autodying functions.sleep 1p- 1p 1p 1402354204 A - - gz suspend execution for an intervalxtremovesignalXtRemoveSignal 3 3 1501646833 B - - gz register and remove a signal sourcextaddcallbacksXtAddCallbacks 3 3 1501646833 B - - gz add and remove callback procedureswctype 3p- 3p 3p 1402354219 A - t gz define character classgetprotobyname 3- 3 3 1402354209 A - - gz get protocol entryxtwindowofobjectXtWindowOfObject 3 3 1501646833 B - - gz obtain window information about a widgetgit-merge-base- 1 1 1722330780 A - - gz Find as good common ancestors as possible for a mergedes_enc_writeDES_enc_write 3ssl 3 1721417624 B - - gz DES encryptionfcntl 2- 2 2 1402354204 A - - gz manipulate file descriptorcpu_equal_sCPU_EQUAL_S 3 3 1402354206 B - - gz macros for manipulating CPU setstcl_asyncinvokeTcl_AsyncInvoke 3 3 1448008821 B - - gz handle asynchronous eventseuwatch-enable-alarm-actions- 1 1 1484780705 A - - gz Enable all actions for one or more alarmstcl_getvar2Tcl_GetVar2 3 3 1448008822 B - - gz manipulate Tcl variablessemanage-module- 8 8 1585713889 A - - gz SELinux Policy Management module mapping toolxcb_dri3_buffers_from_pixmap_strides_end- 3 3 1540917640 B - - gz rsa 1ssl- 1ssl 1 1699892201 A - - gz RSA key processing toolhsearch 3- 3 3 1402354210 A - - gz hash table managementkeybound_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionfloorf 3- 3 3 1402354209 B - - gz largest integral value not greater than argumentmitem_current- 3x 3 1720626759 A - - gz set and get current_menu_itemnamed.conf- 5 5 1725373372 A - - gz configuration file for namedxcb_dri2_get_param_unchecked- 3 3 1540917640 B - - gz tcl_maketcpclientchannelTcl_MakeTcpClientChannel 3 3 1448008822 A - - gz procedures to open channels using TCP socketsxcb_randr_get_output_property_data_length- 3 3 1540917640 B - - gz bio_get_callback_argBIO_get_callback_arg 3ssl 3 1721417624 B - - gz BIO callback functionsdatetime::locale::byn_erDateTime::Locale::byn_ER 3pm 3 1402390640 A - - gz baudrate_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionhypot hypot 3 hypot 3pbio_ctrl_reset_read_requestBIO_ctrl_reset_read_request 3ssl 3 1721417624 B - - gz BIO pair BIOregfree regfree 3 regfree 3perror::pass2- 7stap 7 1602605484 A - - gz systemtap pass-2 errorsis_selinux_mls_enabled- 3 3 1585710994 B - - gz check whether SELinux is enabledxcb_randr_list_provider_properties_atoms- 3 3 1540917640 B - - gz isless 3p- 3p 3p 1402354216 A - - gz test if x is less than yxarcXArc 3 3 1710950785 B - te gz draw arcs and arc structurebn_sqr_words- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionstanl 3- 3 3 1402354212 A - - gz tangent functiond2i_netscape_rsad2i_Netscape_RSA 3ssl 3 1721417624 B - - gz RSA public and private key encoding functions.screenwhitepointofcccScreenWhitePointOfCCC 3 3 1710950785 B - - gz Color Conversion Context macrosxtextpropertytostringlistXTextPropertyToStringList 3 3 1710950786 B - - gz convert string lists and text property structuretiffxyztorgbTIFFXYZToRGB 3tiff 3 1729525165 C TIFFcolor - gz man man 7 man 1p man 1git-check-attr- 1 1 1722330784 A - - gz Display gitattributes informationxlookupstringXLookupString 3 3 1710950786 B - - gz handle keyboard input events in Latin-1h2xs- 1 1 1698237679 A - - gz convert .h C header files to Perl extensionsproc::pid::fileProc::PID::File 3pm 3 1390236219 A - - gz a module to manage process id filesxcb_glx_is_query_arb- 3 3 1540917640 A - - gz digest::hmacDigest::HMAC 3pm 3 1402388904 A - - gz Keyed-Hashing for Message AuthenticationfcfreetypequeryallFcFreeTypeQueryAll 3 3 1520307172 A - - gz compute all patterns from font file (and index)template::constantsTemplate::Constants 3pm 3 1402357151 A - - gz Defines constants for the Template Toolkitxcb_input_ungrab_device- 3 3 1540917640 A - - gz datetime::locale::frDateTime::Locale::fr 3pm 3 1402390634 A - - gz tcl_createchannelhandlerTcl_CreateChannelHandler 3 3 1448008821 A - - gz call a procedure when a channel becomes readable or writabletcl_wordbreakaftertcl_wordBreakAfter n n 1448008823 B - - gz standard library of Tcl procedureseuare-oidcprovidercreate- 1 1 1484780705 A - - gz Create a new OpenID Connect providerperlsec- 1 1 1698237668 A - - gz Perl securityfloorl 3p- 3p 3p 1402354215 B - - gz floor functionxcb_intern_atom- 3 3 1540917640 A - - gz Get atom identifier by nametiffvgetfieldTIFFVGetField 3tiff 3 1729525165 C TIFFGetField - gz usleep 3- 3 3 1402354213 A - - gz suspend execution for microsecond intervalserr_put_errorERR_put_error 3ssl 3 1721417624 A - - gz record an errorxrmqgetsearchresourceXrmQGetSearchResource 3 3 1710950786 B - - gz retrieve database resources and search listsscanw- 3x 3 1720626759 B - - gz convert formatted input from a curses windowunpost_form- 3x 3 1720626759 B - - gz write or erase forms from associated subwindowscksum cksum 1p cksum 1dirname 3- 3 3 1402354207 A - - gz parse pathname componentssnmptrapd- 8 8 1706198099 A - - gz Receive and log SNMP trap messages.ssl_ctx_sess_set_get_cbSSL_CTX_sess_set_get_cb 3ssl 3 1721417624 A - - gz provide callback functions for server side external session cachingmlock 3p- 3p 3p 1402354216 A - - gz lock or unlock a range of process address space (REALTIME)tcl_getencodingTcl_GetEncoding 3 3 1448008821 B - - gz procedures for creating and using encodingsxcb_glx_wait_gl_checked- 3 3 1540917640 B - - gz asinhl 3p- 3p 3p 1402354214 B - - gz inverse hyperbolic sine functionsgetpid 2- 2 2 1402354205 A - - gz get process identificationlwres_gabnrequest_parse- 3 3 1725373371 B - - gz lightweight resolver getaddrbyname message handlingpem_read_bio_x509PEM_read_bio_X509 3ssl 3 1721417624 B - - gz PEM routinesmagickwand-configMagickWand-config 1 1 1570314376 A - - gz get information about the installed version of the Magick Wandpathconf pathconf 3 pathconf 3pfreeconary- 3 3 1585710994 B - - gz get SELinux security context of a processsigtimedwait 3p- 3p 3p 1402354218 B - - gz wait for queued signals (REALTIME)evp_encodeupdateEVP_EncodeUpdate 3ssl 3 1721417624 B - - gz EVP base 64 encode/decode routinessplain splain 3pm splain 1dbm_error- 3p 3p 1402354214 B - - gz database functionsxdr_reference- 3 3 1402354213 B - - gz library routines for external data representationtc-basic- 8 8 1601484048 A - - gz basic traffic control filterxallocstandardcolormapXAllocStandardColormap 3 3 1710950786 A - t gz allocate, set, or read a standard colormap structurekeyctl_*()- 3 3 1402366674 C keyctl - gz fgetgrent- 3 3 1402354209 A - - gz get group file entrydevel::ppportDevel::PPPort 3pm 3 1698237673 A - - gz Perl/Pollution/Portabilitydatetime::locale::es_clDateTime::Locale::es_CL 3pm 3 1402390638 A - - gz xcb_damage_subtract_checked- 3 3 1540917640 B - - gz pam_close_session- 3 3 1585713595 A - - gz terminate PAM session managementis_term_resized- 3x 3 1720626759 B - - gz change the curses terminal sizesys/stat.h- 0p 0p 1402354203 C stat.h - gz difftime 3- 3 3 1402354208 A - - gz calculate time differencecprojl cprojl 3 cprojl 3pxcb_xkb_bell_checked- 3 3 1540917640 B - - gz bn_rshiftBN_rshift 3ssl 3 1721417624 B - - gz bit operations on BIGNUMschcat- 8 8 1585713889 A - - gz change file SELinux security categoryxcb_property_notify_event_t- 3 3 1540917640 A - - gz a window property changedsrand48 srand48 3 srand48 3pdatetime::locale::ti_etDateTime::Locale::ti_ET 3pm 3 1402390643 A - - gz is_wintouched- 3x 3 1720626759 B - - gz curses refresh control routinestcl_getopenfileTcl_GetOpenFile 3 3 1448008822 A - - gz Return a FILE* for a channel registered in the given interpreter (Unix only)xcb_dri2_get_buffers_unchecked- 3 3 1540917640 B - - gz tcl_appendtoobjTcl_AppendToObj 3 3 1448008822 B - - gz manipulate Tcl objects as stringsdatetime::locale::se_noDateTime::Locale::se_NO 3pm 3 1402390634 A - - gz fcstrdowncaseFcStrDowncase 3 3 1520307172 A - - gz create a lower case translation of a stringxcb_randr_get_provider_property- 3 3 1540917640 A - - gz ip-address- 8 8 1601484048 A - - gz protocol address managementxcb_input_list_device_properties_atoms_end- 3 3 1540917640 B - - gz split split n split 1p split 1perlfunc- 1 1 1698237665 A - - gz Perl builtin functionsstty 1- 1 1 1605565487 A - - gz change and print terminal line settingscurs_scroll- 3x 3 1715932338 A - - gz scroll a curses windowgetgrgid_r getgrgid_r 3 getgrgid_r 3pxcmssetcccofcolormapXcmsSetCCCOfColormap 3 3 1710950786 B - - gz query and modify CCC of a colormapgiga- 7 7 1402354220 C units t gz yn yn 3 yn 3pswapcontext swapcontext 3 swapcontext 2 swapcontext 3peuca-describe-instance-types- 1 1 1484780705 A - - gz [Eucalyptus only] Show information about instance typesxcb_xf86dri_get_drawable_info_back_clip_rects_iterator- 3 3 1540917640 B - - gz xcb_glx_get_minmax_data- 3 3 1540917640 B - - gz curs_beep- 3x 3 1715932336 A - - gz curses bell and screen flash routinesx509_verify_param_get_depthX509_VERIFY_PARAM_get_depth 3ssl 3 1721417624 B - - gz X509 verification parametersevp_rc5_32_12_16_ofbEVP_rc5_32_12_16_ofb 3ssl 3 1721417624 B - - gz EVP cipher routinesseek- n n 1448008824 A - - gz Change the access position for an open channel__fpending- 3 3 1402354207 B - - gz interfaces to stdio FILE structureargz_replace- 3 3 1402354207 B - - gz functions to handle an argz listxcb_xfixes_get_cursor_image_and_name_name- 3 3 1540917640 B - - gz pkeyutl- 1ssl 1 1699892201 A - - gz public key algorithm utilityexpm1f 3p- 3p 3p 1402354215 B - - gz compute exponential functionsul- 1 1 1612283497 A - - gz do underliningxutf8drawimagestringXutf8DrawImageString 3 3 1710950786 B - - gz draw image text using a single font settc-nat- 8 8 1601484048 A - - gz stateless native address translation actiondpmsqueryextensionDPMSQueryExtension 3 3 1448003986 A - - gz queries the X server to determine the availability of the DPMS Extensionbzero bzero 3 bzero 3pdatetime::locale::sv_seDateTime::Locale::sv_SE 3pm 3 1402390641 A - - gz xkbgetupdatedmapXkbGetUpdatedMap 3 3 1710950785 A - t gz Update the client or server map information in an existing keyboard descriptionxcb_glx_get_floatv_data_length- 3 3 1540917640 B - - gz mq_timedsend mq_timedsend 3 mq_timedsend 2 mq_timedsend 3pmvvline_set- 3x 3 1720626759 B - - gz create curses borders or lines using complex characters and renditionsiruserok- 3 3 1402354210 B - - gz routines for returning a stream to a remote commandxcb_glx_select_buffer- 3 3 1540917640 A - - gz tcl_hashstatsTcl_HashStats 3 3 1448008822 B - - gz procedures to manage hash tablesxcb_poly_fill_arc- 3 3 1540917640 A - - gz datetime::locale::uz_cyrl_uzDateTime::Locale::uz_Cyrl_UZ 3pm 3 1402390635 A - - gz pthread_attr_getstacksize pthread_attr_getstacksize 3 pthread_attr_getstacksize 3psg_modes- 8 8 1585715378 A - - gz reads mode pages with SCSI MODE SENSE commandsepol_check_context- 3 3 1540935374 A - - gz Check the validity of a security context against a binary policy.iso-8859-5- 7 7 1402354219 B - t gz ISO 8859-5 character set encoded in octal, decimal, and hexadecimalCBQ 8- 8 8 1601484048 C tc-cbq - gz pam_console_apply- 8 8 1585713588 A - - gz set or revoke permissions for users at the system consoledatetime::locale::el_cyDateTime::Locale::el_CY 3pm 3 1402390643 A - - gz lex 1p- 1p 1p 1402354204 A - t gz generate programs for lexical tasks (DEVELOPMENT)cfsetispeed 3- 3 3 1402354207 B - - gz get and set terminal attributes, line control, get and set baud rateposix_trace_create- 3p 3p 1402354217 A - t gz trace stream initialization, flush, and shutdown from a process (TRACING)image::info::xpmImage::Info::XPM 3pm 3 1402363342 A - - gz XPM support for Image::Infoxml2-config- 1 1 1708355032 A - - gz script to get information about the installed version of GNOME-XMLlwres_nooprequest_render- 3 3 1725373371 B - - gz lightweight resolver no-op message handlingtcl_regexpcompileTcl_RegExpCompile 3 3 1448008822 B - - gz Pattern matching with regular expressionsexp2f exp2f 3 exp2f 3pxcb_glx_get_color_table_parameterfv_reply- 3 3 1540917640 B - - gz i2d_ecdsa_sigi2d_ECDSA_SIG 3ssl 3 1721417624 B - - gz Elliptic Curve Digital Signature Algorithmxcb_render_query_version_unchecked- 3 3 1540917640 B - - gz kbdinfo- 1 1 1637771558 A - - gz obtain information about the status of a consolepthread_mutexattr_getrobust- 3p 3p 1402354217 A - - gz get and set the mutex robust attributesemanage-node- 8 8 1585713889 A - - gz SELinux Policy Management node mapping tooltowctrans 3p- 3p 3p 1402354219 A - - gz wide-character transliterationmsgget msgget 2 msgget 3ptc-hfcs- 7 7 1601484048 C tc-hfsc - gz grub2-kbdcomp- 1 1 1722985065 A - - gz Generate a GRUB keyboard layout file.xcb_randr_get_providers_reply- 3 3 1540917640 B - - gz infokey- 1 1 1363129016 A - - gz compile customizations for Inforesolv.conf- 5 5 1402354219 A - - gz resolver configuration filexcb_xfixes_invert_region- 3 3 1540917640 A - - gz intro 5- 5 5 1402354219 A - - gz introduction to file formatsdatetime::locale::ja_jpDateTime::Locale::ja_JP 3pm 3 1402390642 A - - gz seed48 3p- 3p 3p 1402354218 B - - gz generate uniformly distributed pseudo-random numbersrpc rpc 3 rpc 5xcb_xfixes_get_cursor_name_name- 3 3 1540917640 B - - gz pod2usage- 1 1 1402390578 A - - gz print usage messages from embedded pod docs in filesuuid_parse- 3 3 1612283497 A - - gz convert an input UUID string into binary representationcurs_util- 3x 3 1715932338 A - - gz miscellaneous curses utility routinesxtconfigurewidgetXtConfigureWidget 3 3 1501646833 A - - gz move and resize widgetsenchant Enchant 1 enchant 1x509_store_ctx_set_verify_cbX509_STORE_CTX_set_verify_cb 3ssl 3 1699892214 A - - gz set verification callbackwall- 1 1 1402355803 A - - gz send a message to everybody's terminal.msync 3p- 3p 3p 1402354216 A - t gz synchronize memory with physical storagehmac_ctx_cleanupHMAC_CTX_cleanup 3ssl 3 1721417624 B - - gz HMAC message authentication codedatetime::locale::orDateTime::Locale::or 3pm 3 1402390641 A - - gz cos cos 3 cos 3ppututxline 3p- 3p 3p 1402354217 B - t gz user accounting database functionscbrtl 3p- 3p 3p 1402354214 B - - gz cube root functionsxcb_glx_get_materialiv_reply- 3 3 1540917640 B - - gz getbegy- 3x 3 1720626759 B - - gz get curses cursor and window coordinates, attributesuuid_is_null- 3 3 1612283497 A - - gz compare the value of the UUID to the NULL valuexcb_randr_create_mode_unchecked- 3 3 1540917640 B - - gz xcb_randr_get_provider_info_outputs- 3 3 1540917640 B - - gz wait3- 2 2 1402354206 B - - gz wait for process to change state, BSD styletcl_findcommandTcl_FindCommand 3 3 1448008822 B - - gz manipulate namespacesxcb_dri2_authenticate_unchecked- 3 3 1540917640 B - - gz scandirat- 3 3 1402354212 A - - gz scan a directory relative to a directory file descriptorupdate- n n 1448008824 A - - gz Process pending events and idle callbackstcl_deleteeventsourceTcl_DeleteEventSource 3 3 1448008822 B - - gz the event queue and notifier interfacescatanf 3- 3 3 1402354207 B - - gz complex arc tangentsui_dup_verify_stringUI_dup_verify_string 3ssl 3 1721417624 B - - gz New User Interfaceh2ph- 1 1 1698237679 A - - gz convert .h C header files to .ph Perl header filesstrcpy 3- 3 3 1402354212 A - - gz copy a stringlog10l 3- 3 3 1402354210 B - - gz base-10 logarithmic functioncms_set1_signer_certCMS_set1_signer_cert 3ssl 3 1721417624 B - - gz CMS signedData signer functions.clog2- 3 3 1402354208 A - - gz base-2 logarithm of a complex numbergmtime 3- 3 3 1402354210 B - - gz transform date and time to broken-down time or ASCIIxcb_randr_get_screen_resources_current_outputs- 3 3 1540917640 B - - gz color_set- 3x 3 1720626759 B - - gz curses character and window attribute control routinesmvwhline- 3x 3 1720626759 B - - gz create curses borders, horizontal and vertical linesxkeymapeventXKeymapEvent 3 3 1710950786 A - - gz KeymapNotify event structurexcb_glx_get_histogram_parameteriv_data_end- 3 3 1540917640 B - - gz security_compute_create- 3 3 1585710994 B - - gz query the SELinux policy database in the kernelbn_modBN_mod 3ssl 3 1721417624 B - - gz arithmetic operations on BIGNUMsxcb_glx_create_pixmap- 3 3 1540917640 A - - gz extutils::mm_beosExtUtils::MM_BeOS 3pm 3 1402365499 A - - gz methods to override UN*X behaviour in ExtUtils::MakeMakererror::sdt- 7stap 7 1602605484 A - - gz marker failuresmq_timedreceive 3p- 3p 3p 1402354216 B - - gz receive a message from a message queue (REALTIME)tan 3p- 3p 3p 1402354218 A - - gz tangent functiondatetime::locale::tt_ruDateTime::Locale::tt_RU 3pm 3 1402390643 A - - gz mailx 1- 1 1 1533764336 A - t gz send and receive Internet mailxcb_glx_get_tex_level_parameterfv- 3 3 1540917640 A - - gz fcstrcmpFcStrCmp 3 3 1520307172 A - - gz compare UTF-8 stringsxcb_randr_get_output_property_unchecked- 3 3 1540917640 B - - gz xcb_glx_get_histogram_parameteriv_data- 3 3 1540917640 B - - gz tiffgetmodeTIFFGetMode 3tiff 3 1729525165 C TIFFquery - gz ssl_add_sessionSSL_add_session 3ssl 3 1721417624 B - - gz manipulate session cachenapms- 3x 3 1720626759 B - - gz low-level curses routinesevp_md_ctx_block_sizeEVP_MD_CTX_block_size 3ssl 3 1721417624 B - - gz EVP digest routinesselinux_homedir_context_path- 3 3 1585710994 B - - gz These functions return the paths to the active SELinux policy configuration directories and filestypeahead_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionxcb_grab_keyboard_reply- 3 3 1540917640 B - - gz Grab the keyboardlh_stats- 3ssl 3 1721417624 A - - gz LHASH statisticscurs_addwstr- 3x 3 1715932335 A - - gz add a string of wide characters to a curses window and advance cursorisgreaterequal 3- 3 3 1402354210 B - - gz floating-point relational tests without exception for NaNxcb_glx_get_drawable_attributes_attribs_end- 3 3 1540917640 B - - gz registerrpc- 3 3 1402354211 B - - gz library routines for remote procedure callsxcb_xkb_get_map- 3 3 1540917640 A - - gz userdel- 8 8 1565319053 A - - gz delete a user account and related filesxcb_randr_get_screen_resources_crtcs_length- 3 3 1540917640 B - - gz cacosf 3- 3 3 1402354207 B - - gz complex arc cosinexshapegetrectanglesXShapeGetRectangles 3 3 1448003986 B - - gz X nonrectangular shape functionssetresuid- 2 2 1402354206 A - - gz set real, effective and saved user or group IDui_dup_input_booleanUI_dup_input_boolean 3ssl 3 1721417624 B - - gz New User Interfacemdc2 3ssl- 3ssl 3 1699892217 A - - gz MDC2 hash functioncolors COLORS 3x colors ngetwd getwd 3 getwd 2 getwd 3pxcb_randr_get_crtc_info_outputs_length- 3 3 1540917640 B - - gz slk_color_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionerand48 3p- 3p 3p 1402354214 A - - gz generate uniformly distributed pseudo-random numbersgetopt 3p- 3p 3p 1402354216 A - - gz command option parsingpodselect()- 3pm 3 1402373048 C Pod::Select - gz ip-fou- 8 8 1601484048 A - - gz Foo-over-UDP receive port configurationpam_debug- 8 8 1585713585 A - - gz PAM module to debug the PAM stackcexpl cexpl 3 cexpl 3peulb-set-lb-listener-ssl-cert- 1 1 1484780705 A - - gz Change the certificate that terminates a load balancer'slistener's SSL connectionsssl_set_max_cert_listSSL_set_max_cert_list 3ssl 3 1721417624 B - - gz manipulate allowed for the peer's certificate chainxgetgcvaluesXGetGCValues 3 3 1710950785 B - t gz create or free graphics contexts and graphics context structureselinuxdefcon- 8 8 1585710994 A - - gz report default SELinux context for userxmaprequesteventXMapRequestEvent 3 3 1710950786 A - - gz MapRequest event structurecrl- 1ssl 1 1699892199 A - - gz CRL utilityxungrabbuttonXUngrabButton 3 3 1710950786 B - - gz grab pointer buttonspthread_attr_getschedpolicy pthread_attr_getschedpolicy 3 pthread_attr_getschedpolicy 3ptap::formatter::sessionTAP::Formatter::Session 3pm 3 1439389327 A - - gz Abstract base class for harness output delegatessl_get_ex_new_indexSSL_get_ex_new_index 3ssl 3 1721417624 A - - gz internal application specific data functionssetjmp.h- 0p 0p 1402354203 A - - gz stack environment declarationspython- 1 1 1729098114 B - - gz an interpreted, interactive, object-oriented programming languagelpasswd- 1 1 1381614967 A - - gz Change group or user passwordbn_wexpand- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionstdelete tdelete 3 tdelete 3pdatetime::locale::en_dsrt_usDateTime::Locale::en_Dsrt_US 3pm 3 1402390644 A - - gz mitem_name- 3x 3 1720626759 A - - gz get menu item name and description fieldsdf 1p- 1p 1p 1402354203 A - - gz report free disk spacexcb_x_print_print_get_document_data_reply- 3 3 1540917640 B - - gz pwquality.conf- 5 5 1357207460 A - - gz configuration for the libpwquality librarygetpriority 3p- 3p 3p 1402354218 A - - gz get and set the nice valuebell- n n 1448008911 A - - gz Ring a display's bellxcb_randr_get_provider_info_crtcs- 3 3 1540917640 B - - gz xcb_alloc_color_cells_unchecked- 3 3 1540917640 B - - gz xcb_set_modifier_mapping_unchecked- 3 3 1540917640 B - - gz link_field- 3x 3 1720626759 B - - gz create and destroy form fieldscurs_ins_wch- 3x 3 1715932337 A - - gz insert a complex character and rendition into a windowxcb_input_list_input_devices_infos_length- 3 3 1540917640 B - - gz shuf- 1 1 1605565487 A - - gz generate random permutations__memalign_hook- 3 3 1402354207 B - - gz malloc debugging variablesrndc.conf- 5 5 1725373372 A - - gz rndc configuration filextcreatewindowXtCreateWindow 3 3 1501646833 A - - gz window creation convenience functiondbd::sqliteDBD::SQLite 3pm 3 1402349859 A - - gz Self-contained RDBMS in a DBI Drivergssproxy- 8 8 1623255005 A - - gz GssProxy Daemonobj_txt2nidOBJ_txt2nid 3ssl 3 1721417624 B - - gz ASN1 object utility functionsevp_pkey_verifyEVP_PKEY_verify 3ssl 3 1721417624 A - - gz signature verification using a public key algorithmxcb_query_font_unchecked- 3 3 1540917640 B - - gz query font metricssecurity_compute_create_name_raw- 3 3 1585710994 B - - gz query the SELinux policy database in the kerneludev- 7 7 1711457788 A - - gz Dynamic device managementBC 3x- 3x 3 1720626759 B - - gz direct curses interface to the terminfo capability databasemakedumpfile.conf- 5 5 1623254998 A - - gz The filter configuration file for makedumpfile(8).xcb_keymap_notify_event_t- 3 3 1540917640 A - - gz cpanplus::selfupdateCPANPLUS::Selfupdate 3pm 3 1402392266 A - - gz self-updating for CPANPLUSwrite 3p- 3p 3p 1402354219 A - - gz write on a filelwres_buffer- 3 3 1725373371 A - - gz lightweight resolver buffer managementwinnwstr- 3x 3 1720626759 B - - gz get a string of wchar_t characters from a curses windowiceauth- 1 1 1502476988 A - - gz ICE authority file utilityeulb-create-lb-cookie-stickiness-policy- 1 1 1484780705 A - - gz Create a new stickiness policy for a load balancer, whereby the load balancer automatically generates cookies that it uses to route requests from each user to the same back end instance. This type of policy can only be associated with HTTP or HTTPS listeners./etc/updatedb.conf- 5 5 1523418406 C updatedb.conf - gz cms_compressCMS_compress 3ssl 3 1699892206 A - - gz create a CMS CompressedData structure.netrc- 5 5 965001419 C netrc - gz xcb_xfixes_get_cursor_name- 3 3 1540917640 A - - gz wget_wstr- 3x 3 1720626759 B - - gz get an array of wide characters from a curses terminal keyboardeuare-oidcproviderlist- 1 1 1484780705 A - - gz List your account's OpenID Connect providerssystemd-fsck@.service- 8 8 1711457788 A - - gz File system checker logicrsa_sign_asn1_octet_stringRSA_sign_ASN1_OCTET_STRING 3ssl 3 1721417624 A - - gz RSA signaturesdd 1- 1 1 1605565487 A - - gz convert and copy a filestrfry- 3 3 1402354212 A - - gz randomize a stringaudispd.conf- 5 5 1565265962 A - - gz the audit event dispatcher configuration fileevp_cipher_ctx_get_app_dataEVP_CIPHER_CTX_get_app_data 3ssl 3 1721417624 B - - gz EVP cipher routinesxkblatchgroupXkbLatchGroup 3 3 1710950785 A - t gz Latches the keysym groupxcb_glx_get_string_string- 3 3 1540917640 B - - gz perl5122delta- 1 1 1698237662 A - - gz what is new for perl v5.12.2crealf 3- 3 3 1402354208 B - - gz get real part of a complex numberinsque 3p- 3p 3p 1402354218 A - - gz insert or remove an element in a queueeuare-usergetpolicy- 1 1 1484780705 A - - gz Display a user's policyxcb_xfixes_union_region_checked- 3 3 1540917640 B - - gz xcb_glx_get_tex_enviv- 3 3 1540917640 A - - gz gslp- 1 1 1605296035 A - - gz Format and print text using ghostscripttcl_createexithandlerTcl_CreateExitHandler 3 3 1448008821 A - - gz end the application or thread (and invoke exit handlers)xcb_xkb_get_device_info_leds_length- 3 3 1540917640 B - - gz mqueue.h- 0p 0p 1402354203 A - - gz message queues (REALTIME)gets 3p- 3p 3p 1402354215 A - - gz get a string from a stdin streamgetsockname 3p- 3p 3p 1402354215 A - - gz get the socket namextaddgrabXtAddGrab 3 3 1501646833 A - - gz redirect user input to a modal widgetx509_store_ctx_get_ex_dataX509_STORE_CTX_get_ex_data 3ssl 3 1699892214 A - - gz add application specific data to X509_STORE_CTX structuresbn_set_low- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionsdesktop-file-edit- 1 1 1573511280 B - - gz Installation and edition of desktop filesmsgfilter- 1 1 1465650365 A - - gz edit translations of message catalogeuare-getcallerid- 1 1 1484780705 A - - gz Show information about the currently-active credentialsdcngettext- 3 3 1354602538 B - - gz translate message and choose plural formpam_namespace- 8 8 1585713590 A - - gz PAM module for configuring namespace for a sessionunlz4- 1 1 1720626732 B - - gz lz4, unlz4, lz4cat - Compress or decompress .lz4 filesfmaxl fmaxl 3 fmaxl 3psha384_finalSHA384_Final 3ssl 3 1721417624 B - - gz Secure Hash Algorithmdate::parseDate::Parse 3pm 3 1402364546 A - - gz Parse date strings into time valuesio::compress::zipIO::Compress::Zip 3pm 3 1402361982 A - - gz Write zip files/buffersendwin_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionptargrep- 1 1 1565315036 A - - gz Apply pattern matching to the contents of files in a tar archiveip-maddress- 8 8 1601484048 A - - gz multicast addresses managementxcb_reparent_window- 3 3 1540917640 A - - gz Reparents a windowasn1_time_setASN1_TIME_set 3ssl 3 1721417624 A - - gz ASN.1 Time functions.xcb_input_open_device_reply- 3 3 1540917640 B - - gz selinux_failsafe_context_path- 3 3 1585710994 B - - gz These functions return the paths to the active SELinux policy configuration directories and filesssl_ctx_set1_curvesSSL_CTX_set1_curves 3ssl 3 1721417624 A - - gz EC supported curve functionsxcb_grab_key- 3 3 1540917640 A - - gz Grab keyboard key(s)xcb_put_image- 3 3 1540917640 A - - gz ttk::widget- n n 1448008912 A - - gz Standard options and commands supported by Tk themed widgetsperlop- 1 1 1698237667 A - - gz Perl operators and precedencetcl_issafeTcl_IsSafe 3 3 1448008821 B - - gz manage multiple Tcl interpreters, aliases and hidden commandssystemd-poweroff.service- 8 8 1711457788 B - - gz System shutdown logicraw 3x- 3x 3 1720626759 B - - gz curses input optionslseek64- 3 3 1402354210 A - - gz reposition 64-bit read/write file offsetec_point_set_compressed_coordinates_gfpEC_POINT_set_compressed_coordinates_GFp 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_POINT objects.getprotobynumber getprotobynumber 3 getprotobynumber 3prc4 RC4 3ssl rc4 3sslcpan::noxCPAN::Nox 3pm 3 1698237384 A - - gz Wrapper around CPAN.pm without using any XS modulenet::httpsNet::HTTPS 3pm 3 1402390514 A - - gz Low-level HTTP over SSL/TLS connection (client)bn_check_top- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionsxcb_xf86dri_auth_connection_unchecked- 3 3 1540917640 B - - gz tcflow tcflow 3 tcflow 3pxcb_xv_query_encodings_unchecked- 3 3 1540917640 B - - gz bkgrnd- 3x 3 1720626759 B - - gz curses window complex background manipulation routinesgitrevisions- 7 7 1722330784 A - - gz specifying revisions and ranges for Gitdatetime::locale::zh_hant_twDateTime::Locale::zh_Hant_TW 3pm 3 1402390635 A - - gz pam_xauth- 8 8 1585713593 A - - gz PAM module to forward xauth keys between usersd2i_dsa_sigd2i_DSA_SIG 3ssl 3 1721417624 B - - gz DSA key encoding and parsing functions.iswalnum iswalnum 3 iswalnum 3pprint_access_vector- 3 3 1585710994 B - - gz convert between SELinux class and permission values and string names. print_access_vector - display an access vector in human-readable form.xcb_x_print_print_set_image_resolution_reply- 3 3 1540917640 B - - gz fccachenumsubdirFcCacheNumSubdir 3 3 1520307172 A - - gz Return the number of subdirectories in cache.ptsname ptsname 3 ptsname 3pcore CORE 3pm core 5O0 tRmail@9L#Rxcb_A@"Rfcst~@ 7QbRxcb_@(PWRxcb_A'GRtiffCA 12Rssl_ADqRnapmA52RtypeC ;Rip-fHBFRsyst7,Rxcb_KC, )Rlh_sC .a˦RcursC aRisgr4DTv8Rxcb_D,RregiD F3!Rxcb_2E֯Ruser]EBRxcb_E,KCRcacoE -Rxsha$FM~ URsetrF I-Rui_dFCRmdc20G 0_ORcolojG}RgetwG#!|Rxcb_G'R5Rslk_G ;?Reran/H QPRgetoH 3IRpodsH 'HURiconbMۢRpam_DI <XsRcexpIѐReulbImbGRssl_-JeRxgetJ eRseliKB4RxmapjKD|RcrlK)M0RxungK;lSbuf_ H0Sxkbggo>Rpthr5L>!Rtap:LbRssl_ M]z-Rsetj{M ;`RpythM\Rlpas"N8V^Rbn_wbN ?NRtdelNPHRdateN8ORmiteO E#{ Rdf 1oO3_Stiff /BRxcb_O*_RfccoKRpthr]8|RposixzRdb_dD EҊRgetw ESperl/{Rdate392Rxcb_0$8Rhisto >xRip-l7b$Rpopd>L%Revp_9AJRcabsjfRhpsa5fUSpapeU 7ESsem_ QX{Rfreeړ >FØRgrub$(DzBSif_nTЗEScomp&8TsSx509fVSpem_D+RlastZOzRxcb_Ô-+{Rxutf J->0Rchmoe 2sCRxcb_)%wRkeyc?fRxcb_=@Rxcb_u3izRxcb_ÖGRinsl#HRllri 3Rxcb_X&iSec_g:_^Rlldi NSRpass ( Sbn_rTStcl_h(Smime^S#Sgete޺Rbf_e!>5Rec_gn#kfRtcl_DJ@Rtcl_Qm!Rsubwڙ1URtcl_LhRtcl_pS Rtcl_֚]u[RisasFlRgetfdmWRposi ?=ORsend0 A^jRiswcz AFSfblo ^Sxcb_JSdate4RcoshǜJSxcb_&BSgit-BNStc-p?"~Sbn_m BRabrtߜM Rmpro? ~"Sxcb_:hSevp_tE=wtSbio_ @\Sxcb_#cRiso_` ^=SrdisY:KSxcb_&&9"Sxcb_;Stm_M=Rtcl_ɝf Rxcb_B-RpthrLSlgrob ,|Rcryp!S5iRxcb_a'B fRfcca =oSscri JRdate87:Rxcb_U1RsetfA_-Rreni ARrRd2i_* GƣRqfcv~FRcaseV8=NRacce' >*Rmanpo >CSsftp74.Rxcb_BxRl64a;qSimpo<]Rxcb_'#@.Sfese IWRatane 1GSformX OF(SeucaVStcge&  SeucaG#f'Rxcb_ oRshel:Rtcl_?Rpem_k<ZCmRtcl_QUVSmvinO~Revp_BE-RselijB|fcconfigreferenceFcConfigReference 3 3 1520307172 A - - gz Increment config reference countpthread_setconcurrency 3- 3 3 1402354211 A - - gz set/get the concurrency levelposix_spawnattr_getsigdefault- 3p 3p 1402354217 A - - gz get and set the spawn-sigdefault attribute of a spawn attributes object (ADVANCED REALTIME)db_dump185- 1 1 1573510866 B - - gz Write database file using flat-text formatgetwchar 3p- 3p 3p 1402354215 A - - gz get a wide character from a stdin streamdatetime::locale::or_inDateTime::Locale::or_IN 3pm 3 1402390635 A - - gz xcb_glx_get_pixel_mapfv_data_length- 3 3 1540917640 B - - gz history 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)ip-link- 8 8 1601484048 A - - gz network device configurationpopd- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)evp_sealfinalEVP_SealFinal 3ssl 3 1721417624 B - - gz EVP envelope encryptioncabsf cabsf 3 cabsf 3phpsa- 4 4 1402354219 A - - gz HP Smart Array SCSI driverfreehostent- 3 3 1402354209 B - - gz get network hostnames and addressesgrub-macbless- 8 8 1722985065 C grub2-macbless - gz lastknownrequestprocessedLastKnownRequestProcessed 3 3 1710950785 B - - gz Display macros and functionsxcb_xf86dri_get_client_driver_name_unchecked- 3 3 1540917640 B - - gz xutf8drawstringXutf8DrawString 3 3 1710950786 B - - gz draw text using a single font setchmod 1p- 1p 1p 1402354203 A - t gz change the file modesxcb_randr_get_screen_resources_names_end- 3 3 1540917640 B - - gz keyctl_set_reqkey_keyring- 3 3 1402366674 A - - gz Set the implicit destination keyringxcb_input_query_device_state- 3 3 1540917640 A - - gz xcb_input_get_device_motion_events_events_iterator- 3 3 1540917640 B - - gz xcb_render_add_glyphs- 3 3 1540917640 A - - gz insl- 2 2 1402354205 B - - gz port I/Ollrint 3- 3 3 1402354210 B - - gz round to nearest integerxcb_record_unregister_clients_checked- 3 3 1540917640 B - - gz lldiv 3p- 3p 3p 1402354216 B - - gz compute quotient and remainder of a long divisionpasswd 5- 5 5 1402354219 A - - gz password filebf_ecb_encryptBF_ecb_encrypt 3ssl 3 1721417624 B - - gz Blowfish encryptionec_group_get_point_conversion_formEC_GROUP_get_point_conversion_form 3ssl 3 1721417624 B - - gz Functions for manipulating EC_GROUP objects.tcl_dstringtruncTcl_DStringTrunc 3 3 1448008821 B - - gz manipulate dynamic stringstcl_createthreadexithandlerTcl_CreateThreadExitHandler 3 3 1448008821 B - - gz end the application or thread (and invoke exit handlers)subwin- 3x 3 1720626759 B - - gz create curses windowstcl_getcharlengthTcl_GetCharLength 3 3 1448008822 B - - gz manipulate Tcl objects as stringstcl_getservicemodeTcl_GetServiceMode 3 3 1448008822 B - - gz the event queue and notifier interfacestcl_getchanneltypeTcl_GetChannelType 3 3 1448008821 B - - gz procedures for creating and manipulating channelsisascii isascii 3 isascii 3pgetfscreatecon_raw- 3 3 1585710994 B - - gz get or set the SELinux security context used for creating a new file system objectposixoptions- 7 7 1402354220 A - - gz optional parts of the POSIX standardsendfile- 2 2 1402354205 A - - gz transfer data between file descriptorsiswctype 3p- 3p 3p 1402354216 A - - gz test character for a specified classcoshl coshl 3 coshl 3pabrt-configuration- 8 8 1601569733 A - - gz dbus server for reading/writing ABRT configurationmprotect mprotect 2 mprotect 3piso_8859-6- 7 7 1402354220 A - t gz ISO 8859-6 character set encoded in octal, decimal, and hexadecimaltcl_createmathfuncTcl_CreateMathFunc 3 3 1448008821 A - - gz Define, query and enumerate math functions for expressionsxcb_randr_query_output_property_valid_values- 3 3 1540917640 B - - gz pthread_rwlock_destroy- 3p 3p 1402354217 B - - gz destroy and initialize a read-write lock objectcrypto_set_dynlock_lock_callbackCRYPTO_set_dynlock_lock_callback 3ssl 3 1721417624 B - - gz OpenSSL thread supportxcb_xfixes_select_cursor_input_checked- 3 3 1540917640 B - - gz fccachedirFcCacheDir 3 3 1520307172 A - - gz Return directory of cache/ ppsfgF [537Pxcb_ rPallo- 6!RPtcl_s  P`Pdget  ,EXPxcb_!0`)Pxcb_L!:Pload!HdfJPxcb_!ş Ppodl "CyPdateT"0/JPDisl" #`Pxrmp"@FPacos#=mPfts_\# 4k"Pgmti# Oxevi Qset_ G-Pdate#4UͯPxcb_D$)i_Pgeth$ k(Pcpan$VeucaE 31Pmode%N{PRC4 % ,Pxcb_ &Pextu@&\smar dPpane& <VPui_c&6QwPxcb_9'Pcms_l'QUPfile'{git- FyPctagd(Fz Ptcl_(Utbl 2geth <Pxrmp)Fgetc FRPtcl_r) XPwget) RfCPset_2*NPget_*IգPgs*^PxtexI+ SPxset+TVPx509 ,N8Pxcb_r,%Pio::,UPdate-0[2Pxcb_a-$0 WPcurs-T{Pdate.3>Pxcb_S.YPxcb_.*^Ptcl_. <p(Pxcb_/(XJPtcl_Z/Ia#Pxcb_p.Ptcl_IpSjPrsa/\Psgetp A\Pgete/VyPprezp M}cPabrtSq4lBPfc-vq .yy Peucaq!OiHPautoHr Ao=Pxcb_rPtclcr4!Pxcb_s+PsmimZsSG%Ppipes&rPdbm_s /%Paio_!t :|Prsa_dtDPmemmt H&Psigau ?QCPxcb_^uŪPevp_uCΌPlistu_PrmdiZv#Phdesv 59PpthrvGPxcb_w,iPsetudwA0Ptolow @$/Putimx ISOgPxcb_Rx'?gPtc-hx1Pxcb_x `(Psg_ryD/PxkbfSyKPxdrayQPvdofz .dPmvscNzHTPresiz;4Pfiltz 8Pxcb_,{F?Ptie:e{ CZggPeuca{@&Pispu|IohPxcb_%|vPdate[|4kPtiff|8\PPxkbg|l]Pmkfsn} 2diPeuim}- -Pwmem} >I˞Prepo7~< Pxcb_~!_Pcryp~ DoPget_ 33%PposiLa]Pslee >>PxtreGK:IPxtadJҚPwcty 3UB:Pgetp7-PxtwiuR;Pgit-Prsa_6n Bxcb_0K +tcl_vK ANPdes_78rPmmap0)MPfcnt}5?Pcpu_ Elwren BgrubiL %nfsdL @closFo  Ptcl_ C:uPeuwa^DrPtcl_ =d"PsemaHt%Pxcb_`)Prsa  5Phsea 0Pkeyb ;FPflooc K2Pmite9ޣTPname 7ssl_M QPxcb_@Ptcl_x_3aPxcb_*^=]Pbio_5GPdate4ZPbaud ;&Phypo%V,tPbio_=DPregfQ>Perro 6systC 6isenmC ;Pis_s; 4VPxcb_P)$Pisle 5rsa_D XimagE IzPxarc:SPbn_s ?Ptanl^+msgc   +FQd2i_[execMp )QscreN/SQxtex`c Qtiff 2}HQmanD!Qgit-4<AQxlooN*Qh2xsGQproc'NQxcb_j{Qdige PQfcfr[뀂QtempYi`Qxcb_Qdate 0zQtcl_enJQtcl_NQeuara?7tQperl(ÈQfloo + Qxcb_6AQtiffd63Qusle Fupdwu;dateu0QeuarGrewiA $Qfese_D NQxcb_'W(Qfege /eQxcb_Ru*QfdopUuQgetspRQ[Qtcl_NQposi-ajiQec_g`xcb_ pem_ @Qform$ 4vfscUx C crQtcl_b?`R4Qpam_ LQispr HI'QlwreeIeYQisatQnameIPQset_4NxQevp_'h>Qtc-h :_]QQeuarc, kQperl ,UQbio_ 3Qxcb_DQgethM1Qopto 3hQqsor 1^ Qgetp 04Qxcb_?!Qlgrou /JQxutf>QgetgDlQwcscO E9͡Qsock Qxtre?Qssl_WqQxcb_- Qb::l,strn@}0Qpem_:v!QrndcK 3lYQxcb_+Qdate0 .Qclos ,tcl_3FwQxtinMN'Qxcb_.Qxcb_!;Qfcat8:5Qtcl_ux. QlwreAcQmodue Q*{Qxcb_WZQxcb_"Qchro9( kQmoduixdiv P LQttyn AHQpod:$Fx509 Pset_9extu>`.7Qxcb_|%ui_o 9xrmsPMQcpio0posiX Qpem_@ QxvisK S/ Qgetp$xQgetr 4rQmite 8ڠQec_pauQxcb_WQtcl_rfQerro 3Qpthr6 Qpem_&:+Qdb_tr :HQmkfi 5пQuri TύQfrexN ^xcb_@ Qxwcd G#Qdes_AlQmvwi` R4Qxcb_"vQxkbaK!Qxcb_UtQdler'Qxdr_LmqQtcl_eQhtmlpN /Qquot <SQfchmY;Qfocu11LxQlrouh ;oQsete crgQxcb_@bVQxtisRNRpthr5L>!Rtap:LbRssl_ M]z-Rsetj{M ;`RpythM\Rlpas"N8V^Rbn_wbN ?NRtdelNPHRdateN8ORmiteO E#{ Rdf 1oO3bunde \BRxcb_O*_RfccoKRpthr]8|RposixzRdb_dD EҊRgetw ElldioO P{Rdate392Rxcb_0$8Rhisto >xRip-l7b$Rpopd>L%Revp_9AJRcabsjfRhpsa5xcb_0 0nran{ QQX{Rfreeړ >FØRgrub$(findב Kfpat* =iso_s ^systܒ 3+RlastZOzRxcb_Ô-+{Rxutf J->0Rchmoe 2sCRxcb_)%wRkeyc?fRxcb_=@Rxcb_u3izRxcb_ÖGRinsl#HRllri 3Rxcb_X&fmtm 9^Rlldi NSRpass (httpb Bwcpc Wxfs_ 3xcb_K .޺Rbf_e!>5Rec_gn#kfRtcl_DJ@Rtcl_Qm!Rsubwڙ1URtcl_LhRtcl_pS Rtcl_֚]u[RisasFlRgetfdmWRposi ?=ORsend0 A^jRiswcz Acaco sepe Itext QRcoshǜxscrU Psyst Vxcb_ )xcb_` RabrtߜM Rmpro? unic HposiG yirqbߝ fset_P <cRiso_` ^geth Oxcb_ "fclo( flexC >=Rtcl_ɝf Rxcb_B-RpthrLtest L|Rcryp!S5iRxcb_a'B fRfcca =x509 \Rdate87:Rxcb_U1RsetfA_-Rreni ARrRd2i_* GƣRqfcv~FRcaseV8=NRacce' >*Rmanpo >pthr P4.Rxcb_BxRl64a;svct F]Rxcb_'#xcb_A WRatane 1xcb_q item Gxcb_ dirf# ?'Rxcb_ oRshel:Rtcl_?Rpem_k<ZCmRtcl_Qsecu J2RtypeC ;Rip-fHB?/O Up }Scont TKlSbuf_ H0Sxkbggo_Stiff /Sperl/fUSpapeU 7ESsem_ DzBSif_nTSxtofgT WTsSx509fVSpem_DiSec_g:_ Sbn_rTStcl_h(Smime^S#SgeteFSfblo ^Sxcb_JSdate4JSxcb_&BSgit-BNStc-p?"~Sbn_m B~"Sxcb_:hSevp_tE=wtSbio_ @\Sxcb_#=SrdisY:KSxcb_&&9"Sxcb_;Stm_MSlgrob ,oSscri JCSsftp7qSimpo<@.Sfese IGSformX OF(SeucaVStcge&  SeucaG#f*/Sc++f9)&SCPAN0 SSxtch\0K{Sxcb_0#USmunm0 D|Sxcb_T2VtSbott`1 <ssl_yf@2Sismi1GuoSkern2WaSwhith2S~^ZSrand2 =Sputw3AӧSerr_`3 AQShtml3 KtScaco4 9ZSpcreE4>!Sfput4 55mShost4 >Ssyst(5G /Sdate54`Sxtun5<lStcl_6 HwSxcb_p6.kSabrt6"SrVSlrin.7 3eScopyj7 9YSxrot7Tи}Sxcb_8,``Sposic8u>Sxtin8MSeucaY9"bnSevp_9F^(~Ssg_c::Qg*S__fp: )zSxcb_:/ Seuar;HlexgN@$^Scurst;3ssl_\xcb_JoSxcir;J Sfcst <>5Sxcb_Y<%~ӇSmenu< 4G,Sfcnt<5co^Ssg_i=Q"Serr_n=OMSform= 8tSSisun> ]>StcseA> ֖6Spcree> >WSxcb_>*Scima?Sgetp ? ISpcreJ?>&;Sssl_@ r4PSform?BwPSpem_@\NSextu ADmSglib`A4SowneA 9ISfcdiA>j{Si18n9Bb#1SxsetBL]DSxcb_CI33Scoll9C >NSxcb_CB7SstrtC 6lSpthrCFMSsem_LD 3\`Sxcb_DUSgit-DK_&SabrtEbSmbleE ?TFSxkbsEmJSbio_fF 6Sio::F:xS.ldaF#SdateGZhSmenuG / SshowG=Sxcb_H;X_Sceil?m Sdm_dWHu>StiffH_GSdes_NI:%Sxcb_I)zSos-pI LESnext2JaSx509JHp7SautoJ@\Slwp:KK KASxcb_KVSxsetKCcSin_w0L bl?uStcl_LHtSatanLSpthrM[ WSxtinMJƾSlchaMA Sgetp5ND,SxgetN^zSxcb_N6Sxcb_.O-SeuarpOMɣSyum-PPswabD .H^Sevp_cPA2Serr_P MSccosQ45|SasinKQ ;WStcl_Q>vStcl_QoSlocaeR xSisgrR$$Sxloo0S 9nSconnvS <`SdoveSAUVSmvinOЗEScomp&8 StimeB1CPAN 3pm- 3pm 3 1698237384 A - - gz query, download and build perl modules from CPAN sitesxtchecksubclassXtCheckSubclass 3 3 1501646833 B - - gz obtain and verify a widget's classxcb_glx_change_drawable_attributes- 3 3 1540917640 A - - gz munmap 2- 2 2 1402354205 B - - gz map or unmap files or devices into memorytimeout timeout 3x timeout 1bottom_panel- 3x 3 1720626759 B - - gz panel stack extension for cursesismiscfunctionkeyIsMiscFunctionKey 3 3 1710950785 B - - gz keysym classification macroskernel-install- 8 8 1711457788 A - - gz Add and remove kernel and initramfs images to and from /bootwhitepixelofscreenWhitePixelOfScreen 3 3 1710950785 B - - gz screen information functions and macrosrand_cleanupRAND_cleanup 3ssl 3 1699892212 A - - gz erase the PRNG stateputwin- 3x 3 1720626759 B - - gz miscellaneous curses utility routineserr_packERR_PACK 3ssl 3 1721417624 B - - gz load arbitrary error stringshtml::filterHTML::Filter 3pm 3 1402367721 A - - gz Filter HTML text through the parsercacosl 3p- 3p 3p 1402354214 B - - gz complex arc cosine functionspcre_get_stringtable_entries- 3 3 1501643278 A - - gz Perl-compatible regular expressionsfputs 3p- 3p 3p 1402354215 A - - gz put a string on a streamhosts.allow- 5 5 1533764322 B - - gz format of host access control filessystemd-machine-id-setup- 1 1 1711457787 A - - gz Initialize the machine ID in /etc/machine-iddatetime::locale::haw_usDateTime::Locale::haw_US 3pm 3 1402390643 A - - gz xtunmapwidgetXtUnmapWidget 3 3 1501646833 B - - gz map and unmap widgetstcl_getsTcl_Gets 3 3 1448008822 B - - gz buffered I/O facilities using channelsxcb_xfixes_create_region_from_picture_checked- 3 3 1540917640 B - - gz abrt-action-analyze-vulnerability- 1 1 1601569733 A - - gz Provides assessment of potential exploitability of crashlrintl 3- 3 3 1402354210 B - - gz round to nearest integercopysignf 3p- 3p 3p 1402354214 B - - gz number manipulation functionxrotatewindowpropertiesXRotateWindowProperties 3 3 1710950786 B - - gz obtain and change window propertiesxcb_input_list_input_devices_devices_length- 3 3 1540917640 B - - gz posix_spawnattr_getsigmask- 3p 3p 1402354217 A - - gz get and set the spawn-sigmask attribute of a spawn attributes object (ADVANCED REALTIME)xtinstallallacceleratorsXtInstallAllAccelerators 3 3 1501646833 B - - gz managing accelerator tableseuca-enable-vgw-route-propagation- 1 1 1484780705 A - - gz Allow a VPC route table to obtain routes from a virtual private gatewayevp_cipher_ctx_cleanupEVP_CIPHER_CTX_cleanup 3ssl 3 1721417624 B - - gz EVP cipher routinessg_copy_results- 8 8 1585715378 A - - gz send SCSI RECEIVE COPY RESULTS command (XCOPY related)__fpurge- 3 3 1402354207 B - - gz purge a streamxcb_selinux_get_selection_data_context_context- 3 3 1540917640 B - - gz euare-userupdateinfo- 1 1 1484780705 A - - gz [Eucalyptus only] Update a user's informationcurscr- 3x 3 1720626759 B - - gz curses global variablesxcirculatesubwindowsXCirculateSubwindows 3 3 1710950786 B - - gz change window stacking orderfcstrsetequalFcStrSetEqual 3 3 1520307172 A - - gz check sets for equalityxcb_randr_get_provider_info_name_end- 3 3 1540917640 B - - gz menu_cursor- 3x 3 1720626759 A - - gz position a menu's cursorfcntl64- 2 2 1402354204 B - - gz manipulate file descriptorsg_inq- 8 8 1585715378 A - - gz issue SCSI INQUIRY command, output and decode responseerr_remove_thread_stateERR_remove_thread_state 3ssl 3 1699892209 A - - gz free a thread's error queueform_page- 3x 3 1720626759 A - - gz set and get form page numberisunordered isunordered 3 isunordered 3ptcsetattr tcsetattr 3 tcsetattr 3ppcre16_utf16_to_host_byte_order- 3 3 1573510868 B - - gz Perl-compatible regular expressionsxcb_input_device_key_state_notify_event_t- 3 3 1540917640 A - - gz cimag cimag 3 cimag 3pgetprotoent getprotoent 3 getprotoent 3ppcre32_free_study- 3 3 1573510868 B - - gz Perl-compatible regular expressionsform- 3x 3 1715932339 A - t gz curses extension for programming formsceilf ceilf 3 ceilf 3pssl_ctx_set_generate_session_idSSL_CTX_set_generate_session_id 3ssl 3 1721417624 A - - gz manipulate generation of SSL session IDs (server only)pem_write_bio_pkcs7_streamPEM_write_bio_PKCS7_stream 3ssl 3 1699892211 A - - gz output PKCS7 structure in PEM format.extutils::packlistExtUtils::Packlist 3pm 3 1698237386 A - - gz manage .packlist filesglib-compile-schemas- 1 1 1523070240 A - - gz GSettings schema compilerownership- 8 8 1615908358 A - - gz Compaq ownership tag retrieverfcdircacheloadFcDirCacheLoad 3 3 1520307172 A - - gz load a directory cachei18n::collateI18N::Collate 3pm 3 1698237674 A - - gz compare 8-bit scalar data according to the current localexsetafterfunctionXSetAfterFunction 3 3 1710950786 B - - gz enable or disable synchronizationxcb_dri3_fd_from_fence- 3 3 1540917640 A - - gz collectd- 1 1 1671356063 A - - gz System statistics collection daemonxcb_xv_put_still- 3 3 1540917640 A - - gz strtok_r 3- 3 3 1402354212 B - - gz extract tokens from stringspthread_rwlock_tryrdlock- 3p 3p 1402354217 B - - gz lock a read-write lock object for readingsem_unlink 3- 3 3 1402354212 A - - gz remove a named semaphorexcb_list_extensions_unchecked- 3 3 1540917640 B - - gz git-diff-files- 1 1 1722330780 A - - gz Compares files in the working tree and the indexabrt-action-analyze-c- 1 1 1601569733 A - - gz Calculate and save UUID for a problem data directory DIR with coredump.mblen 3p- 3p 3p 1402354216 A - - gz get number of bytes in a characterxkbsaredirectsetvmodsmaskXkbSARedirectSetVModsMask 3 3 1710950785 A - - gz Sets the vmods_mask0 and vmods_mask1 fields of act from vmbio_getsBIO_gets 3ssl 3 1721417624 B - - gz BIO I/O functionsio::ptyIO::Pty 3pm 3 1402369823 A - - gz Pseudo TTY object class.ldaprc- 5 5 1695762319 C ldap.conf - gz datetime::locale::baseDateTime::Locale::Base 3pm 3 1402390634 A - - gz Base class for individual locale objectsmenupopupMenuPopup 3 3 1501646833 B - - gz map a pop-upshowrgb- 1 1 1502476988 A - - gz display an rgb color-name databasexcb_input_get_selected_extension_events_all_classes_length- 3 3 1540917640 B - - gz dm_dso_reg_tool- 8 8 1478390957 A - - gz A utility used to load a DSO into dmeventd and (un)register devices with it for monitoringtifffieldpasscountTIFFFieldPassCount 3tiff 3 1729525165 A - - gz Get whether to pass a count to TIFFGet/SetFielddes_is_weak_keyDES_is_weak_key 3ssl 3 1721417624 B - - gz DES encryptionxcb_randr_list_provider_properties_reply- 3 3 1540917640 B - - gz os-prober- 1 1 1478403002 A - - gz Discover bootable partitions on the local system.nextNEXT 3pm 3 1698237676 A - - gz Provide a pseudo-class NEXT (et al) that allows method redispatchx509_name_printX509_NAME_print 3ssl 3 1721417624 B - - gz X509_NAME printing routines.autodie::exception::system- 3pm 3 1402392173 A - - gz Exceptions from autodying system().lwp::robotuaLWP::RobotUA 3pm 3 1402363153 A - - gz a class for well-behaved Web robotsxcb_xv_query_adaptors_reply- 3 3 1540917640 B - - gz xsetlineattributesXSetLineAttributes 3 3 1710950786 A - - gz GC convenience routinesin_wchnstr- 3x 3 1720626759 B - - gz get an array of complex characters and renditions from a curses windowtcl_dstringsetlengthTcl_DStringSetLength 3 3 1448008821 B - - gz manipulate dynamic stringsatan2f atan2f 3 atan2f 3ppthread_mutex_setprioceiling- 3p 3p 1402354217 B - - gz get and set the priority ceiling of a mutex (REALTIME THREADS)xtinstallacceleratorsXtInstallAccelerators 3 3 1501646833 B - - gz managing accelerator tableslchage- 1 1 1381614967 A - - gz Display or change user password policygetprevcon_raw- 3 3 1585710994 B - - gz get SELinux security context of a processxgetrgbcolormapsXGetRGBColormaps 3 3 1710950785 B - t gz allocate, set, or read a standard colormap structurexcb_glx_get_minmax_data_end- 3 3 1540917640 B - - gz xcb_focus_in_event_t- 3 3 1540917640 A - - gz NOT YET DOCUMENTEDeuare-accountcreate- 1 1 1484780705 A - - gz [Eucalyptus cloud admin only] Create a new accountyum-config-manager- 1 1 1589300861 A - - gz manage yum configuration options and yum repositoriesevp_decryptupdateEVP_DecryptUpdate 3ssl 3 1721417624 B - - gz EVP cipher routineserr_get_libERR_GET_LIB 3ssl 3 1721417624 A - - gz get library, function and reason codeccosh 3- 3 3 1402354207 A - - gz complex hyperbolic cosineasinhf 3- 3 3 1402354207 B - - gz inverse hyperbolic sine functiontcl_exprdoubleTcl_ExprDouble 3 3 1448008821 B - - gz evaluate an expressiontcl_setchannelerrorinterpTcl_SetChannelErrorInterp 3 3 1448008822 B - - gz functions to create/intercept Tcl errors by channel drivers.locale::codes::currency_retiredLocale::Codes::Currency_Retired 3pm 3 1402383324 A - - gz retired currency codes for the Locale::Codes::Currency moduleisgreaterequal isgreaterequal 3 isgreaterequal 3pxlookupcolorXLookupColor 3 3 1710950786 B - t gz obtain color valuesconnect 2- 2 2 1402354204 A - - gz initiate a connection on a socketdoveadm-flags- 1 1 1724195936 A - - gz add, remove or replace messages' flagscontext_type_get- 3 3 1585710994 B - - gz Routines to manipulate SELinux security contextsxtoffsetXtOffset 3 3 1501646833 A - - gz determine the byte offset or number of array elementsxcb_query_pointer_reply- 3 3 1540917640 B - - gz get pointer coordinatesmdc2_initMDC2_Init 3ssl 3 1721417624 B - - gz MDC2 hash functionError 3pm- 3pm 3 1402345188 A - - gz Error/exception handling in an OO-ish wayxcb_xf86dri_destroy_context_checked- 3 3 1540917640 B - - gz pedit- 8 8 1601484048 C tc-pedit - gz rpm- 8 8 1637771608 A - - gz RPM Package Managereuca-import-keypair- 1 1 1484780705 A - - gz Import a public RSA key as a new key pairputpmsg 3p- 3p 3p 1402354217 B - - gz send a message on a STREAM (STREAMS)bstring- 3 3 1402354207 A - - gz byte string operationsfclose 3p- 3p 3p 1402354215 A - - gz close a streamxcb_glx_get_tex_level_parameteriv_data_length- 3 3 1540917640 B - - gz lwres_buffer_forward- 3 3 1725373371 B - - gz lightweight resolver buffer managementtc-fq- 8 8 1601484048 A - - gz Fair Queue traffic policingatof 3- 3 3 1402354207 A - - gz convert a string to a doubleerff 3p- 3p 3p 1402354215 B - - gz error functionstcl_setrecursionlimitTcl_SetRecursionLimit 3 3 1448008822 A - - gz set maximum allowable nesting depth in interpreterxcb_randr_get_crtc_transform_current_params_length- 3 3 1540917640 B - - gz xaureadauthXauReadAuth 3 3 1402361801 B - - gz X authority database routinesdata::optlistData::OptList 3pm 3 1402346431 A - - gz parse and validate simple name/value option pairsterm::uiTerm::UI 3pm 3 1402373836 A - - gz Term::ReadLine UI made easycalloc calloc 3 calloc 3pmvwaddnwstr- 3x 3 1720626759 B - - gz add a string of wide characters to a curses window and advance cursoriso_8859_5- 7 7 1402354220 B - t gz ISO 8859-5 character set encoded in octal, decimal, and hexadecimalec_point_copyEC_POINT_copy 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_POINT objects.xcb_shape_query_version_unchecked- 3 3 1540917640 B - - gz sem_timedwait 3- 3 3 1402354212 B - - gz lock a semaphorexcb_input_open_device_class_info- 3 3 1540917640 B - - gz xcb_glx_get_materialfv_data- 3 3 1540917640 B - - gz nonl- 3x 3 1720626759 B - - gz curses output optionsfccachesubdirFcCacheSubdir 3 3 1520307172 A - - gz Return the i'th subdirectory.posix_trace_eventid_equal- 3p 3p 1402354217 B - - gz manipulate the trace event type identifier (TRACING)cmsg_spaceCMSG_SPACE 3 3 1402354206 B - - gz access ancillary datatimeout 3x- 3x 3 1720626759 B - - gz curses input optionsxcb_dri2_get_param- 3 3 1540917640 A - - gz defaultrootwindowDefaultRootWindow 3 3 1710950785 B - - gz Display macros and functionsvsyslog- 3 3 1402354213 B - - gz send messages to the system loggerxsetomvaluesXSetOMValues 3 3 1710950786 B - - gz open output methodsec_point_bn2pointEC_POINT_bn2point 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_POINT objects.getpeercon_raw- 3 3 1585710994 B - - gz get SELinux security context of a processxcb_glx_get_materialiv_unchecked- 3 3 1540917640 B - - gz endnetent endnetent 3 endnetent 3pxcb_input_xi_query_device_unchecked- 3 3 1540917640 B - - gz xlocaleoffontsetXLocaleOfFontSet 3 3 1710950786 B - - gz obtain fontset informationec_group_set_curve_gf2mEC_GROUP_set_curve_GF2m 3ssl 3 1721417624 B - - gz Functions for creating and destroying EC_GROUP objects.pam_pwquality- 8 8 1357207519 A - - gz PAM module to perform password quality checkingpem_read_pkcs7PEM_read_PKCS7 3ssl 3 1721417624 B - - gz PEM routinesec_key_newEC_KEY_new 3ssl 3 1721417624 A - - gz Functions for creating, destroying and manipulating EC_KEY objects.tap::parser::result::commentTAP::Parser::Result::Comment 3pm 3 1439389327 A - - gz Comment result token.cpupower-info- 1 1 1731045638 A - - gz Shows processor power related kernel or hardware configurationssystem.conf.d- 5 5 1711457788 B - - gz System and session service manager configuration filesendutxent 3p- 3p 3p 1402354214 B - t gz user accounting database functionsxcb_glx_get_string_string_length- 3 3 1540917640 B - - gz curs_delch- 3x 3 1715932336 A - - gz delete character under the cursor in a curses windowfsetpos fsetpos 3 fsetpos 3pcbq 8- 8 8 1601484048 B - - gz Class Based QueueingfcpatterngetcharsetFcPatternGetCharSet 3 3 1520307172 C FcPatternGet-Type - gz perlsymbian- 1 1 1698237668 A - - gz Perl version 5 on Symbian OSfgetc 3p- 3p 3p 1402354215 A - - gz get a byte from a stream y /  ;VpwquPE#VgetpTP7Ȉ/VbellP0ؓVxcb_P"Vxcb_ Q !$Vxcb_GQ#XAVlinkQ :%VcursQ RVxcb_)R*2~VshufnR7?V__meR5VrndcR 2 Vxtcr+SL?]Vdbd:S K}S)VgsspS *:Wxcb_R0WmoduP 8Wpers ;sVobj_T EDGVevp_aT_WcVxcb_T-rhVsecuU!JY٠VudevU4VBC 3UW0VmakeVMASVxcb_vVZVcpanVJiVwrit W ,/Vlwre?W AxMVwinnW S\rViceaW5sOVeulb&X(OyV/etclY',$Vcms_Y Nx%V.netZbnVxcb_&ZVwget\Z [1vVeuarZG"Vsyst[41Vrsa_i[E>TPVdd 1[2jVstrf\-nWzipc 7 :Vaudi4\ HWwcst OI\Vevp_\KʕWpcrew>iVxkbl\?dVxcb_=]xVperlr]7`Vcrea] <Vinsq] CfVeuarI^2FWdes_.HJVxcb_^ Wfiel 0Wnew_C 5/tnVxcb_^LVgslp^BjRVtcl_B_g5Vgit-^Vxcb__$XKnVsemom8gVjourE Vgith ,Vstrp= YVendt .*Wceil[HVd2i_١XVxdrav DvSVlinkŢӒVmvwi SKDWethe AQX_Vxcb_G.xVxunm 3؜VxcomУ Vecb_ .JgVtcl_(^QVtcl_ V2VdsapJ^wVxcb_X.Vpod:!fMVxcb_( p=VcpancYuVcatʦcVechoܦ i:VwcstN /Vuselo.wVuptiE6Vnetw <@KVipse7:^Vphpw;zI_Vsha2 --VdispJfVvfysIn Vxcb_o#w6Vkeyc^VxkbcUbwVxcb_  Vcasi 7JVntoh O{rVdateY3\VfcchK>Vargz ;rValarLFo Vgrub6%Vcatg =ARVxcb_*%tܫVxkbga{QVxcb_oVscr_  ;rVtempfP3VfccoͮA|Vpod:"*{nVdate[3kIYVxfs_9^Vxcb_SVchsh52+Vxcb_l'Vcabs=oVset5WVxkbgeVsecukJrVxcb_1ioVgitn)_VlocaPk̯]Viso_ _UVtimeC :WVmancKVtlsvx 1Vevp_h ;Vsyst*d Vsigh .1VWVfcde*WtVxtsu Ha`BVgetu 3ܢVlwre&NVxcb_!a1XVgit-@-CVctan 6 Vrpc.Y -lWwcst/YekWstrn (n۟Wget_FWpcre>jWec_mr_Whmac >ÕMVisen RYVxcb_+{JWlget2AWssl_LwWxcb_02Wxcb_8"*Wsetro &\NWxcb_"'nVhttp1'zVvlim2+Vxini  3_6Vxcb_I Vxcb_$WWxkbceX04WhypoUVbio_=TWxcb_p2 WsepoR:ːWfileDgit-diff-index- 1 1 1722330782 A - - gz Compares content and mode of blobs between the index and repositorysemop 2- 2 2 1402354205 A - - gz System V semaphore operationsjournal-remote.conf.d- 5 5 1711457788 B - - gz Journal remote service configuration filesgithooks- 5 5 1722330784 A - - gz Hooks used by Gitstrptime 3- 3 3 1402354212 A - - gz convert a string representation of time to a time tm structureendttyent- 3 3 1402354208 B - - gz get ttys file entryd2i_ecpkparameters_biod2i_ECPKParameters_bio 3ssl 3 1721417624 B - - gz Functions for decoding and encoding ASN1 representations of elliptic curve entitiesxdrawpointXDrawPoint 3 3 1710950786 A - - gz draw points and points structurelink link 2 link 1p link 1 link 3pmvwinnwstr- 3x 3 1720626759 B - - gz get a string of wchar_t characters from a curses windowxcb_input_query_device_state_classes_iterator- 3 3 1540917640 B - - gz xunmapwindowXUnmapWindow 3 3 1710950786 A - - gz unmap windowsxcompose XCompose 3 XCompose 5ecb_crypt- 3 3 1402354208 B - - gz fast DES encryptiontcl_deleteclosehandlerTcl_DeleteCloseHandler 3 3 1448008821 B - - gz arrange for callbacks when channels are closedtcl_getintTcl_GetInt 3 3 1448008822 B - - gz convert from string to integer, double, or booleandsaparams_printDSAparams_print 3ssl 3 1721417624 B - - gz print cryptographic parametersxcb_selinux_list_selections_selections_length- 3 3 1540917640 B - - gz pod::simple::pullparsertexttokenPod::Simple::PullParserTextToken 3pm 3 1402365606 A - - gz - text-tokens from Pod::Simple::PullParserxcb_dri2_swap_buffers_unchecked- 3 3 1540917640 B - - gz cpan::mirrorsCPAN::Mirrors 3pm 3 1698237384 A - - gz Get CPAN miror information and select a fast onecat cat 1p cat 1echochar- 3x 3 1720626759 B - - gz add a character (with attributes) to a curses window, then advance the cursorwcstombs wcstombs 3 wcstombs 3puselib- 2 2 1402354206 A - - gz load shared libraryuptime- 1 1 1601486472 A - - gz Tell how long the system has been running.networkctl- 1 1 1711457787 A - - gz Query the status of network linksipset- 8 8 1565308538 A - - gz administration tool for IP setsphp- 1 1 1572624386 A - - gz PHP Command Line Interface 'CLI'sha256 1ssl- 1ssl 1 1721417624 B - - gz message digestsdisplayheightmmDisplayHeightMM 3 3 1710950785 B - - gz image format functions and macrosvfyserv- 1 1 1730826028 A - - gz TBDxcb_xkb_per_client_flags_unchecked- 3 3 1540917640 B - - gz keyctl_unlink- 3 3 1573510998 B - - gz Link a key to a keyring keyctl_unlink - Unlink a key from a keyringxkbcomputesectionboundsXkbComputeSectionBounds 3 3 1710950785 A - - gz Update the bounding box of a sectionxcb_randr_get_panning_unchecked- 3 3 1540917640 B - - gz casin 3p- 3p 3p 1402354214 A - - gz complex arc sine functionsntohs 3p- 3p 3p 1402354216 B - - gz convert values between host and network byte orderdatetime::locale::gv_gbDateTime::Locale::gv_GB 3pm 3 1402390636 A - - gz fccharsetsubtractcountFcCharSetSubtractCount 3 3 1520307172 A - - gz Subtract and count charsetsargz_count- 3 3 1402354207 B - - gz functions to handle an argz listalarm 2- 2 2 1402354204 A - - gz set an alarm clock for delivery of a signalgrub2-render-label- 1 1 1722985065 A - - gz Render an Apple disk label.catgets 3- 3 3 1402354207 A - - gz get message from a message catalogxcb_image_text_16- 3 3 1540917640 A - - gz Draws textxkbgetindicatormapXkbGetIndicatorMap 3 3 1710950785 A - - gz Gets the map for one or more indicators, using a mask to specify the indicatorsxcb_glx_flush_checked- 3 3 1540917640 B - - gz scr_set_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensiontemplate::plugin::wrapTemplate::Plugin::Wrap 3pm 3 1402357151 A - - gz Plugin interface to Text::WrapfcconfiggetfontdirsFcConfigGetFontDirs 3 3 1520307172 A - - gz Get font directoriespod::pom::viewPod::POM::View 3pm 3 1402385888 A - - gz datetime::locale::uz_afDateTime::Locale::uz_AF 3pm 3 1402390633 A - - gz xfs_fsr- 8 8 1601488312 A - - gz filesystem reorganizer for XFSset set n set 1p set 1o o.p Terr_9ͭxTxrmqG[HKTscanHTunpo Kgbn_nl 8xfre >wTssl_wgpro@ :[Tmloc Wsem. 3getf /fputW ;'XTtcl_TtTxcb_N^QTasin >˅!Tgetp 5TlwreNjoin D=Tpem_m:HHTmagiixscrU PTpath4 |TfreeU DdTsigt?fclo( BOTevp_OflexC >ATsplaSTdbm_o /=#Txdr_LCTtc-b 7TxallBdTkeyc kTfget /{Tdeve!C{nTdater3~Txcb_wCTpam_;\O Tis_tA; Tsys/ "Tdiff 4tTcproxtse3! 8lwpt! BTxcb_Tbn_rC ?x?Tchca@tTxcb_4!Tsran"{FTdate@3Tis_w;{gyTtcl_u4Txcb_Y5"Ttcl_J{ dTdate3`Tfcst8R Txcb_ Tip-a 6Txcb_+(LTspliZ?gTperlz 1TsttyB(Tcurs 2,Tgetg; @TxcmsbPcTmque` 6_jTgigaTgets?`=ATgets`0`Txtad` HbGTx509aq>lSTbn_sa ?qTdeskaDTmsgfAb ?asin(  X0TeuarbRevp_K) :Tdcngb CTpam_TunlzcQUTfmaxchTsha3d >yTdateQd JTio::dDVTendwd ;xgra~* 8 \TptarBe [setvU+ 9tcl_+ Giswp+ ;PTip-me 9XTxcb_e-fTasn1,f?5Txcb_yfTselif|0Tssl_JgLTxcb_g /Txcb_g Tttk:h WTperlrh8ΊTtcl_h a Tsysti0}Traw fi0ȕTlseeiCd2i_;. S Tec_pi(2Tgetpj(Trc4j2Tcpanj WTnet:Jk U=Tbn_ck ?ʬTxcb_k&ssl_0 Oatan%1 /rand\1 ;Ri-Ttcfl7lfTxcb_Rl!XTbkgrlRS# Tgitrl BPtTdate6m8Tpam_m InTd2i_m O=Tiswa9n HTprinZnTxcb_o-QTfcca]oWTmdc2` 81rTErroB` FTptsno Txcb_`$~Tpedi`"sbTrpm`.&Teuca+aD Tputpa AoTbstra1=Tfclob + K)Txcb_=b.ZTlwrebATtc-fb6(Tatofc7{$Tyn_ paTerffVc,ITtcl_capam_7 7dTcoreoRTxcb_d3s#TxaurOd Bcapt8 e3OTdatadZTterme ?`TcallMetTmvwahe asha59 - =O HP wpthrF >cUiso_e ^pVUec_p>fotemp NMUxcb_f"jUsem_f+getg =date 9lio_2 9Uxcb_3g!(rUxcb_oggetp -Unonlg1dbi: bbc 1# Dmysqm 6xevi QaIUfccagDmUposi.hQ3?Ucmsgh 9ssh- ]xcb_ eucaE 3extu [zUtimeh 0dateN 0euwa <smar dXUxcb_ittys 3euca 3sysl8 Acwd H_%UdefaFiG*Uvsysi=fcdi >\kUxseti 9geth <closa /getc (4Uec_p*jsurna Tsche <UgetpjD2Uxcb_k!gUendn>k  \Uxcb_bk$xlockDqUec_gkk5:*Upam_ylJ6Upem_l7DUec_km jUUtap:mM1UcpupmZ_Usyst^nQtbUendun ?remq` =yFUxcb_ o!wcsnG iUcursEo Pipta>H ,nl-q{H 6syst` @-s$Ufsetoxcb_%a (9Ufcpap=8׮Ucbq o/s,UperlQp 7pipehb mathb GnUfgetp 5vUtcl_]9Ufreeq 2SUshow9Ursa_VUattel7Uvhan@HUtput<dUblac>SUscheCfUlgam /eUUsyst6 7OuUsinlz(Ustds3וUsem_ ـUfcnaL Uudevl/IUxcb_1Udebu>Ulast5XT2UhttpD`Uy0l> Ui2d_!I7 UUvdod~Xa9Upath?; Utcl_3[GUxcb_")bDUexp2ѶUtoe7Ugcon3<Uprea -GUxcb_"UmvhlP¯UacosKF8Uxcb_cIUpthrYIUconf 72UtempS`CAfinivO Fmsgc u/Uperl7xcb_B 8Uxcb_2isenmC ;xcb_C %Ucurs6 4Ucursv PUxcb_imagE IOUftokxcb_E #pureE ?psfgF [tcl_limitaddhandlerTcl_LimitAddHandler 3 3 1448008822 A - - gz manage and check resource limits on interpretersfreeifaddrs- 3 3 1402354209 B - - gz get interface addressesshow-changed-rco- 1 1 1589300861 A - - gz show changes in an RPM packagersa_padding_add_pkcs1_type_1RSA_padding_add_PKCS1_type_1 3ssl 3 1721417624 A - - gz asymmetric encryption paddingattemptckalloc- 3 3 1448008821 B - - gz allocate or free heap memoryvhangup- 2 2 1402354206 A - - gz virtually hangup the current terminaltput 1p- 1p 1p 1402354204 A - - gz change terminal characteristicsblackpixelofscreenBlackPixelOfScreen 3 3 1710950786 A - - gz screen information functions and macrossched_getscheduler 2- 2 2 1402354205 B - - gz set and get scheduling policy/parameterslgammal 3p- 3p 3p 1402354216 A - - gz log gamma functionsystemd.time- 7 7 1711457788 A - - gz Time and date specificationssinl 3- 3 3 1402354212 B - - gz sine functionstdscr- 3x 3 1720626759 B - - gz curses global variablessem_open sem_open 3 sem_open 3pfcnameunregisterobjecttypesFcNameUnregisterObjectTypes 3 3 1520307172 A - - gz Unregister object typesudevadm- 8 8 1711457788 A - - gz udev management toolxcb_input_get_device_motion_events_events_length- 3 3 1540917640 B - - gz debugfs- 8 8 1711459141 A - - gz ext2/ext3/ext4 file system debuggerlastlog- 8 8 1565319053 A - - gz reports the most recent login of all users or of a given userhttpd- 8 8 1732063506 A - - gz Apache Hypertext Transfer Protocol Servery0l- 3 3 1402354213 B - - gz Bessel functions of the second kindi2d_cms_contentinfoi2d_CMS_ContentInfo 3ssl 3 1699892215 A - - gz CMS ContentInfo functionsvdodumpconfig- 8 8 1601488174 A - - gz dump the configuration of a VDO volume from its backing storepath_resolution- 7 7 1402354220 A - - gz how a pathname is resolved to a filetcl_fsconverttopathtypeTcl_FSConvertToPathType 3 3 1448008822 B - - gz procedures to interact with any filesystemxcb_xfixes_region_extents_checked- 3 3 1540917640 B - - gz exp2 exp2 3 exp2 3ptoe- 1m 1 1715932340 A - - gz table of (terminfo) entriesgconf_event.conf- 5 5 1601569733 B - - gz configuration file for libreport.pread 3p- 3p 3p 1402354217 B - - gz read from a filexcb_randr_set_screen_config_reply- 3 3 1540917640 B - - gz mvhline- 3x 3 1720626759 B - - gz create curses borders, horizontal and vertical linesacosh acosh 3 acosh 3pxcb_glx_render_mode_unchecked- 3 3 1540917640 B - - gz pthread_condattr_getpshared- 3p 3p 1402354217 A - - gz get and set the process-shared condition variable attributesconfstr 3p- 3p 3p 1402354214 A - - gz get configurable variablestemplate::plugin::podTemplate::Plugin::Pod 3pm 3 1402357152 A - - gz Plugin interface to Pod::POM (Pod Object Model)abrt-xorg.conf- 5 5 1601569733 A - - gz Configuration file for abrt-action-analyze-xorgxcb_xkb_set_controls_checked- 3 3 1540917640 B - - gz xtmakeresizerequestXtMakeResizeRequest 3 3 1501646833 B - - gz make geometry manager requestssl_session_get_ex_new_indexSSL_SESSION_get_ex_new_index 3ssl 3 1721417624 A - - gz internal application specific data functionsio::socket::sslIO::Socket::SSL 3pm 3 1523404370 A - - gz - SSL sockets with IO::Socket interfacexcb_glx_get_tex_level_parameterfv_unchecked- 3 3 1540917640 B - - gz datetime::locale::lnDateTime::Locale::ln 3pm 3 1402390639 A - - gz tcl_splitpathTcl_SplitPath 3 3 1448008822 B - - gz manipulate platform-dependent file pathsuniversalUNIVERSAL 3pm 3 1698237678 A - - gz base class for ALL classes (blessed references)pem_read_x509PEM_read_X509 3ssl 3 1721417624 B - - gz PEM routinesxcb_xfixes_set_region_checked- 3 3 1540917640 B - - gz xunloadfontXUnloadFont 3 3 1710950786 B - - gz load or unload fonts and font metric structuresxtsetlanguageprocXtSetLanguageProc 3 3 1501646833 A - - gz set the language procedurefcstrsetaddFcStrSetAdd 3 3 1520307172 A - - gz add to a string setcpanplus::module::fakeCPANPLUS::Module::Fake 3pm 3 1402392266 A - - gz fake module object for internal usexcb_render_tri_strip- 3 3 1540917640 A - - gz perl5004delta- 1 1 1698237661 A - - gz what's new for perl5.004free 3p- 3p 3p 1402354215 A - - gz free allocated memorygpgconf- 1 1 1531487121 A - - gz Modify .gnupg home directoriescopysignf 3- 3 3 1402354208 B - - gz copy sign of a numbercurs_add_wch- 3x 3 1715932335 A - t gz add a complex character and rendition to a curses window, then advance the cursorec_group_method_ofEC_GROUP_method_of 3ssl 3 1721417624 B - - gz Functions for manipulating EC_GROUP objects.cmsg_alignCMSG_ALIGN 3 3 1402354208 A - - gz access ancillary dataxkbkeysymentryXkbKeySymEntry 3 3 1710950785 A - - gz Returns the keysym corresponding to shift level shift and group grp from the two-dimensional array of keysyms for the key corresponding to keycodemodule::build::platform::defaultModule::Build::Platform::Default 3pm 3 1402373050 A - - gz Stub class for unknown platformssystemd-ask-password-console.service- 8 8 1711457788 A - - gz Query the user for system passwords on the console and via wallxcb_glx_destroy_pbuffer- 3 3 1540917640 A - - gz fwprintf fwprintf 3 fwprintf 3pxcb_x_print_print_get_printer_list- 3 3 1540917640 A - - gz xcb_graphics_exposure_event_t- 3 3 1540917640 A - - gz tie::hashTie::Hash 3pm 3 1698237678 A - - gz base class definitions for tied hashesxauXau 3 3 1402361801 A - - gz X authority database routineseuca-modify-instance-attribute- 1 1 1484780705 A - - gz Modify an attribute of an instanceperl589delta- 1 1 1698237663 A - - gz what is new for perl v5.8.9systemd-vconsole-setup- 8 8 1711457788 B - - gz Configure the virtual console at bootsem_trywait 3- 3 3 1402354212 B - - gz lock a semaphoreseteuid 2- 2 2 1402354205 A - - gz set effective user or group IDbn_lshift1BN_lshift1 3ssl 3 1721417624 B - - gz bit operations on BIGNUMsendspent- 3 3 1402354208 B - - gz get shadow password file entryeuare-oidcprovidergetattributes- 1 1 1484780705 A - - gz Describe an OpenID Connect providerperl5140delta- 1 1 1698237662 A - - gz what is new for perl v5.14.0xcb_x_print_print_get_screen_of_context_unchecked- 3 3 1540917640 B - - gz curs_opaque- 3x 3 1715932338 A - - gz curses window propertiescurses::uiCurses::UI 3pm 3 1454728582 A - - gz A curses based OO user interface frameworkxcb_shm_create_segment- 3 3 1540917640 A - - gz ftok ftok 3 ftok 3pxcb_input_xi_allow_events- 3 3 1540917640 A - - gz chsh- 1 1 1612283497 A - - gz change your login shellxcb_input_change_keyboard_device_reply- 3 3 1540917640 B - - gz cabs 3- 3 3 1402354207 A - - gz absolute value of a complex numberxkbgetslowkeysdelayXkbGetSlowKeysDelay 3 3 1710950785 A - t gz Gets the SlowKeys acceptance delay for a keyboard devicesecurity_compute_member- 3 3 1585710994 B - - gz query the SELinux policy database in the kernelxcb_randr_get_crtc_transform_current_filter_name- 3 3 1540917640 B - - gz gitnamespaces- 7 7 1722330784 A - - gz Git namespaceslocale::codes::country_codesLocale::Codes::Country_Codes 3pm 3 1402383323 A - - gz country codes for the Locale::Codes::Country moduleiso_8859-13- 7 7 1402354220 A - t gz ISO 8859-13 character set encoded in octal, decimal, and hexadecimaltimeout 1- 1 1 1605565487 A - - gz run a command with a time limitmanconv- 1 1 1540931193 A - - gz convert manual page from one encoding to anothertlsv1_2_client_methodTLSv1_2_client_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionsevp_md_sizeEVP_MD_size 3ssl 3 1721417624 B - - gz EVP digest routinessystemd-journald.service- 8 8 1711457788 A - - gz Journal servicesighold 3- 3 3 1402354212 B - - gz System V signal APIfcdefaultsubstituteFcDefaultSubstitute 3 3 1520307172 A - - gz Perform default substitutions in a patternxtsuperclassXtSuperclass 3 3 1501646833 B - - gz obtain and verify a widget's classgetutent- 3 3 1402354213 A - - gz access utmp file entrieslwres_gabnresponse_parse- 3 3 1725373371 B - - gz lightweight resolver getaddrbyname message handlingxcb_xvmc_destroy_surface_checked- 3 3 1540917640 B - - gz git-format-patch- 1 1 1722330781 A - - gz Prepare patches for e-mail submissionctanf 3p- 3p 3p 1402354214 B - - gz complex tangent functionsrpc.statd- 8 8 1682710367 B - - gz NSM service daemonisendwin- 3x 3 1720626759 B - - gz curses screen initialization and manipulation routinesxcb_randr_list_output_properties_atoms_end- 3 3 1540917640 B - - gz http::server::simple::cgi::environmentHTTP::Server::Simple::CGI::Environment 3pm 3 1391019031 A - - gz a HTTP::Server::Simple mixin to provide the CGI protocolvlimit- 3 3 1402354213 B - - gz get/set resource limitsxinitimageXInitImage 3 3 1710950786 A - - gz image utilitiesxcb_shape_get_rectangles_reply- 3 3 1540917640 B - - gz xcb_glx_get_color_table_data_length- 3 3 1540917640 B - - gz bio_set_mem_eof_returnBIO_set_mem_eof_return 3ssl 3 1721417624 B - - gz memory BIOxcb_force_screen_saver_checked- 3 3 1540917640 B - - gz modules.dep- 5 5 1585709895 A - - gz Module dependency informationpersonality- 2 2 1402354205 A - - gz set the process execution domainzipcloak- 1 1 1210234726 A - - gz encrypt entries in a zipfilewcstoimax 3p- 3p 3p 1402354219 A - - gz convert a wide-character string to an integer typepcre16_get_substring- 3 3 1573510868 B - - gz Perl-compatible regular expressionsdes_setparity- 3 3 1402354208 B - - gz fast DES encryptionfield_status- 3x 3 1720626759 B - - gz field buffer controlnew_page- 3x 3 1720626759 B - - gz form pagination functionsceil 3- 3 3 1402354207 A - - gz ceiling function: smallest integral value not less than argumentether_aton- 3 3 1402354208 A - - gz Ethernet address manipulation routineswcstod- 3p 3p 1402354219 A - - gz convert a wide-character string to a double-precision numberstrncpy 3- 3 3 1402354212 B - - gz copy a stringget_myaddress- 3 3 1402354209 B - - gz library routines for remote procedure callspcre16_get_stringtable_entries- 3 3 1573510868 B - - gz Perl-compatible regular expressionsec_method_get_field_typeEC_METHOD_get_field_type 3ssl 3 1721417624 B - - gz Functions for obtaining EC_METHOD objects.hmac 3ssl- 3ssl 3 1699892217 A - - gz HMAC message authentication codelgetfilecon_raw- 3 3 1585710994 B - - gz get SELinux security context of a filessl_cipher_descriptionSSL_CIPHER_description 3ssl 3 1721417624 B - - gz get SSL_CIPHER propertiesxcb_xv_query_encodings_reply- 3 3 1540917640 B - - gz xcb_get_atom_name_unchecked- 3 3 1540917640 B - - gz setrlimit setrlimit 3 setrlimit 2 setrlimit 3pxcb_selinux_list_selections_reply- 3 3 1540917640 B - - gz xkbchangetypesofkeyXkbChangeTypesOfKey 3 3 1710950785 A - t gz Change the number of groups and the types bound to a keyhypotf hypotf 3 hypotf 3pxcb_selinux_get_selection_use_context_context_end- 3 3 1540917640 B - - gz sepol_genbools- 3 3 1540935374 A - - gz Rewrite a binary policy with different boolean settingsfile::readbackwards.pmFile::ReadBackwards.pm 3pm 3 1390927073 C File::ReadBackwards - gz bn_recp_ctx_freeBN_RECP_CTX_free 3ssl 3 1699892205 A - - gz modular multiplication using reciprocal" ;VpwquPE#VgetpTP7Ȉ/VbellP0ؓVxcb_P"Vxcb_ Q !$Vxcb_GQ#XAVlinkQ :%VcursQ RVxcb_)R*2~VshufnR7?V__meR5VrndcR 2 Vxtcr+SL?]Vdbd:S K}S)VgsspS *magiS <fcca Mec_k^S jsVobj_T EDGVevp_aT_WcVxcb_T-rhVsecuU!JY٠VudevU4VBC 3UW0VmakeVMASVxcb_vVZVcpanVJiVwrit W ,/Vlwre?W AxMVwinnW S\rViceaW5sOVeulb&X(OyV/etclY',$Vcms_Y Nx%V.netZbnVxcb_&ZVwget\Z [1vVeuarZG"Vsyst[41Vrsa_i[E>TPVdd 1[2jVstrf\-xcb_X  :Vaudi4\ Hxcb_L I\Vevp_\Ksg_weY 7iVxkbl\?dVxcb_=]xVperlr]7`Vcrea] <Vinsq] CfVeuarI^2pod:1[ MHJVxcb_^ lwre[ RhtmlJ\ N/tnVxcb_^LVgslp^BjRVtcl_B_g5Vgit-^Vxcb__$XKnVsemom8gVjourE Vgith ,Vstrp= YVendt .csin_ HVd2i_١XVxdrav DvSVlinkŢӒVmvwi Sgetyv DQX_Vxcb_G.xVxunm 3؜VxcomУ Vecb_ .JgVtcl_(^QVtcl_ V2VdsapJ^wVxcb_X.Vpod:!fMVxcb_( p=VcpancYuVcatʦcVechoܦ i:VwcstN /Vuselo.wVuptiE6Vnetw <@KVipse7:^Vphpw;zI_Vsha2 --VdispJfVvfysIn Vxcb_o#w6Vkeyc^VxkbcUbwVxcb_  Vcasi 7JVntoh O{rVdateY3\VfcchK>Vargz ;rValarLFo Vgrub6%Vcatg =ARVxcb_*%tܫVxkbga{QVxcb_oVscr_  ;rVtempfP3VfccoͮA|Vpod:"*{nVdate[3kIYVxfs_9^Vxcb_SVchsh52+Vxcb_l'Vcabs=oVset5WVxkbgeVsecukJrVxcb_1ioVgitn)_VlocaPk̯]Viso_ _UVtimeC :WVmancKVtlsvx 1Vevp_h ;Vsyst*d Vsigh .1VWVfcde*WtVxtsu Ha`BVgetu 3ܢVlwre&NVxcb_!a1XVgit-@-CVctan 6 Vrpc.Y -wcsnl Utcl_ Tcreaɏ audig gfsck :fact )ÕMVisen RYVxcb_+strt pthr= Fbsd_ 9getp 2ccos @tcseJ A'nVhttp1'zVvlim2+Vxini  3_6Vxcb_I Vxcb_$xcb_ slk_] ;Vbio_=atrm Lkeyc: 'labso CEOQ=O HP ` :Wxcb_R0WmoduP 8blkdh 6Wpers ;nWzipc 7Wwcst OʕWpcrew>FWdes_.Wfiel 0Wnew_C 5*Wceil[KDWethe AlWwcst/YekWstrn (bc 1# Dmysqm 6n۟Wget_FWpcre>jWec_mr_Whmac >{JWlget2AWssl_LwWxcb_02Wxcb_8"*Wsetro &\NWxcb_"WWxkbceX04WhypoUTWxcb_p2 WsepoR:ːWfileD~Wbn_ryT4+W_tra0 5C\WxfonA0BU`[Widle0.` Wxcb_0 W!_Wunic1 cWtty 18Wxcb_1&Wxkbg2wtYWfcpa2=`Wstty25Wsets"3@2Watanp3 >Q(Wfwri3 */&SWstrt3 AWxcb_74FWhttpf4H Wif_f4BcWsyst5Qxcb_ 7XWoveru5 I@Wxcb_5OSWxcb_6)}Wpod2H6tWFD_I6 $ώWxcms7NwL Wis_se7;7eWxkbl7eh9Wxcb_(82Wxcb_T8Wcont8 +WWwget8 ]4Wxcb_)9+Wstato9 51Wfmin9 Z1yWpod2: Dpipehb mathb Gmv 1b .Wbn_p^: :٧eWmbrt: WWfcla;<xcb_$d .ctanmd p 3Wx509P;SdWtemp;t*Wfcma; FWputs.<SpWstriJ<'Wsssd<2Wskbm<#DaWxset< =Wxcb_H=$īWdbm_=BWpam_= DgWssl_*>ZFWssl_>I{QWdate>3Wi2d_D?R/=Wsys/? '֞`Wauto@ =_WcpusI@QWcomp@^WexpfA6WcreaPA 3G. WaugeA J'Wxcb_A55WcrypBCWlseaiB 4tWstriB -VWfileB 8ݩWbzerC2cWtrunXC8WisloC 8WfattC u}Wxcb_[D"WgdbiD5WsuxDJresok Dnew_k <cabsBl <eucal 7WdateE0oOWxstodE Excb_3m %oWxcb_E(*|Wtcl_ER_guWtiffYF25!WseliFa)Wxcb_G#WenduMG 3 WclocGP[-WsubsG@lWxcb_8HȃWxml:jH?ZWgit-H N^^1Wexp2I68Wxcb_UI0dWtiffI7**ޟZxfs_N -D Zxcb_$Zxcb_)KZxtunEXm ZskbeQ$&Zxcms}NhZbn_c߁ >bAQZxcb_)ԚZxcb_ԇpp[kill|(:JP[xcb_(S^OZxfs_OHZdbm_` /sXZxallz(7!Ztanh& 9I̛Zmodph ?^Zgetu 3~[xkbg(n+Ztiffhf-[xtapv) <r[mvws) HZpthrl^0[ssl_*TZttk: D:QZxshm7AQZbio_}@sZcan_ˋ;Zlwp:BZsystk;Ztowu  MLZclocی3mZdpmski8ZdeveW"[xdrax*O{F[date*3+Zdes_@gF[xdis +]z[syst+`腉Zxcb_Z 13Zacos1.Z__fw = Ztiff-7IZmq_ow ;weZpthrO6@Zec 1/ٳZctrlg KZtcl_K2\ZifnaG*QZxcb_i5 Ztcl_M>PZtcl_J3Zfcge5 <5lZssl_~UoZprli AWZtcl_:gZdh_cNpIZgetl+4GZgetdKZxcb_i7Zfpri 3s[log1/ 8x Ztcl_rI[strtY/ 6úZlinkgLx[xkbk0{X[perl/?QZxcb_&Zmbrl(Znear>%Zdoveb7#+!Zscrl2Zfcpa=̣[scal0 =6GZwidt;P9Zwadd Z hZpthr0pZssl_DD{(Zuri: =ٱZcomp /{[date03z[xsha!1K(!Zsg_r[c٨Zdate}c&z[dsa_~1[[key31:PFZtcl_ H{ZdateM3EZtcl_PjZxcb_)uZlwreBAA-Zcima6Zxcb_ 9LZquot<~ZgrubT *Zfcch <hJZxcb_  [Zrmdi!-{ZeucaL! G;[tZtcl_!B- Zclea " @+Zsem_R" M3Zbytes" M Zpass" &sBQZdove"MpyG[tc-r+21"ZgetaW#.6hZi2d_#W Zxres$QLZcleaj$12TZbitm$9LZmemo$Dyu[tcl_c2QSE [cxpm%QR[cms_%_# Zxzeg.%Kpthread_attr_getstack 3- 3 3 1402354211 B - - gz set/get stack attributes in thread attributes objectctrlaltdel- 8 8 1612283497 A - - gz set the function of the Ctrl-Alt-Del combinationtcl_inithashtableTcl_InitHashTable 3 3 1448008822 B - - gz procedures to manage hash tablesifnames- 1 1 1402378884 A - - gz Extract CPP conditionals from a set of filesxcb_poly_point_checked- 3 3 1540917640 B - - gz tcl_readcharsTcl_ReadChars 3 3 1448008822 B - - gz buffered I/O facilities using channelsgetnameinfo 3- 3 3 1402354209 A - - gz address-to-name translation in protocol-independent mannerxtremoveeventtypehandlerXtRemoveEventTypeHandler 3 3 1501646833 B - - gz extension event handlinglroundl 3- 3 3 1402354210 B - - gz round to nearest integer, away from zeroulimit 3- 3 3 1402354213 A - - gz get and set user limitsssl_conf_ctx_freeSSL_CONF_CTX_free 3ssl 3 1699892218 A - - gz SSL configuration allocation functionslibtool- 1 1 1492023431 A - - gz manual page for libtool 2.4.2ssl_ctx_sess_accept_renegotiateSSL_CTX_sess_accept_renegotiate 3ssl 3 1721417624 B - - gz obtain session cache statisticsxcb_shm_attach_fd_checked- 3 3 1540917640 B - - gz bn_recp_ctx_setBN_RECP_CTX_set 3ssl 3 1721417624 B - - gz modular multiplication using reciprocalre_comp- 3 3 1402354211 A - - gz BSD regex functionspkcs12_createPKCS12_create 3ssl 3 1699892211 A - - gz create a PKCS#12 structuresystemd-sysctl.service- 8 8 1711457788 A - - gz Configure kernel parameters at boottcl_gethashvalueTcl_GetHashValue 3 3 1448008822 B - - gz procedures to manage hash tablesfcgetversionFcGetVersion 3 3 1520307172 A - - gz library version numberssl_ctx_sess_set_cache_sizeSSL_CTX_sess_set_cache_size 3ssl 3 1721417624 A - - gz manipulate session cache sizeprlimit 1- 1 1 1612283497 A - - gz get and set a process resource limits.tcl_getmathfuncinfoTcl_GetMathFuncInfo 3 3 1448008821 B - - gz Define, query and enumerate math functions for expressionsdh_compute_keyDH_compute_key 3ssl 3 1699892207 A - - gz perform Diffie-Hellman key exchangegetlogin_r 3p- 3p 3p 1402354215 B - - gz get login namegetdate getdate 3 getdate 3pxcb_glx_get_mapiv_data_length- 3 3 1540917640 B - - gz fprintf 3p- 3p 3p 1402354215 B - - gz print formatted outputtcl_setreturnoptionsTcl_SetReturnOptions 3 3 1448008821 B - - gz retrieve or record information about errors and other return optionslink 1- 1 1 1605565487 A - - gz call the link function to create a link to a filexcb_selinux_get_device_create_context- 3 3 1540917640 A - - gz mbrlen mbrlen 3 mbrlen 3pnearbyintl 3p- 3p 3p 1402354216 B - - gz floating-point rounding functionsdoveadm-mailbox-cryptokey- 1 1 1724195936 A - - gz Mail crypt plugin managementscrl- 3x 3 1720626759 B - - gz scroll a curses windowfcpatternaddintegerFcPatternAddInteger 3 3 1520307172 C FcPatternAdd-Type - gz widthmmofscreenWidthMMOfScreen 3 3 1710950785 B - - gz screen information functions and macroswaddchstr- 3x 3 1720626759 B - - gz add a string of characters (and attributes) to a curses windowpthread_attr_destroy pthread_attr_destroy 3 pthread_attr_destroy 3pssl_clear_optionsSSL_clear_options 3ssl 3 1721417624 B - - gz manipulate SSL optionsuri::urlURI::URL 3pm 3 1402351652 A - - gz Uniform Resource Locatorscompile_et- 1 1 1250127597 A - - gz error table compilersg_read- 8 8 1585715378 A - - gz read multiple blocks of data, optionally with SCSI READ commandsdatetime::timezone::catalogDateTime::TimeZone::Catalog 3pm 3 1565315819 A - - gz Provides a list of all valid time zone namestcl_readTcl_Read 3 3 1448008822 B - - gz buffered I/O facilities using channelsdatetime::locale::ku_irDateTime::Locale::ku_IR 3pm 3 1402390636 A - - gz tcl_appendprintftoobjTcl_AppendPrintfToObj 3 3 1448008822 B - - gz manipulate Tcl objects as stringsxcb_xfixes_change_cursor_by_name_checked- 3 3 1540917640 B - - gz lwres_buffer_init- 3 3 1725373371 B - - gz lightweight resolver buffer managementcimagf cimagf 3 cimagf 3pquotaon- 8 8 1573510996 A - - gz turn filesystem quotas on and offo? oqeuarc (Xmsgr` <-XmounE`Bm;Xgets`5űXio_g` Q4JXcsin1a >^Xlfinya4xdg-X! NXdbi:a kIXcurs@b;Xeuscb)JXbio_b /DXpr298c'tcl_[# Ggetud 4xcb_# n Xtcl_fc <pow1e 2pthrF$ >Xxsetc <4Xgpg-c@xXpthr?db Xxcb_d'0gXfcpa"e;|$Xxcb_oe(Xtc-me 1abs e =eulbf <gXxcb_eEVXkparfC޽_XtimeXf \Xpkcsf M>2XntohgMtrueg 3|u~Xpcrelg>pXlocag =`%VXtcl_na,Xxcms)oO{zXdateo3Xtc-h0!0Xgrub)0@GBXxcb_w0.Xxcb_E8 "Xscan8 SFXupda8DE.Xtcl_(9VK(Xcata9 /գXui_d9C*%Xh2ph$:MXstrcv: (RsXlog1: 7Xcms_:QXclogM;?eXgmti; Omodfkz `Xxcb_;/VXcolo4< R4Xmvwh< P`"gXxkey< BXxcb_8=+Xsecu~=J Xbn_m=C*Xxcb_*>qXextu[>flXerro> :^Xmq_t?NdXtan y?-{Xdate?3~ Xeulb`@b&XmsgcR` ;aADXmodu`WۂXpod: aQl)Xrealra 2ntoh: xcb_R xXdatea5xorgxl 6ȠXpcrea >BXvwprHb Eexecm )asct swpr` 2^Xgetub ?skil` Asele` 5GXfcobb<Xtc-b3cjfXxcb_c __Xwctoc~AkXsys_c 9Π:Xevp_=d?Xdated0 3XdovedRXdhpa8eL{)Xstrie 'rkXpthreOxcb_b /git-c >HXxcb_.f+{Xdateuf3Gq>n\Ysystm ?QYlidbmA(Ycoslm,6Yxcb_m yYffs n/`!YconfLn FuYMD5 n >݄YxtapnJ*YxlocEo Uxsub Gtk_d D*Ydateo8Yxcb_p:Yevp_3p7xcre- @Yfiltrp@zYlimip Gdate{ W)>Yiswsq =cata+ db_sF 9TdYdlop`q JYxtwaq ;tcl_8= Or@YtempZtcl_E Ytcdr ssl_= Clslo= Nk,Yseekn)Yavc_DZYbio_ /fcco} Igetm PsYisc-NVYtcl_zadate 3`|Ysetr IC#YgetmGYxtqubWdate( 8L$YnicedYftw 8"RYname,;j4YxdbevT Yxcb_EYwcst  Cp`Yxtex\ Cxcb_1 -ssl_ 2 u%BYfdim[xcb_ DYxkbs Lfcnaz3 PQxYssl_gaIYconfR]JYxtgeMOYdoup <strxW5 nanfu5 -bn_b5 TܧtYdupw1L,Yccos8YpurePK&Ytime UnYxcb_ 9DYavc_@ Br{Ygit-DYlocafcpan6 ECiYdb_v`  8d*Ydire  8xcb_7 sigl7 mke28 >lwreF8 AYloca; ]6Ypod:  Jfnmaq9 xcb_9 "+.Yzic ,`Ydate4 1slogh: D>X0Ysa1{ `6Yxcb_ lYxcb_ %YfcfrP I.Ytiff `date < 3VYmodu  ^fput< }Ysetp  0Ypem_ "Jyaml< Uxcb_I= )evp_= Ndesk= 7ĝYerbD*{JYdater3:Yxcb_Ydove 9r[Ytoas5 L5·Ysyst -dYYxcb_IYhmac FNYsetsP36 Ycasi BIPYtifffI%YdoveUFnYperl F_Ylocantiff[1 Zbio_1 :syst2 ?datea2 1CYsystfrsa_3 T4Yxget;}`Yrsa_I D}KYtcl_YmYgit- Y\YpackgVk(\Yeulb)S\YcacoI 8*7Yread -taYcata :#ۭYqalt,libt6 dcol|6 ?lwre6 6QYwmem; ;mYxcb_!lldi8 tcl_8 adYtesthsem_8 AyYtcl_;@xcb_<9 !eYssl_cOYxcb_%isdi9 5template::directiveTemplate::Directive 3pm 3 1402357151 A - - gz Perl code generator for template directivesseekdir seekdir 3 seekdir 3pavc_entry_ref_init- 3 3 1585710994 B - - gz obtain and audit SELinux access decisionsbio_new_fpBIO_new_fp 3ssl 3 1721417624 B - - gz FILE bioisc-hmac-fixup- 8 8 1725373374 A - - gz fixes HMAC keys generated by older versions of BINDtcl_channelhandlerprocTcl_ChannelHandlerProc 3 3 1448008821 B - - gz procedures for creating and manipulating channelssetresuid32- 2 2 1402354206 B - - gz set real, effective and saved user or group IDgetmsg getmsg 2 getmsg 3pxtquerygeometryXtQueryGeometry 3 3 1501646833 A - - gz query the preferred geometry of a child widgetnice nice 2 nice 1p nice 1 nice 3pftw 3p- 3p 3p 1402354215 A - - gz traverse (walk) a file treenamespace.conf- 5 5 1585713590 A - - gz the namespace configuration filexdbebeginidiomXdbeBeginIdiom 3 3 1448003986 A - - gz marks the beginning of a DBE idiom sequence.xcb_shape_get_rectangles- 3 3 1540917640 A - - gz wcstoimax 3- 3 3 1402354213 A - - gz convert wide-character string to integerxtextextentsXTextExtents 3 3 1710950786 A - - gz compute or query text extentsfdim 3p- 3p 3p 1402354215 A - - gz compute positive difference between two floating-point numbersxkbsetnamesXkbSetNames 3 3 1710950785 A - t gz Change the symbolic names in the serverssl_ctx_get_verify_callbackSSL_CTX_get_verify_callback 3ssl 3 1721417624 B - - gz get currently set verification parametersconf_modules_load_fileCONF_modules_load_file 3ssl 3 1721417624 A - - gz OpenSSL configuration functionsxtgetselectionvalueincrementalXtGetSelectionValueIncremental 3 3 1501646833 A - - gz obtain selection valuesdoupdate- 3x 3 1720626759 B - - gz refresh curses windows and linesdupwin- 3x 3 1720626759 B - - gz create curses windowsccosh ccosh 3 ccosh 3ppure-statsdecode- 8 8 1730292103 A - - gz Show human-readable dates from a "stats" logfiletime::zoneTime::Zone 3pm 3 1402364546 A - - gz - miscellaneous timezone manipulations routinesxcb_glx_render_mode_data- 3 3 1540917640 B - - gz avc_av_stats- 3 3 1585710994 B - - gz obtain userspace SELinux AVC statisticsgit-web--browse- 1 1 1722330781 A - - gz Git helper script to launch a web browserlocale::codes::langextLocale::Codes::LangExt 3pm 3 1402383324 A - - gz standard codes for language extension identificationdb_verify- 1 1 1481720651 A - - gz Verify the database structurerand_egd_bytesRAND_egd_bytes 3ssl 3 1721417624 B - - gz query entropy gathering daemondirent.h- 0p 0p 1402354203 A - - gz format of directory entrieslocale::codes::languageLocale::Codes::Language 3pm 3 1402383323 A - - gz standard codes for language identificationpod::findPod::Find 3pm 3 1402373048 A - - gz find POD documents in directory treeszic- 8 8 1402354220 A - - gz timezone compilerdatetime::locale::kcgDateTime::Locale::kcg 3pm 3 1402390641 A - - gz sa1- 8 8 1697208922 A - - gz Collect and store binary data in the system activity daily data file.xcb_sync_create_fence- 3 3 1540917640 A - - gz xcb_input_grab_device_button_checked- 3 3 1540917640 B - - gz fcfreetypequeryfaceFcFreeTypeQueryFace 3 3 1520307172 A - - gz compute pattern from FT_FacetiffwritedirectoryTIFFWriteDirectory 3tiff 3 1729525165 A - - gz write the current directory in an open TIFF filemodule::build::platform::darwinModule::Build::Platform::darwin 3pm 3 1402373050 A - - gz Builder class for Mac OS X platformsetpgrp 2- 2 2 1402354206 B - - gz set/get process grouppem_write_bio_pkcs8privatekey_nidPEM_write_bio_PKCS8PrivateKey_nid 3ssl 3 1721417624 B - - gz PEM routineserb- 1 1 1352953364 A - - gz Ruby Templatingdatetime::locale::en_pkDateTime::Locale::en_PK 3pm 3 1402390634 A - - gz xcb_get_atom_name_name- 3 3 1540917640 B - - gz doveadm-save- 1 1 1724195936 A - - gz Save email to a user's mailboxtoascii 3p- 3p 3p 1402354219 A - - gz translate an integer to a 7-bit ASCII charactersystemd.unit- 5 5 1711457788 A - t gz Unit configurationxcb_glx_get_fb_configs- 3 3 1540917640 A - - gz hmac_initHMAC_Init 3ssl 3 1721417624 B - - gz HMAC message authentication codesetsockopt 3p- 3p 3p 1402354218 A - - gz set the socket optionscasinhl 3p- 3p 3p 1402354214 B - - gz complex arc hyperbolic sine functionstiffreadrgbatileTIFFReadRGBATile 3tiff 3 1729525165 A - - gz read and decode an image tile into a fixed-format rasterdoveadm-import- 1 1 1724195936 A - - gz Import messages matching given search queryperlreftut- 1 1 1698237667 A - - gz Mark's very short tutorial about referenceslocale::codes::language_codesLocale::Codes::Language_Codes 3pm 3 1402383323 A - - gz language codes for the Locale::Codes::Language modulesystemd-firstboot- 1 1 1711457787 A - - gz Initialize basic system settings on or before the first boot-up of a systemxgetinputfocusXGetInputFocus 3 3 1710950786 B - - gz control input focusrsa_printRSA_print 3ssl 3 1721417624 A - - gz print cryptographic parameterstcl_getencodingnamesTcl_GetEncodingNames 3 3 1448008821 B - - gz procedures for creating and using encodingsgit-pull- 1 1 1722330783 A - - gz Fetch from and merge with another repository or a local branchpackage-cleanup- 1 1 1589300860 A - - gz clean up locally installed, duplicate, or orphaned packageseulb-create-app-cookie-stickiness-policy- 1 1 1484780705 A - - gz Create a new stickiness policy for a load balancer, whereby the server application generates a cookie and adds it to its responses. The load balancer will then use this cookie to route requests from each user to the same back end instance. This type of policy can only be associated with HTTP or HTTPS listeners,cacosh 3- 3 3 1402354207 A - - gz complex arc hyperbolic cosinereaddir_r 3p- 3p 3p 1402354217 B - - gz read a directorycatanl 3p- 3p 3p 1402354214 B - - gz complex arc tangent functionsqalter- 1p 1p 1402354204 A - - gz alter batch jobwmemcpy 3p- 3p 3p 1402354219 A - - gz copy wide characters in memoryxcb_glx_get_queryiv_arb_data_end- 3 3 1540917640 B - - gz test::builder::testerTest::Builder::Tester 3pm 3 1402359208 A - - gz test testsuites that have been built with Test::Buildertcl_findnamespaceTcl_FindNamespace 3 3 1448008822 B - - gz manipulate namespacesssl_ctx_set_cert_storeSSL_CTX_set_cert_store 3ssl 3 1721417624 A - - gz manipulate X509 certificate verification storagexcb_render_create_solid_fill_checked- 3 3 1540917640 B - - gz xcb_randr_get_provider_info_associated_capability_length- 3 3 1540917640 B - - gz grub-ofpathname- 8 8 1722985065 C grub2-ofpathname - gz fccharsetsubtractFcCharSetSubtract 3 3 1520307172 A - - gz Subtract charsetsxcb_xkb_access_x_notify_event_t- 3 3 1540917640 A - - gz rmdir 2- 2 2 1402354205 A - - gz delete a directoryeuca-describe-customer-gateways- 1 1 1484780705 A - - gz Show information about VPN customer gatewaystcl_getstringresultTcl_GetStringResult 3 3 1448008822 B - - gz manipulate Tcl resultclear 3x- 3x 3 1720626759 B - - gz clear all or part of a curses windowsem_init sem_init 3 sem_init 3pbyteorder- 3 3 1402354207 A - - gz convert values between host and network byte orderpasswd 1ssl- 1ssl 1 1699892200 C sslpasswd - gz doveadm-fetch- 1 1 1724195936 A - - gz Fetch partial/full messages or message informationgetaliasent_r- 3 3 1402354209 B - - gz read an alias entryi2d_pkcs8privatekey_bioi2d_PKCS8PrivateKey_bio 3ssl 3 1721417624 B - - gz PKCS#8 format private key functionsxresourcemanagerstringXResourceManagerString 3 3 1710950786 A - - gz obtain server resource propertiesclearok- 3x 3 1720626759 B - - gz curses output optionsbitmap- n n 1448008911 A - - gz Images that display two colorsmemory- n n 1448008823 A - - gz Control Tcl memory debugging capabilitiesxzegrep- 1 1 1655494379 B - - gz search compressed files for a regular expressioncms_recipientinfo_set0_keyCMS_RecipientInfo_set0_key 3ssl 3 1721417624 B - - gz CMS envelopedData RecipientInfo routinescxpm- 1 1 1674664597 A - - gz Check an XPM (X PixMap) file, versions XPM 1, 2, or 3.dpkg-maintscript-helper- 1 1 1642076111 A - - gz works around known dpkg limitations in maintainer scriptstemplate::manual::configTemplate::Manual::Config 3pm 3 1402357151 A - - gz Configuration optionsctanhl 3- 3 3 1402354208 B - - gz complex hyperbolic tangentgethostname 3p- 3p 3p 1402354215 A - - gz get name of current hostdatetime::locale::myDateTime::Locale::my 3pm 3 1402390643 A - - gz xstorecolorXStoreColor 3 3 1710950786 B - - gz set colorscgi::apacheCGI::Apache 3pm 3 1402342275 A - - gz Backward compatibility module for CGI.pmkill 1p- 1p 1p 1402354204 A - t gz terminate or signal processesxcb_randr_get_screen_info- 3 3 1540917640 A - - gz xkbgetaccessxtimeoutXkbGetAccessXTimeout 3 3 1710950785 A - - gz Queries the current AccessXTimeout options for a keyboard devicextapperrorXtAppError 3 3 1501646833 A - - gz low-level error handlersmvwscanw- 3x 3 1720626759 B - - gz convert formatted input from a curses windowssl_clear_chain_certsSSL_clear_chain_certs 3ssl 3 1721417624 B - - gz extra chain certificate processingxdrawsegmentsXDrawSegments 3 3 1710950785 B - - gz draw lines, polygons, and line structuredatetime::locale::so_etDateTime::Locale::so_ET 3pm 3 1402390634 A - - gz xdisableaccesscontrolXDisableAccessControl 3 3 1710950786 A - - gz control host access and host control structuresystemd-update-utmp- 8 8 1711457788 B - - gz Write audit and utmp updates at bootup, runlevel changes and shutdownxcb_x_print_print_get_one_attributes_value- 3 3 1540917640 B - - gz xclasshintXClassHint 3 3 1710950786 A - - gz allocate class hints structure and set or read a window's WM_CLASS propertyssl_rstate_stringSSL_rstate_string 3ssl 3 1721417624 A - - gz get textual description of state of an SSL object during read operationxcb_glx_get_pixel_mapusv- 3 3 1540917640 A - - gz evp_decodeinitEVP_DecodeInit 3ssl 3 1721417624 B - - gz EVP base 64 encode/decode routinesxcb_glx_get_color_table_parameterfv_data- 3 3 1540917640 B - - gz localedef- 1p 1p 1402354204 A - - gz define locale environmentcxref- 1p 1p 1402354203 A - - gz generate a C-language program cross-reference table (DEVELOPMENT)iswprint 3p- 3p 3p 1402354216 A - - gz test for a printable wide-character codelog1pf 3p- 3p 3p 1402354216 B - - gz compute a natural logarithmstrtok 3- 3 3 1402354212 A - - gz extract tokens from stringsperltoc- 1 1 1698237670 A - - gz perl documentation table of contentsxkbkeycodetokeysymXkbKeycodeToKeysym 3 3 1710950785 A - - gz Finds the keysym bound to a particular key at a specified group and shift levelscalbnl 3p- 3p 3p 1402354218 B - - gz compute exponent using FLT_RADIXdatetime::locale::hu_huDateTime::Locale::hu_HU 3pm 3 1402390634 A - - gz xshapeselectinputXShapeSelectInput 3 3 1448003986 B - - gz X nonrectangular shape functionsdsa_set_ex_dataDSA_set_ex_data 3ssl 3 1699892207 A - - gz add application specific data to DSA structureskey3.db- 5 5 1730826028 A - - gz Legacy NSS certificate databasetc-red- 8 8 1601484048 A - - gz Random Early Detectiontcl_inputbufferedTcl_InputBuffered 3 3 1448008822 B - - gz buffered I/O facilities using channelspam_time- 8 8 1585713592 A - - gz PAM module for time control accesstcl_wintchartoutfTcl_WinTCharToUtf 3 3 1448008821 B - - gz procedures for creating and using encodings  !/ t3~date' 01Zpcre>*ޟZxfs_N -D Zxcb_$Zxcb_)KZxtunEXm ZskbeQ$&Zxcms}NhZbn_c߁ >bAQZxcb_)ԚZxcb_ԇinetJ\ Achec\ DS^OZxfs_OHZdbm_` /sXZxallz(7!Ztanh& 9I̛Zmodph ?^Zgetu 3git-^ K+Ztiffhstrtt_ Jsnmp IZpthrl^tcl_ JZttk: D:QZxshm7AQZbio_}@sZcan_ˋ;Zlwp:BZsystk;Ztowu  MLZclocی3mZdpmski8ZdeveWxext Mextu W+Zdes_@path_ ,canv ?腉Zxcb_Z 13Zacos1.Z__fw = Ztiff-7IZmq_ow ;weZpthrO6@Zec 1/ٳZctrlg KZtcl_K2\ZifnaG*QZxcb_i5 Ztcl_M>PZtcl_J3Zfcge5 <5lZssl_~UoZprli AWZtcl_:gZdh_cNpIZgetl+4GZgetdKZxcb_i7Zfpri 3add_- mx Ztcl_rdate 3úZlinkgLcurs/ xcb_ -QZxcb_&Zmbrl(Znear>%Zdoveb7#+!Zscrl2Zfcpa=secuL 6GZwidt;P9Zwadd Z hZpthr0pZssl_DD{(Zuri: =ٱZcomp /xcb_Q strt =(!Zsg_r[c٨Zdate}cperlA 6bool <PFZtcl_ H{ZdateM3EZtcl_PjZxcb_)uZlwreBAA-Zcima6Zxcb_ 9LZquot<~ZgrubT *Zfcch <hJZxcb_  [Zrmdi!-{ZeucaL! G;[tZtcl_!B- Zclea " @+Zsem_R" M3Zbytes" M Zpass" &sBQZdove"Mec_k~S v"ZgetaW#.6hZi2d_#W Zxres$QLZcleaj$12TZbitm$9LZmemo$Dloca Fva_eY :copy:Z 9# Zxzeg.%K o| DŠ[xcb_{ ev[syst{<rfki Kcont ?tcl_ <b[dpkgQ&T-[temp&IoP[ctan' 5/etc &ulim 'xrec7 :[geth]'5[date'0Ű[xsto' /|;[cgi:!( Opp[kill|(:JP[xcb_(~[xkbg(nf-[xtapv) <r[mvws) H0[ssl_*T"[xdrax*O{F[date*3gF[xdis +]z[syst+`y[xcb_,+:;[xclaM, oJN[ssl_,uB[xcb_N-v_[evp_-Mlt[xcb_-)oca". 6x)[cxreb.^~[iswp. Es[log1/ 8I[strtY/ 6x[xkbk0{X[perl/?̣[scal0 ={[date03z[xsha!1K&z[dsa_~1[[key31:db_sF 9pyG[tc-r+21yu[tcl_c2Q<[pam_2 =[tcl_ 3V[logo`![xcb_`C}[readP` +[ench` )`d[wsta` R[posiathtml SB[ifupa7b[xrmlaR[scroFb2Ksz[xcb_b&date 3brea @git-^ B[pthrbUdate( 8 [xcb_3c$()[spufrc*[[eucac!x%[Enco;d.ڲ[dbi:dOE2[smimdBry[io:: Nfcra> OQ\[catcq randj? $8[xtapq@ģ[euca0r;W[dover >raw 0 1pass1 J8"[xcb_r2wU[fc-cs K࢒[evp_qsL[ssl_sV[view?tAbio_1 :×[optit@datea2 1dh_g2 Brsa_3 T^BX[ssl_tZ[gets;uTp[xcb_u &[dateu8{&,[date/v3<"[getrzv .@[git-v=[tmpnw =V[io::Gwap 8wYl[eranx O[mdocoxLK3[bn_sx?a[systy9t8[iskeby A [xcb_y#ϻ-[xcb_yast$z?sem_8 AO[abrtizxkZ[git-z FSE [cxpm%QR[cms_%_Q[prtsM{8logout logout 3 logout 1xcb_input_property_event_t- 3 3 1540917640 A - - gz readdir_r 3- 3 3 1402354211 B - - gz read a directoryenchant 1- 1 1 1402339606 A - - gz a spellcheckerwstandout- 3x 3 1720626759 B - - gz curses character and window attribute control routinesposix_spawnattr_setpgroup- 3p 3p 1402354216 A - - gz get and set the spawn-pgroup attribute of a spawn attributes object (ADVANCED REALTIME)ifup- 8 8 1605900785 A - - gz bring a network interface upxrmlocaleofdatabaseXrmLocaleOfDatabase 3 3 1710950786 B - - gz retrieve and store resource databasesscroll- 3x 3 1720626759 B - - gz scroll a curses windowxcb_randr_set_screen_config_unchecked- 3 3 1540917640 B - - gz pthread_attr_getdetachstate 3- 3 3 1402354211 B - - gz set/get detach state attribute in thread attributes objectxcb_get_motion_events_events_length- 3 3 1540917640 B - - gz spufs- 7 7 1402354220 A - - gz SPU file systemeuca-create-vpn-connection-route- 1 1 1484780705 A - - gz Create a static route that sends traffic from a virtual private gateway to a customer gatewayEncode::MIME::NAME 3pm- 3pm 3 1402368577 C Encode::MIME::Name - gz dbi::const::getinfo::odbcDBI::Const::GetInfo::ODBC 3pm 3 1402362411 A - - gz ODBC Constants for GetInfosmime_read_pkcs7SMIME_read_PKCS7 3ssl 3 1699892213 A - - gz parse S/MIME message.io::tty::constantIO::Tty::Constant 3pm 3 1402369823 A - - gz Terminal Constants (autogenerated)xcb_alloc_color_cells_masks_length- 3 3 1540917640 B - - gz xcb_present_configure_notify_event_t- 3 3 1540917640 A - - gz pm-action- 8 8 1533764400 A - - gz Suspend or Hibernate your computernextrequestNextRequest 3 3 1710950785 B - - gz Display macros and functionsFD_SET 2- 2 2 1402354205 C select_tut - gz interp- n n 1448008823 A - - gz Create and manipulate Tcl interpretersxwarppointerXWarpPointer 3 3 1710950786 A - - gz move pointerxcb_input_get_device_key_mapping_keysyms_end- 3 3 1540917640 B - - gz dbd::goferDBD::Gofer 3pm 3 1402362412 A - - gz A stateless-proxy driver for communicating with a remote DBItld_check_lz- 3 3 1448125246 A - - gz API functionregerror regerror 3 regerror 3pgetfilecon- 3 3 1585710994 A - - gz get SELinux security context of a filert_tgsigqueueinfo- 2 2 1402354205 B - - gz queue a signal and datareboot 2- 2 2 1402354205 A - - gz reboot or enable/disable Ctrl-Alt-Delsethostid sethostid 3 sethostid 2fold fold 1p fold 1getwd 2- 2 2 1402354204 C getcwd - gz posix_trace_attr_getcreatetime- 3p 3p 1402354217 B - - gz retrieve and set information about a trace stream (TRACING)xcb_randr_get_provider_property_data- 3 3 1540917640 B - - gz xcb_glx_get_histogram- 3 3 1540917640 A - - gz tiffopenTIFFOpen 3tiff 3 1729525165 A - - gz open a TIFF file for reading or writingfscanf 3p- 3p 3p 1402354215 B - - gz convert formatted inputnanf 3- 3 3 1402354211 B - - gz return 'Not a Number'rintl 3p- 3p 3p 1402354218 B - - gz round-to-nearest integral valuexcb_glx_get_mapdv_data- 3 3 1540917640 B - - gz tclxTclX n n 1101160700 A - - gz Extended Tcl: Extended command set for Tclpthread_setschedparam 3- 3 3 1402354211 A - - gz set/get scheduling policy and parameters of a threadhttp::server::simpleHTTP::Server::Simple 3pm 3 1391019031 A - - gz Lightweight HTTP servertap::objectTAP::Object 3pm 3 1439389327 A - - gz Base class that provides common functionality to all "TAP::*" modulesreadlink 2- 2 2 1402354205 A - - gz read value of a symbolic linkether_aton_r- 3 3 1402354208 B - - gz Ethernet address manipulation routinesopen_memstream- 3 3 1402354211 B - - gz open memory as streamxfreeXFree 3 3 1710950786 A - - gz free client datapstruct- 1 1 1698237679 B - - gz Dump C structures as generated from "cc - g - S" stabssigngam 3p- 3p 3p 1402354218 B - - gz log gamma functionevp_pkey_ctx_set_rsa_keygen_pubexpEVP_PKEY_CTX_set_rsa_keygen_pubexp 3ssl 3 1721417624 B - - gz algorithm specific control operationspututxline pututxline 3 pututxline 3ptcl_dstringappendTcl_DStringAppend 3 3 1448008821 A - - gz manipulate dynamic strings"socket""Socket" 3pm 3 1585713785 C Socket - gz setpwent setpwent 3 setpwent 3ppselect 2- 2 2 1402354205 B - - gz synchronous I/O multiplexingpacket- 7 7 1402354220 A - - gz packet interface on device level.xfindcontextXFindContext 3 3 1710950786 B - - gz associative look-up routinesexeclp execlp 3 execlp 3pdatetime::locale::ee_tgDateTime::Locale::ee_TG 3pm 3 1402390642 A - - gz xcb_xv_get_port_attribute- 3 3 1540917640 A - - gz catclose catclose 3 catclose 3pxtapperrormsgXtAppErrorMsg 3 3 1501646833 A - - gz high-level error handlerseuca-delete-vpn-gateway- 1 1 1484780705 A - - gz Delete a virtual private gatewaydovecot-lda- 1 1 1724195936 A - - gz Dovecot's local mail delivery agentxcb_randr_get_provider_info_associated_capability- 3 3 1540917640 B - - gz fc-conflist- 1 1 1519011780 A - - gz Show the ruleset files information on the systemevp_pkey_set1_rsaEVP_PKEY_set1_RSA 3ssl 3 1721417624 A - - gz EVP_PKEY assignment functions.ssl_get_psk_identity_hintSSL_get_psk_identity_hint 3ssl 3 1699892223 A - - gz get PSK client identity and hintview- 1 1 1722022359 B - - gz Vi IMproved, a programmers text editoroptions- n n 1448008912 A - - gz Standard options supported by widgetsssl_ctx_set_tmp_rsaSSL_CTX_set_tmp_rsa 3ssl 3 1721417624 B - - gz handle RSA keys for ephemeral key exchangegetseuserbyname- 3 3 1585710994 A - - gz get SELinux username and level for a given Linux usernamexcb_glx_get_tex_envfv_unchecked- 3 3 1540917640 B - - gz datetime::locale::pa_arab_pkDateTime::Locale::pa_Arab_PK 3pm 3 1402390640 A - - gz datetime::locale::uz_uzDateTime::Locale::uz_UZ 3pm 3 1402390636 A - - gz getrpcport- 3 3 1402354209 A - - gz get RPC port numbergit-pack-objects- 1 1 1722330784 A - - gz Create a packed archive of objectstmpnam 3- 3 3 1402354213 A - - gz create a name for a temporary fileio::scalararrayIO::ScalarArray 3pm 3 1402371105 A - - gz IO:: interface for reading/writing an array of scalarsip 8- 8 8 1601484048 A - - gz show / manipulate routing, devices, policy routing and tunnelserand48 3- 3 3 1402354208 B - - gz generate uniformly distributed pseudo-random numbersmdoc- 7 7 1402354220 A - - gz quick reference guide for the -mdoc macro packagebn_sqr_recursive- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionssystemd.resource-control- 5 5 1711457787 A - - gz Resource control unit settingsiskeypadkeyIsKeypadKey 3 3 1710950786 A - - gz keysym classification macrosxcb_glx_make_context_current_reply- 3 3 1540917640 B - - gz xcb_xf86dri_get_device_info- 3 3 1540917640 A - - gz lastb- 1 1 1402355803 B - - gz show listing of last logged in usersabrt-action-analyze-oops- 1 1 1601569733 A - - gz Calculate and save UUID and duplicate hash for a problem data directory DIR with kernel oops.git-annotate- 1 1 1722330781 A - - gz Annotate file lines with commit informationprtstat- 1 1 1601486412 A - - gz print statistics of a processxcb_glx_destroy_pbuffer_checked- 3 3 1540917640 B - - gz systemd-activate- 8 8 1711457788 A - - gz Test socket activation of daemonsenv 1p- 1p 1p 1402354203 A - - gz set the environment for command invocationcpow 3p- 3p 3p 1402354214 A - - gz complex power functionsvimdiff- 1 1 1720542354 A - - gz edit two, three or four versions of a file with Vim and show differencestzset 3- 3 3 1402354213 A - - gz initialize time conversion informationfcconfigfileinfoiternextFcConfigFileInfoIterNext 3 3 1520307172 A - - gz Set the iterator to point to the next listpod::pom::constantsPod::POM::Constants 3pm 3 1402385888 A - - gz powf 3- 3 3 1402354211 B - - gz power functionspkcs7_decryptPKCS7_decrypt 3ssl 3 1699892211 A - - gz decrypt content from a PKCS#7 envelopedData structuretcl_tracevar2Tcl_TraceVar2 3 3 1448008822 B - - gz monitor accesses to a variablexcb_dri2_get_buffers_with_format_reply- 3 3 1540917640 B - - gz error::dwarf- 7stap 7 1602605484 A - - gz dwarf debuginfo quality problemscracklib-unpacker- 8 8 1402378932 B - - gz cracklib dictionary utilitiesgetutmp- 3 3 1402354210 A - - gz copy utmp structure to utmpx, and vice versaarpaname- 1 1 1725373373 A - - gz translate IP addresses to the corresponding ARPA namesxtresolvepathnameXtResolvePathname 3 3 1501646833 A - - gz search for a file using standard substitutionssl_set1_chainSSL_set1_chain 3ssl 3 1721417624 B - - gz extra chain certificate processinggetch- 3x 3 1720626759 B - - gz get (or push back) characters from curses terminal keyboardxcb_glx_render- 3 3 1540917640 A - - gz xcb_glx_set_client_info_2arb_checked- 3 3 1540917640 B - - gz xcb_input_xi_get_property- 3 3 1540917640 A - - gz mkdir 1p- 1p 1p 1402354204 A - - gz make directoriesmvin_wchstr- 3x 3 1720626759 B - - gz get an array of complex characters and renditions from a curses windowpthread_cond_destroy- 3p 3p 1402354217 B - - gz destroy and initialize condition variablesx509_name_onelineX509_NAME_oneline 3ssl 3 1721417624 B - - gz X509_NAME printing routines.trunc trunc 3 trunc 3pbf_optionsBF_options 3ssl 3 1721417624 B - - gz Blowfish encryptionassert assert 3 assert 3pevp_pkey_ctx_set_cbEVP_PKEY_CTX_set_cb 3ssl 3 1721417624 B - - gz key and parameter generation functions/etc/anacrontab- 5 5 1684247301 C anacrontab - gz xcmstekhvcXcmsTekHVC 3 3 1710950786 B - - gz Xcms color structureperlce- 1 1 1698237664 A - - gz Perl for WinCExcreatesimplewindowXCreateSimpleWindow 3 3 1710950786 A - - gz create windows and window attributes structuregit-fetch- 1 1 1722330782 A - - gz Download objects and refs from another repositorydes_key_schedDES_key_sched 3ssl 3 1721417624 B - - gz DES encryptionxcb_free_colors_checked- 3 3 1540917640 B - - gz mech-dump- 1 1 1391076350 A - - gz Dumps information about a web pagenss-myhostname- 8 8 1711457788 A - - gz Provide hostname resolution for the locally configured system hostname.e2undo- 8 8 1711459141 A - - gz Replay an undo log for an ext2/ext3/ext4 filesystemxcb_sync_await_checked- 3 3 1540917640 B - - gz tcl_createtraceTcl_CreateTrace 3 3 1448008821 B - - gz arrange for command execution to be tracedxcb_render_change_picture- 3 3 1540917640 A - - gz bio_set_bind_modeBIO_set_bind_mode 3ssl 3 1721417624 B - - gz accept BIOxrmqgetresourceXrmQGetResource 3 3 1710950786 B - - gz retrieve database resources and search listswaitpid waitpid 2 waitpid 3pxdr_pmap- 3 3 1402354213 B - - gz library routines for remote procedure callsconjure- 1 1 1731392888 A - - gz interprets and executes scripts written in the Magick Scripting Language (MSL).assert_perror- 3 3 1402354207 A - - gz test errnum and aborteuare-accountlistpolicies- 1 1 1484780705 A - - gz [Eucalyptus only] List one or all policies policies attached to an accounteuscale-put-scheduled-update-group-action- 1 1 1484780705 A - - gz Schedule a scaling action for an auto-scaling groupdevlink-monitor- 8 8 1601484048 A - - gz state monitoringasn1parse- 1ssl 1 1699892199 A - - gz ASN.1 parsing tooldatetime::locale::hi_inDateTime::Locale::hi_IN 3pm 3 1402390632 A - - gz xrefresh- 1 1 1502476988 A - - gz refresh all or part of an X screenlgammal 3- 3 3 1402354210 B - - gz log gamma functionrecvfrom 2- 2 2 1402354205 B - - gz receive a message from a socketsin 3p- 3p 3p 1402354218 A - - gz sine functionmktime 3p- 3p 3p 1402354216 A - - gz convert broken-down time into time since the Epochos-release- 5 5 1711457787 A - - gz Operating system identificationccos 3p- 3p 3p 1402354214 A - - gz complex cosine functionsuuencode 5- 5 5 1357249711 A - - gz format of an encoded uuencode filegetc_unlocked 3- 3 3 1402354209 B - - gz nonlocking stdio functionsxcb_dri2_query_version_unchecked- 3 3 1540917640 B - - gz xml::namespacesupportXML::NamespaceSupport 3pm 3 1402342844 A - - gz a simple generic namespace support class   ">{^bg_ u)J^list ]^getpv:^xcb_@6}^wgetRd^xcb_[(;^sg_d[-^clog @_tcl_w N| ^ddp:B ^aryb5{^modf >h_xcb_# _xcb_!ܩ^overL3ԣ^fclaXSXP^cmp 9'@^getg "^strt =9pO^floccǎ^tiffz8w=^tcl_ŔS̸^ssl_6N^date5^tree7p^dup ->0_remqJD^xkbkrzL`^xcb_/%^dbm_F /r_feraeI^semaK%^dateޗ0B^has_# ;fT^xcb_h'^lsor6JNH^sys/ !-}^sys_2q^lzcmQB^md5 v -x0_pcre>t^tld_'_vgcf  ?_tempVE{_db_d Cd_bio_8!>_xgcoQh#x^mathV`_xcb_.^xerrJ <n^tiff c]ha^xcb_&̛^unic3nAI^d2i_^dateZ0aM^pthr@^xcb_ ~^pem_7C)^posi!au^abrt#O\V^slab ;^xtap͞ Fʲ^rese ;_stat 8$^confc G-_tcl_Ui/t_tcl_H_defa' Bbd^arp 3v^getp<4^sha2J? C^bn_c B^idna'^_Exi"8^getpb <E>~^xcb_.N^text=_ssl_v[^aio_5 X_bio_7p^ssl__Bk%m_epol* 8Z^sg_eb3-^xcb_#%IL_Ed 1oVM^mathc Q^tcl_ <ޠ^elfe >F^tcl_PG^xcb_m^pcap /^erfc:o^fgetS Dj_fcco H^date0b^pom2I`G^link45ʶ_strsW_next ={W_dateJ32^xtunp68^bn_mEn;_tcl_ LcK^sinf Qhd^tiff! A)N_turb I浓^encolTg_tcl_A? ;^xxor 5*yZ^xint A^ssl_^mT^dsynLe^xkbn5o)p^encoIu#^inet Y}^/etcw"_dh_s:w_item9@-_j1 3 =6_xcb_b*^parr=i/_tcl_ TN]^slk_ 6X4_xconh X䁥^cloc+ A0^tcl_va^tempQ^xcb_TsD^curs SS^sinh 6R^blkt* Nd^xtseMϠ^binaH)^evp_/WO^xtre E!^timeP};^cpu_N CE^fork1aa_base DM_sela  { _ec_kY!pώ^xcmsN]^wcstbY5^xml:E_^xcb_t^sslr!p^outbP#x*^xzgrzK*0^app: S ^coll? :ܾ_use_!Ag^pthr:K@^xkbaKGa^aclo< 96_tcl_#"XV_wchg"R$^genr AV ^pcre>^xcb_ ){^date3H^ecdsd QHq"^xcb_-&^optenS^tap:#H.e^date8#h^pods Zgetpeername 2- 2 2 1402354205 A - - gz get name of connected peer socketsha224_updateSHA224_Update 3ssl 3 1721417624 B - - gz Secure Hash Algorithmbn_clear_bitBN_clear_bit 3ssl 3 1721417624 B - - gz bit operations on BIGNUMsidna_to_unicode_8z4z- 3 3 1448125246 A - - gz API function_Exit 2- 2 2 1402354204 B - - gz terminate the calling processgetpwnam 3p- 3p 3p 1402354215 A - - gz search user database for a namexcb_input_get_selected_extension_events_reply- 3 3 1540917640 B - - gz text- n n 1448008912 A - - gz Create and manipulate text widgetsaio_suspend aio_suspend 3 aio_suspend 3pssl_get_optionsSSL_get_options 3ssl 3 1721417624 B - - gz manipulate SSL optionssg_emc_trespass- 8 8 1585715378 A - - gz change ownership of SCSI LUN from another Service-Processor to this onexcb_dri3_pixmap_from_buffers_checked- 3 3 1540917640 B - - gz math::bigintMath::BigInt 3pm 3 1698237675 A - - gz Arbitrary size integer/float math packagetcl_issharedTcl_IsShared 3 3 1448008822 B - - gz manipulate Tcl objectselfedit- 1 1 1696859909 A - - gz Update the ELF header of ELF files.tcl_setcommandinfoTcl_SetCommandInfo 3 3 1448008821 B - - gz implement new commands in Cxcb_glx_new_list- 3 3 1540917640 A - - gz pcap-filter- 7 7 1649175930 A - - gz packet filter syntaxerfc 3p- 3p 3p 1402354215 A - - gz complementary error functionsfgetwc 3p- 3p 3p 1402354215 A - - gz get a wide-character code from a streamdatetime::locale::siDateTime::Locale::si 3pm 3 1402390641 A - - gz pom2- 1 1 1402385888 A - - gz convert POD to Text, HTML, etc., with Pod::POMlink 2- 2 2 1402354205 A - - gz make a new name for a filextungrabkeyboardXtUngrabKeyboard 3 3 1501646833 B - - gz manage grabsbn_mont_ctx_newBN_MONT_CTX_new 3ssl 3 1721417624 B - - gz Montgomery multiplicationsinf sinf 3 sinf 3ptiffcolorTIFFcolor 3tiff 3 1729525165 A - - gz color conversion routines.encode::jp::h2zEncode::JP::H2Z 3pm 3 1402368577 A - - gz - internally used by Encode::JP::2022_JP*xxorregionXXorRegion 3 3 1710950786 B - - gz region arithmeticxinternatomsXInternAtoms 3 3 1710950786 B - - gz create or return atom namesssl_session_get_timeoutSSL_SESSION_get_timeout 3ssl 3 1721417624 B - - gz retrieve and manipulate session time and timeout settingsdsync- 1 1 1694697466 B - - gz Dovecot's two-way mailbox synchronization utilityxkbnotedevicechangesXkbNoteDeviceChanges 3 3 1710950785 A - - gz Note device changes reported in an XkbExtensionDeviceNotify eventencode::cn::hzEncode::CN::HZ 3pm 3 1402368577 A - - gz - internally used by Encode::CNinet_ntop 3p- 3p 3p 1402354216 A - - gz convert IPv4 and IPv6 addresses between binary and text form/etc/odbc.ini- 5 5 1565320310 C odbc.ini - gz parray- n n 1448008823 B - - gz standard library of Tcl proceduresslk_label- 3x 3 1720626759 B - - gz curses soft label routinesclockdiff- 8 8 1501833662 A - - gz measure clock difference between hoststcl_unicharisalnumTcl_UniCharIsAlnum 3 3 1448008823 A - - gz routines for classification of Tcl_UniChar characterstemplate::plugin::filterTemplate::Plugin::Filter 3pm 3 1402357151 A - - gz Base class for plugin filtersxcb_dpms_force_level_checked- 3 3 1540917640 B - - gz curs_inwstr- 3x 3 1715932338 A - - gz get a string of wchar_t characters from a curses windowsinhf 3p- 3p 3p 1402354218 B - - gz hyperbolic sine functionsblktrace- 8 8 1565305324 A - - gz generate traces of the i/o traffic on block devicesxtsessiongettokenXtSessionGetToken 3 3 1501646833 A - - gz token management for checkpointingbinary- n n 1448008823 A - - gz Insert and extract fields from binary stringsevp_digestverifyupdateEVP_DigestVerifyUpdate 3ssl 3 1721417624 B - - gz EVP signature verification functionsxtreleasegcXtReleaseGC 3 3 1501646833 B - - gz obtain and destroy a sharable GCtimer_settime 2- 2 2 1402354206 A - - gz arm/disarm and fetch state of POSIX per-process timercpu_countCPU_COUNT 3 3 1402354206 B - - gz macros for manipulating CPU setsfork 3p- 3p 3p 1402354215 A - - gz create a new processsslrand sslrand 3ssl sslrand 1ssl @ z R\swap  ,n\tcl_EjD\xcb_ 7>\xcb_'\curs,! A£\erro) ?\evp_!D㉑\seek@"I\__fp" =u{\argz" ;\xcb_#*Im\pkeyc#: \expm# :P8\uli#)I\xutf$Uextu WF{\tc-n$FextuO Vsyst time Wxunl ?ssl_N ~ e\dpms$t9\bzerS%tk_t H{\datek%3.\xkbg%yxcb_ -C\xcb_@&\mq_tz& /hSn\mvvl& b6\irus$' N\xcb_{']\tcl_'G\xcb_(\date.(8\pthr(:&\sg_m( Hos\sepo()\c=\iso-) ^u\CBQ * ud\pam_'*T{Z\date*3s\lex *N\cfse-+_\posi+fdbi:3 eyY\imag,Gtc-p3 R3J\xml2k, ]rintn4 3vw_p4 Dxrec4 JseliV5 J<\lwre,FA;E\tcl_3-TN\exp2-Y\xcb_-*h\i2d_-T\xcb_X.#^=w\kbdi.K®\pthr.C\semaH/F'\x509SJ\towc/ ;2A\ftelj :\fccoOf\xsetuo\msgg/SB\icon Kr\tcl_Ireal`; /YC\xcb_B'ͤ\xcb_xcb_'< "g:\xcb_&i\tcl2tty_= @䨵\time4 -Y>\xsetjGp\xcb_ģ(S\infoT\Daemb ?6\endh 1xcb_? &sign]? $s\afteǤ?Y\ec_p %moduk@ Cnolo@ 2grub@ HmachUA >\xcb_21\stapDǪ\mq_s&?\fcfrDC<\xeve:\ilogڦ 8S\xkbuP\ssl_Ux509DC aniceC Haio_D Ixcb_eD *xcb_D #Wa\xkey% vy\pcre>ec_psE xlocaE l\xcb_!/\xcb_=fcdiZG =towlG  \bio_n@֙[\xcb_*p\xcb_+ssl_H ^z\ip6tG U-`\zdum*\xcb_֪ bio_I =Ǟ\bn_mCuri:J EP3\wbor[ bZ\rtacɫ4sF\tune@\bn_dJ ?net:K Dxcb_/L %BhH"\magia\xtis Gv\tcl_X >\tcl_ Nb0\unicCxcb_N date6N 3fu\tcl_MR|\fege Kc/\ssl_҄M'\sys_ 7c;\setsF f\errom:鹾\xtrehX\euca8 R+\acosS\env Gd\cpowN4M\cracu8T\vimdc}\getc.WK\xcb_ ld\getuGcY\tzseA'\uuenʯ #t\fcco>\+\pod:/\arpa QfM\xcb_C\x509w!TN\powf*q\pkcs'_ ` Ν]xcb_%Y0]xcb_ "h]xtad@ Kgetud 4Q]mvin` b]pthrΆGxcb_! 3xdg-X! Ndbus! @:]x509*Jsystk" 8perl" 6euca" FS ]trun]bf_o :]assexcms# OdateTe 3O<]evp_V8]/etch$nw]xcms 8xcb_G% !Z8]perl߈)-I$]xcre[(]git-~ Ly=]des_ԉ8b?]xcb_r ]mechM = C]nss-b]e2unNf]xcb_Z!F]tcl_S4fg]xcb_J]bio_$8^]xrmqnUD)]waitӌ ]xdr_ Fn]conj@j:+]asse0`]euare5]eusco*N$]devl+[]asn1" 0{U]date\3UC]xref =]lgam -]recv7 :M&]sin |*-]mkti O]D]os-r :W]ccosK5a]uuen =packh+ Fssl_+ c(9]getcБ5ec_pg t]xcb_!]xml:QYd]putc( ѽ]xcb_98#]sock 01]cms_HYq]fgre9[o]geta].]xcb_+k]tap:QO]eulbPP]exec +N]avc_F]FD_IK 9.G]tsea 8e]xcb_0[]xtad L7h]idmaw3xcb_/ &clos1j 2xsetp ? ^]refr<wordp 1repokj Pintrp QM]xcb_r8]pthr  Vsys-k Pxcb_q !]xcb_,xkbnq Ycpu_.r Bmkti/ ]csqr]xdra9xv]iso_B _#]xpol8]euca5^]fileE J%]mogrS]setn{ 7']xtge?vfyst !"]secu3]ec_ptCj]bn_sW ?C]buf_ E{6]date3O]xcb_=)1+]date1fW]xcb_{\]lfin6 h]wins Fp]pem_b<ɢ]]xdesJ]niceJ7#]dbipaC]gets,lW]evp__6]getld i]date0Wg]conf!9]x509Ve]eusc*T]next =o]sigq ?`!]bn_i+QN]fpcl ?]pem_D#]past7  MfK]loca RKo]cpan Xglib{b Dɖ]xcb__ '4]exec {]mkdi* -p]xcb_S]date 1putchar_unlocked putchar_unlocked 3 putchar_unlocked 3pxcb_randr_get_crtc_transform_current_filter_name_length- 3 3 1540917640 B - - gz socket.h- 0p 0p 1402354203 B - - gz main sockets headercms_sign_receiptCMS_sign_receipt 3ssl 3 1699892206 A - - gz create a CMS signed receiptfgrep- 1 1 1501743497 B - - gz print lines matching a patterngetaliasbyname_r- 3 3 1402354212 A - - gz read an alias entryxcb_randr_delete_provider_property_checked- 3 3 1540917640 B - - gz tap::parser::result::versionTAP::Parser::Result::Version 3pm 3 1439389327 A - - gz TAP syntax version token.eulb-enable-zones-for-lb- 1 1 1484780705 A - - gz Add a load balancer to one or more availability zonesexecv 3p- 3p 3p 1402354215 B - t gz execute a fileavc_get_initial_context- 3 3 1585710994 B - - gz obtain and manipulate SELinux security ID'sFD_ISSET 3p- 3p 3p 1402354213 B - - gz synchronous I/O multiplexingtsearch 3p- 3p 3p 1402354219 A - - gz manage a binary search treexcb_dri2_get_buffers_with_format_buffers_length- 3 3 1540917640 B - - gz xtaddtimeoutXtAddTimeOut 3 3 1501646833 B - - gz register input, timeout, and workprocsidmapd- 8 8 1634214566 A - - gz NFSv4 ID <-> Name Mapperrefresh- 3x 3 1720626759 B - - gz refresh curses windows and linesxcb_xevie_start- 3 3 1540917640 A - - gz pthread_attr_getinheritsched 3p- 3p 3p 1402354217 A - - gz get and set the inheritsched attribute (REALTIME THREADS)xcb_dri3_buffers_from_pixmap_offsets_length- 3 3 1540917640 B - - gz csqrtl csqrtl 3 csqrtl 3pxdrawimagestringXDrawImageString 3 3 1710950786 A - - gz draw image textiso_8859-14- 7 7 1402354220 A - t gz ISO 8859-14 character set encoded in octal, decimal, and hexadecimalxpolygonregionXPolygonRegion 3 3 1710950786 A - - gz generate regionseuca-describe-vpc-attribute- 1 1 1484780705 A - - gz Show an attribute of a VPCfilename- n n 1448008823 A - - gz File name conventions supported by Tcl commandsmogrify- 1 1 1731392888 A - - gz resize an image, blur, crop, despeckle, dither, draw on, flip, join, re-sample, and much more. Mogrify overwrites the original image file, whereas, convert(1) writes to a different image file.setnetent 3p- 3p 3p 1402354218 B - - gz network database functionsxtgetresourcelistXtGetResourceList 3 3 1501646833 A - - gz obtain resource listsecurity_class_to_string- 3 3 1585710994 A - - gz convert between SELinux class and permission values and string names. print_access_vector - display an access vector in human-readable form.ec_point_point2octEC_POINT_point2oct 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_POINT objects.bn_set_high- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionsbuf_memdupBUF_memdup 3ssl 3 1721417624 B - - gz standard C library equivalentsdatetime::locale::ar_bhDateTime::Locale::ar_BH 3pm 3 1402390641 A - - gz xcb_input_get_device_dont_propagate_list- 3 3 1540917640 A - - gz datetime::locale::kfoDateTime::Locale::kfo 3pm 3 1402390641 A - - gz xcb_xkb_set_compat_map- 3 3 1540917640 A - - gz lfind lfind 3 lfind 3pwinsdelln- 3x 3 1720626759 B - - gz delete and insert lines in a curses windowpem_write_bio_pkcs7PEM_write_bio_PKCS7 3ssl 3 1721417624 B - - gz PEM routinesxdestroywindoweventXDestroyWindowEvent 3 3 1710950786 A - - gz DestroyNotify event structurenice 1- 1 1 1605565487 A - - gz run a program with modified scheduling prioritydbiprof- 1 1 1402362411 A - - gz command-line client for DBI::ProfileDatagetservbyname 3- 3 3 1402354209 B - - gz get service entryevp_pkey_ctx_get_keygen_infoEVP_PKEY_CTX_get_keygen_info 3ssl 3 1721417624 B - - gz key and parameter generation functionsgetlogin_r getlogin_r 3 getlogin_r 3pdatetime::locale::azDateTime::Locale::az 3pm 3 1402390632 A - - gz config Config 3pm config 5 config 5sslx509_verify_param_set_purposeX509_VERIFY_PARAM_set_purpose 3ssl 3 1721417624 B - - gz X509 verification parametersxfreecolormapXFreeColormap 3 3 1710950785 B - - gz create, copy, or destroy colormaps and color structuremd5 MD5 3ssl md5 3ssl md5 1sslmsgunfmt- 1 1 1465650364 A - - gz uncompile message catalog from binary formatdaylight 3p- 3p 3p 1402354214 B - t gz set timezone conversion informationpthread_mutexattr_getpshared- 3p 3p 1402354217 A - - gz get and set the process-shared attributentohl ntohl 3 ntohl 3pnl-classid-lookup- 8 8 1501789719 A - - gz Lookup classid definitionsi2d_x509_crli2d_X509_CRL 3ssl 3 1721417624 B - - gz PKCS#10 certificate request functions.bio_setBIO_set 3ssl 3 1721417624 B - - gz BIO allocation and freeing functionsnearbyintl nearbyintl 3 nearbyintl 3pbio- 3ssl 3 1699892215 A - - gz I/O abstractionxcb_xevie_send- 3 3 1540917640 A - - gz foreach- n n 1448008823 A - - gz Iterate over all elements in one or more listspthread_barrierattr_destroy- 3p 3p 1402354217 B - - gz destroy and initialize the barrier attributes object (ADVANCED REALTIME THREADS)towctrans 3- 3 3 1402354213 A - - gz wide-character transliterationip-rule- 8 8 1601484048 A - - gz routing policy database managementxcb_record_get_context_intercepted_clients_length- 3 3 1540917640 B - - gz nextafter 3p- 3p 3p 1402354216 A - - gz next representable floating-point numberdatetime::locale::az_azDateTime::Locale::az_AZ 3pm 3 1402390643 A - - gz fmtmsg fmtmsg 3 fmtmsg 3pgettid- 2 2 1402354205 A - - gz get thread identificationxrmgetstringdatabaseXrmGetStringDatabase 3 3 1710950786 B - - gz retrieve and store resource databasesperlsolaris- 1 1 1698237668 A - - gz Perl version 5 on Solaris systemsxcb_xv_select_port_notify_checked- 3 3 1540917640 B - - gz xcb_change_keyboard_mapping- 3 3 1540917640 A - - gz cfgetispeed cfgetispeed 3 cfgetispeed 3pxcb_selinux_list_selections_unchecked- 3 3 1540917640 B - - gz template::tutorialTemplate::Tutorial 3pm 3 1402357152 A - - gz Template Toolkit Tutorialseuscale-delete-notification-configuration- 1 1 1484780705 A - - gz Delete an auto-scaling group's notification configurationnexttoward 3- 3 3 1402354211 B - - gz floating-point number manipulationsigqueue 3- 3 3 1402354212 A - - gz queue a signal and data to a processbn_is_prime_exBN_is_prime_ex 3ssl 3 1721417624 B - - gz generate primes and test for primalityfpclassify 3- 3 3 1402354210 A - - gz floating-point classification macrospem_write_bio_dsaprivatekeyPEM_write_bio_DSAPrivateKey 3ssl 3 1721417624 B - - gz PEM routinespaste 1p- 1p 1p 1402354204 A - - gz merge corresponding or subsequent lines of fileslocale::codes::changesLocale::Codes::Changes 3pm 3 1402383323 A - - gz details changes to Locale::Codescpan::meta::specCPAN::Meta::Spec 3pm 3 1402391978 A - - gz specification for CPAN distribution metadataxcb_xf86dri_open_connection_bus_id_end- 3 3 1540917640 B - - gz execvp execvp 3 execvp 3pdatetime::locale::gaaDateTime::Locale::gaa 3pm 3 1402390644 A - - gz xcb_get_pointer_control_unchecked- 3 3 1540917640 B - - gz xtaddraweventhandlerXtAddRawEventHandler 3 3 1501646833 B - - gz add and remove event handlersxcmscielabquerymaxlXcmsCIELabQueryMaxL 3 3 1710950786 B - - gz obtain the CIE L*a*b* coordinateswcstof- 3p 3p 1402354219 B - - gz convert a wide-character string to a double-precision numberxml::libxml::numberXML::LibXML::Number 3pm 3 1402352994 A - - gz Simple numeric values.xcb_glx_read_pixels_reply- 3 3 1540917640 B - - gz outb_p- 2 2 1402354205 B - - gz port I/Oxzgrep- 1 1 1655494379 A - - gz search compressed files for a regular expressionapp::prove::state::result::testApp::Prove::State::Result::Test 3pm 3 1439389327 A - - gz Individual test results.collectd-tg- 1 1 1671356063 A - - gz Traffic generator for collectd.pthread_attr_setstackaddr pthread_attr_setstackaddr 3 pthread_attr_setstackaddr 3pxkballocgeomoverlayrowsXkbAllocGeomOverlayRows 3 3 1710950785 A - - gz Allocate rows in a overlayaclocal-1.13- 1 1 1402387391 A - - gz manual page for aclocal 1.13.4genrandom- 8 8 1725373374 A - - gz generate a file containing random datapcre_jit_stack_alloc- 3 3 1501643278 A - - gz Perl-compatible regular expressionsxcb_glx_vendor_private_with_reply_data_2- 3 3 1540917640 B - - gz ecdsa_signECDSA_sign 3ssl 3 1721417624 B - - gz Elliptic Curve Digital Signature Algorithmxcb_xkb_get_device_info_btn_actions_iterator- 3 3 1540917640 B - - gz opterr opterr 3 opterr 3ptap::parser::result::pragmaTAP::Parser::Result::Pragma 3pm 3 1439389327 A - - gz TAP pragma token.datetime::locale::sr_cyrl_yuDateTime::Locale::sr_Cyrl_YU 3pm 3 1402390635 A - - gz podselect- 1 1 1402373048 A - - gz print selected sections of pod documentation on standard outputxcb_glx_get_tex_image_reply- 3 3 1540917640 B - - gz tcl_fsstatTcl_FSStat 3 3 1448008822 B - - gz procedures to interact with any filesystemxcb_x_print_create_context_checked- 3 3 1540917640 B - - gz xcb_render_set_picture_transform- 3 3 1540917640 A - - gz remque remque 3 remque 3pferaiseexcept 3- 3 3 1402354209 B - - gz floating-point rounding and exception handlingpcre16_compile- 3 3 1573510868 B - - gz Perl-compatible regular expressionsvgcfgbackup- 8 8 1619616701 A - - gz Backup volume group configuration(s)template::manual::vmethodsTemplate::Manual::VMethods 3pm 3 1402357151 A - - gz Virtual Methodsdb_deadlock- 1 1 1481720597 A - - gz Detect deadlocks and abort lock requestsbio_append_filenameBIO_append_filename 3ssl 3 1721417624 B - - gz FILE bioxgcontextfromgcXGContextFromGC 3 3 1710950785 B - t gz create or free graphics contexts and graphics context structurexcb_glx_get_histogram_parameterfv_data_length- 3 3 1540917640 B - - gz statvfs 3p- 3p 3p 1402354218 A - - gz get file system informationtcl_createaliasobjTcl_CreateAliasObj 3 3 1448008821 B - - gz manage multiple Tcl interpreters, aliases and hidden commandstcl_objprintfTcl_ObjPrintf 3 3 1448008822 B - - gz manipulate Tcl objects as stringsdefaultdepthDefaultDepth 3 3 1710950786 A - - gz Display macros and functionsssl_get_shutdownSSL_get_shutdown 3ssl 3 1721417624 B - - gz manipulate shutdown state of an SSL connectionbio_get_mem_dataBIO_get_mem_data 3ssl 3 1721417624 B - - gz memory BIOepoll_create- 2 2 1402354204 A - - gz open an epoll file descriptorEd 1- 1 1 1533764426 C red - gz fcconfighomeFcConfigHome 3 3 1520307172 A - - gz return the current home directory.strspn strspn 3 strspn 3pnextafter 3- 3 3 1402354211 A - - gz floating-point number manipulationdatetime::locale::de_chDateTime::Locale::de_CH 3pm 3 1402390633 A - - gz tcl_writerawTcl_WriteRaw 3 3 1448008822 B - - gz buffered I/O facilities using channelsturbostat- 8 8 1731045640 A - - gz Report processor frequency and idle statisticstcl_appendresultTcl_AppendResult 3 3 1448008822 B - - gz manipulate Tcl resultdh_set_methodDH_set_method 3ssl 3 1721417624 A - - gz select DH methoditem_opts_off- 3x 3 1720626759 B - - gz set and get menu item optionsj1 3- 3 3 1402354210 B - - gz Bessel functions of the first kindxcb_xfixes_select_selection_input_checked- 3 3 1540917640 B - - gz basename 3p- 3p 3p 1402354214 A - t gz return the last component of a pathnametcl_utfcharcompleteTcl_UtfCharComplete 3 3 1448008823 B - - gz routines for manipulating UTF-8 stringsxconfigurewindowXConfigureWindow 3 3 1710950786 A - - gz configure windows and window changes structureselabel_file- 5 5 1585710994 A - - gz userspace SELinux labeling interface and configuration file format for the file contexts backendec_key_set_flagsEC_KEY_set_flags 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_KEY objects.use_env- 3x 3 1720626759 B - - gz miscellaneous curses utility routinestcl_getbooleanfromobjTcl_GetBooleanFromObj 3 3 1448008821 A - - gz store/retrieve boolean value in a Tcl_Objwchgat- 3x 3 1720626759 B - - gz curses character and window attribute control routinesprotocolrevisionProtocolRevision 3 3 1710950785 B - - gz Display macros and functions   A#>{^bg_ u)J^list ]^getpv:#h^pods Z6}^wgetRd^xcb_[(;^sg_d[-^clog @xcb_` "| ^ddp:B ^aryb5{^modf >encoa Lsystb 2ܩ^overL3ԣ^fclaXSXP^cmp 9'@^getg "^strt =9pO^floccǎ^tiffz8w=^tcl_ŔS̸^ssl_6N^date5^tree7p^dup ->datee 0D^xkbkrzL`^xcb_/%^dbm_F /strig ^semaK%^dateޗ0B^has_# ;fT^xcb_h'^lsor6JNH^sys/ !-}^sys_2q^lzcmQB^md5 v -erroj Lt^tld_'iso_&k _fcmak 5genhk Ips2p'l mdirnl G#x^mathVstar~^xcb_.N^text=log2= ^aio_5 ps2p =p^ssl__Btc-m MZ^sg_eb3-^xcb_#%atan @VM^mathc Q^tcl_ <ޠ^elfe >F^tcl_PG^xcb_m^pcap /^erfc:o^fgetS Deulb B^date0b^pom2I`G^link45endp exp2 9fese-&2^xtunp68^bn_mExcb__*cK^sinf Qhd^tiff! Afd_z 浓^encolTssl_P i ;^xxor 5*yZ^xint A^ssl_^mT^dsynLe^xkbn5o)p^encoIu#^inet Y}^/etcw"utim* pwriA Ca64l ;locaΞ k^parr=pcre6>N]^slk_ 6comm 5䁥^cloc+ A0^tcl_va^tempQ^xcb_TsD^curs SS^sinh 6R^blkt* Nd^xtseMϠ^binaH)^evp_/WO^xtre E!^timeP};^cpu_N CE^fork1xkbs otcl_ Sxcb_ ώ^xcmsN]^wcstbY5^xml:E_^xcb_t^sslr!p^outbP#x*^xzgrzK*0^app: S ^coll? :recu Ig^pthr:K@^xkbaKGa^aclo< 9xcb_ (semcH $^genr AV ^pcre>^xcb_ ){^date3H^ecdsd Q^xcb_@Hq"^xcb_-&^optenS^tap:#H.e^date8OlOlp _tcl_w Nxcb_I h_xcb_#datez 0xdra K _xcb_!xdg-X! N0_remqJr_feraeIx0_pcre>_vgcf  ?_tempVE{_db_d Cxcb_# xcms# OpthrF$ >d_bio_8!>_xgcoQh`_xcb_._stat 8iden% @-_tcl_Ui/t_tcl_H_defa' B_ssl_v[X_bio_7k%m_epol* 8IL_Ed 1olwp-l& 9j_fcco Hʶ_strsW_next ={W_dateJ3n;_tcl_ L)N_turb Ig_tcl_A?_dh_s:w_item9@-_j1 3 =6_xcb_b*i/_tcl_ TX4_xconh Xaa_base Dcoll5* Dxkbf* Hxcb_* M_sela  {xcb_+ 2 _ec_kY!pܾ_use_!Assl_+ cdove1, B6_tcl_#"XV_wchg"RX_prot"FW_wcscP =n_bzleFPWX_fuseP~!_cachPI_putcQ:2_xcb_1QTg_sele]Q 9pthri- 4;K_dbm_Q /date- 3Y_xcb_Q$8e_ssl_RXH_endwRRe_unloR [_lsmeRWD|_timeYS -a_cataS :(e_chroSC9P_xcb_T_xcb_LT!EL_getpT@g_tcl_TR_listdH_gvieY[A0Zc_tiff[:_ps2a[ Qs_initE\;9_ldex\=_getn\R\_half] ;F_tempH]P2G_ec_k]}ɀ_semcB^ =x_svip^I 5_logi^ <_tcl__^Gi_bn_s_ Dݭ_bn_b`Rg_md4_f` F_temp`Tt_rsys"a 9_xcb_ha'_bio_a<١_doveaA_xaudPbEŸ_yamlb K$_bio_b 4y7_unic:cG`_xcb_c+b_vprict_foldcI{1_date8d3*_ssl_dY}_tap:dJQ_git-be @%q_setge /a_xtapeHKu_cpanKfZ_fsf-f#/5_gpl- g4$.m_nfs4[g*>_reseg5zI_xcb_g$̭z_eulb%h>#A_git-yh 8_xtish H_expoi2m(_pcreIi>asct ϲ _setsi Ja_xcb_iba_xcb_j.N<_abrtcj;d'_lzdijv _moduj ]Ǎ_clrtZk @keyoa ;^v_setnk ,evp_b Rglib{b Da_clogk?xcb_b /R_sem_!lDƸ_uuentl 1I_ecvt_wcscmp 3- 3 3 1402354213 A - - gz compare two wide-character stringsbzless- 1 1 1533764347 B - - gz file perusal filter for crt viewing of bzip2 compressed textfuser fuser 1p fuser 1cache_restore- 8 8 1605543195 A - - gz restore cache metadata file to device or file.putchar putchar 3 putchar 3pxcb_dpms_capable- 3 3 1540917640 A - - gz select 3p- 3p 3p 1402354218 A - - gz synchronous I/O multiplexingdbm_nextkey- 3p 3p 1402354214 B - - gz database functionsxcb_glx_gen_queries_arb_data_length- 3 3 1540917640 B - - gz ssl_get_ssl_ctxSSL_get_SSL_CTX 3ssl 3 1699892222 A - - gz get the SSL_CTX from which an SSL is createdendwin- 3x 3 1720626759 B - - gz curses screen initialization and manipulation routinesunlockpt unlockpt 3 unlockpt 3plsmem- 1 1 1612283497 A - - gz list the ranges of available memory with their online statustimersub- 3 3 1402354213 B - - gz timeval operationscatanh 3- 3 3 1402354207 A - - gz complex arc tangents hyperbolicchronyc- 1 1 1565264417 A - - gz command-line interface for chrony daemonxcb_damage_subtract- 3 3 1540917640 A - - gz xcb_xvmc_query_version_unchecked- 3 3 1540917640 B - - gz getprotoent 3p- 3p 3p 1402354218 A - - gz network protocol database functionstcl_outputbufferedTcl_OutputBuffered 3 3 1448008822 B - - gz buffered I/O facilities using channelslist_insert_afterLIST_INSERT_AFTER 3 3 1402354206 B - - gz implementations of lists, tail queues, and circular queuestrap trap 1p trap 1mvwadd_wch- 3x 3 1720626759 B - - gz add a complex character and rendition to a curses window, then advance the cursoroldfind- 1 1 1540917774 A - - gz search for files in a directory hierarchyzipnote- 1 1 1478364590 A - - gz write the comments in zipfile to stdout, edit comments and rename files in zipfileisunordered 3p- 3p 3p 1402354216 A - - gz test if arguments are unorderedis_linetouched- 3x 3 1720626759 B - - gz curses refresh control routinestcl_makesafeTcl_MakeSafe 3 3 1448008821 B - - gz manage multiple Tcl interpreters, aliases and hidden commandsle16toh- 3 3 1402354210 B - - gz convert values between host and big-/little-endian byte orderdatetime::locale::sr_cyrl_rsDateTime::Locale::sr_Cyrl_RS 3pm 3 1402390636 A - - gz ssl_get_fdSSL_get_fd 3ssl 3 1699892223 A - - gz get file descriptor linked to an SSL objectssl_ctx_set_tmp_dhSSL_CTX_set_tmp_dh 3ssl 3 1721417624 B - - gz handle DH keys for ephemeral key exchangetifferrorTIFFError 3tiff 3 1729525165 A - - gz library error handling interfaceselinux_status_open- 3 3 1585710994 A - - gz reference the SELinux kernel status without invocation of system callsxcb_list_extensions_names_length- 3 3 1540917640 B - - gz intrflush_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensiontiffcomputestripTIFFComputeStrip 3tiff 3 1729525165 C TIFFstrip - gz disown- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)gview- 1 1 1720542354 B - - gz Vi IMproved, a programmers text editortiffrgbaimageendTIFFRGBAImageEnd 3tiff 3 1729525165 C TIFFRGBAImage - gz ps2ascii- 1 1 1601482853 A - - gz Ghostscript translator from PostScript or PDF to ASCIIinit_color_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionldexp ldexp 3 ldexp 3pgetnstr- 3x 3 1720626759 B - - gz accept character strings from curses terminal keyboardhalfdelay_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensiontemplate::testTemplate::Test 3pm 3 1402357151 A - - gz Module for automating TT2 test scriptsec_key_insert_key_method_dataEC_KEY_insert_key_method_data 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_KEY objects.semctl 3p- 3p 3p 1402354218 A - - gz XSI semaphore control operationssvipc 7- 7 7 1402354220 A - - gz System V interprocess communication mechanismsloginctl- 1 1 1711457787 A - - gz Control the systemd login managertcl_setdefaultencodingdirTcl_SetDefaultEncodingDir 3 3 1448008821 B - - gz procedures for creating and using encodingsbn_set_wordBN_set_word 3ssl 3 1721417624 B - - gz BIGNUM assignment operationsecvt ecvt 3 ecvt 3pbn_blinding_convertBN_BLINDING_convert 3ssl 3 1721417624 B - - gz blinding related BIGNUM functions.md4_finalMD4_Final 3ssl 3 1721417624 B - - gz MD2, MD4, and MD5 hash functionstemplate::plugin::tableTemplate::Plugin::Table 3pm 3 1402357151 A - - gz Plugin to present data in a tablersyslog.conf- 5 5 1654010535 A - - gz rsyslogd(8) configuration filexcb_res_query_resource_bytes_unchecked- 3 3 1540917640 B - - gz bio_get_num_renegotiatesBIO_get_num_renegotiates 3ssl 3 1721417624 B - - gz SSL BIOdoveadm-mailbox- 1 1 1724195936 A - - gz Commands related to handling mailboxesxaudisposeauthXauDisposeAuth 3 3 1402361801 B - - gz X authority database routinesyaml::anyYAML::Any 3pm 3 1402340435 A - - gz Pick a YAML implementation and use it.bio_set_nbioBIO_set_nbio 3ssl 3 1721417624 B - - gz connect BIOunicode::collateUnicode::Collate 3pm 3 1698237678 A - - gz Unicode Collation Algorithmxcb_glx_swap_buffers_checked- 3 3 1540917640 B - - gz vprintf vprintf 3 vprintf 3pfold 1- 1 1 1605565487 A - - gz wrap each input line to fit in specified widthdatetime::locale::mr_inDateTime::Locale::mr_IN 3pm 3 1402390644 A - - gz ssl_ctx_set_session_cache_modeSSL_CTX_set_session_cache_mode 3ssl 3 1721417624 A - - gz enable/disable session cachingtap::parser::yamlish::writerTAP::Parser::YAMLish::Writer 3pm 3 1439389327 A - - gz Write YAMLish datagit-show-ref- 1 1 1722330783 A - - gz List references in a local repositorysetgrent 3- 3 3 1402354212 B - - gz get group file entryxtappgeterrordatabasetextXtAppGetErrorDatabaseText 3 3 1501646833 B - - gz obtain error databasecpanplus::dist::baseCPANPLUS::Dist::Base 3pm 3 1402392266 A - - gz Base class for custom distribution classesfsf-funding-libstdc++-plesk-10.3.0- 7 7 631195200 A - - gz Funding Free Softwaregpl-libstdc++-plesk-10.3.0- 7 7 631195200 A - - gz GNU General Public Licensenfs4_gss_princ_to_grouplist- 3 3 1523419630 C nfs4_uid_to_name - gz reset_prog_mode- 3x 3 1720626759 B - - gz low-level curses routinesxcb_xc_misc_get_xid_range_unchecked- 3 3 1540917640 B - - gz eulb-create-lb-policy- 1 1 1484780705 A - - gz Add a new policy to a load balancergit-show- 1 1 1722330783 A - - gz Show various types of objectsxtissubclassXtIsSubclass 3 3 1501646833 B - - gz obtain and verify a widget's classexports- 5 5 1634214566 A - - gz NFS server export tablepcre_fullinfo- 3 3 1501643278 A - - gz Perl-compatible regular expressionssetsid 2- 2 2 1402354206 A - - gz creates a session and sets the process group IDxcb_lookup_color_reply- 3 3 1540917640 B - - gz xcb_input_list_input_devices_devices_iterator- 3 3 1540917640 B - - gz abrt-action-analyze-core- 1 1 1601569733 A - - gz Extracts builds from a core dumplzdiff- 1 1 1655494379 C xzcmp - gz module::build::platform::ebcdicModule::Build::Platform::EBCDIC 3pm 3 1402373049 A - - gz Builder class for EBCDIC platformsclrtoeol- 3x 3 1720626759 B - - gz clear all or part of a curses windowsetnetent 3- 3 3 1402354212 B - - gz get network entryclog2f- 3 3 1402354208 B - - gz base-2 logarithm of a complex numbersem_destroy 3p- 3p 3p 1402354218 A - - gz destroy an unnamed semaphore (REALTIME)uuencode 1p- 1p 1p 1402354204 A - t gz encode a binary fileui_add_input_booleanUI_add_input_boolean 3ssl 3 1721417624 B - - gz New User Interfacepopen 3p- 3p 3p 1402354216 A - - gz initiate pipe streams to or from a processhunspell 4- 4 4 1601483751 A - - gz format of Hunspell dictionaries and affix filesmrand48 3p- 3p 3p 1402354216 B - - gz generate uniformly distributed pseudo-random numbersxcb_change_keyboard_mapping_checked- 3 3 1540917640 B - - gz vdir- 1 1 1605565487 A - - gz list directory contentsmemset 3p- 3p 3p 1402354216 A - - gz set bytes in memoryoptind 3p- 3p 3p 1402354215 A - - gz command option parsingwcscoll- 3p 3p 1402354219 A - - gz wide-character string comparison using collating informationccoshf ccoshf 3 ccoshf 3pxtappsetselectiontimeoutXtAppSetSelectionTimeout 3 3 1501646833 B - - gz set and obtain selection timeout valuesrcmd- 3 3 1402354212 A - - gz routines for returning a stream to a remote commanddlclose 3p- 3p 3p 1402354214 A - - gz close a dlopen objectpam_filter- 8 8 1585713588 A - - gz PAM filter modulesem_getvalue sem_getvalue 3 sem_getvalue 3psystemd-update-utmp-runlevel.service- 8 8 1711457788 B - - gz Write audit and utmp updates at bootup, runlevel changes and shutdowndatetime::locale::en_auDateTime::Locale::en_AU 3pm 3 1402390638 A - - gz datetime::locale::aa_etDateTime::Locale::aa_ET 3pm 3 1402390639 A - - gz ssl_ctx_get_client_cert_cbSSL_CTX_get_client_cert_cb 3ssl 3 1699892220 A - - gz handle client certificate callback functiontc-pfifo- 8 8 1601484048 B - - gz Packet limited First In, First Out queuestrtoul 3- 3 3 1402354212 A - - gz convert a string to an unsigned long integerpid- n n 1448008823 A - - gz Retrieve process identifiersoptarg 3- 3 3 1402354209 A - - gz Parse command-line optionsstpcpy- 3 3 1402354212 A - - gz copy a string returning a pointer to its endlatin1- 7 7 1402354220 B - t gz ISO 8859-1 character set encoded in octal, decimal, and hexadecimallcong48 3p- 3p 3p 1402354216 B - - gz generate uniformly distributed pseudo-random numbersdes_modes- 7ssl 7 1699892216 A - - gz the variants of DES and other crypto algorithms of OpenSSLpthread_attr_getstacksize 3p- 3p 3p 1402354217 A - - gz get and set the stacksize attributeeuca-start-instances- 1 1 1484780705 A - - gz Start one or more stopped instancesremquof remquof 3 remquof 3pfutex futex 2 futex 7perlxstut- 1 1 1698237671 A - - gz Tutorial for writing XSUBstcl_createobjtraceTcl_CreateObjTrace 3 3 1448008821 A - - gz arrange for command execution to be tracedvfychain- 1 1 1730826028 A - - gz vfychain [options] [revocation options] certfile [[options] certfile] ...xkbkeysymsptrXkbKeySymsPtr 3 3 1710950785 A - - gz Returns the pointer to the two-dimensional array of keysyms for the key corresponding to keycodecrypto_get_ex_dataCRYPTO_get_ex_data 3ssl 3 1699892207 A - - gz internal application specific data functionstap::harnessTAP::Harness 3pm 3 1439389327 A - - gz Run test scripts with statisticsdisplayplanesDisplayPlanes 3 3 1710950785 B - - gz Display macros and functionsfcloseall- 3 3 1402354209 A - - gz close all open streamsxcb_input_xi_change_cursor_checked- 3 3 1540917640 B - - gz xcb_glx_get_color_table_reply- 3 3 1540917640 B - - gz perlre- 1 1 1698237667 A - - gz Perl regular expressionspod::simple::debugPod::Simple::Debug 3pm 3 1402365606 A - - gz - put Pod::Simple into trace/debug modetiffreversebitsTIFFReverseBits 3tiff 3 1729525165 C TIFFswab - gz git-merge-tree- 1 1 1722330782 A - - gz Show three-way merge without touching indexmysqlslap- 1 1 1697025034 A - - gz a load emulation clientmdig- 1 1 1725373373 A - - gz DNS pipelined lookup utilityperldiag- 1 1 1698237664 A - - gz various Perl diagnosticsssl_session_set_ex_dataSSL_SESSION_set_ex_data 3ssl 3 1721417624 B - - gz internal application specific data functionsftok 3- 3 3 1402354209 A - - gz convert a pathname and a project identifier to a System V IPC keysigemptyset sigemptyset 3 sigemptyset 3pURI 3pm- 3pm 3 1402351652 A - - gz Uniform Resource Identifiers (absolute and relative)fstat 3p- 3p 3p 1402354215 A - - gz get file statusdepmod.d- 5 5 1585709895 A - - gz Configuration directory for depmodtk- n n 1448008912 A - - gz Manipulate Tk internal statesigsuspend 3p- 3p 3p 1402354218 A - - gz wait for a signalsystemd.timer- 5 5 1711457788 A - - gz Timer unit configurationpf2afm- 1 1 1601482853 A - - gz Make an AFM file from Postscript (PFB/PFA/PFM) font files using ghostscriptvsnprintf 3p- 3p 3p 1402354219 B - - gz format output of a stdarg argument listgpl- 7 7 1547112203 C gpl-libstdc++-plesk-6.3.0 - gz xcb_glx_get_pixel_mapfv_data_end- 3 3 1540917640 B - - gz fclose 3- 3 3 1402354209 A - - gz close a streamcurses::ui::notebookCurses::UI::Notebook 3pm 3 1454728582 A - - gz Create and manipulate notebook widgets.cpanplus::moduleCPANPLUS::Module 3pm 3 1402392266 A - - gz CPAN module objects for CPANPLUSeuca-describe-groups- 1 1 1484780705 A - - gz Show information about security groupsgit-bisect- 1 1 1722330782 A - - gz Find by binary search the change that introduced a bugerr_get_funcERR_GET_FUNC 3ssl 3 1721417624 B - - gz get library, function and reason codehas_ic- 3x 3 1720626759 B - - gz curses environment query routinesphp-cgi- 1 1 1572624386 B - - gz PHP Common Gateway Interface 'CGI' commandec_group_get_curve_nameEC_GROUP_get_curve_name 3ssl 3 1721417624 B - - gz Functions for manipulating EC_GROUP objects.cfdisk- 8 8 1612283497 A - - gz display or manipulate disk partition tablexcb_input_get_device_button_mapping_unchecked- 3 3 1540917640 B - - gz crypto_get_new_dynlockidCRYPTO_get_new_dynlockid 3ssl 3 1721417624 B - - gz OpenSSL thread supportzipcmp- 1 1 1331803671 A - - gz compare contents of zip archivesbB 3pm 3 1698237671 A - - gz The Perl Compiler Backendtcl_getchannelthreadTcl_GetChannelThread 3 3 1448008821 B - - gz procedures for creating and manipulating channelsmenu_post- 3x 3 1720626759 A - - gz write or erase menus from associated subwindowslwres_context_sendrecv- 3 3 1725373371 B - - gz lightweight resolver context managementextutils::typemaps::outputmapExtUtils::Typemaps::OutputMap 3pm 3 1501652625 A - - gz Entry in the OUTPUT section of a typemapvfwprintf 3p- 3p 3p 1402354219 B - - gz wide-character formatted output of a stdarg argument listmemcpy 3p- 3p 3p 1402354216 A - - gz copy bytes in memoryendservent 3- 3 3 1402354209 A - - gz get service entryxcb_input_xi_get_focus_reply- 3 3 1540917640 B - - gz aulast- 8 8 1565265960 A - - gz a program similar to lastsigsetops- 3 3 1402354212 A - - gz POSIX signal set operations.getsyx- 3x 3 1720626759 B - - gz low-level curses routinesnanosleep nanosleep 2 nanosleep 3psg_rtpg- 8 8 1585715378 A - - gz send SCSI REPORT TARGET PORT GROUPS commandsigrelse sigrelse 3 sigrelse 3pperlfaq8- 1 1 1698237665 A - - gz System Interactionbzmore- 1 1 1533764347 A - - gz file perusal filter for crt viewing of bzip2 compressed textvmstat- 8 8 1601486472 A - - gz Report virtual memory statisticsxcb_sync_destroy_alarm_checked- 3 3 1540917640 B - - gz fputc 3p- 3p 3p 1402354215 A - - gz put a byte on a streamlocale::codes::currencyLocale::Codes::Currency 3pm 3 1402383323 A - - gz standard codes for currency identificationpm-powersave- 8 8 1410891653 A - - gz Put your computer into low power modestringprep_unichar_to_utf8- 3 3 1448125246 A - - gz API functiontemplate::manual::creditsTemplate::Manual::Credits 3pm 3 1402357151 A - - gz Author and contributor creditsreport_centos.conf- 5 5 1585834715 A - - gz configuration file for libreport.journal-remote.conf- 5 5 1711457788 A - - gz Journal remote service configuration fileslgamma 3p- 3p 3p 1402354218 A - - gz log gamma functionscsi_stop- 8 8 1585715378 A - - gz stop (spin down) one or more SCSI disksxcb_shm_get_image_reply- 3 3 1540917640 B - - gz compopt- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)key_decryptsession- 3 3 1402354210 B - - gz interfaces to rpc keyserver daemonif n- n n 1448008823 A - - gz Execute scripts conditionallyeuare-servercertlistbypath- 1 1 1484780705 A - - gz List your account's server certificatesxcb_composite_unredirect_subwindows_checked- 3 3 1540917640 B - - gz asinhl 3- 3 3 1402354207 B - - gz inverse hyperbolic sine functiondatetime::durationDateTime::Duration 3pm 3 1501652189 A - - gz Duration objects for date mathlogin login 3 login 1xkbfreecomponentlistXkbFreeComponentList 3 3 1710950785 A - - gz Free the structure returned by XkbListComponentsdatetime::locale::bo_cnDateTime::Locale::bo_CN 3pm 3 1402390633 A - - gz xkballocgeomshapesXkbAllocGeomShapes 3 3 1710950785 A - - gz Allocate space for an arbitrary number of geometry shapesmkinitrd- 8 8 1601481478 A - - gz is a compat wrapper, which calls dracut to generate an initramfsthin_metadata_size- 8 8 1605543195 A - - gz thin provisioning metadata device/file size calculator.service- 8 8 1605543616 A - - gz run a System V init scripttiffseterrorhandlerTIFFSetErrorHandler 3tiff 3 1729525165 C TIFFError - gz git-difftool- 1 1 1722330780 A - - gz Show changes using common diff toolsperlaix- 1 1 1698237663 A - - gz Perl version 5 on IBM AIX (UNIX) systemslocaltime_r 3- 3 3 1402354210 B - - gz transform date and time to broken-down time or ASCIIxcb_grab_server_checked- 3 3 1540917640 B - - gz tcl_fsevalfileexTcl_FSEvalFileEx 3 3 1448008822 B - - gz procedures to interact with any filesystemseekdir 3- 3 3 1402354212 A - - gz set the position of the next readdir() call in the directory stream.catanhf catanhf 3 catanhf 3plwres_gnbaresponse_parse- 3 3 1725373371 B - - gz lightweight resolver getnamebyaddress message handlingtiffdefaultstripsizeTIFFDefaultStripSize 3tiff 3 1729525165 C TIFFstrip - gz xcb_input_xi_set_focus- 3 3 1540917640 A - - gz netemNetEm 8 8 1601484048 C tc-netem - gz fchown fchown 2 fchown 3pcopysignf copysignf 3 copysignf 3pecdsa- 3ssl 3 1699892216 A - - gz Elliptic Curve Digital Signature Algorithmscandir- 3 3 1402354213 A - - gz scan a directory for matching entrieswcsrchr wcsrchr 3 wcsrchr 3pisnan 3- 3 3 1402354210 B - - gz floating-point classification macrospam_securetty- 8 8 1585713591 A - - gz Limit root login to special devicesxcb_input_change_device_property_checked- 3 3 1540917640 B - - gz bio_get_accept_portBIO_get_accept_port 3ssl 3 1721417624 B - - gz accept BIOxgetwindowpropertyXGetWindowProperty 3 3 1710950786 A - - gz obtain and change window propertiesssl_need_tmp_rsaSSL_need_tmp_rsa 3ssl 3 1721417624 B - - gz handle RSA keys for ephemeral key exchangexcb_randr_query_output_property_reply- 3 3 1540917640 B - - gz null- 4 4 1402354219 A - - gz data sinktcl_restoreinterpstateTcl_RestoreInterpState 3 3 1448008822 B - - gz save and restore an interpreter's statexcb_sync_destroy_fence- 3 3 1540917640 A - - gz stdout stdout 3 stdout 3ptemplate::toolkitTemplate::Toolkit 3pm 3 1402357151 A - - gz Template Processing Systemd2i_asn1_objectd2i_ASN1_OBJECT 3ssl 3 1721417624 A - - gz ASN1 OBJECT IDENTIFIER functionseuca-upload-bundle- 1 1 1484780705 A - - gz Upload a bundle prepared by euca-bundle-image to the cloudxcb_glx_get_visual_configs- 3 3 1540917640 A - - gz systemd.slice- 5 5 1711457787 A - - gz Slice unit configurationgrub-mknetdir- 1 1 1722985065 C grub2-mknetdir - gz xcb_xv_get_video_checked- 3 3 1540917640 B - - gz ssl_ctx_sess_missesSSL_CTX_sess_misses 3ssl 3 1721417624 B - - gz obtain session cache statisticsxcb_grab_button_checked- 3 3 1540917640 B - - gz Grab pointer button(s)md5_finalMD5_Final 3ssl 3 1721417624 B - - gz MD2, MD4, and MD5 hash functionsbn_num_bitsBN_num_bits 3ssl 3 1721417624 B - - gz get BIGNUM sizefilter::decryptFilter::decrypt 3pm 3 1402353951 A - - gz template for a decrypt source filterreturn 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)tcl_unicharislowerTcl_UniCharIsLower 3 3 1448008823 B - - gz routines for classification of Tcl_UniChar charactershttp::negotiateHTTP::Negotiate 3pm 3 1402383464 A - - gz choose a variant to serverestartterm_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensiondelete_module- 2 2 1402354204 A - - gz unload a kernel moduledbi::gofer::serializer::datadumperDBI::Gofer::Serializer::DataDumper 3pm 3 1402362411 A - - gz Gofer serialization using DataDumperchvt- 1 1 1637771557 A - - gz change foreground virtual terminallocaltime 5- 5 5 1711457787 A - - gz Local timezone configuration fileevp_rc2_64_cbcEVP_rc2_64_cbc 3ssl 3 1721417624 B - - gz EVP cipher routinesxcb_render_add_traps_checked- 3 3 1540917640 B - - gz getnetbyaddr getnetbyaddr 3 getnetbyaddr 3pstrpbrk strpbrk 3 strpbrk 3piso_8859_7- 7 7 1402354220 B - t gz ISO 8859-7 character set encoded in octal, decimal, and hexadecimalxcb_xinerama_query_screens- 3 3 1540917640 A - - gz ispunct 3- 3 3 1402354210 B - - gz character classification routinespthread_rwlock_unlock- 3p 3p 1402354217 A - - gz unlock a read-write lock objectvswprintf vswprintf 3 vswprintf 3paccept accept 2 accept 3pxcb_query_font_properties_length- 3 3 1540917640 B - - gz query font metricslog1pl 3p- 3p 3p 1402354216 B - - gz compute a natural logarithmxcb_glx_get_error- 3 3 1540917640 A - - gz collectd-unixsock- 5 5 1671356063 A - - gz Documentation of collectd's "unixsock plugin"strptime strptime 3 strptime 3psigaddset sigaddset 3 sigaddset 3pdatetime::locale::nr_zaDateTime::Locale::nr_ZA 3pm 3 1402390636 A - - gz remainderf 3- 3 3 1402354211 B - - gz floating-point remainder functionabort 3p- 3p 3p 1402354214 A - - gz generate an abnormal process abortcurs_set_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensioneuare-oidcproviderdelclientid- 1 1 1484780705 A - - gz Remove a client ID from an OpenID Connect providertcl_fsfileattrssetTcl_FSFileAttrsSet 3 3 1448008822 B - - gz procedures to interact with any filesystemenable- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)cprojf 3p- 3p 3p 1402354214 B - - gz complex projection functionstcl_getassocdataTcl_GetAssocData 3 3 1448008821 B - - gz manage associations of string keys and user specified data with Tcl interpreterseuscale-delete-auto-scaling-group- 1 1 1484780705 A - - gz Delete an auto-scaling groupdh_checkDH_check 3ssl 3 1721417624 B - - gz generate and check Diffie-Hellman parametersperliol- 1 1 1698237666 A - - gz C API for Perl's implementation of IO in Layers.xcb_render_reference_glyph_set_checked- 3 3 1540917640 B - - gz cpupower- 1 1 1731045638 A - - gz Shows and sets processor power related valuesatanh 3- 3 3 1402354207 A - - gz inverse hyperbolic tangent functionxtcallconverterXtCallConverter 3 3 1501646833 B - - gz invoke resource converterslibgen.h- 0p 0p 1402354203 A - - gz definitions for pattern matching functionsregfree 3- 3 3 1402354211 B - - gz POSIX regex functionsgenrsa- 1ssl 1 1699892200 A - - gz generate an RSA private keycbrtf 3p- 3p 3p 1402354214 B - - gz cube root functionsasn1_string_type_newASN1_STRING_type_new 3ssl 3 1721417624 B - - gz ASN1_STRING allocation functionsxml::libxml::patternXML::LibXML::Pattern 3pm 3 1402352994 A - - gz XML::LibXML::Pattern - interface to libxml2 XPath patternsilogbf 3- 3 3 1402354210 B - - gz get integer exponent of a floating-point valuecpupower-idle-set- 1 1 1731045638 A - - gz xgetimageXGetImage 3 3 1710950786 B - - gz transfer imagesssl_conf_ctx_set_ssl_ctxSSL_CONF_CTX_set_ssl_ctx 3ssl 3 1721417624 A - - gz set context to configurexcb_selinux_get_property_use_context_context_end- 3 3 1540917640 B - - gz strcmp 3p- 3p 3p 1402354218 A - - gz compare two stringsdatetime::locale::fiDateTime::Locale::fi 3pm 3 1402390639 A - - gz satyr- 1 1 1540929857 A - - gz create and manipulate problem reportssetfilecon- 3 3 1585710994 A - - gz set SELinux security context of a fileversion version 3pm version 1sslnohup 1p- 1p 1p 1402354204 A - - gz invoke a utility immune to hangupsfcpatternadd-typeFcPatternAdd-Type 3 3 1520307172 A - - gz Add a typed value to a patternxml::parser::pureperl::readerXML::Parser::PurePerl::Reader 3pm 3 1402345097 C XML::SAX::PurePerl::Reader - gz grub2-bios-setup- 8 8 1722985065 A - - gz Set up images to boot from a device.xcb_glx_get_compressed_tex_image_arb_data- 3 3 1540917640 B - - gz xcb_copy_colormap_and_free- 3 3 1540917640 A - - gz xcb_selinux_set_property_create_context_checked- 3 3 1540917640 B - - gz continue 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)sha512 SHA512 3ssl sha512 1sslpthread_spin_lock- 3p 3p 1402354217 A - - gz lock a spin lock object (ADVANCED REALTIME THREADS)netinet/tcp.h- 0p 0p 1402354203 C tcp.h - gz rsa_signRSA_sign 3ssl 3 1721417624 A - - gz RSA signaturesrestartterm- 3x 3 1720626759 B - - gz curses interfaces to terminfo databasexcb_xinerama_get_screen_size_unchecked- 3 3 1540917640 B - - gz ec_point_get_jprojective_coordinates_gfpEC_POINT_get_Jprojective_coordinates_GFp 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_POINT objects.avc_context_to_sid- 3 3 1585710994 A - - gz obtain and manipulate SELinux security ID'sgsignal- 3 3 1402354212 A - - gz software signal facilityxcb_input_send_extension_event- 3 3 1540917640 A - - gz config::tinyConfig::Tiny 3pm 3 1402370400 A - - gz Read/Write .ini style files with as little code as possibleec_key_get_enc_flagsEC_KEY_get_enc_flags 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_KEY objects.pod::perldoc::basetoPod::Perldoc::BaseTo 3pm 3 1402388268 A - - gz Base for Pod::Perldoc formattersxcb_xkb_get_device_info_btn_actions_length- 3 3 1540917640 B - - gz xdbegetvisualinfoXdbeGetVisualInfo 3 3 1448003986 A - - gz Get dbe Visual Informationsckfree- 3 3 1448008821 B - - gz allocate or free heap memoryslk_refresh- 3x 3 1720626759 B - - gz curses soft label routinesxcb_selinux_set_device_create_context_checked- 3 3 1540917640 B - - gz xcheckmaskeventXCheckMaskEvent 3 3 1710950786 B - - gz select events by type_longjmp- 3p 3p 1402354213 B - - gz non-local gotoxcb_composite_unredirect_subwindows- 3 3 1540917640 A - - gz re_exec- 3 3 1402354211 B - - gz BSD regex functionsunsetenv 3p- 3p 3p 1402354219 A - - gz remove an environment variablesslv23_server_methodSSLv23_server_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionslvcreate- 8 8 1619616701 A - - gz Create a logical volumeenvz_get- 3 3 1402354208 B - - gz environment string supportevp_pkey_signEVP_PKEY_sign 3ssl 3 1721417624 A - - gz sign using a public key algorithmcurses::ui::searchableCurses::UI::Searchable 3pm 3 1454728582 A - - gz Add 'less'-like search abilities to a widgettiffismsb2lsbTIFFIsMSB2LSB 3tiff 3 1729525165 C TIFFquery - gz curs_in_wchstr- 3x 3 1715932337 A - - gz get an array of complex characters and renditions from a curses windowtc-ife- 8 8 1601484048 A - - gz encapsulate/decapsulate metadatadatetime::locale::kaDateTime::Locale::ka 3pm 3 1402390632 A - - gz termname- 3x 3 1720626759 B - - gz curses environment query routineslwres_gnbaresponse_render- 3 3 1725373371 B - - gz lightweight resolver getnamebyaddress message handlingpam_strerror- 3 3 1585713595 A - - gz return string describing PAM error codetgkill- 2 2 1402354206 B - - gz send a signal to a threadxcb_delete_property_checked- 3 3 1540917640 B - - gz sigsuspend sigsuspend 2 sigsuspend 3pxcb_sync_query_counter- 3 3 1540917640 A - - gz as 1- 1 1 1696859910 A - - gz the portable GNU assembler.tc-codel- 8 8 1601484048 A - - gz Controlled-Delay Active Queue Management algorithmxcb_change_gc_checked- 3 3 1540917640 B - - gz change graphics context componentsvimtutor- 1 1 1720542354 A - - gz the Vim tutorstrcasestr- 3 3 1402354212 B - - gz locate a substringreturn 1p- 1p 1p 1402354204 A - - gz return from a functionmalloc_set_state- 3 3 1402354210 B - - gz record and restore state of malloc implementationeuca-modify-network-interface-attribute- 1 1 1484780705 A - - gz Modify an attribute of a VPC network interfacexcb_sync_list_system_counters_reply- 3 3 1540917640 B - - gz printafm- 1 1 1601482853 A - - gz Print the metrics from a Postscript font in AFM format using ghostscriptsshpass- 1 1 1504811181 A - - gz noninteractive ssh password providerposix_trace_eventset_del- 3p 3p 1402354217 B - - gz manipulate trace event type sets (TRACING)lz4- 1 1 1720626732 A - - gz lz4, unlz4, lz4cat - Compress or decompress .lz4 filestruncf truncf 3 truncf 3pfeholdexcept feholdexcept 3 feholdexcept 3ptimelocal- 3 3 1402354213 B - - gz inverses of gmtime and localtimedevel::peekDevel::Peek 3pm 3 1698237673 A - - gz A data debugging tool for the XS programmereulb-register-instances-with-lb- 1 1 1484780705 A - - gz Add one or more instances to a load balancergrub2-glue-efi- 1 1 1722985065 A - - gz Create an Apple fat EFI binary.sigemptyset 3p- 3p 3p 1402354218 A - - gz initialize and empty a signal setxmbufcreatestereowindowXmbufCreateStereoWindow 3 3 1448003986 B - - gz X multibuffering functionsstrndupa- 3 3 1402354212 B - - gz duplicate a stringxcb_get_property_value_length- 3 3 1540917640 B - - gz Gets a window propertyiswblank 3p- 3p 3p 1402354216 A - - gz test for a blank wide-character codewritev writev 2 writev 3prand_load_fileRAND_load_file 3ssl 3 1721417624 A - - gz PRNG seed filexcb_randr_get_crtc_gamma_unchecked- 3 3 1540917640 B - - gz closelog 3- 3 3 1402354208 B - - gz send messages to the system loggermemoize::anydbm_fileMemoize::AnyDBM_File 3pm 3 1698237676 A - - gz glue to provide EXISTS for AnyDBM_File for Storable useeaccess- 3 3 1402354208 B - - gz check effective user's permissions for a filesystemd.automount- 5 5 1711457787 A - - gz Automount unit configurationbn_is_prime_fasttestBN_is_prime_fasttest 3ssl 3 1721417624 B - - gz generate primes and test for primalityiso_8859-8- 7 7 1402354220 A - t gz ISO 8859-8 character set encoded in octal, decimal, and hexadecimalxtregisterextensionselectorXtRegisterExtensionSelector 3 3 1501646833 B - - gz extension event handlingcsinhl 3- 3 3 1402354208 B - - gz complex hyperbolic sineri- 1 1 1373728638 A - - gz Ruby API reference front endmkfifo 1p- 1p 1p 1402354204 A - - gz make FIFO special filessudo- 8 8 1720626758 A - - gz execute a command as another userfcatomiclockFcAtomicLock 3 3 1520307172 A - - gz lock a filexwctextpercharextentsXwcTextPerCharExtents 3 3 1710950786 B - - gz obtain per-character information for a text stringfesetenv fesetenv 3 fesetenv 3pera_invalidate- 8 8 1605543195 A - - gz Provide a list of blocks that have changed since a particular era.xkballocgeompointsXkbAllocGeomPoints 3 3 1710950785 A - - gz Allocate points in an outlinercmd_af- 3 3 1402354211 B - - gz routines for returning a stream to a remote commandumount2- 2 2 1402354206 B - - gz unmount file systemwcsspn 3p- 3p 3p 1402354219 A - - gz get the length of a wide substringtcl_unlinkvarTcl_UnlinkVar 3 3 1448008822 B - - gz link Tcl variable to C variablexrmcombinedatabaseXrmCombineDatabase 3 3 1710950786 B - - gz merge resource databasesbn_bin2bnBN_bin2bn 3ssl 3 1721417624 B - - gz format conversionsgitdiffcore- 7 7 1722330784 A - - gz Tweaking diff outputgetwin_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionfeclearexcept feclearexcept 3 feclearexcept 3pgetopt::stdGetopt::Std 3pm 3 1698237674 A - - gz Process single-character switches with switch clusteringshopt- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)tcsendbreak 3- 3 3 1402354213 B - - gz get and set terminal attributes, line control, get and set baud rateselinux_check_access- 3 3 1585710994 B - - gz query the SELinux policy database in the kernelgitcli- 7 7 1722330784 A - - gz Git command line interface and conventionssetpriority 3p- 3p 3p 1402354215 A - - gz get and set the nice valuexsetimvaluesXSetIMValues 3 3 1710950786 B - - gz open, close, and obtain input method informationdatetime::locale::mn_cyrlDateTime::Locale::mn_Cyrl 3pm 3 1402390637 A - - gz xdr_callmsg- 3 3 1402354213 B - - gz library routines for remote procedure callsbunzip2- 1 1 1533764347 B - - gz a block-sorting file compressor, v1.0.6evp_cipher_ctx_ctrlEVP_CIPHER_CTX_ctrl 3ssl 3 1721417624 B - - gz EVP cipher routinesxcb_dpms_info- 3 3 1540917640 A - - gz idna_to_unicode_44i- 3 3 1448125246 A - - gz API functionbn- 3ssl 3 1699892215 A - - gz multiprecision integer arithmeticsdes_pcbc_encryptDES_pcbc_encrypt 3ssl 3 1721417624 B - - gz DES encryptionxcb_render_query_pict_formats_unchecked- 3 3 1540917640 B - - gz locale::codes::currency_codesLocale::Codes::Currency_Codes 3pm 3 1402383324 A - - gz currency codes for the Locale::Codes::Currency modulecompress::zlibCompress::Zlib 3pm 3 1402361982 A - - gz Interface to zlib compression librarytiffsizeTIFFsize 3tiff 3 1729525165 A - - gz return the size of various items associated with an open TIFF filexcb_record_get_context_intercepted_clients_iterator- 3 3 1540917640 B - - gz ec_group_freeEC_GROUP_free 3ssl 3 1721417624 B - - gz Functions for creating and destroying EC_GROUP objects.win_wchstr- 3x 3 1720626759 B - - gz get an array of complex characters and renditions from a curses windowmousemask- 3x 3 1720626759 B - - gz mouse interface through cursesidlok- 3x 3 1720626759 B - - gz curses output optionsfield_term- 3x 3 1720626759 B - - gz set hooks for automatic invocation by applicationssetenv setenv 3 setenv 3pxcb_change_pointer_control_checked- 3 3 1540917640 B - - gz tiffstripsizeTIFFStripSize 3tiff 3 1729525165 C TIFFstrip - gz tcl_channelblockmodeprocTcl_ChannelBlockModeProc 3 3 1448008821 B - - gz procedures for creating and manipulating channelsxcb_randr_free_lease- 3 3 1540917640 A - - gz xcb_xf86dri_auth_connection- 3 3 1540917640 A - - gz ioctl_list- 2 2 1402354205 A - t gz list of ioctl calls in Linux/i386 kernelxcb_screensaver_notify_event_t- 3 3 1540917640 A - - gz datetime::locale::kyDateTime::Locale::ky 3pm 3 1402390638 A - - gz sem_wait 3p- 3p 3p 1402354218 A - - gz lock a semaphore (REALTIME)err_lib_error_stringERR_lib_error_string 3ssl 3 1721417624 B - - gz obtain human-readable error messageipmaddr- 8 8 1565313023 A - - gz adds, deletes, and displays multicast addressesxkbaddgeomsectionXkbAddGeomSection 3 3 1710950785 A - - gz Add one section to an existing keyboard geometrytcl_createinterpTcl_CreateInterp 3 3 1448008821 A - - gz create and delete Tcl command interpreterspod::simple::dumpasxmlPod::Simple::DumpAsXML 3pm 3 1402365606 A - - gz - turn Pod into XMLhtonl 3p- 3p 3p 1402354216 A - - gz convert values between host and network byte orderfseek 3p- 3p 3p 1402354215 A - - gz reposition a file-position indicator in a streampcre32_free_substring_list- 3 3 1573510868 B - - gz Perl-compatible regular expressionsbtrace- 8 8 1565305324 A - - gz perform live tracing for block devicesip-tunnel- 8 8 1601484048 A - - gz tunnel configurationin.h- 0p 0p 1402354203 A - - gz Internet address familyposix_spawnattr_setschedparam- 3p 3p 1402354216 A - - gz get and set the spawn-schedparam attribute of a spawn attributes object (ADVANCED REALTIME)xtscreenofobjectXtScreenOfObject 3 3 1501646833 B - - gz obtain window information about a widgetssl_library_initSSL_library_init 3ssl 3 1721417624 A - - gz initialize SSL library by registering algorithmstcl_seekTcl_Seek 3 3 1448008822 B - - gz buffered I/O facilities using channelssha224 SHA224 3ssl sha224 1sslclrtobot- 3x 3 1720626759 B - - gz clear all or part of a curses windowcarpCarp 3pm 3 1402362759 A - - gz alternative warn and die for modulescpanplus::shell::classicCPANPLUS::Shell::Classic 3pm 3 1402392266 A - - gz CPAN.pm emulation for CPANPLUStcl_hidecommandTcl_HideCommand 3 3 1448008821 B - - gz manage multiple Tcl interpreters, aliases and hidden commandspwrite 3p- 3p 3p 1402354219 A - - gz write on a filexcb_xvmc_create_subpicture_unchecked- 3 3 1540917640 B - - gz fcweightfromopentypedoubleFcWeightFromOpenTypeDouble 3 3 1520307172 A - - gz Convert from OpenType weight values to fontconfig onesxcb_input_delete_device_property- 3 3 1540917640 A - - gz switch n- n n 1448008824 A - - gz Evaluate one of several scripts, depending on a given valuefgets_unlocked- 3 3 1402354209 B - - gz nonlocking stdio functionsdatetime::locale::az_latn_azDateTime::Locale::az_Latn_AZ 3pm 3 1402390636 A - - gz strftime strftime 3 strftime 3peuca-describe-instance-attribute- 1 1 1484780705 A - - gz Show one of an instance's attributes.rpc 3- 3 3 1402354213 A - - gz library routines for remote procedure callspr pr 1p pr 1xcb_xv_video_notify_event_t- 3 3 1540917640 A - - gz xcb_sync_initialize- 3 3 1540917640 A - - gz keyctl_assume_authority- 3 3 1402366674 A - - gz Assume the authority to instantiate a keytcl_isstandardchannelTcl_IsStandardChannel 3 3 1448008822 B - - gz buffered I/O facilities using channelscomm 1p- 1p 1p 1402354203 A - - gz select or reject lines common to two filesdnssec-revoke- 8 8 1725373373 A - - gz set the REVOKED bit on a DNSSEC keysched_get_priority_max 3p- 3p 3p 1402354218 A - - gz get priority limits (REALTIME)des- 3ssl 3 1699892216 A - - gz DES encryptionposix_spawn_file_actions_adddup2- 3p 3p 1402354216 A - - gz add dup2 action to spawn file actions object (ADVANCED REALTIME)sub::installSub::Install 3pm 3 1402384491 A - - gz install subroutines into packages easilyputp- 3x 3 1720626759 B - - gz curses interfaces to terminfo databasexalloccolorXAllocColor 3 3 1710950786 A - - gz allocate and free colorsxdisplayofomXDisplayOfOM 3 3 1710950786 B - - gz open output methodsdatetime::locale::uz_latn_uzDateTime::Locale::uz_Latn_UZ 3pm 3 1402390639 A - - gz mkpasswd- 1 1 1435097319 A - - gz generate new password, optionally apply it to a userimaxabs 3p- 3p 3p 1402354216 A - - gz return absolute valuelsmd- 1 1 1615908399 A - - gz lsmdfcpatterngetrangeFcPatternGetRange 3 3 1520307172 C FcPatternGet-Type - gz getgrnam_r 3- 3 3 1402354209 B - - gz get group file entrytimer_delete 3p- 3p 3p 1402354219 A - - gz delete a per-process timer (REALTIME)qemu-nbd- 8 8 1652966903 A - - gz QEMU Disk Network Block Device Serverdatetime::locale::tg_tjDateTime::Locale::tg_TJ 3pm 3 1402390643 A - - gz bio_destroy_bio_pairBIO_destroy_bio_pair 3ssl 3 1721417624 B - - gz BIO pair BIOroundf 3- 3 3 1402354212 B - - gz round to nearest integer, away from zerorexec- 3 3 1402354211 A - - gz return stream to a remote commandtcl_fsjointopathTcl_FSJoinToPath 3 3 1448008822 B - - gz procedures to interact with any filesystemxcb_selinux_get_property_use_context_context_length- 3 3 1540917640 B - - gz xcb_map_notify_event_t- 3 3 1540917640 A - - gz a window was mappedctime 3- 3 3 1402354211 A - - gz transform date and time to broken-down time or ASCIIssl_ctx_set_quiet_shutdownSSL_CTX_set_quiet_shutdown 3ssl 3 1721417624 A - - gz manipulate shutdown behavioursemget semget 2 semget 3pdsa_get_ex_new_indexDSA_get_ex_new_index 3ssl 3 1721417624 A - - gz add application specific data to DSA structuresxcb_set_pointer_mapping_reply- 3 3 1540917640 B - - gz lchfn- 1 1 1381614967 A - - gz Change finger informationcache_dump- 8 8 1605543195 A - - gz dump cache metadata from device or file to standard output.tcl_importTcl_Import 3 3 1448008822 B - - gz manipulate namespacesscreennumberofcccScreenNumberOfCCC 3 3 1710950785 B - - gz Color Conversion Context macrosumount 8- 8 8 1612283497 A - - gz unmount file systemstc-sfb- 8 8 1601484048 A - - gz Stochastic Fair Bluetcl_unichartoupperTcl_UniCharToUpper 3 3 1448008822 B - - gz routines for manipulating the case of Unicode characters and UTF-8 stringsjson::ppJSON::PP 3pm 3 1402370164 A - - gz JSON::XS compatible pure-Perl module.ssl_use_certificate_fileSSL_use_certificate_file 3ssl 3 1721417624 B - - gz load certificate and key datapam_succeed_if- 8 8 1585713592 A - - gz test account characteristicsx509_name_add_entry_by_txtX509_NAME_add_entry_by_txt 3ssl 3 1721417624 A - - gz X509_NAME modification functionsxcb_xf86dri_query_version_reply- 3 3 1540917640 B - - gz bio_new_buffer_ssl_connectBIO_new_buffer_ssl_connect 3ssl 3 1721417624 B - - gz SSL BIOdatetimeDateTime 3pm 3 1501652189 A - - gz A date and time objecttc-csum- 8 8 1601484048 A - - gz checksum update actiongetmntent- 3 3 1402354212 A - - gz get file system descriptor file entryxml::libxml::sax::generatorXML::LibXML::SAX::Generator 3pm 3 1402352993 A - - gz Generate SAX events from a LibXML treefile::specFile::Spec 3pm 3 1402373475 A - - gz portably perform operations on file nameserror error 3 Error 3pm error nngettext ngettext 3 ngettext 1encrypt_r- 3 3 1402354208 A - - gz encrypt 64-bit messagesrenice 1- 1 1 1612283497 A - - gz alter priority of running processesrand_egdRAND_egd 3ssl 3 1721417624 A - - gz query entropy gathering daemonmvchgat- 3x 3 1720626759 B - - gz curses character and window attribute control routinessched_getaffinity- 2 2 1402354205 B - - gz set and get a process's CPU affinity maskabrt-action-check-oops-for-hw-error- 1 1 1601569733 A - - gz Checks dmesg element, marks problem as not-reportable if hardware error is detectedtcl_dstringresultTcl_DStringResult 3 3 1448008821 B - - gz manipulate dynamic stringsdatetime::locale::ugDateTime::Locale::ug 3pm 3 1402390633 A - - gz lwres_config- 3 3 1725373371 B - - gz lightweight resolver configurationbn_is_primeBN_is_prime 3ssl 3 1721417624 B - - gz generate primes and test for primalityxcb_input_select_extension_event_checked- 3 3 1540917640 B - - gz xkbselecteventdetailsXkbSelectEventDetails 3 3 1710950785 A - - gz Selects or deselects for a specific Xkb event and optionally places conditions on when events of that type are reported to your clientxkballocdeviceinfoXkbAllocDeviceInfo 3 3 1710950785 A - - gz Obtain an XkbDeviceInfoRec structurefmaxf 3- 3 3 1402354209 B - - gz determine maximum of two floating-point numbersttk::menubutton- n n 1448008912 A - - gz Widget that pops down a menu when pressedstderr 3p- 3p 3p 1402354218 B - - gz standard I/O streamstsearch 3- 3 3 1402354213 A - - gz manage a binary treefgetws fgetws 3 fgetws 3pudev.conf- 5 5 1711457788 A - - gz Configuration for device event managing daemonhttp::dateHTTP::Date 3pm 3 1402363258 A - - gz date conversion routinesimmedok- 3x 3 1720626759 B - - gz curses output optionsxml::libxml::saxXML::LibXML::SAX 3pm 3 1402352994 A - - gz XML::LibXML direct SAX parsercpan::tarzipCPAN::Tarzip 3pm 3 1698237384 A - - gz internal handling of tar archives for CPAN.pmbio_write_filenameBIO_write_filename 3ssl 3 1721417624 B - - gz FILE biotcl_makefilechannelTcl_MakeFileChannel 3 3 1448008822 B - - gz buffered I/O facilities using channelsperlunicode- 1 1 1698237670 A - - gz Unicode support in PerlxtpeekeventXtPeekEvent 3 3 1501646833 B - - gz query and process events and inputxcmsqueryblackXcmsQueryBlack 3 3 1710950786 A - - gz obtain black, blue, green, red, and white CCC color specificationsxcb_dpms_set_timeouts- 3 3 1540917640 A - - gz systemd-update-utmp.service- 8 8 1711457788 A - - gz Write audit and utmp updates at bootup, runlevel changes and shutdownui_add_verify_stringUI_add_verify_string 3ssl 3 1721417624 B - - gz New User Interfacetap::parser::utilsTAP::Parser::Utils 3pm 3 1439389327 A - - gz Internal TAP::Parser utilitiesxcb_damage_add_checked- 3 3 1540917640 B - - gz xcb_query_colors_unchecked- 3 3 1540917640 B - - gz xshmcreateimageXShmCreateImage 3 3 1448003986 B - - gz X Shared Memory extension functionspclose 3p- 3p 3p 1402354216 A - - gz close a pipe stream to or from a processclnt_create- 3 3 1402354208 B - - gz library routines for remote procedure callsintro 4- 4 4 1402354219 A - - gz introduction to special filesbio_get_md_ctxBIO_get_md_ctx 3ssl 3 1721417624 B - - gz message digest BIO filterbio_set_ssl_modeBIO_set_ssl_mode 3ssl 3 1721417624 B - - gz SSL BIOxcb_dri3_buffers_from_pixmap_buffers_end- 3 3 1540917640 B - - gz datetime::locale::kmDateTime::Locale::km 3pm 3 1402390638 A - - gz getopt 3- 3 3 1402354211 A - - gz Parse command-line optionsperlapio- 1 1 1698237663 A - - gz perl's IO abstraction interface.dirs- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)fcconfigfileinfoitergetFcConfigFileInfoIterGet 3 3 1520307172 A - - gz Obtain the configuration file informationgetwc 3- 3 3 1402354210 B - - gz read a wide character from a FILE streamxtappaddtimeoutXtAppAddTimeOut 3 3 1501646833 A - - gz register and remove timeoutsgetaliasent- 3 3 1402354209 B - - gz read an alias entryco- 1 1 1585714623 A - - gz check out RCS revisionstcbmttest- 1 1 1402385697 A - - gz test cases of the B+ tree database APIiso_8859-15- 7 7 1402354220 A - t gz ISO 8859-15 character set encoded in octal, decimal, and hexadecimaleuca-bundle-instance- 1 1 1484780705 A - - gz Bundle an S3-backed Windows instancevdo- 8 8 1601488174 A - - gz manage kernel VDO devices and related configuration informationxsetwmnameXSetWMName 3 3 1710950786 A - - gz set or read a window's WM_NAME propertysetreuid 2- 2 2 1402354206 A - - gz set real and/or effective user or group IDaio_write 3p- 3p 3p 1402354214 A - - gz asynchronous write to a file (REALTIME)posix_madvise- 3p 3p 1402354216 A - - gz memory advisory information and alignment control (ADVANCED REALTIME)isless 3- 3 3 1402354210 B - - gz floating-point relational tests without exception for NaNiswcntrl 3- 3 3 1402354210 A - - gz test for control wide characterxtsetkeytranslatorXtSetKeyTranslator 3 3 1501646833 A - - gz convert KeySym to KeyCodessecurity_get_boolean_active- 3 3 1585710994 B - - gz routines for manipulating SELinux boolean valuesxsetwmcolormapwindowsXSetWMColormapWindows 3 3 1710950786 A - - gz set or read a window's WM_COLORMAP_WINDOWS propertydatetime::locale::sr_latn_rsDateTime::Locale::sr_Latn_RS 3pm 3 1402390644 A - - gz setarch- 8 8 1612283497 A - - gz change reported architecture in new program environment and set personality flagsevp_get_cipherbynameEVP_get_cipherbyname 3ssl 3 1721417624 B - - gz EVP cipher routinessyscalls- 2 2 1402354206 A - t gz Linux system callskernel-command-line- 7 7 1711457788 A - - gz Kernel command line parameterscpan::meta::validatorCPAN::Meta::Validator 3pm 3 1402391978 A - - gz validate CPAN distribution metadata structuresxcb_randr_get_screen_info_sizes_length- 3 3 1540917640 B - - gz xcb_resize_request_event_t- 3 3 1540917640 A - - gz Config 3pm- 3pm 3 1698237672 A - - gz access Perl configuration informationsigblock- 3 3 1402354212 B - - gz BSD signal APIpam_sepermit- 8 8 1585713591 A - - gz PAM module to allow/deny login depending on SELinux enforcement stategetpidcon_raw- 3 3 1585710994 B - - gz get SELinux security context of a processvgscan- 8 8 1619616701 A - - gz Search for all volume groupsslk_noutrefresh_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionfilter::teeFilter::tee 3pm 3 1402353952 A - - gz tee source filterfcblankscreateFcBlanksCreate 3 3 1520307172 A - - gz Create an FcBlankswarnings::register- 3pm 3 1698237678 A - - gz warnings import functionmath::bigint::fastcalcMath::BigInt::FastCalc 3pm 3 1698237675 A - - gz Math::BigInt::Calc with some XS for more speedtest 1- 1 1 1605565487 A - - gz check file types and compare valuestk_bisque- n n 1448008912 A - - gz Modify the Tk color paletteevp_pkey_derive_initEVP_PKEY_derive_init 3ssl 3 1721417624 B - - gz derive public key algorithm shared secret.curs_scanw- 3x 3 1715932338 A - - gz convert formatted input from a curses windowmatchpathcon_checkmatches- 3 3 1585710994 A - - gz check and report whether any specification index has no matches with any inode. Maintenance and statistics on inode associationstk_textcopytk_textCopy n n 1448008912 B - - gz Create and manipulate text widgetsbn_mod_mul_montgomeryBN_mod_mul_montgomery 3ssl 3 1721417624 A - - gz Montgomery multiplicationerr_get_next_error_libraryERR_get_next_error_library 3ssl 3 1699892209 A - - gz load arbitrary error stringsxsettileXSetTile 3 3 1710950786 A - - gz GC convenience routinesxcb_input_xi_passive_ungrab_device_checked- 3 3 1540917640 B - - gz hosts_ctl- 3 3 824054487 C hosts_access - gz sudoers.ldap- 5 5 1720626758 A - - gz sudo LDAP configurationisinfl- 3 3 1402354209 A - - gz BSD floating-point classification functionsnoraw- 3x 3 1720626759 B - - gz curses input optionsxcb_xkb_list_components_reply- 3 3 1540917640 B - - gz xcb_x_print_print_start_page_checked- 3 3 1540917640 B - - gz fcpatterngetintegerFcPatternGetInteger 3 3 1520307172 C FcPatternGet-Type - gz ssl_ctx_use_privatekey_fileSSL_CTX_use_PrivateKey_file 3ssl 3 1721417624 B - - gz load certificate and key dataputc putc 3 putc 3pO #>Wbmatcbxcb_7{ bdate?3>btcl_UXfhbcomm-GW'bdnss|>bsche;yMbdes,K bposiM!]}Lbsub: PHbputp(B5TUbexpo Fރybxdis 9! bdate8ۉbmkpaS O )btget٥WLbfcin8=3bfcpa ; buude| bd2i_{Fbdate23{Pbdate03bbio_{='tbroun Cĺcd2i_}Tcwhit @bbcxflu-Cbrexe<c#btcl_[Tlbxcb_4bbxcb_.XbctimTO*bssl_T%bsemgbdsa_5`cdes_w<:&zcinstŨK/bxcb_뺻credr <[blchf4Jcxcb_\$ebcach Vctiff4րcllroߩ 1 `cjran []Mcssl_e `g(cxkbmҪycasinw .݈btcl_~ 9\÷bscreJĿbtc-sV/`*btcl_v_,cgpic<dcpthr#&p(bjson Idbssl_gRRbHbpam_7P5bx509W:bxcb_ ebbio_>8Lbdate :btc-ca1Pqbgetm @8Rbxml:]Mbfile] Obevp_@MBberroo`bxcb_\@Pbcomp@>Hbeusc@1F2{bTempQAH<bsetsA ;ūbfpriA 6bdhcl;B5obnget {BbpthrBZ[)cpam_YG_Hbtcl_BX bdsa_bC 5beucaC;7bnumaCMebtoasD 5eclogi >occxtseJ [cmvwhZ b+\cgit-ɮ I}cdove:hGcevp_i=ycitem 9mbrpmkAD&čGbisgroD  bfcstD :6ݰbdigeDT[ebxdr_Ϧ]bxkbgML|\cxcry"2ˠcxcb_['cui_c D=ci18nX6cclsofZ*cxicoD@9`sigi9 ΀`xfetf FRN`xcb_{6T`date3X`bool< <"`euca7`stdiщ *T8`xcb_?`mbrt8 KwC`repo Lcv`dd 14unloP.`fdat Q,`ipcmy7^K`xmbuFN``test*`xcb_- `sftpb 0YZU`xcb_`xcms׌KR`qhol4, Y`wechf i%B`lh_nٍ.a`xdr_ Ll`git-rE@N`k5loȎ?[}`lrep=xkbb `termT 63`prin 0o; `xget@Ea`clou[@2ethe Atcl_APcN`xcb_@0QA`setf@ I{`date@A3j`isloA <y`xcb_A+:`xcb_B"`xkbgOB{`dateC3>l`xcb_QC,8`setp͏ St`contC ?m `timeC-`instD 2n`flusSD A}`pemDS`run-DQC`patcE;j`mknoXE-`freexE 9`slk_E ;Iy`sefcFH]2`allo]FFe`net:F R`sha1G -`wc_=G E!`fpriLGO{Q`utmpG Ax`dracG=v`lynx9HcT`xcb_H"K`nfsiH`date I0c`cpanPI_v`xcb_I_`xsetI Dn``sqrtHJ 1/`bn_hJ 8I`pthrJBsd`tee %KZ Y-`xttoK^p`irbK1)`clon2L13q`xcb_iL%̣`getpLL;`getgL"@`seliLRgR`clntQM F|`iptaMSJ`neti N `read8N A`xdesN6h`xcb_N'L`xkbpNo#@`xcb_{O%4`ui_apC`exp2O6d`popeXp G`hunsp J`mranp QD`xcb_Yq$w`vdirq2G`memsq 0h0c`opti r 3`wcscFrYVY`ccosr(`xtaprYxcb_pZ,`rcmd4sN6`dlcls 2xfs_ 4pthr)[8xgetp[umq_g[ ;Ǝ`pam_s ,Qr`sem_s mkfs} :getl\ +`syst(t%`tempWferr2 5{%`datet3{F`datet3C`ssl_Cubhrk`tc-pu Cstri]'pcre]>utim  C ,`strt v G`pid]v7z&`optav 5/`stpcvG``lati$w^sum Bc`lconw Q!B|`des_w XǪy`pthrGx@}b`perl,y 5h`eucax>1`remqx`vfycy d`futey*S`tcl_kyV-`xkbkAz2Ώy xkbs0racrypz[jbatap:D{ Hadisp{C[afclo{ 1ߕXaxcb_%|#^Waxcb_c|Zӈaperl|3apod:|U/Latiff>}46Tagit-}F amysq} 22amdig~7iaperlO~ 3Passl_~`aftok\b3asigef qqaURI Qafsta ,JCadepm5 =D4atko{7^asigs.~6asyst3dateB53curs[ Katty p/yaxcb_5p-sshdO-xcb_48axcb_pB,ahugep :axcb_pl8apthr,qFbanet:q 6*.kapam_q 7axcb_ r&jateamLrE&aset_r8hxPassl_r^kdasyncRs82xamadvs:Xamq_ts<2apthr(t$unam /lckp-9Lagetc[tgetcй?free; 4sqrt /bn_gWTbio_Haec_ktteatcl_uchatcl_u[qadateu0t8axkbs3vYaxcb_v{ adatew3@apwunPw JzJatcl_wc!|aevp_xQNEabrea}x"[afstax5:acprox 9Wacarg$y7( apthrcyBYaxdbey Lxcb_ 4axcb_zCaxcb_?z#ratcl_}zUSatzsez8axcb_z0awctrJ{ 5Aafcch{<3f;acurs{Rg>alibn:| + fafreeo|Djassl_|Toaxkbs#} ivatype} C~gautf-}"axcb_} )oarand/~;0zatcl_r~ N'akeyc~ Jx509 [tcl_~ ;modu Ww atime  ;\acasig 6mkfs Batcl_CEafsynbanice2uCagetoQ 'agit- ;awatcɀ <euar #Excb_ ,axcb_*mallH ?aperlU 0.aperl Mpasetj @pod: Nxcb_v f|apem_0%Mres_ ,{aapp: Elwp:u h)`aext39@8aterm0<wrastrn{ FZaxcb_̃.axcb_avgckHCMaripeDGbaxcb_30ascal2 Y߅apico9wHamvge؅ Ram4a3 %adelvB<daxttoȌ_0alio_; :{]adate3 |afcch͍69latcl_M/8axcb_~!wastrd -axcb_OIassl_*Iʊaulim :auuid9ŷasubuL3@?atige BfAamajoҐ1t=Haposi KXaxsegi Jaenvi A@eaxdbe ^LaencozG*%aevp_ВWӽeagit-= =tty 4- 4 4 1402354219 A - - gz controlling terminalxcb_configure_notify_event_t- 3 3 1540917640 A - - gz NOT YET DOCUMENTEDxcb_get_pointer_control- 3 3 1540917640 A - - gz huge_valHUGE_VAL 3 3 1402354206 B - - gz floating-point constantsxcb_glx_set_client_info_arb- 3 3 1540917640 A - - gz pthread_rwlock_trywrlock- 3p 3p 1402354217 B - - gz lock a read-write lock object for writingnet::nntpNet::NNTP 3pm 3 1698237676 A - - gz NNTP Client classpam_info- 3 3 1585713595 A - - gz display messages to the userxcb_glx_get_drawable_attributes_reply- 3 3 1540917640 B - - gz teamnl- 8 8 1544345838 A - - gz team network device Netlink interface toolset_form_page- 3x 3 1720626759 B - - gz set and get form page numberssl_alert_type_stringSSL_alert_type_string 3ssl 3 1721417624 A - - gz get textual description of alert informationsync_file_range2- 2 2 1402354206 B - - gz sync a file segment with diskmadvise- 2 2 1402354205 A - - gz give advice about use of memorymq_timedsend 3- 3 3 1402354211 B - - gz send a message to a message queuepthread_cancel pthread_cancel 3 pthread_cancel 3pgetcwd getcwd 3 getcwd 2 getcwd 3pec_key_get_conv_formEC_KEY_get_conv_form 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_KEY objects.tcl_channelsetoptionprocTcl_ChannelSetOptionProc 3 3 1448008821 B - - gz procedures for creating and manipulating channelstcl_dowhenidleTcl_DoWhenIdle 3 3 1448008821 B - - gz invoke a procedure when there are no pending eventsdatetime::locale::gvDateTime::Locale::gv 3pm 3 1402390644 A - - gz xkbselecteventsXkbSelectEvents 3 3 1710950785 A - t gz Selects and / or deselects for delivery of one or more Xkb events and has them delivered under all conditionsxcb_xv_put_image- 3 3 1540917640 A - - gz datetime::locale::ig_ngDateTime::Locale::ig_NG 3pm 3 1402390642 A - - gz pwunconv- 8 8 1565319053 B - - gz convert to and from shadow passwords and groupstcl_unichariscontrolTcl_UniCharIsControl 3 3 1448008823 B - - gz routines for classification of Tcl_UniChar charactersevp_pkey_decryptEVP_PKEY_decrypt 3ssl 3 1721417624 A - - gz decrypt using a public key algorithmbreak break n break 2 break 1p break 1fstatfs- 2 2 1402354206 A - - gz get file system statisticscproj 3p- 3p 3p 1402354214 A - - gz complex projection functionscarg 3p- 3p 3p 1402354214 A - - gz complex argument functionspthread_cancel 3- 3 3 1402354211 A - - gz send a cancellation request to a threadxdbeendidiomXdbeEndIdiom 3 3 1448003986 A - - gz marks the end of a DBE idiom sequence.xcb_render_composite- 3 3 1540917640 A - - gz xcb_glx_get_pixel_mapuiv_unchecked- 3 3 1540917640 B - - gz tcl_threadqueueeventTcl_ThreadQueueEvent 3 3 1448008822 B - - gz the event queue and notifier interfacestzset tzset 3 tzset 3pxcb_input_get_device_key_mapping_keysyms_length- 3 3 1540917640 B - - gz wctrans 3p- 3p 3p 1402354219 A - - gz define character mappingfccharsetequalFcCharSetEqual 3 3 1520307172 A - - gz Compare two charsetscurses::ui::windowCurses::UI::Window 3pm 3 1454728582 A - - gz Create and manipulate Window widgetslibnetcfg- 1 1 1698237679 A - - gz configure libnetfreecon- 3 3 1585710994 B - - gz get SELinux security context of a processssl_set_cipher_listSSL_set_cipher_list 3ssl 3 1699892220 A - - gz choose list of available SSL_CIPHERsxkbsetmapXkbSetMap 3 3 1710950785 A - t gz Send a complete new set of values for entire components to the server.type_integerTYPE_INTEGER 3x 3 1720626759 B - - gz form system global variablesutf-8 UTF-8 7 utf-8 7xcb_force_screen_saver- 3 3 1540917640 A - - gz rand 3p- 3p 3p 1402354218 A - - gz pseudo-random number generatortcl_joinpathTcl_JoinPath 3 3 1448008822 B - - gz manipulate platform-dependent file pathskeyctl 2- 2 2 1402354205 A - - gz manipulate the kernel's key management facilitytimedatectl- 1 1 1711457787 A - - gz Control the system time and datecasinhl 3- 3 3 1402354207 B - - gz complex arc sine hyperbolictcl_getobjtypeTcl_GetObjType 3 3 1448008822 B - - gz manipulate Tcl object typesfsync fsync 2 fsync 3pnice 2- 2 2 1402354205 A - - gz change process prioritygetopt 3pm- 3pm 3 1698237674 C Getopt::Std - gz git-bundle- 1 1 1722330782 A - - gz Move objects and refs by archivewatchgnupg- 1 1 1531487121 A - - gz Read and print logs from a socketxcb_composite_redirect_subwindows_checked- 3 3 1540917640 B - - gz perlport- 1 1 1698237667 A - - gz Writing portable Perlperlreguts- 1 1 1698237667 A - - gz Description of the Perl regular expression engine.setjmp 3p- 3p 3p 1402354218 A - - gz set jump point for a non-local gotopem_write_bio_netscape_cert_sequencePEM_write_bio_NETSCAPE_CERT_SEQUENCE 3ssl 3 1721417624 B - - gz PEM routinesapp::proveApp::Prove 3pm 3 1439389327 A - - gz Implements the "prove" command.ext3- 5 5 1711459141 B - - gz the third extended file systemterm_variables- 3x 3 1715932340 A - - gz curses terminfo global variablesstrncat 3p- 3p 3p 1402354218 A - - gz concatenate a string with part of anotherxcb_selinux_get_device_context_context_length- 3 3 1540917640 B - - gz xcb_no_exposure_event_t- 3 3 1540917640 A - - gz vgck- 8 8 1619616701 A - - gz Check the consistency of volume group(s)ripemd160_finalRIPEMD160_Final 3ssl 3 1721417624 B - - gz RIPEMD-160 hash functionxcb_x_print_print_get_printer_list_printers_length- 3 3 1540917640 B - - gz scalar::utilScalar::Util 3pm 3 1402358219 A - - gz A selection of general-utility scalar subroutinespiconv- 1 1 1402368576 A - - gz - iconv(1), reinvented in perlmvgetstr- 3x 3 1720626759 B - - gz accept character strings from curses terminal keyboardm4 m4 1p m4 1delv- 1 1 1725373372 A - - gz DNS lookup and validation utilityevp_des_ofbEVP_des_ofb 3ssl 3 1721417624 B - - gz EVP cipher routinesfsck.ext4- 8 8 1711459140 B - - gz check a Linux ext2/ext3/ext4 file systemxcb_glx_get_tex_gendv_data- 3 3 1540917640 B - - gz xcb_xkb_get_names_unchecked- 3 3 1540917640 B - - gz threads::shared- 3pm 3 1402380426 A - - gz Perl extension for sharing data structures between threadsrequest_set- 3 3 824054487 C hosts_access - gz tis-620- 7 7 1402354220 B - t gz ISO 8859-11 character set encoded in octal, decimal, and hexadecimalgit-grep- 1 1 1722330781 A - - gz Print lines matching a patterngetc 3p- 3p 3p 1402354215 A - - gz get a byte from a streamwordfree 3- 3 3 1402354213 B - - gz perform word expansion like a posix-shelleuscale-put-scaling-policy- 1 1 1484780705 A - - gz Create or update an auto-scaling group's scaling policyxcb_sync_create_counter- 3 3 1540917640 A - - gz filter::util::callFilter::Util::Call 3pm 3 1402353952 A - - gz Perl Source Filter Utility Moduledatetime::locale::eu_esDateTime::Locale::eu_ES 3pm 3 1402390640 A - - gz putenv 3p- 3p 3p 1402354217 A - - gz change or add a value to an environmentposix_trace_open- 3p 3p 1402354217 A - t gz trace log management (TRACING)wmemcpy 3- 3 3 1402354213 A - - gz copy an array of wide-charactersxpixmapformatvaluesXPixmapFormatValues 3 3 1710950785 B - - gz image format functions and macrosbio_ctrl_pendingBIO_ctrl_pending 3ssl 3 1721417624 B - - gz BIO control operationsfadvise64- 2 2 1402354204 B - - gz predeclare an access pattern for file datasudoers- 5 5 1711647470 A - - gz default sudo security policy pluginxttoolkitinitializeXtToolkitInitialize 3 3 1501646833 B - - gz create, destroy, and obtain an application contextlio_listio 3- 3 3 1402354210 A - - gz initiate a list of I/O requestsdatetime::locale::ne_inDateTime::Locale::ne_IN 3pm 3 1402390637 A - - gz fccharsetmergeFcCharSetMerge 3 3 1520307172 A - - gz Merge charsetstcl_setnamespaceunknownhandlerTcl_SetNamespaceUnknownHandler 3 3 1448008822 B - - gz manipulate namespacesxcb_selinux_get_property_context- 3 3 1540917640 A - - gz strdup 3- 3 3 1402354212 A - - gz duplicate a stringxcb_input_close_device_checked- 3 3 1540917640 B - - gz ssl_get_client_ca_listSSL_get_client_CA_list 3ssl 3 1721417624 A - - gz get list of client CAsulimit 1p- 1p 1p 1402354204 A - - gz set or report file size limituuid_generate_time- 3 3 1612283497 B - - gz create a new unique UUID valuesubuid- 5 5 1565319053 A - - gz the subordinate uid filetigetflag- 3x 3 1720626759 B - - gz curses interfaces to terminfo databasemajor- 3 3 1402354210 B - - gz manage a device numberposix_typed_mem_open- 3p 3p 1402354217 A - - gz open a typed memory object (ADVANCED REALTIME)xsegmentXSegment 3 3 1710950786 B - - gz draw lines, polygons, and line structureenvironment- 5 5 1585713588 B - - gz the environment variables config filesxdbefreevisualinfoXdbeFreeVisualInfo 3 3 1448003986 A - - gz frees information returned by XdbeGetVisualInfo().encode::localeEncode::Locale 3pm 3 1402345690 A - - gz Determine the locale encodingevp_pkey_ctx_ctrl_strEVP_PKEY_CTX_ctrl_str 3ssl 3 1721417624 B - - gz algorithm specific control operationsgit-sh-setup- 1 1 1722330782 A - - gz Common Git shell script setup codexcb_randr_get_screen_info_sizes- 3 3 1540917640 B - - gz wcspbrk 3p- 3p 3p 1402354219 A - - gz scan a wide-character string for a wide-character codecolsCOLS 3x 3 1720626759 B - - gz curses global variablesbindtags- n n 1448008911 A - - gz Determine which bindings apply to a window, and order of evaluationkill 3p- 3p 3p 1402354216 A - - gz send a signal to a process or a group of processespwck- 8 8 1565319053 A - - gz verify integrity of password filesevp_md_ctx_destroyEVP_MD_CTX_destroy 3ssl 3 1721417624 B - - gz EVP digest routineseulb-disable-zones-for-lb- 1 1 1484780705 A - - gz Remove a load balancer from one or more availability zonesdatetime::locale::sr_baDateTime::Locale::sr_BA 3pm 3 1402390643 A - - gz xcb_glx_read_pixels- 3 3 1540917640 A - - gz xtsetmulticlicktimeXtSetMultiClickTime 3 3 1501646833 A - - gz set and get multi-click timesgettimeofday gettimeofday 2 gettimeofday 3pualarm 3- 3 3 1402354213 A - - gz schedule signal after given number of microsecondsxdr_destroy- 3 3 1402354213 B - - gz library routines for external data representationregex 7- 7 7 1402354220 A - t gz POSIX.2 regular expressionsmatchpathcon_filespec_eval- 3 3 1585710994 B - - gz check and report whether any specification index has no matches with any inode. Maintenance and statistics on inode associationsdatetime::locale::fi_fiDateTime::Locale::fi_FI 3pm 3 1402390634 A - - gz exportfs- 8 8 1634214566 A - - gz maintain table of exported NFS file systemstgetnum- 3x 3 1720626759 B - - gz direct curses interface to the terminfo capability databasefcinitFcInit 3 3 1520307172 A - - gz initialize fontconfig libraryuudecode uudecode 1p uudecode 1d2i_ecpkparametersd2i_ECPKParameters 3ssl 3 1721417624 A - - gz Functions for decoding and encoding ASN1 representations of elliptic curve entitiesdatetime::locale::am_etDateTime::Locale::am_ET 3pm 3 1402390635 A - - gz d2i_dsapublickeyd2i_DSAPublicKey 3ssl 3 1721417624 A - - gz DSA key encoding and parsing functions.whitepixelWhitePixel 3 3 1710950785 B - - gz Display macros and functionsxflushXFlush 3 3 1710950786 A - - gz handle output buffer or event queuedes_string_to_keyDES_string_to_key 3ssl 3 1721417624 B - - gz DES encryptioninstr- 3x 3 1720626759 B - - gz get a string of characters from a curses windowredrawwin- 3x 3 1720626759 B - - gz refresh curses windows and linesxcb_glx_set_client_info_arb_checked- 3 3 1540917640 B - - gz tifftilerowsizeTIFFTileRowSize 3tiff 3 1729525165 C TIFFtile - gz llroundf llroundf 3 llroundf 3pjrand48_r- 3 3 1402354210 B - - gz generate uniformly distributed pseudo-random numbers reentrantlyssl_ctx_ctrlSSL_CTX_ctrl 3ssl 3 1721417624 A - - gz internal handling functions for SSL_CTX and SSL objectsxkbmodactionvmodsXkbModActionVMods 3 3 1710950785 A - - gz Returns the vmods1 and vmods2 fields of act converted to the vmods format of an Xkb modifier descriptionasinf 3p- 3p 3p 1402354214 B - - gz arc sine functiontgammal 3p- 3p 3p 1402354218 A - - gz compute gamma() functionlogin 3- 3 3 1402354210 A - - gz write utmp and wtmp entriesevp_pkey_freeEVP_PKEY_free 3ssl 3 1699892210 A - - gz private key allocation functions.euscale-describe-process-types- 1 1 1484780705 A - - gz List all types of scaling processesgpic- 1 1 1533764324 B - - gz compile pictures for troff or TeXpthread_sigmask pthread_sigmask 3 pthread_sigmask 3ppam_sm_authenticate- 3 3 1585713595 A - - gz PAM service function for user authenticationlogin.defs- 5 5 1565319053 A - - gz shadow password suite configurationxtsetkeyboardfocusXtSetKeyboardFocus 3 3 1501646833 A - - gz focus events on a child widgetmvwhline_set- 3x 3 1720626759 B - - gz create curses borders or lines using complex characters and renditionsgit-rerere- 1 1 1722330781 A - - gz Reuse recorded resolution of conflicted mergesdovecot-sysreport- 1 1 1724195936 A - - gz Dovecot's system report utilityevp_ripemd160EVP_ripemd160 3ssl 3 1721417624 B - - gz EVP digest routinesitem_index- 3x 3 1720626759 B - - gz set and get current_menu_itemxcb_poly_line- 3 3 1540917640 A - - gz draw linesxcb_set_input_focus- 3 3 1540917640 A - - gz Sets input focusxcb_get_property_value_end- 3 3 1540917640 B - - gz Gets a window propertypam_sm_close_session- 3 3 1585713595 A - - gz PAM service function to terminate session managementxcrypt- 3 3 1402354213 A - - gz RFS password encryptionxcb_input_get_device_key_mapping_reply- 3 3 1540917640 B - - gz ui_compat- 3ssl 3 1699892218 A - - gz Compatibility user interface functionsi18n::langtags::detectI18N::LangTags::Detect 3pm 3 1698237674 A - - gz detect the user's language preferenceslsof- 8 8 1540916898 A - - gz list open filesxiconifywindowXIconifyWindow 3 3 1710950786 A - - gz manipulate top-level windowsxcb_randr_query_provider_property_unchecked- 3 3 1540917640 B - - gz units- 7 7 1402354220 A - t gz decimal and binary prefixesO _0bxcb_bxcb_7pFbxtseJ>btcl_UXfhbcomm-GW'bdnss|>bsche;yMbdes,K bposiM!]}Lbsub: PHbputp(BCbgettp ރybxdis 9! bdate8ۉbmkpaS O bimax 26blsmd3bfcpa ;wbuala M\bxdr_ LbregeK6{Pbdate03bbio_{='tbroun Cdate}h3expehdateh0brexe<c#btcl_[Tlbxcb_4bbxcb_.XbctimTO*bssl_T%bsemgbdsa_5`buf_0k Ffsck >/bxcb_dbi:V[blchf4ecpkeebcach Vinb_^l#ssh-l /pem_l Hdate(m3xcb_sm"errnm /݈btcl_~ 9\÷bscreJ8Lbdate :btc-ca1Pqbgetm @8Rbxml:]Mbfile] Obevp_@MBberroo`bxcb_\@Pbcomp@>Hbeusc@1F2{bTempQAH<bsetsA ;ūbfpriA 6bdhcl;B5obnget {BbpthrBZiso_Qi __Hbtcl_BX bdsa_bC 5beucaC;7bnumaCMebtoasD 5xwmh3 vhwcl74@tcl_4 @xcb_4$imag 5 Xdatel50tcl_5QmbrpmkAD&čGbisgroD  bfcstD :6ݰbdigeDT[ebxdr_6bpthr]F@C4btwalF/io::9 Vxcb_4:%'bxcb_F,blist8G ]Gbtcl_G 7"bxdr_G L:vbrena8H @RMbxcb_H(is_c<b)bclntH FϦ]bxkbgMLspri? 3lrouU? Cuif?0drac@Jtc-pc@)des_@Adate@0ZbxtofM YIڔbxcb_uMbdateM8&bpam_NHbbxcb_RN:-bdateN05bsnmpNT{zGbdateOO3CTbxcb_O +vbxcb_ 9?bwcsp; S\Nbcols62bbindԠ ^9 bxcb_bkill;O;bxallo =bbpwck=GbgetgY /VgbkeycfDKKbevp_ԡBkbeulb)U??btimeB>Wbmatc5TUbexpo F{bdate3{ bdate?3nbqemu @ )btget٥WLbfcin8= buude| bd2i_{Fbdate23 2bĺcd2i_}Tcwhit @bbcxflu-Ccdes_w<:&zcinstŨK뺻credr <Jcxcb_\$ctiff4րcllroߩ 1 `cjran []Mcssl_e `g(cxkbmҪycasinw .ccoshO2ctgam 5|clogi6cevp_,K/ceusc>_,cgpic<dcpthr#&[)cpam_YGeclogi >occxtseJ [cmvwhZ b+\cgit-ɮ I}cdove:hGcevp_i=ycitem 9V5cxcb_%cxcb_3+cxcb_r1]cpam_O|\cxcry"2ˠcxcb_['cui_c D=ci18nX6cclsofZ*cxicoD5cunit#6Xchead9A cfgetA5(^,cshmd"cteli/h|cpwmafGxcrecvB <*mctcl_Ks{cdmraNBcliboD RJcstrlQcmvwg [%dcenvz$ 5;clhasd0t^.cperl Xcdb_r 7cctc-fA<ncfiel O`croun Zµcsvc_DFy+cpcre>7}cmenu AJcgetp( 7csigih7kcxlisBcsign -Kcsigl> AD6cxcb_#1ctune 34clvm. 6hcxcb_Gcptas~ ?jcgeta.B csudo2nqcxtre dcdate0 ctcl_^Ecxcb_TK}cxcb_$ϳcgetk I{cdate!3b\cxcb_l-{b3cdate3ccunicn/;chashAVcperl Hcform'0Jc_trai5[cbe32Xckill  =a`cgetgS hcputst;cxcliJecwcsscmysq/ 6jcpthrr4;rccursLl8cenvi +~cchdi_3 Ocgetp)3ccexp+VcjsoncbctempWcgrabSxeviRslk_W 6rema/bn_r>XScj0f^=9cupdw ;<csidgF cqmsg07time2fVcpstrl6streEYxcb_%(sha2h =GcbootVxkbsicxshm GrounLcjwho`7euwa(extu]Ienv Bcunli 5ipc 74xcb_Y#setrq Estrf&Z ?tcaddc ZFcmvin@ O'cxcb_8cxtun5Qcxcb_6$VcselauNCclogw;date;\4ocfcst 5pcxselTL/eclvmd L2cevp_ 'h bckeyc;Xcxfil IQcdateI8endn  ,perl =eulb]L.hcgcvtpcre]>cpioaxcb_autim  CdateU 0ӵGcio:: H~[cx509VUcuri:k C#A%ctiff 1s4clvco 7ckmem7H cpty4BEcevp_ b!=cec_k>tcgpg-BOʵcxcb_41ceuarVlcevp_Hhead 1p- 1p 1p 1402354204 A - - gz copy the first part of filesfgetws_unlocked- 3 3 1402354209 B - - gz nonlocking stdio functionsshmdt shmdt 2 shmdt 3ptelinit- 8 8 1711457788 A - - gz Change SysV runlevelpwmake- 1 1 1320932624 A - - gz simple tool for generating random relatively easily pronounceable passwordsrecvfrom 3p- 3p 3p 1402354217 A - - gz receive a message from a sockettcl_listobjreplaceTcl_ListObjReplace 3 3 1448008822 B - - gz manipulate Tcl objects as listsdmraid.static- 8 8 1478390957 B - - gz discover, configure and activate software (ATA)RAIDlibopenjp2- 3 3 1554209115 A - - gz a library for reading and writing JPEG2000 image files.strlen strlen 3 strlen 3pmvwgetn_wstr- 3x 3 1720626759 B - - gz get an array of wide characters from a curses terminal keyboardenvz_merge- 3 3 1402354208 B - - gz environment string supportlhash- 3ssl 3 1699892217 A - - gz dynamic hash tableperlintern- 1 1 1698237666 A - - gz autogenerated documentation of purely internal Perl functionsdb_replicate- 1 1 1481720638 A - - gz Provide replication servicestc-flow- 8 8 1601484048 A - - gz flow based traffic control filterfield_count- 3x 3 1720626759 B - - gz make and break connections between fields and formsroundl 3p- 3p 3p 1402354218 B - - gz round to the nearest integer value in a floating-point formatsvc_getreqset- 3 3 1402354212 B - - gz library routines for remote procedure callspcre32- 3 3 1501643278 A - - gz Perl-compatible regular expressionsmenu_grey- 3x 3 1720626759 B - - gz color and attribute control for menusgetpcaps- 8 8 1699264317 A - - gz display process capabilitiessigismember 3- 3 3 1402354212 B - - gz POSIX signal set operations.xlistinstalledcolormapsXListInstalledColormaps 3 3 1710950786 B - - gz control colormapssigngam 3- 3 3 1402354212 B - - gz log gamma functionsiglongjmp 3- 3 3 1402354210 A - - gz nonlocal jump to a saved stack contextxcb_glx_delete_queries_arb_checked- 3 3 1540917640 B - - gz tuned.conf- 5 5 1553206246 A - - gz Tuned profile definitionlvm.conf- 5 5 1619616701 A - - gz Configuration file for LVM2xcb_input_hierarchy_event_t- 3 3 1540917640 A - - gz ptaskset- 1 1 1478382707 A - - gz getaliasbyname- 3 3 1402354209 B - - gz read an alias entrysudo-ldap.conf- 5 5 1720626758 B - - gz sudo LDAP configurationxtregisterdrawableXtRegisterDrawable 3 3 1501646833 A - - gz register a drawable with the Intrinsics event dispatcherdatetime::locale::hiDateTime::Locale::hi 3pm 3 1402390636 A - - gz tcl_getencodingsearchpathTcl_GetEncodingSearchPath 3 3 1448008821 B - - gz procedures for creating and using encodingsxcb_render_add_glyphs_checked- 3 3 1540917640 B - - gz xcb_input_get_device_property_reply- 3 3 1540917640 B - - gz getkeycodes- 8 8 1637771557 A - - gz print kernel scancode-to-keycode mapping tabledatetime::locale::en_mtDateTime::Locale::en_MT 3pm 3 1402390636 A - - gz xcb_circulate_notify_event_t- 3 3 1540917640 A - - gz NOT YET DOCUMENTEDdatetime::locale::ar_omDateTime::Locale::ar_OM 3pm 3 1402390639 A - - gz unicode::collate::cjk::gb2312Unicode::Collate::CJK::GB2312 3pm 3 1698237678 A - - gz weighting CJK Unified Ideographs for Unicode::Collatehash 1p- 1p 1p 1402354204 A - - gz remember or report utility locationsperlutil- 1 1 1698237670 A - - gz utilities packaged with the Perl distributionform_field_buffer- 3x 3 1720626759 A - - gz field buffer control_tracechtype2- 3x 3 1720626759 B - - gz curses debugging routinesbe32toh- 3 3 1402354207 B - - gz convert values between host and big-/little-endian byte orderkillwchar- 3x 3 1720626759 B - - gz curses environment query routinesgetgrent getgrent 3 getgrent 3pputs 3- 3 3 1402354211 A - - gz output of characters and stringsxclientmessageeventXClientMessageEvent 3 3 1710950786 A - - gz ClientMessage event structurewcsstr wcsstr 3 wcsstr 3pmysql.server- 1 1 1697025034 A - t gz MySQL server startup scriptpthread_mutex_lock- 3p 3p 1402354217 A - - gz lock and unlock a mutexenviron 7- 7 7 1402354219 A - - gz user environmentcurses::ui::widgetCurses::UI::Widget 3pm 3 1454728582 A - - gz The base class for all widgetschdir 2- 2 2 1402354204 A - - gz change working directoryevp_cipher_param_to_asn1EVP_CIPHER_param_to_asn1 3ssl 3 1721417624 B - - gz EVP cipher routinescexp cexp 3 cexp 3pjson::backportpp::compat5006JSON::backportPP::Compat5006 3pm 3 1402382640 A - - gz Helper module in using JSON::PP in Perl 5.6template::namespace::constantsTemplate::Namespace::Constants 3pm 3 1402357151 A - - gz Compile time constant foldinggrab- n n 1448008912 A - - gz Confine pointer and keyboard events to a window sub-treej0f- 3 3 1402354210 B - - gz Bessel functions of the first kindupdwtmpx- 3 3 1402354213 B - - gz append an entry to the wtmp filesidget- 3 3 1585710994 B - - gz obtain and manipulate SELinux security ID'sqmsg- 1p 1p 1402354204 A - - gz send message to batch jobspstree- 1 1 1601486412 A - - gz display a tree of processesbootchart.conf- 5 5 1711457788 A - - gz Boot performance analysis graphing tool configuration filesxshmdetachXShmDetach 3 3 1448003986 B - - gz X Shared Memory extension functionsjwhois- 1 1 1583449613 A - - gz client for the whois serviceunlink 1p- 1p 1p 1402354204 A - - gz call the unlink functionaddchstr- 3x 3 1720626759 B - - gz add a string of characters (and attributes) to a curses windowmvins_nwstr- 3x 3 1720626759 B - - gz insert a wide-character string into a curses windowxcb_get_selection_owner_reply- 3 3 1540917640 B - - gz Gets the owner of a selectionxtungrabpointerXtUngrabPointer 3 3 1501646833 B - - gz manage grabsxcb_glx_get_convolution_parameteriv- 3 3 1540917640 A - - gz selabel_lookup- 3 3 1585710994 A - - gz obtain SELinux security context from a string labellogwtmp- 3 3 1402354210 B - - gz append an entry to the wtmp filefcstrcopyFcStrCopy 3 3 1520307172 A - - gz duplicate a stringxselectioncleareventXSelectionClearEvent 3 3 1710950786 A - - gz SelectionClear event structurelvmdiskscan- 8 8 1619616701 A - - gz List devices that may be used as physical volumesevp_pkey_ctx_set_ec_paramgen_curve_nidEVP_PKEY_CTX_set_ec_paramgen_curve_nid 3ssl 3 1721417624 B - - gz algorithm specific control operationskeyctl_join_session_keyring- 3 3 1402366674 A - - gz Join a different session keyringxfiltereventXFilterEvent 3 3 1710950786 A - - gz filter X events for an input methoddatetime::locale::sr_latn_yuDateTime::Locale::sr_Latn_YU 3pm 3 1402390640 A - - gz gcvt gcvt 3 gcvt 3pio::pollIO::Poll 3pm 3 1698237674 A - - gz Object interface to system poll callx509_verify_certX509_verify_cert 3ssl 3 1699892215 A - - gz discover and verify X509 certificte chainuri::splitURI::Split 3pm 3 1402351652 A - - gz Parse and compose URI stringstiffistiledTIFFIsTiled 3tiff 3 1729525165 C TIFFquery - gz lvconvert- 8 8 1619616701 A - - gz Change logical volume layoutkmem- 4 4 1402354219 B - - gz system memory, kernel memory and system portspty- 7 7 1402354220 A - - gz pseudoterminal interfacesevp_pkevp_pkey_ctx_set_app_dataEVP_PKEVP_PKEY_CTX_set_app_data 3ssl 3 1721417624 B - - gz key and parameter generation functionsec_key_set_asn1_flagEC_KEY_set_asn1_flag 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_KEY objects.gpg-preset-passphrase- 1 1 1531487121 A - - gz Put a passphrase into gpg-agent's cachexcb_reparent_notify_event_t- 3 3 1540917640 A - - gz euare-usermodcert- 1 1 1484780705 A - - gz Change the status of a signing certificate from Active to Inactive, or vice versagetpass- 3 3 1402354209 A - - gz get a passwordradiobutton- n n 1448008912 A - - gz Create and manipulate radiobutton widgetslsusb- 8 8 1448009334 A - - gz list USB devicessavetty- 3x 3 1720626759 B - - gz low-level curses routinesbio_free_allBIO_free_all 3ssl 3 1721417624 B - - gz BIO allocation and freeing functionsxopenomXOpenOM 3 3 1710950786 A - - gz open output methodsbio_s_fdBIO_s_fd 3ssl 3 1721417624 A - - gz file descriptor BIOx509_verify_param_set_trustX509_VERIFY_PARAM_set_trust 3ssl 3 1721417624 B - - gz X509 verification parameterssetcon- 3 3 1585710994 B - - gz get SELinux security context of a processxforcescreensaverXForceScreenSaver 3 3 1710950786 B - - gz manipulate the screen saverrunlevel- 8 8 1711457788 A - - gz Print previous and current SysV runlevelmvaddnwstr- 3x 3 1720626759 B - - gz add a string of wide characters to a curses window and advance cursordatetime::locale::ro_roDateTime::Locale::ro_RO 3pm 3 1402390633 A - - gz attron- 3x 3 1720626759 B - - gz curses character and window attribute control routinesx509_store_ctx_initX509_STORE_CTX_init 3ssl 3 1721417624 B - - gz X509_STORE_CTX initialisationxcb_render_tri_fan_checked- 3 3 1540917640 B - - gz trap 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)perl588delta- 1 1 1698237679 A - - gz what is new for perl v5.8.8latin2- 7 7 1402354220 B - t gz ISO 8859-2 character set encoded in octal, decimal, and hexadecimalunexpand 1- 1 1 1605565487 A - - gz convert spaces to tabstime 1- 1 1 1402354203 A - - gz time a simple command or give resource usagegetfattr- 1 1 1523407242 A - - gz get extended attributes of filesystem objectsrsa_null_methodRSA_null_method 3ssl 3 1721417624 B - - gz select RSA methodopenssl_instrument_bus2OPENSSL_instrument_bus2 3ssl 3 1699892211 A - - gz instrument references to memory busdatetime::locale::de_liDateTime::Locale::de_LI 3pm 3 1402390632 A - - gz pam_userdb- 8 8 1585713593 A - - gz PAM module to authenticate against a db databasestringprep_utf8_to_locale- 3 3 1448125246 A - - gz API functioneuare-useraddloginprofile- 1 1 1484780705 A - - gz Create a password for the specified usernexttowardf 3- 3 3 1402354211 B - - gz floating-point number manipulationshift 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)getpwent 3p- 3p 3p 1402354218 A - - gz user database functionsiswgraph 3p- 3p 3p 1402354216 A - - gz test for a visible wide-character codecabsl 3p- 3p 3p 1402354214 B - - gz return a complex absolute valuebsd_signal 3- 3 3 1402354207 A - - gz signal handling with BSD semanticsxreparentwindowXReparentWindow 3 3 1710950786 A - - gz reparent windowsaio_cancel 3p- 3p 3p 1402354214 A - - gz cancel an asynchronous I/O request (REALTIME)aio_fsync 3p- 3p 3p 1402354214 A - - gz asynchronous file synchronization (REALTIME)fmax fmax 3 fmax 3pwctype 3- 3 3 1402354213 A - - gz wide-character classificationdatetime::locale::ttDateTime::Locale::tt 3pm 3 1402390640 A - - gz asctime 3p- 3p 3p 1402354214 A - - gz convert date and time to a stringxshmattachXShmAttach 3 3 1448003986 B - - gz X Shared Memory extension functionsxttranslatekeycodeXtTranslateKeycode 3 3 1501646833 B - - gz convert KeySym to KeyCodesscalbnl 3- 3 3 1402354212 B - - gz multiply floating-point number by integral power of radixabrt-action-notify- 1 1 1601569733 A - - gz Announces a new occurrence of problem via all accessible channelsfchmod 2- 2 2 1402354204 B - - gz change permissions of a filegetaddrinfo getaddrinfo 3 getaddrinfo 3pxcb_xfixes_set_window_shape_region- 3 3 1540917640 A - - gz xcb_randr_get_monitors- 3 3 1540917640 A - - gz conjf 3p- 3p 3p 1402354214 B - - gz complex conjugate functionsgetmouse_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionxcb_input_xi_grab_device_unchecked- 3 3 1540917640 B - - gz menu_init- 3x 3 1720626759 B - - gz set hooks for automatic invocation by applicationswait.h- 0p 0p 1402354203 B - - gz declarations for waitingtcl_limitreadyTcl_LimitReady 3 3 1448008822 B - - gz manage and check resource limits on interpretersuudecode 1p- 1p 1p 1402354204 A - - gz decode a binary filegitglossary- 7 7 1722330784 A - - gz A Git Glossaryaio_fsync 3- 3 3 1402354207 A - - gz asynchronous file synchronizationtcl_conditionfinalizeTcl_ConditionFinalize 3 3 1448008822 A - - gz Tcl thread supportpcreapi- 3 3 1501643278 A - - gz Perl-compatible regular expressionspython3.6- 1 1 1545601034 A - - gz an interpreted, interactive, object-oriented programming languagetcl_getcommandnameTcl_GetCommandName 3 3 1448008821 B - - gz implement new commands in Creadprofile- 8 8 1612283497 A - - gz read kernel profiling informationxkballocgeomoverlaykeysXkbAllocGeomOverlayKeys 3 3 1710950785 C XkbAllocGeomOverlayKey - gz image::info::xbmImage::Info::XBM 3pm 3 1402363342 A - - gz XBM support for Image::InfoblackpixelBlackPixel 3 3 1710950785 B - - gz Display macros and functions  A 2bpfencr 2:freni< >:F frand CQ0gaio_ gsysto1YgsetfmFfmvchRgxcb_7#fsche)Di fabrt$nkmgscr_u Injftcl_EYfdateh0gdateǜ0Tflwre =Rgbio_ :hgxshaXMgdate5Ͱ:gtk_bKq2fbn_i NF~fxcb_Q)Gfxkbs`fttk:DHsfstdei 1 m!ftsea /5.fimme1"fxml:Ifcpan' Ukefbio_7}ftcl_S5UIfperl: 2 fxtpex GJfxcmsjssfxcb_D sgbn_i ?g}fsystu `fui_a Caftap:I Lvfxcb_ fxcb_ 鲁fxshm LMZfpclol  Efclnt  F rfintr 8|:4fbio_M D=Mginit;:fbio_ 45Xgputm2 A~afxcb_ )fdate) 0++fgeton  5Ifperl  ;fdirs >ffcco3ZfgetwC*fxtapEXf-fgetaE .4fco:2Bftcbm A9Wfferr@ =h_=fxtseG@F!uzfmore@@\ffloc@ 4gx509q̜'gnm 1}9Lfevp_@B>fdbi:IAfpfmallAfcursA 09fcontBKfxcb_uB ѩftimeB"fstrnB<?[ fsigt*C@`flh_syC . Mfcgi:C DN%fpem_D=mfld-lTD 0Uk&fcleaD fxml:DM6fsecuEJVflogsnEDSfgit:E RTftiffFuCbferr_F>RfsystFIvfbn_nPG EMfpthrGUhlfgetbHPĄfgetdjHNN fextuHXfdate2I0Cfxcb_wI!7ftap:IP>#fbf_sJ :fxcb_`J/P0fss_JA}fmsgcJ? Jfsete4Kfssl_RKP5ftfinK/wfevp_KDb@ffdatIL F+7fevp_LbsHfdlsyMJbfsetpiM 0(fssl_Mi$1ftchm"NLEfstatuN-!pfoutlN#0vmfaio_N -Ifabrt O\`fpm-hxO =vASfpcre>rOfxcb_O"}4fxcb_Q#gferfl{L"fdate3fx509Pf.ftcl_V@гfxcb_!jE fxcb_%,/fdove#L;fdes_~:fcursȒWZfexpe5 *fopeniJ#gavc_Bdfsha5?/`fsys_ I5gxkbf?O=dffma\!gdelw1fmatcn %ftcl_?c2fsize= {fevp_1V淼fscheL fauthF$fdateU5fisalSfavc_– D$ffldex7fxcb_.5&fipc ~IPfCORE͗ ?,gxget1~gxcb_ġ"gtrun @flran [flookz:WfclntØF*fxtreYqfsetl 0Pfip-xÙ2{ *gdatev3agdeal =qftclv0S'gxcb_/%DZfpam_59ferror 3p- 3p 3p 1402354215 A - - gz test error indicator on a streamxtseteventdispatcherXtSetEventDispatcher 3 3 1501646833 B - - gz extension event handlingmore more 1p more 1flockfile 3p- 3p 3p 1402354215 A - - gz stdio locking functionsevp_sealupdateEVP_SealUpdate 3ssl 3 1721417624 B - - gz EVP envelope encryptiondbi::dbd::metadataDBI::DBD::Metadata 3pm 3 1402362411 A - - gz Generate the code and data for some DBI metadata methodsmalloc malloc 3 malloc 3pcurs_inopts- 3x 3 1715932337 A - - gz curses input optionscontext_user_set- 3 3 1585710994 B - - gz Routines to manipulate SELinux security contextsxcb_glx_get_drawable_attributes- 3 3 1540917640 A - - gz timer_settime timer_settime 2 timer_settime 3pstrncasecmp 3- 3 3 1402354212 B - - gz compare two strings ignoring casesigtimedwait 2- 2 2 1402354206 A - - gz synchronously wait for queued signalslh_stats_bio- 3ssl 3 1721417624 B - - gz LHASH statisticscgi::pushCGI::Push 3pm 3 1402342275 A - - gz Simple Interface to Server Pushpem_write_rsa_pubkeyPEM_write_RSA_PUBKEY 3ssl 3 1721417624 B - - gz PEM routinesld-linux.so- 8 8 1402354220 B - - gz dynamic linker/loaderclearerr clearerr 3 clearerr 3pxml::libxml::textXML::LibXML::Text 3pm 3 1402352994 A - - gz XML::LibXML Class for Text Nodessecurity_compute_av- 3 3 1585710994 A - - gz query the SELinux policy database in the kernellogsave- 8 8 1711459141 A - - gz save the output of a command in a logfilegit::i18nGit::I18N 3pm 3 1722329827 A - - gz Perl interface to Git's Gettext localizationstiffreadrawstripTIFFReadRawStrip 3tiff 3 1729525165 A - - gz return the undecoded contents of a strip of data from an open TIFF fileerr_add_error_dataERR_add_error_data 3ssl 3 1721417624 B - - gz record an errorsystemd-machine-id-commit- 1 1 1711457787 A - - gz Commit transient machine ID to /etc/machine-idbn_nnmodBN_nnmod 3ssl 3 1721417624 B - - gz arithmetic operations on BIGNUMspthread_attr_setschedpolicy 3p- 3p 3p 1402354217 B - - gz get and set the schedpolicy attribute (REALTIME THREADS)getbegx- 3x 3 1720626759 B - - gz get curses cursor and window coordinates, attributesgetdate_err 3- 3 3 1402354209 B - - gz convert a date-plus-time string to broken-down timeextutils::installedExtUtils::Installed 3pm 3 1698237386 A - - gz Inventory management of installed modulesdatetime::locale::asDateTime::Locale::as 3pm 3 1402390641 A - - gz xcb_input_xi_get_focus_unchecked- 3 3 1540917640 B - - gz tap::parser::aggregatorTAP::Parser::Aggregator 3pm 3 1439389327 A - - gz Aggregate TAP::Parser resultsbf_set_keyBF_set_key 3ssl 3 1721417624 B - - gz Blowfish encryptionxcb_render_query_pict_formats_formats_iterator- 3 3 1540917640 B - - gz ss- 8 8 1601484048 A - - gz another utility to investigate socketsmsgcmp- 1 1 1465650363 A - - gz compare message catalog and templatesetegid setegid 2 setegid 3pssl_get_quiet_shutdownSSL_get_quiet_shutdown 3ssl 3 1721417624 B - - gz manipulate shutdown behaviourtfind 3- 3 3 1402354213 B - - gz manage a binary treeevp_rc5_32_12_16_cfbEVP_rc5_32_12_16_cfb 3ssl 3 1721417624 B - - gz EVP cipher routinesfdatasync 3p- 3p 3p 1402354215 A - - gz synchronize the data of a file (REALTIME)evp_pkey_copy_parametersEVP_PKEY_copy_parameters 3ssl 3 1721417624 B - - gz public key parameter and comparison functionsdlsym 3- 3 3 1402354208 B - - gz programming interface to dynamic linking loadersetpgid 2- 2 2 1402354206 A - - gz set/get process groupssl_ctx_callback_ctrlSSL_CTX_callback_ctrl 3ssl 3 1721417624 B - - gz internal handling functions for SSL_CTX and SSL objectstchmgr- 1 1 1402385697 A - - gz the command line utility of the hash database APIstatd- 8 8 1634214566 A - - gz NSM service daemonoutl_p- 2 2 1402354205 B - - gz port I/Oaio_write 3- 3 3 1402354207 A - - gz asynchronous writeabrt-vmcore.conf- 5 5 1601569733 A - - gz Configuration file for Configuration file for ABRT's VMCore addonpm-hibernate- 8 8 1533764400 B - - gz Suspend or Hibernate your computerxcb_input_xi_allow_events_checked- 3 3 1540917640 B - - gz  ` @}dscal  T dfchm`  7R^drsa_ 3] drest B9dxcb_'ui_pU  9Jdec_p])Kdavc_F"dgsigi3 mdxcb_dconf ccdec_kNt~Mdpod:P61dxcb_<+)dxdbeFtcl_&Etiff} 5+dckfr7T+dslk_ 6+dxcb_Z.#dxche>kd_lon +Zdxcb_%$dre_ed.Jdunse ;DdsslvwDdlvcrm 2לdenvz 55 devp_KAdcurs?^ Rdtiff3K_dcursbFdtc-if;ddate0͌dterm =gWdlwre3QVfdpam_ Bdtgki40dxcb_(c@dsigs_ dxcb_qdas 16z?7dtc-c M38dxcb_I=pdvimt (Cdstrc -dretu 3dmallBL*ٱdeuca(Idxcb_$dprinO cdsshp?,dposiGE&dlz4bQ$#diso_ _A{deucak?6dtrunSdvdoZdxset KOdsetrs EUjdaio_ Dxdposibk.disle TK0diswc :ޯ*dxtse&FsdsecuKMsdxsetbΝddate^8dsetaldevp_'D?)dsysc -.bdkern9t>dcpan_dxcb_x'forQ%#dxcb_KdConf Bigdsigb= )D\dpam_o `f/dgetpD"[dvgsc.7CVdslk_l;ddfilt 8testW0perlW 4sg_rS ^Iydfcbl:AxdwarnG54dfeho dmath`dtest>)dtk_bK 6oUdevp_[s"(dcurs HgpdmatcN-dtk_t Ga1dbn_mVK=derr_SR)dxset% 9dxcb_g+mrdhost %Âodsudo 2xcb_sW1'"disinFxcb_Wcms_Z[pthr)[8xgetp[utsorEY3Oadnorah0xcb_Ymq_g[ ;creaLZ<"dxcb_$8dxcb_%+zdfcpa=tracc[$-8sdssl_hUxget\Gdradi D[dlsusP+dsave5 '@dbio_ Mqdxope4Ʈdbio_T 8dx509T!OdsetcD}dxforPFpFddrunl CJdmvad a{d+ddate`3;SdattrRedx509Mqdxcb_en3#dtrap> ,!dperl 6Wdlati#^sdunex 1rdtimeGkdgetf Hdputcadrsa_c=dopenW{uddate3 dpam_j K)dstri'>deuarC+gdnext^=/dshif>dgetp 4N$diswg/  C rdcabs~  <[Udbsd_  = dxrep 9Ldaio_V J+Gdaio_  Itɞdfmax Fdwcty  8-ddateZ 0Ydasct  >"dxshm  GXdxttr: F dgeta  dpthrPdabrt \ǂdnetib!! Ulێewmem :set_excb_M=jeconj: 80aegetm{ ;tc-eŁ Ropen![_excb_#`femenu NIXewaitX5‹etcl_Xƌeuude 1iso_Y _sets 9evp_b ;xtapYspla6 >xloa RJegitg= )eaio_r <tcl_CX7+etcl_Axcb_zepcre>epythW \iswc :Vetcl_Geeread <5exkba_FyeimagGeblac @velabep>efseeDp_6euget_p 27efloop Keceilp 3etanf,q+P@ex_co^q psig% /͈DesigiUrB''exkbarj"*ealia#sxXetcl_;s G(ecoshs5dirn+ϊesystsdpcre+ >gertne?t Beifent Wclea+4ecdsWdsa_g OWJexcb_tMepthruAUedateyu0xcb_%~eeucauCfile FfcraT 8xml:Epam_ 3pod:@ deflowv!xcb_ ,ec_ggksete @xgra5 9{edate5v3Fwesim_vAqeoptov 5@excb_ w'csiny >;5ebn_eOwC\9-elinkw9Zexfsrw Eesyst1x;daemcima Aesethx +h_er& Ogets*flus>>o extisxPchar[ WnfsdN_Heio-s$y 0{eedate_y3Qeperly ReaprozH{^edateXz3}eexecz +ouewcscz Mepthr.{ strv7 6evp_ <xcb_xechkc[{ Weec_k{v+ebigrI|OHGnetcl_| :edate|0elrou+} ;+efcwep}dedes_}<{5edate7~3w(uei2d_~ ECerepo~ Odgst_-( excb_*%GxXeweraj@@^etime 0Fegetp?pcloZdtlsupeevp_MLexkbs[:excb_PUecms_ Zsg_mSAeshm_ LcommyetlsvBxtcl_]M1eftruЂ @euarMgrubO,fexcb_b@escheSAexkbsuhlecexp,7괨efga numfIH+ehashk UYRemkfi˄ BtsorO -(eposifgets,eis_i 4Yeuuidԅ Iethin( btdexcb_%p$ecasiԆ 7xgetLZ'oevlin bxml:fetcl_HXnexcb_ׇ{Pedate 3 WedoveUGߙ}esem_7ZkeadduS2ebio_M :،excb_&ketempӉVexecnoqi ;xcb_Lxcb_yedate90Legiti~ LfedateԊ85esecu)4gran6 Maexcb_rstrikexcb_ #label- n n 1448008912 A - - gz Create and manipulate label widgetsfseeko fseeko 3 fseeko 3pugetrlimit- 2 2 1402354206 B - - gz get/set resource limitsfloorl 3- 3 3 1402354209 B - - gz largest integral value not greater than argumentceill 3p- 3p 3p 1402354214 B - - gz ceiling value functiontanf 3- 3 3 1402354213 B - - gz tangent functionx_contexts- 5 5 1585710994 B - t gz userspace SELinux labeling interface and configuration file format for the X Window System contexts backend. This backend is also used to determine the default context for labeling remotely connected X clientssiginterrupt 3- 3 3 1402354212 A - - gz allow signals to interrupt system callsxkbaddgeomkeyaliasXkbAddGeomKeyAlias 3 3 1710950785 A - - gz Add one key alias to an existing keyboard geometry descriptionalias alias 1p alias 1tcl_parsevarTcl_ParseVar 3 3 1448008822 B - - gz parse Tcl scripts and expressionscoshf 3- 3 3 1402354208 B - - gz hyperbolic cosine functionsystem-auth-ac- 5 5 1501837535 A - - gz Common configuration files for PAMified services written by authconfig(8)rtnetlink 3- 3 3 1402354212 A - - gz macros to manipulate rtnetlink messagesifenslave- 8 8 1274278167 A - - gz Attach and detach slave network devices to a bonding device.xcb_xv_grab_port- 3 3 1540917640 A - - gz pthread_attr_setschedparam 3p- 3p 3p 1402354217 B - - gz get and set the schedparam attributedatetime::locale::roDateTime::Locale::ro 3pm 3 1402390633 A - - gz euca-unbundle- 1 1 1484780705 A - - gz Recreate an image from its bundled partsflow- 8 8 1601484048 C tc-flow - gz datetime::locale::ar_lbDateTime::Locale::ar_LB 3pm 3 1402390640 A - - gz sim_lsmplugin- 1 1 1615908399 A - - gz LibStorageMgmt simulator python pluginoptopt 3- 3 3 1402354211 B - - gz Parse command-line optionsxcb_xkb_indicator_state_notify_event_t- 3 3 1540917640 A - - gz bn_expBN_exp 3ssl 3 1721417624 B - - gz arithmetic operations on BIGNUMslink_fieldtype- 3x 3 1720626759 B - - gz define validation-field typesxfsrestore- 8 8 1701960892 A - - gz XFS filesystem incremental restore utilitysystemd-update-done.service- 8 8 1711457788 A - - gz Mark /etc and /var fully updatedsethostname- 2 2 1402354204 A - - gz get/set hostnamextisapplicationshellXtIsApplicationShell 3 3 1501646833 B - - gz obtain and verify a widget's classio-stringyIO-stringy 3pm 3 1402371105 C IO::Stringy - gz datetime::locale::ta_inDateTime::Locale::ta_IN 3pm 3 1402390641 A - - gz perlpodspec- 1 1 1698237667 A - - gz Plain Old Documentation: format specification and notesapropos- 1 1 1540931193 A - - gz search the manual page names and descriptionsdatetime::locale::ar_iqDateTime::Locale::ar_IQ 3pm 3 1402390637 A - - gz execle 3p- 3p 3p 1402354215 B - t gz execute a filewcschr 3- 3 3 1402354213 A - - gz search a wide character in a wide-character stringpthread_self pthread_self 3 pthread_self 3pchkconfig- 8 8 1602604008 A - - gz updates and queries runlevel information for system servicesec_key_get0_public_keyEC_KEY_get0_public_key 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_KEY objects.bigrat- 3pm 3 1698237678 A - - gz Transparent BigNumber/BigRational support for Perltcl_signalidTcl_SignalId 3 3 1448008822 A - - gz Convert signal codesdatetime::locale::huDateTime::Locale::hu 3pm 3 1402390642 A - - gz lround 3p- 3p 3p 1402354216 A - - gz round to nearest integer valuefcweightfromopentypeFcWeightFromOpenType 3 3 1520307172 A - - gz Convert from OpenType weight values to fontconfig onesdes_cfb64_encryptDES_cfb64_encrypt 3ssl 3 1721417624 B - - gz DES encryptiondatetime::locale::ar_sdDateTime::Locale::ar_SD 3pm 3 1402390638 A - - gz i2d_x509i2d_X509 3ssl 3 1721417624 B - - gz X509 encode and decode functionsrepo-graph- 1 1 1589300861 A - - gz output a full package dependency graph in dot formatxcb_xf86dri_close_connection_checked- 3 3 1540917640 B - - gz werase- 3x 3 1720626759 B - - gz clear all or part of a curses windowtimes 1p- 1p 1p 1402354204 A - - gz write process timesfg fg 1p fg 1getpwuid_r 3p- 3p 3p 1402354215 B - - gz search user database for a user IDevp_pkey_set1_dsaEVP_PKEY_set1_DSA 3ssl 3 1721417624 B - - gz EVP_PKEY assignment functions.xkbsetcontrolsXkbSetControls 3 3 1710950785 A - t gz Copies changes to the X server based on a modified ctrls structure in a local copy of the keyboard descriptionxcb_glx_get_lightfv_reply- 3 3 1540917640 B - - gz cms_decryptCMS_decrypt 3ssl 3 1699892206 A - - gz decrypt content from a CMS envelopedData structureshm_open 3- 3 3 1402354212 A - - gz create/open or unlink POSIX shared memory objectstlsv1_1_client_methodTLSv1_1_client_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionsftruncate 2- 2 2 1402354204 B - - gz truncate a file to a specified lengthxcb_input_ungrab_device_key- 3 3 1540917640 A - - gz sched_setparam 3p- 3p 3p 1402354218 A - - gz set scheduling parameters (REALTIME)xkbsetptractionxXkbSetPtrActionX 3 3 1710950785 A - t gz Sets the high_XXX and low_XXX fields of act from the signed integer value xcexpf 3- 3 3 1402354207 B - - gz complex exponential functionhash::utilHash::Util 3pm 3 1698237674 A - - gz A selection of general-utility hash subroutinesmkfifo 3- 3 3 1402354211 A - - gz make a FIFO special file (a named pipe)posix_trace_create_withlog- 3p 3p 1402354217 B - t gz trace stream initialization, flush, and shutdown from a process (TRACING)is_idlok- 3x 3 1720626759 B - - gz curses window propertiesuuid_clear- 3 3 1612283497 A - - gz reset value of UUID variable to the NULL valuethin_dump- 8 8 1605543195 A - - gz dump thin provisioning metadata from device or file to standard output.xcb_composite_release_overlay_window- 3 3 1540917640 A - - gz casinf 3p- 3p 3p 1402354214 B - - gz complex arc sine functionsvline_set- 3x 3 1720626759 B - - gz create curses borders or lines using complex characters and renditionstcl_freeparseTcl_FreeParse 3 3 1448008822 B - - gz parse Tcl scripts and expressionsxcb_dpms_enable_checked- 3 3 1540917640 B - - gz datetime::locale::ku_trDateTime::Locale::ku_TR 3pm 3 1402390644 A - - gz doveadm-expunge- 1 1 1724195936 A - - gz Expunge messages matching given search querysem_getvalue 3- 3 3 1402354212 A - - gz get the value of a semaphoreadduser- 8 8 1573511258 B - - gz create a new user or update default new user informationbio_set_fdBIO_set_fd 3ssl 3 1721417624 B - - gz file descriptor BIOxcb_dri2_connect_alignment_pad_length- 3 3 1540917640 B - - gz template::toolsTemplate::Tools 3pm 3 1402357152 A - - gz Command Line Tools for the Template Toolkitdatetime::locale::mrDateTime::Locale::mr 3pm 3 1402390638 A - - gz gitignore- 5 5 1722330784 A - - gz Specifies intentionally untracked files to ignoredatetime::locale::sr_cyrl_csDateTime::Locale::sr_Cyrl_CS 3pm 3 1402390640 A - - gz security_load_policy- 3 3 1585710994 A - - gz load a new SELinux policyxcb_xv_query_image_attributes- 3 3 1540917640 A - - gz wmemset 3p- 3p 3p 1402354219 A - - gz set wide characters in memorypcre_get_substring- 3 3 1501643278 A - - gz Perl-compatible regular expressionsxcb_record_query_version_unchecked- 3 3 1540917640 B - - gz erfl erfl 3 erfl 3pdatetime::locale::en_nzDateTime::Locale::en_NZ 3pm 3 1402390636 A - - gz x509_store_ctx_cleanupX509_STORE_CTX_cleanup 3ssl 3 1721417624 B - - gz X509_STORE_CTX initialisationtcl_incrrefcountTcl_IncrRefCount 3 3 1448008822 B - - gz manipulate Tcl objectsxcb_xevie_select_input_unchecked- 3 3 1540917640 B - - gz xcb_xvmc_create_subpicture_priv_data- 3 3 1540917640 B - - gz doveadm-backup- 1 1 1694697466 B - - gz Dovecot's one-way mailbox synchronization utilitydes_ecb_encryptDES_ecb_encrypt 3ssl 3 1721417624 B - - gz DES encryptioncurses::ui::popupmenuCurses::UI::Popupmenu 3pm 3 1454728582 A - - gz Create and manipulate popupbox widgetsexpect.pmExpect.pm 3pm 3 1391095915 C Expect - gz openvt- 1 1 1638560024 A - - gz start a program on a new virtual terminal (VT).sha512_updateSHA512_Update 3ssl 3 1721417624 B - - gz Secure Hash Algorithmsys_times.h- 0p 0p 1402354203 A - - gz file access and modification times structurefma fma 3 fma 3pmatchall- 8 8 1601484048 C tc-matchall - gz tcl_conditionnotifyTcl_ConditionNotify 3 3 1448008822 B - - gz Tcl thread supportsize- 1 1 1696859909 A - - gz list section sizes and total size.evp_pkey_decrypt_initEVP_PKEY_decrypt_init 3ssl 3 1699892210 A - - gz decrypt using a public key algorithmsched_setscheduler 3p- 3p 3p 1402354218 A - - gz set scheduling policy and parameters (REALTIME)authunix_create- 3 3 1402354207 B - - gz library routines for remote procedure callsdatetime::locale::ug_arabDateTime::Locale::ug_Arab 3pm 3 1402390640 A - - gz isalpha isalpha 3 isalpha 3pavc_has_perm- 3 3 1585710994 A - - gz obtain and audit SELinux access decisionsldexpf ldexpf 3 ldexpf 3pxcb_input_get_device_dont_propagate_list_classes_end- 3 3 1540917640 B - - gz ipc 5- 5 5 1402354219 B - - gz System V interprocess communication mechanismsCORE 3pm- 3pm 3 1698237671 A - - gz Namespace for Perl's core routineslrand48_r- 3 3 1402354210 B - - gz generate uniformly distributed pseudo-random numbers reentrantlylookup_dcookie- 2 2 1402354205 A - - gz return a directory entry's pathclnt_spcreateerror- 3 3 1402354208 B - - gz library routines for remote procedure callsxtremoveworkprocXtRemoveWorkProc 3 3 1501646833 B - - gz Add and remove background processing proceduressetlogmask 3- 3 3 1402354212 A - - gz set log priority maskip-xfrm- 8 8 1601484048 A - t gz transform configurationtclvars- n n 1448008824 A - - gz Variables used by Tclpam_end- 3 3 1585713595 A - - gz termination of PAM transactiondatetime::locale::ha_ngDateTime::Locale::ha_NG 3pm 3 1402390640 A - - gz aio_cancel aio_cancel 3 aio_cancel 3pdeallocvt- 1 1 1637771557 A - - gz deallocate unused virtual consolesxcb_render_query_filters_aliases_end- 3 3 1540917640 B - - gz systemd.journal-fields- 7 7 1711457788 A - - gz Special journal fieldssetfscreatecon_raw- 3 3 1585710994 B - - gz get or set the SELinux security context used for creating a new file system objectxcb_randr_get_output_info_name_end- 3 3 1540917640 B - - gz scr_init- 3x 3 1720626759 B - - gz read (write) a curses screen from (to) a filedatetime::locale::neDateTime::Locale::ne 3pm 3 1402390638 A - - gz bio_make_bio_pairBIO_make_bio_pair 3ssl 3 1721417624 B - - gz BIO pair BIOxshapecombineregionXShapeCombineRegion 3 3 1448003986 B - - gz X nonrectangular shape functionsdatetime::locale::wo_latnDateTime::Locale::wo_Latn 3pm 3 1402390633 A - - gz tk_bindfortraversaltk_bindForTraversal n n 1448008912 A - - gz Obsolete support for menu barsicmp- 7 7 1402354219 A - t gz Linux IPv4 ICMP kernel module.bn_internal- 3ssl 3 1699892215 A - - gz BIGNUM library internal functionsinitrd- 4 4 1402354219 A - - gz boot loader initialized RAM diskputmsg 3p- 3p 3p 1402354217 A - - gz send a message on a STREAM (STREAMS)nm 1- 1 1 1696859909 A - - gz list symbols from object filesdelwin- 3x 3 1720626759 B - - gz create curses windowsx509_store_ctx_get_error_depthX509_STORE_CTX_get_error_depth 3ssl 3 1721417624 B - - gz get or set certificate verification status informationavc_sid_stats- 3 3 1585710994 B - - gz obtain userspace SELinux AVC statisticsxkbfreegeomcolorsXkbFreeGeomColors 3 3 1710950785 A - - gz Free geometry colorsxgetwindowattributesXGetWindowAttributes 3 3 1710950786 A - t gz get current window attribute or geometry and current window attributes structurexcb_set_dashes_checked- 3 3 1540917640 B - - gz truncate64- 2 2 1402354206 B - - gz truncate a file to a specified lengthcurs_deleteln- 3x 3 1715932336 A - - gz delete and insert lines in a curses window k 0fencr 2:freni< >:F frand Cget_dIwborPdate#3FfmvchRulim ,fsche)Di fabrt$neuarnjftcl_EYfdateh0popeTflwre =ceil3[pthrApechBv :cloc@q2fbn_i NF~fxcb_Q)Gfxkbs`fttk:DHsfstdei 1 m!ftsea /5.fimme1"fxml:Ifcpan' Ukefbio_7}ftcl_S5UIfperl: 2 fxtpex GJfxcmsjssfxcb_D blow 1g}fsystu `fui_a Caftap:I Lvfxcb_ fxcb_ 鲁fxshm LMZfpclol  Efclnt  F rfintr 8|:4fbio_M Dmkte:fbio_ 4cata[ :~afxcb_ )fdate) 0++fgeton  5Ifperl  ;fdirs >ffcco3ZfgetwC*fxtapEXf-fgetaE .4fco:2Bftcbm A9Wfferr@ =h_=fxtseG@F!uzfmore@@\ffloc@ 4xcb_h!5HEAD!9Lfevp_@B>fdbi:IAfpfmallAfcursA 09fcontBKfxcb_uB ѩftimeB"fstrnB<?[ fsigt*C@`flh_syC . Mfcgi:C DN%fpem_D=mfld-lTD 0Uk&fcleaD fxml:DM6fsecuEJVflogsnEDSfgit:E RTftiffFuCbferr_F>RfsystFIvfbn_nPG EMfpthrGUhlfgetbHPĄfgetdjHNN fextuHXfdate2I0Cfxcb_wI!7ftap:IP>#fbf_sJ :fxcb_`J/P0fss_JA}fmsgcJ? Jfsete4Kfssl_RKP5ftfinK/wfevp_KDb@ffdatIL F+7fevp_LbsHfdlsyMJbfsetpiM 0(fssl_Mi$1ftchm"NLEfstatuN-!pfoutlN#0vmfaio_N -Ifabrt O\`fpm-hxO =vASfpcre>rOfxcb_O"}4fxcb_Q#gferfl{L"fdate3fx509Pf.ftcl_V@гfxcb_!jE fxcb_%,/fdove#L;fdes_~:fcursȒWZfexpe5 *fopeniJgetp|>dfsha5?/`fsys_ Istrig|'O=dffma\strt| ?fmatcn %ftcl_?c2fsize= {fevp_1V淼fscheL fauthF$fdateU5fisalSfavc_– D$ffldex7fxcb_.5&fipc ~IPfCORE͗ ?xcb_r0posiGsGxcb_flran [flookz:WfclntØF*fxtreYqfsetl 0Pfip-xÙ2strit ,gitc4uCqftclv0tcamuPDZfpam_59% U϶gswapV5Q0gaio_ 7wgsubp:)ggit- 8^zgxtapEIgxcb_ open![gxcb_7#rcscނ 1kmgscr_u IxtadcRgai_˃Bgdateǜ0Rgbio_ :hgxshaXMgdate5tige=4 ;Ͱ:gtk_bKgicmpg9sgbn_i ?=Mginit;5Xgputm2 Axcb_gx509q̜'gnm 1}9iswc #gavc_Bdate3putsS-5gxkbf?!gdelw1,gxget1~gxcb_ġ"gtrun @5gcursAF5gwget 4ggethe?A3gtwalBwgtiff9ʯgxcms h8gxkbaiMI{glwree'bggetsD 9k gxcb_$Ggxcle 8%gxcb_glwre9L#;gevp_ >ggit-F)Fgtcl_:K+|gpkilY⻴geuscG)ggit Z5Ugimag X!ggetc5QLgpcre@>a2gposiGggete 7Dgchro/ 5gtiffp5Pgxt_gssl_f`Wgfmal\8T^gbinf Vgread %!@gengi)A0Cgjn 3q=ngpodc (J%gperl R]Ѕgtcl_Ef.Igpem_?rgattrRclogOigcacok -euca;Ugxcb_$Pgpod2 <Egxcb_%":gdpkgb 4h_er& Ogdrac)EbgflocKxtcrIchar[ W`m=gevp_.Egxcb_)9"gfmod D<%gxtcrYgupda9jgcms)jsMghtml) Jtgssl_ eTgdbus#Mstrv7 6isblGgmq_c ʆgpem_=gbusibxcb_+] groutkAmgxcb_%Ngxcb_$'gtime/.6grindd Agevp_= gxtvaKxcb_I&?gispu] =\geucaJdate0pcloZ9gxcb_ 1form8K8gsadY< >hgxcb_/gxcb_,sgxcb_))bglatim^commwgxcb_5tcl_]Msetr gctim"\j}gxcb_:!kgtiffvCgselibF>guuid?9 gxkbkzvzgobj_ E gpkcsk B&gecdsVgxcb_ -Ogiconh 8cignuma FTgcore)gkeyc)CCJgemat#xcb_PeJglwreAgevp_Kgsyst^78gstat 51gcpanXasin,wcssQ geuarRMpthrCXlgxwct_<cut Kmyis ;IZgssl_agword%K-gxcb_"zBgps2p kGgcsin4 3gmktep </:gssl_Nbgregf 8{ *gdatev3agdeal =gsysto1S'gxcb_/%Ygsetfmwgetparent- 3x 3 1720626759 B - - gz curses window propertiesether_hostton- 3 3 1402354208 B - - gz Ethernet address manipulation routinestwalk twalk 3 twalk 3ptiffswabarrayofshortTIFFSwabArrayOfShort 3tiff 3 1729525165 C TIFFswab - gz xcmsqueryredXcmsQueryRed 3 3 1710950786 B - - gz obtain black, blue, green, red, and white CCC color specificationsxkballocgeomkeyaliasesXkbAllocGeomKeyAliases 3 3 1710950785 A - - gz Allocate geometry key aliaseslwres_getnameinfo- 3 3 1725373371 A - - gz lightweight resolver socket address structure to hostname and service namegetspnam- 3 3 1402354213 A - - gz get shadow password file entryxcb_res_query_version_reply- 3 3 1540917640 B - - gz xclearareaXClearArea 3 3 1710950786 A - - gz clear area or windowxcb_xfixes_fetch_region_reply- 3 3 1540917640 B - - gz lwres_freeaddrinfo- 3 3 1725373371 A - - gz socket address structure to host and service nameevp_signinitEVP_SignInit 3ssl 3 1721417624 A - - gz EVP signing functionsgit-http-backend- 1 1 1722330781 A - - gz Server side implementation of Git over HTTPtcl_findhashentryTcl_FindHashEntry 3 3 1448008822 B - - gz procedures to manage hash tablespkill- 1 1 1601486472 B - - gz look up or signal processes based on name and other attributeseuscale-set-desired-capacity- 1 1 1484780705 A - - gz Set an auto-scaling group's desired capacitygit 1- 1 1 1722330784 A - - gz the stupid content trackerimage::xbmImage::Xbm 3pm 3 1402378163 A - - gz Load, create, manipulate and save xbm image files.getchar_unlocked 3- 3 3 1402354209 B - - gz nonlocking stdio functionspcre_get_stringnumber- 3 3 1501643278 A - - gz Perl-compatible regular expressionsposix_trace_clear- 3p 3p 1402354217 A - - gz clear trace stream and trace log (TRACING)getegid 3p- 3p 3p 1402354215 A - - gz get the effective group IDchrony.conf- 5 5 1565264417 A - - gz chronyd configuration filetiffcurrenttileTIFFCurrentTile 3tiff 3 1729525165 C TIFFquery - gz xt- 8 8 1601484048 C tc-xt - gz ssl_ctx_set1_verify_cert_storeSSL_CTX_set1_verify_cert_store 3ssl 3 1721417624 A - - gz set certificate verification or chain storefmal 3p- 3p 3p 1402354215 B - - gz floating-point multiply-addbinfmt.d- 5 5 1711457788 A - - gz Configure additional binary formats for executables at bootreadonly Readonly 3pm readonly 1p readonly 1engine- 3ssl 3 1699892216 A - - gz ENGINE cryptographic module supportjn 3- 3 3 1402354210 B - - gz Bessel functions of the first kindpodchecker()- 3pm 3 1402345719 C Pod::Checker - gz perlmodlib- 1 1 1698237666 A - - gz constructing new Perl modules and finding existing onestcl_createaliasTcl_CreateAlias 3 3 1448008821 A - - gz manage multiple Tcl interpreters, aliases and hidden commandspem_read_dsaprivatekeyPEM_read_DSAPrivateKey 3ssl 3 1721417624 B - - gz PEM routinesattr_on- 3x 3 1720626759 B - - gz curses character and window attribute control routinescacosl 3- 3 3 1402354207 B - - gz complex arc cosinexcb_glx_get_convolution_filter_data- 3 3 1540917640 B - - gz pod2html- 1 1 1698237679 A - - gz convert .pod files to .html filesxcb_xv_query_adaptors_info_length- 3 3 1540917640 B - - gz dpkg-trigger- 1 1 1642076111 A - - gz a package trigger utilitydracut.modules- 7 7 1601481478 A - - gz dracut modulesflock 2- 2 2 1402354204 A - - gz apply or remove an advisory lock on an open fileevp_cipher_ctx_cipherEVP_CIPHER_CTX_cipher 3ssl 3 1721417624 B - - gz EVP cipher routinesxcb_kill_client- 3 3 1540917640 A - - gz kills a clientfmodf 3p- 3p 3p 1402354215 B - - gz floating-point remainder value functionxtcreateselectionrequestXtCreateSelectionRequest 3 3 1501646833 A - - gz bundle multiple selection conversion requests into a single request using MULTIPLE targetupdate-cracklib- 8 8 1337469855 A - - gz Regenerate cracklib dictionarycms- 1ssl 1 1699892199 A - - gz CMS utilityhtml::tagsetHTML::Tagset 3pm 3 1402382449 A - - gz data tables useful in parsing HTMLdbus-update-activation-environment- 1 1 1601481284 A - - gz update environment used for D-Bus session servicesssl_get_tlsext_status_ocsp_respSSL_get_tlsext_status_ocsp_resp 3ssl 3 1721417624 B - - gz OCSP Certificate Status Request functionsmq_close mq_close 3 mq_close 3ppem_write_privatekeyPEM_write_PrivateKey 3ssl 3 1721417624 B - - gz PEM routinesbusiness::isbn13Business::ISBN13 3pm 3 1402381485 A - - gz work with 13 digit International Standard Book Numbersroute- 8 8 1565313023 A - - gz show / manipulate the IP routing tablexcb_image_text_8_checked- 3 3 1540917640 B - - gz Draws textxcb_input_ungrab_device_key_checked- 3 3 1540917640 B - - gz time 2- 2 2 1402354206 A - - gz get time in secondsrindex 3p- 3p 3p 1402354218 A - - gz character string operations (LEGACY)evp_cast5_ofbEVP_cast5_ofb 3ssl 3 1721417624 B - - gz EVP cipher routinesxtvacreatemanagedwidgetXtVaCreateManagedWidget 3 3 1501646833 B - - gz create and destroy widgetsispunct 3p- 3p 3p 1402354216 A - - gz test for a punctuation charactereuca-detach-network-interface- 1 1 1484780705 A - - gz Detach a VPC network interface from an instancexcb_get_property_unchecked- 3 3 1540917640 B - - gz Gets a window propertysa- 8 8 1501750853 A - - gz summarizes accounting informationxcb_render_query_pict_formats_subpixels_length- 3 3 1540917640 B - - gz xcb_selinux_get_device_create_context_reply- 3 3 1540917640 B - - gz xcb_xfixes_get_cursor_image_cursor_image- 3 3 1540917640 B - - gz latin3- 7 7 1402354220 B - t gz ISO 8859-3 character set encoded in octal, decimal, and hexadecimalxcb_xf86dri_get_drawable_info_back_clip_rects_length- 3 3 1540917640 B - - gz ctime ctime 3 ctime 3pxcb_xinerama_is_active_unchecked- 3 3 1540917640 B - - gz tiffrewritedirectoryTIFFRewriteDirectory 3tiff 3 1729525165 C TIFFWriteDirectory - gz selinuxenabled- 8 8 1585710994 A - - gz tool to be used within shell scripts to determine if selinux is enableduuid_generate_time_safe- 3 3 1612283497 B - - gz create a new unique UUID valuexkbkeynumgroupsXkbKeyNumGroups 3 3 1710950785 A - t gz Returns the number of groups of symbols bound to the key corresponding to keycodeobj_obj2txtOBJ_obj2txt 3ssl 3 1721417624 B - - gz ASN1 object utility functionspkcs12_parsePKCS12_parse 3ssl 3 1699892211 A - - gz parse a PKCS#12 structureecdsa_do_verifyECDSA_do_verify 3ssl 3 1721417624 B - - gz Elliptic Curve Digital Signature Algorithmxcb_x_print_print_query_screens_roots_length- 3 3 1540917640 B - - gz iconv 3p- 3p 3p 1402354216 A - - gz codeset conversion functionnuma_maps- 5 5 1402354219 B - - gz overview of Non-Uniform Memory Architecturecore 5- 5 5 1402354219 A - - gz core dump filekeyctl_session_to_parent- 3 3 1402366674 A - - gz Set the parent process's session keyringematch- 8 8 1601484048 C tc-ematch - gz lwres_buffer_back- 3 3 1725373371 B - - gz lightweight resolver buffer managementevp_pkey_get1_dhEVP_PKEY_get1_DH 3ssl 3 1721417624 B - - gz EVP_PKEY assignment functions.systemd-udevd.service- 8 8 1711457788 A - - gz Device event managing daemonstatvfs 3- 3 3 1402354212 A - - gz get file system statisticscpanplus::internals::extractCPANPLUS::Internals::Extract 3pm 3 1402392266 A - - gz internals for archive extractionxwctextextentsXwcTextExtents 3 3 1710950786 B - - gz compute text extentsssl_set1_chain_cert_storeSSL_set1_chain_cert_store 3ssl 3 1721417624 B - - gz set certificate verification or chain storeword-list-compress- 1 1 1402355076 A - - gz word list compressor/decompressor for GNU Aspellxcb_xvmc_list_surface_types_reply- 3 3 1540917640 B - - gz ps2pdf14- 1 1 1605296035 B - - gz Convert PostScript to PDF 1.4 (Acrobat 5-and-later compatible) using ghostscriptcsinf 3p- 3p 3p 1402354214 B - - gz complex sine functionsmktemp 3p- 3p 3p 1402354216 A - - gz make a unique filename (LEGACY)ssl_get0_paramSSL_get0_param 3ssl 3 1721417624 B - - gz get and set verification parametersregfree 3p- 3p 3p 1402354218 B - t gz regular expression matchingswapcontext 3p- 3p 3p 1402354218 B - - gz manipulate user contextssubpad- 3x 3 1720626759 B - - gz create and display curses padsgit-patch-id- 1 1 1722330783 A - - gz Compute unique ID for a patchxtappsetfallbackresourcesXtAppSetFallbackResources 3 3 1501646833 A - - gz set fallback resourcesxcb_sync_create_counter_checked- 3 3 1540917640 B - - gz xtpopupspringloadedXtPopupSpringLoaded 3 3 1501646833 B - - gz map a pop-upsystemd-localed- 8 8 1711457788 B - - gz Locale bus mechanismlvmsadc- 8 8 1619616701 A - - gz LVM system activity data collectorgetpwuid_r getpwuid_r 3 getpwuid_r 3pdlerror 3p- 3p 3p 1402354214 A - - gz get diagnostic informationobj_sn2nidOBJ_sn2nid 3ssl 3 1721417624 B - - gz ASN1 object utility functionsexecve 3p- 3p 3p 1402354215 B - t gz execute a filexcb_glx_get_polygon_stipple_data_length- 3 3 1540917640 B - - gz vgchange- 8 8 1619616701 A - - gz Change volume group attributesbio_set_callbackBIO_set_callback 3ssl 3 1721417624 A - - gz BIO callback functionsaclocal- 1 1 1402387391 A - - gz manual page for aclocal 1.13.4flockfile 3- 3 3 1402354209 A - - gz lock FILE for stdioxwindoweventXWindowEvent 3 3 1710950786 B - - gz select events by typetcl_utfprevTcl_UtfPrev 3 3 1448008823 B - - gz routines for manipulating UTF-8 stringscos 3- 3 3 1402354208 A - - gz cosine functionxcb_selinux_get_property_context_context_end- 3 3 1540917640 B - - gz xcb_selinux_get_window_context_reply- 3 3 1540917640 B - - gz use_legacy_coding- 3x 3 1720626759 B - - gz use terminal's default colorseuare-releaserole- 1 1 1484780705 A - - gz Release IAM role credentialsgetsid 3p- 3p 3p 1402354215 A - - gz get the process group ID of a session leaderxtisshellXtIsShell 3 3 1501646833 B - - gz obtain and verify a widget's classcfgetispeed 3p- 3p 3p 1402354214 A - - gz get input baud ratebn_mod_mulBN_mod_mul 3ssl 3 1721417624 B - - gz arithmetic operations on BIGNUMsmemchr memchr 3 memchr 3pttk::label- n n 1448008912 A - - gz Display a text string and/or imagebio_seekBIO_seek 3ssl 3 1721417624 B - - gz BIO control operationsencode::configEncode::Config 3pm 3 1402368577 A - - gz - internally used by Encodegetfsfile- 3 3 1402354209 A - - gz handle fstab entriessys/shm.h- 0p 0p 1402354203 C sys_shm.h - gz perlioPerlIO 3pm 3 1698237676 A - - gz On demand loader for PerlIO layers and root of PerlIO::* name spacemesg 1p- 1p 1p 1402354204 A - - gz permit or deny messageskeymaps- 5 5 1637771557 A - - gz keyboard table descriptions for loadkeys and dumpkeysxcb_randr_get_screen_resources_current_modes_iterator- 3 3 1540917640 B - - gz set_menu_format- 3x 3 1720626759 B - - gz set and get menu sizeseuca-delete-customer-gateway- 1 1 1484780705 A - - gz Delete a VPN customer gatewayrmdir 1- 1 1 1605565487 A - - gz remove empty directoriessha1_initSHA1_Init 3ssl 3 1721417624 B - - gz Secure Hash Algorithmtcl_setchannelerrorTcl_SetChannelError 3 3 1448008822 B - - gz functions to create/intercept Tcl errors by channel drivers.err_pop_to_markERR_pop_to_mark 3ssl 3 1721417624 B - - gz set marks and pop errors until markstatfs- 2 2 1402354206 A - - gz get file system statisticsxkbsetautorepeatrateXkbSetAutoRepeatRate 3 3 1710950785 A - - gz Sets the attributes of the RepeatKeys control for a keyboard devicexcb_set_selection_owner- 3 3 1540917640 A - - gz Sets the owner of a selectionlwres_gabnrequest_render- 3 3 1725373371 B - - gz lightweight resolver getaddrbyname message handlingsystemd-machined.service- 8 8 1711457788 A - - gz Virtual machine and container registration managertcl_scanelementTcl_ScanElement 3 3 1448008822 B - - gz manipulate Tcl listslz4cat- 1 1 1720626732 B - - gz lz4, unlz4, lz4cat - Compress or decompress .lz4 filesgit-verify-pack- 1 1 1722330783 A - - gz Validate packed Git archive filesaddwstr- 3x 3 1720626759 B - - gz add a string of wide characters to a curses window and advance cursorelf- 5 5 1402354219 A - - gz format of Executable and Linking Format (ELF) filesusernetctl- 8 8 1605543616 A - - gz allow a user to manipulate a network interface if permittedxcb_xevie_select_input_reply- 3 3 1540917640 B - - gz ssl_set1_paramSSL_set1_param 3ssl 3 1699892219 A - - gz get and set verification parameterserasewchar- 3x 3 1720626759 B - - gz curses environment query routinespwd 1p- 1p 1p 1402354204 A - - gz return working directory nameatan2l atan2l 3 atan2l 3ptld_check_8z- 3 3 1448125246 A - - gz API functiontcl_dictobjsizeTcl_DictObjSize 3 3 1448008821 B - - gz manipulate Tcl objects as dictionarieslwres_resutil- 3 3 1725373371 B - - gz lightweight resolver utility functionswin_wch- 3x 3 1720626759 B - - gz extract a complex character and rendition from a windowclearenv- 3 3 1402354207 A - - gz clear the environmentuname uname 2 uname 1p uname 1 uname 3peuare-rolecreate- 1 1 1484780705 A - - gz Create a new rolepcre16_get_named_substring- 3 3 1573510868 B - - gz Perl-compatible regular expressionsxtdisplayXtDisplay 3 3 1501646833 A - - gz obtain window information about a widgetdsa_sig_freeDSA_SIG_free 3ssl 3 1699892207 A - - gz allocate and free DSA signature objectssystemd-fsck- 8 8 1711457788 B - - gz File system checker logicip-addrlabel- 8 8 1601484048 A - - gz protocol address label managementxcb_xkb_get_kbd_by_name_reply- 3 3 1540917640 B - - gz xcb_grab_pointer_reply- 3 3 1540917640 B - - gz Grab the pointerxtgetselectionvalueXtGetSelectionValue 3 3 1501646833 A - - gz obtain selection valuestcl_unichartoutfTcl_UniCharToUtf 3 3 1448008823 B - - gz routines for manipulating UTF-8 stringsfcfontsetmatchFcFontSetMatch 3 3 1520307172 A - - gz Return the best font from a set of font setsdbd::sqlite::cookbookDBD::SQLite::Cookbook 3pm 3 1402349859 A - - gz The DBD::SQLite Cookbookpem_read_rsa_pubkeyPEM_read_RSA_PUBKEY 3ssl 3 1721417624 B - - gz PEM routinesxcb_xinerama_is_active_reply- 3 3 1540917640 B - - gz xrmoptionkindXrmOptionKind 3 3 1710950786 B - - gz initialize the Resource Manager, Resource Manager structures, and parse the command linefsetfilecon- 3 3 1585710994 B - - gz set SELinux security context of a fileftruncate 3p- 3p 3p 1402354215 A - - gz truncate a file to a specified lengthlsearch n- n n 1448008823 A - - gz See if a list contains a particular elementcpan::queueCPAN::Queue 3pm 3 1698237384 A - - gz internal queue support for CPAN.pmepoll_ctl- 2 2 1402354204 A - - gz control interface for an epoll descriptoreuca-reset-instance-attribute- 1 1 1484780705 A - - gz Reset an attribute of an instance to its default valuegmtime_r gmtime_r 3 gmtime_r 3pabrt-action-perform-ccpp-analysis- 1 1 1601569733 A - - gz Allows users to select acceptable way of core dump analysisllrintf llrintf 3 llrintf 3pfrexp 3- 3 3 1402354209 A - - gz convert floating-point number to fractional and integral componentsfesetexceptflag 3- 3 3 1402354209 B - - gz floating-point rounding and exception handlingxstringlisttotextpropertyXStringListToTextProperty 3 3 1710950786 A - - gz convert string lists and text property structurexcb_res_query_clients_unchecked- 3 3 1540917640 B - - gz bn_mul_words- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionscpan::handleconfigCPAN::HandleConfig 3pm 3 1698237384 A - - gz internal configuration handling for CPAN.pmwctrans 3- 3 3 1402354213 A - - gz wide-character translation mappingftell 3- 3 3 1402354209 B - - gz reposition a streamtest::tutorialTest::Tutorial 3pm 3 1402359208 A - - gz A tutorial about writing really basic testsform_cursor- 3x 3 1720626759 A - - gz position a form window cursorendgrent 3p- 3p 3p 1402354214 B - - gz group database entry functionsplatform::shell- n n 1448008823 A - - gz System identification support code and utilitiesxcb_glx_get_query_objectiv_arb_data_end- 3 3 1540917640 B - - gz swapoff 8- 8 8 1612283497 B - - gz enable/disable devices and files for paging and swappingevp_cast5_cbcEVP_cast5_cbc 3ssl 3 1721417624 B - - gz EVP cipher routinespam_vinfo- 3 3 1585713595 B - - gz display messages to the userxwclookupstringXwcLookupString 3 3 1710950786 B - t gz obtain composed input from an input methodEnv 3pm- 3pm 3 1402391860 A - - gz perl module that imports environment variables as scalars or arrayscexpf cexpf 3 cexpf 3pwww::mechanize::examplesWWW::Mechanize::Examples 3pm 3 1391076350 A - - gz Sample programs that use WWW::Mechanizeevp_md2EVP_md2 3ssl 3 1721417624 B - - gz EVP digest routinestcl_channeloutputprocTcl_ChannelOutputProc 3 3 1448008821 B - - gz procedures for creating and manipulating channels_llseek- 2 2 1402354204 B - - gz reposition read/write file offsetperlmroapi- 1 1 1698237666 A - - gz Perl method resolution plugin interfacegrub2-probe- 8 8 1722985065 A - - gz Probe device information for a given path.xeviqueryextensionXeviQueryExtension 3 3 1448003986 A - - gz X Extended Visual Information functionsxcb_glx_get_minmax_parameteriv_data- 3 3 1540917640 B - - gz xcb_get_font_path- 3 3 1540917640 A - - gz tty tty 4 tty 1p tty 1curs_move- 3x 3 1715932338 A - - gz move curses window cursordnssec-keymgr- 8 8 1725373374 A - - gz Ensures correct DNSKEY coverage for a zone based on a defined policycircleq_initCIRCLEQ_INIT 3 3 1402354206 B - - gz implementations of lists, tail queues, and circular queuesxcb_randr_set_screen_config- 3 3 1540917640 A - - gz statvfs.h- 0p 0p 1402354203 B - - gz VFS File System information structurecatanl 3- 3 3 1402354207 B - - gz complex arc tangentsdoveadm-acl- 1 1 1724195936 A - - gz Manage Access Control List (ACL)evp_pkey_ctx_set_dsa_paramgen_bitsEVP_PKEY_CTX_set_dsa_paramgen_bits 3ssl 3 1721417624 B - - gz algorithm specific control operationsscalbn 3p- 3p 3p 1402354218 A - - gz compute exponent using FLT_RADIXgcvt 3- 3 3 1402354209 A - - gz convert a floating-point number to a stringtkill- 2 2 1402354206 A - - gz send a signal to a threadgit-stripspace- 1 1 1722330780 A - - gz Remove unnecessary whitespaceeuca-replace-network-acl-association- 1 1 1484780705 A - - gz Associate a new VPC network ACL with a subnetwcstold- 3p 3p 1402354219 B - - gz convert a wide-character string to a double-precision numberio::ttyIO::Tty 3pm 3 1402369823 A - - gz Low-level allocate a pseudo-Tty, import constants.klogctl 3- 3 3 1402354210 B - - gz read and/or clear kernel message ring buffer; set console_loglevelterminfo- 5 5 1715932335 A - t gz terminal capability data basexcb_res_query_client_resources_types_iterator- 3 3 1540917640 B - - gz ionice- 1 1 1612283497 A - - gz set or get process I/O scheduling class and priorityxcb_set_selection_owner_checked- 3 3 1540917640 B - - gz Sets the owner of a selectiongetttyent- 3 3 1402354212 A - - gz get ttys file entryxcb_glx_get_tex_parameteriv_data_length- 3 3 1540917640 B - - gz evp_idea_cfbEVP_idea_cfb 3ssl 3 1721417624 B - - gz EVP cipher routinesssl_ctx_add_client_custom_extSSL_CTX_add_client_custom_ext 3ssl 3 1721417624 B - - gz custom TLS extension handlingxcb_glx_select_buffer_checked- 3 3 1540917640 B - - gz pure-authd- 8 8 1730292103 A - - gz External authentication agent for Pure-FTPd.datetime::locale::zh_hkDateTime::Locale::zh_HK 3pm 3 1402390633 A - - gz xcb_x_print_print_get_page_dimensions- 3 3 1540917640 A - - gz xcb_no_operation- 3 3 1540917640 A - - gz xcb_xc_misc_get_xid_list_unchecked- 3 3 1540917640 B - - gz bcopy 3- 3 3 1402354207 A - - gz copy byte sequencerenameat- 2 2 1402354205 A - - gz rename a file relative to directory file descriptorsgit-mktree- 1 1 1722330783 A - - gz Build a tree-object from ls-tree formatted textssl_get_info_callbackSSL_get_info_callback 3ssl 3 1721417624 B - - gz handle information callback for SSL connectionsxcb_get_keyboard_mapping_keysyms_end- 3 3 1540917640 B - - gz tcl_newlongobjTcl_NewLongObj 3 3 1448008822 B - - gz manipulate Tcl objects as integer valuesinet_pton inet_pton 3 inet_pton 3pxmodmap- 1 1 1502476988 A - - gz utility for modifying keymaps and pointer button mappings in Xpthread_key_delete- 3p 3p 1402354217 A - - gz thread-specific data key deletionplanesofscreenPlanesOfScreen 3 3 1710950785 B - - gz screen information functions and macrostcl_getunicharTcl_GetUniChar 3 3 1448008822 B - - gz manipulate Tcl objects as stringsacs_map- 3x 3 1720626759 B - - gz curses terminfo global variablesutf8 3pm- 3pm 3 1698237678 A - - gz Perl pragma to enable/disable UTF-8 (or UTF-EBCDIC) in source codecosf 3p- 3p 3p 1402354214 B - - gz cosine functionswab 3p- 3p 3p 1402354218 A - - gz swap bytespthread_attr_getstack 3p- 3p 3p 1402354217 A - - gz get and set stack attributesccosl 3- 3 3 1402354207 B - - gz complex cosine functionfsck- 8 8 1612283497 A - - gz check and repair a Linux filesystemdh_newDH_new 3ssl 3 1721417624 A - - gz allocate and free DH objectsxtappreleasecacherefsXtAppReleaseCacheRefs 3 3 1501646833 A - - gz decrement reference counts for resourcescarp::assertCarp::Assert 3pm 3 1411488618 A - - gz executable commentsdifftime difftime 3 difftime 3pxcb_rotate_properties- 3 3 1540917640 A - - gz lex lex 1p lex 1,ui_get0_resultUI_get0_result 3ssl 3 1721417624 B - - gz New User Interfacecolor_pairCOLOR_PAIR 3x 3 1720626759 B - - gz curses color manipulation routinesxcb_button_press_event_t- 3 3 1540917640 A - - gz a mouse button was pressed/releasedpcre16_copy_substring- 3 3 1573510868 B - - gz Perl-compatible regular expressionsssl_connectSSL_connect 3ssl 3 1699892222 A - - gz initiate the TLS/SSL handshake with an TLS/SSL serverdtrace- 1 1 1602605484 A - - gz Dtrace compatible user application static probe generation tool.ipcalc- 1 1 1605543617 A - - gz perform simple manipulation of IP addressesimaxdiv imaxdiv 3 imaxdiv 3pxcb_xv_get_port_attribute_reply- 3 3 1540917640 B - - gz get_default_context_with_rolelevel- 3 3 1585710994 B - - gz determine SELinux context(s) for user sessionscsplit 1- 1 1 1605565487 A - - gz split a file into sections determined by context linesnocbreak- 3x 3 1720626759 B - - gz curses input optionshypotl hypotl 3 hypotl 3padd_key- 2 2 1402354204 A - - gz add a key to the kernel's key management facilitytimerisset- 3 3 1402354213 B - - gz timeval operationsxquerytextextentsXQueryTextExtents 3 3 1710950786 B - - gz compute or query text extentsssh-keyscan- 1 1 1707907012 A - - gz gather ssh public keysdbi::sql::nanoDBI::SQL::Nano 3pm 3 1402362412 A - - gz a very tiny SQL engineqgcvt- 3 3 1402354211 B - - gz convert a floating-point number to a stringcd n- n n 1448008823 A - - gz Change working directoryxseticfocusXSetICFocus 3 3 1710950786 A - - gz set and unset input context focuspanel_above- 3x 3 1720626759 B - - gz panel stack extension for cursesxcb_glx_get_tex_level_parameteriv_unchecked- 3 3 1540917640 B - - gz casinh 3p- 3p 3p 1402354214 A - - gz complex arc hyperbolic sine functionstifffieldnameTIFFFieldName 3tiff 3 1729525165 A - - gz Get TIFF field name from field informationmake 1p- 1p 1p 1402354204 A - - gz maintain, update, and regenerate groups of programs (DEVELOPMENT)xsubtractregionXSubtractRegion 3 3 1710950786 B - - gz region arithmeticcatopen catopen 3 catopen 3peuca-create-volume- 1 1 1484780705 A - - gz Create a new volumekeyok- 3x 3 1715932339 A - - gz enable or disable a keycodessl_ctx_set_tmp_dh_callbackSSL_CTX_set_tmp_dh_callback 3ssl 3 1721417624 A - - gz handle DH keys for ephemeral key exchangesys_ipc.h- 0p 0p 1402354203 A - - gz XSI interprocess communication access structurex509_verify_param_set1_ip_ascX509_VERIFY_PARAM_set1_ip_asc 3ssl 3 1721417624 B - - gz X509 verification parametersusleep 1- 1 1 1605543616 A - - gz sleep some number of microsecondsscalblnl 3- 3 3 1402354212 B - - gz multiply floating-point number by integral power of radixset_field_pad- 3x 3 1720626759 B - - gz color and attribute control for form fieldsec_point_dblEC_POINT_dbl 3ssl 3 1721417624 B - - gz Functions for performing mathematical operations and tests on EC_POINT objects.shmdt 2- 2 2 1402354206 A - - gz System V shared memory operationssocket 3p- 3p 3p 1402354218 A - - gz create an endpoint for communicationmkfs.ext4- 8 8 1711459141 B - - gz create an ext2/ext3/ext4 filesystemscr_restore- 3x 3 1720626759 B - - gz read (write) a curses screen from (to) a fileseed48 3- 3 3 1402354212 B - - gz generate uniformly distributed pseudo-random numbersgetmsg 2- 2 2 1402354205 B - - gz unimplemented system callsxtclosedisplayXtCloseDisplay 3 3 1501646833 B - - gz initialize, open, or close a displayxcb_randr_get_output_property_data_end- 3 3 1540917640 B - - gz xcb_glx_get_tex_enviv_data_length- 3 3 1540917640 B - - gz xcb_dpms_get_timeouts_unchecked- 3 3 1540917640 B - - gz xcb_glx_get_tex_geniv_data- 3 3 1540917640 B - - gz datetime::locale::kok_inDateTime::Locale::kok_IN 3pm 3 1402390633 A - - gz image::info::icoImage::Info::ICO 3pm 3 1402363342 A - - gz Microsoft ICO support for Image::Infotsort tsort 1p tsort 1term::ansicolorTerm::ANSIColor 3pm 3 1698237677 A - - gz Color screen output using ANSI escape sequencesdel_curterm_sp- 3x 3 1720626759 B - - gz curses screen-pointer extension/  =[jkcmp]kxcb_z6lkbio_5Ϛkposi=hjdsa_U  P:jsyst  4jip-a  <jxcb_jxcb_*( Cjswap9+ Sjevp_+=lkkxcb_*{krsa_[N!hjpam_+ 7Kbjxwcl",SZjpthrx:YSjasn1xFktiff EajmoreAy>djerr_yA$Xjbreay5O4jsinfz(gmjset_CzN:$jcontz KD)jtty/R#jxcb_zQjxcb_0{)bjpackt{nKjerro{8 jxcb_>|!Gjssl_z|O{@jdate|3jdate0}8cJjsyst}kMZjtiff}h 0jabrty~r^jmvwg ]jimaxk Ckssl_#a,*jmodugOyjin_wySMjsyst4ΉCjdate!85jxfetv KjcoshYyjnran [ujipc:1 g.~jxml:4؏jxcb_$qQ!jipta- UwojhtmlU(!jec_gewjmounq-Wjfsck 318jtcl_Xzjxdr_O L *jxcb_/0jevp_TfjlocaB Ojptsn I)jfsynQq(jxcb_J)xjtcl__BP jclea5 jpam_J 4-jlimi =p7jslk_ ;A2 jmvwi Jzjssl_jSZjnfs4*ijxtdi  Kaio_suspend 3p- 3p 3p 1402354214 A - - gz wait for an asynchronous I/O request (REALTIME)template::tools::ttree Template::Tools::ttree 3pm Template::Tools::ttree 1nl_langinfo nl_langinfo 3 nl_langinfo 3pstrncat 3- 3 3 1402354212 B - - gz concatenate two stringsdatetime::locale::kl_glDateTime::Locale::kl_GL 3pm 3 1402390639 A - - gz fdiml 3- 3 3 1402354209 B - - gz positive differenceencodeEncode 3pm 3 1402368577 A - - gz character encodings in Perlwhoami- 1 1 1605565487 A - - gz print effective useridperl5161delta- 1 1 1698237662 A - - gz what is new for perl v5.16.1image::info::tiffImage::Info::TIFF 3pm 3 1402363342 A - - gz TIFF support for Image::Infovfwprintf 3- 3 3 1402354213 B - - gz formatted wide-character output conversioneuca-bundle-and-upload-image- 1 1 1484780705 A - - gz Prepare and upload an image for use in the cloudxkbgetdetectableautorepeatXkbGetDetectableAutoRepeat 3 3 1710950785 A - - gz Determines whether or not the server supports DetectableAutoRepeatxtremovegrabXtRemoveGrab 3 3 1501646833 B - - gz redirect user input to a modal widgettcl_firsthashentryTcl_FirstHashEntry 3 3 1448008822 B - - gz procedures to manage hash tablesmenupopdownMenuPopdown 3 3 1501646833 B - - gz unmap a pop-updatetime::locale::zh_hant_moDateTime::Locale::zh_Hant_MO 3pm 3 1402390639 A - - gz msgfmt- 1 1 1465650364 A - - gz compile message catalog to binary formatallplanesAllPlanes 3 3 1710950786 A - - gz Display macros and functionsxml::sax::documentlocatorXML::SAX::DocumentLocator 3pm 3 1402345097 A - - gz Helper class for document locatorsobj_cleanupOBJ_cleanup 3ssl 3 1721417624 B - - gz ASN1 object utility functionsxcb_sync_create_fence_checked- 3 3 1540917640 B - - gz xcb_get_image_data- 3 3 1540917640 B - - gz inttypes.h- 0p 0p 1402354203 A - t gz fixed size integer typescache_metadata_size- 8 8 1605543195 A - - gz Estimate the size of the metadata device needed for a given configuration.evp_verifyfinalEVP_VerifyFinal 3ssl 3 1721417624 B - - gz EVP signature verification functionsxcb_xinerama_query_screens_screen_info- 3 3 1540917640 B - - gz pcre32_study- 3 3 1573510868 B - - gz Perl-compatible regular expressionspthread_self 3- 3 3 1402354211 A - - gz obtain ID of the calling threadasn1_generate_v3ASN1_generate_v3 3ssl 3 1721417624 B - - gz ASN1 generation functionsmore 1- 1 1 1612283497 A - - gz file perusal filter for crt viewingerr_clear_errorERR_clear_error 3ssl 3 1699892208 A - - gz clear the error queuebreak 2- 2 2 1402354204 B - - gz unimplemented system callssinf 3- 3 3 1402354212 B - - gz sine functionset_field_init- 3x 3 1720626759 B - - gz set hooks for automatic invocation by applicationscontext_new- 3 3 1585710994 A - - gz Routines to manipulate SELinux security contextsxcb_glx_create_pixmap_checked- 3 3 1540917640 B - - gz xcb_glx_get_visual_configs_property_list- 3 3 1540917640 B - - gz package::stash::xsPackage::Stash::XS 3pm 3 1402388395 A - - gz faster and more correct implementation of the Package::Stash APIerror::reporting- 7stap 7 1602605484 A - - gz systemtap error reportingxcb_input_xi_get_selected_events- 3 3 1540917640 A - - gz ssl_set_psk_client_callbackSSL_set_psk_client_callback 3ssl 3 1721417624 B - - gz set PSK client callbackdatetime::locale::zh_cnDateTime::Locale::zh_CN 3pm 3 1402390632 A - - gz datetime::locale::ug_arab_cnDateTime::Locale::ug_Arab_CN 3pm 3 1402390632 A - - gz systemd-notify- 1 1 1711457787 A - - gz Notify service manager about start-up completion and other daemon status changestiffreadrgbastripTIFFReadRGBAStrip 3tiff 3 1729525165 A - - gz read and decode an image strip into a fixed-format rasterabrt-harvest-pstoreoops- 1 1 1601569733 A - - gz Reconstruct oops from /sys/fs/pstore/* files, create ABRT problems and remove the filesmvwget_wch- 3x 3 1720626759 B - - gz get (or push back) a wide character from curses terminal keyboardimaxabs 3- 3 3 1402354210 B - - gz compute the absolute value of an integercoshf coshf 3 coshf 3pinet_ntoa inet_ntoa 3 inet_ntoa 3p 5P #jhpf2af5!hvsnpm DWhgpl3иhxcb_!vhfclo1 )RhcurscWFhcpanϑLmheuca,AC}hgit- Qherr_ޒ Nhhhas_9= hphp-}ENchec_gʓ`OjthcfdiBE=,1hxcb_.E hcrypהK:hzipc;;yM7hbhr}6Qvhtcl__hmenu) K Jhlwre~B hextuזa6hvfwpV V>hmemc 1x^hmesg4LBhkeym<Ptie:Ohaulae4T~Ghsigs 7yhgets5 hnano eras9 ;!]hsg_rAF.hsigr  hperl -`hbzmoWfhvmstD;3hxcb_!hfput 3hloca] hpm-pq @T3hstri'+#htempSNqPhrepom<2EhjourExtun}HfcatמCEr0hlgam /ΪhscsiN B}hxcb_hcomp͝>ǧhkey_=hif nc8heuarB 6hxcb_,9hasinD ;rShdateLfile&" Hhlocaninch# \ui_n#< -zhcompO5htiff hw>hxcb_[48@hec_gaZrhwin_ b'hmous :z(hidlo1 hbtraAphip-t  />hin.hY4hposixrhxtsc(R\8hssl_]Pkhtcl_ Hŵ[hsha2Jhclrtj @hcarpDhcpanRuse_B+;d2i_+Y{htcl_gfIahpwri ,powlr,fcch,Nec_p,%Rhxcb_%6hfcweSjNhxcb_!Rhswit Vdate/0Nhlogi=hfgets5α.hdate8hstrf  7Sheuca-!@Bhrpc Fwshxtpo9ehsystM/(+hlvms=getoQ  2xcb_ #xtapYK@hgetp 8hpr_ cryp $VfZGhdler 7uuid Qtcl_@ihobj_: D]hexec +@hxcb_(hvgch 9hbio_CC"zhaclo9-zhrmdi| 3_Lhfloc .hxwin ;Qwhtcl_Z Lhcos *_hxcb_-M2hxcb_*%Khuse_j9i7heuar7+hgets IlhxtisQ Ehcfge0hbn_m Gxhmemc1.-httk:L ==hends , )hbio_ ;±hencoEChgetf, /$hsys/e %hperle~Bhxcb_6Ohset_2܎heuca' 8Mhxcb_-hsha1  ;?htcl_ iherr_y Ohstat 5:Shxkbs q?hxcb_ 8 :8`{1ilwre NtiffK :fput ;iisystQ MecvtQ itcl_ ={ilz4c Q I(igit-\ <+iaddw a}ielfNtap: PE2iuserc Viscu: Acolo @type bind RlchoD 5Mixcb_seth Ogrub Jeulbd?open /_tra 5/'issl_Nclog@ƭierasY =xcb_ !lwre\ Amke2 8euar QL;Qiunamv#-ieuar,Ripcre>Beiperl 9isigdB <{ievp_f ; 2ivgre 1,Z itiff5ixcb_- , islk_h6ifcla?$igrou ;ظiiswuF  iigittgCzimall : igunz3ixcb_8ŗibn_fm=ifute2igrofM(jWidate?P)icurscielin"Kiwhipt BSij1 3?isetr <zigrpuL JI ixcb_'MipthrZ@ivsnp[ 6 mitdel 85itcl_OEixterC =Ņieuid H'icms_ިS~ixcb_?B*0isetuFinetdHl0icpan@err_pPimessX@Ϡiio:: I einscd4Xixcb_+Zilocad Mr{imran OpthrOformW Fgett .getc4itie:4Fibn_lZ ? idlcl J\ixcb_menu?xcb_ idup21g{(iisnoF 52ieuarg4des_ 6~FifehoIy1 3>xcb_qqiperlNgit-CIixtin\Jlvex 8xcb_'ixtca=̟iseliFH ibf_dp :yiuri:L!issl_[|tifull- ixque 9tixcb_<<isosrk J{Uidate3Y2.iisas  @iif_nU g{$IixshaQerr_Dtcl_j\Eixcb_ +idnssf5a,ieulbLyixrecNclog@fcco=idatej0euscP^+igete -bundO|imkno<\pixtun*fxcb_"ttk:;\.isetp nl 1#2auvi Pciiso_ϸ ^&imkno8dlidbi:fXv]ikeys$3}Cid2i__sdixcb_(T}ixcb_%"g;Eisystb(gipcre>`Qihfsc$wh*ixcb_2Lirrese Nidefi;ibindD2ifts_Y 4 nievp_ ;igeouݽ &perlirix- 1 1 1698237666 A - - gz Perl version 5 on Irix systemssigdelset sigdelset 3 sigdelset 3pevp_des_ecbEVP_des_ecb 3ssl 3 1721417624 B - - gz EVP cipher routinesvgremove- 8 8 1619616701 A - - gz Remove volume group(s)tiffscanlinesizeTIFFScanlineSize 3tiff 3 1729525165 C TIFFsize - gz xcb_randr_get_output_info_crtcs- 3 3 1540917640 B - - gz slk_noutrefresh- 3x 3 1720626759 B - - gz curses soft label routinesfclangsetcompareFcLangSetCompare 3 3 1520307172 A - - gz compare language setsground_panel- 3x 3 1720626759 B - - gz curses screen-pointer extensioniswupper iswupper 3 iswupper 3pgittutorial-2- 7 7 1722330784 A - - gz A tutorial introduction to Git: part twomalloc_info- 3 3 1402354210 A - - gz export malloc state to a streamgunzip- 1 1 1652367512 B - - gz compress or expand filesxcb_x_print_print_end_doc- 3 3 1540917640 A - - gz bn_freeBN_free 3ssl 3 1721417624 B - - gz allocate and free BIGNUMsfutex 2- 2 2 1402354204 A - - gz fast user-space lockinggroff- 1 1 1402345033 A - - gz front-end for the groff document formatting systemdatetime::localeDateTime::Locale 3pm 3 1402390635 A - - gz Localization support for DateTime.pmcurses::ui::dialog::dirbrowserCurses::UI::Dialog::Dirbrowser 3pm 3 1454728582 A - - gz Create and manipulate filebrowser dialogselinks- 1 1 1573511806 A - - gz lynx-like alternative character mode WWW browserwhiptail- 1 1 1402386491 A - - gz display dialog boxes from shell scriptsj1 3p- 3p 3p 1402354216 B - - gz Bessel functions of the first kindsetreuid 3p- 3p 3p 1402354218 A - - gz set real and effective user IDsgrpunconv- 8 8 1565319053 B - - gz convert to and from shadow passwords and groupsxcb_composite_get_overlay_window_reply- 3 3 1540917640 B - - gz pthread_attr_setinheritsched 3- 3 3 1402354211 A - - gz set/get inherit-scheduler attribute in thread attributes objectvsnprintf 3- 3 3 1402354213 B - - gz formatted output conversiontdelete 3p- 3p 3p 1402354218 B - - gz manage a binary search treetcl_startofnextwordtcl_startOfNextWord n n 1448008823 B - - gz standard library of Tcl proceduresxterrormsgXtErrorMsg 3 3 1501646833 A - - gz high-level error handlerseuidaccess- 3 3 1402354208 A - - gz check effective user's permissions for a filecms_add0_certCMS_add0_cert 3ssl 3 1721417624 A - - gz CMS certificate and CRL utility functionsxcb_list_fonts_with_info_name- 3 3 1540917640 B - - gz get matching font names and informationsetup setup 2 setup 1netdb.h- 0p 0p 1402354203 A - - gz definitions for network database operationscpanplus::hackingCPANPLUS::Hacking 3pm 3 1402392266 A - - gz developing CPANPLUSmessage- n n 1448008912 A - - gz Create and manipulate message widgetsio::fileIO::File 3pm 3 1698237674 A - - gz supply object methods for filehandlesnscd- 8 8 1402354220 A - - gz name service cache daemonxcb_glx_gen_queries_arb_reply- 3 3 1540917640 B - - gz localtime 3p- 3p 3p 1402354216 A - - gz convert a time value to a broken-down local timemrand48 3- 3 3 1402354211 B - - gz generate uniformly distributed pseudo-random numberstie::stdscalarTie::StdScalar 3pm 3 1698237678 C Tie::Scalar - gz bn_lshiftBN_lshift 3ssl 3 1721417624 B - - gz bit operations on BIGNUMsdlclose 3- 3 3 1402354208 B - - gz programming interface to dynamic linking loaderxcb_x_print_print_select_input- 3 3 1540917640 A - - gz dup2 dup2 2 dup2 3pisnormal isnormal 3 isnormal 3peuare-userlistkeys- 1 1 1484780705 A - - gz List a user's access keysfeholdexcept 3- 3 3 1402354209 B - - gz floating-point rounding and exception handlingperlapi- 1 1 1698237663 A - - gz autogenerated documentation for the perl public APIxtinitializewidgetclassXtInitializeWidgetClass 3 3 1501646833 A - - gz initialize a widget classxtcallcallbacklistXtCallCallbackList 3 3 1501646833 B - - gz process callbacksselinux_lsetfilecon_default- 3 3 1585710994 A - - gz set the file context to the system defaultsbf_decryptBF_decrypt 3ssl 3 1721417624 B - - gz Blowfish encryptionfull- 4 4 1402354219 A - - gz always full deviceex ex 1p ex 1uri::_punycodeURI::_punycode 3pm 3 1402351652 A - - gz encodes Unicode string in Punycodessl_ctx_set_session_id_contextSSL_CTX_set_session_id_context 3ssl 3 1721417624 A - - gz set context within which session can be reused (server side only)xquerycolorsXQueryColors 3 3 1710950786 B - t gz obtain color valuesxcb_glx_get_lightfv- 3 3 1540917640 A - - gz sosreport- 1 1 1708443765 A - - gz Collect and package diagnostic and support datadatetime::locale::af_naDateTime::Locale::af_NA 3pm 3 1402390634 A - - gz isascii 3p- 3p 3p 1402354216 A - - gz test for a 7-bit US-ASCII characterif_nameindex if_nameindex 3 if_nameindex 3plcong48 3- 3 3 1402354208 A - - gz generate uniformly distributed pseudo-random numberseuare-userresyncmfadevice- 1 1 1484780705 A - - gz Re-synchronize an MFA device with the servercreat 3p- 3p 3p 1402354214 A - - gz create a new file or rewrite an existing onei2d_dsa_pubkeyi2d_DSA_PUBKEY 3ssl 3 1721417624 B - - gz DSA key encoding and parsing functions.fabs 3p- 3p 3p 1402354215 A - - gz absolute value functionxdisplaynameXDisplayName 3 3 1710950786 B - - gz default error handlerslwres_lwpacket_renderheader- 3 3 1725373371 B - - gz lightweight resolver packet handling functionstimezone 3- 3 3 1402354213 B - - gz initialize time conversion informationfetestexcept 3p- 3p 3p 1402354215 A - - gz test floating-point exception flagsgpg- 1 1 1533764355 B - - gz OpenPGP encryption and signing toolxshapecombinerectanglesXShapeCombineRectangles 3 3 1448003986 B - - gz X nonrectangular shape functionsxcb_glx_get_separable_filter_rows_and_cols- 3 3 1540917640 B - - gz dnssec-keygen- 8 8 1725373373 A - - gz DNSSEC key generation tooleulb-delete-lb-listeners- 1 1 1484780705 A - - gz Delete one or more listeners from a load balancerxrectinregionXRectInRegion 3 3 1710950786 B - - gz determine if regions are empty or equaldatetime::locale::itDateTime::Locale::it 3pm 3 1402390640 A - - gz getegid32- 2 2 1402354204 B - - gz get group identitymknod 2- 2 2 1402354205 A - - gz create a special or ordinary filextunregisterdrawableXtUnregisterDrawable 3 3 1501646833 B - - gz register a drawable with the Intrinsics event dispatchersetprotoent setprotoent 3 setprotoent 3piso_8859-3- 7 7 1402354220 A - t gz ISO 8859-3 character set encoded in octal, decimal, and hexadecimalmknodat- 2 2 1402354205 A - - gz create a special or ordinary file relative to a directory file descriptordbi::const::getinforeturnDBI::Const::GetInfoReturn 3pm 3 1402362412 A - - gz Data and functions for describing GetInfo resultskeysyms- n n 1448008912 A - - gz keysyms recognized by Tkd2i_private_keyd2i_Private_key 3ssl 3 1721417624 B - - gz decode and encode functions for reading and saving EVP_PKEY structures.xcb_selinux_get_property_create_context- 3 3 1540917640 A - - gz xcb_glx_get_tex_level_parameteriv- 3 3 1540917640 A - - gz systemd-logind.service- 8 8 1711457788 A - - gz Login managerpcre16_refcount- 3 3 1573510868 B - - gz Perl-compatible regular expressionshfscHFSC 8 8 1601484048 C tc-hfsc - gz xcb_input_xi_passive_grab_device_modifiers_length- 3 3 1540917640 B - - gz rresvport- 3 3 1402354212 B - - gz routines for returning a stream to a remote commanddefine_key_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionbindtextdomain- 3 3 1465650185 A - - gz set directory containing message catalogsfts_open- 3 3 1402354209 B - - gz traverse a file hierarchyevp_md_typeEVP_MD_type 3ssl 3 1721417624 B - - gz EVP digest routinesgeouplookup6- 1 1 1565307267 C geoiplookup6 - gz module::pluggableModule::Pluggable 3pm 3 1402350267 A - - gz automatically give your module the ability to have pluginsin_wch- 3x 3 1720626759 B - - gz extract a complex character and rendition from a windowsystemd-fsck-root.service- 8 8 1711457788 B - - gz File system checker logicdatetime::locale::sr_latn_csDateTime::Locale::sr_Latn_CS 3pm 3 1402390641 A - - gz xfetchnameXFetchName 3 3 1710950786 B - - gz set or read a window's WM_NAME propertynrand48_r- 3 3 1402354211 B - - gz generate uniformly distributed pseudo-random numbers reentrantlyipc::runIPC::Run 3pm 3 1402354788 A - - gz system() and background procs w/ piping, redirs, ptys (Unix, Win32)xml::parser::style::treeXML::Parser::Style::Tree 3pm 3 1402361425 A - - gz xcb_dri2_connect_device_name_length- 3 3 1540917640 B - - gz iptables- 8 8 1601571148 A - - gz administration tool for IPv4/IPv6 packet filtering and NAThtml::entitiesHTML::Entities 3pm 3 1402367721 A - - gz Encode or decode strings with HTML entitiesec_group_get_trinomial_basisEC_GROUP_get_trinomial_basis 3ssl 3 1721417624 B - - gz Functions for manipulating EC_GROUP objects.mount 8- 8 8 1612283497 A - - gz mount a filesystemfsck.xfs- 8 8 1601488312 A - - gz do nothing, successfullytcl_fsgetinternalrepTcl_FSGetInternalRep 3 3 1448008822 B - - gz procedures to interact with any filesystemxdr_u_long- 3 3 1402354213 B - - gz library routines for external data representationxcb_xf86dri_create_drawable- 3 3 1540917640 A - - gz evp_pkey_ctx_newEVP_PKEY_CTX_new 3ssl 3 1721417624 A - - gz public key algorithm context functions.localtime 3- 3 3 1402354210 B - - gz transform date and time to broken-down time or ASCIIptsname 3p- 3p 3p 1402354217 A - - gz get name of the slave pseudo-terminal devicefsync 2- 2 2 1402354204 A - - gz synchronize a file's in-core state with storage devicexcb_x_print_print_set_attributes_checked- 3 3 1540917640 B - - gz tcl_limittypeexceededTcl_LimitTypeExceeded 3 3 1448008822 B - - gz manage and check resource limits on interpretersclearerr_unlocked- 3 3 1402354207 B - - gz nonlocking stdio functionspam_conv- 3 3 1585713595 A - - gz PAM conversation functionlimits.h- 0p 0p 1402354203 A - - gz implementation-defined constantsslk_clear_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionmvwinsnstr- 3x 3 1720626759 B - - gz insert string before cursor in a curses windowssl_ctx_check_private_keySSL_CTX_check_private_key 3ssl 3 1721417624 B - - gz load certificate and key datanfs4_init_name_mapping- 3 3 1523419630 C nfs4_uid_to_name - gz kcmp- 2 2 1402354205 A - - gz compare two processes to determine if they share a kernel resourcexcb_intern_atom_reply- 3 3 1540917640 B - - gz Get atom identifier by namedlsym dlsym 3 dlsym 3pscrollok- 3x 3 1720626759 B - - gz curses output optionsecvt 3- 3 3 1402354209 A - - gz convert a floating-point number to a stringhtcacheclean- 8 8 1565357774 A - - gz Clean up the disk cachentsysv- 8 8 1602604008 A - - gz simple interface for configuring runlevelsssl_remove_sessionSSL_remove_session 3ssl 3 1721417624 B - - gz manipulate session cacheripemd160 RIPEMD160 3ssl ripemd160 1sslitem_opts- 3x 3 1720626759 B - - gz set and get menu item optionsgetumask- 3 3 1402354209 A - - gz get file creation maskxcb_glx_query_extensions_string_unchecked- 3 3 1540917640 B - - gz iso_8859-16- 7 7 1402354220 A - t gz ISO 8859-16 character set encoded in octal, decimal, and hexadecimalssl_set_msg_callbackSSL_set_msg_callback 3ssl 3 1721417624 B - - gz install callback for observing protocol messagesxcb_render_create_linear_gradient_checked- 3 3 1540917640 B - - gz rsa_private_encryptRSA_private_encrypt 3ssl 3 1721417624 A - - gz low level signature operationseuca-modify-vpc-attribute- 1 1 1484780705 A - - gz Modify an attribute of a VPCfccharsetnewFcCharSetNew 3 3 1520307172 A - - gz DEPRECATED alias for FcCharSetCreatesetutent- 3 3 1402354212 B - - gz access utmp file entrieserrx- 3 3 1402354208 B - - gz formatted error messagestfind tfind 3 tfind 3pxmbtextlisttotextpropertyXmbTextListToTextProperty 3 3 1710950786 A - t gz convert text lists and text property structureshostnamectl- 1 1 1711457787 A - - gz Control the system hostnamemprotect 2- 2 2 1402354205 A - - gz set protection on a region of memorymodule::buildModule::Build 3pm 3 1402373049 A - - gz Build and install Perl modulesdes_cbc_cksumDES_cbc_cksum 3ssl 3 1721417624 B - - gz DES encryptionvsscanf vsscanf 3 vsscanf 3ppam_sm_open_session- 3 3 1585713595 A - - gz PAM service function to start session managementsystemd-bootchart- 1 1 1711457787 A - - gz Boot performance graphing toolipc::open2IPC::Open2 3pm 3 1698237674 A - - gz open a process for both reading and writing using open2()tiffswabTIFFswab 3tiff 3 1729525165 A - - gz byte- and bit-swapping routinesssl_ctx_set_verify_depthSSL_CTX_set_verify_depth 3ssl 3 1721417624 B - - gz set peer certificate verification parametersbio_new_acceptBIO_new_accept 3ssl 3 1721417624 B - - gz accept BIOposix_trace_timedgetnext_event- 3p 3p 1402354217 B - - gz retrieve a trace event (TRACING)fwrite 3- 3 3 1402354209 B - - gz binary stream input/output/  {`ijxtdi  KdateY5perl 6tcl_C Khjdsa_U  P:jsyst  4jip-a  <jxcb_jxcb_*( Cjswap9+ Sjevp_+=feho Dxcb_ .!hjpam_+ 7Kbjxwcl",SZjpthrx:YSjasn1xFmail[ajmoreAy>djerr_yA$Xjbreay5O4jsinfz(gmjset_CzN:$jcontz KD)jtty/R#jxcb_zQjxcb_0{)bjpackt{nKjerro{8 jxcb_>|!Gjssl_z|O{@jdate|3jdate0}8cJjsyst}kMZjtiff}h 0jabrty~r^jmvwg ]jimaxk Cpthr_@,*jmodugOyjin_wySMjsyst4ΉCjdate!85jxfetv KjcoshYyjnran [ujipc:1 g.~jxml:4؏jxcb_$qQ!jipta- UwojhtmlU(!jec_gewjmounq-Wjfsck 318jtcl_Xzjxdr_O L *jxcb_/0jevp_TfjlocaB Ojptsn I)jfsynQq(jxcb_J)xjtcl__BP jclea5 jpam_J 4-jlimi =p7jslk_ ;A2 jmvwi Jzjssl_jSZjnfs4*[jkcmp] @ :80grub =kxcb_z6fput ;perl 7™kinet ckdlsyxcb_ ?#kscro 1date 05[kecvtFkhtcae 2ZkntsyEkssl_G okripeJ kitems 9bind RlchoD 5kgetu 1lkxcb_*\kiso_5 _xcb_[ kssl_alkkxcb_*{krsa_[Nkeuca7xcli 2/kfcch Je ksetue 3dkxmbtbkerrx3aktfinsKkhost| 6 $Xkmpro ?(kmoduGpl2p. Xstrc <moun +kdes_]8posi TGkvsscxcb_ &pod: LgrubU *akpam_K&vksyst 9}*\kipc:k _ktiff Ekssl_#alkbio_5Ϛkposi=1kfwri= 5ǎkldiv Vktalk 1LkfreaK 5 kabrt Lykfchd 5krand9 ;kxcb_ &ǐkbn_b Qdb_h J(kcksu$ A{ikdatem 3pӏkxcb_ .xtgeklog:ySjksran Qls 1%2kx509] Xkxcb_ xcb_!kabrt IU2&ktcl__ Y,kxfs_ A/kfset 6'ktrun] #kxcb_ "`kxmbd Slktcl_* H&ĩktcl_ U7zQktcl_ PktiffO T`-kread E5kfcpa <sB%kdoveU Gyјksimc <kacos .poDkprea+ C}kclosu jkisle FC+kins_ R!o3kgapp 5Lkgslj\ W,)kxcb_ "$kcurs ZMtkshmcl 9#kinsq =+ktcl_ Q`kssl_V [vkcsqr :9۵ksmar F]BkfileX W87qklati ^JYkgdb- :}ktclsf Bkkwcsp ]\kxcb_ 5>kxcb_X ekfcpa C(fkeuar 7dkcreaI <bvkcore ?**kabrt <0^kxtge' O keuca Gkrsa_ GUkfmax kdateT 0kevp_ M2wkqmov ,51ktop6 2ksplil 3kerro ;2kevp_ NBkpaneY <(kpod: Mq kdbm_ /mathUXE~skdmst4 >,Wkgrubz 'ssl_Qerr_Dmkloca Ylibp glseaï ,_kxcb_ 7Mkxcb_i clog@kxcb_ )\Zkpthr m;kXComd J?]kec_g \bundOkxcb_+ &`kssl_l ngkxcb_ 1ekxcb_2 'nevp_6 <ߢnssl_E7Wr nxcb_7VXnpure7 G{ndateE83Pnxcb_8&nxcb_8|nxcb_8#=nbcop;9-:nrenap9 OKngit-9 JWnssl_:a Pnxcb_:%b!nntcl_:Pn@ninet3; znxmodW;Ynpthr;>omq_r Aotcl_G [.]jnplan <Og:olwre Q[ntcl_g<I"nacs_<<nutf8= _H_ocpan" *a(encosfk=,a4nswab='npthr=9nccos >2qnfsckZ>>Ѱndh_n>?~nxtap>WncarpP? ;nseli` |8sndiff? nxcb_?ngit-` @ģnresi` ;Mnunal(a 5rNanwattha RTΎnssl_a T!nlogi0b <ɀnpolkzb 3%snxcb_b _anxcb_b yLRnsubpc K//njouroc >.Mnpk12c qFndefa5d F ossl_ S_lni2d_d S{ndated 3ܷnzipd7e F.nncom_e 7nfgete ;$Onrsa_f Pnlatiuf ^rnsem_f 7dengneqg < nxcb_`g !fnperlg 'j7ntempg ?unbio_h 7 nlwre[h =2o__fr 5?omunlY 1M+nkey_h = (}ndisph Eocosh 5F~ocracл 8_~QnmoveKi <odove 9ѱntiffi =%wonamed HO~8npcrei >enerr_=j W/#nxcb_j $logsbj XE{yocima nsvc_j Fncont=k K jnsystk 4?^nxtrek J#oscsi4 7b?owcsrv Brnxcb_4l %P|nxcb_tl ntcgel @$(oevp_ ?ntcl_l 9oquot aZnxcb_?m oxcb_S +ophar ?nb::xom VPWTnxcb_m Eorandʾ ? =obio_ =eowcleh @nutimn LRnxcb_^n *-vntcl_n pnx509o R?Unwcsco :ocms_ Sn_exio #nlex?g2nxcb_ (nevp_: Qnx509 TInftp 9j;;nxcb_I *ndate 0nperlӱ 5jnexp2 9кnunsho Wofcraa MnroutV ',Vndes_ Dngitmܲ 8Ununge :&{Boeuar 29oset_ 8Ni'olog1 78nxcb_d !I"npam_ N+nclnt Fx@nrm 1K 66Mntime ;nidmaȴ = ngcvt2Fnchec 2I,ndove1 ;nasn1O Pngitc ,Vnxtst U1bnpsfxb LfFnevp_2#d\ngete selinux_media_context_path- 3 3 1585710994 B - - gz These functions return the paths to the active SELinux policy configuration directories and filesgit-repack- 1 1 1722330782 A - - gz Pack unpacked objects in a repositoryresizeterm- 3x 3 1720626759 A - - gz change the curses terminal sizeunalias 1p- 1p 1p 1402354204 A - - gz remove alias definitionswattr_set- 3x 3 1720626759 B - - gz curses character and window attribute control routinesssl_load_client_ca_fileSSL_load_client_CA_file 3ssl 3 1699892224 A - - gz load certificate names from filelogind.conf.d- 5 5 1711457788 B - - gz Login manager configuration filespolkitd- 8 8 1643139761 A - - gz The polkit system daemonxcb_dri3_open_unchecked- 3 3 1540917640 B - - gz xcb_delete_property- 3 3 1540917640 A - - gz subpage_prot- 2 2 1402354206 A - - gz define a subpage protection for an address rangejournald.conf- 5 5 1711457788 A - - gz Journal service configuration filespk12util- 1 1 1730826028 A - - gz Export and import keys and certificate to or from a PKCS #12 file and the NSS databasedefault_type- 5 5 1585710994 A - - gz The SELinux default type configuration filei2d_x509_crl_bioi2d_X509_CRL_bio 3ssl 3 1721417624 B - - gz PKCS#10 certificate request functions.datetime::locale::es_prDateTime::Locale::es_PR 3pm 3 1402390636 A - - gz zipdetails- 1 1 1402361982 A - - gz display the internal structure of zip filescom_err- 3 3 1250127597 A - - gz common error display routinefgetgrent_r- 3 3 1402354209 B - - gz get group file entry reentrantlyrsa_padding_add_sslv23RSA_padding_add_SSLv23 3ssl 3 1721417624 B - - gz asymmetric encryption paddinglatin5- 7 7 1402354220 B - t gz ISO 8859-9 character set encoded in octal, decimal, and hexadecimalsem_overview- 7 7 1402354220 A - - gz overview of POSIX semaphoresgneqn- 1 1 1533764324 B - - gz format equations for ascii outputxcb_glx_get_polygon_stipple_data- 3 3 1540917640 B - - gz perltw- 1 1 1698237670 A - - gz XXXX Perl XXtempnam 3p- 3p 3p 1402354218 A - - gz create a name for a temporary filebio_new_connectBIO_new_connect 3ssl 3 1721417624 B - - gz connect BIOlwres_conf_clear- 3 3 1725373371 A - - gz lightweight resolver configurationkey_encryptsession- 3 3 1402354210 B - - gz interfaces to rpc keyserver daemondisplayofcccDisplayOfCCC 3 3 1710950786 A - - gz Color Conversion Context macrosmove_panel- 3x 3 1720626759 B - - gz panel stack extension for cursestiffsetwarninghandlerTIFFSetWarningHandler 3tiff 3 1729525165 C TIFFWarning - gz pcre16_get_substring_list- 3 3 1573510868 B - - gz Perl-compatible regular expressionserr_reason_error_stringERR_reason_error_string 3ssl 3 1721417624 B - - gz obtain human-readable error messagexcb_alloc_color_cells_pixels_length- 3 3 1540917640 B - - gz svc_getargs- 3 3 1402354212 B - - gz library routines for remote procedure callscontext_role_set- 3 3 1585710994 B - - gz Routines to manipulate SELinux security contextssystemd.target- 5 5 1711457788 A - - gz Target unit configurationxtremoveinputXtRemoveInput 3 3 1501646833 B - - gz register and remove an input sourcexcb_xkb_indicator_map_notify_event_t- 3 3 1540917640 A - - gz xcb_input_xi_set_focus_checked- 3 3 1540917640 B - - gz tcgetpgrp 3p- 3p 3p 1402354218 A - - gz get the foreground process group IDtcl_exportTcl_Export 3 3 1448008822 B - - gz manipulate namespacesxcb_xv_shm_put_image- 3 3 1540917640 A - - gz b::xrefB::Xref 3pm 3 1698237671 A - - gz Generates cross reference reports for Perl programsxcb_input_xi_get_property_reply- 3 3 1540917640 B - - gz utimes 3p- 3p 3p 1402354219 A - - gz set file access and modification times (LEGACY)xcb_sync_await_fence_checked- 3 3 1540917640 B - - gz tcl_logcommandinfoTcl_LogCommandInfo 3 3 1448008821 B - - gz retrieve or record information about errors and other return optionsx509_store_ctx_set0_crlsX509_STORE_CTX_set0_crls 3ssl 3 1721417624 B - - gz X509_STORE_CTX initialisationwcscpy wcscpy 3 wcscpy 3p_exit _exit 2 _Exit 2 _Exit 3p _exit 3punshare unshare 2 unshare 1fdiml fdiml 3 fdiml 3p O/ 3 @ ssl_ȨH[ltime ;json7e9ldeveE R1 leulb GWBlgrub :tc-by ClsigeS>^lxmbuKlstrn -Xlxcb_91,liswb Aio::L Y]?lwritZlrand9Ylxcb_8#9lclosv =pathM =eran}2lmemogdes_9xresFZOleacc:Hlsyst7lbn_iWcliso_? ^FlxtreMxcb_open/'bTlcsin 2lrioL7hesiI5blmkfi 4lsudo<Xlfcat 1SlxwctCalfese lera_].lxkbaGI:ilrcmdN8clumou.<lwcss/ ?pem_u;shmgwcfse ltcl_xFlxrmcDUlbn_b# 8jlgitde /sp:|=lgetw ;3{lfecl"]@lgeto _(!lshop>strfH <WPltcse_pthr7elseli1Jo[lgitcE'h.lsetp7\klxset" VPldate5;lxdr_ Fsem_ :xcb_,"W2)lbunz&B*levp_pC҈lxcb_lrlidna'lbn_+@5ldes_n;g&Ilui_g@=;lcoloL@ Glxcb_(Wlxcb_@>ߢ:lpcre@>`lssl_IA ]sldtraA[syst ?lipcaBFjlimaxaB*Alxcb_B lget_B#ILlcspl&C QNlnocbC 0tiff6\lhypoC6\ladd_CLltime(D -=rlxque`DHlscr_BL IblseedL OMlgetmL 5.rlxtcl-MLpam_xDrand >tcl_cdhlxcb_M'$lxcb_M"lxcb_N jlxcb_BN^ldatexN4)ztlimagNQltsor'O%U`lterm?OZlfcch M[ldel_O;Šlvgexe E[lxcb_ +ٝltcl_ S lgetmd! D6\lxcb_! kltoup! vlxcb_ " lxcb_C" -*lperl" < Olperl" , lcloc # 3S8leuscL# RBltest# Julperl$ 7Alx509W$ Vٺ)ltiff$ 9r6lstdi% BCClback[% A xllrin% 3llose% :ltcl_+& Mllsta& 5Z|lcms_& LM ltgam"' .ospeNWverr 3dispOldpmsZ' Kwclr @err G )  P  #tfPmtget ;amec_g' [PwmgetnT( n^mtestx( _fcut >pthrYmxdbe( IamxaufZ) BK.mrand) C]cmerr* xcb_͓date3nailK9[qmgetu* ?wcsn֔ Umxcb_`* +Umswap* Ksubgؕ3xcb_"ominfi* :bWKmdpms>+ mlogo  >Amxcb_+ 7resi ;b/mssl_, Xcvmiso_l, ^>PmSHA1, 3+mmodu- W,g`mdisp- BRmxcb_- kmxcb_. +zJmxkbfH. s3^mlh_i. 0$]mxung / 6mmvinN/ O)Mmpthr/ 4a9msecu0 !J#omxcb_k0 ܐmlwre0 HTmcurs0 \Xmxcb_g1 ""meuar1 4`mabrt1 EќmxutfL2 c;2mmath2 =N&mfcla HfcatמCeJmpunyV 'fmstdi ;^ mgetpҐ 5Emtcl_ QVmevp_y A+Tmgroȗ 82mdmse >6mstreQ @ mpr29 'proc"mtuneђ :xcb_";Xmxcb_ (, mssl_N Qon_a# M@ mtmpn =xcb_,era_`$ Chuge$ ;xcb_$qsig(%.mach3 9e8mmklo gwcst% P?mip-tq 5dir_y >over]& Dmgsoe @/mxcb_ mnslo. Dcmec_g{ jsgdia _mmenu CmfileJ KGmpthr A\msigt Isigp .rzmxcb_X !"mdpkg 5sort?emtempΗ Qpam_)5pam_j <mxcb_/ mbio_c 9%mnet: Jmxcb_ #.]mxtreA >sg_r7*8tlsv~*qgetoQ  2kmssl_ ]use_B+;mxcb_ +PmcurrB 8xcb_=,powlr,fcch,N-4mxcb_ '2mdateʚ 8a`mgets 9vmmemfa =IKmperl )k)mmtrכ 4m mbio_ >c%mkeycY 7_Aamxcb_ &H)>mpem_ߜ ?<;mtemp5 mhmdgaw C xmuust @mwbkgK J{DVmdate 34masct O)mstrt? Ģmlwre` Bmbio_ CXmkeycY @0Mmperl <FEmsetf ;mxcb_ ^Qmwcsc. ȸmlangL ;mwmem Znew_9xcb_+ merro 6nproIlinuPiso_L _tap:Gremo 5d2i_VFdate3ssl_V(ދmshma9 sg:@Jzmpod:Q 0gettu" ,T?mxcb_ $1mpthr <ۑmxcb_B LNmxcb_z (48msha3 ?Psmssl_ g0mxloc =ʐmgrepҤ Bmlwre FjJmveri> = mabrt \*mcpow 1%mxcb_- #mxresk U~mposiΦ yjsonexcb_xcb_.vmlibcf DoZmadjt' ,fclangsethashFcLangSetHash 3 3 1520307172 A - - gz return a hash value for a langsetpunycode_strerror- 3 3 1448125246 A - - gz API functionstdio.h- 0p 0p 1402354203 A - - gz standard buffered input/outputgetppid 2- 2 2 1402354205 B - - gz get process identificationtcl_appendlimitedtoobjTcl_AppendLimitedToObj 3 3 1448008822 B - - gz manipulate Tcl objects as stringsevp_md_ctx_createEVP_MD_CTX_create 3ssl 3 1721417624 B - - gz EVP digest routinesgroups- 1 1 1605565487 A - - gz print the groups a user is indmsetup- 8 8 1619616690 A - - gz low level logical volume managementstrerror 3- 3 3 1402354212 A - - gz return string describing error numberpr29_strerror- 3 3 1448125246 A - - gz API functiontuned-main.conf- 5 5 1663766277 A - - gz Tuned global configuration filexcb_set_clip_rectangles- 3 3 1540917640 A - - gz ssl_use_privatekey_asn1SSL_use_PrivateKey_ASN1 3ssl 3 1721417624 B - - gz load certificate and key datatmpnam_r- 3 3 1402354213 B - - gz create a name for a temporary filemklost+found- 8 8 1711459141 A - - gz create a lost+found directory on a mounted Linux second extended file systemip-tcp_metrics- 8 8 1601484048 A - - gz management for TCP Metricsgsoelim- 1 1 1533764324 B - p gz interpret .so requests in groff inputxcb_shm_query_version- 3 3 1540917640 A - - gz nslookup- 1 1 1725373372 A - - gz query Internet name servers interactivelyec_group_set_curve_gfpEC_GROUP_set_curve_GFp 3ssl 3 1721417624 B - - gz Functions for creating and destroying EC_GROUP objects.menubutton- n n 1448008912 A - - gz Create and manipulate menubutton widgetsfile::spec::cygwinFile::Spec::Cygwin 3pm 3 1402373474 A - - gz methods for Cygwin file specspthread_kill_other_threads_np- 3 3 1402354211 A - - gz terminate all other threads in processsigtrap- 3pm 3 1698237678 A - - gz Perl pragma to enable simple signal handlingxcb_glx_get_color_table_data_end- 3 3 1540917640 B - - gz dpkg- 1 1 1642076111 A - - gz package manager for Debiantemplate::stashTemplate::Stash 3pm 3 1402357151 A - - gz Magical storage for template variablesxcb_glx_end_list_checked- 3 3 1540917640 B - - gz bio_new_bio_pairBIO_new_bio_pair 3ssl 3 1721417624 B - - gz BIO pair BIOnet::daemonNet::Daemon 3pm 3 1402381130 A - - gz Perl extension for portable daemonsxcb_input_get_device_control_reply- 3 3 1540917640 B - - gz xtreallocXtRealloc 3 3 1501646833 B - - gz memory management functionsssl_get_verify_resultSSL_get_verify_result 3ssl 3 1699892223 A - - gz get result of peer certificate verificationxcb_input_change_keyboard_device_unchecked- 3 3 1540917640 B - - gz current_field- 3x 3 1720626759 B - - gz set and get form page numberxcb_randr_get_screen_resources_outputs- 3 3 1540917640 B - - gz datetime::locale::mn_cyrl_mnDateTime::Locale::mn_Cyrl_MN 3pm 3 1402390641 A - - gz getspent- 3 3 1402354209 B - - gz get shadow password file entrymemfrob- 3 3 1402354211 A - - gz frobnicate (encrypt) a memory areaperluts- 1 1 1698237670 A - - gz Perl under UTSmtr- 8 8 1402353820 A - t gz a network diagnostic toolbio_pendingBIO_pending 3ssl 3 1721417624 B - - gz BIO control operationskeyctl_negate- 3 3 1573510998 B - - gz Negatively instantiate a keyxcb_xvmc_list_surface_types_unchecked- 3 3 1540917640 B - - gz pem_write_bio_x509_reqPEM_write_bio_X509_REQ 3ssl 3 1721417624 B - - gz PEM routinestemplate::stash::contextTemplate::Stash::Context 3pm 3 1402357151 A - - gz Experimetal stash allowing list/scalar context definitiondgawk- 1 1 1711653987 A - - gz pattern scanning and processing languageuustat- 1p 1p 1402354204 A - - gz uucp status inquiry and job controlwbkgd- 3x 3 1720626759 B - - gz curses window background manipulation routinesdatetime::locale::pt_brDateTime::Locale::pt_BR 3pm 3 1402390642 A - - gz asctime 3- 3 3 1402354207 B - - gz transform date and time to broken-down time or ASCIIstrtok_r strtok_r 3 strtok_r 3plwres_context_destroy- 3 3 1725373371 B - - gz lightweight resolver context managementperlthanks- 1 1 1698237679 B - - gz how to submit bug reports on Perlbio_get_cipher_statusBIO_get_cipher_status 3ssl 3 1699892203 A - - gz cipher BIO filterkeyctl_instantiate_iov- 3 3 1573510998 B - - gz Instantiate a key from segmented datasetfont- 8 8 1637771557 A - - gz load EGA/VGA console screen fontxcb_alloc_named_color_unchecked- 3 3 1540917640 B - - gz wcscspn wcscspn 3 wcscspn 3planginfo.h- 0p 0p 1402354203 A - t gz language information constantswmemset 3- 3 3 1402354213 A - - gz fill an array of wide-characters with a constant wide charactererror::pass1- 7stap 7 1602605484 A - - gz systemtap pass-1 errorsshmat shmat 2 shmat 3ppod::pom::view::htmlPod::POM::View::HTML 3pm 3 1402385888 A - - gz xcb_get_window_attributes_unchecked- 3 3 1540917640 B - - gz Gets window attributespthread_attr_setschedparam pthread_attr_setschedparam 3 pthread_attr_setschedparam 3pxcb_render_triangles_checked- 3 3 1540917640 B - - gz xcb_randr_get_crtc_info_possible_length- 3 3 1540917640 B - - gz sha384_updateSHA384_Update 3ssl 3 1721417624 B - - gz Secure Hash Algorithmssl_get0_alpn_selectedSSL_get0_alpn_selected 3ssl 3 1699892220 A - - gz handle application layer protocol negotiation (ALPN)xlockdisplayXLockDisplay 3 3 1710950786 B - - gz multi-threading supportgrep grep 1p grep 1lwres_endhostent- 3 3 1725373371 A - - gz lightweight resolver get network host entryverify- 1ssl 1 1699892202 A - - gz Utility to verify certificates.abrt-merge-pstoreoops- 1 1 1601569733 A - - gz Scans files for split oops message. Can print and/or delete them.cpowl 3- 3 3 1402354208 B - - gz complex power functionxcb_glx_create_context_attribs_arb- 3 3 1540917640 A - - gz xresizewindowXResizeWindow 3 3 1710950785 B - t gz configure windows and window changes structureposix_spawnattr_setschedpolicy- 3p 3p 1402354217 B - - gz get and set the spawn-schedpolicy attribute of a spawn attributes object (ADVANCED REALTIME)libc- 7 7 1402354220 A - - gz overview of standard C libraries on Linuxtgetent_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionxcb_sync_destroy_fence_checked- 3 3 1540917640 B - - gz evp_pkey_encryptEVP_PKEY_encrypt 3ssl 3 1721417624 A - - gz encrypt using a public key algorithmx509_verify_param_add1_hostX509_VERIFY_PARAM_add1_host 3ssl 3 1721417624 B - - gz X509 verification parametersftp- 1 1 1573511014 A - - gz Internet file transfer programxcb_xkb_list_components_keycodes_iterator- 3 3 1540917640 B - - gz datetime::locale::mkDateTime::Locale::mk 3pm 3 1402390642 A - - gz perl56delta- 1 1 1698237662 A - - gz what's new for perl v5.6.0exp2l 3p- 3p 3p 1402354215 B - - gz exponential base 2 functionsroutef- 8 8 1601484048 B - - gz flush routesdes_read_2passwords- 3ssl 3 1721417624 B - - gz Compatibility user interface functionsgitmodules- 5 5 1722330784 A - - gz defining submodule propertiesungetmouse- 3x 3 1720626759 B - - gz mouse interface through cursesxcb_list_properties_atoms_length- 3 3 1540917640 B - - gz pam_access- 8 8 1585713585 A - - gz PAM module for logdaemon style login access controlclnt_perror- 3 3 1402354208 B - - gz library routines for remote procedure callsrm 1- 1 1 1605565487 A - - gz remove files or directoriestimegm- 3 3 1402354213 A - - gz inverses of gmtime and localtimeidmapd.conf- 5 5 1523419630 A - - gz configuration file for libnfsidmapcheckpolicy- 8 8 1540936118 A - - gz SELinux policy compilerasn1_string_length_setASN1_STRING_length_set 3ssl 3 1721417624 B - - gz ASN1_STRING utility functionsgitcvs-migration- 7 7 1722330784 A - - gz Git for CVS usersxtstringconversionwarningXtStringConversionWarning 3 3 1501646833 A - - gz issue a conversion warning messagepsfxtable- 1 1 1637771557 A - - gz handle Unicode character tables for console fontsgeteuid geteuid 2 geteuid 3popcodeOpcode 3pm 3 1698237676 A - - gz Disable named opcodes when compiling perl code__fsetlocking- 3 3 1402354207 B - - gz interfaces to stdio FILE structureresolveip- 1 1 1697025034 A - - gz resolve host name to IP address or vice versamysql_upgrade- 1 1 1697025034 A - - gz check and upgrade MySQL tablesxcb_glx_get_convolution_parameteriv_data_end- 3 3 1540917640 B - - gz euca-import-instance- 1 1 1484780705 A - - gz Import an instance into the cloudset_menu_back- 3x 3 1720626759 B - - gz color and attribute control for menusmq_receive 3- 3 3 1402354211 A - - gz receive a message from a message queuetcl_getencodingfromobjTcl_GetEncodingFromObj 3 3 1448008821 B - - gz procedures for creating and using encodingslwres_gnbaresponse_free- 3 3 1725373371 B - - gz lightweight resolver getnamebyaddress message handlingcpanplus::shell::default::plugins::remoteCPANPLUS::Shell::Default::Plugins::Remote 3pm 3 1402392266 A - - gz connect to a remote CPANPLUSssl_ctx_sess_cache_fullSSL_CTX_sess_cache_full 3ssl 3 1721417624 B - - gz obtain session cache statistics__free_hook- 3 3 1402354210 A - - gz malloc debugging variablesmunlock 2- 2 2 1402354205 B - - gz lock and unlock memorycosh 3- 3 3 1402354208 A - - gz hyperbolic cosine functioncracklib-format- 8 8 1402378932 A - - gz cracklib dictionary utilitiesdoveadm-replicator- 1 1 1724195936 A - - gz Manage users' mail replicationnamed-checkconf- 8 8 1725373374 A - - gz named configuration file syntax checking toolgsbj- 1 1 1605296035 B - - gz Format and print text for BubbleJet printer using ghostscriptcimagl cimagl 3 cimagl 3pscsi_start- 8 8 1585715378 A - - gz start one or more SCSI diskswcsrtombs wcsrtombs 3 wcsrtombs 3pevp_signfinalEVP_SignFinal 3ssl 3 1699892211 A - - gz EVP signing functionsquotacheck- 8 8 1319118019 A - - gz scan a filesystem for disk usage, create, check and repair quota filesxcb_glx_get_mapfv_reply- 3 3 1540917640 B - - gz phar- 1 1 1572624395 A - - gz PHAR (PHP archive) command line toolrand_screenRAND_screen 3ssl 3 1721417624 B - - gz add entropy to the PRNGbio_get_conn_hostnameBIO_get_conn_hostname 3ssl 3 1721417624 B - - gz connect BIOwclear- 3x 3 1720626759 B - - gz clear all or part of a curses windoweuare-rolegetpolicy- 1 1 1484780705 A - - gz Display a role's policycms_get0_typeCMS_get0_type 3ssl 3 1721417624 A - - gz get and set CMS content types and contentfcrangecreatedoubleFcRangeCreateDouble 3 3 1520307172 A - - gz create a range object for doubleset_item_value- 3x 3 1720626759 B - - gz set and get menu item valueslog1pf 3- 3 3 1402354210 B - - gz logarithm of 1 plus argumentplipconfig- 8 8 1565313023 A - - gz fine tune PLIP device parameters q P ' Jbncurs0 5ndnss?0_ncirc0 `Anxcb_1nstatP1 BOncata1 /1bnpsfxb LfFnevp_2#dnscal2 =\ngete xcb_,dntkil634bio_ 5 Cngit-p38XJneuca3%HRnwcst$4Yunio::4Ufcna}Lmvwg Rfcpa=Fܚznklog4 ]VntermI5 8< nxcb_5.-'nioni5O6mnxcb_)6 8~,ngett6 .|nxcb_6(q>nevp_6 <ߢnssl_E7Wr nxcb_7VXnpure7 G{ndateE83Pnxcb_8&nxcb_8|nxcb_8#=nbcop;9-:nrenap9 OKngit-9 JWnssl_:a Pnxcb_:%b!nntcl_:Pn@ninet3; znxmodW;Ynpthr;>hcref 0xcb_!.]jnplan <Oxcb_ tcl_g<I"nacs_<<nutf8= _formƩ5(encosfk=,a4nswab='npthr=9nccos >2qnfsckZ>>Ѱndh_n>?~nxtap>WncarpP? ;nseli` |8sndiff? nxcb_?ngit-` @ģnresi` ;Mnunal(a 5rNanwattha RTΎnssl_a T!nlogi0b <ɀnpolkzb 3%snxcb_b _anxcb_b yLRnsubpc K//njouroc >.Mnpk12c qFndefa5d FdateȬ3_lni2d_d S{ndated 3ܷnzipd7e F.nncom_e 7nfgete ;$Onrsa_f Pnlatiuf ^rnsem_f 7dengneqg < nxcb_`g !fnperlg 'j7ntempg ?unbio_h 7 nlwre[h =ob_HiconJU8M+nkey_h = (}ndisph Excb_+V(xcb_nV_~QnmoveKi <y0fV>ѱntiffi =conffWO~8npcrei >enerr_=j W/#nxcb_j $tcl_XMlongY =nsvc_j Fncont=k K jnsystk 4?^nxtrek JhostZLctan>[ 6Brnxcb_4l %P|nxcb_tl ntcgel @tcl_\Tntcl_l 9chro\ 0Znxcb_?m lwreR]Axmbr] Gnb::xom VPWTnxcb_m quot^ 1fcob^<use__ Anutimn LRnxcb_^n *-vntcl_n pnx509o R?Unwcsco ceilخ;n_exio #nlex?g2nxcb_ (nevp_: Qnx509 TInftp 9j;;nxcb_I *ndate 0nperlӱ 5jnexp2 9кnunsho bn_m UnroutV ',Vndes_ Dngitmܲ 8Ununge :xcb_!ssl_ncmvdeP8nxcb_d !I"npam_ N+nclnt Fx@nrm 1K 66Mntime ;nidmaȴ = ngcvt2Fnchec 2I,ndove1 ;nasn1O Pngitc ,Vnxtst U nopcoֶ P)n__fs- =nresox H z! #0kxcb_.x509I`}omysqʷ 9mvin@ \8"oxcb_ -/@oeucaY <odmes Bfrex3! ^pthr!Zproc"file&" y,obn_bH O{8*odate 3(oseek Con_a# Mpmap"$9xcb_p"era_`$ Chuge$ ;xcb_$ohistA .D"oenvy !Poio:: QW[oxkbf isigs$& ,<oxcb_p over]& Dxtre"Kconf&^geto' 5#otcl_ mqɰofcst =6#ogetuj 3otcl_ Yopthr [hogetb J%>oxdel mR{oxcb_^ #jobio_ ?$IEoasn1 J"otld_G ',otr_z  otime EmbsiS) 7xcb_%ocexp 7date/0)nottre FOotcl_ I/ossh-a Sxcb_t!mtra)_sys Tperl= + Dogit- =loxcb_ 1{̷odateT 3( omsgg Bdoeuca <m[oec_kC vtowtou ;oevp_ 'hUwowadd \yofrex  oxcb_ 0 Copthrk 2otcl_ vbofcma< 3Uhofiel| G omyis!>xoloadL! ;opgre!Y@operl! 99oftel oxkbs1!Um ogeth!<ZU[ortst!;\oouts*!#moxcb_S!A* oif_n!Bogsha!.tcl_C 7dislC =Hoauth! Wkeyc+{rodateq!3Loeuar!llsmc @folpt  }ogeta@!4sigsUE @Doddns! 3Yosha ! 3I+otcl_!npod:rvforc!}Hrperlc! 3_~Frtdel.d! /rabsgd!Orbn_byd!T=spam_$ " FFbsssl_t "q^*orargzd! ;=rsg_x*e! cn#rcms_e!d{sdate "3~stcl_O "a{wrdate f!3rlogbUf!7rlseef! <Tkrxargf! H4rfcge*g!I&_rcpang!R/fracosg!ryum- h! ^lrrealuh! E)rcfgeh! Kvorui_dh!Atrxcb_{m!!Sŕrthrem!C,Crxsto n! Fyrxcb__n!+rxcb_n!~:)rtcl_n!ZPrrsa_Do!<p/rcloco!.>jrsa2!M6uDrxcb_Q!\rcurs! SNrxkbs!tHrec_gk!Zrxcb_ױ! rxcb_!-hcZrtk_fX!^Srgetpo! prlati˲!_~reuca1!#:irform!-tGrsymcó! B#rxcb_!rtcl_H!X%*rcarg!9x?rasa!B?rcpan@!a4risas! <rec_g!#k2+rxcb_! rfielɶ!Hrresi! A rgit-k!K.]rxcb_Ʒ!6cwrputu! 3rtiffP! XONMrxcb_!,'rgetg! /;Jrttyn&!?/rxcb_D!1irgetp! /lrsystɹ! Tj+rmodu)!UBͮrnfs4!=1rifh! $rmvge! ]rnet:[! Corrand!7:revp_Ż!@n>rxcb_!-{rrdate^!3 rxml:!Sdrunam!HErfwia!rdbi:!!^8(rxcb_!7rtask4!C8rputw! =Jyrfgetž! CCr$mti! Irperl$! =xslgam " -Z.slwre "FfNrfipsk! F'rxcb_!Trxcb_"nrgit-2"KJrperl" 6{Drdate"3rttk:"G+rxtren"J_Ssxcb_S "(sxcb_ ""խrposi" @vsphys "5I4eswrit " 2͊gseuarH"XN)sxtbu"Hsgets"j sxcms"K+rmenu" GV0rj1_! rperlk"7Lrctyp",XBrsetu"Q rtext=" M`rvida"Bseufo"/Zrrdma"6Ͱrloca#"u!snetrK"4rxcb_"Ԉsxtva"QR sxcb_"*stiff7"W rxcb_"#hrseli)"a6_rfile" U=rtcl_"[ grxkbau"cW%rxget"D^rssl_G"z7rrand" :ĔXrxset""B_rxcreu"Ulrvwpr" /rilog" 8rxcup; "drodbc " >Qsxcb_">rxcb_ "sa2- 8 8 1697208922 A - - gz Write a daily report in the /var/log/sa directory.xcb_xvmc_destroy_context- 3 3 1540917640 A - - gz curs_in_wch- 3x 3 1715932337 A - - gz extract a complex character and rendition from a windowxkbsaredirectvmodsXkbSARedirectVMods 3 3 1710950785 A - - gz Returns the vmods0 and vmods1 fields of act converted to an unsigned intec_group_set_seedEC_GROUP_set_seed 3ssl 3 1721417624 B - - gz Functions for manipulating EC_GROUP objects.xcb_selinux_set_device_context- 3 3 1540917640 A - - gz xcb_query_font_properties- 3 3 1540917640 B - - gz query font metricstk_focusfollowsmousetk_focusFollowsMouse n n 1448008912 A - - gz Utility procedures for managing the input focus.latin6- 7 7 1402354220 B - t gz ISO 8859-10 character set encoded in octal, decimal, and hexadecimaleuca-delete-vpc-peering-connection- 1 1 1484780705 A - - gz Delete a VPC peering connectionformail- 1 1 1511905870 A - - gz mail (re)formattersymcryptrun- 1 1 1531487121 A - - gz Call a simple symmetric encryption toolxcb_dri2_swap_buffers_reply- 3 3 1540917640 B - - gz tcl_dictobjremovekeylistTcl_DictObjRemoveKeyList 3 3 1448008821 B - - gz manipulate Tcl objects as dictionariescargl 3- 3 3 1402354207 B - - gz calculate the complex argumentasa- 1p 1p 1402354203 A - - gz interpret carriage-control characterscpan::meta::requirementsCPAN::Meta::Requirements 3pm 3 1402341400 A - - gz a set of version requirements for a CPAN distisascii 3- 3 3 1402354210 B - - gz character classification routinesec_group_set_point_conversion_formEC_GROUP_set_point_conversion_form 3ssl 3 1721417624 B - - gz Functions for manipulating EC_GROUP objects.xcb_set_clip_rectangles_checked- 3 3 1540917640 B - - gz field_userptr- 3x 3 1720626759 B - - gz associate application data with a form fieldresizecons- 8 8 1637771557 A - - gz change kernel idea of the console sizegit-whatchanged- 1 1 1722330780 A - - gz Show logs with difference each commit introducesxcb_get_geometry_reply- 3 3 1540917640 B - - gz Get current window geometrypututline- 3 3 1402354211 B - - gz access utmp file entriestiffgetfieldTIFFGetField 3tiff 3 1729525165 A - - gz get the value(s) of a tag in an open TIFF filexcb_randr_get_panning_reply- 3 3 1540917640 B - - gz getgrgid 3- 3 3 1402354209 B - - gz get group file entryttyname ttyname 3 ttyname 3pxcb_randr_get_screen_resources_current_unchecked- 3 3 1540917640 B - - gz getpid 3p- 3p 3p 1402354215 A - - gz get the process IDsystemd-run- 1 1 1711457787 A - - gz Run programs in transient scope or service or timer unitsmodule::build::ppmmakerModule::Build::PPMMaker 3pm 3 1402373050 A - - gz Perl Package Manager file creationnfs4_uid_to_name- 3 3 1523419630 A - - gz ID mapping routines used for NFSv4if if 3pm if nmvget_wch- 3x 3 1720626759 B - - gz get (or push back) a wide character from curses terminal keyboardnet::libidnNet::LibIDN 3pm 3 1402345934 A - - gz Perl bindings for GNU Libidnrand_r rand_r 3 rand_r 3pevp_des_ede3_cbcEVP_des_ede3_cbc 3ssl 3 1721417624 B - - gz EVP cipher routinesxcb_xv_query_image_attributes_pitches_length- 3 3 1540917640 B - - gz datetime::locale::kw_gbDateTime::Locale::kw_GB 3pm 3 1402390636 A - - gz xml::libxml::elementXML::LibXML::Element 3pm 3 1402352994 A - - gz XML::LibXML Class for Element Nodesuname 2- 2 2 1402354206 A - - gz get name and information about current kernelfw- 8 8 1601484048 C tc-fw - gz dbi::gofer::serializer::storableDBI::Gofer::Serializer::Storable 3pm 3 1402362412 A - - gz Gofer serialization using Storablexcb_alloc_color_planes- 3 3 1540917640 A - - gz taskset- 1 1 1612283497 A - - gz retrieve or set a process's CPU affinityputwc 3p- 3p 3p 1402354217 A - - gz put a wide character on a streamfgetwc 3- 3 3 1402354210 A - - gz read a wide character from a FILE stream$mtime$1732778760perlreref- 1 1 1698237667 A - - gz Perl Regular Expressions Referencefipshmac- 8 8 1501678068 A - - gz create FIPS-140-2 validation checksum filesxcb_glx_destroy_glx_pixmap- 3 3 1540917640 A - - gz j1 j1 3 j1 3p!S !!t` pfmax0Jlzma.*pinitQ0 >!ptcl_0S¯_pacos 1_pbn_c"1Czpcpu_s1 C$rpsem_1 Jpxque1 S˧ptap:B2'mQipxcb_2"?ptcge3 Hfflu6"5{plwreg3Agit-" ;Qpsg_v3ZKpxcb_!4(Npset_d4? $pxcb_4~pxrmp4Xpperl~5{pdate53has_`%;(pxcb_5Jnpgit-6F#piptup6 LQptc-f6 <`jpxcb_ 7*9{pwctoP7Ms5pattr7 Rpxcb_8Apfind:8S&Cpmodu8Ywnou( <zTppam_9 =rpmprob9 =ec_p){pexpm9 .ncur*>rema* < pxcb_95pperl: <ptcl_c: XJputmp: 3cron, >6pnext;EpversX;P)ptcl_; 8ppcre;>)pglobK<șpxcb_n<(pwcst<h^pwcsn< W4plwre/=.cpxcb_m=57Ԩpgrub=Oprecv>F<* pwcslm> =pconv>pdpkg^? Jiswps Gtowuƒ @euca<xsetc Oȼpgetc?=mkdi -fiel Gqpevp_>o{pxcb_Mpgetn ~pstrpcVpiso_а ^LApxcb_9popispuo <5jppthr<c&pvswp <\pacce+(_pxcb_F!-wiplog1 8Gpxcb_ֲpcollHpstrp] Spsiga~ {kpdate3 ;prema <if_nΙKsche) #pabor6 ?fget 7x509ܚNXIpcurs~ ;xtda Hcbrtޛ-upda 8pod:T^opeuarŴM/optcl_0V!Apenab>e>pcpro޵ 9log:Vfd_i #loca ^date4dsa_c D$ ptcl_!zpcre>xcb_N&i¤peusc"7)pdh_c QBpperl_Krpxcb_'! _pcpup H2ypatanE>simpP#xcb_zF%pxtcaCxcb_,posidE~plibg޸ G_hpregf. 0xcb_7xcb_qsemaH?gpgenrh9m(pcbrt 0{pasn1Q¹pxml:Gjupilogƺ IVpcpupQBpxgetE 2enco UinotW 9xcb_q-pssl_Mxcb_!+pxcb_1pstrc3 0datex 5Epdatem0>psaty@nohu] Tɦpsetf ATpversDfޚpnohuf ?fsta *!pfcpaIhpxml: RTpgruby?@/Upxcb_ɾ*Рpxcb_pxcb_D0Spcont >fppod:! #pputc0!;pmsger!9pmodu!?hދpgeta ! EpthreYlwre=2psha5ؿmunmHwhoi: 7nfs4*xcb_!pmediY!| k=pbio_! <!7! ^%qdbd:!!R~qfcnt! )Wqxcb_! Aqxche!@pfqxcb_! qxcb_!+qxtpo! 1load!Hxcb_!+ Jqio_!5mlqqwmemN! Yqtcl_o!P5qsys/! &acos#={Uqxcb_!gmti# ODqxcb_6! <}qjsonq! Cdate#4xcb_D$)geth$ cpan$Vtiff 2U=qio::!\nxqssl_8!N5qenco!B(Nqnm 1!PMqcoreG! EzHqssl_!Jqgrep!9xcb_9'Tqstda1!2Ejqfdetj!Hqutmp! 3uqdisp!H-sqrais!6Kqlog2X! ?|qfeup! (qlog1!7qxtdi !Qtcl_r) X!Mqmotdn!- wqnfs.! JG qlwre!Bgs*^Sqmd2_C! GQnqxkbg! ?w qec_p!twJqreadg! /{qdate!3e)qsour! >qfput2! Bʬqxcb_~!cqmkti! Oqnfs4!*xcb_.*L _qpam_X! Hxcb_/(tcl_Z/Ixcb_p.qipcr!rsa/sgetp Ayqfram!>prezp MOqbn_b!XSqpam_w! 1iqjn 3!?FIqxkbf ! Dqio::Q ! QVqexpm! :xcb_s+smimZsS=qtcl_D!Jdbm_s /aio_!t :rsa_dtDqxtco!Aqopen!W7_qsg_u^! Qeqssl_! Rcwqxbas!Nqlrin}! qxtun!J qtcl_!R~+qseliZ!LQqxstd! 6A qdler! J\`qoverL! LrOqxcb_!4]qxcb_!" qfchm/! _ qtctt!?1qnfs4!*qcaco !/qxcb_>!0qxcb_o!Iqdate!0E[#qjoin!9qperl,! 2zqmunmk! 2qxque!Jispu|)qform!GՂqxcb_b!oqfcco!Hhqstri!'Yqdate1!Rqunsh! PCqcfse!_qtcl_d!^#qxcb_!5Oqisin'! .H qxcb_^!)gqstri!!sqxkbs!^qxkbk0!qfcch!Equi_d5!BHqxcb_!uqgetd! >sqtcge ! i3qxcb_~!<eqdup2!6fcfr[des_78mmap0fcnt}5cpu_ E{ZHqdate!3Lxqio::]!J0qerfl!)^qmq_t!AMEqxcb_S!$ qxcb_! tcl_ =B~qlzle! Y~qbn_s!?3qxcb_A!%gqssl_!Jqxcb_!aqeusc!"Umite9name 7}qxtcr!BFqeuca!FlVqxcb_3!qgetpc! DKKYqxtre!K,qadds! 9nqtimeZ! ^i+]qfwid!M{qdate!3qxcb_e!qvipw!Yrqbio_!; qxcb_K!2 qtcl_!Nr@qmoun! 6`Oqlwre?!FGqi2d_!UqiswdC! @͢qxcb_!"vqxtap!MDqbtre:! Atqeuim!-expm1l 3p- 3p 3p 1402354215 B - - gz compute exponential functionstcl_getcommandfromobjTcl_GetCommandFromObj 3 3 1448008821 B - - gz implement new commands in CxtconvertcaseXtConvertCase 3 3 1501646833 B - - gz convert KeySym to KeyCodesopenssl_ia32cap_locOPENSSL_ia32cap_loc 3ssl 3 1699892211 A - - gz the IA-32 processor capabilities vectorsg_unmap- 8 8 1585715378 A - - gz send SCSI UNMAP command (known as 'trim' in ATA specs)ssl_clearSSL_clear 3ssl 3 1699892222 A - - gz reset SSL object to allow another connectionxbasefontnamelistoffontsetXBaseFontNameListOfFontSet 3 3 1710950786 B - - gz obtain fontset informationlrint lrint 3 lrint 3pxtuninstalltranslationsXtUninstallTranslations 3 3 1501646833 B - - gz manage translation tablestcl_setbignumobjTcl_SetBignumObj 3 3 1448008822 B - - gz manipulate Tcl objects as integer valuesselinux_restorecon- 3 3 1585710994 A - - gz restore file(s) default SELinux security contextsxstdcmap- 1 1 1502476989 A - - gz X standard colormap utilitydlerror 3- 3 3 1402354208 B - - gz programming interface to dynamic linking loaderoverwrite- 3x 3 1720626759 B - - gz overlay and manipulate overlapped curses windowsxcb_change_property_checked- 3 3 1540917640 B - - gz Changes a window propertyxcb_xkb_get_device_info_unchecked- 3 3 1540917640 B - - gz fchmodat- 2 2 1402354204 A - - gz change permissions of a file relative to a directory file descriptortcttest- 1 1 1402385697 A - - gz test cases of the table database APInfs4_get_default_domain- 3 3 1523419630 C nfs4_uid_to_name - gz cacoshf cacoshf 3 cacoshf 3pxcb_glx_get_tex_gendv- 3 3 1540917640 A - - gz xcb_selinux_list_selections- 3 3 1540917640 A - - gz datetime::locale::iaDateTime::Locale::ia 3pm 3 1402390639 A - - gz join 1p- 1p 1p 1402354204 A - - gz relational database operatorperlmodstyle- 1 1 1698237666 A - - gz Perl module style guidemunmap 3p- 3p 3p 1402354216 A - - gz unmap pages of memoryxquerytextextents16XQueryTextExtents16 3 3 1710950786 B - - gz compute or query text extentsform_field_attributes- 3x 3 1720626759 A - - gz color and attribute control for form fieldsxcb_record_enable_context- 3 3 1540917640 A - - gz fcconfigsetcurrentFcConfigSetCurrent 3 3 1520307172 A - - gz Set configuration as defaultstringprep_utf8_to_ucs4- 3 3 1448125246 A - - gz API functiondate::language::bulgarianDate::Language::Bulgarian 3pm 3 1402364546 A - - gz localization for Date::Formatunshare 1- 1 1 1612283497 A - - gz run program with some namespaces unshared from parentcfsetospeed 3- 3 3 1402354207 B - - gz get and set terminal attributes, line control, get and set baud ratetcl_limitgetcommandsTcl_LimitGetCommands 3 3 1448008822 B - - gz manage and check resource limits on interpretersxcb_selinux_get_selection_use_context_context_length- 3 3 1540917640 B - - gz isinf 3p- 3p 3p 1402354216 A - - gz test for infinityxcb_input_set_device_valuators_unchecked- 3 3 1540917640 B - - gz string string 3 string nxkbsetbouncekeysdelayXkbSetBounceKeysDelay 3 3 1710950785 A - t gz Sets the BounceKeys delay for a keyboard devicexkbkeytypesforcoresymbolsXkbKeyTypesForCoreSymbols 3 3 1710950785 A - - gz Determine the Xkb key types appropriate for the symbols bound to a key in a core keyboard mappingfccharsetissubsetFcCharSetIsSubset 3 3 1520307172 A - - gz Test for charset inclusionui_dup_input_stringUI_dup_input_string 3ssl 3 1721417624 B - - gz New User Interfacexcb_shm_put_image_checked- 3 3 1540917640 B - - gz getdate 3p- 3p 3p 1402354215 A - t gz convert user format date and timetcgetsid 3p- 3p 3p 1402354218 A - - gz get the process group ID for the session leader for the controlling terminalxcb_input_get_selected_extension_events_this_classes_length- 3 3 1540917640 B - - gz dup2 2- 2 2 1402354204 B - - gz duplicate a file descriptordatetime::locale::en_caDateTime::Locale::en_CA 3pm 3 1402390636 A - - gz io::innerfileIO::InnerFile 3pm 3 1402371105 A - - gz define a file inside another fileerfl 3- 3 3 1402354208 B - - gz error functionmq_timedreceive 3- 3 3 1402354211 B - - gz receive a message from a message queuexcb_selinux_query_version_unchecked- 3 3 1540917640 B - - gz xcb_input_set_device_mode_reply- 3 3 1540917640 B - - gz lzless- 1 1 1443524256 C xzless - gz bn_sqr_comba4- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionsxcb_randr_get_screen_resources_reply- 3 3 1540917640 B - - gz ssl_set_ssl_methodSSL_set_ssl_method 3ssl 3 1699892221 A - - gz choose a new TLS/SSL methodxcb_glx_gen_textures- 3 3 1540917640 A - - gz euscale-enable-metrics-collection- 1 1 1484780705 A - - gz Enable monitoring of an auto-scaling group's group metricsxtcreatewidgetXtCreateWidget 3 3 1501646833 A - - gz create and destroy widgetseuca-delete-disk-image- 1 1 1484780705 A - - gz Delete a disk image used for an import taskxcb_xevie_send_reply- 3 3 1540917640 B - - gz getprevcon- 3 3 1585710994 B - - gz get SELinux security context of a processxtregistercaseconverterXtRegisterCaseConverter 3 3 1501646833 B - - gz convert KeySym to KeyCodesaddseverity- 3 3 1402354207 A - - gz introduce new severity classestime::gmtimeTime::gmtime 3pm 3 1698237678 A - - gz by-name interface to Perl's built-in gmtime() functionfwide 3- 3 3 1402354209 A - - gz set and determine the orientation of a FILE streamdatetime::locale::zh_twDateTime::Locale::zh_TW 3pm 3 1402390644 A - - gz xcb_list_extensions_reply- 3 3 1540917640 B - - gz vipw- 8 8 1565319053 A - - gz edit the password, group, shadow-password or shadow-group filebio_ssl_copy_session_idBIO_ssl_copy_session_id 3ssl 3 1721417624 B - - gz SSL BIOxcb_selinux_get_device_create_context_context_end- 3 3 1540917640 B - - gz tcl_getensemblenamespaceTcl_GetEnsembleNamespace 3 3 1448008821 B - - gz manipulate ensemble commandsmount.nfs- 8 8 1634214566 A - - gz mount a Network File Systemlwres_gethostent- 3 3 1725373371 B - - gz lightweight resolver get network host entryi2d_dsaprivatekeyi2d_DSAPrivateKey 3ssl 3 1721417624 B - - gz DSA key encoding and parsing functions.xcb_glx_get_histogram_data_length- 3 3 1540917640 B - - gz btreplay- 8 8 1565305324 A - - gz recreate IO loads recorded by blktraceeuimage-install-pack- 1 1 1484780705 A - - gz ***TECH PREVIEW***xcb_glx_is_query_arb_reply- 3 3 1540917640 B - - gz xtpopdownXtPopdown 3 3 1501646833 A - - gz unmap a pop-upxcb_sync_destroy_alarm- 3 3 1540917640 A - - gz git-http-push- 1 1 1722330780 A - - gz Push objects over HTTP/DAV to another repositoryperl587delta- 1 1 1698237663 A - - gz what is new for perl v5.8.7datetime::locale::mt_mtDateTime::Locale::mt_MT 3pm 3 1402390632 A - - gz ttk::treeview- n n 1448008912 A - - gz hierarchical multicolumn data display widgetxtremoveblockhookXtRemoveBlockHook 3 3 1501646833 B - - gz register a block hook procedureposix_spawnp- 3p 3p 1402354216 A - - gz spawn a process (ADVANCED REALTIME)menu_userptr- 3x 3 1720626759 A - - gz associate application data with a menu itemperl5120delta- 1 1 1698237662 A - - gz what is new for perl v5.12.0ctype.h- 0p 0p 1402354203 A - - gz character typessetup 2- 2 2 1402354206 A - - gz setup devices and file systems, mount root file systemtext::wrapText::Wrap 3pm 3 1698237678 A - - gz line wrapping to form simple paragraphsvidattr- 3x 3 1720626759 B - - gz curses interfaces to terminfo databaserdma-resource- 8 8 1601484048 A - - gz rdma resource configurationlocale::codes::country_retiredLocale::Codes::Country_Retired 3pm 3 1402383323 A - - gz retired country codes for the Locale::Codes::Country modulexcb_xv_put_still_checked- 3 3 1540917640 B - - gz xcb_randr_get_crtc_transform_pad_4- 3 3 1540917640 B - - gz selinux_status_getenforce- 3 3 1585710994 B - - gz reference the SELinux kernel status without invocation of system callsfiletest- 3pm 3 1698237678 A - - gz Perl pragma to control the filetest permission operatorstcl_fsgettranslatedpathTcl_FSGetTranslatedPath 3 3 1448008822 B - - gz procedures to interact with any filesystemxkballocgeomsectiondoodadsXkbAllocGeomSectionDoodads 3 3 1710950785 A - - gz Allocate doodads that are specific to a sectionxgetscreensaverXGetScreenSaver 3 3 1710950786 B - - gz manipulate the screen saverssl_ctx_sess_get_remove_cbSSL_CTX_sess_get_remove_cb 3ssl 3 1721417624 B - - gz provide callback functions for server side external session cachingrand_ssleayRAND_SSLeay 3ssl 3 1699892212 A - - gz select RAND methodxsetwindowborderXSetWindowBorder 3 3 1710950785 B - - gz change window attributesxcreatewindowXCreateWindow 3 3 1710950786 A - - gz create windows and window attributes structurevwprintf vwprintf 3 vwprintf 3pilogbl 3p- 3p 3p 1402354216 B - - gz return an unbiased exponentxcupgetreservedcolormapentriesXcupGetReservedColormapEntries 3 3 1448003986 A - - gz list colormap entries reserved by the systemodbc.ini- 5 5 1565320310 A - - gz unixODBC data sources configurationxcb_alloc_color_cells_reply- 3 3 1540917640 B - - gz clntudp_bufcreate- 3 3 1402354208 B - - gz library routines for remote procedure callsxcb_xkb_list_components_keymaps_iterator- 3 3 1540917640 B - - gz cgi::cookieCGI::Cookie 3pm 3 1402342275 A - - gz Interface to HTTP Cookiespam_issue- 8 8 1585713589 A - - gz PAM module to add issue file to user promptssl_ctx_set_default_read_aheadSSL_CTX_set_default_read_ahead 3ssl 3 1721417624 B - - gz manage whether to read as many input bytes as possibledatetime::locale::cs_czDateTime::Locale::cs_CZ 3pm 3 1402390638 A - - gz tcl_unicharisalphaTcl_UniCharIsAlpha 3 3 1448008823 B - - gz routines for classification of Tcl_UniChar characterslgammaf_r- 3 3 1402354210 B - - gz log gamma functionlwres_sethostent_r- 3 3 1725373371 B - - gz lightweight resolver get network host entryxcb_glx_get_tex_level_parameterfv_reply- 3 3 1540917640 B - - gz xcb_glx_get_tex_genfv_data_length- 3 3 1540917640 B - - gz phys- 2 2 1402354205 B - - gz unimplemented system callswrite 1p- 1p 1p 1402354204 A - - gz write to another usereuare-accountdelpolicy- 1 1 1484780705 A - - gz [Eucalyptus cloud admin only] Remove a policy from an accountxtbuildeventmaskXtBuildEventMask 3 3 1501646833 A - - gz retrieve a widget's event maskgetsockcreatecon- 3 3 1585710994 A - - gz get or set the SELinux security context used for creating a new labeled socketsxcmsdefaultcccXcmsDefaultCCC 3 3 1710950786 A - - gz obtain the default CCC for a screeneuform-get-template-summary- 1 1 1484780705 A - - gz Summarize a templatenetrc- 5 5 965001419 A - - gz user configuration for ftpxtvagetapplicationresourcesXtVaGetApplicationResources 3 3 1501646833 B - - gz obtain application resourcesxcb_input_xi_query_pointer_buttons_length- 3 3 1540917640 B - - gz tiffprintdirectoryTIFFPrintDirectory 3tiff 3 1729525165 A - - gz print a description of a TIFF directoryxcb_randr_set_monitor- 3 3 1540917640 A - - gz oldolduname- 2 2 1402354205 B - - gz get name and information about current kerneltk_getopenfiletk_getOpenFile n n 1448008912 A - - gz pop up a dialog box for the user to select a file to open or save.tcl_deleteexithandlerTcl_DeleteExitHandler 3 3 1448008821 B - - gz end the application or thread (and invoke exit handlers)evp_idea_ecbEVP_idea_ecb 3ssl 3 1721417624 B - - gz EVP cipher routinesdatetime::locale::gl_esDateTime::Locale::gl_ES 3pm 3 1402390638 A - - gz o!"P "!X&rfile`!\lzmaxcb_!net:~ Ixcb_ Y8rtgetm`! ;rxget`! R arcatca!GIrrecv`a!xrlsmd~a! IE̚rxtnea! GSrtrus$b!Gfflu6"5lwre{"Fgit-" ;8rescdqb! :rselib!$Xerset_0c! RFrpcrec!>rvforc!}Hrperlc! 3_~Frtdel.d! /rabsgd!Orbn_byd!Tpam_%1git-3&5^*orargzd! ;=rsg_x*e! cn#rcms_e!dtcl_^'aypdo' F{wrdate f!3rlogbUf!7rlseef! <Tkrxargf! H4rfcge*g!I&_rcpang!R/fracosg!ryum- h! ^lrrealuh! E)rcfgeh! Kvorui_dh!Atrxcb_{m!!Sŕrthrem!C,Crxsto n! Fyrxcb__n!+rxcb_n!~:)rtcl_n!ZPrrsa_Do!<p/rcloco!.>jrsa2!M6uDrxcb_Q!\rcurs! SNrxkbs!tHrec_gk!Zrxcb_ױ! rxcb_!-hcZrtk_fX!^Srgetpo! prlati˲!_~reuca1!#:irform!-tGrsymcó! B#rxcb_!rtcl_H!X%*rcarg!9x?rasa!B?rcpan@!a4risas! <rec_g!#k2+rxcb_! rfielɶ!Hrresi! A rgit-k!K.]rxcb_Ʒ!6cwrputu! 3rtiffP! XONMrxcb_!,'rgetg! /;Jrttyn&!?/rxcb_D!1irgetp! /lrsystɹ! Tj+rmodu)!UBͮrnfs4!=1rifh! $rmvge! ]rnet:[! Corrand!7:revp_Ż!@n>rxcb_!-{rrdate^!3 rxml:!Sdrunam!HErfwia!rdbi:!!^8(rxcb_!7rtask4!C8rputw! =Jyrfgetž! CCr$mti! Irperl$! =xcb_,posidEfNrfipsk! F'rxcb_!Trxcb_"nrgit-2"KJrperl" 6{Drdate"3rttk:"G+rxtren"Jdefi ,lh_d* 0խrposi" @cloc@enco UinotW 9xcb_bn_m ?xcb_!++rmenu" GV0rj1_! rperlk"7Lrctyp",XBrsetu"Q rtext=" M`rvida"Bgetc ?Zrrdma"6Ͱrloca#"umemr 6rxcb_"file {euar& /xcb_o  rxcb_"#hrseli)"a6_rfile" U=rtcl_"[ grxkbau"cW%rxget"D^rssl_G"z7rrand" :ĔXrxset""B_rxcreu"Ulrvwpr" /rilog" 8rxcup; "drodbc " >vlan-!>rxcb_ "0_"Ua"8xcb_P"stat*fcva Bevp_PMgit-P Ussl_CQW4sclnt< "FAsxcb_ ")scgi: " @xcb_R/xcb_R=spam_$ " FFbsssl_t "q{sdate "3~stcl_O "axslgam " -Z.slwre "F_Ssxcb_S "(sxcb_ ""vsphys "5I4eswrit " 2͊gseuarH"XN)sxtbu"Hsgets"j sxcms"Kseufo"/!snetrK"4Ԉsxtva"QR sxcb_"*fegeyW Istiff7"WQsxcb_"8soldo" H@Zstk_g&"jsvc_X Fstcl_"gmsevp_" <{sdatee"3lssys_@" 'make}Z5pRsipc:3@" L/seusc@"*QswaitA" Jgtar[3nN~sgrubYA"(sscheA"AKBsxcleA" :Zsopen0B"VD:suse_B";z8sgetnB"8bsseli4C"|'ިspem_C"Fw&ssche.D",r siswamD" Irpm2W^ Wxrep^F UDsxkbsD"u siswsHE" xsdsa_iE" ;G-sxsetE" yVEsapp:2F"SsnextF" sxcb_F"`snl-qF"6sevp_5G"V۾sxml:G"PsbkgdH"J?sposiTH"%Tavc_FBxcb_%xkbgΡvxdr_Y Lgets ngetآ Cfnma& 5creaeDpthrqtsgetcH" )html@ZtempLxscpowI"tssetkI" 5stunnXI" '1.sec_pI"tsxcb_J"4syaml`J"PxsfortJ"7߭ossecuK"4spolkLK"0ֆsdoveK"2hsconsK" Pٻsdepr$L" UUXsveriL"Gsxcb_L"/ҹ(spthr$M"3CNszipifM"H]sxcb_M"sif_nM"O|@sxcb_NN"$sdateN"0]sdpkgN" A9sfdisO":usxcb_^O"!auBslistP" _`Fsio::O"ML+sxcb_kP"#8sxcb_P"]sioprP" Dsperl.Q" -(suntoeQ" ;VssystQ"5#stiffQ" 1Gskeyn6R" ;{ssock|R" .}smq_sR" IResrint S" <[skeycNS"<8sptsnS" C;spathS" @syst09sxcb_7T".YisdmidT" ,NsxcloT"HfGstcl_ U"RSssiganU" 7-~usbcopU"CsxzfgU"K sabrtV"$=$seuca{V"#HNjsxcb_V",F*sattr$W"R1sbcmp~W"7bNssystW"3/$qsxtapW"M'sgetp]X"req]cp 15'userr_{X"P*5sunicX" 2stcl_Y"d sevp_Y"?\scachY" J݊smyis,Z" GuiDsmant~Z"+</Gstcl_Z" 5ަsxcb_#["ZsbuscX["-(sterm[" =Nesnew_[" 4ذIstk_f\" VLsccoss\"5Usdige\" Jexsperl\" DkeycB< ssg_r/]" Gskill]" ;*q>sfcco]"Nysxcb_.^"#@sgetgl^" -_sset_^"`Ystcl_c_"OZ6svi:_" ˬspam_`" AslistN`"R~+Tsxque`" Auwssem_`" Msys_types.h- 0p 0p 1402354203 A - - gz data typesipc::sysvIPC::SysV 3pm 3 1698237674 A - - gz System V IPC constants and system callseuscale-describe-termination-policy-types- 1 1 1484780705 A - - gz List all termination policies supported by the servicewaitpid 3p- 3p 3p 1402354219 B - - gz wait for a child process to stop or terminategrub-mkrescue- 1 1 1722985065 C grub2-mkrescue - gz sched_rr_get_interval 3p- 3p 3p 1402354218 A - - gz get execution time limits (REALTIME)xclearwindowXClearWindow 3 3 1710950785 B - - gz clear area or windowopenssl_instrument_busOPENSSL_instrument_bus 3ssl 3 1721417624 A - - gz instrument references to memory bususe_legacy_coding_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensiongetnetbyaddr_r- 3 3 1402354209 B - - gz get network entry (reentrant)selinux_file_context_path- 3 3 1585710994 B - - gz These functions return the paths to the active SELinux policy configuration directories and filespem_write_bio_pkcs8privatekeyPEM_write_bio_PKCS8PrivateKey 3ssl 3 1721417624 B - - gz PEM routinessched_setscheduler sched_setscheduler 2 sched_setscheduler 3piswalnum 3p- 3p 3p 1402354216 A - - gz test for an alphanumeric wide-character codexkbsetptractionyXkbSetPtrActionY 3 3 1710950785 A - t gz Sets the high_YYY and low_YYY fields of act from the signed integer value yiswspace iswspace 3 iswspace 3pdsa_sizeDSA_size 3ssl 3 1699892208 A - - gz get DSA signature sizexsetwmhintsXSetWMHints 3 3 1710950786 A - - gz allocate window manager hints structure and set or read a window's WM_HINTS propertyapp::prove::stateApp::Prove::State 3pm 3 1439389327 A - - gz State storage for the "prove" command.nextafterf nextafterf 3 nextafterf 3pxcb_glx_query_context- 3 3 1540917640 A - - gz nl-qdisc-delete- 8 8 1501789719 B - - gz Manage queueing disciplinesevp_pkey_encrypt_initEVP_PKEY_encrypt_init 3ssl 3 1699892210 A - - gz encrypt using a public key algorithmxml::libxml::parserXML::LibXML::Parser 3pm 3 1402352994 A - - gz Parsing XML Data with XML::LibXMLbkgd- 3x 3 1720626759 B - - gz curses window background manipulation routinesposix_trace_attr_getmaxusereventsize- 3p 3p 1402354217 B - - gz retrieve and set trace stream size attributes (TRACING)getcontext getcontext 3 getcontext 2 getcontext 3pcpowl cpowl 3 cpowl 3psetkey 3p- 3p 3p 1402354218 A - - gz set encoding key (CRYPT)tunnel_key- 8 8 1601484048 C tc-tunnel_key - gz ec_point_oct2pointEC_POINT_oct2point 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_POINT objects.xcb_input_xi_passive_grab_device_modifiers_iterator- 3 3 1540917640 B - - gz yaml::dumper::baseYAML::Dumper::Base 3pm 3 1402340435 A - - gz Base class for YAML Dumper classesfort77- 1p 1p 1402354203 A - - gz FORTRAN compiler (FORTRAN)security_mkload_policy- 3 3 1585710994 B - - gz load a new SELinux policypolkit- 8 8 1643139761 A - - gz Authorization Managerdoveadm-force-resync- 1 1 1724195936 A - - gz Repair broken mailboxesconsole n- n n 1448008912 A - - gz Control the console on systems without a real consoledeprecate- 3pm 3 1698237678 A - - gz Perl pragma for deprecating the core version of a moduleverify_blkparse- 1 1 1565305324 A - - gz verifies an output file produced by blkparsexcb_x_print_print_get_one_attributes_value_end- 3 3 1540917640 B - - gz pthread_atfork- 3p 3p 1402354217 A - - gz register fork handlerszipinfo- 1 1 1716843539 A - - gz list detailed information about a ZIP archivexcb_glx_make_context_current- 3 3 1540917640 A - - gz if_nametoindex 3- 3 3 1402354210 A - - gz mappings between network interface names and indexesxcb_randr_get_crtc_info_outputs_end- 3 3 1540917640 B - - gz datetime::locale::zuDateTime::Locale::zu 3pm 3 1402390637 A - - gz dpkg-split- 1 1 1642076111 A - - gz Debian package archive split/join toolfdisk- 8 8 1612283497 A - - gz manipulate disk partition tablexcb_randr_get_crtc_info_possible- 3 3 1540917640 B - - gz io::compress::deflateIO::Compress::Deflate 3pm 3 1402361982 A - - gz Write RFC 1950 files/bufferslist_removeLIST_REMOVE 3 3 1402354207 B - - gz implementations of lists, tail queues, and circular queuesxcb_randr_get_crtc_transform_reply- 3 3 1540917640 B - - gz xcb_xf86dri_create_context- 3 3 1540917640 A - - gz ioprio_get- 2 2 1402354205 B - - gz get/set I/O scheduling class and priorityperlwin32- 1 1 1698237671 A - - gz Perl under Windowsuntouchwin- 3x 3 1720626759 B - - gz curses refresh control routinessystemd-initctl.service- 8 8 1711457788 A - - gz /dev/initctl compatibilitytiffswablongTIFFSwabLong 3tiff 3 1729525165 C TIFFswab - gz keyname_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionsocketcall- 2 2 1402354206 A - - gz socket system callsmq_send 3p- 3p 3p 1402354216 A - - gz send a message to a message queue (REALTIME)rintf 3p- 3p 3p 1402354218 B - - gz round-to-nearest integral valuekeyctl_get_security- 3 3 1573510998 A - - gz Retrieve a key's security contextptsname 3- 3 3 1402354211 A - - gz get the name of the slave pseudoterminalpathconf 3p- 3p 3p 1402354216 A - - gz get configurable pathname variablesxcb_input_list_device_properties_atoms_length- 3 3 1540917640 B - - gz dmidecode- 8 8 1615908358 A - t gz DMI table decoderxclosedisplayXCloseDisplay 3 3 1710950786 B - - gz connect or disconnect to X servertcl_regexpmatchTcl_RegExpMatch 3 3 1448008822 B - - gz Pattern matching with regular expressionssigandset- 3 3 1402354212 B - - gz POSIX signal set operations.bcopy bcopy 3 bcopy 3pxzfgrep- 1 1 1655494379 B - - gz search compressed files for a regular expressionabrt-action-generate-core-backtrace- 1 1 1601569733 A - - gz Generates coredump-level backtraceeuca-accept-vpc-peering-connection- 1 1 1484780705 A - - gz Accept a request for a VPC peering connectionxcb_grab_keyboard- 3 3 1540917640 A - - gz Grab the keyboardattrset- 3x 3 1720626759 B - - gz curses character and window attribute control routinesbcmp 3p- 3p 3p 1402354214 A - - gz memory operations (LEGACY)systemd.scope- 5 5 1711457787 A - - gz Scope unit configurationxtappprocesseventXtAppProcessEvent 3 3 1501646833 B - - gz query and process events and inputgetpgrp getpgrp 2 getpgrp 3perr_get_reasonERR_GET_REASON 3ssl 3 1699892208 A - - gz get library, function and reason codeunicode 7- 7 7 1402354220 A - - gz universal character settcl_getmasterTcl_GetMaster 3 3 1448008821 B - - gz manage multiple Tcl interpreters, aliases and hidden commandsevp_des_ede_cbcEVP_des_ede_cbc 3ssl 3 1721417624 B - - gz EVP cipher routinescacheflush- 2 2 1402354204 A - - gz flush contents of instruction and/or data cachemyisampack- 1 1 1697025034 A - - gz generate compressed, read-only MyISAM tablesmantisbt_formatdup_analyzer_libreport.conf- 5 5 1585834715 A - - gz configuration file for libreport.tcl_evalTcl_Eval 3 3 1448008821 A - - gz execute Tcl scriptsxcb_glx_render_mode_reply- 3 3 1540917640 B - - gz busctl- 1 1 1711457787 A - - gz Introspect the bustermattrs- 3x 3 1720626759 B - - gz curses environment query routinesnew_menu- 3x 3 1720626759 B - - gz create and destroy menustk_focusnexttk_focusNext n n 1448008912 B - - gz Utility procedures for managing the input focus.ccosl ccosl 3 ccosl 3pdigest::md5Digest::MD5 3pm 3 1402375545 A - - gz Perl interface to the MD5 Algorithmperldoc 1- 1 1 1402388268 A - - gz Look up Perl documentation in Pod format.sg_requests- 8 8 1585715378 A - - gz send one or more SCSI REQUEST SENSE commandskillchar_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionfcconfigappfontaddfileFcConfigAppFontAddFile 3 3 1520307172 A - - gz Add font file to font databasexcb_xfixes_subtract_region_checked- 3 3 1540917640 B - - gz getgid 2- 2 2 1402354204 A - - gz get group identityset_matchpathcon_flags- 3 3 1585710994 A - - gz set flags controlling the operation of matchpathcon or matchpathcon_index and configure the behaviour of validity checking and error displayingtcl_utfatindexTcl_UtfAtIndex 3 3 1448008823 B - - gz routines for manipulating UTF-8 stringsvi vi 1p vi 1pam_env.conf- 5 5 1585713588 A - - gz the environment variables config fileslist::moreutilsList::MoreUtils 3pm 3 1402343718 A - - gz Provide the stuff missing in List::UtilxquerytreeXQueryTree 3 3 1710950786 A - - gz query window tree informationsem_open 3p- 3p 3p 1402354218 A - - gz initialize and open a named semaphore (REALTIME)xundefinecursorXUndefineCursor 3 3 1710950785 B - - gz define cursorsfile::spec::os2File::Spec::OS2 3pm 3 1402373474 A - - gz methods for OS/2 file specsxcb_dri2_get_buffers_with_format_unchecked- 3 3 1540917640 B - - gz tcl_initstubsTcl_InitStubs 3 3 1448008822 A - - gz initialize the Tcl stubs mechanismtap::parser::scheduler::jobTAP::Parser::Scheduler::Job 3pm 3 1439389327 A - - gz A single testing job.xcb_glx_get_mapdv- 3 3 1540917640 A - - gz pnoutrefresh- 3x 3 1720626759 B - - gz create and display curses padsxcb_glx_get_compressed_tex_image_arb- 3 3 1540917640 A - - gz xcb_xf86dri_query_version_unchecked- 3 3 1540917640 B - - gz xcb_screensaver_query_version_reply- 3 3 1540917640 B - - gz xcb_render_tri_fan- 3 3 1540917640 A - - gz new_prescr- 3x 3 1720626759 B - - gz curses screen-pointer extensionsuffixes- 7 7 1402354220 A - t gz list of file suffixessecurity_set_boolean- 3 3 1585710994 B - - gz routines for manipulating SELinux boolean valuespam_limits- 8 8 1585713589 A - - gz PAM module to limit resourcesxcb_input_grab_device_reply- 3 3 1540917640 B - - gz defaultscreenofdisplayDefaultScreenOfDisplay 3 3 1710950785 B - - gz Display macros and functionssigwait sigwait 3 sigwait 3pfcobjectsetbuildFcObjectSetBuild 3 3 1520307172 A - - gz Build object set from argsxcb_glx_get_tex_parameteriv_data- 3 3 1540917640 B - - gz gpgparsemail- 1 1 1531487121 A - - gz Parse a mail message into an annotated formatsetprotoent 3p- 3p 3p 1402354218 B - - gz network protocol database functionsmemset 3- 3 3 1402354211 A - - gz fill memory with a constant byteconvertquota- 8 8 1319118019 A - - gz convert quota from old file format to new onexgettext- 1 1 1465650364 A - - gz extract gettext strings from sourceextutils::mm_aixExtUtils::MM_AIX 3pm 3 1402365499 A - - gz AIX specific subclass of ExtUtils::MM_Unixoptind 3- 3 3 1402354211 B - - gz Parse command-line optionsxkballocgeompropsXkbAllocGeomProps 3 3 1710950785 A - - gz Allocate geometry propertiesxtcallcallbacksXtCallCallbacks 3 3 1501646833 A - - gz process callbacksmodule::build::configdataModule::Build::ConfigData 3pm 3 1402373050 A - - gz Configuration for Module::Buildxcb_randr_get_output_primary_unchecked- 3 3 1540917640 B - - gz xttranslatecoordsXtTranslateCoords 3 3 1501646833 A - - gz translate widget coordinatesle32toh- 3 3 1402354210 B - - gz convert values between host and big-/little-endian byte ordertcl_fsgetfilesystemforpathTcl_FSGetFileSystemForPath 3 3 1448008822 B - - gz procedures to interact with any filesystembn_div_recpBN_div_recp 3ssl 3 1721417624 B - - gz modular multiplication using reciprocalxcb_input_device_bell- 3 3 1540917640 A - - gz xdestroyocXDestroyOC 3 3 1710950785 B - - gz create output contextsssl_get_peer_certificateSSL_get_peer_certificate 3ssl 3 1699892223 A - - gz get the X509 certificate of the peerxcb_create_colormap_checked- 3 3 1540917640 B - - gz xputbackeventXPutBackEvent 3 3 1710950786 A - - gz put events back on the queuextkeysymtokeycodelistXtKeysymToKeycodeList 3 3 1501646833 B - - gz query keysyms and keycodesxcb_input_get_device_modifier_mapping_keymaps_length- 3 3 1540917640 B - - gz image::info::ppmImage::Info::PPM 3pm 3 1402363342 A - - gz PPM support Image::Infoxcb_sync_trigger_fence_checked- 3 3 1540917640 B - - gz smartd- 8 8 1585715574 A - - gz SMART Disk Monitoring Daemonulimit 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)sync sync 8 sync 2 sync 1 sync 3pwhereis- 1 1 1612283497 A - - gz locate the binary, source, and manual page files for a commandsymbolSymbol 3pm 3 1698237677 A - - gz manipulate Perl symbols and their namesxcb_alloc_color_planes_pixels_length- 3 3 1540917640 B - - gz ccoshl ccoshl 3 ccoshl 3pxrmoptiondescrecXrmOptionDescRec 3 3 1710950786 B - - gz initialize the Resource Manager, Resource Manager structures, and parse the command linexcb_get_motion_events_reply- 3 3 1540917640 B - - gz tcl_getvar2exTcl_GetVar2Ex 3 3 1448008822 B - - gz manipulate Tcl variablesencode::guessEncode::Guess 3pm 3 1402368577 A - - gz - Guesses encoding from datayamlYAML 3pm 3 1402340435 A - - gz YAML Ain't Markup Language (tm)xfsinvutil- 8 8 1701960892 A - - gz xfsdump inventory database checking and pruning utilitysg_opcodes- 8 8 1585715378 A - - gz report supported SCSI commands or task management functionsbn_mul_recursive- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionsxcb_glx_get_histogram_parameterfv- 3 3 1540917640 A - - gz dsa_generate_parameters_exDSA_generate_parameters_ex 3ssl 3 1699892207 A - - gz generate DSA parameterstcl_createcommandTcl_CreateCommand 3 3 1448008821 A - - gz implement new commands in Cxcb_glx_get_doublev_data- 3 3 1540917640 B - - gz abrt-action-analyze-python- 1 1 1601569733 A - - gz Calculate and save UUID and duplicate hash for a problem data directory DIR with Python crash data.pod::perldoc::totermPod::Perldoc::ToTerm 3pm 3 1402388268 A - - gz render Pod with terminal escapes"!;#>#bvxcb_&#)w/]vxcb_j#0h}vuserp! ^%vsigqp! #vfrex$q!5vfput?q!59vcfreq!0]Cvslk_q!;:-vcircr!ivtiffr! J6$vbn_mr! Gwvhttp)s!QN !vtells!Mxvstris!'1Acvlinst!6CIvxcb_Rt!'բvfma t!:vssl_t!WlCvposiDu!_1vDES_#,vsysc# Ai$\vssl_-v! C.wmkst:# wwcsdX#< vwcrt}v!G4wxcb_#%ёwnode#0Cvopenv!kXwboot#V5wsha3z#hOwxcb_#.vlwrew!Avshadrw!avgtblw!2pܟvfcobw!;Fvxcb_x!.vsha2Zx! =yvfsetx!A׀vxcb_x!)=varch8y!I<޻vgdbmy! FWvatany! 2xvshmaz!<wdes_# DOwwho 3#9iwdup_s# : vlatiUz!_;6wposi#_0vxcb_z! wfiel. # 0,qwsxpmk #`wgeth #1gwbn_i #Z(wunal # >vfilez! 7zvmsgr6{! :vui_sz{!<*yFvxkba{!Evxcb_|!Uwxtun #HKwfcgi' #/Avxcb_J|!vwmov{|!5wdate[ #!m,vapp:|! Tmwgetw #A.Zvscal}! =%vssl_]}!M:Evx509}!T{8Awdate1 #3f(veven.~! J+vtcl_~!P/*vgrot~!C6veuca,!#[@Yvputc! :dwxcb_| #~Uvpcre" >Yvfwid^"Vvatdv">1vsmim",f~vvgex" ABvlwre4"QYvisle"A/vsemg" BArvxtadʵ" >5vloca"`+vxtap"Fywxcb_ #w_exi #8cviso-" ^B~fwx509. # O'avmii-R" Aԡvxcb_"{wdate #3wsett # ),vvserѷ"5Pwxtad#CK ,wselfY# C.1vranl"5Gvxcb_J"veuar"<wdove# Evxcb_۸""wtemp# =۔`wxcb_@#,wrvmvwa" a>G'vbund"Txvppi"Kwatoq#9{vdate?"3ZEveuar"=wvtcl_ۺ"S=cvxcb_>"guvdracq"=y_vxtre"M;Zwkoi8#[(޸wshmob#<vdsa_"Fcvposip"J0wtemp#^vxcb_̼"&Bvrais "Xveuca-".Nvlog1n"ivxcb_",vvpri½" D@Wsvxcb_"!vvtcl_M"E0vxcb_"5\vcurs"Z1@vlocaj" EPvmkfs" 6Hvy1f#>bvtgamB# 5vxcms# 82-vtcl_# :vxcb_ #2] vwaddV# m5vxcb_#*# vxcb_#Rvxcb_@#) vfilex#EFvxcb_#0ivveuca#4vgit-h# IA`wtune#]!^ptxcb_}>!+tcurs>! W txcb_%?!$ctiso-d?! ^iswps Gtowuƒ @ľtunal?!+7tposi!Vmbrt/mkdi -fiel Gteucat!!Yrttiff! 0Ktxcb_)!!7tlabse!A/tsock! =SELi !ltset_! QBtxcb_V!-tevp_! ;M tif_nق!$txcb_ !%xcb_ߗMD4  >tputwL!;pRtrsa_![open#JGtsecu!Jtlran[!Kif_nΙKtxcon!LhKtxkbg!{tdate!3x509ܚNt"ctxcb_ !!txzcmF!30tidn!Kupda 8֫ti2d_Ά!Rtevp_0!W tgetc! 87tbio_݇!Hxtctan;!5^tcursx! >*txcb_!=|tfflu! +date4txcb_-!2tcifsd! 2pcre>xcb_N&date3ZBtxcb_!0!Btxcb_!2fcpaV8{tdate0!3Jtfals{! /simpP#txtse!Gtcl_Qxcb_,}=tdes_ !::YtvgreS! H tbn_m!Yܣtsget! 9|txcb_V!tdate!5;twhliی! b5`tfileH!Ztenco![rftxcb_(!"lptxcb_e!tinot!Ltexpr!@bftabrttextuv"VCltoptiXw" 57txkbaw"Gtxtcaw":@tmodu9x"Txcb_!7txcb_x"'vlan-!ktxttrx"G"4"U r|luxcb_<"!utimex"(usetg"Kuxcb_vz"uxdesz" :|mussl_z"Yyuxcb_^{"uxput{"Cu5`uxtke{"Ixuxcb_E|"5wmemmyuimag|"C&(uxcb_|" jusmar#}"7uulima}" >cusync}"xtisQ}usht?! $(]uwher}"Y0usymb,~"I{3nuxcb_|~"%uccos~"6uxrmo~"Vuxcb_j"xcb_PaMZutcl_"?zuenco"E uyamlS"?tkuxfsi" RNusg_o" Vfubn_mU"?jIuxcb_""A&udsa_"NOutcl_K"FFuxcb_"8uabrtׂ"~Nupod:p"PclocV]xcb_lp @umloc" -upthr8"A uevp_" :"kuatan"uxcb_"$ԅ$usiga/" 'dZuabrtS"Knubussl_"]|Nucpup"uentrP">ec_ktxquei 8usyst"5wmem +e;uclog"?uxkbs("dtuxset"ruxcb_ "strc 2evp_5 <rand~Cxcmsjlvm-y Ksetu 4uxml:U"STuevp_"AУutcl_"=hTuxcb_b"" Ŗuasn1"Lusign" <]&uname@"M#upcre">uxcb_"utcl_3"AQfupod:"1utcl_" Lɪufloc%":~ufcpag"<upthr"=&Cunl_l "16uecdsK"UQutiff"hZugetn,",oulog:g"Tuevp_" <Kupthr"<bn_sCMuclocm"2xnex 9xcb_/xdrr, Lxcb_ tcl_ Oswap!  Sxcb_} file JC/ussl_"Iussl " 5uxcb_C")udate"0eucad =j,uxcb_"*putw Bregei  0uunet:" Gu^uswitb" UXhuxset"Fuperl" 6m!uperl`"0uperl"~fget` BhVusets" 1=uxcb_Y"+upthr"Shuread"<uxmapD" /ufcco~"E{Audate"3datea5ipcsswap,uevp_7"?6puvspr" 6usetj" ?メuextu"e|Iussl_"Uulset" Adnsdf<dateg0xcb_Zg httpgE`uuxcb_A"*usela"i uecds "T_uxkilk":pam.h 2aucdh"ssh2iD/Sukeyc" 8wupem_"Axuwres^"2ubn_f" ?w[utap:"!X`ufind["=% ucurs" @xcb_ϵxset^xcb_getrj modijG1ubio_"DLFutcl_@"`n!uperl" 2utcl_y"^/ule32By"X0upute" @O?ubn_dz" Omlocate.db- 5 5 1346267873 A - - gz a mlocate databasepthread_mutexattr_settype- 3p 3p 1402354217 B - - gz get and set the mutex type attributeevp_sha224EVP_sha224 3ssl 3 1721417624 B - - gz EVP digest routinesatanh atanh 3 atanh 3pxcb_x_print_attribut_notify_event_t- 3 3 1540917640 A - - gz sigaction sigaction 2 sigaction 3pabrt-dump-xorg- 1 1 1601569733 A - - gz Extract Xorg crash from FILE (or standard input)ssl_ctx_set_timeoutSSL_CTX_set_timeout 3ssl 3 1721417624 A - - gz manipulate timeout values for session cachingcpupower-frequency-set- 1 1 1731045638 A - - gz entry- n n 1448008912 A - - gz Create and manipulate entry widgetssystemd-shutdownd.socket- 8 8 1711457788 B - - gz Scheduled shutdown serviceclog2l- 3 3 1402354208 B - - gz base-2 logarithm of a complex numberxkbsaactionsetctrlsXkbSAActionSetCtrls 3 3 1710950785 A - t gz Sets the ctrls0 through ctrls3 fields of act from ctrlsxsetclasshintXSetClassHint 3 3 1710950785 B - - gz allocate class hints structure and set or read a window's WM_CLASS propertyxcb_randr_add_output_mode- 3 3 1540917640 A - - gz xml::sax::pureperl::readerXML::SAX::PurePerl::Reader 3pm 3 1402345097 A - - gz Abstract Reader factory classevp_cipherinit_exEVP_CipherInit_ex 3ssl 3 1721417624 B - - gz EVP cipher routinestcl_freeresultTcl_FreeResult 3 3 1448008822 B - - gz manipulate Tcl resultxcb_xvmc_create_surface_unchecked- 3 3 1540917640 B - - gz asn1_string_newASN1_STRING_new 3ssl 3 1721417624 A - - gz ASN1_STRING allocation functionssigntool- 1 1 1730826028 A - - gz Digitally sign objects and files.named-rrchecker- 1 1 1725373373 A - - gz syntax checker for individual DNS resource recordspcre_utf16_to_host_byte_order- 3 3 1501643278 A - - gz Perl-compatible regular expressionsxcb_selinux_get_window_context- 3 3 1540917640 A - - gz tcl_pkgpresentexTcl_PkgPresentEx 3 3 1448008822 B - - gz package version controlpod::pom::node::head1Pod::POM::Node::Head1 3pm 3 1402385888 A - - gz tcl_writeobjTcl_WriteObj 3 3 1448008822 B - - gz buffered I/O facilities using channelsflock 1- 1 1 1612283497 A - - gz manage locks from shell scriptsfcpatterngetmatrixFcPatternGetMatrix 3 3 1520307172 C FcPatternGet-Type - gz pthread_mutex_timedlock- 3p 3p 1402354217 A - - gz lock a mutex (ADVANCED REALTIME)nl_langinfo 3p- 3p 3p 1402354216 A - - gz language informationecdsa_sig_freeECDSA_SIG_free 3ssl 3 1721417624 B - - gz Elliptic Curve Digital Signature AlgorithmtiffwriteencodedtileTIFFWriteEncodedTile 3tiff 3 1729525165 A - - gz compress and write a tile of data to an open TIFF filegetnetbyaddr 3- 3 3 1402354209 B - - gz get network entrylog::message::simpleLog::Message::Simple 3pm 3 1402362945 A - - gz Simplified interface to Log::Messageevp_desx_cbcEVP_desx_cbc 3ssl 3 1721417624 B - - gz EVP cipher routinespthread_cleanup_push 3p- 3p 3p 1402354217 A - - gz establish cancellation handlersclock_gettime clock_gettime 3 clock_gettime 2 clock_gettime 3pssl_get_cipherSSL_get_cipher 3ssl 3 1721417624 B - - gz get SSL_CIPHER of a connectionssl 3ssl- 3ssl 3 1699892225 A - - gz OpenSSL SSL/TLS libraryxcb_glx_get_minmax_parameterfv_unchecked- 3 3 1540917640 B - - gz datetime::locale::ssDateTime::Locale::ss 3pm 3 1402390638 A - - gz xcb_input_list_input_devices_names_length- 3 3 1540917640 B - - gz net::httpNet::HTTP 3pm 3 1402390514 A - - gz Low-level HTTP connection (client)switch_root- 8 8 1612283497 A - - gz switch to another filesystem as the root of the mount treexsetwindowbackgroundXSetWindowBackground 3 3 1710950785 B - - gz change window attributesperl58delta- 1 1 1698237663 A - - gz what is new for perl v5.8.0perlqnx- 1 1 1698237667 A - - gz Perl version 5 on QNXperlipc- 1 1 1698237666 A - - gz Perl interprocess communication (signals, fifos, pipes, safe subprocesses, sockets, and semaphores)setscrreg- 3x 3 1720626759 B - - gz curses output optionsxcb_dri2_copy_region- 3 3 1540917640 A - - gz pthread_attr_getguardsize 3- 3 3 1402354211 B - - gz set/get guard size attribute in thread attributes objectread 1p- 1p 1p 1402354204 A - - gz read a line from standard inputxmapraisedXMapRaised 3 3 1710950786 B - - gz map windowsfcconfiggetconfigdirsFcConfigGetConfigDirs 3 3 1520307172 A - - gz Get config directoriesdatetime::locale::sh_yuDateTime::Locale::sh_YU 3pm 3 1402390635 A - - gz io::uncompress::anyuncompressIO::Uncompress::AnyUncompress 3pm 3 1402361982 A - - gz Uncompress gzip, zip, bzip2 or lzop file/bufferpthread_attr_setstacksize 3- 3 3 1402354211 A - - gz set/get stack size attribute in thread attributes objectwctob wctob 3 wctob 3ppam_tty_audit- 8 8 1585713592 A - - gz Enable or disable TTY auditing for specified usersxutf8textpropertytotextlistXutf8TextPropertyToTextList 3 3 1710950786 B - t gz convert text lists and text property structuresxcb_selinux_get_property_data_context- 3 3 1540917640 A - - gz bindresvport- 3 3 1402354207 A - - gz bind a socket to a privileged IP portxsetroot- 1 1 1502476989 A - - gz root window parameter setting utility for Xpcre32_compile2- 3 3 1573510868 B - - gz Perl-compatible regular expressionsevp_md_ctx_sizeEVP_MD_CTX_size 3ssl 3 1721417624 B - - gz EVP digest routinesvsprintf 3- 3 3 1402354213 B - - gz formatted output conversionsetjmp 3- 3 3 1402354212 A - - gz save stack context for nonlocal gotoextutils::mm_vmsExtUtils::MM_VMS 3pm 3 1402365499 A - - gz methods to override UN*X behaviour in ExtUtils::MakeMakerssl_ctx_sess_connect_goodSSL_CTX_sess_connect_good 3ssl 3 1721417624 B - - gz obtain session cache statisticslsetfilecon- 3 3 1585710994 B - - gz set SELinux security context of a filexcb_xkb_list_components_geometries_length- 3 3 1540917640 B - - gz selabel_lookup_best_match- 3 3 1585710994 A - - gz obtain a best match SELinux security context - Only supported on file backend.ecdsa_do_signECDSA_do_sign 3ssl 3 1721417624 B - - gz Elliptic Curve Digital Signature Algorithmxkill- 1 1 1502476988 A - - gz kill a client by its X resourcecd cd n cd 1p cd 1keyctl_chown- 3 3 1402366674 A - - gz Change the ownership of a keypem_write_bio_rsa_pubkeyPEM_write_bio_RSA_PUBKEY 3ssl 3 1721417624 B - - gz PEM routineswresize- 3x 3 1715932340 A - - gz resize a curses windowbn_fix_top- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionstap::parser::sourcehandler::fileTAP::Parser::SourceHandler::File 3pm 3 1439389327 A - - gz Stream TAP from a text file.findfs- 8 8 1612283497 A - - gz find a filesystem by label or UUIDcurs_clear- 3x 3 1715932336 A - - gz clear all or part of a curses windowbio_ctrl_wpendingBIO_ctrl_wpending 3ssl 3 1721417624 B - - gz BIO control operationstcl_channelclose2procTcl_ChannelClose2Proc 3 3 1448008821 B - - gz procedures for creating and manipulating channelsperldebtut- 1 1 1698237664 A - - gz Perl debugging tutorialputenv 3- 3 3 1402354211 A - - gz change or add an environment variablexcb_glx_gen_queries_arb_data_end- 3 3 1540917640 B - - gz timer_getoverrun timer_getoverrun 2 timer_getoverrun 3psetgid setgid 2 setgid 3py1f- 3 3 1402354213 B - - gz Bessel functions of the second kindtgamma 3p- 3p 3p 1402354219 A - - gz compute gamma() functionxcmsciexyzXcmsCIEXYZ 3 3 1710950786 B - - gz Xcms color structuretcl_newobjTcl_NewObj 3 3 1448008822 B - - gz manipulate Tcl objectsxcb_input_get_feedback_control_feedbacks_iterator- 3 3 1540917640 B - - gz wadd_wch- 3x 3 1720626759 B - - gz add a complex character and rendition to a curses window, then advance the cursorxcb_glx_get_query_objectuiv_arb_unchecked- 3 3 1540917640 B - - gz xcb_list_extensions- 3 3 1540917640 A - - gz xcb_randr_create_lease_reply- 3 3 1540917640 B - - gz file::compareFile::Compare 3pm 3 1698237673 A - - gz Compare files or filehandlesxcb_selinux_list_selections_selections_iterator- 3 3 1540917640 B - - gz euca-delete-network-acl-entry- 1 1 1484780705 A - - gz Delete a network acl rulegit-shell- 1 1 1722330782 A - - gz Restricted login shell for Git-only SSH accesshtobe16- 3 3 1402354210 B - - gz convert values between host and big-/little-endian byte orderckalloc- 3 3 1448008821 B - - gz allocate or free heap memoryxcb_randr_set_output_primary- 3 3 1540917640 A - - gz echo_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionbf_cfb64_encryptBF_cfb64_encrypt 3ssl 3 1721417624 B - - gz Blowfish encryptionxcb_xf86dri_get_client_driver_name_reply- 3 3 1540917640 B - - gz xcb_glx_get_convolution_parameteriv_data_length- 3 3 1540917640 B - - gz DES_crypt 3ssl- 3ssl 3 1721417624 B - - gz DES encryptionsysctl 8- 8 8 1601486472 A - - gz configure kernel parameters at runtimemkstemp mkstemp 3 mkstemp 3pwcsdup- 3 3 1402354213 A - - gz duplicate a wide-character stringxcb_xinerama_query_version_unchecked- 3 3 1540917640 B - - gz nodelay- 3x 3 1720626759 B - - gz curses input optionsbootchart.conf.d- 5 5 1711457788 B - - gz Boot performance analysis graphing tool configuration filessha384 SHA384 3ssl sha384 1sslxcb_glx_get_histogram_parameteriv_data_length- 3 3 1540917640 B - - gz des_read_pw- 3ssl 3 1721417624 B - - gz Compatibility user interface functionswho 1p- 1p 1p 1402354204 A - - gz display who is on the systemdup_field- 3x 3 1720626759 B - - gz create and destroy form fieldsposix_spawnattr_destroy- 3p 3p 1402354217 A - - gz destroy and initialize spawn attributes object (ADVANCED REALTIME)field_buffer- 3x 3 1720626759 B - - gz field buffer controlsxpm- 1 1 1674664597 A - - gz Show an XPM (X PixMap) file and/or convert XPM 1 or 2 files to XPM 3.gethostbyname2_r- 3 3 1402354209 B - - gz get network host entrybn_is_prime_fasttest_exBN_is_prime_fasttest_ex 3ssl 3 1721417624 B - - gz generate primes and test for primalityunalias 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)xtunmanagechildrenXtUnmanageChildren 3 3 1501646833 B - - gz manage and unmanage childrenfcgiFCGI 3pm 3 1402351785 A - - gz Fast CGI moduledatetime::timezone::local::win32DateTime::TimeZone::Local::Win32 3pm 3 1565315819 A - - gz Determine the local system's time zone on Windowsgetwin- 3x 3 1720626759 B - - gz miscellaneous curses utility routinesdatetime::locale::es_pyDateTime::Locale::es_PY 3pm 3 1402390640 A - - gz xcb_list_hosts_hosts_iterator- 3 3 1540917640 B - - gz xcb_dpms_set_timeouts_checked- 3 3 1540917640 B - - gz _exit 2- 2 2 1402354204 A - - gz terminate the calling processx509_newX509_new 3ssl 3 1721417624 A - - gz X509 certificate ASN1 allocation functionsdatetime::locale::sq_alDateTime::Locale::sq_AL 3pm 3 1402390637 A - - gz settimeofday- 2 2 1402354205 A - - gz get / set timextaddconverterXtAddConverter 3 3 1501646833 B - - gz register resource converterselfloaderSelfLoader 3pm 3 1698237677 A - - gz load functions only on demanddoveadm-user- 1 1 1724195936 A - - gz Perform a user lookup in Dovecot's userdbstempnam 3- 3 3 1402354213 A - - gz create a name for a temporary filexcb_render_query_pict_formats_subpixels_end- 3 3 1540917640 B - - gz atoq- 3 3 1402354207 B - - gz convert a string to an integerkoi8-r- 7 7 1402354220 A - t gz Russian character set encoded in octal, decimal, and hexadecimalshmop- 2 2 1402354206 A - - gz System V shared memory operationstemplate::faqTemplate::FAQ 3pm 3 1402357152 A - - gz Frequently Asked Questions about the Template Toolkittune2fs- 8 8 1711459141 A - - gz adjust tunable filesystem parameters on ext2/ext3/ext4 filesystemsttk_vsapi- n n 1448008912 A - - gz Define a Microsoft Visual Styles elementsk98lin- 4 4 1402354219 A - - gz Marvell/SysKonnect Gigabit Ethernet driver v6.21"!;# #"wvmathp!?K|vdoveGp! <h}vuserp! ^%vsigqp! #vfrex$q!5vfput?q!59vcfreq!0]Cvslk_q!;:-vcircr!ivtiffr! J6$vbn_mr! Gwvhttp)s!QN !vtells!Mxvstris!'1Acvlinst!6CIvxcb_Rt!'բvfma t!:vssl_t!WlCvposiDu!_Hvstrcu! 6=zvnftwu!-i$\vssl_-v! Chas_`%;__fb% = vwcrt}v!git-3&5sarx&PCvopenv!kping'Btcl_^'aypdo' Fvlwrew!Avshadrw!avgtblw!2pܟvfcobw!;Fvxcb_x!.vsha2Zx! =yvfsetx!A׀vxcb_x!)=varch8y!I<޻vgdbmy! FWvatany! 2xvshmaz!<date, ;cron, >trof#-R vlatiUz!_tcl_-C0vxcb_z! pem_v.<dsap.Mxcb_&/yum-Y/Nilog/vfilez! 7zvmsgr6{! :vui_sz{!<*yFvxkba{!Evxcb_|!wcty Piswps GAvxcb_J|!vwmov{|!5xsetc O,vapp:|! Tmkdi -.Zvscal}! =%vssl_]}!M:Evx509}!TxtchHf(veven.~! J+vtcl_~!P/*vgrot~!C6veuca,!#[@Yvputc! :xdr_ L~Uvpcre" >Yvfwid^"Vvatdv">1vsmim",f~vvgex" ABvlwre4"QYvisle"A/vsemg" BArvxtadʵ" >5vloca"`+vxtap"Ffile gislocviso-" ^fd_i #'avmii-R" Aԡvxcb_"dsa_c Dxcb_,vvserѷ"5xcb_N&date3.1vranl"5Gvxcb_J"veuar"<db_fJvxcb_۸""simpP#xcb_zwrvmvwa" a>G'vbund"Txvppi"Kroun Z{vdate?"3ZEveuar"=wvtcl_ۺ"S=cvxcb_>"guvdracq"=y_vxtre"MvarsWdefi ,vdsa_"Fcvposip"Jcloc@vxcb_̼"&Bvrais "Xveuca-".Nvlog1n"ivxcb_",vvpri½" D@Wsvxcb_"!vvtcl_M"E0vxcb_"5\vcurs"Z1@vlocaj" EPvmkfs" 6Hvy1f#>bvtgamB# 5vxcms# 82-vtcl_# :vxcb_ #2] vwaddV# m5vxcb_#*# vxcb_#Rvxcb_@#) vfilex#EFvxcb_#0ivveuca#4vgit-h# Ixcb_l/cms_k`Ϲ.vhtob#Xvckal#7vxcb_Z#1vDES_#,w/]vxcb_j#0bvxcb_&#)vsysc# Au*vecho#;Vvbf_c#@BW#? Vs.wmkst:# wwcsdX#<صwcarg*W#ёwnode#0Xwboot#Vlog2?6net:}Kxtma0Lnfs4*5wsha3z#hOwxcb_#.xcb_b0!unix0Gwdes_# DOwwho 3#9iwdup_s# :;6wposi#_xcb_1/wfiel. # 0,qwsxpmk #`pthr24wgeth #1xselb3Pgwbn_i #Z(wunal # >Uwxtun #HKwfcgi' #/pod:4 Iwdate[ #!mmwgetw #A{8Awdate1 #3dwxcb_| #ywxcb_ #w_exi #8B~fwx509. # O{wdate #3wsett # )Pwxtad#Ceufo7Qxprt7FsemcJ8 @K ,wselfY# Cwdove# Ewtemp# =fmodp9<cata9 :rint9۔`wxcb_@#,watoq#9;Zwkoi8#[(޸wshmob#<0wtemp#^pod:$;ZA`wtune#]80[wputw|A# Ddate>rJjwwuncA#AwecdsB# Q$8 wxtvapB#Lwcms_B#&jxcb_@-yum-@Puwxcb__C#%wpairC#;lwreKA=circAbbwportC#HxtsekBI8Ηwlwp:7D#E"QXwperlD# CFwmousD#1ԿwrounE# C0Uwremo^E#/Uwtcl_yE#z|wsg_t F#ItiffD EfcdibCxcb_PD"&Bwmdad\F#DUG wxcb_F#!Xwxcb_F#4 wbashG# /io::E Uxcb_'GwrtldPG# >xcb_RF"wdateG#0! wfcchG#5wtcl_!H#G1wfcstwH# 0"wxgetH#^o;wtemp$I#Xqwbio_I#8EwprliI# dEwpod2J# C=wsemoRJ# 5wsys_J#B!wvscaJ# C" wsys_-K# Btcl_Hsnmp{IOvwgetpyK# OJ%wsecuK#JYweuca3L#@)wfuseL#Dtcl_kJMpkg-J KwsslvL#wgwtcl_fM# ?wbn_pM# ؘwscheM#<x+wcms_"N#ha^wmmapN#TIwsetmN# @mounL Kbase M /chowEM 6logfM7|wbrkN#3Zc~wunct4O# ;wmenuyO# 4_lw_traO#5wsecuP#KwpthrfP#UwsystP#0VVwmknoQ#@]wxcb_`Q#rwdbusQ#A %wxcb_Q#+weuscR#(D%ZwnsswR#Axywxml:R#_tie:P Nunse0Q SEwformES#;WTwxcb_S##wunliS# P wxdg--T#T,wrsynT#RlwextuT#PtcpR'wtcl_LU#L%"wcursU# Rxcb_IS*wxfilV# Esg_pS gnew_T ;tput]TBfc-mT 0ʒ&wdate_V#8wgetpV# /WwremqV# 0G4wxcb_#%doveadm-instance- 1 1 1724195936 A - - gz Manage the list of running Dovecot instancesmq_getattr mq_getattr 3 mq_getattr 3pbatch 1p- 1p 1p 1402354203 A - - gz schedule commands to be executed in a batch queueldiv 3- 3 3 1402354210 B - - gz compute quotient and remainder of an integer divisionsource n- n n 1448008824 A - - gz Evaluate a file or resource as a Tcl scriptputwchar 3- 3 3 1402354211 A - - gz write a wide character to standard outputwunctrl- 3x 3 1720626759 B - - gz miscellaneous curses utility routinesecdsa_sizeECDSA_size 3ssl 3 1721417624 B - - gz Elliptic Curve Digital Signature AlgorithmxtvaappcreateshellXtVaAppCreateShell 3 3 1501646833 B - - gz create top-level widget instancecms_recipientinfo_ktri_get0_signer_idCMS_RecipientInfo_ktri_get0_signer_id 3ssl 3 1721417624 B - - gz CMS envelopedData RecipientInfo routinesxcb_glx_get_convolution_filter_reply- 3 3 1540917640 B - - gz pair_content_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionport- 4 4 1402354219 B - - gz system memory, kernel memory and system portslwp::membermixinLWP::MemberMixin 3pm 3 1402363153 A - - gz Member access mixin classperlbs2000- 1 1 1698237663 A - - gz building and installing Perl for BS2000.mouse- 4 4 1402354219 A - t gz serial mouse interfaceroundl 3- 3 3 1402354212 B - - gz round to nearest integer, away from zeroremove remove 3 remove 3ptcl_getnameofexecutableTcl_GetNameOfExecutable 3 3 1448008822 B - - gz identify or return the name of the binary file containing the applicationsg_turs- 8 8 1585715378 A - - gz send one or more SCSI TEST UNIT READY commandsmdadm- 8 8 1645636188 A - - gz manage MD devices aka Linux Software RAIDxcb_xfixes_create_region_checked- 3 3 1540917640 B - - gz xcb_randr_set_crtc_gamma- 3 3 1540917640 A - - gz bashbug-64- 1 1 1638560014 B - - gz report a bug in bashrtld-audit- 7 7 1402354220 A - - gz auditing API for the dynamic linkerdatetime::locale::eoDateTime::Locale::eo 3pm 3 1402390637 A - - gz fccharsetcopyFcCharSetCopy 3 3 1520307172 A - - gz Copy a charsettcl_newlistobjTcl_NewListObj 3 3 1448008822 B - - gz manipulate Tcl objects as listsfcstrfreeFcStrFree 3 3 1520307172 A - - gz free a stringxgettransientforhintXGetTransientForHint 3 3 1710950786 B - - gz set or read a window's WM_TRANSIENT_FOR propertytemplate::manual::viewsTemplate::Manual::Views 3pm 3 1402357150 A - - gz Template Toolkit views (experimental)bio_shutdown_wrBIO_shutdown_wr 3ssl 3 1721417624 B - - gz BIO pair BIOprlimit 3- 3 3 1402354213 C vlimit - gz pod2text- 1 1 1402343774 A - - gz Convert POD data to formatted ASCII textsemop 3p- 3p 3p 1402354218 A - t gz XSI semaphore operationssys_statvfs.h- 0p 0p 1402354203 A - - gz VFS File System information structurevscanf 3p- 3p 3p 1402354219 A - - gz format input of a stdarg argument listsys_uio.h- 0p 0p 1402354203 A - - gz definitions for vector I/O operationsgetpmsg 3p- 3p 3p 1402354215 B - - gz receive next message from a STREAMS file (STREAMS)security_compute_user- 3 3 1585710994 B - - gz query the SELinux policy database in the kerneleuca-describe-nat-gateways- 1 1 1484780705 A - - gz Describe one or more VPC NAT gatewaysfuser 1- 1 1 1601486412 A - - gz identify processes using files or socketssslv23_client_methodSSLv23_client_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionstcl_upvarTcl_UpVar 3 3 1448008823 A - - gz link one variable to anotherbn_print BN_print 3ssl bn_print 3sslsched_setparam 2- 2 2 1402354205 A - - gz set and get scheduling parameterscms_signerinfo_signCMS_SignerInfo_sign 3ssl 3 1721417624 B - - gz add a signer to a CMS_ContentInfo signed data structure.mmap mmap 2 mmap 3psetmntent- 3 3 1402354212 B - - gz get file system descriptor file entrybrk- 2 2 1402354205 A - - gz change data segment sizeunctrl_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionmenu_opts_on- 3x 3 1720626759 B - - gz set and get menu options_tracecchar_t2- 3x 3 1720626759 B - - gz curses debugging routinessecurity_get_boolean_names- 3 3 1585710994 B - - gz routines for manipulating SELinux boolean valuespthread_attr_setaffinity_np- 3 3 1402354211 A - - gz set/get CPU affinity attribute in thread attributes objectsystemd-shutdown- 8 8 1711457788 B - - gz System shutdown logicmknod 1- 1 1 1605565487 A - - gz make block or character special filesxcb_glx_get_tex_envfv_reply- 3 3 1540917640 B - - gz dbus-run-session- 1 1 1601481284 A - - gz start a process as a new D-Bus sessionxcb_glx_render_mode- 3 3 1540917640 A - - gz euscale-describe-auto-scaling-instances- 1 1 1484780705 A - - gz Describe instances in auto-scaling groupsnsswitch.conf- 5 5 1402354219 A - - gz Name Service Switch configuration filexml::parser::expatXML::Parser::Expat 3pm 3 1402361425 A - - gz Lowlevel access to James Clark's expat XML parserform_field_validation- 3x 3 1720626759 A - - gz data type validation for fieldsxcb_glx_query_server_string_string- 3 3 1540917640 B - - gz unlink 1- 1 1 1605565487 A - - gz call the unlink function to remove the specified filexdg-desktop-icon- 1 1 1478360732 A - - gz command line tool for (un)installing icons to the desktoprsync- 1 1 1699033747 A - - gz a fast, versatile, remote (and local) file-copying toolextutils::mm_unixExtUtils::MM_Unix 3pm 3 1402365499 A - - gz methods used by ExtUtils::MakeMakertcl_dstringappendelementTcl_DStringAppendElement 3 3 1448008821 B - - gz manipulate dynamic stringscurs_initscr- 3x 3 1715932337 A - - gz curses screen initialization and manipulation routinesxfillarcsXFillArcs 3 3 1710950786 B - - gz fill rectangles, polygons, or arcsdatetime::locale::uz_arab_afDateTime::Locale::uz_Arab_AF 3pm 3 1402390634 A - - gz getpagesize- 2 2 1402354205 A - - gz get memory page sizeremquof 3p- 3p 3p 1402354218 B - - gz remainder functionscargl cargl 3 cargl 3pxdbegetbackbufferattributesXdbeGetBackBufferAttributes 3 3 1448003986 A - - gz returns attributes of a DBE buffer.module::build::platform::windowsModule::Build::Platform::Windows 3pm 3 1402373050 A - - gz Builder class for Windows platformsfputws fputws 3 fputws 3pxcb_xc_misc_get_version- 3 3 1540917640 A - - gz arm_fadvise- 2 2 1402354204 B - - gz predeclare an access pattern for file datanearbyint 3- 3 3 1402354211 B - - gz round to nearest integerxcmssetwhiteadjustprocXcmsSetWhiteAdjustProc 3 3 1710950786 B - - gz modifying CCC attributesmvinsnstr- 3x 3 1720626759 B - - gz insert string before cursor in a curses windowxcb_randr_get_monitors_monitors_length- 3 3 1540917640 B - - gz ssl_ctx_set_verifySSL_CTX_set_verify 3ssl 3 1721417624 A - - gz set peer certificate verification parametersxintersectregionXIntersectRegion 3 3 1710950786 A - - gz region arithmetici2d_x509_bioi2d_X509_bio 3ssl 3 1721417624 B - - gz X509 encode and decode functionsxkballocgeomoverlaykeyXkbAllocGeomOverlayKey 3 3 1710950785 A - - gz Allocate keys in an overlay roweulb-deregister-instances-from-lb- 1 1 1484780705 A - - gz Remove one or more instances from a load balancerssetmask- 2 2 1402354206 B - - gz manipulation of signal mask (obsolete)time 7- 7 7 1402354220 A - - gz overview of time and timerscurses::ui::commonCurses::UI::Common 3pm 3 1454728582 A - - gz Common methods for Curses::UItimer_gettime 3p- 3p 3p 1402354219 A - - gz per-process timers (REALTIME)datetime::locale::gezDateTime::Locale::gez 3pm 3 1402390638 A - - gz envz_remove- 3 3 1402354208 B - - gz environment string supportctanh ctanh 3 ctanh 3psystemd-timedated.service- 8 8 1711457788 A - - gz Time and date bus mechanismptardiff- 1 1 1565315036 A - - gz program that diffs an extracted archive against an unextracted onelatin8- 7 7 1402354220 B - t gz ISO 8859-14 character set encoded in octal, decimal, and hexadecimalacct acct 2 acct 5xcb_res_query_resource_bytes_sizes_length- 3 3 1540917640 B - - gz setpwent 3p- 3p 3p 1402354218 B - - gz user database functionsdoveadm-search- 1 1 1724195936 A - - gz Show a list of mailbox GUIDs and message UIDs matching given search query.ungetc 3p- 3p 3p 1402354219 A - - gz push byte back into input streamxtgetgcXtGetGC 3 3 1501646833 A - - gz obtain and destroy a sharable GCdatetime::locale::yoDateTime::Locale::yo 3pm 3 1402390634 A - - gz pem_write_bio_x509PEM_write_bio_X509 3ssl 3 1721417624 B - - gz PEM routinesec_point_cmpEC_POINT_cmp 3ssl 3 1721417624 B - - gz Functions for performing mathematical operations and tests on EC_POINT objects.json::pp::booleanJSON::PP::Boolean 3pm 3 1402370164 A - - gz dummy module providing JSON::PP::Booleandaemon 3- 3 3 1402354208 A - - gz run in the backgroundrootwindowofscreenRootWindowOfScreen 3 3 1710950785 B - - gz screen information functions and macroscatclose 3p- 3p 3p 1402354214 A - - gz close a message catalog descriptorfexecve- 3 3 1402354209 A - - gz execute program specified via file descriptormkfs- 8 8 1612283497 A - - gz build a Linux filesystemsystemd-binfmt.service- 8 8 1711457788 A - - gz Configure additional binary formats for executables at bootxcb_record_disable_context- 3 3 1540917640 A - - gz ins_nwstr- 3x 3 1720626759 B - - gz insert a wide-character string into a curses windowbn_dec2bnBN_dec2bn 3ssl 3 1721417624 B - - gz format conversionsxcb_input_open_device_class_info_iterator- 3 3 1540917640 B - - gz pod::pom::view::podPod::POM::View::Pod 3pm 3 1402385888 A - - gz xtinserteventhandlerXtInsertEventHandler 3 3 1501646833 B - - gz add and remove event handlerschfn- 1 1 1612283497 A - - gz change your finger informationsecurity_getenforce- 3 3 1585710994 A - - gz get or set the enforcing state of SELinuxxcb_xkb_get_named_indicator_reply- 3 3 1540917640 B - - gz xcb_x_print_print_end_doc_checked- 3 3 1540917640 B - - gz xcb_glx_get_minmax_parameteriv_reply- 3 3 1540917640 B - - gz ssignal- 3 3 1402354210 A - - gz software signal facilitydrand48 drand48 3 drand48 3pxcb_dpms_info_reply- 3 3 1540917640 B - - gz xcb_render_query_pict_index_values_unchecked- 3 3 1540917640 B - - gz xcb_glx_get_string_reply- 3 3 1540917640 B - - gz sem_init 3p- 3p 3p 1402354218 A - - gz initialize an unnamed semaphore (REALTIME)xcb_xinerama_get_screen_size_reply- 3 3 1540917640 B - - gz getdate 3- 3 3 1402354209 A - - gz convert a date-plus-time string to broken-down timessl_set_tmp_rsa_callbackSSL_set_tmp_rsa_callback 3ssl 3 1721417624 B - - gz handle RSA keys for ephemeral key exchangeselinux_set_mapping- 3 3 1585710994 A - - gz establish dynamic object class and permission mappingtld_check_4t- 3 3 1448125246 A - - gz API functionuri::dataURI::data 3pm 3 1402351652 A - - gz URI that contains immediate datalogl 3p- 3p 3p 1402354216 B - - gz natural logarithm functionregulatory.bin- 5 5 1540938735 A - - gz The Linux wireless regulatory databasetcl_deletetraceTcl_DeleteTrace 3 3 1448008821 B - - gz arrange for command execution to be tracedopenat- 2 2 1402354205 A - - gz open a file relative to a directory file descriptorcal 1p- 1p 1p 1402354203 A - - gz print a calendaratan 3p- 3p 3p 1402354214 A - - gz arc tangent functionregerror 3p- 3p 3p 1402354217 A - - gz regular expression matchingmisc_conv- 3 3 1585713595 A - - gz text based conversation functiondatetime::locale::ln_cgDateTime::Locale::ln_CG 3pm 3 1402390640 A - - gz selinux_getpolicytype- 3 3 1585710994 A - - gz get the type of SELinux policy running on the systemlzma- 1 1 1655494379 C xzcat - gz ether_ntohost- 3 3 1402354208 B - - gz Ethernet address manipulation routinesdynaloaderDynaLoader 3pm 3 1698237673 A - - gz Dynamically load C libraries into Perl codefclangsetaddFcLangSetAdd 3 3 1520307172 A - - gz add a language to a langsetgroupadd- 8 8 1565319053 A - - gz create a new grouptcl_getpathtypeTcl_GetPathType 3 3 1448008822 A - - gz manipulate platform-dependent file pathssetfattr- 1 1 1523407242 A - - gz set extended attributes of filesystem objectsgit-blame- 1 1 1722330782 A - - gz Show what revision and author last modified each line of a filedoveadm- 1 1 1724195936 A - - gz Dovecot's administration utilityssl_newSSL_new 3ssl 3 1699892224 A - - gz create a new SSL structure for a connectionxcopyplaneXCopyPlane 3 3 1710950785 B - - gz copy areasendutxent endutxent 3 endutxent 3pwhatis- 1 1 1540931193 A - - gz display manual page descriptionsxtisobjectXtIsObject 3 3 1501646833 B - - gz obtain and verify a widget's classcasinl 3p- 3p 3p 1402354214 B - - gz complex arc sine functionsdatetime::locale::fr_luDateTime::Locale::fr_LU 3pm 3 1402390640 A - - gz pivot_root 8- 8 8 1612283497 A - - gz change the root filesystemfcvt 3p- 3p 3p 1402354215 B - - gz convert a floating-point number to a string (LEGACY)xmlwf- 1 1 1726496125 A - - gz Determines if an XML document is well-formedcurses::ui::colorCurses::UI::Color 3pm 3 1454728582 A - - gz Color support modulecurs_ins_wstr- 3x 3 1715932337 A - - gz insert a wide-character string into a curses windowssl_ctx_sess_get_get_cbSSL_CTX_sess_get_get_cb 3ssl 3 1721417624 B - - gz provide callback functions for server side external session cachingvlock- 1 1 1637771557 A - - gz Virtual Console lock programeuca-describe-keypairs- 1 1 1484780705 A - - gz Display information about available key pairsxdr_char- 3 3 1402354213 B - - gz library routines for external data representationxcb_randr_get_output_info_name- 3 3 1540917640 B - - gz git-read-tree- 1 1 1722330780 A - - gz Reads tree information into the indexstderr 3- 3 3 1402354212 B - - gz standard I/O streams_traceattr2- 3x 3 1720626759 B - - gz curses debugging routinesxkbrefreshkeyboardmappingXkbRefreshKeyboardMapping 3 3 1710950785 A - - gz Update the keyboard description that is internal to the X librarysbrk- 2 2 1402354204 A - - gz change data segment sizexcreateicXCreateIC 3 3 1710950786 A - - gz create, destroy, and obtain the input method of an input contexttmpfile tmpfile 3 tmpfile 3plower- n n 1448008912 A - - gz Change a window's position in the stacking orderaddpart- 8 8 1612283497 A - - gz simple wrapper around the "add partition" ioctlssl_ctx_use_rsaprivatekey_fileSSL_CTX_use_RSAPrivateKey_file 3ssl 3 1721417624 B - - gz load certificate and key datatcl_fslstatTcl_FSLstat 3 3 1448008822 B - - gz procedures to interact with any filesystemec_gfp_nist_methodEC_GFp_nist_method 3ssl 3 1721417624 B - - gz Functions for obtaining EC_METHOD objects.xcb_poly_segment- 3 3 1540917640 A - - gz draw linesmail Mail 1 mail 1jn jn 3 jn 3pssl_ctx_get_client_ca_listSSL_CTX_get_client_CA_list 3ssl 3 1721417624 B - - gz get list of client CAsxmbufchangebufferattributesXmbufChangeBufferAttributes 3 3 1448003986 B - - gz X multibuffering functionserrstr- 1ssl 1 1699892200 A - - gz lookup error codessudoreplay- 8 8 1711647470 A - - gz replay sudo session logssync_file_range- 2 2 1402354206 A - - gz sync a file segment with diskluac- 1 1 1478400454 A - - gz Lua compilerstrtoimax 3- 3 3 1402354212 A - - gz convert string to integertcl_fslistvolumesTcl_FSListVolumes 3 3 1448008822 B - - gz procedures to interact with any filesystemevp_pkey_newEVP_PKEY_new 3ssl 3 1721417624 A - - gz private key allocation functions.xcb_dri2_get_msc_reply- 3 3 1540917640 B - - gz pem_write_pkcs8privatekeyPEM_write_PKCS8PrivateKey 3ssl 3 1721417624 B - - gz PEM routinesxcb_xfixes_fetch_region_rectangles- 3 3 1540917640 B - - gz ripemd- 3ssl 3 1699892217 A - - gz RIPEMD-160 hash functionxcb_record_register_clients- 3 3 1540917640 A - - gz extutils::typemaps::cmdExtUtils::Typemaps::Cmd 3pm 3 1501652625 A - - gz Quick commands for handling typemapspackage- n n 1448008823 A - - gz Facilities for package loading and version controldatetime::locale::noDateTime::Locale::no 3pm 3 1402390642 A - - gz asn1_string_print_exASN1_STRING_print_ex 3ssl 3 1721417624 A - - gz ASN1_STRING output routines.sys/msg.h- 0p 0p 1402354203 C msg.h - gz kmod- 8 8 1585709895 A - - gz Program to manage Linux Kernel moduleskeyctl_set_timeout- 3 3 1402366674 A - - gz Set the expiration timer on a keyseed48_r- 3 3 1402354212 B - - gz generate uniformly distributed pseudo-random numbers reentrantlyeuca-describe-network-acls- 1 1 1484780705 A - - gz Describe one or more network ACLseuca-disassociate-address- 1 1 1484780705 A - - gz Disassociate an elastic IP address from an instancefeclearexcept 3- 3 3 1402354209 B - - gz floating-point rounding and exception handlingposix_trace_trid_eventid_open- 3p 3p 1402354217 B - - gz manipulate the trace event type identifier (TRACING)fmaxl 3p- 3p 3p 1402354215 B - - gz determine maximum numeric value of two floating-point numbersrewinddir 3- 3 3 1402354211 A - - gz reset directory streamqiflush- 3x 3 1720626759 B - - gz curses input optionsnotimeout- 3x 3 1720626759 B - - gz curses input optionspam_misc_paste_env- 3 3 1585713595 A - - gz transcribing an environment to that of PAMperlmod- 1 1 1698237666 A - - gz Perl modules (packages and symbol tables)cfgetospeed 3p- 3p 3p 1402354214 A - - gz get output baud rateuse_screen- 3x 3 1720626759 B - - gz curses thread supportperlbug- 1 1 1698237679 A - - gz how to submit bug reports on Perlhas_il_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionuucp- 1p 1p 1402354204 A - - gz system-to-system copyavc_open- 3 3 1585710994 A - - gz userspace SELinux AVC setup and teardowneuare-useruploadpolicy- 1 1 1484780705 A - - gz Attach a policy to a userxcharstructXCharStruct 3 3 1710950786 B - - gz load or unload fonts and font metric structuresxcb_grab_key_checked- 3 3 1540917640 B - - gz Grab keyboard key(s)hostname 1- 1 1 1573511276 A - - gz show or set the system's host namelocale::codes::langfam_codesLocale::Codes::LangFam_Codes 3pm 3 1402383323 A - - gz langfam codes for the Locale::Codes::LangFam moduleiswcntrl iswcntrl 3 iswcntrl 3pkilo- 7 7 1402354220 C units t gz git-prune-packed- 1 1 1722330781 A - - gz Remove extra objects that are already in pack filesposix_trace_attr_getinherited- 3p 3p 1402354217 A - - gz retrieve and set the behavior of a trace stream (TRACING)datetime::locale::pa_inDateTime::Locale::pa_IN 3pm 3 1402390633 A - - gz tcl_interpTcl_Interp 3 3 1448008822 A - - gz client-visible fields of interpreter structuresmodule::build::authoringModule::Build::Authoring 3pm 3 1402373050 A - - gz Authoring Module::Build moduleswin_wchnstr- 3x 3 1720626759 B - - gz get an array of complex characters and renditions from a curses windowxcb_shape_offset- 3 3 1540917640 A - - gz getutxline getutxline 3 getutxline 3pUxgetmodifiermappingXGetModifierMapping 3 3 1710950785 B - - gz manipulate keyboard encoding and keyboard encoding structureresizepart- 8 8 1612283497 A - - gz simple wrapper around the "resize partition" ioctlxcb_send_event_checked- 3 3 1540917640 B - - gz send an eventselinux_path- 3 3 1585710994 B - - gz These functions return the paths to the active SELinux policy configuration directories and filesdsa_do_signDSA_do_sign 3ssl 3 1721417624 A - - gz raw DSA signature operationstap::parser::sourcehandlerTAP::Parser::SourceHandler 3pm 3 1439389327 A - - gz Base class for different TAP source handlersread 3p- 3p 3p 1402354217 A - - gz read from a filelvmpolld- 8 8 1619616701 A - - gz LVM poll daemonflash_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionpwconv- 8 8 1565319053 A - - gz convert to and from shadow passwords and groupsxdr_void- 3 3 1402354213 B - - gz library routines for external data representationtop_row- 3x 3 1720626759 B - - gz set and get current_menu_itempem_write_bio_dhparamsPEM_write_bio_DHparams 3ssl 3 1721417624 B - - gz PEM routineswaddstr- 3x 3 1720626759 B - - gz add a string of characters to a curses window and advance cursorvid_attr- 3x 3 1720626759 B - - gz curses interfaces to terminfo databasexcb_glx_get_pixel_mapuiv_data- 3 3 1540917640 B - - gz logger 1p- 1p 1p 1402354204 A - - gz log messagesfmaf 3p- 3p 3p 1402354215 B - - gz floating-point multiply-addalias 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)systemd-escape- 1 1 1711457787 A - - gz Escape strings for usage in system unit namestcl_dictobjfirstTcl_DictObjFirst 3 3 1448008821 B - - gz manipulate Tcl objects as dictionariessudoers_timestamp- 5 5 1711647470 A - - gz Sudoers Time Stamp Formatgetgrnam 3p- 3p 3p 1402354215 A - - gz search group database for a nametcl_updatelinkedvarTcl_UpdateLinkedVar 3 3 1448008822 B - - gz link Tcl variable to C variablexcb_glx_gen_queries_arb_data- 3 3 1540917640 B - - gz canonicalize_file_name- 3 3 1402354207 A - - gz return the canonicalized absolute pathnameautoconf- 1 1 1402378884 A - - gz Generate configuration scriptsstrtoimax 3p- 3p 3p 1402354218 A - - gz convert string to integer typepcre16_copy_named_substring- 3 3 1573510868 B - - gz Perl-compatible regular expressionsnew_item- 3x 3 1720626759 B - - gz create and destroy menu itemsgetmntent_r- 3 3 1402354209 B - - gz get file system descriptor file entryverr- 3 3 1402354213 B - - gz formatted error messagesxsetrgbcolormapsXSetRGBColormaps 3 3 1710950785 B - t gz allocate, set, or read a standard colormap structurestringprep_4zi- 3 3 1448125246 A - - gz API functionman 7- 7 7 1402354220 A - - gz macros to format man pagesstrtod strtod 3 strtod 3peulb-apply-security-groups-to-lb- 1 1 1484780705 A - - gz [VPC only] Associate one or more security groups with a load balancer. All previous associations with security groups will be replaced.xdrawstring16XDrawString16 3 3 1710950786 B - - gz draw text charactersfcconfigparseandloadfrommemoryFcConfigParseAndLoadFromMemory 3 3 1520307172 A - - gz load a configuration from memorylocal- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)set_curterm- 3x 3 1720626759 B - - gz curses interfaces to terminfo databaseerr_peek_errorERR_peek_error 3ssl 3 1721417624 B - - gz obtain error code and datauser::grentUser::grent 3pm 3 1698237678 A - - gz by-name interface to Perl's built-in getgr*() functionsxutf8drawtextXutf8DrawText 3 3 1710950786 B - - gz draw text using multiple font setsinfotocap- 1m 1 1715932339 A - - gz convert a terminfo description into a termcap descriptionbio_callback_ctrlBIO_callback_ctrl 3ssl 3 1721417624 B - - gz BIO control operationsfree free 3 free 1 free 3prealloc realloc 3 realloc 3ptcl_putenvTcl_PutEnv 3 3 1448008821 A - - gz procedures to manipulate the environmenttcl_newunicodeobjTcl_NewUnicodeObj 3 3 1448008822 B - - gz manipulate Tcl objects as stringsxcb_glx_get_tex_enviv_unchecked- 3 3 1540917640 B - - gz isupper isupper 3 isupper 3p # /$! 2$zseli#Pztld_d# 'GQzuri:# Ezlogl#7fzregu&#A}ztcl_v#Sxzopenف#Nןzcal .#-vgzatanb#1zsystu#$Azmisc߂# ;{ڜzdate$#3yzselio#O$zsyst#$^ zethe#AUzdynaG# Qf̧zfcla# Aisuzgrou# -sRztcl_'#Qo'zsetf# H (zgit-م# Zfzset_F$$A@zssl_#O6zxcop׆# .2`zendu# x{spli$$@Ee{wcsw$$ Zzwhat4#;bzxtisv# F0{xshmB%$MtozcasiLJ# 7{zdate#3@LzpivoS# 5vzfcvt#Q'{d2i_%$ Hzxmlw#G֯1zcurs;#A  zcurs#OF{ssl_%$ D+@{xkbaA&$|ozssl_#wVzvlocz#7Mށ{bfif&$"zeuca#H{O{xcb_&$3{xomo3'$7޺'zxdr_# LAzxcb_k#0zgit-#@z{joinr'$Lsxm{xcb_'$+#zstde# /z_tra+# 5zxkbrl#t!zsbrk#3bq{dnss ($G{gruba($-l{bzip($B?{rmdi($ /&zxcre2# cGztmpf#[zlowe#KKzaddp#Jzssl_`#X-ztcl_׎# O_izec_g2#Yazxcb_#%zfcfr#^zmailԏ#zsyncz#JY{xtca!)$<|zadds#\,zxkbi.#z:zset_# Qzobj_# E4zfputj#5|zarms# \W zeuca#Oczxkbk~#czpclo# ;ozwhoi\#7-Jzsamp##|{a64lt)$Yzcurs#3qzloca#0v.{tcl_)$h$JzhypoE# 8mzssle#f2zqecv#FٷzfcopR#@zlast# T˖zferr# 8xztime6# -¬zselil#|0zfcat#5zj0lB#=Kztuxc#5][zbn_i#=3Pzxcb_#zxcb_8#)znew_|# 4zgetl# ',% {bio_O*$6/Jzsysu# LG{minc*$Q{rota*$ F/{xmbtG+$b̓{inet+$ A7{set_,$ QV{fccom,$L}zlzmoB# E#zssl_i#Qwzxcb_#1zxcb_#7zmigrX#N1zerro# 6zhard# D_sZ{puny,$'zevp_D#!bdztext# glG[{xcb_-$Evzxcb_9#%Uzxcb_y#j{sgm_:-$[zrsa_# 5Bzmenu# AxOzchow5##zeuar^#XOzdbus# :)QdzfabsA#BMz.k5i# G1Qizxtap $FzpthrX $ :{ifcf-$Rzfcla $Kezxcb_ $*:8zintr&!$A>uzstrcm!$@^k{xcb_-$,3ڛz_tra!$ 5zssl_!$ `e.zi2d_f"$I>Szunse#'`zelin"$ 46 zxmbu"$F{xcb_;.$SC{chanu.$>{date.$0 j{cms_.$ F(Z{ldexL/$u5{nsecg/$ .*{xuni/$?.zsignW#$3P{tabs0$.{tape60$ 2{6{dateq0$3p&{cloc0$A<{llen 1$AN%{selaV1$|{numa1$F4{ssl_-2$O?{euar2$36Fzjna# GRzrege# 8֝izlzmaԃ#%/Rzdove=#;fcfreetypecharsetandspacingFcFreeTypeCharSetAndSpacing 3 3 1520307172 A - - gz compute Unicode coverage and spacing typesync 1- 1 1 1605565487 A - - gz Synchronize cached writes to persistent storageaddstr- 3x 3 1720626759 B - - gz add a string of characters to a curses window and advance cursorxkbignoreextensionXkbIgnoreExtension 3 3 1710950785 A - - gz Prevents core X library keyboard functions from using the X Keyboard Extensionset_menu_win- 3x 3 1720626759 B - - gz make and break menu window and subwindow associationsobj_nid2objOBJ_nid2obj 3ssl 3 1721417624 A - - gz ASN1 object utility functionsfputs_unlocked- 3 3 1402354209 B - - gz nonlocking stdio functionsarmscii-8- 7 7 1402354219 A - t gz Armenian character set encoded in octal, decimal, and hexadecimaleuca-download-and-unbundle- 1 1 1484780705 A - - gz Download and unbundle a bundled image from the cloudxkbkeysymsoffsetXkbKeySymsOffset 3 3 1710950785 A - - gz Returns the offset of the two-dimensional array of keysyms for the key corresponding to keycodepclose 3- 3 3 1402354211 B - - gz pipe stream to or from a processwhois- 1 1 1583449613 B - - gz client for the whois servicesample- 8 8 1601484048 C tc-sample - gz curs_variables- 3x 3 1715932338 A - - gz curses global variableslocal::lib~[de]- 3pm 3 1501962388 C POD2::DE::local::lib - gz hypot 3p- 3p 3p 1402354216 A - - gz Euclidean distance functionssleay_add_ssl_algorithmsSSLeay_add_ssl_algorithms 3ssl 3 1721417624 B - - gz initialize SSL library by registering algorithmsqecvt- 3 3 1402354211 A - - gz convert a floating-point number to a stringfcopy- n n 1448008823 A - - gz Copy data from one channel to anotherlastcomm- 1 1 1501750853 A - - gz print out information about previously executed commands.ferror 3- 3 3 1402354209 A - - gz check and reset stream statustimeradd- 3 3 1402354213 A - - gz timeval operationsselinux_booleans_path- 3 3 1585710994 B - - gz These functions return the paths to the active SELinux policy configuration directories and filesfcatomicunlockFcAtomicUnlock 3 3 1520307172 A - - gz unlock a filej0l- 3 3 1402354210 B - - gz Bessel functions of the first kindtuxcall- 2 2 1402354206 B - - gz unimplemented system callsbn_initBN_init 3ssl 3 1721417624 B - - gz allocate and free BIGNUMsxcb_xvmc_create_surface- 3 3 1540917640 A - - gz xcb_render_set_picture_transform_checked- 3 3 1540917640 B - - gz new_form- 3x 3 1720626759 B - - gz create and destroy formsgetlogin 3- 3 3 1402354209 A - - gz get usernamesysusers.d- 5 5 1711457788 A - - gz Declarative allocation of system users and groupslzmore- 1 1 1443524256 C xzmore - gz ssl_ctx_set1_curves_listSSL_CTX_set1_curves_list 3ssl 3 1721417624 B - - gz EC supported curve functionsxcb_input_get_device_dont_propagate_list_classes- 3 3 1540917640 B - - gz xcb_render_query_pict_formats- 3 3 1540917640 A - - gz migrate_pages- 2 2 1402354205 A - - gz move all pages in a process to another set of nodeserror::pass5- 7stap 7 1602605484 A - - gz systemtap pass-5 errorshardlink- 1 1 1402381564 A - - gz Consolidate duplicate files via hardlinksevp_pkey_ctx_set_rsa_pss_saltlenEVP_PKEY_CTX_set_rsa_pss_saltlen 3ssl 3 1721417624 B - - gz algorithm specific control operationstext::tabsText::Tabs 3pm 3 1698237678 A - - gz - expand and unexpand tabs per the unix expand(1) and unexpand(1)xcb_xvmc_list_subpicture_types_reply- 3 3 1540917640 B - - gz xcb_xkb_use_extension- 3 3 1540917640 A - - gz rsa_verifyRSA_verify 3ssl 3 1721417624 B - - gz RSA signaturesmenu_fore- 3x 3 1720626759 B - - gz color and attribute control for menuschown chown 2 chown 1p chown 1 chown 3peuare-useraddpolicy- 1 1 1484780705 A - - gz Add a new policy to a user. To add more complex policies than this tool supports, see euare-useruploadpolicy(1).dbus-send- 1 1 1601481284 A - - gz Send a message to a message busfabsl 3- 3 3 1402354208 B - - gz absolute value of floating-point number.k5identity- 5 5 1726771586 B - - gz Kerberos V5 client principal selection rulesunset unset n unset 1p unset 1 o# r##~sXZxxkbf^xcb_YlwreF{xdates3\zxxkbae>xxmkin6 [ĎxthinR xserv5[_xtiff<9a'xgit- ?\bxperlբCӡxloca Okeyct'date3cms_Sxxcb_}tҨxtcl_Tbio_:xseek _ssl_cxcb_meta60set_k9iso- ^Rxcata~warnxAxlwreQxtiff:8;xxcb_Uxnete&sxfchoidna'0xcopyΥ nnxecdsHؠRxscan@@Uxwcsr*8xisna? 7xpam_>jexxcb_9)e$ xbio_}:vxxget˧OS>xssl_-WWtxxcb_& xnull֨$rt_s#2pthreVnfs4׋*eucaU"xtcl_W~Sxxcb_mstap <uxstdomvcuBpane5<dhcl E͉ExtempGxcb_/'2%xd2i_LJJxeucaoUuxxcb_תputcw5xcb_xssl_Oexxcb_1xmd5_d Fͦxbn_n 7$xfiltO,xretuV >Hxtcl_aOxhttpDKxreste;5xdele1h'xdbi:#bS?xchvts=lxeuarP!Yxgit-kP!> xloca <dh_sGAxcb_cata :^xmvinP! \asn1FMxcb_)Cxslk_$Q!;(ަxipc:nQ!JunisA BrviAxcb_(strc *xtypeQ!'PxdracQ!J[ZxlchsVR!-pܻxset_R!3:xshutR! @sign)xxcb_S!(,uxtcl_WS!Aexxcb_S!#app:S]xbreaS!>xxdr_/T! F8xxkbcT!elog1 7xec_pT! xscal W{xdateU!36xldifU!7cms_dxcb_50fcfit 4\xxcb_V!^ixxcb_8V!8xxtexjV!E$xxcb_V!!dzxxkbsV!UAxdatebW!1^xbn_iW! JxHMACW! >dxlrinEX!qlenS=fcva4!xkdum`X! 63xtcl_X!=WxmvwaX! \ xssl_UY!i4xxwinY!Vxtk_t@Z! Ft&xsystZ! Rxsg_rZ! <|xsetk7[! Pxx509[!Tobxstrt\!Gxva_eR\!2xbtowm\!1xxcb_\!,hdxllro\! Cxsyst]!?Expem_t]!?L!xpcre]!>_Yxtc-h^!xhuns<^! Ltxlass^!<ggLxperr^! CW|xalar$_! 5vxtowub_! Uxxdbe`#X_xmodut`#!_bgxrm 1_!5.xfput`#Exxcb_a#2ixarm_Ba# E"xneara# 3:Txxcmsa#Hform.D5putuqD 3tcl_Y[ Nxmvin1b# JcbrtiS0y $H$ }tcl__ Ayxcb_b#'tcl_UӾyssl_b#[tcl_RwtmpS`(Fyxint5c#;3yi2d_c# I(^yxkbac#Oyeulb=d#"Lctan /yssetd# A8ytimed#6KTycurs2e#K/ytimee#:powPod:!F.ydatee#1curs;rege 8TWyenvz"f# 5semo 9audi/cbrt`yctancf#5ysyst{f#6lyptarf# ]xcb_61ylati1g#_zyacctg#yxcb_g#*mysetpg# 4T9ydove0h#eTEyungeh# =c Ryxtgeh#ApollB@ ydate4i#0xcb_B%Dypem_yi#;&ryec_pi# xmZyjsonLj#UfIydaemj# 0аpyrootj#SϼycatcRk# ?pthrfDRGOyfexek#Hpam_ E9dbi:REUxcb_E/ymkfsk#3~ysyst%l#VmounF #dyxcb_l#cursF i"yins_l# O#R5ybn_d!m# 8H{yxcb_cm#*%fypod:m#/yxtinm#KS7dychfnKn#9تysecun#DFyxcb_n#"شyxcb_o#"syscVI <ssh-IReHyxcb_[o#%Kyssigo#3eydrano#eyxcb_p#jyxcb_/p#-^[yxcb_wp#ڶ@ysem_p# GFD_Z 9_yxcb_p##PdygetdO7ymq_o$ yxtpa($Jtyfcpa$ >ylog${ydate$3yextu2$]tempX"ypod:$Hupyperl$ 4md4 HL -fygetsE$83;ypam_$ I,yErrn$ 3DZynscd$ Gyisspp$`iyxcre$Hyxcb_$4yssl_4$V{ydate$3tracTO X ypthr$0Ͽoyxcb_9$)yclasq$ Qyerf $,J ysafe$ fjywadds$ ayxcb_$'yxset $Ctar P3yvisuv$ Dxcb_Q!ypie$"xcb_-R!idnaiR'(Sgyxkbk${arp R:date S0nyxcb_x$ ȁytrun$ytcl_$UEytcl_4 $n뇆yexec $ )}ylist $Y}ylogi $ <⺦ygit-H $ 61yymodu $0ylrou $ Cysyst $5Řynfs.P $ AekyFD_S $ 9strnV 8Cyipta $"_yedo $oypwd.) $/cpioX7Y yxcb_^ $%git-]X,gyi2d_ $ OYyinl $#0ycsqr! $ :wcsn7Y AswabxtgeYG`yfcpae $Nyyssl_ $wSIHypaneT$ D/ytime$BIymd4_$ E-ydateD$03y_new$ 7Iypem_$8"$ytld_$ 'e AysetgH$ bypwdxi$Hslk_ 6]yxcb_$!$1ylwre$ I)hytempH$Qyxcb_$%ycomp$ /LUystri($'Ryasn1c$Pyxcb_$).'ysend$yerr_*$Nd`Tyxcb_$yperl$&K|-ycasi$ +dyxtse+$GclntR_Fmq_open mq_open 3 mq_open 2 mq_open 3pxtparsetranslationtableXtParseTranslationTable 3 3 1501646833 A - - gz manage translation tablesfcpatternaddFcPatternAdd 3 3 1520307172 A - - gz Add a value to a patternlog log 3 log 3pdatetime::locale::se_fiDateTime::Locale::se_FI 3pm 3 1402390641 A - - gz extutils::constant::baseExtUtils::Constant::Base 3pm 3 1698237673 A - - gz base class for ExtUtils::Constant objectspod::pom::node::beginPod::POM::Node::Begin 3pm 3 1402385888 A - - gz POM '=begin' node classperldtrace- 1 1 1698237664 A - - gz Perl's support for DTracegetservbyport_r- 3 3 1402354209 B - - gz get service entry (reentrant)pam_selinux- 8 8 1585713591 A - - gz PAM module to set the default security contextErrno 3pm- 3pm 3 1698237673 A - - gz System errno constantsnscd.conf- 5 5 1402354219 A - - gz name service cache daemon configuration fileisspace isspace 3 isspace 3pxcreatewindoweventXCreateWindowEvent 3 3 1710950786 A - - gz CreateNotify event structurexcb_ungrab_key_checked- 3 3 1540917640 B - - gz release a key combinationssl_ctx_use_certificate_fileSSL_CTX_use_certificate_file 3ssl 3 1721417624 B - - gz load certificate and key datadatetime::locale::kk_kzDateTime::Locale::kk_KZ 3pm 3 1402390643 A - - gz pthread_cond_timedwait- 3p 3p 1402354217 B - - gz wait on a conditionxcb_get_motion_events_events- 3 3 1540917640 B - - gz class::loadClass::Load 3pm 3 1402379821 A - - gz a working (require "Class::Name") and moreerf 3p- 3p 3p 1402354215 A - - gz error functionssafe_finger- 8 8 1402375311 A - - gz finger client wrapper that protects against nasty stuff from finger serverswaddnwstr- 3x 3 1720626759 B - - gz add a string of wide characters to a curses window and advance cursorxcb_selinux_get_window_context_context- 3 3 1540917640 B - - gz xsetcliprectanglesXSetClipRectangles 3 3 1710950786 B - - gz GC convenience routinesvisualofcccVisualOfCCC 3 3 1710950786 A - - gz Color Conversion Context macrospiePIE 8 8 1601484048 C tc-pie - gz xkbkeyhasactionsXkbKeyHasActions 3 3 1710950785 A - - gz Determines if the key corresponding to keycode has any actions associated with itxcb_input_xi_set_client_pointer- 3 3 1540917640 A - - gz truncl truncl 3 truncl 3ptcl_freeencodingTcl_FreeEncoding 3 3 1448008821 B - - gz procedures for creating and using encodingstcl_seterrorcodeTcl_SetErrorCode 3 3 1448008821 B - - gz retrieve or record information about errors and other return optionsexecle 3- 3 3 1402354208 B - - gz execute a filelisten listen 2 listen 3plogind.conf- 5 5 1711457788 A - - gz Login manager configuration filesgit-notes- 1 1 1722330783 A - - gz Add or inspect object notesmoduli- 5 5 1707907012 A - - gz Diffie-Hellman modulilround 3- 3 3 1402354210 A - - gz round to nearest integer, away from zerosystemd.service- 5 5 1711457787 A - t gz Service unit configurationnfs.systemd- 7 7 1634214566 A - - gz managing NFS services through systemd.FD_SET 3p- 3p 3p 1402354213 B - - gz synchronous I/O multiplexingiptables/ip6tables- 8 8 1601571148 C iptables - gz ed ed 1p Ed 1 ed 1pwd.h- 0p 0p 1402354203 A - - gz password structurexcb_input_xi_query_version_unchecked- 3 3 1540917640 B - - gz i2d_x509_reqi2d_X509_REQ 3ssl 3 1721417624 B - - gz PKCS#10 certificate request functions.inl- 2 2 1402354205 B - - gz port I/Ocsqrtf 3p- 3p 3p 1402354214 B - - gz complex square root functionsfcpatternget-typeFcPatternGet-Type 3 3 1520307172 A - - gz Return a typed value from a patternssl_ctx_sess_set_new_cbSSL_CTX_sess_set_new_cb 3ssl 3 1721417624 B - - gz provide callback functions for server side external session cachingpanedwindow- n n 1448008912 A - - gz Create and manipulate panedwindow widgetstimerfd_settime- 2 2 1402354206 B - - gz timers that notify via file descriptorsmd4_initMD4_Init 3ssl 3 1721417624 B - - gz MD2, MD4, and MD5 hash functionsdatetime::locale::trDateTime::Locale::tr 3pm 3 1402390643 A - - gz _newselect- 2 2 1402354204 B - - gz synchronous I/O multiplexingtld_strerror- 3 3 1448125246 A - - gz API functionpem_write_pkcs7PEM_write_PKCS7 3ssl 3 1721417624 B - - gz PEM routinessetgrent setgrent 3 setgrent 3ppwdx- 1 1 1601486472 A - - gz report current working directory of a processxcb_xkb_latch_lock_state_checked- 3 3 1540917640 B - - gz lwres_packet- 3 3 1725373371 B - - gz lightweight resolver packet handling functionstemplate::plugin::urlTemplate::Plugin::URL 3pm 3 1402357152 A - - gz Plugin to construct complex URLsxcb_res_query_clients_clients_length- 3 3 1540917640 B - - gz complex.h- 0p 0p 1402354203 A - t gz complex arithmeticstringprep_strerror- 3 3 1448125246 A - - gz API functionasn1_string_print_ex_fpASN1_STRING_print_ex_fp 3ssl 3 1721417624 B - - gz ASN1_STRING output routines.xcb_xvmc_create_surface_priv_data_length- 3 3 1540917640 B - - gz sendto sendto 2 sendto 3perr_get_error_line_dataERR_get_error_line_data 3ssl 3 1699892208 A - - gz obtain error code and dataxcb_visibility_notify_event_t- 3 3 1540917640 A - - gz perlsyn- 1 1 1698237668 A - - gz Perl syntaxcasinf 3- 3 3 1402354207 B - - gz complex arc sinextseterrormsghandlerXtSetErrorMsgHandler 3 3 1501646833 B - - gz high-level error handlersxtappaddconverterXtAppAddConverter 3 3 1501646833 A - - gz register resource converterpthread_kill pthread_kill 3 pthread_kill 3pfclangsethaslangFcLangSetHasLang 3 3 1520307172 A - - gz test langset for language supportxcb_x_print_print_query_version_unchecked- 3 3 1540917640 B - - gz intro intro 8 intro 3 intro 2 intro 4 intro 7 intro 1 intro 6 intro 5strcasecmp 3p- 3p 3p 1402354218 A - - gz case-insensitive string comparisons_traceattr- 3x 3 1720626759 B - - gz curses debugging routinesssl_acceptSSL_accept 3ssl 3 1699892222 A - - gz wait for a TLS/SSL client to initiate a TLS/SSL handshakei2d_x509_algori2d_X509_ALGOR 3ssl 3 1699892216 A - - gz AlgorithmIdentifier functions.elinks.conf- 5 5 1547139654 A - - gz ELinks configuration filexmbufgetscreeninfoXmbufGetScreenInfo 3 3 1448003986 B - - gz X multibuffering functionssignbit signbit 3 signbit 3psystemd-journal-upload- 8 8 1711457788 A - - gz Send journal messages over the networksystemd-backlight@.service- 8 8 1711457788 A - - gz Load and save the display backlight brightness at boot and shutdownset_menu_fore- 3x 3 1720626759 B - - gz color and attribute control for menussplit n- n n 1448008824 A - - gz Split a string into a proper Tcl listwcswidth 3- 3 3 1402354213 A - - gz determine columns needed for a fixed-size wide-character stringxshmqueryversionXShmQueryVersion 3 3 1448003986 B - - gz X Shared Memory extension functionsd2i_x509_fpd2i_X509_fp 3ssl 3 1721417624 B - - gz X509 encode and decode functionsssl_freeSSL_free 3ssl 3 1699892222 A - - gz free an allocated SSL structurexkballocindicatormapsXkbAllocIndicatorMaps 3 3 1710950785 A - - gz Allocates, directly, the indicators member of the keyboard description recordbfifo- 8 8 1601484048 C tc-pfifo - gz xcb_xkb_get_compat_map_reply- 3 3 1540917640 B - - gz xomofocXOMOfOC 3 3 1710950786 A - - gz create output contextsjoin n- n n 1448008823 A - - gz Create a string by joining together list elementsxcb_input_get_device_key_mapping_unchecked- 3 3 1540917640 B - - gz dnssec-settime- 8 8 1725373373 A - - gz set the key timing metadata for a DNSSEC keygrub-sparc64-setup- 8 8 1722985065 C grub2-sparc64-setup - gz bzip2- 1 1 1533764347 A - - gz a block-sorting file compressor, v1.0.6rmdir 3p- 3p 3p 1402354218 A - - gz remove a directoryxtcallbacknonexclusiveXtCallbackNonexclusive 3 3 1501646833 B - - gz map a pop-upa64l 3p- 3p 3p 1402354216 A - - gz convert between a 32-bit integer and a radix-64 ASCII stringtcl_getinterppathTcl_GetInterpPath 3 3 1448008821 B - - gz manage multiple Tcl interpreters, aliases and hidden commandsbio_do_connectBIO_do_connect 3ssl 3 1721417624 B - - gz connect BIOmincmapsofscreenMinCmapsOfScreen 3 3 1710950785 B - - gz screen information functions and macrosrotatelogs- 8 8 1678051499 A - - gz Piped logging program to rotate Apache logsxmbtextpropertytotextlistXmbTextPropertyToTextList 3 3 1710950786 B - t gz convert text lists and text property structuresinet_netof- 3 3 1402354210 B - - gz Internet address manipulation routinesset_form_sub- 3x 3 1720626759 B - - gz make and break form window and subwindow associationsfcconfiggetsysrootFcConfigGetSysRoot 3 3 1520307172 A - - gz Obtain the system root directorypunycode_decode- 3 3 1448125246 A - - gz API functionxcb_get_font_path_unchecked- 3 3 1540917640 B - - gz sgm_dd- 8 8 1585715378 A - - gz copy data to and from files and devices, especially SCSI devicesifcfg- 8 8 1601484048 A - - gz simplistic script which replaces ifconfig IP managementxcb_x_print_print_get_page_dimensions_reply- 3 3 1540917640 B - - gz xcb_glx_create_context_checked- 3 3 1540917640 B - - gz chan- n n 1448008823 A - - gz Read, write and manipulate channelsdatetime::locale::kkDateTime::Locale::kk 3pm 3 1402390639 A - - gz cms_signCMS_sign 3ssl 3 1699892206 A - - gz create a CMS SignedData structureldexpl ldexpl 3 ldexpl 3pnsec3hash- 8 8 1725373373 A - - gz generate NSEC3 hashxunionrectwithregionXUnionRectWithRegion 3 3 1710950786 B - - gz region arithmetictabs 1p- 1p 1p 1402354204 A - - gz set terminal tabstapestat- 1 1 1697208922 A - - gz Report tape statistics.datetime::locale::zh_moDateTime::Locale::zh_MO 3pm 3 1402390642 A - - gz clock_getres 3p- 3p 3p 1402354214 B - - gz clock and timer functions (REALTIME)llength- n n 1448008823 A - - gz Count the number of elements in a listselabel_media- 5 5 1585710994 A - - gz userspace SELinux labeling interface and configuration file format for the media contexts backendnuma 7- 7 7 1402354220 A - - gz overview of Non-Uniform Memory Architecturessl_check_private_keySSL_check_private_key 3ssl 3 1721417624 B - - gz load certificate and key dataeuare-usermodloginprofile- 1 1 1484780705 A - - gz Update a user's passwordxtdisownselectionXtDisownSelection 3 3 1501646833 B - - gz set selection owner # /$ /3$#xzseli#Pztld_d# 'GQzuri:# Ezlogl#7fzregu&#A}ztcl_v#Sxzopenف#Nןzcal .#-vgzatanb#1GRzrege# 8zmisc߂# ;{ڜzdate$#3yzselio#O֝izlzmaԃ# zethe#AUzdynaG# Qf̧zfcla# Aisuzgrou# -sRztcl_'#Qo'zsetf# H (zgit-م# Z%/Rzdove=#;@zssl_#O6zxcop׆# .2`zendu# form Ndbi:+Pzwhat4#;bzxtisv# FconfWtozcasiLJ# 7{zdate#3@LzpivoS# 5vzfcvt#Qxcb_*zxmlw#G֯1zcurs;#A  zcurs#Operr$tap:HQozssl_#wVzvlocz#7cron zeuca#Htcl_Vform':޺'zxdr_# LAzxcb_k#0zgit-#@git-@Aposi"f#zstde# /z_tra+# 5zxkbrl#t!zsbrk#3getp. xcb_Ounlo Dsyst >&zxcre2# cGztmpf#[zlowe#KKzaddp#Jzssl_`#X-ztcl_׎# O_izec_g2#Yazxcb_#%zfcfr#^zmailԏ#zsyncz#Jxbut y|zadds#\,zxkbi.#z:zset_# Qzobj_# E4zfputj#5|zarms# \W zeuca#Oczxkbk~#czpclo# ;ozwhoi\#7-Jzsamp##getd( zcurs#3qzloca#0getsk $JzhypoE# 8mzssle#f2zqecv#FٷzfcopR#@zlast# T˖zferr# 8xztime6# -¬zselil#|0zfcat#5zj0lB#=Kztuxc#5][zbn_i#=3Pzxcb_#zxcb_8#)znew_|# 4zgetl# 'sinh 6/Jzsysu# Lbn_f1Hunse fcstKprot Edatea4xkba.N}zlzmoB# E#zssl_i#Qwzxcb_#1zxcb_#7zmigrX#N1zerro# 6zhard# DctanR 5zevp_D#!bdztext# gwcss2 <Evzxcb_9#%Uzxcb_y#zrsa_# 5Bzmenu# AxOzchow5##zeuar^#XOzdbus# :)QdzfabsA#BMz.k5i# G1Qizxtap $FzpthrX $ is_i 4zfcla $Kezxcb_ $*:8zintr&!$A>uzstrcm!$@l64a3ڛz_tra!$ 5zssl_!$ `e.zi2d_f"$I>Szunse#'`zelin"$ 46 zxmbu"$Fpthrq.git-qCipta4r >eucar*sigdr 7mbsrr xcb_#s.zsignW#$wcpnsfpem_3t;sematKgetot >xcb_'upam_^u3modfu >euaruHclogUv @fzset_F$$Azsystu#$A$zsyst#$^6Fzjna# $W{$ x{spli$$@Ee{wcsw$$ Z0{xshmB%$Mrevw;atanw@'{d2i_%$ Hxcb_F{ssl_%$ D+@{xkbaA&$|Mށ{bfif&$"{O{xcb_&$3{xomo3'$7z{joinr'$Lsxm{xcb_'$+bq{dnss ($G{gruba($-l{bzip($B?{rmdi($ /Y{xtca!)$<seli{||{a64lt)$Yv.{tcl_)$h,% {bio_O*$6G{minc*$Q{rota*$ F/{xmbtG+$b̓{inet+$ A7{set_,$ QV{fccom,$L_sZ{puny,$'lG[{xcb_-$j{sgm_:-$[:{ifcf-$R^k{xcb_-$,{xcb_;.$SC{chanu.$>{date.$0 j{cms_.$ F(Z{ldexL/$u5{nsecg/$ .*{xuni/$?3P{tabs0$.{tape60$ 2{6{dateq0$3p&{cloc0$A<{llen 1$AN%{selaV1$|{numa1$F4{ssl_-2$O?{euar2$3V{xtdi2$>_-{dirc`$ -\F{getu7`$3R{getsr`$oB{i2d_`$r$:{mcpra$7s{mvwaNa$bdv{cursa$bhF{mvhl1b$ bk {globb$UgY{perlb$7ܨy{glus9c$IxL{datac$ H!Q{dbi:c$f {mvwiWd$b4{svcud$F{git-e$9j{setphe$P"ό{tcl_e$U$p{xkbc*f$ T/-{hdesg$ 0I{xcb__{extun$hx1r{syst_o$ P3+{eucap$8"S{ssl_Mp$XWم{pthrp$?{xcb_q$2O{rpc.\q$An{xsetq$ ;git-+perlQ <clnt Fdate3xkbk5 <j{gpg-q$;}9{xdr_>r$ L {Fontr$&{xmbur$Lcgi: Jfconm ;{tc-n.s$ +,0{tcl_bs$Ar4{intes$\O5q{tcl_t$J{xcb_xt$4\y{setat$ .({fcrat$>o>{dngeGu$ C=W{pwdo$q{git-u$Vx{aclv$/z{grid3v$K{x509v$ X@l{xcb_v$y>{rt_s4w$@[κ{xcb_w$>!{xcb_w$Me{rpc:w$QZl{bio_Dx$ :r{getdx$4{rindx$ 5{word y$ Z{xml:.y$Imnl{xtdiy$Kdl_i>tee 3perl(0t{xcb_y$в{hmacz$ Iӎ{avc_pz$D{{datez$3{xget{$ 5+<{git-V{$ GEh{bcno$sgp_[_C{fcpa{$E5!{xcb_{$%h{bio_=|$<{bio_|$=&{erff|$A{get_|$<EV{scr_=}$ IS{{ssl_}$S5{evp_}$BQo{xcb_Q~$$R{init~$R#{scan~$Z${db_lI$A({{wcst$Ndircolors- 1 1 1605565487 A - - gz color setup for lsgetutid- 3 3 1402354209 B - - gz access utmp file entriesgets gets 3 gets n gets 3pi2d_privatekeyi2d_PrivateKey 3ssl 3 1721417624 B - - gz decode and encode functions for reading and saving EVP_PKEY structures.mcprint- 3x 3 1720626759 B - - gz ship binary data to printermvwadd_wchnstr- 3x 3 1720626759 B - - gz add an array of complex characters (and attributes) to a curses windowcurs_add_wchstr- 3x 3 1715932335 A - - gz add an array of complex characters (and attributes) to a curses windowmvhline_set- 3x 3 1720626759 B - - gz create curses borders or lines using complex characters and renditionsglob 3- 3 3 1402354210 A - - gz find pathnames matching a pattern, free memory from glob()perlxs- 1 1 1698237671 A - - gz XS language reference manualgluster- 8 8 1649176098 A - - gz Gluster Console Manager (command line utility)data::dumpData::Dump 3pm 3 1390483835 A - - gz Pretty printing of data structuresdbi::dbd::sqlengineDBI::DBD::SqlEngine 3pm 3 1402362413 A - - gz Base class for DBI drivers without their own SQL enginemvwin_wchnstr- 3x 3 1720626759 B - - gz get an array of complex characters and renditions from a curses windowsvcudp_bufcreate- 3 3 1402354212 B - - gz library routines for remote procedure callsgit-for-each-ref- 1 1 1722330781 A - - gz Output information on each refsetpriv- 1 1 1612283497 A - - gz run a program with different Linux privilege settingstcl_unicharcasematchTcl_UniCharCaseMatch 3 3 1448008823 B - - gz routines for manipulating UTF-8 stringsxkbchangemapXkbChangeMap 3 3 1710950785 A - - gz Update only partial components of a keyboard description, modify the appropriate fields in the server and map components of a local copy of the keyboard descriptionhdestroy_r- 3 3 1402354210 B - - gz hash table managementxcb_input_get_device_button_mapping_reply- 3 3 1540917640 B - - gz tcl_saveresultTcl_SaveResult 3 3 1448008822 B - - gz save and restore an interpreter's stateevp_sha256EVP_sha256 3ssl 3 1721417624 B - - gz EVP digest routinesrsa_get_ex_new_indexRSA_get_ex_new_index 3ssl 3 1721417624 A - - gz add application specific data to RSA structurestcl_setsystemencodingTcl_SetSystemEncoding 3 3 1448008821 B - - gz procedures for creating and using encodingsgit-replace- 1 1 1722330781 A - - gz Create, list, delete refs to replace objectsxcb_input_enter_event_t- 3 3 1540917640 A - - gz key_setsecret- 3 3 1402354210 A - - gz interfaces to rpc keyserver daemongetutxline 3p- 3p 3p 1402354215 B - t gz user accounting database functionsprioPRIO 8 8 1601484048 C tc-prio - gz xchangekeyboardcontrolXChangeKeyboardControl 3 3 1710950786 A - t gz manipulate keyboard settings and keyboard control structuretzname tzname 3 tzname 3pxcb_render_create_radial_gradient_checked- 3 3 1540917640 B - - gz era_restore- 8 8 1605543195 A - - gz restore era metadata file to device or file.xcb_xf86dri_get_device_info_device_private- 3 3 1540917640 B - - gz xcb_render_query_filters_filters_length- 3 3 1540917640 B - - gz outb- 2 2 1402354205 A - - gz port I/Oxcb_x_print_print_put_document_data- 3 3 1540917640 A - - gz true 1p- 1p 1p 1402354204 A - - gz return true valuexcb_xfixes_get_cursor_name_name_end- 3 3 1540917640 B - - gz strip 1p- 1p 1p 1402354204 A - - gz remove unnecessary information from executable files (DEVELOPMENT)xcb_glx_get_floatv_data_end- 3 3 1540917640 B - - gz vfork 2- 2 2 1402354206 A - - gz create a child process and block parentmodule::build::bundlingModule::Build::Bundling 3pm 3 1402373049 A - - gz How to bundle Module::Build with a distributionsys_socket.h- 0p 0p 1402354203 A - - gz main sockets headergai_error- 3 3 1402354209 B - - gz asynchronous network address and service translationextutils::mm_cygwinExtUtils::MM_Cygwin 3pm 3 1402365499 A - - gz methods to override UN*X behaviour in ExtUtils::MakeMakersystemd-system-update-generator- 8 8 1711457788 A - - gz Generator for redirecting boot to offline update modepwd pwd n pwd 1p pwd 1bc BC 3x bc 1p bc 1euca-describe-images- 1 1 1484780705 A - - gz Show information about imagesssl_get_ex_dataSSL_get_ex_data 3ssl 3 1721417624 B - - gz internal application specific data functionspthread_rwlock_timedrdlock- 3p 3p 1402354217 A - - gz lock a read-write lock for readingxcb_xf86dri_get_drawable_info_clip_rects_iterator- 3 3 1540917640 B - - gz rpc.sm-notify- 8 8 1682710367 B - - gz send reboot notifications to NFS peersxsetdashesXSetDashes 3 3 1710950786 B - - gz GC convenience routinesgpg-connect-agent- 1 1 1531487121 A - - gz Communicate with a running agentxdr_u_int- 3 3 1402354213 B - - gz library routines for external data representationFontDataBase 5- 5 5 1198424983 C FontDatabase - gz xmbufgetbufferattributesXmbufGetBufferAttributes 3 3 1448003986 B - - gz X multibuffering functionstc-netem- 8 8 1601484048 A - - gz Network Emulatortcl_pkgprovideexTcl_PkgProvideEx 3 3 1448008822 B - - gz package version controlinteger- 3pm 3 1698237678 A - - gz Perl pragma to use integer arithmetic instead of floating pointtcl_appendallobjtypesTcl_AppendAllObjTypes 3 3 1448008822 A - - gz manipulate Tcl object typesxcb_change_property- 3 3 1540917640 A - - gz Changes a window propertysetaliasent- 3 3 1402354212 A - - gz read an alias entryfcrangedestroyFcRangeDestroy 3 3 1520307172 A - - gz destroy a range objectdngettext- 3 3 1465650185 A - - gz translate message and choose plural formgit-get-tar-commit-id- 1 1 1722330780 A - - gz Extract commit ID from an archive created using git-archiveacl- 5 5 1585707370 A - - gz Access Control Listsgrid- n n 1448008912 A - - gz Geometry manager that arranges widgets in a gridx509_verify_param_get0_peernameX509_VERIFY_PARAM_get0_peername 3ssl 3 1721417624 B - - gz X509 verification parametersxcb_selection_request_event_t- 3 3 1540917640 A - - gz rt_sigtimedwait- 2 2 1402354205 B - - gz synchronously wait for queued signalsxcb_dri2_wait_msc- 3 3 1540917640 A - - gz xcb_xfixes_change_cursor- 3 3 1540917640 A - - gz rpc::plserverRPC::PlServer 3pm 3 1402366910 A - - gz Perl extension for writing PlRPC serversbio_f_cipherBIO_f_cipher 3ssl 3 1721417624 A - - gz cipher BIO filtergetdtablesize 2- 2 2 1402354204 B - - gz get descriptor table sizerindex 3- 3 3 1402354210 A - - gz locate character in stringwordfree wordfree 3 wordfree 3pxml::libxml::commentXML::LibXML::Comment 3pm 3 1402352994 A - - gz XML::LibXML Comment ClassxtdispatcheventXtDispatchEvent 3 3 1501646833 B - - gz query and process events and inputxcb_randr_get_crtc_info- 3 3 1540917640 A - - gz hmac_cleanupHMAC_cleanup 3ssl 3 1721417624 B - - gz HMAC message authentication codeavc_has_perm_noaudit- 3 3 1585710994 B - - gz obtain and audit SELinux access decisionsdatetime::locale::st_zaDateTime::Locale::st_ZA 3pm 3 1402390636 A - - gz xgetsubimageXGetSubImage 3 3 1710950786 B - - gz transfer imagesgit-archive- 1 1 1722330782 A - - gz Create an archive of files from a named treefcpatternprintFcPatternPrint 3 3 1520307172 A - - gz Print a pattern for debuggingxcb_xvmc_list_subpicture_types_types- 3 3 1540917640 B - - gz bio_set_cipherBIO_set_cipher 3ssl 3 1721417624 B - - gz cipher BIO filterbio_set_conn_int_portBIO_set_conn_int_port 3ssl 3 1721417624 B - - gz connect BIOerff erff 3 erff 3pget_default_role- 3 3 1585710994 C get_default_context_with_rolelevel - gz scr_dump- 3x 3 1720626759 B - - gz read (write) a curses screen from (to) a filessl_ctx_use_rsaprivatekeySSL_CTX_use_RSAPrivateKey 3ssl 3 1721417624 B - - gz load certificate and key dataevp_decryptinit_exEVP_DecryptInit_ex 3ssl 3 1721417624 B - - gz EVP cipher routinesxcb_glx_get_convolution_parameterfv- 3 3 1540917640 A - - gz initscr- 3x 3 1720626759 B - - gz curses screen initialization and manipulation routinesscan- n n 1448008823 A - - gz Parse string using conversion specifiers in the style of sscanfdb_load- 1 1 1481720621 A - - gz Read and load data from standard inputwcstoll- 3p 3p 1402354219 B - - gz convert a wide-character string to a long integerauditctl- 8 8 1565265962 A - - gz a utility to assist controlling the kernel's audit systemevp_cipher_ctx_block_sizeEVP_CIPHER_CTX_block_size 3ssl 3 1721417624 B - - gz EVP cipher routinestcl_getcommandfullnameTcl_GetCommandFullName 3 3 1448008821 B - - gz implement new commands in Cform_init- 3x 3 1720626759 B - - gz set hooks for automatic invocation by applicationsec_group_new_curve_gf2mEC_GROUP_new_curve_GF2m 3ssl 3 1721417624 B - - gz Functions for creating and destroying EC_GROUP objects.freopen freopen 3 freopen 3pwcstoimax wcstoimax 3 wcstoimax 3pxcb_glx_get_doublev_data_length- 3 3 1540917640 B - - gz xcb_xfixes_set_cursor_name- 3 3 1540917640 A - - gz datetime::locale::en_naDateTime::Locale::en_NA 3pm 3 1402390635 A - - gz tiffvsetfieldTIFFVSetField 3tiff 3 1729525165 C TIFFSetField - gz afs_syscall- 2 2 1402354204 B - - gz unimplemented system callsisc-config.sh- 1 1 1725373375 A - - gz Get information about the installed version of ISC BINDftrylockfile 3p- 3p 3p 1402354215 B - - gz stdio locking functionsrewinddir 3p- 3p 3p 1402354218 A - - gz reset the position of a directory stream to the beginning of a directorygetwd 3p- 3p 3p 1402354215 A - - gz get the current working directory pathname (LEGACY)mq_unlink 2- 2 2 1402354205 B - - gz remove a message queuepam_lastlog- 8 8 1585713589 A - - gz PAM module to display date of last login and perform inactive account lock outsmart_event.conf- 5 5 1601569733 B - - gz configuration file for libreport.lh_new- 3ssl 3 1721417624 B - - gz dynamic hash tabletcl_deleteeventsTcl_DeleteEvents 3 3 1448008822 B - - gz the event queue and notifier interfacesmvwaddchnstr- 3x 3 1720626759 B - - gz add a string of characters (and attributes) to a curses windowxcb_selinux_set_selection_use_context- 3 3 1540917640 A - - gz circleq_headCIRCLEQ_HEAD 3 3 1402354206 B - - gz implementations of lists, tail queues, and circular queuesfesetround 3p- 3p 3p 1402354215 B - - gz get and set current rounding directionfile::dosglobFile::DosGlob 3pm 3 1698237673 A - - gz DOS like globbing and then sometcl_parsecommandTcl_ParseCommand 3 3 1448008822 B - - gz parse Tcl scripts and expressionsxcb_render_query_filters_reply- 3 3 1540917640 B - - gz libnss_mymachines.so.2- 8 8 1711457788 B - - gz Provide hostname resolution for local container instances.grub-set-default- 8 8 1722985065 C grub2-set-default - gz xstorenameXStoreName 3 3 1710950786 B - - gz set or read a window's WM_NAME propertyscreenofdisplayScreenOfDisplay 3 3 1710950785 B - - gz Display macros and functionsutf8 utf8 3pm utf8 7warnx- 3 3 1402354213 B - - gz formatted error messagesforbidden_words.conf- 5 5 1585834715 A - - gz configuration file for libreport.evp_cipher_ctx_modeEVP_CIPHER_CTX_mode 3ssl 3 1721417624 B - - gz EVP cipher routinesxcb_shm_completion_event_t- 3 3 1540917640 A - - gz log10f log10f 3 log10f 3pstrcat strcat 3 strcat 3prsa_padding_add_pkcs1_type_2RSA_padding_add_PKCS1_type_2 3ssl 3 1721417624 B - - gz asymmetric encryption paddingxcb_open_font- 3 3 1540917640 A - - gz opens a fontsched_get_priority_min sched_get_priority_min 2 sched_get_priority_min 3ppcrepartial- 3 3 1501643278 A - - gz Perl-compatible regular expressionslatin9- 7 7 1402354220 B - t gz ISO 8859-15 character set encoded in octal, decimal, and hexadecimalmysql- 1 1 1697025034 A - t gz the MySQL command-line clientlsattr- 1 1 1711459141 A - - gz list file attributes on a Linux second extended file systemscanf 3- 3 3 1402354213 A - - gz input format conversionmodule::build::apiModule::Build::API 3pm 3 1402373050 A - - gz API Reference for Module AuthorstifffieldtagTIFFFieldTag 3tiff 3 1729525165 A - - gz Get TIFF field tag value from field informationman-pages- 7 7 1402354220 A - - gz conventions for writing Linux man pagesperlcn- 1 1 1698237664 A - - gz XXXXXXXXX Perl XXXXXXxcb_convert_selection- 3 3 1540917640 A - - gz feupdateenv 3p- 3p 3p 1402354215 A - - gz update floating-point environmentgethostbyname2- 3 3 1402354209 B - - gz get network host entryxkbfreegeomshapesXkbFreeGeomShapes 3 3 1710950785 A - - gz Free geometry shapessecurity_disable- 3 3 1585710994 A - - gz disable the SELinux kernel code at runtimecimag 3p- 3p 3p 1402354214 A - - gz complex imaginary functionspcre_dfa_exec- 3 3 1501643278 A - - gz Perl-compatible regular expressionssetsid 3p- 3p 3p 1402354218 A - - gz create session and set process group IDregulatory.db- 5 5 1540938735 B - - gz The Linux wireless regulatory databaseimage::baseImage::Base 3pm 3 1402347909 A - - gz base class for loading, manipulating and saving images.xcb_free_cursor_checked- 3 3 1540917640 B - - gz Deletes a cursor#%$!%~xcb_c%$0~znew%;~xcb_%,_~math)%TQ~syncH#8/~luac#'PY~strt# 4~tcl_#U{~evp_c# Jy~xcb_#JH~pem_#B~xcb_H##0V~ripe#6!-~xcb_Ó#~extu#Wkݖ~packi#M~date#0~asn1#M~Ac~sys/e# !w~kmod#A~keyc֕#<&[~seed%# [~euca#<i~euca#N}~feclH#I=~posi#QH~fmax# ZWt ~rewis# 1E~qifl#0 ~noti# 00~date%4e~perlz#D~cfgeƙ#1~use_# 1p~perlB#< :4~has_# ;w~math%^K~avc_# C r~euarN#4O5~xcha# T6~xcb_#/jC~host=# =~loca#k~iswc #  ~kilo.#Gc~git-R#N*~xcmsE% 8{~date%#3`ub~tcl_p# S7Y~moduΞ#Sl~win_:# b ~xcb_%6<~xcb_$$.:posi%T2$ ~tcl_?$Q0~vtim$-~wins$ Fnr~xcb_#$"=ʒ~rdat`$78ynfL%>$~date$Px509%[Niappc%Kgfesec% axcb_%xfeat%.~hier$Cpcre% >Dq~xcb_J$& ~lnew$ 3evp_P% 8Czxcb_%&<tc-c%/h9tcl_%:'~bn_c$ E~drac$H)xcb_X%-͉|~tcl_x$P~date$0{date%3)Kderw%1e~tc-s$ /݈~use_V$ 1~xcb_$,xdra#% 9 I%hosth% ~bio_$E ~getuԟ# }:~sets;$5Qe~grubw$B[~xcms$J~tcl_&$ E$i~retuv$ R{cfse% _ؘ8bn_m%Fvz~brct$9~syst$04~svce]$FzgrubU%G\xcb_%$`~sha5$ =rxcb_%%+~keyc$)D5xcb_*%)xcb_n%!h~sys_;$ ;W$~secu$@hwxcms% 6hoxaut %c/pod:r %S?err_ %D8~xcb_$(y~libi $ 4ܣ~ttk:H$ 4s~perl$8w~read$ ~stap$4(~mdc2'$ 9IG~flook$K~cons$ WH~cryp $7@fiel*!% Gxcb_{!%<=xcb_!%,U:~ssl__$QQ~xcb_$B~tcl_$J, ~xcb_Z$I~syst$6ϹE~htol$X~pem_5$A ~xcb_$ (3z,~bn_a$ U~euar8$!EHnV~pem_$?~dce$<(~wins3$ Jf~yum-$ S~pwsc%V~x509^%qei ~prec%]4~mvwaO% Z~eulb%>Z~aget %2<~xcb_F%Y=~errsӐ#0~git-%C$~isfi% ?q~xcb_%&1~un.h\%@~ledc%UK6~set_%Ni~pam_Z% <_<~xmbuh#O~soca%:/~sudo # 3^~pam_"#E~xcb_#:~ssl_#MO~dh_s%BEO~time8%BU~xcb_%DG~unlo% G$S~uucp˚#2+f~posi#VC~perl% Cxcb_randr_get_screen_info_unchecked- 3 3 1540917640 B - - gz tcl_getversionTcl_GetVersion 3 3 1448008822 A - - gz get the version of the library at runtimevtimes- 3 3 1402354213 B - - gz get resource usagewinsertln- 3x 3 1720626759 B - - gz delete and insert lines in a curses windowxcb_xkb_set_debugging_flags_reply- 3 3 1540917640 B - - gz rdate- 1 1 1402367181 A - - gz get the time via the networkdatetime::leapsecondDateTime::LeapSecond 3pm 3 1501652189 A - - gz leap seconds table and utilitieshier- 7 7 1402354219 A - - gz description of the file system hierarchyxcb_res_query_client_ids_ids_iterator- 3 3 1540917640 B - - gz lnewusers- 1 1 1381614967 A - - gz Create new user accountsbn_ctx_getBN_CTX_get 3ssl 3 1699892205 A - - gz use temporary BIGNUM variablesdracut-pre-udev.service- 8 8 1601481478 A - - gz runs the dracut hooks before udevd is startedtcl_utffindlastTcl_UtfFindLast 3 3 1448008823 B - - gz routines for manipulating UTF-8 stringsdatetime::locale::slDateTime::Locale::sl 3pm 3 1402390637 A - - gz tc-simple- 8 8 1601484048 A - - gz basic example actionuse_window- 3x 3 1720626759 B - t gz curses thread supportxcb_glx_get_fb_configs_property_list_length- 3 3 1540917640 B - - gz bio_ctrl_get_write_guaranteeBIO_ctrl_get_write_guarantee 3ssl 3 1721417624 B - - gz BIO pair BIOsetsyx- 3x 3 1720626759 B - - gz low-level curses routinesgrub2-macbless- 8 8 1722985065 A - - gz Mac-style bless utility for HFS or HFS+xcmstekhvcquerymaxvXcmsTekHVCQueryMaxV 3 3 1710950786 B - - gz obtain the TekHVC coordinatestcl_formatTcl_Format 3 3 1448008822 B - - gz manipulate Tcl objects as stringsreturn n- n n 1448008823 A - - gz Return from a procedure, or set return code of a scriptbrctl- 8 8 1402391049 A - - gz ethernet bridge administrationsystemd-readahead-done.timer- 8 8 1711457788 B - - gz Disk read ahead logicsvcerr_progvers- 3 3 1402354212 B - - gz library routines for remote procedure callssha512_initSHA512_Init 3ssl 3 1721417624 B - - gz Secure Hash Algorithmkeyctl_describe_alloc- 3 3 1573510998 B - - gz Describe a keysys_mman.h- 0p 0p 1402354203 A - - gz memory management declarationssecurity_policyvers- 3 3 1585710994 A - - gz get the version of the SELinux policyxcb_input_xi_ungrab_device- 3 3 1540917640 A - - gz libipset- 3 3 1565308538 A - - gz A library for using ipsetttk::style- n n 1448008912 A - - gz Manipulate style databaseperldsc- 1 1 1698237664 A - - gz Perl Data Structures Cookbookreaddir_r readdir_r 3 readdir_r 3pstapdyn- 8 8 1602605484 A - - gz systemtap dyninst runtimemdc2_finalMDC2_Final 3ssl 3 1721417624 B - - gz MDC2 hash functionfloor 3- 3 3 1402354209 A - - gz largest integral value not greater than argumentcons.saver- 8 8 1402354220 A - - gz general-purpose Linux console screen save and restore servercrypt 3- 3 3 1402354208 A - t gz password and data encryptionssl_ctx_use_certificateSSL_CTX_use_certificate 3ssl 3 1721417624 A - - gz load certificate and key dataxcb_unmap_subwindows_checked- 3 3 1540917640 B - - gz tcl_parsebracesTcl_ParseBraces 3 3 1448008822 B - - gz parse Tcl scripts and expressionsxcb_glx_new_list_checked- 3 3 1540917640 B - - gz systemd.snapshot- 5 5 1711457787 A - - gz Snapshot unit configurationhtole16- 3 3 1402354210 B - - gz convert values between host and big-/little-endian byte orderpem_write_bio_dsa_pubkeyPEM_write_bio_DSA_PUBKEY 3ssl 3 1721417624 B - - gz PEM routinesxcb_create_glyph_cursor_checked- 3 3 1540917640 B - - gz create cursorbn_add_wordBN_add_word 3ssl 3 1721417624 A - - gz arithmetic functions on BIGNUMs with integerseuare-instanceprofilelistforrole- 1 1 1484780705 A - - gz List all instance profiles that use a rolepem_write_bio_x509_auxPEM_write_bio_X509_AUX 3ssl 3 1721417624 B - - gz PEM routinesdc- 1 1 1402343514 A - - gz an arbitrary precision calculatorwinsnstr- 3x 3 1720626759 B - - gz insert string before cursor in a curses windowyum-builddep- 1 1 1589300860 A - - gz install missing dependencies for building an RPM package#O!1Ϗ$B $$ g|xshm@!M}|lib:^@!Z)|xcb_@!+|ndbmA!Ea H|megaZA!$%|perl~A! G r|cabsA! <U|funlB! (|xcb_=B!"A|showzB! <L37|xcb_B!%{xI|dateC!38|pem_LC!?|idnaC!'ړ|xkboC!^|mkteD! ;b|cms_D!^rint`+|wsynPE! 1syscT 7ssl_U^ 7|inetE! A|tc-tE!.xcb_)Hж|sg_gF!;+W|qrer[F!-|subsF!Qdate`3http W NfegeyW Idh_gW^ā|hasmF! @XB|tcl_0G!Abio_uX@H|paraG!O]H|memcG! +$'|xtinH! 06|fcstSH!Qgit-ZRmake}Z54|dbi:H!Y|xkbf"I!Gm|dmfiI! BJ7|xcb_I!^|rsa_J!Z7|blkdmJ!>x3|paraJ! \<|pdf2"K!C|sudolK! ;lwp:O]Oerr_]Jmysq ^:x|eucaK!J|rhtsL!<rpm2W^ Wxrep^Fsqrt _ 1sinc>?g|xcb_hL!rxV|lognL! 9Font@A1|pkeyL! LF|x509;M!L2{|ssl_M!F|assuM!;6k|freeHN! :V|mq_sN! <1|fc-sN!9avc_FBxcb_%.w|mkdtO!>F|SSL ZO! 5 9|lgamO! - r|xget#i6|resi}# McreaeD|xcb_ՠ#(\\|seli# |J|dsa_# D|tap:#b|readj#-euca@2|lvmp# *R|flasҢ# ;P|pwco#J ^|xdr_g# L֚|top_#9w?|xcb_O!Pš|pem_#?|waddS#\0|vid_# B|+|xcb_#{|logg;# )`|fmafn#8|alia#>;l|syst#Hh5|tcl_K#P{|sudo#4|getg# =db_lElibt( <6|tcl_;#Ln}|xcb_#|canoӧ#E;w|auto/# 9u|strtq# ;|pcre#>|new_# 92c|getmU# @$H|verr#3S}|xset٩#^|striH#'G|man ~#5e*|strt#uO|eulbԪ#!B|xdra#;|fcco#X۞|locaW#>px|set_# B!kj|err_#E |user=# ^;|xutf#IK |info# Us|bio_]#DT}|free#|realϮ#:|tcl_# L|tcl_D#Lp||xcb_# F|audi$ TRc*|isupݯ#þ|evp_]$IzIo|tcl_$K3|form"$ N>3|ec_gz$k|freo$]|wcst$ v;|xcb_?$ D|xcb_z${|date$3ٛo|tiff$6<|afs_?$ 5|isc-$Rř4|ftry$4|h[|rewi$$ e9R|getw$ P>|mq_u$ 1t|pam_,$ ixtfr;|smar$<D|lh_n$0|tcl_%$Q|mvwa$ Ze2X|xcb_$&git- U5|circ/$ `pem_1>bio_:xcb_=ٻ|fese$Cidn_  'o`|file$HT)|tcl_C$K|grubE$+vg|libnو$U1]|xcb_$ $|%Ra}xsto$ K2}scre׉$Esem_O pcre >temp]Y[}utf8,$4V}warnB$3`]}forb{$<&}evp_̊$CW}xcb_#$DX}log1Y$wZ}strct$b5}rsa_$V{}xcb_$'}sche7$4 }pcre$ >fG0}latǐ$_~}mysq2$8_}lsatp$VX}scan͍$2t}modu$Nxcmsז3xcb_'ecvtF(}4}tiffh$ Y}man-Ύ$ BV*}perl$0_}xcb_Q$ }feup$>?}geth$1{}xkbf@$?)}secu$E AD}cima$ 8g%}pcre($>w}setst$ DK}regu‘$ArdmaG 2pcre>}imag$ ^ٽ}xcb_{$+d}evp_$ ;des_>ioct* ?y[}syncG$6}err $3posi=fWv}xche$?U9}dove $16}getpN$< [}tige$ ;M?}cosh$ 8q}evp_!$ :b}systf$4{g}ssl_$eNK}pod:!$ [{<}date$3O}euwa$A}tchm$$ >C}dtlsl$u}date$0Q}euca9$7a}pam$C}slk_$ ;N%}fcco$Ank;}xcb_<$}sigtp$ M}git-$ 5:}need$JV}geto:$ '}ceilm$ 3}inb$#net: A^X}xgra$Z<}xcb_?$-cbrtB-k:}xcha$Ll}pcre$">9}xcb_C$ umas C?}set_~$94#}syst$fevp_B @xcb_pm@}strsK$4Pl}moun$ Gs}be64$Xt}atan8$m}perlS$ 'B[}lsin$ JÂ}mysq$+lsmosIabrtHR}des_$?xcb_2C!}bio_\$@}del_$ <=}fget$5!}mvwv9$ P/r}xcb_$/}svcf$ FT}xgen$e{z}date$3KCI}munt$ )]'}spaw $6Z}perlJ$ :i+}nsen$I0{}xtge%Y/}raw$}partv%; ݫ}scsi% =!}bg 1%>53;}xcb_C%Yn}pcrep% ?{}dige%U'}tcl_"%F}sete% 7/9}get_%Ft^}perl% >DZ}conta%K;9}__fr% =Fi}date%8DH}pod:[%RIb}xcb_%#}}date%0TS%}du_?% J_}helpN%>}avc_% C4x}xcb_%/̙(}xcb_*% }selic%aM}isna%,,}xcb_%"A }dove5% @ h}abrt%Nh}extu%[Y}d2i_L%Q)}cexp% :}jc}xtpr%>inet M SY}beep: %;}date} %4A}feen %I}dsa_" %<{}xcb_m %3}labe % C )}lna % 3}pipe %;?}tcl_E %fC!}strc % }rand % ;bY}pthr' %,}hcree % 0xcb_`!yF}fsck % >5g}sg_r %>'}shm_: % L}ctan %6?~}isal % =euca7}tcl_%P}date%0{vn}date%3/}xsup%`wsyn31perl *t}eusc%"Xevp_md_nullEVP_md_null 3ssl 3 1721417624 B - - gz EVP digest routinessync 2- 2 2 1402354206 A - - gz commit buffer cache to diskerr 3- 3 3 1402354213 A - - gz formatted error messagesxchecktypedeventXCheckTypedEvent 3 3 1710950786 B - - gz select events by typedoveadm-penalty- 1 1 1724195936 A - - gz Show current penaltiesgetpeername 3p- 3p 3p 1402354215 A - - gz get the name of the peer sockettigetnum_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensioncoshl 3p- 3p 3p 1402354214 B - - gz hyperbolic cosine functionsevp_sha384EVP_sha384 3ssl 3 1721417624 B - - gz EVP digest routinessystemd.socket- 5 5 1711457788 A - - gz Socket unit configurationssl_get_read_aheadSSL_get_read_ahead 3ssl 3 1721417624 B - - gz manage whether to read as many input bytes as possiblepod::usagePod::Usage 3pm 3 1402390579 A - - gz print a usage message from embedded pod documentationdatetime::locale::en_viDateTime::Locale::en_VI 3pm 3 1402390633 A - - gz euwatch-put-data- 1 1 1484780705 A - - gz add data points to a CloudWatch metrictchmttest- 1 1 1402385697 A - - gz test cases of the hash database APIdtls_server_methodDTLS_server_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionsdatetime::locale::kwDateTime::Locale::kw 3pm 3 1402390639 A - - gz euca-delete-dhcp-options- 1 1 1484780705 A - - gz Delete a VPC DHCP option setpam PAM 8 pam 8 pam 3slk_label_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionfcconfigsubstituteFcConfigSubstitute 3 3 1520307172 A - - gz Execute substitutionsxcb_shape_notify_event_t- 3 3 1540917640 A - - gz sigtimedwait sigtimedwait 2 sigtimedwait 3pgit-shortlog- 1 1 1722330783 A - - gz Summarize 'git log' outputneeds-restarting- 1 1 1589300861 A - - gz report running processes that have been updatedgetopts 3pm- 3pm 3 1698237674 C Getopt::Std - gz ceilf 3p- 3p 3p 1402354214 B - - gz ceiling value functioninb- 2 2 1402354205 B - - gz port I/OxgraphicsexposeeventXGraphicsExposeEvent 3 3 1710950786 A - - gz GraphicsExpose and NoExpose event structuresxcb_selinux_get_property_use_context_context- 3 3 1540917640 B - - gz xchangepropertyXChangeProperty 3 3 1710950786 B - - gz obtain and change window propertiespcre32_pattern_to_host_byte_order- 3 3 1573510868 B - - gz Perl-compatible regular expressionsxcb_randr_query_output_property- 3 3 1540917640 A - - gz set_current_item- 3x 3 1720626759 B - - gz set and get current_menu_itemsystemd-tmpfiles-clean.timer- 8 8 1711457788 B - - gz Creates, deletes and cleans up volatile and temporary files and directoriesstrsep- 3 3 1402354212 A - - gz extract token from stringmount.fuse- 8 8 1540935154 A - - gz format and options for the fuse file systemsbe64toh- 3 3 1402354207 B - - gz convert values between host and big-/little-endian byte orderatanhf atanhf 3 atanhf 3pperlform- 1 1 1698237665 A - - gz Perl formatslsinitrd- 1 1 1601481478 A - - gz tool to show the contents of an initramfs imagemysqld- 8 8 1697025034 A - - gz the MySQL serverdes_ede2_cbc_encryptDES_ede2_cbc_encrypt 3ssl 3 1721417624 B - - gz DES encryptionbio_get_cipher_ctxBIO_get_cipher_ctx 3ssl 3 1721417624 B - - gz cipher BIO filterdel_panel- 3x 3 1720626759 B - - gz panel stack extension for cursesfgetc_unlocked- 3 3 1402354209 B - - gz nonlocking stdio functionsmvwvline- 3x 3 1720626759 B - - gz create curses borders, horizontal and vertical linesxcb_glx_get_tex_geniv- 3 3 1540917640 A - - gz svcfd_create- 3 3 1402354212 B - - gz library routines for remote procedure callsxgenericeventcookieXGenericEventCookie 3 3 1710950786 B - - gz retrieve and free additional event data through cookies.datetime::locale::wo_snDateTime::Locale::wo_SN 3pm 3 1402390636 A - - gz muntrace- 3 3 1402354211 B - - gz malloc tracingspawn.h- 0p 0p 1402354203 A - - gz spawn (ADVANCED REALTIME)perllinux- 1 1 1698237666 A - - gz Perl version 5 on Linux systemsnsenter- 1 1 1612283497 A - - gz run program with namespaces of other processesraw raw 8 raw 3x raw 7xtgetapplicationnameandclassXtGetApplicationNameAndClass 3 3 1501646833 A - - gz retrieve application name and classparted- 8 8 1585713491 A - - gz a partition manipulation programscsi_ready- 8 8 1585715378 A - - gz do SCSI TEST UNIT READY on devicesbg 1- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)xcb_xkb_set_names- 3 3 1540917640 A - - gz pcre-config- 1 1 1501643278 A - - gz program to return PCRE configurationdigest::hmac_sha1Digest::HMAC_SHA1 3pm 3 1402388904 A - - gz Keyed-Hashing for Message Authenticationtcl_getcurrentnamespaceTcl_GetCurrentNamespace 3 3 1448008822 B - - gz manipulate namespacessetegid 3p- 3p 3p 1402354218 A - - gz set the effective group IDget_kernel_syms- 2 2 1402354204 A - - gz retrieve exported kernel and module symbolsperlinterp- 1 1 1698237666 A - - gz An overview of the Perl interpretercontext_range_get- 3 3 1585710994 B - - gz Routines to manipulate SELinux security contexts__freading- 3 3 1402354207 B - - gz interfaces to stdio FILE structuredatetime::locale::kk_cyrl_kzDateTime::Locale::kk_Cyrl_KZ 3pm 3 1402390644 A - - gz pod::parselinkPod::ParseLink 3pm 3 1402343774 A - - gz Parse an L<> formatting code in POD textxcb_get_keyboard_mapping_unchecked- 3 3 1540917640 B - - gz datetime::locale::ptDateTime::Locale::pt 3pm 3 1402390641 A - - gz du du 1p du 1help- 1 1 1637771605 B - - gz bash built-in commands, see bash(1)avc_destroy- 3 3 1585710994 B - - gz userspace SELinux AVC setup and teardownxcb_input_xi_list_properties_properties_length- 3 3 1540917640 B - - gz xcb_sync_change_alarm_checked- 3 3 1540917640 B - - gz selinux_status_deny_unknown- 3 3 1585710994 B - - gz reference the SELinux kernel status without invocation of system callsisnan isnan 3 isnan 3pxcb_glx_get_queryiv_arb_unchecked- 3 3 1540917640 B - - gz doveadm-auth- 1 1 1724195936 A - - gz Flush/lookup/test authentication dataabrt-oops.conf- 5 5 1601569733 A - - gz Configuration file for ABRT's Kernel Oops extractorextutils::liblistExtUtils::Liblist 3pm 3 1402365499 A - - gz determine libraries to use and how to use themd2i_dsaparamsd2i_DSAparams 3ssl 3 1721417624 B - - gz DSA key encoding and parsing functions.cexpl 3p- 3p 3p 1402354214 B - - gz complex exponential functionsxtprocesslockXtProcessLock 3 3 1501646833 A - - gz lock and unlock processbeep_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensiondatetime::locale::fil_phDateTime::Locale::fil_PH 3pm 3 1402390639 A - - gz feenableexcept- 3 3 1402354209 A - - gz floating-point rounding and exception handlingdsa_new_methodDSA_new_method 3ssl 3 1699892208 A - - gz select DSA methodxcb_input_xi_change_property- 3 3 1540917640 A - - gz labelframe- n n 1448008912 A - - gz Create and manipulate labelframe widgetsln ln 1p ln 1pipe 3p- 3p 3p 1402354216 A - - gz create an interprocess channeltcl_getaliasobjTcl_GetAliasObj 3 3 1448008821 B - - gz manage multiple Tcl interpreters, aliases and hidden commandsstrcasecmp strcasecmp 3 strcasecmp 3prandom 3p- 3p 3p 1402354218 A - - gz pseudo-random number functionspthread_create 3p- 3p 3p 1402354217 A - - gz thread creationhcreate_r- 3 3 1402354210 B - - gz hash table managementfsck.vfat- 8 8 1573511351 B - - gz check and repair MS-DOS filesystemssg_read_block_limits- 8 8 1585715378 A - - gz send SCSI READ BLOCK LIMITS commandshm_unlink 3- 3 3 1402354212 B - - gz create/open or unlink POSIX shared memory objectsctan 3p- 3p 3p 1402354214 A - - gz complex tangent functionsisalpha 3p- 3p 3p 1402354216 A - - gz test for an alphabetic charactertcl_getensemblemappingdictTcl_GetEnsembleMappingDict 3 3 1448008821 B - - gz manipulate ensemble commandsdatetime::locale::gaDateTime::Locale::ga 3pm 3 1402390641 A - - gz datetime::locale::dv_mvDateTime::Locale::dv_MV 3pm 3 1402390640 A - - gz xsupportslocaleXSupportsLocale 3 3 1710950786 A - - gz determine locale support and configure locale modifierseuscale-describe-adjustment-types- 1 1 1484780705 A - - gz Describe policy adjustment types usable with scaling policiespwscore- 1 1 1337800804 A - - gz simple configurable tool for checking quality of a passwordx509_store_ctx_set_ex_dataX509_STORE_CTX_set_ex_data 3ssl 3 1721417624 B - - gz add application specific data to X509_STORE_CTX structurespreconv- 1 1 1402345033 A - - gz convert encoding of input files to something GNU troff understandsmvwaddchstr- 3x 3 1720626759 B - - gz add a string of characters (and attributes) to a curses windoweulb-modify-lb-attributes- 1 1 1484780705 A - - gz Modify a load balancer's attributesagetty- 8 8 1612283497 A - - gz alternative Linux gettyxcb_xfixes_show_cursor_checked- 3 3 1540917640 B - - gz git-submodule- 1 1 1722330781 A - - gz Initialize, update or inspect submodulesisfinite 3- 3 3 1402354209 A - - gz floating-point classification macrosxcb_xvmc_create_surface_priv_data_end- 3 3 1540917640 B - - gz un.h- 0p 0p 1402354203 B - - gz definitions for UNIX domain socketsledctl- 8 8 1585710204 A - - gz Intel(R) LED control application for a storage enclosures.set_field_term- 3x 3 1720626759 B - - gz set hooks for automatic invocation by applicationspam_start- 3 3 1585713595 A - - gz initialization of PAM transactionsocat- 1 1 1501822632 A - - gz Multipurpose relay (SOcket CAT)dh_set_default_methodDH_set_default_method 3ssl 3 1721417624 B - - gz select DH methodtimerfd_create- 2 2 1402354206 A - - gz timers that notify via file descriptorsxcb_xkb_get_compat_map_si_rtrn- 3 3 1540917640 B - - gz unlockpt 3p- 3p 3p 1402354219 A - - gz unlock a pseudo-terminal master/slave pairperlreapi- 1 1 1698237667 A - - gz perl regular expression plugin interfacexcb_xv_get_port_attribute_unchecked- 3 3 1540917640 B - - gz znew- 1 1 1652367512 A - - gz recompress .Z files to .gz filesxcb_input_list_input_devices_names_iterator- 3 3 1540917640 B - - gz math::bigfloatMath::BigFloat 3pm 3 1698237675 A - - gz Arbitrary size floating point math packagedatetime::locale::gez_etDateTime::Locale::gez_ET 3pm 3 1402390640 A - - gz math::complexMath::Complex 3pm 3 1698237675 A - - gz complex numbers and associated mathematical functionsxcmscielabXcmsCIELab 3 3 1710950786 B - - gz Xcms color structurexcb_xf86dri_get_client_driver_name_client_driver_name- 3 3 1540917640 B - - gz posix_trace_attr_setstreamsize- 3p 3p 1402354217 B - - gz retrieve and set trace stream size attributes (TRACING)ynf- 3 3 1402354213 B - - gz Bessel functions of the second kindx509_name_entry_create_by_txtX509_NAME_ENTRY_create_by_txt 3ssl 3 1721417624 B - - gz X509_NAME_ENTRY utility functionsappconfig::stateAppConfig::State 3pm 3 1402380594 A - - gz application configuration statefesetround fesetround 3 fesetround 3pxcb_render_composite_glyphs_8- 3 3 1540917640 A - - gz feature_test_macros- 7 7 1402354219 A - - gz feature test macrospcrematching- 3 3 1501643278 A - - gz Perl-compatible regular expressionsevp_sha1EVP_sha1 3ssl 3 1721417624 B - - gz EVP digest routinesxcb_xkb_get_named_indicator_unchecked- 3 3 1540917640 B - - gz tc-cbq-details- 8 8 1601484048 A - - gz Class Based Queueingtcl_evalobjexTcl_EvalObjEx 3 3 1448008821 B - - gz execute Tcl scriptsxcb_input_get_device_motion_events_unchecked- 3 3 1540917640 B - - gz datetime::locale::ts_zaDateTime::Locale::ts_ZA 3pm 3 1402390640 A - - gz derwin- 3x 3 1720626759 B - - gz create curses windowsxdrawstringXDrawString 3 3 1710950786 A - - gz draw text charactershosts_access hosts_access 3 hosts_access 5cfsetspeed- 3 3 1402354207 B - - gz get and set terminal attributes, line control, get and set baud ratebn_mont_ctx_initBN_MONT_CTX_init 3ssl 3 1721417624 B - - gz Montgomery multiplicationgrub2-rpm-sort- 8 8 1722985065 A - - gz Sort input according to RPM version compare.xcb_xf86dri_get_drawable_info_reply- 3 3 1540917640 B - - gz xcb_randr_set_provider_output_source- 3 3 1540917640 A - - gz xcb_dri2_get_buffers_with_format_buffers- 3 3 1540917640 B - - gz xcb_render_create_cursor_checked- 3 3 1540917640 B - - gz xcmsrgbiXcmsRGBi 3 3 1710950786 B - - gz Xcms color structurexautorepeatoffXAutoRepeatOff 3 3 1710950785 B - t gz manipulate keyboard settings and keyboard control structurepod::perldoc::totkPod::Perldoc::ToTk 3pm 3 1402388268 A - - gz let Perldoc use Tk::Pod to render Poderr_get_errorERR_get_error 3ssl 3 1721417624 A - - gz obtain error code and datafield_pad- 3x 3 1720626759 B - - gz color and attribute control for form fieldsxcb_create_colormap- 3 3 1540917640 A - - gz xcb_xkb_list_components_geometries_iterator- 3 3 1540917640 B - - gz xcb_allow_events- 3 3 1540917640 A - - gz release queued events#%$ 2"%$:~ssl_#MO~dh_s%BEO~time8%BU~xcb_%Q~syncH#8/~luac#'PY~strt# 4~tcl_#U{~evp_c# Jy~xcb_#JH~pem_#B~xcb_H##0V~ripe#6!-~xcb_Ó#~extu#Wkݖ~packi#M~date#0~asn1#M~Ac~sys/e# !w~kmod#A~keyc֕#<&[~seed%# [~euca#<i~euca#N}~feclH#I=~posi#QH~fmax# ZWt ~rewis# 1E~qifl#0 ~noti# 0DG~unlo% Ge~perlz#D~cfgeƙ#1~use_# 1p~perlB#< :4~has_# ;$S~uucp˚#2K~avc_# C r~euarN#4O5~xcha# T6~xcb_#/jC~host=# =~loca#k~iswc #  ~kilo.#Gc~git-R#N+f~posi#V{~date%#3`ub~tcl_p# S7Y~moduΞ#Sl~win_:# bC~perl% C<~xcb_$$perl>g 42$ ~tcl_?$Q0~vtim$-~wins$ Fnr~xcb_#$"=ʒ~rdat`$7setu$~date$Prsa_{gVwdctF_8xfre_`tcl_ cnamep6~hier$Ctc-f JDq~xcb_J$& ~lnew$ 3xkbgΡvxdr_Y Lgets ngetآ C'~bn_c$ E~drac$Hpthrq͉|~tcl_x$P~date$0xcb_j-setn 7e~tc-s$ /݈~use_V$ 1~xcb_$,animOgit-SJ~bio_$E ~getuԟ# }:~sets;$5Qe~grubw$B[~xcms$J~tcl_&$ E$i~retuv$ Rdump;l Gsyst[^vz~brct$9~syst$04~svce]$FisalYpcrew>`~sha5$ =wattҨ R+~keyc$)tiffJfd_sh~sys_;$ ;W$~secu$@fielߪ 5kbdrHld-lo ausy R8~xcb_$(y~libi $ 4ܣ~ttk:H$ 4s~perl$8w~read$ ~stap$4(~mdc2'$ 9IG~flook$K~cons$ WH~cryp $7abrtb 0quot8mysqܮ BU:~ssl__$QQ~xcb_$B~tcl_$J, ~xcb_Z$I~syst$6ϹE~htol$X~pem_5$A ~xcb_$ (3z,~bn_a$ U~euar8$!EHnV~pem_$?~dce$<(~wins3$ Jf~yum-$ S~pwsc%V~x509^%qei ~prec%]4~mvwaO% Z~eulb%>Z~aget %2<~xcb_F%Y=~errsӐ#0~git-%C$~isfi% ?q~xcb_%&1~un.h\%@~ledc%UK6~set_%Ni~pam_Z% <_<~xmbuh#O~soca%:/~sudo # 3^~pam_"#E~xcb_#~xcb_c%$0~znew%;~xcb_%,_~math)%T0~date%4w~math%^*~xcmsE% 8 ~xcb_%6_%%l%evp_k%Qtcl_>B8ynfL%>xcb_.x509%[Niappc%Kgfesec% axcb_%xfeat%.proc}1resi3date`3cpan$Wpcre% >evp_P% 8xtseECzxcb_%&<tc-c%/h9tcl_%:)xcb_X%-{date%3)Kderw%1xdra#% 9 I%hosth% {cfse% _ؘ8bn_m%FzgrubU%G\xcb_%$rxcb_%%D5xcb_*%)xcb_n%!hwxcms% 6hoxaut %c/pod:r %S?err_ %D@fiel*!% Gxcb_{!%<=xcb_!%,Jxcb_!%0termP%R׫xcb_`P%8fmtmP% 7=timeP%'gތexprQ%1Fscp@Q%Aui_aQ%BunicQ%gr3xcb_[R%X>wc 1R%M+acosR% @2putc"S% ;;TsystgS%QCϬxcb_S%+LxtmoT% =xcb_\T%' sslvT%vfabs(U%ytcl_@U%SyasseU% 5 WrcsmU% .a(addgV% 9PabrtaV% @`fielV%6 xcb_V%%Htcge(W% Lg}DwritW% C&aio_W% ,$xtapX%B1cpanWX%^latit_? Hec_kX%pxcb_[u-<1xcb_LY%~(xcb_Y%'pbootY% S5Zcolc%Z%Axcb_v0exec%w *ktcl_mZ%H=0idnaZ%'DEfiltZ% :]mvwpB[% DAdbus[% 4xcb_.y$Lauto[% =jxcb_\%!zseucaW\%Afmin\%Zm5if_f ]%Brdma  4uYvpri`]% 6xcb_~casigz[Ixcb_]%=T net:]% NŜ@bash*^%/\hosta^% >pWbn_b^%QVxque_%Abio_ѦCnetl| )stdb}dld.sz}0[xcb_^_%!Gmail_%94attr`%Wperl 7xcb_[~ new_~ ;xcb_~1_Exik`% 0datel0bn_bNmranT`ttk:`%Ascheë4xcb_*tcl_`% 9cpanPtAExcb_9a%,{xtvaa%@Jindea%5pomdb%EfcfoE:3%xcb__%unge%Bfsad^b%Lteam <-Ixcb_b%Lxcb_b%%V8,sysi&c%Kdes_yc%A^infoc%dhpac%F%[evp_:d%Btshm_d% fxcb_d%+pxkbad%Xhdes 0$~}cpu_\e% Excb_e%at:e% Kforme% K/8dbus:f% Dbn_sf%?Īnextf% =ZCpthr"g%4genheg%hф xcb_g%*xkboXinet@x509 XwRmmap h%DiYfstakh%C,xcb_h%A,pem_h%>zrese8i%;Lperli% =-2mdadi% S}_tif.j% 0Sec_phj% nEtformj% CGr(xcb_0k%+bbuilvk% >.:posi%Tterm::readkeyTerm::ReadKey 3pm 3 1402385371 A - - gz A perl module for simple terminal controlxcb_glx_create_pbuffer_checked- 3 3 1540917640 B - - gz fmtmsg.h- 0p 0p 1402354203 A - t gz message display structurestime.h- 0p 0p 1402354203 A - - gz time typesexpr n- n n 1448008823 A - - gz Evaluate an expressionscp- 1 1 1707907012 A - - gz secure copy (remote file copy program)ui_add_input_stringUI_add_input_string 3ssl 3 1721417624 B - - gz New User Interfaceunicode::collate::localeUnicode::Collate::Locale 3pm 3 1698237678 A - - gz Linguistic tailoring for DUCET via Unicode::Collatexcb_change_hosts- 3 3 1540917640 A - - gz wc 1- 1 1 1605565487 A - - gz print newline, word, and byte counts for each fileacosh 3p- 3p 3p 1402354214 A - - gz inverse hyperbolic cosine functionsputchar 3- 3 3 1402354211 B - - gz output of characters and stringssystemd-system.conf- 5 5 1711457788 A - - gz System and session service manager configuration filesxcb_selinux_get_window_context_context_end- 3 3 1540917640 B - - gz xtmovewidgetXtMoveWidget 3 3 1501646833 B - - gz move and resize widgetsxcb_xkb_list_components_symbols_length- 3 3 1540917640 B - - gz sslv3_client_methodSSLv3_client_method 3ssl 3 1721417624 B - - gz create a new SSL_CTX object as framework for TLS/SSL enabled functionsfabsl fabsl 3 fabsl 3ptcl_unicharatindexTcl_UniCharAtIndex 3 3 1448008823 B - - gz routines for manipulating UTF-8 stringsassert.h- 0p 0p 1402354203 A - - gz verify program assertionrcsmerge- 1 1 1585714623 A - - gz merge RCS revisionsaddgnupghome- 8 8 1531487121 A - - gz Create .gnupg home directoriesabrt-dbus- 8 8 1601569733 A - - gz dbus server for querying problem datafields- 3pm 3 1698237678 A - - gz compile-time class fieldsxcb_xfixes_get_cursor_name_unchecked- 3 3 1540917640 B - - gz tcgetattr 3p- 3p 3p 1402354218 A - - gz get the parameters associated with the terminalwritev 2- 2 2 1402354206 B - - gz read or write data into multiple buffersaio_read 3- 3 3 1402354207 A - - gz asynchronous readxtappgetexitflagXtAppGetExitFlag 3 3 1501646833 B - - gz thread support functionscpan::meta::converterCPAN::Meta::Converter 3pm 3 1402391978 A - - gz Convert CPAN distribution metadata structuresec_key_set_groupEC_KEY_set_group 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_KEY objects.xcb_randr_get_screen_resources- 3 3 1540917640 A - - gz xcb_selinux_get_property_context_reply- 3 3 1540917640 B - - gz bootparam- 7 7 1402354219 A - - gz introduction to boot time parameters of the Linux kernelcolcrt- 1 1 1612283497 A - - gz filter nroff output for CRT previewingtcl_getstringTcl_GetString 3 3 1448008822 B - - gz manipulate Tcl objects as stringsidna_to_ascii_lz- 3 3 1448125246 A - - gz API functionfilter::execFilter::exec 3pm 3 1402353952 A - - gz exec source filtermvwprintw- 3x 3 1720626759 B - - gz print formatted output in curses windowsdbus-uuidgen- 1 1 1601481284 A - - gz Utility to generate UUIDsauto_qualify- n n 1448008823 B - - gz standard library of Tcl proceduresxcb_xv_query_best_size_unchecked- 3 3 1540917640 B - - gz euca-delete-tags- 1 1 1484780705 A - - gz Delete tags from one or more resourcesfmin 3p- 3p 3p 1402354215 A - - gz determine minimum numeric value of two floating-point numbersif_freenameindex 3- 3 3 1402354210 B - - gz get network interface names and indexesvprintf 3- 3 3 1402354213 B - - gz formatted output conversionxcb_sync_trigger_fence- 3 3 1540917640 A - - gz net::timeNet::Time 3pm 3 1698237676 A - - gz time and daytime network client interfacebashbug- 1 1 1638560014 A - - gz report a bug in bashhosts.deny- 5 5 1533764322 B - - gz format of host access control filesbn_blinding_updateBN_BLINDING_update 3ssl 3 1721417624 B - - gz blinding related BIGNUM functions.xquerybestsizeXQueryBestSize 3 3 1710950786 A - - gz determine efficient sizesxcb_dpms_get_version- 3 3 1540917640 A - - gz mail 1- 1 1 1533764336 B - - gz send and receive Internet mailxcb_xkb_set_map- 3 3 1540917640 A - - gz attribute::handlersAttribute::Handlers 3pm 3 1698237671 A - - gz Simpler definition of attribute handlers_Exit 3p- 3p 3p 1402354213 B - - gz terminate a processttk::combobox- n n 1448008912 A - - gz text field with popdown selection listtcl_evalfileTcl_EvalFile 3 3 1448008821 B - - gz execute Tcl scriptsxcb_x_print_print_put_document_data_checked- 3 3 1540917640 B - - gz xtvagetsubresourcesXtVaGetSubresources 3 3 1501646833 B - - gz obtain subresourcesindex 3- 3 3 1402354212 A - - gz locate character in stringpomdump- 1 1 1402385888 A - - gz dump the POM parse tree for a POD documentfsadm- 8 8 1619616701 A - - gz utility to resize or check filesystem on a devicexcb_lookup_color_unchecked- 3 3 1540917640 B - - gz xcb_dri3_buffers_from_pixmap_strides- 3 3 1540917640 B - - gz sysinfo- 2 2 1402354206 A - - gz returns information on overall system statisticsdes_ede2_cfb64_encryptDES_ede2_cfb64_encrypt 3ssl 3 1721417624 B - - gz DES encryptioninfo info n info 1 info 5dhparam- 1ssl 1 1699892200 A - - gz DH parameter manipulation and generationevp_digestfinal_exEVP_DigestFinal_ex 3ssl 3 1721417624 B - - gz EVP digest routinesshm_open shm_open 3 shm_open 3pxcb_xfixes_set_window_shape_region_checked- 3 3 1540917640 B - - gz xkbaddgeomkeyXkbAddGeomKey 3 3 1710950785 A - - gz Add one key at the end of an existing row of keyscpu_count_sCPU_COUNT_S 3 3 1402354206 B - - gz macros for manipulating CPU setsxcb_get_image- 3 3 1540917640 A - - gz at at 1p at 1form_post- 3x 3 1720626759 A - - gz write or erase forms from associated subwindowsdbus-monitor- 1 1 1601481284 A - - gz debug probe to print message bus messagesbn_sqr_normal- 3ssl 3 1721417624 B - - gz BIGNUM library internal functionsnextafterl 3- 3 3 1402354211 B - - gz floating-point number manipulationpthread_kill 3- 3 3 1402354211 A - - gz send a signal to a threadgenhomedircon- 8 8 1585713889 A - - gz generate SELinux file context configuration entries for user home directoriesxcb_input_get_device_button_mapping_pad_1- 3 3 1540917640 B - - gz mmap 2- 2 2 1402354205 A - - gz map or unmap files or devices into memoryfstab- 5 5 1612283497 A - - gz static information about the filesystemsxcb_glx_get_integerv- 3 3 1540917640 A - - gz pem_read_bio_x509_reqPEM_read_bio_X509_REQ 3ssl 3 1721417624 B - - gz PEM routinesreset_shell_mode_sp- 3x 3 1720626759 B - - gz curses screen-pointer extensionperlopentut- 1 1 1698237667 A - - gz tutorial on opening things in Perlmdadm.conf- 5 5 1645636188 A - - gz configuration for management of Software RAID with mdadm_tifffree_TIFFfree 3tiff 3 1729525165 C TIFFmemory - gz ec_point_dupEC_POINT_dup 3ssl 3 1721417624 B - - gz Functions for creating, destroying and manipulating EC_POINT objects.form_data- 3x 3 1720626759 A - - gz test for off-screen data in given formsxcb_glx_get_minmax_parameteriv_data_length- 3 3 1540917640 B - - gz builtins- 1 1 1637771605 A - - gz bash built-in commands, see bash(1)evp_pkey_assign_ec_keyEVP_PKEY_assign_EC_KEY 3ssl 3 1721417624 B - - gz EVP_PKEY assignment functions.de/CACHEDIR.TAG000064400000000276147207411410006641 0ustar00Signature: 8a477f597d28d172789f06886806bc55 # This file is a cache directory tag created by man-db. # For information about cache directory tags, see: # http://www.brynosaurus.com/cachedir/ de/index.db000064400000050000147207411410006546 0ustar00ϚW P 'HLzps2p0 x}HQman0Ob[dpkg0XHmanpD1isuzgroua1 4֯Ruser1Seclogi1 UAdpkgY2 3n\chgp2 ISacce2 `4UfatlQ3 =sU$ver3 zwhat3P~?Ozsoe3F=WuserL4ovshad4 Cgrpc4T'bggets95 <|pdf2b5DjDoplip5 IIcm&chpa6 BdprinL6 i? gpas6Asdgrou7 Ppdpkg`7 J@apwun7 Tzigrpu8 T (dpkgn8 Jo lexg8S .ps2p9=zq5ps2pb9 x?newg93 BL%fsckT> >] grout>9m-%slat> ]Ivigr@?jethe?JI grou@ .9Ocatm7@RCr$mti@ 2user@7: grpc@I}2Nifco1A =2gsndwAXWVmancAFogsha"B4xc chag^BF3arpB6V 3grouB S~manpAC ?dpkgC IY@4}HQman0LHmanpP0Bxxdm0Nisuzgrou0 /֯Ruser0LeclogiK1 Gn\chgp1 VSacce1 fsU$verl2 iqHNnewu> AZkeaddu ?iqvipw}?pт shad@ 5man- 1 1 1540931193 A - t gz un'interfaccia ai manuali di riferimento in lineamanpath manpath 1 manpath 5xxd- 1 1 1720542352 A - - gz Produce esadecimale da un file binario o viceversa.groupadd- 8 8 1565319052 A - - gz crea un nuovo gruppouserdel- 8 8 1565319052 A - - gz rimuove l'account di un utente ed i file relativilogin.defs- 5 5 1565319052 A - - gz configurazione del pacchetto password shadowchgpasswd- 8 8 1565319052 A - - gz aggiorna le password di gruppo in modalità non interattivaaccessdb- 8 8 1540931193 A - - gz mostra il contenuto di una base di dati man-db in un formato comprensibile.$version$2.4.1evim- 1 1 1720542353 A - - gz Vim "facile", Vim impostato in modo da poter essere usato facilmente per modificare file, anche da chi non abbia familiarità con i comandi.zsoelim- 1 1 1540931193 A - - gz soddisfa le richieste .so nell'input roffuseradd- 8 8 1565319054 A - - gz crea un nuovo utente o aggiorna le informazioni predefinite per i nuovi utentishadow shadow 3 shadow 5whatis- 1 1 1540931193 A - - gz mostra le descrizioni delle pagine di manualegrpconv- 8 8 1565319052 B - - gz convertono a e da password e gruppi shadow.rvim- 1 1 1722022359 B - - gz VI Migliorato, un editor di testi per programmatorigetspnam- 3 3 1565319052 C shadow - gz vim- 1 1 1722022359 A - - gz VI Migliorato, un editor di testi per programmatorivimtutor- 1 1 1720542353 A - - gz Un breve corso per imparare Vimgpasswd- 1 1 1565319052 A - - gz administer /etc/group and /etc/gshadowchpasswd- 8 8 1565319052 A - - gz aggiorna le password in modo non interattivogroupmod- 8 8 1565319052 A - - gz modifica la definizione di un gruppo del sistemapwunconv- 8 8 1565319052 B - - gz convertono a e da password e gruppi shadow.grpunconv- 8 8 1565319052 B - - gz convertono a e da password e gruppi shadow.newgrp- 1 1 1565319052 A - - gz effettua l'accesso a un nuovo grupposhadow 3- 3 3 1565319052 A - - gz routine per file delle password cifratepwconv- 8 8 1565319052 A - - gz convertono a e da password e gruppi shadow.apropos- 1 1 1540931193 A - - gz ricerca nei nomi e nelle descrizioni delle pagine di manualelastlog- 8 8 1565319052 A - - gz riepiloga gli accessi più recenti di tutti gli utenti o dell'utente datovigr- 8 8 1565319052 B - - gz modifica i file delle password, dei gruppi, delle password shadow o dei gruppi shadowgroupdel- 8 8 1565319052 A - - gz rimuove un gruppocatman- 8 8 1540931193 A - - gz crea o aggiorna le pagine di manuale preformattate$mtime$1722063410usermod- 8 8 1565319052 A - - gz modifica l'account di un utentegrpck- 8 8 1565319052 A - - gz verifica l'integrità dei file dei gruppiex- 1 1 1722022359 B - - gz VI Migliorato, un editor di testi per programmatorirview- 1 1 1722022359 B - - gz VI Migliorato, un editor di testi per programmatorigshadow- 5 5 1565319052 A - - gz file shadow per i gruppichage- 1 1 1565319052 A - - gz cambia le informazioni sulla scadenza della passwordgroupmems- 8 8 1565319052 A - - gz membri amministratori del gruppo primario dell'utenteview- 1 1 1722022359 B - - gz VI Migliorato, un editor di testi per programmatorimanpath 1- 1 1 1540931193 A - - gz determina il percorso di ricerca delle pagine di manualesg- 1 1 1565319052 A - - gz esegue un comando con un diverso ID di gruppomandb- 8 8 1540931193 A - t gz crea o aggiorna le cache index delle pagine di manualemanpath 5- 5 5 1540931193 A - - gz formato del file /etc/man_db.confstart-stop-daemon- 8 8 1642076111 A - - gz avvia e ferma i programmi demone di sistemavimdiff- 1 1 1720542353 A - - gz modifica due, tre o quattro versioni di un file con Vim, visualizzando le differenzepwck- 8 8 1565319052 A - - gz verifica l'integrità dei file delle passwordnewusers- 8 8 1565319052 A - - gz aggiorna e crea nuovi utenti in bloccoadduser- 8 8 1565319054 B - - gz crea un nuovo utente o aggiorna le informazioni predefinite per i nuovi utentivipw- 8 8 1565319052 A - - gz modifica i file delle password, dei gruppi, delle password shadow o dei gruppi shadowshadow 5- 5 5 1565319052 A - - gz file delle password shadowsv/CACHEDIR.TAG000064400000000276147207411410006701 0ustar00Signature: 8a477f597d28d172789f06886806bc55 # This file is a cache directory tag created by man-db. # For information about cache directory tags, see: # http://www.brynosaurus.com/cachedir/ sv/index.db000064400000040000147207411410006605 0ustar00ϚW @ \7b[dpkg0Misuzgroue0 ,֯Ruser0JsU$ver0 vshad0;'bggets>1 e_=pam_g1.sdgrou1 A (dpkg1 A+i"dpkg42C?newg21:gdpkg2 :Wsssd3>Ulast_3X]sdpkg3 FIvigr4YI groun4 +Cr$mti4 : grpc4@Lcjwho46ogsha85+xc chagk5NV 3grou5 Rdpkg6 EY:;eapro:W]sdpkg: YIvigrD;`I grou; 69Ocatm;WCr$mtiF< 2userY<B: grpc<W Iiex=R2rvieU=RWVmanc=xc chag<>Z~manp> T[view>RY S] grout>Dm-%slat> LIvigr1?Pethe?KLg0nano@XI grou]@ .9Ocatm@VCr$mti? 2user@9: grpc2A\XunanoAT IiexAK}2Nifco=B <2rvieBKWVmancBPogsha+C@xc chagsCS3arpC<V 3grou D V[viewlDK~manpD XdpkgE OY> ,pthr2eZao#getfe /q'getge /9.optif5i!/feseVfIcf.sqrtf/<.memsf;hL&cuse%g't"fmafTg:TA%wcsngA$&opengR2.clon@h1+mq_txhANno#expmh.Db+ccish6/pute;i@}"tgami.l,#fcloi)c-mkosi 9 pthr*j (N"log1[j7"O#atolj9EĎ(cataj/%fini kF- readZk+F#conjk:2*inetkAa,casi[+I7sigh.)1hsea0C=(tcdril_!asinl,-\!pthrmO"ks(atangm/c$isxdm <T!scalm_)6rind50z+memcGn+9:-ftimzn/l#crypn7(5pthr6S2cbc_ .8getl 38;?creaDb_,statn*;copycHcK-sinho3& flooUoK|>memp 56pthrS=yv9clogf@m5fsta 5'argzo;&!cata:V&ftryB .P)sran}2 logbAw*expm.`t;sock15pape%  @׿;erano O-(strx30հ6envz  5Z scalkTDX)log1DZ7$regc0/O#asin=;J*adjtK&*mlocҲ1쳹%fwri 5#e'iperE;e4sinh 3t15fmod= <0)memp+,!atan/!!geto5?ƨ"wcpc*W]}&getc 87.endpɴ 2{&mq_u [g$jnf'=A/sendh =P(fnma59Y!cfse _Ya$fopeV0PJ1gets~  B"a64l;9e,llro̶C`_ opto5r (mranS [/tanh6$(exp17EX"caco2-.strnf.-clog@]+towl @]$tcge* _-__fw =-(fput۹;z[H$ilogI!,modfkcߡ!fcvtӺF?+aide ^r*name 7#4iswc  8̴?dayl  A mbstȻ P$fmod!<9dremU <erf );#fdop +Y5++fgetx*locaڽ =mh?strc! .!iswp J,y&wcsnsU*getpо?6-rexe <S4&creaZ<!rege0gQ(lcon [".sigge )[,ntohMp&seedO),fanoB 7v!fope 2.(tanh6bv,newf *@hr-fget0CU)bsd_z =P&strt G pthrC..inetk A!strt 4><"sinӿ(K(lldiP<)__frJ =du+ilogIC"dirf?f)mblelP8.cbrt(-catanhl- 3 3 1601485076 B - t gz complex arc tangents hyperbolicftrylockfile- 3 3 1601485076 B - t gz lock FILE for stdiosrandom- 3 3 1601485076 B - t gz random number generatorlogbf- 3 3 1601485076 B - t gz get exponent of a floating-point valueexpm1f- 3 3 1601485076 B - t gz exponential minus 1strxfrm- 3 3 1601485076 A - t gz string transformationscalbln- 3 3 1601485076 A - t gz multiply floating-point number by integral power of radixlog1pf- 3 3 1601485076 B - t gz logarithm of 1 plus argumentregcomp- 3 3 1601485076 B - t gz POSIX regex functionsasinhl- 3 3 1601485076 B - t gz inverse hyperbolic sine functionadjtime- 3 3 1601485076 A - t gz correct the time to synchronize the system clockmlock- 2 2 1601484910 A - - gz lock and unlock memoryfwrite- 3 3 1601485076 B - t gz binary stream input/outputiperf3- 1 1 1601484909 A - - gz perform network throughput testsmempcpy- 3 3 1601485076 A - t gz copy memory areaatan- 3 3 1601485076 A - t gz arc tangent functiongetopt- 3 3 1601485076 A - t gz Parse command-line optionswcpcpy- 3 3 1601485076 A - t gz copy a wide-character string, returning a pointer to its endgetcwd 3- 3 3 1601485076 A - t gz get current working directoryendpwent- 3 3 1601485076 B - t gz get password file entrymq_unlink mq_unlink 3 mq_unlink 2jnf- 3 3 1601485076 B - t gz Bessel functions of the first kindsendmmsg- 2 2 1601484910 A - - gz send multiple messages on a socketfnmatch- 3 3 1601485076 A - t gz match filename or pathnamecfsetospeed- 3 3 1601485076 B - t gz get and set terminal attributes, line control, get and set baud ratefopen- 3 3 1601485076 A - t gz stream open functionsa64l- 3 3 1601485076 A - t gz convert between long and base-64llround- 3 3 1601485076 B - t gz round to nearest integer, away from zerooptopt- 3 3 1601485076 B - t gz Parse command-line optionsmrand48_r- 3 3 1601485076 B - t gz generate uniformly distributed pseudo-random numbers reentrantlytanhf- 3 3 1601485076 B - t gz hyperbolic tangent functionexp10l- 3 3 1601485076 B - t gz base-10 exponential functioncacosl- 3 3 1601485076 B - t gz complex arc cosinestrncmp- 3 3 1601485076 B - t gz compare two stringsclog- 3 3 1601485076 A - t gz natural logarithm of a complex numbertowlower- 3 3 1601485076 A - t gz convert a wide character to lowercasetcgetattr- 3 3 1601485076 B - t gz get and set terminal attributes, line control, get and set baud rate__fwriting- 3 3 1601485076 B - t gz interfaces to stdio FILE structurefputs- 3 3 1601485076 B - t gz output of characters and stringsilogb- 3 3 1601485076 A - t gz get integer exponent of a floating-point valuemodf- 3 3 1601485076 A - t gz extract signed integral and fractional values from floating-point numberfcvt- 3 3 1601485076 B - t gz convert a floating-point number to a stringaide.conf- 5 5 1601484909 A - - gz The configuration file for Advanced Intrusion Detection Environmentnamespaces- 7 7 1601485076 A - t gz overview of Linux namespacesmbstowcs- 3 3 1601485076 A - t gz convert a multibyte string to a wide-character stringfmodl- 3 3 1601485076 B - t gz floating-point remainder functiongetcontext 3- 3 3 1601485076 A - t gz get or set the user contextstdio_ext- 3 3 1601485076 A - - gz interfaces to stdio FILE structurestrtoq- 3 3 1601485076 B - t gz convert a string to a long integerfminf- 3 3 1601485076 B - t gz determine minimum of two floating-point numbersfdopendir- 3 3 1601485076 B - t gz open a directoryfgetc- 3 3 1601485076 C gets t gz locale 5- 5 5 1601485076 A - - gz describes a locale definition fileiswpunct- 3 3 1601485076 A - t gz test for punctuation or symbolic wide characterwcsnlen- 3 3 1601485076 A - t gz determine the length of a fixed-size wide-character stringgetpt- 3 3 1601485076 A - t gz open the pseudoterminal master (PTM)rexec_af- 3 3 1601485076 B - t gz return stream to a remote commandcreall- 3 3 1601485076 B - t gz get real part of a complex numberregex- 3 3 1601485076 A - - gz POSIX regex functionssin- 3 3 1601485076 A - t gz sine functionO?K\yns wmem3LaEpthrA0Zsett0 .uback0A fsta4 *` moun1 MxF aio_1 <Yerfc(27y flood2KNn5 exp127ءcaco2-\0 wcsn&3Hbpfv3Nqfdim O.osigq4 ?4randf49L fpur4) hton@OMV\next5 =x cpowO51sU$ver5 +asin5;0Xmq_u5 1Ws argz6 ;getc]6Qfini6F remq698 crea7<̌ cfseQ7 _x|loca7 ?scal8 TiLfegea8IPJy1l8>logb8AktimeC9 AA caco9-!setc9 4POfork91Sq sran:9˻ usle\:Fpthr:>` endf: /? mall0;M nran;Osva_c;2S.cpow!<1PsranW< <3__cl< 1jva_a<2-gamm=<JsTremaR= <sigs= )v! argz= ;#oldl> *remqG>9+lran>O٩sigo> 7fsta? 5e>pthr^?;& setv?6Visna@FisblM@<xencr@2 strc@ 5g}pthr AV. cterzA8_jranAOv minoB1 nearHB 3Rdes_B 7kcoslB* aio_B -hEKlrin.C3  catahC/n locaCصccargC9Z gammC<¯?acosBD.>strsvD-9MfdimD.bclosD =Htowc$E 9֪expgE6ѶZ flocE ..ficonE B llri'F3getcaF_fanoF? run-F PRKstpn.GS9pflooGK erfcG78crypH7:indeTH5e mlocH J fcvtHFqsetbI6sem_AI +(pthrxIS" realI E<mkos3J 9=@ cronvJ #VsigfJ 7tfmalJ:)carg#K9asin0;pthraK;XisprL< frexK^streM @q8T getpL 2ǯsyslF1={fperfL8Ngetd]M!M getgM /iscnM<Phsea=N 0*f setswN <dstrtNH#acos`L.@LsigsM. -ׅsinhO3fabsPBBputwHP DIgammP<rEargzP;=Luargz#Q;HKscalcQ_HmkfiQBlclogR@eranYR [tmpnR==powO*5,wctyS8cacoAS8IvargzS ;pinetS$] rounSCmunlBTioptaiT5jGrecvT @D7g3caT<uala0UM"katanU/ membU D۞lockVMdisgr[V<MtgetlV 'KpthrV.ehost W 6:strtKWHbcmpW1(getpW 2TWfabs XBfenduSX 4ۻisleXT]dysiX>clog;Y@wbexp1Y7FmodfYcFFtcse(Z _b'strrZ5aisleZT'sigi+[ 7#strtn[=tsinc[?MCmbto[KrounCRprctJ2!Latan>Wargz ;!gnu_8p[scal\Ttan+4llro C{Qj1f3=fetet I?tstrt6 ;pthrYOisfiv ?@`ynl>rstrn <<hcreH0Z{__fl=H6pow12u5setl 6<llri=3;gy0x>^get_/crea<tanh@6copy| 02getd Nyfrea5B> ,pthr2eZao#getfe /q'getge /9.optif5i!/feseVfIcf.sqrtf/<.memsf;hL&cuse%g't"fmafTg:TA%wcsngA$&opengR2.clon@h1+mq_txhANno#expmh.Db+ccish6/pute;i@}"tgami.l,#fcloi)c-mkosi 9 pthr*j (N"log1[j7"O#atolj9EĎ(cataj/%fini kF- readZk+F#conjk:2*inetkA8.cbrt(-C=(tcdril_!asinl,-\!pthrmO"ks(atangm/c$isxdm <T!scalm_0z+memcGn+9:-ftimzn/l#crypn7b_,statn*cK-sinho3& flooUoK'argzo;&!cata:V&ftryB .P)sran}2 logbAw*expm.-(strx30Z scalkTDX)log1DZ7$regc0/O#asin=;J*adjtK&*mlocҲ1쳹%fwri 5#e'iperE;0)memp+,!atan/!!geto5?ƨ"wcpc*W]}&getc 87.endpɴ 2{&mq_u [g$jnf'=A/sendh =P(fnma59Y!cfse _Ya$fopeV0"a64l;9e,llro̶C`_ opto5r (mranS [/tanh6$(exp17EX"caco2-.strnf.-clog@]+towl @]$tcge* _-__fw =-(fput۹;z[H$ilogI!,modfkcߡ!fcvtӺF?+aide ^r*name 7 mbstȻ P$fmod!<<.getcc 6f$/stdi =C!*strt=-fmin1J;#fdop +Y5++fgetx*locaڽ =!iswp J,y&wcsnsU*getpо?6-rexe <S4&creaZ<!rege0gQ(lcon [".sigge )[,ntohMp&seedO),fanoB 7v!fope 2.(tanh6bv,newf *@hr-fget0CU)bsd_z =P&strt G pthrC..inetk Aa,casi[+!strt 4><"sinӿ(K(lldiP<)__frJ =du+ilogIC"dirf?f)mblelPqKI7sigh.)1hsea0)6rind5(5pthr6S2cbc_ .8getl 38;?creaD;copycH|>memp 56pthrS=yv9clogf@m5fsta 5`t;sock15pape%  @׿;erano Oհ6envz  5e4sinh 3t15fmod= <PJ1gets~  B#4iswc  8̴?dayl  A9dremU <erf )mh?strc! .W;openV DAk3casi0+v6exec20*H>atoic09)bc7expl06LX:nanl00A4mq_r1 k4dirn*14j:cabsf1=R57strn1(H=make1 249memm2+id;envzJ25NZ9wmem2@M6mkte2;X3sran3 [n3qfcvs3F21gnu_31\r1olds3*fege4 Ic2des_ 5 .w>cbrtA5-ǽ9terms5_&;conj5:23init6 2~_2dremV6<a;e=scal6Tb4clog6@::rawm87 6v9asinx7,i>next7 =N|%/8gett: .i7fsta:*U4char ; KN n0exec^;)f9j0;=z 4strv; 6b9gnu_<11pthrM<; :wcss<g`{&>y0f =>-=fputO=;X_;ceil=[>conf=Gb*â:iswlo> <P9getd> NS=mkst ? 9d=A9cmsgN?<L6scal?_DQ=capt@@43conjH@:D=getd@T ;pthr@-k1tolo$A@oV>sigvlA) >wcslAJq02asinA,x7cproB6pllog1/G7 6ffslmG7 0pthrG 3&>htonGM9inet=H AA1rintH36sqrtH/cprotJ6>:futiJ13lrouJC:casi4K6casinf- 3 3 1601485076 B - t gz complex arc sineexecve- 2 2 1601484910 A - - gz execute programatoi- 3 3 1601485076 A - t gz convert a string to an integerexpl- 3 3 1601485076 B - t gz base-e exponential functionnanl- 3 3 1601485076 B - t gz return 'Not a Number'mq_receive mq_receive 3dirname- 3 3 1601485076 B - t gz parse pathname componentscabsl- 3 3 1601485076 B - t gz absolute value of a complex numberstrncpy- 3 3 1601485076 B - t gz copy a stringmakecontext- 3 3 1601485076 A - t gz manipulate user contextmemmove- 3 3 1601485076 A - t gz copy memory areaenvz- 3 3 1601485076 B - t gz environment string supportwmemcmp- 3 3 1601485076 A - t gz compare two arrays of wide-charactersmktemp- 3 3 1601485076 A - t gz make a unique temporary filenamesrand48_r- 3 3 1601485076 B - t gz generate uniformly distributed pseudo-random numbers reentrantlyqfcvt- 3 3 1601485076 B - t gz convert a floating-point number to a stringgnu_dev_major- 3 3 1601485076 B - t gz manage a device numberoldstat- 2 2 1601484910 B - t gz get file statusproc- 5 5 1601485076 A - - gz process information pseudo-file systemj1l- 3 3 1601485076 B - t gz Bessel functions of the first kindfegetenv- 3 3 1601485076 B - t gz floating-point rounding and exception handlingdes_crypt- 3 3 1601485076 A - t gz fast DES encryptioncbrt- 3 3 1601485076 A - t gz cube root functiontermios- 3 3 1601485076 A - t gz get and set terminal attributes, line control, get and set baud rateconjf- 3 3 1601485076 B - t gz calculate the complex conjugateinitstate- 3 3 1601485076 B - t gz random number generatordrem- 3 3 1601485076 B - t gz floating-point remainder functionscalbn- 3 3 1601485076 B - t gz multiply floating-point number by integral power of radixclogf- 3 3 1601485076 B - t gz natural logarithm of a complex numberrawmemchr- 3 3 1601485076 B - t gz scan memory for a characterasinf- 3 3 1601485076 B - t gz arc sine functionnexttowardl- 3 3 1601485076 B - t gz floating-point number manipulationgetopt_long- 3 3 1601485076 B - t gz Parse command-line optionssetfsent- 3 3 1601485076 B - t gz handle fstab entrieslibpng- 3 3 1601484909 A - - gz Portable Network Graphics (PNG) Reference Library 1.5.13opendir- 3 3 1601485076 A - t gz open a directorymodff- 3 3 1601485076 B - t gz extract signed integral and fractional values from floating-point numberpthread_setcancelstate- 3 3 1601485076 A - t gz set cancelability state and typememcpy- 3 3 1601485076 A - t gz copy memory areasecure_getenv- 3 3 1601485076 B - t gz get an environment variabledaemon- 3 3 1601485076 A - t gz run in the backgroundjnl- 3 3 1601485076 B - t gz Bessel functions of the first kindgetttynam- 3 3 1601485076 B - t gz get ttys file entryfstat- 2 2 1601484910 B - t gz get file statuscharsets- 7 7 1601485076 A - - gz character set standards and internationalizationexecl- 3 3 1601485076 B - t gz execute a filej0- 3 3 1601485076 A - t gz Bessel functions of the first kindstrverscmp- 3 3 1601485076 A - t gz compare two version stringsgnu_dev_minor- 3 3 1601485076 B - t gz manage a device numberpthread_setaffinity_np- 3 3 1601485076 A - t gz set/get CPU affinity of a threadwcsspn- 3 3 1601485076 A - t gz advance in a wide-character string, skipping any of a set of wide charactersy0f- 3 3 1601485076 B - t gz Bessel functions of the second kindfputc- 3 3 1601485076 B - t gz output of characters and stringsceill- 3 3 1601485076 B - t gz ceiling function: smallest integral value not less than argumentconfstr- 3 3 1601485076 A - t gz get configuration dependent string variablespowl- 3 3 1601485076 B - t gz power functionsiswlower- 3 3 1601485076 A - t gz test for lowercase wide charactergetdate_r- 3 3 1601485076 B - t gz convert a date-plus-time string to broken-down timemkstemps- 3 3 1601485076 B - t gz create a unique temporary filecmsg_firsthdrCMSG_FIRSTHDR 3 3 1601485076 B - - gz access ancillary datascalbl- 3 3 1601485076 B - t gz multiply floating-point number by integral power of radix (OBSOLETE)captest- 8 8 1601484909 A - - gz a program to demonstrate capabilitiesconj- 3 3 1601485076 A - t gz calculate the complex conjugategetdirentries- 3 3 1601485076 A - t gz get directory entries in a file system-independent formatpthread_equal- 3 3 1601485076 A - t gz compare thread IDstolower- 3 3 1601485076 B - t gz convert letter to upper or lower casesigvec- 3 3 1601485076 A - t gz BSD signal APIwcslen- 3 3 1601485076 A - t gz determine the length of a wide-character stringasin- 3 3 1601485076 A - t gz arc sine functioncproj- 3 3 1601485076 A - t gz project into Riemann Spheremtrace- 3 3 1601485076 A - t gz malloc tracingroundl- 3 3 1601485076 B - t gz round to nearest integer, away from zeroremainderf- 3 3 1601485076 B - t gz floating-point remainder functionfeof- 3 3 1601485076 B - t gz check and reset stream statuscatgets- 3 3 1601485076 A - t gz get message from a message cataloginet_lnaof- 3 3 1601485076 B - t gz Internet address manipulation routineslroundl- 3 3 1601485076 B - t gz round to nearest integer, away from zeromq_timedreceive mq_timedreceive 3 mq_timedreceive 2getgrouplist- 3 3 1601485076 A - t gz get list of groups to which a user belongsatol- 3 3 1601485076 B - t gz convert a string to an integeriswprint- 3 3 1601485076 A - t gz test for printing wide characterferror- 3 3 1601485076 A - t gz check and reset stream statusiswalpha- 3 3 1601485076 A - t gz test for alphabetic wide charactersigignore- 3 3 1601485076 B - t gz System V signal APIiconv 3- 3 3 1601485076 A - t gz perform character set conversionexecv- 3 3 1601485076 B - t gz execute a fileexpm1l- 3 3 1601485076 B - t gz exponential minus 1charmap- 5 5 1601485076 A - - gz character set description fileptsname_r- 3 3 1601485076 B - t gz get the name of the slave pseudoterminallog1pl- 3 3 1601485076 B - t gz logarithm of 1 plus argumentffsll- 3 3 1601485076 B - t gz find first bit set in a wordpthread_exit- 3 3 1601485076 A - t gz terminate calling threadhtonl- 3 3 1601485076 B - t gz convert values between host and network byte orderinet_aton- 3 3 1601485076 B - t gz Internet address manipulation routinesrintl- 3 3 1601485076 B - t gz round to nearest integersqrtf- 3 3 1601485076 B - t gz square root functionfmodf- 3 3 1601485076 B - t gz floating-point remainder functionuser_namespaces- 7 7 1601485076 A - - gz overview of Linux user namespacesexecle- 3 3 1601485076 B - t gz execute a filehdestroy- 3 3 1601485076 B - t gz hash table managementiswxdigit- 3 3 1601485076 A - t gz test for hexadecimal digit wide charactergetfsspec- 3 3 1601485076 B - t gz handle fstab entriescprojf- 3 3 1601485076 B - t gz project into Riemann Spherefutimes- 3 3 1601485076 A - t gz change file timestampslround- 3 3 1601485076 A - t gz round to nearest integer, away from zerocasinh- 3 3 1601485076 A - t gz complex arc sine hyperbolicmq_setattr- 3 3 1601485076 B - t gz get/set message queue attributeswmemset- 3 3 1601485076 A - t gz fill an array of wide-characters with a constant wide charactersetstate- 3 3 1601485076 B - t gz random number generatorpng- 5 5 1601484909 A - - gz Portable Network Graphics (PNG) formatswapcontext- 3 3 1601485076 B - t gz manipulate user contextcalloc- 3 3 1601485076 B - t gz allocate and free dynamic memorypapersize- 5 5 1601484909 A - - gz specify preferred paper sizesem_destroy- 3 3 1601485076 A - t gz destroy an unnamed semaphoredes_setparity- 3 3 1601485076 B - t gz fast DES encryption__fpending- 3 3 1601485076 B - t gz interfaces to stdio FILE structureargz_replace- 3 3 1601485076 B - t gz functions to handle an argz listgetenv- 3 3 1601485076 A - t gz get an environment variabletrunc- 3 3 1601485076 A - t gz round to integer, toward zeroassert- 3 3 1601485076 A - t gz abort the program if assertion is falsegetgrnam- 3 3 1601485076 A - t gz get group file entrycmsg_spaceCMSG_SPACE 3 3 1601485076 B - - gz access ancillary dataflock- 2 2 1601484910 A - - gz apply or remove an advisory lock on an open filelocaledef- 1 1 1601484909 A - - gz compile locale definition filestanf- 3 3 1601485076 B - t gz tangent functionbzero- 3 3 1601485076 A - t gz write zero-valued bytesfegetround- 3 3 1601485076 B - t gz floating-point rounding and exception handlingmq_timedsend mq_timedsend 3 mq_timedsend 2fdopen- 3 3 1601485076 B - t gz stream open functionsstrspn- 3 3 1601485076 A - t gz search a string for a set of bytesvsyslog- 3 3 1601485076 B - t gz send messages to the system loggertcgetsid- 3 3 1601485076 A - t gz get session IDpthread_attr_getstacksize- 3 3 1601485076 B - t gz set/get stack size attribute in thread attributes objectassert_perror- 3 3 1601485076 A - t gz test errnum and abortstrfry- 3 3 1601485076 A - t gz randomize a stringmcstransd- 8 8 1601485076 A - - gz MCS (Multiple Category System) daemon. Translates SELinux MCS/MLS labels to human readable form.isatty- 3 3 1601485076 A - t gz test whether a file descriptor refers to a terminalpthread_attr_getschedpolicy- 3 3 1601485076 B - t gz set/get scheduling policy attribute in thread attributes objectwcscasecmp- 3 3 1601485076 A - t gz compare two wide-character strings, ignoring caseconfig.guess- 1 1 1601484909 A - - gz guess the build system triplettdelete- 3 3 1601485076 B - t gz manage a binary treeseekdir- 3 3 1601485076 A - t gz set the position of the next readdir() call in the directory stream.cprojl- 3 3 1601485076 B - t gz project into Riemann Spherepthread_attr_setinheritsched- 3 3 1601485076 A - t gz set/get inherit-scheduler attribute in thread attributes objectexp2f- 3 3 1601485076 B - t gz base-2 exponential functionsrand48- 3 3 1601485076 B - t gz generate uniformly distributed pseudo-random numberstowupper- 3 3 1601485076 A - t gz convert a wide character to uppercasedrand48_r- 3 3 1601485076 A - t gz generate uniformly distributed pseudo-random numbers reentrantlyputchar- 3 3 1601485076 B - t gz output of characters and stringssockatmark- 3 3 1601485076 A - t gz determine whether socket is at out-of-band markendttyent- 3 3 1601485076 B - t gz get ttys file entrycabsf- 3 3 1601485076 B - t gz absolute value of a complex number/fencrp 2[ltimeccoshr5%vsigq vfrex^b3asige s 7¯_pacos.gfeseC IdcpthrNsEU|funl .9vcfreю0xN2`pthrs>dre_es.~,ngett,t .לdenvzdt 5ZOleacctHbrexet<T~Ghsigs4u 7aktfinuu/E{yocimauA5ecwcssHepthrO :~iswc :watoq/9gmq_c ;čGbisgrڀ Tg{(iisno8 ?;XlqgcvFpwcstmBh^pwcsn WR{gets:rtellXF`8otcfĺ_'"disin3F)`clon1lcato7cj0f=vmmemf7=fabsBsnext =hstrf| /w(wmq_g6 ; sisws| =Gztmpf2UkfmaxJp/rcloc@XymlocP1V|mq_s <gferfl)eydranO)mstrt2 6Kbmemcq/K@hgetp 2T/-{hdes% 0.w|mkdt`>~pstrpDyofrex^ CopthrHY?Unwcsc7^Qmwcsc]M tif_nO>O7ymq_oPtsgetcm qlrin3tputw;xscpow 1Qr`sem_Z 7jcosh5Yyjnranن [dputc>;O=dffma~:kltoup@SpsigaC 78gstat 5浌{tznaAfisalC<xhmemc6ChgetfĈ /mpthr^$ffldexvPCClback͉Axlaloca  :/`stpccG}_kgetwC6Mntime;tɞdfmax<Jflran [fAamajo11`remq'90Uwremo5t}atan>m@}strsM4pstrp Y Ocgetph))n__fs=wcsstr- 3 3 1601485076 A - t gz locate a substring in a wide-character stringpthread_self- 3 3 1601485076 A - t gz obtain ID of the calling threadmq_close- 3 3 1601485076 A - t gz close a message queue descriptorisgreater- 3 3 1601485076 A - t gz floating-point relational tests without exception for NaNisnormal- 3 3 1601485076 B - t gz floating-point classification macrosqgcvt- 3 3 1601485076 B - t gz convert a floating-point number to a stringtcflush- 3 3 1601485076 B - t gz get and set terminal attributes, line control, get and set baud rateisinfl- 3 3 1601485076 B - t gz BSD floating-point classification functionsclone- 2 2 1601484910 A - - gz create a child processcatopen- 3 3 1601485076 A - t gz open/close a message catalogj0f- 3 3 1601485076 B - t gz Bessel functions of the first kindmemfrob- 3 3 1601485076 A - t gz frobnicate (encrypt) a memory areastrftime- 3 3 1601485076 A - t gz format date and timefmaxf- 3 3 1601485076 B - t gz determine maximum of two floating-point numberserfl- 3 3 1601485076 B - t gz error functionstrtok_r- 3 3 1601485076 B - t gz extract tokens from stringsmemcmp- 3 3 1601485076 A - t gz compare memory areasgetpwuid_r- 3 3 1601485076 B - t gz get password file entryfrexp- 3 3 1601485076 A - t gz convert floating-point number to fractional and integral componentspthread_attr_setscope- 3 3 1601485076 A - t gz set/get contention scope attribute in thread attributes objectwcscpy- 3 3 1601485076 A - t gz copy a wide-character stringwcscspn- 3 3 1601485076 A - t gz search a wide-character string for any of a set of wide characterssem_getvalue- 3 3 1601485076 A - t gz get the value of a semaphorecoshf- 3 3 1601485076 B - t gz hyperbolic cosine functionnrand48_r- 3 3 1601485076 B - t gz generate uniformly distributed pseudo-random numbers reentrantlyputc- 3 3 1601485076 B - t gz output of characters and stringsfma- 3 3 1601485076 A - t gz floating-point multiply and addtoupper- 3 3 1601485076 A - t gz convert letter to upper or lower casestatvfs 3- 3 3 1601485076 A - t gz get file system statisticsisalpha- 3 3 1601485076 A - t gz character classification routinesmemchr- 3 3 1601485076 A - t gz scan memory for a charactergetfsfile- 3 3 1601485076 B - t gz handle fstab entriespthread_attr_setschedparam- 3 3 1601485076 A - t gz set/get scheduling parameter attributes in thread attributes objectldexpf- 3 3 1601485076 B - t gz multiply floating-point number by integral power of 2backtrace_symbols- 3 3 1601485076 B - t gz support for application self-debugginglocale 1- 1 1 1601484909 A - - gz get locale-specific informationstpcpy- 3 3 1601485076 A - t gz copy a string returning a pointer to its endgetwc- 3 3 1601485076 B - t gz read a wide character from a FILE streamtimegm- 3 3 1601485076 A - t gz inverses of gmtime and localtimefmax- 3 3 1601485076 A - t gz determine maximum of two floating-point numberslrand48_r- 3 3 1601485076 B - t gz generate uniformly distributed pseudo-random numbers reentrantlymajor- 3 3 1601485076 B - t gz manage a device numberremquof- 3 3 1601485076 B - t gz remainder and part of quotientgetpass- 3 3 1601485076 A - t gz get a password__fsetlocking- 3 3 1601485076 B - t gz interfaces to stdio FILE structuremkstemp- 3 3 1601485076 A - t gz create a unique temporary filewcsdup- 3 3 1601485076 A - t gz duplicate a wide-character stringynf- 3 3 1601485076 B - t gz Bessel functions of the second kindfrexpf- 3 3 1601485076 B - t gz convert floating-point number to fractional and integral componentsacosl- 3 3 1601485076 B - t gz arc cosine functionfesetround- 3 3 1601485076 B - t gz floating-point rounding and exception handlingfunlockfile- 3 3 1601485076 B - t gz lock FILE for stdiocfree- 3 3 1601485076 A - t gz free allocated memorystrcat- 3 3 1601485076 A - t gz concatenate two stringslog10f- 3 3 1601485076 B - t gz base-10 logarithmic functionwmemmove- 3 3 1601485076 A - t gz copy an array of wide-characterserfcl- 3 3 1601485076 B - t gz complementary error function /]`|xJmq_o /CsetsP 2qGising ?bbEabor'=bNaio_ I!Irint3!3EV\Hstat*iAtcpj'P7KimaxC"GHpngPADnextx" =\Nsyst"2vHHstat"(,Dgnu_#1 &BsigiW#75Oget_#8\Ipid_#;i@strt5$GB@sysv$ B,GIsinc$?:Iname%R8Ecbrt}%-'@__fb% =߀Jecvt%FCsetcE& 6Kpthr&U[@_Blsta&*OjHfege)' IDscal~'TNDexp2'6_ACget_( nHDtgamM(.XDmq_t(<CFffsl(7bRCsem_ )+zNisinB)FArint)3ĶGtdes) /`qKrand)2ZMfera8*I>_Omake*1QwBwmem* +PNlsta**@ilog.+IJstan~+ /aFFgetp+ 2tSPLargz+ ;>Estrc9,5Abase 4;Kendgڈ /:Ccfma _0 Ocopy{ 0:mKwcsp]bN@clog@VFl64ab;FHatof7's@Btcseފ H@؍@memr06S%Bsetkn2/sFfall 0A gMmunl Ocapa 9^0BwmemQ;\IlconO[Jexec)90Afsta*sFwcpnNf' @getp 2.mEtanl+ۻIfediI)~Aexec9 )Nargz^ ;w(/Nmq_sP ;KK|@munm9lCNwmemFPZM\Jsem_ +%Cremal! <`Ltgam!.pCfflu!)3HLceil"["޿ #p R\swap(Q 2I_ecvtFfUSpapeQ 7ESsem_Q 7FWdes_,R.\__fphR =u{\argzR ;S#SgeteR6S ]trun5S8]assesSB'@^getgS /3?UcmsgS 99pO^floc8TK[locaT :.,ZtanfT+9\bzerT2}RgetwԏW(Qfege5U I\mq_tU Ru*QfdopU0ʶ_strsU=*Uvsys0V=StcgeuV )\pthrVS:+]asseW0jVstrfRW-0_mcstW {eYQisat XN>Rpthr`XZcXwcscX LyרYconf-Y 9NRtdelsY/k,YseekY_tTcproZ6aM^pthrNZZN\exp2Z6!Tsran[OZtowuX[ @IXdran[ [_putc\;9͡QsockI\ JVendt\ .JRcabs\=ZScall F.Z__fwO =e_unlo D'Xreso 6,Tgetg' /Vecb_a .g*S__fp )Wputs˱;dWtemp =FXwcscPA^aio_ I_expo2[rege' 0Ticon`N`Uy0l> LQttyn 4TR"[getw6 tSSisun^ T]>Stcse _UTfmax'JScimawADǪ\mq_s SZre_cѵ.)bDUexp26XcosB*&Pispup<>Vargz ;cK^sinf(¯Uacos'=u[Risasj<9_ldexP4GZgetdNd:[packZ<e[setp 2Rcoshظ56]getl 'ZmbrlEP4[exec)X_Sceil̹[΋]ntoh-MQ\[catc 7Ri-Ttcfl_]near& 3',Ucmsgd 9=Tiswa ?b<#Qpowf*A-ZcimaAkYconfg LTptsnCtSatan @ƣRqfcvPF?]fmtm9+\acos޽=|Y]cfge" _g^pthrV__XwctoKPregfO0M3Zbyte MSisgrT+Zsem_c :o]sigq ?Wscal T{$TynM>dTcore)&^opte54]exec)`TcallfQ;OUftok(\ld\getuGcallback- 8 8 1601485077 A - - gz call a user back, presenting a login prompt__fwritable- 3 3 1601485076 A - - gz interfaces to stdio FILE structureunlockpt- 3 3 1601485076 A - t gz unlock a pseudoterminal master/slave pairresolv.conf- 5 5 1601485076 A - - gz resolver configuration filegetgrgid_r- 3 3 1601485076 B - t gz get group file entryecb_crypt- 3 3 1601485076 B - t gz fast DES encryption__fpurge- 3 3 1601485076 B - t gz purge a streamputs- 3 3 1601485076 A - t gz output of characters and stringstempnam- 3 3 1601485076 A - t gz create a name for a temporary filewcscat- 3 3 1601485076 A - t gz concatenate two wide-character stringsaio_suspend- 3 3 1601485076 A - t gz wait for asynchronous I/O operation or timeoutexports- 5 5 1601485077 A - - gz NFS server export tableregerror- 3 3 1601485076 A - - gz POSIX regex functionsiconv 1- 1 1 1601484909 A - - gz convert text from one character encoding to anothery0l- 3 3 1601485076 B - t gz Bessel functions of the second kindttyname_r- 3 3 1601485076 B - t gz return name of a terminalgetwd 2- 2 2 1601484910 C getcwd t gz isunordered- 3 3 1601485076 B - t gz floating-point relational tests without exception for NaNtcsetattr- 3 3 1601485076 B - t gz get and set terminal attributes, line control, get and set baud ratefmaxl- 3 3 1601485076 B - t gz determine maximum of two floating-point numberscimag- 3 3 1601485076 A - t gz get imaginary part of a complex numbermq_send mq_send 3re_comp- 3 3 1601485076 A - t gz BSD regex functionsexp2- 3 3 1601485076 A - t gz base-2 exponential functioncos- 3 3 1601485076 A - t gz cosine functionispunct- 3 3 1601485076 B - t gz character classification routinesargz_count- 3 3 1601485076 B - t gz functions to handle an argz listsinf- 3 3 1601485076 B - t gz sine functionacosh- 3 3 1601485076 A - t gz inverse hyperbolic cosine functionisascii- 3 3 1601485076 B - t gz character classification routinesldexp- 3 3 1601485076 A - t gz multiply floating-point number by integral power of 2getdate- 3 3 1601485076 A - t gz convert a date-plus-time string to broken-down timepacket- 7 7 1601485076 A - - gz packet interface on device level.setpwent- 3 3 1601485076 B - t gz get password file entrycoshl- 3 3 1601485076 B - t gz hyperbolic cosine functiongetlogin_r- 3 3 1601485076 B - t gz get usernamembrlen- 3 3 1601485076 A - t gz determine number of bytes in next multibyte characterexeclp- 3 3 1601485076 B - t gz execute a fileceilf- 3 3 1601485076 B - t gz ceiling function: smallest integral value not less than argumentntohl- 3 3 1601485076 B - t gz convert values between host and network byte ordercatclose- 3 3 1601485076 B - t gz open/close a message catalogtcflow- 3 3 1601485076 B - t gz get and set terminal attributes, line control, get and set baud ratenearbyintl- 3 3 1601485076 B - t gz round to nearest integercmsg_alignCMSG_ALIGN 3 3 1601485076 A - - gz access ancillary dataiswalnum- 3 3 1601485076 A - t gz test for alphanumeric wide characterpowf- 3 3 1601485076 B - t gz power functionscimagf- 3 3 1601485076 B - t gz get imaginary part of a complex numberconfig.sub- 1 1 1601484909 A - - gz validate and canonicalize a configuration tripletptsname- 3 3 1601485076 A - t gz get the name of the slave pseudoterminalatan2f- 3 3 1601485076 B - t gz arc tangent function of two variablesqfcvt_r- 3 3 1601485076 B - t gz convert a floating-point number to a stringfmtmsg- 3 3 1601485076 A - t gz print formatted error messagesacoshf- 3 3 1601485076 B - t gz inverse hyperbolic cosine functioncfgetispeed- 3 3 1601485076 B - t gz get and set terminal attributes, line control, get and set baud ratepthread_attr_setstackaddr- 3 3 1601485076 A - t gz set/get stack address attribute in thread attributes objectwctomb- 3 3 1601485076 A - t gz convert a wide character to a multibyte sequenceregfree- 3 3 1601485076 B - t gz POSIX regex functionsbyteorder- 3 3 1601485076 A - - gz convert values between host and network byte orderisgreaterequal- 3 3 1601485076 B - t gz floating-point relational tests without exception for NaNsem_init- 3 3 1601485076 A - t gz initialize an unnamed semaphoresigqueue 3- 3 3 1601485076 A - t gz queue a signal and data to a processscalblnf- 3 3 1601485076 B - t gz multiply floating-point number by integral power of radixyn- 3 3 1601485076 B - t gz Bessel functions of the second kindcore- 5 5 1601485076 A - - gz core dump fileopterr- 3 3 1601485076 B - t gz Parse command-line optionsexecvp- 3 3 1601485076 B - t gz execute a fileftok- 3 3 1601485076 A - t gz convert a pathname and a project identifier to a System V IPC keygetutmp- 3 3 1601485076 A - t gz copy utmp structure to utmpx, and vice versaecvt- 3 3 1601485076 A - t gz convert a floating-point number to a stringrecvmsg- 2 2 1601484910 B - - gz receive a message from a socketenvz_remove- 3 3 1601485076 B - t gz environment string supportinet_network- 3 3 1601485076 A - - gz Internet address manipulation routinesabs- 3 3 1601485076 A - t gz compute the absolute value of an integercatanhf- 3 3 1601485076 B - t gz complex arc tangents hyperboliccfsetspeed- 3 3 1601485076 B - t gz get and set terminal attributes, line control, get and set baud rateargz_create- 3 3 1601485076 B - t gz functions to handle an argz listinet_netof- 3 3 1601485076 B - t gz Internet address manipulation routinessetbuffer- 3 3 1601485076 B - t gz stream buffering operationsseed48_r- 3 3 1601485076 B - t gz generate uniformly distributed pseudo-random numbers reentrantlyman-pages- 7 7 1601485076 A - - gz conventions for writing Linux man pagesstdarg- 3 3 1601485076 A - t gz variable argument listscopysignf- 3 3 1601485076 B - t gz copy sign of a numberposix_fallocate- 3 3 1601485076 A - t gz allocate file spacewcsrchr- 3 3 1601485076 A - t gz search a wide character in a wide-character stringfeupdateenv- 3 3 1601485076 B - t gz floating-point rounding and exception handlingacoshl- 3 3 1601485076 B - t gz inverse hyperbolic cosine functionldexpl- 3 3 1601485076 B - t gz multiply floating-point number by integral power of 2cfgetospeed- 3 3 1601485076 B - t gz get and set terminal attributes, line control, get and set baud rateatanh- 3 3 1601485076 A - t gz inverse hyperbolic tangent functioniswcntrl- 3 3 1601485076 A - t gz test for control wide characteratoq- 3 3 1601485076 B - t gz convert a string to an integerwcstok- 3 3 1601485076 A - t gz split wide-character string into tokenswcsncasecmp- 3 3 1601485076 A - t gz compare two fixed-size wide-character strings, ignoring casegets- 3 3 1601485076 A - t gz input of characters and stringstelldir- 3 3 1601485076 A - t gz return current location in directory streamfabsl- 3 3 1601485076 B - t gz absolute value of floating-point numbernextafterf- 3 3 1601485076 B - t gz floating-point number manipulationmq_getattr- 3 3 1601485076 A - t gz get/set message queue attributesiswspace- 3 3 1601485076 A - t gz test for whitespace wide charactertmpfile- 3 3 1601485076 A - t gz create a temporary fileclock_getcpuclockid- 3 3 1601485076 A - t gz obtain ID of a process CPU-time clockmlock2- 2 2 1601484910 B - - gz lock and unlock memorymq_send 3- 3 3 1601485076 A - t gz send a message to a message queuedrand48- 3 3 1601485076 A - t gz generate uniformly distributed pseudo-random numbershdestroy_r- 3 3 1601485076 B - t gz hash table managementmkdtemp- 3 3 1601485076 A - t gz create a unique temporary directorystrpbrk- 3 3 1601485076 A - t gz search a string for any of a set of bytesif_nametoindex- 3 3 1601485076 A - t gz mappings between network interface names and indexesmq_open mq_open 3 mq_open 2getcontext getcontext 3 getcontext 2lrint- 3 3 1601485076 A - t gz round to nearest integerputw- 3 3 1601485076 B - t gz input and output of words (ints)cpowl- 3 3 1601485076 B - t gz complex power functionsigaddset- 3 3 1601485076 B - t gz POSIX signal set operations.tzname- 3 3 1601485076 B - t gz initialize time conversion informationremove- 3 3 1601485076 A - t gz remove a file or directoryatanhf- 3 3 1601485076 B - t gz inverse hyperbolic tangent functionstrsep- 3 3 1601485076 A - t gz extract token from stringstrptime- 3 3 1601485076 A - t gz convert a string representation of time to a time tm structureqecvt- 3 3 1601485076 A - t gz convert a floating-point number to a string6pgfencrp 2[ltimedre_es.~,ngett,t .לdenvzdt 5ZOleacctHbrexet<T~Ghsigs4u 7aktfinuu/E{yocimauA5;O=dffma~:kltoup@8gstat 5fisalC<xhmemc6ChgetfĈ /mpthr^$ffldexvPCClback͉Axlaloca  :/`stpccG}_kgetwC6Mntime;tɞdfmax<Jflran [fAamajo11`remq'9 Ocgetph))n__fs=b q.wmkst9 wwcsd%<8ynfh>%vsigq vfrex^¯_pacos.gfeseC IU|funl .9vcfreю0wZ}strc2DX}log1@7mlqqwmem~ ;Irrecv:TWyenvzB 5 7|inet Aterfc7rabsCRxcata:{cfseZ _^*orargz ;̓{inet  A`?tsetbW 6&[~seed [}man- BTqstdaG20xcopy 0tposi.UxwcsrM|qfeupM I/fracos=(Z{ldexP)rcfge= _"kuatan>~iswc :watoq/9pwcstmBh^pwcsn WR{gets:rtellXFfabsBsnext =w(wmq_g6 ; sisws| =Gztmpf2p/rcloc@XymlocP1V|mq_s <eydranOT/-{hdes% 0.w|mkdt`>~pstrpDM tif_nO>O7ymq_oPtsgetcm qlrin3tputw;xscpow 1SpsigaC 7浌{tznaA0Uwremo5t}atan>m@}strsM4pstrp Y2zqecvFyissp<;JrttynD4qcaco8zj0l= tgetc 8GwrtldB >KCI}munt )orrand9|canoEe*|strtYHȁytrun8w~read +Cr$mti ;9}__fr/ =dxlrinw3-~usbcop-Sssiga 7T}|free%;Xubinde @|real;a^wmmapDM}isna>?Rc*|isup<|freo0Nvlog17zpthr< 4Bvrais}6]|wcst CV0rj1=obxstrtFG^qmq_tAxva_e2A}feen!IHvy1fy>e Aysetg /2xbtow@r{getd9 4.`tsigw} ,C!}strc  <,qadds  9>|mq_u=  1yg32pz L}hcre  0.zsign D&{erffS )%Zwnssw Ahދpgeta  E6Fzjn =صwcarg_ 9isspace- 3 3 1601485076 B - t gz character classification routinesttyname- 3 3 1601485076 A - t gz return name of a terminalcacoshf- 3 3 1601485076 B - t gz complex arc hyperbolic cosinej0l- 3 3 1601485076 B - t gz Bessel functions of the first kindgetcwd 2- 2 2 1601484910 B - t gz get current working directoryrtld-audit- 7 7 1601485076 A - - gz auditing API for the dynamic linkermuntrace- 3 3 1601485076 B - t gz malloc tracingrand_r- 3 3 1601485076 B - t gz pseudo-random number generatorcanonicalize_file_name- 3 3 1601485076 A - t gz return the canonicalized absolute pathnamestrtod- 3 3 1601485076 A - t gz convert ASCII string to floating-point numbertruncl- 3 3 1601485076 B - t gz round to integer, toward zeroreaddir_r- 3 3 1601485076 B - t gz read a directory$mtime$1605335200__freading- 3 3 1601485076 B - t gz interfaces to stdio FILE structurelrintf- 3 3 1601485076 B - t gz round to nearest integerbcopy- 3 3 1601485076 A - t gz copy byte sequencesigandset- 3 3 1601485076 B - t gz POSIX signal set operations.free- 3 3 1601485076 B - t gz allocate and free dynamic memorybindresvport- 3 3 1601485076 A - t gz bind a socket to a privileged IP portrealloc- 3 3 1601485076 B - t gz allocate and free dynamic memorymmap- 2 2 1601484910 A - - gz map or unmap files or devices into memoryisnan- 3 3 1601485076 B - t gz floating-point classification macrosisupper- 3 3 1601485076 B - t gz character classification routinesfreopen- 3 3 1601485076 B - t gz stream open functionslog10- 3 3 1601485076 A - t gz base-10 logarithmic functionpthread_kill- 3 3 1601485076 A - t gz send a signal to a threadraise- 3 3 1601485076 A - t gz send a signal to the callerwcstoimax- 3 3 1601485076 A - t gz convert wide-character string to integerj1- 3 3 1601485076 B - t gz Bessel functions of the first kindstrtouq- 3 3 1601485076 B - t gz convert a string to an unsigned long integermq_timedreceive 3- 3 3 1601485076 B - t gz receive a message from a message queueva_end- 3 3 1601485076 B - t gz variable argument listsfeenableexcept- 3 3 1601485076 A - - gz floating-point rounding and exception handlingy1f- 3 3 1601485076 B - t gz Bessel functions of the second kindsetgrent- 3 3 1601485076 B - t gz get group file entrybtowc- 3 3 1601485076 A - t gz convert single byte to wide charactergetdtablesize 2- 2 2 1601484910 B - t gz get descriptor table sizesigwait- 3 3 1601485076 A - t gz wait for a signalstrcasecmp- 3 3 1601485076 A - t gz compare two strings ignoring caseaddseverity- 3 3 1601485076 A - t gz introduce new severity classesmq_unlink 2- 2 2 1601484910 B - t gz remove a message queueg32pbm- 1 1 1601485076 A - - gz convert a Group 3 fax file into a portable bitmaphcreate_r- 3 3 1601485076 B - t gz hash table managementsignbit- 3 3 1601485076 A - t gz test sign of a real floating-point numbererff- 3 3 1601485076 B - t gz error functionnsswitch.conf- 5 5 1601485076 A - - gz Name Service Switch configuration filegetauxval- 3 3 1601485076 A - t gz retrieve a value from the auxiliary vectorjn- 3 3 1601485076 B - t gz Bessel functions of the first kindcargl- 3 3 1601485076 B - t gz calculate the complex argumentsk/CACHEDIR.TAG000064400000000276147207411410006666 0ustar00Signature: 8a477f597d28d172789f06886806bc55 # This file is a cache directory tag created by man-db. # For information about cache directory tags, see: # http://www.brynosaurus.com/cachedir/ sk/index.db000064400000040000147207411410006572 0ustar00ϚW @ [0sU$ver0 Cr$mti0 sbTrpm#04$version$2.4.1$mtime$1638600195rpm- 8 8 1637771608 A - - gz Red Hat správca balíkovcs/CACHEDIR.TAG000064400000000276147207411410006656 0ustar00Signature: 8a477f597d28d172789f06886806bc55 # This file is a cache directory tag created by man-db. # For information about cache directory tags, see: # http://www.brynosaurus.com/cachedir/ cs/index.db000064400000040000147207411410006562 0ustar00ϚW @ k;* warn05S-DwarnO0J:x syst0 7Q erro0 6isuzgrou.1 ,?(stapc1 :C(warn1V畄5erro28sU$verX2 /wstaph2)vshad2:}e.erro2KRk`stap<3 T? gpas35j stap3 [sdgrou>4 *bstapq4Dsldtra4lUlast-541\stapi5stap5 9Ivigr5fQerro5 :Hstap:6UI grou6 )qostap6 )1zerro6 6Cr$mti>7 : grpcQ7CKjerro71S4stap7 /kerro8PlXerroz8 8ogsha88\^stap8 GKstapN9 F]=stap9 Qmerro9 6£\erro<: YQ>Perro: 6qvipw:hs3erroR; 6warning::process-tracking- 7stap 7 1602605484 C error::process-tracking - gz warning::symbols- 7stap 7 1602605484 A - - gz varování ohledně chybějících symbolůsystemtap- 8 8 1602605484 A - - gz systemtap initskript službaerror::pass4- 7stap 7 1602605484 A - - gz chyby procesní fáze 4groupadd- 8 8 1565319052 A - - gz Vytvoří skupinustap-merge- 1 1 1602605484 A - - gz agregátor logů "bulk" režimuwarning::debuginfo- 7stap 7 1602605484 A - - gz varování ohledně chybějících ladicích informacíerror::buildid- 7stap 7 1602605484 A - - gz chyby ověření build-id$version$2.4.1stapex- 3stap 3 1602605484 A - - gz příkladyshadow- 5 5 1565319052 A - - gz soubor se zašifrovanými heslyerror::process-tracking- 7stap 7 1602605484 A - - gz chyby při analýze uživatelských procesůstappaths- 7 7 1602605484 A - - gz důležitá umístění souborů a adresářů systemtapugpasswd- 1 1 1565319052 A - - gz spravuje soubor /etc/groupstap-report- 1 1 1602605484 A - - gz sesbírá informace o systému užitečné pro odhalování chybgroupmod- 8 8 1565319052 A - - gz upraví skupinustap- 1 1 1602605484 A - te gz překladač a řadič systemtap skriptůdtrace- 1 1 1602605484 A - - gz Nástroj pro generování statických sondážních bodů kompatibilní s Dtrace.lastlog- 8 8 1565319052 A - - gz prozkoumá soubor lastlogstapsh- 8 8 1602605484 A - - gz stap-server- 8 8 1602605484 A - - gz kompilační server systemtapuvigr- 8 8 1565319052 C vipw - gz error::fault- 7stap 7 1602605484 A - - gz chyba přístupu do pamětistapref- 1 1 1602605484 A - - gz referenční příručka pro skriptovací jazyk systemtapugroupdel- 8 8 1565319052 A - - gz Smaže skupinustapvars- 3stap 3 1602605484 A - - gz proměnnéerror::pass5- 7stap 7 1602605484 A - - gz chyby procesní fáze 5$mtime$1605335200grpck- 8 8 1565319052 A - - gz ověří integritu skupinových souborůerror::reporting- 7stap 7 1602605484 A - - gz reportování chybstapfuncs- 3stap 3 1602605484 A - - gz systemtap funkceerror::inode-uprobes- 7stap 7 1602605484 A - - gz omezení použitelnosti sond typu "inode-uprobes"error::sdt- 7stap 7 1602605484 A - - gz chyby značek gshadow- 5 5 1565319052 A - - gz stínový soubor se skupinamistap-prep- 1 1 1602605484 A - - gz připraví systém pro použití systemtapemstapprobes- 3stap 3 1602605484 A - t gz přehled sondážních bodů systemtapustapvirt- 1 1 1602605484 A - - gz připravit libvirt domény pro sondování systemtapemerror::pass1- 7stap 7 1602605484 A - - gz chyby procesní fáze 1error::dwarf- 7stap 7 1602605484 A - - gz chyby v souvislosti s ladicími informacemi formátu DWARFerror::pass2- 7stap 7 1602605484 A - - gz chyby procesní fáze 2vipw- 8 8 1565319052 A - - gz slouží k úpravě souborů password, group, shadow-password a shadow-group.error::pass3- 7stap 7 1602605484 A - - gz chyby procesní fáze 3pt/CACHEDIR.TAG000064400000000276147207411410006674 0ustar00Signature: 8a477f597d28d172789f06886806bc55 # This file is a cache directory tag created by man-db. # For information about cache directory tags, see: # http://www.brynosaurus.com/cachedir/ pt/index.db000064400000040000147207411410006600 0ustar00ϚW @ v1sU$ver0 QFvnets0~] grout0FCr$mti0 }2Nifco0 :3arp81:$version$2.4.1netstat- 8 8 1565313023 A - - gz Mostra conexões de rede, tabelas de roteamento, estatísticas de interface e conexões mascaradas.route- 8 8 1565313023 A - - gz mostra / manipula a tabela de roteamento IP$mtime$1583330922ifconfig- 8 8 1565313023 A - - gz configura uma interface de redearp- 8 8 1565313023 A - - gz manipula o cache ARP do sistemazh_CN/CACHEDIR.TAG000064400000000276147207411410007252 0ustar00Signature: 8a477f597d28d172789f06886806bc55 # This file is a cache directory tag created by man-db. # For information about cache directory tags, see: # http://www.brynosaurus.com/cachedir/ zh_CN/index.db000064400000040000147207411410007156 0ustar00ϚW @  8 isuzgrou0 -֯Ruser60<eclogiz0 3n\chgp0 0sU$ver0 =Wuser1NvshadX1 Cgrpcr1H'bggets1 ? gpas1AIcm&chpa42 -sdgrouj2 B@apwun2 Hzigrpu3 H?newgX30 wP|pwco>eapro@~Ulast@ fixf?A x(%>load? ]!semoA[Ivigr,BI grouB 6seco+C9OcatmCCr$mtigD 2userzD`: grpcD^ IiexFE2rvieEWVmanc]FdogshaFdxc chag5GV 3grouG u[view8&audidJ T\vimdGK*RmanpL CbbpwckUL`NnewuL ZkeaddueMqvipw4Nт shadN AbY%8rest>O man- 1 1 1540931193 A - t gz доступ к справочным страницамmanpath manpath 1 manpath 5setfiles- 8 8 1187167996 A - - gz установить контекст безопасности SELinux для файла.xxd- 1 1 1720542352 A - - gz создаёт представление файла в виде шестнадцатеричных кодов или выполняет обратное преобразование.groupadd- 8 8 1565319053 A - - gz создаёт новую группуuserdel- 8 8 1565319053 A - - gz удаляет учётную запись и файлы пользователяlogin.defs- 5 5 1565319053 A - - gz содержит конфигурацию подсистемы теневых паролейsemodule- 8 8 1185007866 A - - gz Утилита управления пакетами модулей политики SELinux.chgpasswd- 8 8 1565319053 A - - gz обновляет пароли групп в пакетном режимеaccessdb- 8 8 1540931193 A - - gz сбрасывает содержимое базы данных man-db в понятный человеку формат$version$2.4.1evim- 1 1 1720542353 A - - gz простой Vim, позволяет редактировать файл с помощью Vim в безрежимном режимеzsoelim- 1 1 1540931193 A - - gz выполняет .so запросы для входящих данных roffuseradd- 8 8 1565319054 A - - gz регистрирует нового пользователя или изменяет информацию по умолчанию о новых пользователяхshadow shadow 3 shadow 5whatis- 1 1 1540931193 A - - gz показывает описания справочных страницgrpconv- 8 8 1565319053 B - - gz преобразует пароли пользователей и групп в/из защищённую формуrvim- 1 1 1722022359 B - - gz Vi IMproved (Улучшенный Vi), текстовый редактор для программистовgetspnam- 3 3 1565319053 C shadow - gz vim- 1 1 1722022359 A - - gz Vi IMproved (Улучшенный Vi), текстовый редактор для программистовsestatus- 8 8 1184829479 A - - gz просмотреть состояние SELinuxvimtutor- 1 1 1720542353 A - - gz учебник по Vimsetsebool- 8 8 1184829031 A - - gz установить значение переключателя (boolean) SELinuxchpasswd- 8 8 1565319053 A - - gz обновляет пароли в пакетном режимеgpasswd- 1 1 1565319053 A - - gz administer /etc/group and /etc/gshadowrpm2cpio- 8 8 1637771608 A - - gz Извлекает архив cpio из RPM пакетаgroupmod- 8 8 1565319053 A - - gz изменяет определение группы в системеchcat- 8 8 1185037669 A - - gz изменить категорию безопасности SELinux для файлаpwunconv- 8 8 1565319053 B - - gz преобразует пароли пользователей и групп в/из защищённую формуgrpunconv- 8 8 1565319053 B - - gz преобразует пароли пользователей и групп в/из защищённую формуlexgrog- 1 1 1540931193 A - - gz анализирует заголовочную информацию справочных страницsemanage- 8 8 1186140222 A - - gz Утилита управления политикой SELinuxnewgrp- 1 1 1565319053 A - - gz выполняет регистрацию пользователя в новой группеshadow 3- 3 3 1565319053 A - - gz процедуры для работы с файлом шифрованных паролейpwconv- 8 8 1565319053 A - - gz преобразует пароли пользователей и групп в/из защищённую формуload_policy- 8 8 1184754442 A - - gz Загрузить новую политику SELinux в ядроapropos- 1 1 1540931193 A - - gz поиск в именах справочных страниц и кратких описанияхlastlog- 8 8 1565319053 A - - gz выводит отчёт о последней регистрации в системе всех или указанного пользователяfixfiles- 8 8 1187168331 A - - gz восстановить контекст безопасности SELinux для файла.semodule_package- 8 8 1185009224 A - - gz Создать пакет модуля политики SELinux.vigr- 8 8 1565319053 B - - gz позволяют редактировать файлы паролей, групп, теневых паролей пользователей или групп.groupdel- 8 8 1565319053 A - - gz удаляет группуsecon- 1 1 1184828151 A - - gz Просмотреть контекст SELinux для файла, программы или ввода пользователя.catman- 8 8 1540931193 A - - gz создаёт или обновляет уже отформатированные справочные страницы$mtime$1722063410usermod- 8 8 1565319053 A - - gz изменяет учётную запись пользователяgrpck- 8 8 1565319053 A - - gz проверяет корректность файлов группex- 1 1 1722022359 B - - gz Vi IMproved (Улучшенный Vi), текстовый редактор для программистовrview- 1 1 1722022359 B - - gz Vi IMproved (Улучшенный Vi), текстовый редактор для программистовmanconv- 1 1 1540931193 A - - gz изменяет кодировку справочной страницыgshadow- 5 5 1565319053 A - - gz файл с защищаемой информацией о группахchage- 1 1 1565319053 A - - gz изменяет информацию об устаревании пароля пользователяgroupmems- 8 8 1565319053 A - - gz управляет членами первичной группы пользователяview- 1 1 1722022359 B - - gz Vi IMproved (Улучшенный Vi), текстовый редактор для программистовmanpath 1- 1 1 1540931193 A - - gz определяет путь поиска справочных страницsg- 1 1 1565319053 A - - gz выполняет команду с правами другой группыmandb- 8 8 1540931193 A - t gz создаёт или обновляет кэши index справочных страницrpm- 8 8 1637771608 A - - gz Менеджер пакетов RPMaudit2allow- 1 1 1184755031 A - - gz создает разрешающие правила политики SELinux из файлов журналов, содержащих сообщения о запрете операцийvimdiff- 1 1 1720542353 A - - gz позволяет редактировать две или три версии файла с помощью Vim с отображением различий.manpath 5- 5 5 1540931193 A - - gz формат файла /etc/man_db.confpwck- 8 8 1565319053 A - - gz проверяет целостность файлов паролейnewusers- 8 8 1565319053 A - - gz обновляет и создаёт новые учётные записи пользователей в пакетном режимеadduser- 8 8 1565319054 B - - gz регистрирует нового пользователя или изменяет информацию по умолчанию о новых пользователяхvipw- 8 8 1565319053 A - - gz позволяют редактировать файлы паролей, групп, теневых паролей пользователей или групп.shadow 5- 5 5 1565319053 A - - gz файл теневых паролейrestorecon- 8 8 1187167842 A - - gz восстановить заданный по умолчанию контекст безопасности SELinux для файла(файлов).man7/des_modes.7ssl000064400000024211147210250140010156 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DES_MODES 7" .TH DES_MODES 7 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" des_modes \- the variants of DES and other crypto algorithms of OpenSSL .SH "DESCRIPTION" .IX Header "DESCRIPTION" Several crypto algorithms for OpenSSL can be used in a number of modes. Those are used for using block ciphers in a way similar to stream ciphers, among other things. .SH "OVERVIEW" .IX Header "OVERVIEW" .SS "Electronic Codebook Mode (\s-1ECB\s0)" .IX Subsection "Electronic Codebook Mode (ECB)" Normally, this is found as the function \fIalgorithm\fR\fI_ecb_encrypt()\fR. .IP "\(bu" 2 64 bits are enciphered at a time. .IP "\(bu" 2 The order of the blocks can be rearranged without detection. .IP "\(bu" 2 The same plaintext block always produces the same ciphertext block (for the same key) making it vulnerable to a 'dictionary attack'. .IP "\(bu" 2 An error will only affect one ciphertext block. .SS "Cipher Block Chaining Mode (\s-1CBC\s0)" .IX Subsection "Cipher Block Chaining Mode (CBC)" Normally, this is found as the function \fIalgorithm\fR\fI_cbc_encrypt()\fR. Be aware that \fIdes_cbc_encrypt()\fR is not really \s-1DES CBC \s0(it does not update the \s-1IV\s0); use \fIdes_ncbc_encrypt()\fR instead. .IP "\(bu" 2 a multiple of 64 bits are enciphered at a time. .IP "\(bu" 2 The \s-1CBC\s0 mode produces the same ciphertext whenever the same plaintext is encrypted using the same key and starting variable. .IP "\(bu" 2 The chaining operation makes the ciphertext blocks dependent on the current and all preceding plaintext blocks and therefore blocks can not be rearranged. .IP "\(bu" 2 The use of different starting variables prevents the same plaintext enciphering to the same ciphertext. .IP "\(bu" 2 An error will affect the current and the following ciphertext blocks. .SS "Cipher Feedback Mode (\s-1CFB\s0)" .IX Subsection "Cipher Feedback Mode (CFB)" Normally, this is found as the function \fIalgorithm\fR\fI_cfb_encrypt()\fR. .IP "\(bu" 2 a number of bits (j) <= 64 are enciphered at a time. .IP "\(bu" 2 The \s-1CFB\s0 mode produces the same ciphertext whenever the same plaintext is encrypted using the same key and starting variable. .IP "\(bu" 2 The chaining operation makes the ciphertext variables dependent on the current and all preceding variables and therefore j\-bit variables are chained together and can not be rearranged. .IP "\(bu" 2 The use of different starting variables prevents the same plaintext enciphering to the same ciphertext. .IP "\(bu" 2 The strength of the \s-1CFB\s0 mode depends on the size of k (maximal if j == k). In my implementation this is always the case. .IP "\(bu" 2 Selection of a small value for j will require more cycles through the encipherment algorithm per unit of plaintext and thus cause greater processing overheads. .IP "\(bu" 2 Only multiples of j bits can be enciphered. .IP "\(bu" 2 An error will affect the current and the following ciphertext variables. .SS "Output Feedback Mode (\s-1OFB\s0)" .IX Subsection "Output Feedback Mode (OFB)" Normally, this is found as the function \fIalgorithm\fR\fI_ofb_encrypt()\fR. .IP "\(bu" 2 a number of bits (j) <= 64 are enciphered at a time. .IP "\(bu" 2 The \s-1OFB\s0 mode produces the same ciphertext whenever the same plaintext enciphered using the same key and starting variable. More over, in the \s-1OFB\s0 mode the same key stream is produced when the same key and start variable are used. Consequently, for security reasons a specific start variable should be used only once for a given key. .IP "\(bu" 2 The absence of chaining makes the \s-1OFB\s0 more vulnerable to specific attacks. .IP "\(bu" 2 The use of different start variables values prevents the same plaintext enciphering to the same ciphertext, by producing different key streams. .IP "\(bu" 2 Selection of a small value for j will require more cycles through the encipherment algorithm per unit of plaintext and thus cause greater processing overheads. .IP "\(bu" 2 Only multiples of j bits can be enciphered. .IP "\(bu" 2 \&\s-1OFB\s0 mode of operation does not extend ciphertext errors in the resultant plaintext output. Every bit error in the ciphertext causes only one bit to be in error in the deciphered plaintext. .IP "\(bu" 2 \&\s-1OFB\s0 mode is not self-synchronizing. If the two operation of encipherment and decipherment get out of synchronism, the system needs to be re-initialized. .IP "\(bu" 2 Each re-initialization should use a value of the start variable different from the start variable values used before with the same key. The reason for this is that an identical bit stream would be produced each time from the same parameters. This would be susceptible to a 'known plaintext' attack. .SS "Triple \s-1ECB\s0 Mode" .IX Subsection "Triple ECB Mode" Normally, this is found as the function \fIalgorithm\fR\fI_ecb3_encrypt()\fR. .IP "\(bu" 2 Encrypt with key1, decrypt with key2 and encrypt with key3 again. .IP "\(bu" 2 As for \s-1ECB\s0 encryption but increases the key length to 168 bits. There are theoretic attacks that can be used that make the effective key length 112 bits, but this attack also requires 2^56 blocks of memory, not very likely, even for the \s-1NSA.\s0 .IP "\(bu" 2 If both keys are the same it is equivalent to encrypting once with just one key. .IP "\(bu" 2 If the first and last key are the same, the key length is 112 bits. There are attacks that could reduce the effective key strength to only slightly more than 56 bits, but these require a lot of memory. .IP "\(bu" 2 If all 3 keys are the same, this is effectively the same as normal ecb mode. .SS "Triple \s-1CBC\s0 Mode" .IX Subsection "Triple CBC Mode" Normally, this is found as the function \fIalgorithm\fR\fI_ede3_cbc_encrypt()\fR. .IP "\(bu" 2 Encrypt with key1, decrypt with key2 and then encrypt with key3. .IP "\(bu" 2 As for \s-1CBC\s0 encryption but increases the key length to 168 bits with the same restrictions as for triple ecb mode. .SH "NOTES" .IX Header "NOTES" This text was been written in large parts by Eric Young in his original documentation for SSLeay, the predecessor of OpenSSL. In turn, he attributed it to: .PP .Vb 5 \& AS 2805.5.2 \& Australian Standard \& Electronic funds transfer \- Requirements for interfaces, \& Part 5.2: Modes of operation for an n\-bit block cipher algorithm \& Appendix A .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIblowfish\fR\|(3), \fIdes\fR\|(3), \fIidea\fR\|(3), \&\fIrc2\fR\|(3) man1/gendsa.1ssl000064400000014015147210250140007442 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "GENDSA 1" .TH GENDSA 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" gendsa \- generate a DSA private key from a set of parameters .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBgendsa\fR [\fB\-out filename\fR] [\fB\-aes128\fR] [\fB\-aes192\fR] [\fB\-aes256\fR] [\fB\-camellia128\fR] [\fB\-camellia192\fR] [\fB\-camellia256\fR] [\fB\-des\fR] [\fB\-des3\fR] [\fB\-idea\fR] [\fB\-rand file(s)\fR] [\fB\-engine id\fR] [\fBparamfile\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBgendsa\fR command generates a \s-1DSA\s0 private key from a \s-1DSA\s0 parameter file (which will be typically generated by the \fBopenssl dsaparam\fR command). .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-aes128|\-aes192|\-aes256|\-camellia128|\-camellia192|\-camellia256|\-des|\-des3|\-idea\fR" 4 .IX Item "-aes128|-aes192|-aes256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea" These options encrypt the private key with specified cipher before outputting it. A pass phrase is prompted for. If none of these options is specified no encryption is used. .IP "\fB\-rand file(s)\fR" 4 .IX Item "-rand file(s)" a file or files containing random data used to seed the random number generator, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). Multiple files can be specified separated by a OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBgendsa\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .IP "\fBparamfile\fR" 4 .IX Item "paramfile" This option specifies the \s-1DSA\s0 parameter file to use. The parameters in this file determine the size of the private key. \s-1DSA\s0 parameters can be generated and examined using the \fBopenssl dsaparam\fR command. .SH "NOTES" .IX Header "NOTES" \&\s-1DSA\s0 key generation is little more than random number generation so it is much quicker that \s-1RSA\s0 key generation for example. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdsaparam\fR\|(1), \fIdsa\fR\|(1), \fIgenrsa\fR\|(1), \&\fIrsa\fR\|(1) man1/speed.1ssl000064400000012662147210250140007307 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SPEED 1" .TH SPEED 1 "2017-06-30" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" speed \- test library performance .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl speed\fR [\fB\-engine id\fR] [\fB\-elapsed\fR] [\fB\-evp algo\fR] [\fB\-decrypt\fR] [\fBmd2\fR] [\fBmdc2\fR] [\fBmd5\fR] [\fBhmac\fR] [\fBsha1\fR] [\fBrmd160\fR] [\fBidea-cbc\fR] [\fBrc2\-cbc\fR] [\fBrc5\-cbc\fR] [\fBbf-cbc\fR] [\fBdes-cbc\fR] [\fBdes\-ede3\fR] [\fBrc4\fR] [\fBrsa512\fR] [\fBrsa1024\fR] [\fBrsa2048\fR] [\fBrsa4096\fR] [\fBdsa512\fR] [\fBdsa1024\fR] [\fBdsa2048\fR] [\fBidea\fR] [\fBrc2\fR] [\fBdes\fR] [\fBrsa\fR] [\fBblowfish\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" This command is used to test the performance of cryptographic algorithms. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBspeed\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .IP "\fB\-elapsed\fR" 4 .IX Item "-elapsed" Measure time in real time instead of \s-1CPU\s0 time. It can be useful when testing speed of hardware engines. .IP "\fB\-evp algo\fR" 4 .IX Item "-evp algo" Use the specified cipher or message digest algorithm via the \s-1EVP\s0 interface. .IP "\fB\-decrypt\fR" 4 .IX Item "-decrypt" Time the decryption instead of encryption. Affects only the \s-1EVP\s0 testing. .IP "\fB[zero or more test algorithms]\fR" 4 .IX Item "[zero or more test algorithms]" If any options are given, \fBspeed\fR tests those algorithms, otherwise all of the above are tested. man1/ecparam.1ssl000064400000023053147210250140007613 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ECPARAM 1" .TH ECPARAM 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ecparam \- EC parameter manipulation and generation .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl ecparam\fR [\fB\-inform DER|PEM\fR] [\fB\-outform DER|PEM\fR] [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-noout\fR] [\fB\-text\fR] [\fB\-C\fR] [\fB\-check\fR] [\fB\-name arg\fR] [\fB\-list_curves\fR] [\fB\-conv_form arg\fR] [\fB\-param_enc arg\fR] [\fB\-no_seed\fR] [\fB\-rand file(s)\fR] [\fB\-genkey\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" This command is used to manipulate or generate \s-1EC\s0 parameter files. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-inform DER|PEM\fR" 4 .IX Item "-inform DER|PEM" This specifies the input format. The \fB\s-1DER\s0\fR option uses an \s-1ASN.1 DER\s0 encoded form compatible with \s-1RFC 3279\s0 EcpkParameters. The \s-1PEM\s0 form is the default format: it consists of the \fB\s-1DER\s0\fR format base64 encoded with additional header and footer lines. .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read parameters from or standard input if this option is not specified. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" This specifies the output filename parameters to. Standard output is used if this option is not present. The output filename should \fBnot\fR be the same as the input filename. .IP "\fB\-noout\fR" 4 .IX Item "-noout" This option inhibits the output of the encoded version of the parameters. .IP "\fB\-text\fR" 4 .IX Item "-text" This option prints out the \s-1EC\s0 parameters in human readable form. .IP "\fB\-C\fR" 4 .IX Item "-C" This option converts the \s-1EC\s0 parameters into C code. The parameters can then be loaded by calling the \fB\f(BIget_ec_group_XXX()\fB\fR function. .IP "\fB\-check\fR" 4 .IX Item "-check" Validate the elliptic curve parameters. .IP "\fB\-name arg\fR" 4 .IX Item "-name arg" Use the \s-1EC\s0 parameters with the specified 'short' name. Use \fB\-list_curves\fR to get a list of all currently implemented \s-1EC\s0 parameters. .IP "\fB\-list_curves\fR" 4 .IX Item "-list_curves" If this options is specified \fBecparam\fR will print out a list of all currently implemented \s-1EC\s0 parameters names and exit. .IP "\fB\-conv_form\fR" 4 .IX Item "-conv_form" This specifies how the points on the elliptic curve are converted into octet strings. Possible values are: \fBcompressed\fR (the default value), \fBuncompressed\fR and \fBhybrid\fR. For more information regarding the point conversion forms please read the X9.62 standard. \&\fBNote\fR Due to patent issues the \fBcompressed\fR option is disabled by default for binary curves and can be enabled by defining the preprocessor macro \fB\s-1OPENSSL_EC_BIN_PT_COMP\s0\fR at compile time. .IP "\fB\-param_enc arg\fR" 4 .IX Item "-param_enc arg" This specifies how the elliptic curve parameters are encoded. Possible value are: \fBnamed_curve\fR, i.e. the ec parameters are specified by a \s-1OID,\s0 or \fBexplicit\fR where the ec parameters are explicitly given (see \s-1RFC 3279\s0 for the definition of the \&\s-1EC\s0 parameters structures). The default value is \fBnamed_curve\fR. \&\fBNote\fR the \fBimplicitlyCA\fR alternative ,as specified in \s-1RFC 3279,\s0 is currently not implemented in OpenSSL. .IP "\fB\-no_seed\fR" 4 .IX Item "-no_seed" This option inhibits that the 'seed' for the parameter generation is included in the ECParameters structure (see \s-1RFC 3279\s0). .IP "\fB\-genkey\fR" 4 .IX Item "-genkey" This option will generate a \s-1EC\s0 private key using the specified parameters. .IP "\fB\-rand file(s)\fR" 4 .IX Item "-rand file(s)" a file or files containing random data used to seed the random number generator, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). Multiple files can be specified separated by a OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBecparam\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .SH "NOTES" .IX Header "NOTES" \&\s-1PEM\s0 format \s-1EC\s0 parameters use the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN EC PARAMETERS\-\-\-\-\- \& \-\-\-\-\-END EC PARAMETERS\-\-\-\-\- .Ve .PP OpenSSL is currently not able to generate new groups and therefore \&\fBecparam\fR can only create \s-1EC\s0 parameters from known (named) curves. .SH "EXAMPLES" .IX Header "EXAMPLES" To create \s-1EC\s0 parameters with the group 'prime192v1': .PP .Vb 1 \& openssl ecparam \-out ec_param.pem \-name prime192v1 .Ve .PP To create \s-1EC\s0 parameters with explicit parameters: .PP .Vb 1 \& openssl ecparam \-out ec_param.pem \-name prime192v1 \-param_enc explicit .Ve .PP To validate given \s-1EC\s0 parameters: .PP .Vb 1 \& openssl ecparam \-in ec_param.pem \-check .Ve .PP To create \s-1EC\s0 parameters and a private key: .PP .Vb 1 \& openssl ecparam \-out ec_key.pem \-name prime192v1 \-genkey .Ve .PP To change the point encoding to 'compressed': .PP .Vb 1 \& openssl ecparam \-in ec_in.pem \-out ec_out.pem \-conv_form compressed .Ve .PP To print out the \s-1EC\s0 parameters to standard output: .PP .Vb 1 \& openssl ecparam \-in ec_param.pem \-noout \-text .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIec\fR\|(1), \fIdsaparam\fR\|(1) .SH "HISTORY" .IX Header "HISTORY" The ecparam command was first introduced in OpenSSL 0.9.8. .SH "AUTHOR" .IX Header "AUTHOR" Nils Larsch for the OpenSSL project (http://www.openssl.org) man1/dgst.1ssl000064400000024357147210250140007154 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DGST 1" .TH DGST 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" dgst, sha, sha1, mdc2, ripemd160, sha224, sha256, sha384, sha512, md2, md4, md5, dss1 \- message digests .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBdgst\fR [\fB\-sha|\-sha1|\-mdc2|\-ripemd160|\-sha224|\-sha256|\-sha384|\-sha512|\-md2|\-md4|\-md5|\-dss1\fR] [\fB\-c\fR] [\fB\-d\fR] [\fB\-hex\fR] [\fB\-binary\fR] [\fB\-r\fR] [\fB\-non\-fips\-allow\fR] [\fB\-out filename\fR] [\fB\-sign filename\fR] [\fB\-keyform arg\fR] [\fB\-passin arg\fR] [\fB\-verify filename\fR] [\fB\-prverify filename\fR] [\fB\-signature filename\fR] [\fB\-hmac key\fR] [\fB\-non\-fips\-allow\fR] [\fB\-fips\-fingerprint\fR] [\fBfile...\fR] .PP \&\fBopenssl\fR [\fIdigest\fR] [\fB...\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The digest functions output the message digest of a supplied file or files in hexadecimal. The digest functions also generate and verify digital signatures using message digests. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-c\fR" 4 .IX Item "-c" print out the digest in two digit groups separated by colons, only relevant if \&\fBhex\fR format output is used. .IP "\fB\-d\fR" 4 .IX Item "-d" print out \s-1BIO\s0 debugging information. .IP "\fB\-hex\fR" 4 .IX Item "-hex" digest is to be output as a hex dump. This is the default case for a \*(L"normal\*(R" digest as opposed to a digital signature. See \s-1NOTES\s0 below for digital signatures using \fB\-hex\fR. .IP "\fB\-binary\fR" 4 .IX Item "-binary" output the digest or signature in binary form. .IP "\fB\-r\fR" 4 .IX Item "-r" output the digest in the \*(L"coreutils\*(R" format used by programs like \fBsha1sum\fR. .IP "\fB\-non\-fips\-allow\fR" 4 .IX Item "-non-fips-allow" Allow use of non \s-1FIPS\s0 digest when in \s-1FIPS\s0 mode. This has no effect when not in \&\s-1FIPS\s0 mode. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" filename to output to, or standard output by default. .IP "\fB\-sign filename\fR" 4 .IX Item "-sign filename" digitally sign the digest using the private key in \*(L"filename\*(R". .IP "\fB\-keyform arg\fR" 4 .IX Item "-keyform arg" Specifies the key format to sign digest with. The \s-1DER, PEM, P12,\s0 and \s-1ENGINE\s0 formats are supported. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" Use engine \fBid\fR for operations (including private key storage). This engine is not used as source for digest algorithms, unless it is also specified in the configuration file. .IP "\fB\-sigopt nm:v\fR" 4 .IX Item "-sigopt nm:v" Pass options to the signature algorithm during sign or verify operations. Names and values of these options are algorithm-specific. .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the private key password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-verify filename\fR" 4 .IX Item "-verify filename" verify the signature using the the public key in \*(L"filename\*(R". The output is either \*(L"Verification \s-1OK\*(R"\s0 or \*(L"Verification Failure\*(R". .IP "\fB\-prverify filename\fR" 4 .IX Item "-prverify filename" verify the signature using the the private key in \*(L"filename\*(R". .IP "\fB\-signature filename\fR" 4 .IX Item "-signature filename" the actual signature to verify. .IP "\fB\-hmac key\fR" 4 .IX Item "-hmac key" create a hashed \s-1MAC\s0 using \*(L"key\*(R". .IP "\fB\-mac alg\fR" 4 .IX Item "-mac alg" create \s-1MAC \s0(keyed Message Authentication Code). The most popular \s-1MAC\s0 algorithm is \s-1HMAC \s0(hash-based \s-1MAC\s0), but there are other \s-1MAC\s0 algorithms which are not based on hash, for instance \fBgost-mac\fR algorithm, supported by \fBccgost\fR engine. \s-1MAC\s0 keys and other options should be set via \fB\-macopt\fR parameter. .IP "\fB\-macopt nm:v\fR" 4 .IX Item "-macopt nm:v" Passes options to \s-1MAC\s0 algorithm, specified by \fB\-mac\fR key. Following options are supported by both by \fB\s-1HMAC\s0\fR and \fBgost-mac\fR: .RS 4 .IP "\fBkey:string\fR" 8 .IX Item "key:string" Specifies \s-1MAC\s0 key as alphnumeric string (use if key contain printable characters only). String length must conform to any restrictions of the \s-1MAC\s0 algorithm for example exactly 32 chars for gost-mac. .IP "\fBhexkey:string\fR" 8 .IX Item "hexkey:string" Specifies \s-1MAC\s0 key in hexadecimal form (two hex digits per byte). Key length must conform to any restrictions of the \s-1MAC\s0 algorithm for example exactly 32 chars for gost-mac. .RE .RS 4 .RE .IP "\fB\-rand file(s)\fR" 4 .IX Item "-rand file(s)" a file or files containing random data used to seed the random number generator, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). Multiple files can be specified separated by a OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fB\-non\-fips\-allow\fR" 4 .IX Item "-non-fips-allow" enable use of non-FIPS algorithms such as \s-1MD5\s0 even in \s-1FIPS\s0 mode. .IP "\fB\-fips\-fingerprint\fR" 4 .IX Item "-fips-fingerprint" compute \s-1HMAC\s0 using a specific key for certain OpenSSL-FIPS operations. .IP "\fBfile...\fR" 4 .IX Item "file..." file or files to digest. If no files are specified then standard input is used. .SH "EXAMPLES" .IX Header "EXAMPLES" To create a hex-encoded message digest of a file: openssl dgst \-md5 \-hex file.txt .PP To sign a file using \s-1SHA\-256\s0 with binary file output: openssl dgst \-sha256 \-sign privatekey.pem \-out signature.sign file.txt .PP To verify a signature: openssl dgst \-sha256 \-verify publickey.pem \e \-signature signature.sign \e file.txt .SH "NOTES" .IX Header "NOTES" The digest of choice for all new applications is \s-1SHA1.\s0 Other digests are however still widely used. .PP When signing a file, \fBdgst\fR will automatically determine the algorithm (\s-1RSA, ECC,\s0 etc) to use for signing based on the private key's \s-1ASN.1\s0 info. When verifying signatures, it only handles the \s-1RSA, DSA,\s0 or \s-1ECDSA\s0 signature itself, not the related data to identify the signer and algorithm used in formats such as x.509, \s-1CMS,\s0 and S/MIME. .PP A source of random numbers is required for certain signing algorithms, in particular \s-1ECDSA\s0 and \s-1DSA.\s0 .PP The signing and verify options should only be used if a single file is being signed or verified. .PP Hex signatures cannot be verified using \fBopenssl\fR. Instead, use \*(L"xxd \-r\*(R" or similar program to transform the hex signature into a binary signature prior to verification. man1/ciphers.1ssl000064400000075133147210250140007646 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CIPHERS 1" .TH CIPHERS 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ciphers \- SSL cipher display and cipher list tool. .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBciphers\fR [\fB\-v\fR] [\fB\-V\fR] [\fB\-ssl2\fR] [\fB\-ssl3\fR] [\fB\-tls1\fR] [\fBcipherlist\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBciphers\fR command converts textual OpenSSL cipher lists into ordered \&\s-1SSL\s0 cipher preference lists. It can be used as a test tool to determine the appropriate cipherlist. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-v\fR" 4 .IX Item "-v" Verbose option. List ciphers with a complete description of protocol version (SSLv2 or SSLv3; the latter includes \s-1TLS\s0), key exchange, authentication, encryption and mac algorithms used along with any key size restrictions and whether the algorithm is classed as an \*(L"export\*(R" cipher. Note that without the \fB\-v\fR option, ciphers may seem to appear twice in a cipher list; this is when similar ciphers are available for \&\s-1SSL\s0 v2 and for \s-1SSL\s0 v3/TLS v1. .IP "\fB\-V\fR" 4 .IX Item "-V" Like \fB\-v\fR, but include cipher suite codes in output (hex format). .IP "\fB\-ssl3\fR, \fB\-tls1\fR" 4 .IX Item "-ssl3, -tls1" This lists ciphers compatible with any of SSLv3, TLSv1, TLSv1.1 or TLSv1.2. .IP "\fB\-ssl2\fR" 4 .IX Item "-ssl2" Only include SSLv2 ciphers. .IP "\fB\-h\fR, \fB\-?\fR" 4 .IX Item "-h, -?" Print a brief usage message. .IP "\fBcipherlist\fR" 4 .IX Item "cipherlist" A cipher list to convert to a cipher preference list. If it is not included then the default cipher list will be used. The format is described below. .SH "CIPHER LIST FORMAT" .IX Header "CIPHER LIST FORMAT" The cipher list consists of one or more \fIcipher strings\fR separated by colons. Commas or spaces are also acceptable separators but colons are normally used. .PP The actual cipher string can take several different forms. .PP It can consist of a single cipher suite such as \fB\s-1RC4\-SHA\s0\fR. .PP It can represent a list of cipher suites containing a certain algorithm, or cipher suites of a certain type. For example \fB\s-1SHA1\s0\fR represents all ciphers suites using the digest algorithm \s-1SHA1\s0 and \fBSSLv3\fR represents all \s-1SSL\s0 v3 algorithms. .PP Lists of cipher suites can be combined in a single cipher string using the \&\fB+\fR character. This is used as a logical \fBand\fR operation. For example \&\fB\s-1SHA1+DES\s0\fR represents all cipher suites containing the \s-1SHA1 \s0\fBand\fR the \s-1DES\s0 algorithms. .PP Each cipher string can be optionally preceded by the characters \fB!\fR, \&\fB\-\fR or \fB+\fR. .PP If \fB!\fR is used then the ciphers are permanently deleted from the list. The ciphers deleted can never reappear in the list even if they are explicitly stated. .PP If \fB\-\fR is used then the ciphers are deleted from the list, but some or all of the ciphers can be added again by later options. .PP If \fB+\fR is used then the ciphers are moved to the end of the list. This option doesn't add any new ciphers it just moves matching existing ones. .PP If none of these characters is present then the string is just interpreted as a list of ciphers to be appended to the current preference list. If the list includes any ciphers already present they will be ignored: that is they will not moved to the end of the list. .PP Additionally the cipher string \fB\f(CB@STRENGTH\fB\fR can be used at any point to sort the current cipher list in order of encryption algorithm key length. .SH "CIPHER STRINGS" .IX Header "CIPHER STRINGS" The following is a list of all permitted cipher strings and their meanings. .IP "\fB\s-1DEFAULT\s0\fR" 4 .IX Item "DEFAULT" The default cipher list. This is determined at compile time and is normally \&\fB\s-1ALL:\s0!EXPORT:!LOW:!aNULL:!eNULL:!SSLv2\fR. When used, this must be the first cipherstring specified. .IP "\fB\s-1COMPLEMENTOFDEFAULT\s0\fR" 4 .IX Item "COMPLEMENTOFDEFAULT" the ciphers included in \fB\s-1ALL\s0\fR, but not enabled by default. Currently this is \fB\s-1ADH\s0\fR and \fB\s-1AECDH\s0\fR. Note that this rule does not cover \fBeNULL\fR, which is not included by \fB\s-1ALL\s0\fR (use \fB\s-1COMPLEMENTOFALL\s0\fR if necessary). .IP "\fB\s-1ALL\s0\fR" 4 .IX Item "ALL" all cipher suites except the \fBeNULL\fR ciphers which must be explicitly enabled; as of OpenSSL, the \fB\s-1ALL\s0\fR cipher suites are reasonably ordered by default .IP "\fB\s-1COMPLEMENTOFALL\s0\fR" 4 .IX Item "COMPLEMENTOFALL" the cipher suites not enabled by \fB\s-1ALL\s0\fR, currently being \fBeNULL\fR. .IP "\fB\s-1HIGH\s0\fR" 4 .IX Item "HIGH" \&\*(L"high\*(R" encryption cipher suites. This currently means those with key lengths larger than 128 bits, and some cipher suites with 128\-bit keys. .IP "\fB\s-1MEDIUM\s0\fR" 4 .IX Item "MEDIUM" \&\*(L"medium\*(R" encryption cipher suites, currently some of those using 128 bit encryption. .IP "\fB\s-1LOW\s0\fR" 4 .IX Item "LOW" Low strength encryption cipher suites, currently those using 64 or 56 bit encryption algorithms but excluding export cipher suites. As of OpenSSL 1.0.2g, these are disabled in default builds. .IP "\fB\s-1EXP\s0\fR, \fB\s-1EXPORT\s0\fR" 4 .IX Item "EXP, EXPORT" Export strength encryption algorithms. Including 40 and 56 bits algorithms. As of OpenSSL 1.0.2g, these are disabled in default builds. .IP "\fB\s-1EXPORT40\s0\fR" 4 .IX Item "EXPORT40" 40\-bit export encryption algorithms As of OpenSSL 1.0.2g, these are disabled in default builds. .IP "\fB\s-1EXPORT56\s0\fR" 4 .IX Item "EXPORT56" 56\-bit export encryption algorithms. In OpenSSL 0.9.8c and later the set of 56 bit export ciphers is empty unless OpenSSL has been explicitly configured with support for experimental ciphers. As of OpenSSL 1.0.2g, these are disabled in default builds. .IP "\fBeNULL\fR, \fB\s-1NULL\s0\fR" 4 .IX Item "eNULL, NULL" The \*(L"\s-1NULL\*(R"\s0 ciphers that is those offering no encryption. Because these offer no encryption at all and are a security risk they are not enabled via either the \&\fB\s-1DEFAULT\s0\fR or \fB\s-1ALL\s0\fR cipher strings. Be careful when building cipherlists out of lower-level primitives such as \&\fBkRSA\fR or \fBaECDSA\fR as these do overlap with the \fBeNULL\fR ciphers. When in doubt, include \fB!eNULL\fR in your cipherlist. .IP "\fBaNULL\fR" 4 .IX Item "aNULL" The cipher suites offering no authentication. This is currently the anonymous \&\s-1DH\s0 algorithms and anonymous \s-1ECDH\s0 algorithms. These cipher suites are vulnerable to a \*(L"man in the middle\*(R" attack and so their use is normally discouraged. These are excluded from the \fB\s-1DEFAULT\s0\fR ciphers, but included in the \fB\s-1ALL\s0\fR ciphers. Be careful when building cipherlists out of lower-level primitives such as \&\fBkDHE\fR or \fB\s-1AES\s0\fR as these do overlap with the \fBaNULL\fR ciphers. When in doubt, include \fB!aNULL\fR in your cipherlist. .IP "\fBkRSA\fR, \fB\s-1RSA\s0\fR" 4 .IX Item "kRSA, RSA" cipher suites using \s-1RSA\s0 key exchange. .IP "\fBkDHr\fR, \fBkDHd\fR, \fBkDH\fR" 4 .IX Item "kDHr, kDHd, kDH" cipher suites using \s-1DH\s0 key agreement and \s-1DH\s0 certificates signed by CAs with \s-1RSA\s0 and \s-1DSS\s0 keys or either respectively. .IP "\fBkDHE\fR, \fBkEDH\fR" 4 .IX Item "kDHE, kEDH" cipher suites using ephemeral \s-1DH\s0 key agreement, including anonymous cipher suites. .IP "\fB\s-1DHE\s0\fR, \fB\s-1EDH\s0\fR" 4 .IX Item "DHE, EDH" cipher suites using authenticated ephemeral \s-1DH\s0 key agreement. .IP "\fB\s-1ADH\s0\fR" 4 .IX Item "ADH" anonymous \s-1DH\s0 cipher suites, note that this does not include anonymous Elliptic Curve \s-1DH \s0(\s-1ECDH\s0) cipher suites. .IP "\fB\s-1DH\s0\fR" 4 .IX Item "DH" cipher suites using \s-1DH,\s0 including anonymous \s-1DH,\s0 ephemeral \s-1DH\s0 and fixed \s-1DH.\s0 .IP "\fBkECDHr\fR, \fBkECDHe\fR, \fBkECDH\fR" 4 .IX Item "kECDHr, kECDHe, kECDH" cipher suites using fixed \s-1ECDH\s0 key agreement signed by CAs with \s-1RSA\s0 and \s-1ECDSA\s0 keys or either respectively. .IP "\fBkECDHE\fR, \fBkEECDH\fR" 4 .IX Item "kECDHE, kEECDH" cipher suites using ephemeral \s-1ECDH\s0 key agreement, including anonymous cipher suites. .IP "\fB\s-1ECDHE\s0\fR, \fB\s-1EECDH\s0\fR" 4 .IX Item "ECDHE, EECDH" cipher suites using authenticated ephemeral \s-1ECDH\s0 key agreement. .IP "\fB\s-1AECDH\s0\fR" 4 .IX Item "AECDH" anonymous Elliptic Curve Diffie Hellman cipher suites. .IP "\fB\s-1ECDH\s0\fR" 4 .IX Item "ECDH" cipher suites using \s-1ECDH\s0 key exchange, including anonymous, ephemeral and fixed \s-1ECDH.\s0 .IP "\fBaRSA\fR" 4 .IX Item "aRSA" cipher suites using \s-1RSA\s0 authentication, i.e. the certificates carry \s-1RSA\s0 keys. .IP "\fBaDSS\fR, \fB\s-1DSS\s0\fR" 4 .IX Item "aDSS, DSS" cipher suites using \s-1DSS\s0 authentication, i.e. the certificates carry \s-1DSS\s0 keys. .IP "\fBaDH\fR" 4 .IX Item "aDH" cipher suites effectively using \s-1DH\s0 authentication, i.e. the certificates carry \&\s-1DH\s0 keys. .IP "\fBaECDH\fR" 4 .IX Item "aECDH" cipher suites effectively using \s-1ECDH\s0 authentication, i.e. the certificates carry \s-1ECDH\s0 keys. .IP "\fBaECDSA\fR, \fB\s-1ECDSA\s0\fR" 4 .IX Item "aECDSA, ECDSA" cipher suites using \s-1ECDSA\s0 authentication, i.e. the certificates carry \s-1ECDSA\s0 keys. .IP "\fBkFZA\fR, \fBaFZA\fR, \fBeFZA\fR, \fB\s-1FZA\s0\fR" 4 .IX Item "kFZA, aFZA, eFZA, FZA" ciphers suites using \s-1FORTEZZA\s0 key exchange, authentication, encryption or all \&\s-1FORTEZZA\s0 algorithms. Not implemented. .IP "\fBTLSv1.2\fR, \fBTLSv1\fR, \fBSSLv3\fR, \fBSSLv2\fR" 4 .IX Item "TLSv1.2, TLSv1, SSLv3, SSLv2" \&\s-1TLS\s0 v1.2, \s-1TLS\s0 v1.0, \s-1SSL\s0 v3.0 or \s-1SSL\s0 v2.0 cipher suites respectively. Note: there are no ciphersuites specific to \s-1TLS\s0 v1.1. .IP "\fB\s-1AES128\s0\fR, \fB\s-1AES256\s0\fR, \fB\s-1AES\s0\fR" 4 .IX Item "AES128, AES256, AES" cipher suites using 128 bit \s-1AES, 256\s0 bit \s-1AES\s0 or either 128 or 256 bit \s-1AES.\s0 .IP "\fB\s-1AESGCM\s0\fR" 4 .IX Item "AESGCM" \&\s-1AES\s0 in Galois Counter Mode (\s-1GCM\s0): these ciphersuites are only supported in \s-1TLS\s0 v1.2. .IP "\fB\s-1CAMELLIA128\s0\fR, \fB\s-1CAMELLIA256\s0\fR, \fB\s-1CAMELLIA\s0\fR" 4 .IX Item "CAMELLIA128, CAMELLIA256, CAMELLIA" cipher suites using 128 bit \s-1CAMELLIA, 256\s0 bit \s-1CAMELLIA\s0 or either 128 or 256 bit \&\s-1CAMELLIA.\s0 .IP "\fB3DES\fR" 4 .IX Item "3DES" cipher suites using triple \s-1DES.\s0 .IP "\fB\s-1DES\s0\fR" 4 .IX Item "DES" cipher suites using \s-1DES \s0(not triple \s-1DES\s0). .IP "\fB\s-1RC4\s0\fR" 4 .IX Item "RC4" cipher suites using \s-1RC4.\s0 .IP "\fB\s-1RC2\s0\fR" 4 .IX Item "RC2" cipher suites using \s-1RC2.\s0 .IP "\fB\s-1IDEA\s0\fR" 4 .IX Item "IDEA" cipher suites using \s-1IDEA.\s0 .IP "\fB\s-1SEED\s0\fR" 4 .IX Item "SEED" cipher suites using \s-1SEED.\s0 .IP "\fB\s-1MD5\s0\fR" 4 .IX Item "MD5" cipher suites using \s-1MD5.\s0 .IP "\fB\s-1SHA1\s0\fR, \fB\s-1SHA\s0\fR" 4 .IX Item "SHA1, SHA" cipher suites using \s-1SHA1.\s0 .IP "\fB\s-1SHA256\s0\fR, \fB\s-1SHA384\s0\fR" 4 .IX Item "SHA256, SHA384" ciphersuites using \s-1SHA256\s0 or \s-1SHA384.\s0 .IP "\fBaGOST\fR" 4 .IX Item "aGOST" cipher suites using \s-1GOST R 34.10 \s0(either 2001 or 94) for authenticaction (needs an engine supporting \s-1GOST\s0 algorithms). .IP "\fBaGOST01\fR" 4 .IX Item "aGOST01" cipher suites using \s-1GOST R 34.10\-2001\s0 authentication. .IP "\fBaGOST94\fR" 4 .IX Item "aGOST94" cipher suites using \s-1GOST R 34.10\-94\s0 authentication (note that R 34.10\-94 standard has been expired so use \s-1GOST R 34.10\-2001\s0) .IP "\fBkGOST\fR" 4 .IX Item "kGOST" cipher suites, using \s-1VKO 34.10\s0 key exchange, specified in the \s-1RFC 4357.\s0 .IP "\fB\s-1GOST94\s0\fR" 4 .IX Item "GOST94" cipher suites, using \s-1HMAC\s0 based on \s-1GOST R 34.11\-94.\s0 .IP "\fB\s-1GOST89MAC\s0\fR" 4 .IX Item "GOST89MAC" cipher suites using \s-1GOST 28147\-89 MAC \s0\fBinstead of\fR \s-1HMAC.\s0 .IP "\fB\s-1PSK\s0\fR" 4 .IX Item "PSK" cipher suites using pre-shared keys (\s-1PSK\s0). .IP "\fB\s-1SUITEB128\s0\fR, \fB\s-1SUITEB128ONLY\s0\fR, \fB\s-1SUITEB192\s0\fR" 4 .IX Item "SUITEB128, SUITEB128ONLY, SUITEB192" enables suite B mode operation using 128 (permitting 192 bit mode by peer) 128 bit (not permitting 192 bit by peer) or 192 bit level of security respectively. If used these cipherstrings should appear first in the cipher list and anything after them is ignored. Setting Suite B mode has additional consequences required to comply with \s-1RFC6460.\s0 In particular the supported signature algorithms is reduced to support only \s-1ECDSA\s0 and \s-1SHA256\s0 or \s-1SHA384,\s0 only the elliptic curves P\-256 and P\-384 can be used and only the two suite B compliant ciphersuites (\s-1ECDHE\-ECDSA\-AES128\-GCM\-SHA256\s0 and \&\s-1ECDHE\-ECDSA\-AES256\-GCM\-SHA384\s0) are permissible. .SH "CIPHER SUITE NAMES" .IX Header "CIPHER SUITE NAMES" The following lists give the \s-1SSL\s0 or \s-1TLS\s0 cipher suites names from the relevant specification and their OpenSSL equivalents. It should be noted, that several cipher suite names do not include the authentication used, e.g. \s-1DES\-CBC3\-SHA.\s0 In these cases, \s-1RSA\s0 authentication is used. .SS "\s-1SSL\s0 v3.0 cipher suites." .IX Subsection "SSL v3.0 cipher suites." .Vb 10 \& SSL_RSA_WITH_NULL_MD5 NULL\-MD5 \& SSL_RSA_WITH_NULL_SHA NULL\-SHA \& SSL_RSA_EXPORT_WITH_RC4_40_MD5 EXP\-RC4\-MD5 \& SSL_RSA_WITH_RC4_128_MD5 RC4\-MD5 \& SSL_RSA_WITH_RC4_128_SHA RC4\-SHA \& SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5 EXP\-RC2\-CBC\-MD5 \& SSL_RSA_WITH_IDEA_CBC_SHA IDEA\-CBC\-SHA \& SSL_RSA_EXPORT_WITH_DES40_CBC_SHA EXP\-DES\-CBC\-SHA \& SSL_RSA_WITH_DES_CBC_SHA DES\-CBC\-SHA \& SSL_RSA_WITH_3DES_EDE_CBC_SHA DES\-CBC3\-SHA \& \& SSL_DH_DSS_WITH_DES_CBC_SHA DH\-DSS\-DES\-CBC\-SHA \& SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA DH\-DSS\-DES\-CBC3\-SHA \& SSL_DH_RSA_WITH_DES_CBC_SHA DH\-RSA\-DES\-CBC\-SHA \& SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA DH\-RSA\-DES\-CBC3\-SHA \& SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA EXP\-EDH\-DSS\-DES\-CBC\-SHA \& SSL_DHE_DSS_WITH_DES_CBC_SHA EDH\-DSS\-CBC\-SHA \& SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA EDH\-DSS\-DES\-CBC3\-SHA \& SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA EXP\-EDH\-RSA\-DES\-CBC\-SHA \& SSL_DHE_RSA_WITH_DES_CBC_SHA EDH\-RSA\-DES\-CBC\-SHA \& SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA EDH\-RSA\-DES\-CBC3\-SHA \& \& SSL_DH_anon_EXPORT_WITH_RC4_40_MD5 EXP\-ADH\-RC4\-MD5 \& SSL_DH_anon_WITH_RC4_128_MD5 ADH\-RC4\-MD5 \& SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA EXP\-ADH\-DES\-CBC\-SHA \& SSL_DH_anon_WITH_DES_CBC_SHA ADH\-DES\-CBC\-SHA \& SSL_DH_anon_WITH_3DES_EDE_CBC_SHA ADH\-DES\-CBC3\-SHA \& \& SSL_FORTEZZA_KEA_WITH_NULL_SHA Not implemented. \& SSL_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA Not implemented. \& SSL_FORTEZZA_KEA_WITH_RC4_128_SHA Not implemented. .Ve .SS "\s-1TLS\s0 v1.0 cipher suites." .IX Subsection "TLS v1.0 cipher suites." .Vb 10 \& TLS_RSA_WITH_NULL_MD5 NULL\-MD5 \& TLS_RSA_WITH_NULL_SHA NULL\-SHA \& TLS_RSA_EXPORT_WITH_RC4_40_MD5 EXP\-RC4\-MD5 \& TLS_RSA_WITH_RC4_128_MD5 RC4\-MD5 \& TLS_RSA_WITH_RC4_128_SHA RC4\-SHA \& TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 EXP\-RC2\-CBC\-MD5 \& TLS_RSA_WITH_IDEA_CBC_SHA IDEA\-CBC\-SHA \& TLS_RSA_EXPORT_WITH_DES40_CBC_SHA EXP\-DES\-CBC\-SHA \& TLS_RSA_WITH_DES_CBC_SHA DES\-CBC\-SHA \& TLS_RSA_WITH_3DES_EDE_CBC_SHA DES\-CBC3\-SHA \& \& TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA Not implemented. \& TLS_DH_DSS_WITH_DES_CBC_SHA Not implemented. \& TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA Not implemented. \& TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA Not implemented. \& TLS_DH_RSA_WITH_DES_CBC_SHA Not implemented. \& TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA Not implemented. \& TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA EXP\-EDH\-DSS\-DES\-CBC\-SHA \& TLS_DHE_DSS_WITH_DES_CBC_SHA EDH\-DSS\-CBC\-SHA \& TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA EDH\-DSS\-DES\-CBC3\-SHA \& TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA EXP\-EDH\-RSA\-DES\-CBC\-SHA \& TLS_DHE_RSA_WITH_DES_CBC_SHA EDH\-RSA\-DES\-CBC\-SHA \& TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA EDH\-RSA\-DES\-CBC3\-SHA \& \& TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 EXP\-ADH\-RC4\-MD5 \& TLS_DH_anon_WITH_RC4_128_MD5 ADH\-RC4\-MD5 \& TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA EXP\-ADH\-DES\-CBC\-SHA \& TLS_DH_anon_WITH_DES_CBC_SHA ADH\-DES\-CBC\-SHA \& TLS_DH_anon_WITH_3DES_EDE_CBC_SHA ADH\-DES\-CBC3\-SHA .Ve .SS "\s-1AES\s0 ciphersuites from \s-1RFC3268,\s0 extending \s-1TLS\s0 v1.0" .IX Subsection "AES ciphersuites from RFC3268, extending TLS v1.0" .Vb 2 \& TLS_RSA_WITH_AES_128_CBC_SHA AES128\-SHA \& TLS_RSA_WITH_AES_256_CBC_SHA AES256\-SHA \& \& TLS_DH_DSS_WITH_AES_128_CBC_SHA DH\-DSS\-AES128\-SHA \& TLS_DH_DSS_WITH_AES_256_CBC_SHA DH\-DSS\-AES256\-SHA \& TLS_DH_RSA_WITH_AES_128_CBC_SHA DH\-RSA\-AES128\-SHA \& TLS_DH_RSA_WITH_AES_256_CBC_SHA DH\-RSA\-AES256\-SHA \& \& TLS_DHE_DSS_WITH_AES_128_CBC_SHA DHE\-DSS\-AES128\-SHA \& TLS_DHE_DSS_WITH_AES_256_CBC_SHA DHE\-DSS\-AES256\-SHA \& TLS_DHE_RSA_WITH_AES_128_CBC_SHA DHE\-RSA\-AES128\-SHA \& TLS_DHE_RSA_WITH_AES_256_CBC_SHA DHE\-RSA\-AES256\-SHA \& \& TLS_DH_anon_WITH_AES_128_CBC_SHA ADH\-AES128\-SHA \& TLS_DH_anon_WITH_AES_256_CBC_SHA ADH\-AES256\-SHA .Ve .SS "Camellia ciphersuites from \s-1RFC4132,\s0 extending \s-1TLS\s0 v1.0" .IX Subsection "Camellia ciphersuites from RFC4132, extending TLS v1.0" .Vb 2 \& TLS_RSA_WITH_CAMELLIA_128_CBC_SHA CAMELLIA128\-SHA \& TLS_RSA_WITH_CAMELLIA_256_CBC_SHA CAMELLIA256\-SHA \& \& TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA DH\-DSS\-CAMELLIA128\-SHA \& TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA DH\-DSS\-CAMELLIA256\-SHA \& TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA DH\-RSA\-CAMELLIA128\-SHA \& TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA DH\-RSA\-CAMELLIA256\-SHA \& \& TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA DHE\-DSS\-CAMELLIA128\-SHA \& TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA DHE\-DSS\-CAMELLIA256\-SHA \& TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA DHE\-RSA\-CAMELLIA128\-SHA \& TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA DHE\-RSA\-CAMELLIA256\-SHA \& \& TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA ADH\-CAMELLIA128\-SHA \& TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA ADH\-CAMELLIA256\-SHA .Ve .SS "\s-1SEED\s0 ciphersuites from \s-1RFC4162,\s0 extending \s-1TLS\s0 v1.0" .IX Subsection "SEED ciphersuites from RFC4162, extending TLS v1.0" .Vb 1 \& TLS_RSA_WITH_SEED_CBC_SHA SEED\-SHA \& \& TLS_DH_DSS_WITH_SEED_CBC_SHA DH\-DSS\-SEED\-SHA \& TLS_DH_RSA_WITH_SEED_CBC_SHA DH\-RSA\-SEED\-SHA \& \& TLS_DHE_DSS_WITH_SEED_CBC_SHA DHE\-DSS\-SEED\-SHA \& TLS_DHE_RSA_WITH_SEED_CBC_SHA DHE\-RSA\-SEED\-SHA \& \& TLS_DH_anon_WITH_SEED_CBC_SHA ADH\-SEED\-SHA .Ve .SS "\s-1GOST\s0 ciphersuites from draft-chudov-cryptopro-cptls, extending \s-1TLS\s0 v1.0" .IX Subsection "GOST ciphersuites from draft-chudov-cryptopro-cptls, extending TLS v1.0" Note: these ciphers require an engine which including \s-1GOST\s0 cryptographic algorithms, such as the \fBccgost\fR engine, included in the OpenSSL distribution. .PP .Vb 4 \& TLS_GOSTR341094_WITH_28147_CNT_IMIT GOST94\-GOST89\-GOST89 \& TLS_GOSTR341001_WITH_28147_CNT_IMIT GOST2001\-GOST89\-GOST89 \& TLS_GOSTR341094_WITH_NULL_GOSTR3411 GOST94\-NULL\-GOST94 \& TLS_GOSTR341001_WITH_NULL_GOSTR3411 GOST2001\-NULL\-GOST94 .Ve .SS "Additional Export 1024 and other cipher suites" .IX Subsection "Additional Export 1024 and other cipher suites" Note: these ciphers can also be used in \s-1SSL\s0 v3. .PP .Vb 5 \& TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA EXP1024\-DES\-CBC\-SHA \& TLS_RSA_EXPORT1024_WITH_RC4_56_SHA EXP1024\-RC4\-SHA \& TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA EXP1024\-DHE\-DSS\-DES\-CBC\-SHA \& TLS_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA EXP1024\-DHE\-DSS\-RC4\-SHA \& TLS_DHE_DSS_WITH_RC4_128_SHA DHE\-DSS\-RC4\-SHA .Ve .SS "Elliptic curve cipher suites." .IX Subsection "Elliptic curve cipher suites." .Vb 5 \& TLS_ECDH_RSA_WITH_NULL_SHA ECDH\-RSA\-NULL\-SHA \& TLS_ECDH_RSA_WITH_RC4_128_SHA ECDH\-RSA\-RC4\-SHA \& TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA ECDH\-RSA\-DES\-CBC3\-SHA \& TLS_ECDH_RSA_WITH_AES_128_CBC_SHA ECDH\-RSA\-AES128\-SHA \& TLS_ECDH_RSA_WITH_AES_256_CBC_SHA ECDH\-RSA\-AES256\-SHA \& \& TLS_ECDH_ECDSA_WITH_NULL_SHA ECDH\-ECDSA\-NULL\-SHA \& TLS_ECDH_ECDSA_WITH_RC4_128_SHA ECDH\-ECDSA\-RC4\-SHA \& TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA ECDH\-ECDSA\-DES\-CBC3\-SHA \& TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA ECDH\-ECDSA\-AES128\-SHA \& TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA ECDH\-ECDSA\-AES256\-SHA \& \& TLS_ECDHE_RSA_WITH_NULL_SHA ECDHE\-RSA\-NULL\-SHA \& TLS_ECDHE_RSA_WITH_RC4_128_SHA ECDHE\-RSA\-RC4\-SHA \& TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA ECDHE\-RSA\-DES\-CBC3\-SHA \& TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA ECDHE\-RSA\-AES128\-SHA \& TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA ECDHE\-RSA\-AES256\-SHA \& \& TLS_ECDHE_ECDSA_WITH_NULL_SHA ECDHE\-ECDSA\-NULL\-SHA \& TLS_ECDHE_ECDSA_WITH_RC4_128_SHA ECDHE\-ECDSA\-RC4\-SHA \& TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA ECDHE\-ECDSA\-DES\-CBC3\-SHA \& TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA ECDHE\-ECDSA\-AES128\-SHA \& TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA ECDHE\-ECDSA\-AES256\-SHA \& \& TLS_ECDH_anon_WITH_NULL_SHA AECDH\-NULL\-SHA \& TLS_ECDH_anon_WITH_RC4_128_SHA AECDH\-RC4\-SHA \& TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA AECDH\-DES\-CBC3\-SHA \& TLS_ECDH_anon_WITH_AES_128_CBC_SHA AECDH\-AES128\-SHA \& TLS_ECDH_anon_WITH_AES_256_CBC_SHA AECDH\-AES256\-SHA .Ve .SS "\s-1TLS\s0 v1.2 cipher suites" .IX Subsection "TLS v1.2 cipher suites" .Vb 1 \& TLS_RSA_WITH_NULL_SHA256 NULL\-SHA256 \& \& TLS_RSA_WITH_AES_128_CBC_SHA256 AES128\-SHA256 \& TLS_RSA_WITH_AES_256_CBC_SHA256 AES256\-SHA256 \& TLS_RSA_WITH_AES_128_GCM_SHA256 AES128\-GCM\-SHA256 \& TLS_RSA_WITH_AES_256_GCM_SHA384 AES256\-GCM\-SHA384 \& \& TLS_DH_RSA_WITH_AES_128_CBC_SHA256 DH\-RSA\-AES128\-SHA256 \& TLS_DH_RSA_WITH_AES_256_CBC_SHA256 DH\-RSA\-AES256\-SHA256 \& TLS_DH_RSA_WITH_AES_128_GCM_SHA256 DH\-RSA\-AES128\-GCM\-SHA256 \& TLS_DH_RSA_WITH_AES_256_GCM_SHA384 DH\-RSA\-AES256\-GCM\-SHA384 \& \& TLS_DH_DSS_WITH_AES_128_CBC_SHA256 DH\-DSS\-AES128\-SHA256 \& TLS_DH_DSS_WITH_AES_256_CBC_SHA256 DH\-DSS\-AES256\-SHA256 \& TLS_DH_DSS_WITH_AES_128_GCM_SHA256 DH\-DSS\-AES128\-GCM\-SHA256 \& TLS_DH_DSS_WITH_AES_256_GCM_SHA384 DH\-DSS\-AES256\-GCM\-SHA384 \& \& TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 DHE\-RSA\-AES128\-SHA256 \& TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 DHE\-RSA\-AES256\-SHA256 \& TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 DHE\-RSA\-AES128\-GCM\-SHA256 \& TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 DHE\-RSA\-AES256\-GCM\-SHA384 \& \& TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 DHE\-DSS\-AES128\-SHA256 \& TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 DHE\-DSS\-AES256\-SHA256 \& TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 DHE\-DSS\-AES128\-GCM\-SHA256 \& TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 DHE\-DSS\-AES256\-GCM\-SHA384 \& \& TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 ECDH\-RSA\-AES128\-SHA256 \& TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 ECDH\-RSA\-AES256\-SHA384 \& TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 ECDH\-RSA\-AES128\-GCM\-SHA256 \& TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 ECDH\-RSA\-AES256\-GCM\-SHA384 \& \& TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 ECDH\-ECDSA\-AES128\-SHA256 \& TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 ECDH\-ECDSA\-AES256\-SHA384 \& TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 ECDH\-ECDSA\-AES128\-GCM\-SHA256 \& TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 ECDH\-ECDSA\-AES256\-GCM\-SHA384 \& \& TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 ECDHE\-RSA\-AES128\-SHA256 \& TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 ECDHE\-RSA\-AES256\-SHA384 \& TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ECDHE\-RSA\-AES128\-GCM\-SHA256 \& TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 ECDHE\-RSA\-AES256\-GCM\-SHA384 \& \& TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 ECDHE\-ECDSA\-AES128\-SHA256 \& TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 ECDHE\-ECDSA\-AES256\-SHA384 \& TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 ECDHE\-ECDSA\-AES128\-GCM\-SHA256 \& TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 ECDHE\-ECDSA\-AES256\-GCM\-SHA384 \& \& TLS_DH_anon_WITH_AES_128_CBC_SHA256 ADH\-AES128\-SHA256 \& TLS_DH_anon_WITH_AES_256_CBC_SHA256 ADH\-AES256\-SHA256 \& TLS_DH_anon_WITH_AES_128_GCM_SHA256 ADH\-AES128\-GCM\-SHA256 \& TLS_DH_anon_WITH_AES_256_GCM_SHA384 ADH\-AES256\-GCM\-SHA384 .Ve .SS "Pre shared keying (\s-1PSK\s0) cipheruites" .IX Subsection "Pre shared keying (PSK) cipheruites" .Vb 4 \& TLS_PSK_WITH_RC4_128_SHA PSK\-RC4\-SHA \& TLS_PSK_WITH_3DES_EDE_CBC_SHA PSK\-3DES\-EDE\-CBC\-SHA \& TLS_PSK_WITH_AES_128_CBC_SHA PSK\-AES128\-CBC\-SHA \& TLS_PSK_WITH_AES_256_CBC_SHA PSK\-AES256\-CBC\-SHA .Ve .SS "Deprecated \s-1SSL\s0 v2.0 cipher suites." .IX Subsection "Deprecated SSL v2.0 cipher suites." .Vb 7 \& SSL_CK_RC4_128_WITH_MD5 RC4\-MD5 \& SSL_CK_RC4_128_EXPORT40_WITH_MD5 Not implemented. \& SSL_CK_RC2_128_CBC_WITH_MD5 RC2\-CBC\-MD5 \& SSL_CK_RC2_128_CBC_EXPORT40_WITH_MD5 Not implemented. \& SSL_CK_IDEA_128_CBC_WITH_MD5 IDEA\-CBC\-MD5 \& SSL_CK_DES_64_CBC_WITH_MD5 Not implemented. \& SSL_CK_DES_192_EDE3_CBC_WITH_MD5 DES\-CBC3\-MD5 .Ve .SH "NOTES" .IX Header "NOTES" Some compiled versions of OpenSSL may not include all the ciphers listed here because some ciphers were excluded at compile time. .SH "EXAMPLES" .IX Header "EXAMPLES" Verbose listing of all OpenSSL ciphers including \s-1NULL\s0 ciphers: .PP .Vb 1 \& openssl ciphers \-v \*(AqALL:eNULL\*(Aq .Ve .PP Include all ciphers except \s-1NULL\s0 and anonymous \s-1DH\s0 then sort by strength: .PP .Vb 1 \& openssl ciphers \-v \*(AqALL:!ADH:@STRENGTH\*(Aq .Ve .PP Include all ciphers except ones with no encryption (eNULL) or no authentication (aNULL): .PP .Vb 1 \& openssl ciphers \-v \*(AqALL:!aNULL\*(Aq .Ve .PP Include only 3DES ciphers and then place \s-1RSA\s0 ciphers last: .PP .Vb 1 \& openssl ciphers \-v \*(Aq3DES:+RSA\*(Aq .Ve .PP Include all \s-1RC4\s0 ciphers but leave out those without authentication: .PP .Vb 1 \& openssl ciphers \-v \*(AqRC4:!COMPLEMENTOFDEFAULT\*(Aq .Ve .PP Include all chiphers with \s-1RSA\s0 authentication but leave out ciphers without encryption. .PP .Vb 1 \& openssl ciphers \-v \*(AqRSA:!COMPLEMENTOFALL\*(Aq .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIs_client\fR\|(1), \fIs_server\fR\|(1), \fIssl\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" The \fB\s-1COMPLENTOFALL\s0\fR and \fB\s-1COMPLEMENTOFDEFAULT\s0\fR selection options for cipherlist strings were added in OpenSSL 0.9.7. The \fB\-V\fR option for the \fBciphers\fR command was added in OpenSSL 1.0.0. man1/dsaparam.1ssl000064400000016333147210250140007776 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DSAPARAM 1" .TH DSAPARAM 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" dsaparam \- DSA parameter manipulation and generation .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl dsaparam\fR [\fB\-inform DER|PEM\fR] [\fB\-outform DER|PEM\fR] [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-noout\fR] [\fB\-text\fR] [\fB\-C\fR] [\fB\-rand file(s)\fR] [\fB\-genkey\fR] [\fB\-engine id\fR] [\fBnumbits\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" This command is used to manipulate or generate \s-1DSA\s0 parameter files. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-inform DER|PEM\fR" 4 .IX Item "-inform DER|PEM" This specifies the input format. The \fB\s-1DER\s0\fR option uses an \s-1ASN1 DER\s0 encoded form compatible with \s-1RFC2459 \s0(\s-1PKIX\s0) DSS-Parms that is a \s-1SEQUENCE\s0 consisting of p, q and g respectively. The \s-1PEM\s0 form is the default format: it consists of the \fB\s-1DER\s0\fR format base64 encoded with additional header and footer lines. .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read parameters from or standard input if this option is not specified. If the \fBnumbits\fR parameter is included then this option will be ignored. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" This specifies the output filename parameters to. Standard output is used if this option is not present. The output filename should \fBnot\fR be the same as the input filename. .IP "\fB\-noout\fR" 4 .IX Item "-noout" this option inhibits the output of the encoded version of the parameters. .IP "\fB\-text\fR" 4 .IX Item "-text" this option prints out the \s-1DSA\s0 parameters in human readable form. .IP "\fB\-C\fR" 4 .IX Item "-C" this option converts the parameters into C code. The parameters can then be loaded by calling the \fB\f(BIget_dsaXXX()\fB\fR function. .IP "\fB\-genkey\fR" 4 .IX Item "-genkey" this option will generate a \s-1DSA\s0 either using the specified or generated parameters. .IP "\fB\-rand file(s)\fR" 4 .IX Item "-rand file(s)" a file or files containing random data used to seed the random number generator, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). Multiple files can be specified separated by a OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fBnumbits\fR" 4 .IX Item "numbits" this option specifies that a parameter set should be generated of size \&\fBnumbits\fR. It must be the last option. If this option is included then the input file (if any) is ignored. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBdsaparam\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .SH "NOTES" .IX Header "NOTES" \&\s-1PEM\s0 format \s-1DSA\s0 parameters use the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN DSA PARAMETERS\-\-\-\-\- \& \-\-\-\-\-END DSA PARAMETERS\-\-\-\-\- .Ve .PP \&\s-1DSA\s0 parameter generation is a slow process and as a result the same set of \&\s-1DSA\s0 parameters is often used to generate several distinct keys. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIgendsa\fR\|(1), \fIdsa\fR\|(1), \fIgenrsa\fR\|(1), \&\fIrsa\fR\|(1) man1/s_time.1ssl000064400000025517147210250140007472 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "S_TIME 1" .TH S_TIME 1 "2017-06-30" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" s_time \- SSL/TLS performance timing program .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBs_time\fR [\fB\-connect host:port\fR] [\fB\-www page\fR] [\fB\-cert filename\fR] [\fB\-key filename\fR] [\fB\-CApath directory\fR] [\fB\-CAfile filename\fR] [\fB\-trusted_first\fR] [\fB\-reuse\fR] [\fB\-new\fR] [\fB\-verify depth\fR] [\fB\-nbio\fR] [\fB\-time seconds\fR] [\fB\-ssl2\fR] [\fB\-ssl3\fR] [\fB\-bugs\fR] [\fB\-cipher cipherlist\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBs_time\fR command implements a generic \s-1SSL/TLS\s0 client which connects to a remote host using \s-1SSL/TLS.\s0 It can request a page from the server and includes the time to transfer the payload data in its timing measurements. It measures the number of connections within a given timeframe, the amount of data transferred (if any), and calculates the average time spent for one connection. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-connect host:port\fR" 4 .IX Item "-connect host:port" This specifies the host and optional port to connect to. .IP "\fB\-www page\fR" 4 .IX Item "-www page" This specifies the page to \s-1GET\s0 from the server. A value of '/' gets the index.htm[l] page. If this parameter is not specified, then \fBs_time\fR will only perform the handshake to establish \s-1SSL\s0 connections but not transfer any payload data. .IP "\fB\-cert certname\fR" 4 .IX Item "-cert certname" The certificate to use, if one is requested by the server. The default is not to use a certificate. The file is in \s-1PEM\s0 format. .IP "\fB\-key keyfile\fR" 4 .IX Item "-key keyfile" The private key to use. If not specified then the certificate file will be used. The file is in \s-1PEM\s0 format. .IP "\fB\-verify depth\fR" 4 .IX Item "-verify depth" The verify depth to use. This specifies the maximum length of the server certificate chain and turns on server certificate verification. Currently the verify operation continues after errors so all the problems with a certificate chain can be seen. As a side effect the connection will never fail due to a server certificate verify failure. .IP "\fB\-CApath directory\fR" 4 .IX Item "-CApath directory" The directory to use for server certificate verification. This directory must be in \*(L"hash format\*(R", see \fBverify\fR for more information. These are also used when building the client certificate chain. .IP "\fB\-CAfile file\fR" 4 .IX Item "-CAfile file" A file containing trusted certificates to use during server authentication and to use when attempting to build the client certificate chain. .IP "\fB\-trusted_first\fR" 4 .IX Item "-trusted_first" Use certificates in \s-1CA\s0 file or \s-1CA\s0 directory over the certificates provided by the server when building the trust chain to verify server certificate. This is mainly useful in environments with Bridge \s-1CA\s0 or Cross-Certified CAs. .IP "\fB\-new\fR" 4 .IX Item "-new" performs the timing test using a new session \s-1ID\s0 for each connection. If neither \fB\-new\fR nor \fB\-reuse\fR are specified, they are both on by default and executed in sequence. .IP "\fB\-reuse\fR" 4 .IX Item "-reuse" performs the timing test using the same session \s-1ID\s0; this can be used as a test that session caching is working. If neither \fB\-new\fR nor \fB\-reuse\fR are specified, they are both on by default and executed in sequence. .IP "\fB\-nbio\fR" 4 .IX Item "-nbio" turns on non-blocking I/O. .IP "\fB\-ssl2\fR, \fB\-ssl3\fR" 4 .IX Item "-ssl2, -ssl3" these options disable the use of certain \s-1SSL\s0 or \s-1TLS\s0 protocols. By default the initial handshake uses a method which should be compatible with all servers and permit them to use \s-1SSL\s0 v3, \s-1SSL\s0 v2 or \s-1TLS\s0 as appropriate. The timing program is not as rich in options to turn protocols on and off as the \fIs_client\fR\|(1) program and may not connect to all servers. .Sp Unfortunately there are a lot of ancient and broken servers in use which cannot handle this technique and will fail to connect. Some servers only work if \s-1TLS\s0 is turned off with the \fB\-ssl3\fR option; others will only support \s-1SSL\s0 v2 and may need the \fB\-ssl2\fR option. .IP "\fB\-bugs\fR" 4 .IX Item "-bugs" there are several known bug in \s-1SSL\s0 and \s-1TLS\s0 implementations. Adding this option enables various workarounds. .IP "\fB\-cipher cipherlist\fR" 4 .IX Item "-cipher cipherlist" this allows the cipher list sent by the client to be modified. Although the server determines which cipher suite is used it should take the first supported cipher in the list sent by the client. See the \fIciphers\fR\|(1) command for more information. .IP "\fB\-time length\fR" 4 .IX Item "-time length" specifies how long (in seconds) \fBs_time\fR should establish connections and optionally transfer payload data from a server. Server and client performance and the link speed determine how many connections \fBs_time\fR can establish. .SH "NOTES" .IX Header "NOTES" \&\fBs_time\fR can be used to measure the performance of an \s-1SSL\s0 connection. To connect to an \s-1SSL HTTP\s0 server and get the default page the command .PP .Vb 1 \& openssl s_time \-connect servername:443 \-www / \-CApath yourdir \-CAfile yourfile.pem \-cipher commoncipher [\-ssl3] .Ve .PP would typically be used (https uses port 443). 'commoncipher' is a cipher to which both client and server can agree, see the \fIciphers\fR\|(1) command for details. .PP If the handshake fails then there are several possible causes, if it is nothing obvious like no client certificate then the \fB\-bugs\fR, \fB\-ssl2\fR, \&\fB\-ssl3\fR options can be tried in case it is a buggy server. In particular you should play with these options \fBbefore\fR submitting a bug report to an OpenSSL mailing list. .PP A frequent problem when attempting to get client certificates working is that a web client complains it has no certificates or gives an empty list to choose from. This is normally because the server is not sending the clients certificate authority in its \*(L"acceptable \s-1CA\s0 list\*(R" when it requests a certificate. By using \fIs_client\fR\|(1) the \s-1CA\s0 list can be viewed and checked. However some servers only request client authentication after a specific \s-1URL\s0 is requested. To obtain the list in this case it is necessary to use the \fB\-prexit\fR option of \fIs_client\fR\|(1) and send an \s-1HTTP\s0 request for an appropriate page. .PP If a certificate is specified on the command line using the \fB\-cert\fR option it will not be used unless the server specifically requests a client certificate. Therefor merely including a client certificate on the command line is no guarantee that the certificate works. .SH "BUGS" .IX Header "BUGS" Because this program does not have all the options of the \&\fIs_client\fR\|(1) program to turn protocols on and off, you may not be able to measure the performance of all protocols with all servers. .PP The \fB\-verify\fR option should really exit if the server verification fails. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIs_client\fR\|(1), \fIs_server\fR\|(1), \fIciphers\fR\|(1) man1/sslpasswd.1ssl000064400000013664147210250140010235 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PASSWD 1" .TH PASSWD 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" passwd \- compute password hashes .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl passwd\fR [\fB\-crypt\fR] [\fB\-1\fR] [\fB\-apr1\fR] [\fB\-salt\fR \fIstring\fR] [\fB\-in\fR \fIfile\fR] [\fB\-stdin\fR] [\fB\-noverify\fR] [\fB\-quiet\fR] [\fB\-table\fR] {\fIpassword\fR} .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBpasswd\fR command computes the hash of a password typed at run-time or the hash of each password in a list. The password list is taken from the named file for option \fB\-in file\fR, from stdin for option \fB\-stdin\fR, or from the command line, or from the terminal otherwise. The Unix standard algorithm \fBcrypt\fR and the MD5\-based \s-1BSD\s0 password algorithm \fB1\fR and its Apache variant \fBapr1\fR are available. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-crypt\fR" 4 .IX Item "-crypt" Use the \fBcrypt\fR algorithm (default). .IP "\fB\-1\fR" 4 .IX Item "-1" Use the \s-1MD5\s0 based \s-1BSD\s0 password algorithm \fB1\fR. .IP "\fB\-apr1\fR" 4 .IX Item "-apr1" Use the \fBapr1\fR algorithm (Apache variant of the \s-1BSD\s0 algorithm). .IP "\fB\-salt\fR \fIstring\fR" 4 .IX Item "-salt string" Use the specified salt. When reading a password from the terminal, this implies \fB\-noverify\fR. .IP "\fB\-in\fR \fIfile\fR" 4 .IX Item "-in file" Read passwords from \fIfile\fR. .IP "\fB\-stdin\fR" 4 .IX Item "-stdin" Read passwords from \fBstdin\fR. .IP "\fB\-noverify\fR" 4 .IX Item "-noverify" Don't verify when reading a password from the terminal. .IP "\fB\-quiet\fR" 4 .IX Item "-quiet" Don't output warnings when passwords given at the command line are truncated. .IP "\fB\-table\fR" 4 .IX Item "-table" In the output list, prepend the cleartext password and a \s-1TAB\s0 character to each password hash. .SH "EXAMPLES" .IX Header "EXAMPLES" \&\fBopenssl passwd \-crypt \-salt xx password\fR prints \fBxxj31ZMTZzkVA\fR. .PP \&\fBopenssl passwd \-1 \-salt xxxxxxxx password\fR prints \fB\f(CB$1\fB$xxxxxxxx$UYCIxa628.9qXjpQCjM4a.\fR. .PP \&\fBopenssl passwd \-apr1 \-salt xxxxxxxx password\fR prints \fB\f(CB$apr1\fB$xxxxxxxx$dxHfLAsjHkDRmG83UXe8K0\fR. man1/pkey.1ssl000064400000017376147210250140007166 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PKEY 1" .TH PKEY 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" pkey \- public or private key processing tool .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBpkey\fR [\fB\-inform PEM|DER\fR] [\fB\-outform PEM|DER\fR] [\fB\-in filename\fR] [\fB\-passin arg\fR] [\fB\-out filename\fR] [\fB\-passout arg\fR] [\fB\-cipher\fR] [\fB\-text\fR] [\fB\-text_pub\fR] [\fB\-noout\fR] [\fB\-pubin\fR] [\fB\-pubout\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBpkey\fR command processes public or private keys. They can be converted between various forms and their components printed out. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-inform DER|PEM\fR" 4 .IX Item "-inform DER|PEM" This specifies the input format \s-1DER\s0 or \s-1PEM.\s0 .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read a key from or standard input if this option is not specified. If the key is encrypted a pass phrase will be prompted for. .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the input file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" This specifies the output filename to write a key to or standard output if this option is not specified. If any encryption options are set then a pass phrase will be prompted for. The output filename should \fBnot\fR be the same as the input filename. .IP "\fB\-passout password\fR" 4 .IX Item "-passout password" the output file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-cipher\fR" 4 .IX Item "-cipher" These options encrypt the private key with the supplied cipher. Any algorithm name accepted by \fIEVP_get_cipherbyname()\fR is acceptable such as \fBdes3\fR. .IP "\fB\-text\fR" 4 .IX Item "-text" prints out the various public or private key components in plain text in addition to the encoded version. .IP "\fB\-text_pub\fR" 4 .IX Item "-text_pub" print out only public key components even if a private key is being processed. .IP "\fB\-noout\fR" 4 .IX Item "-noout" do not output the encoded version of the key. .IP "\fB\-pubin\fR" 4 .IX Item "-pubin" by default a private key is read from the input file: with this option a public key is read instead. .IP "\fB\-pubout\fR" 4 .IX Item "-pubout" by default a private key is output: with this option a public key will be output instead. This option is automatically set if the input is a public key. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBpkey\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .SH "EXAMPLES" .IX Header "EXAMPLES" To remove the pass phrase on an \s-1RSA\s0 private key: .PP .Vb 1 \& openssl pkey \-in key.pem \-out keyout.pem .Ve .PP To encrypt a private key using triple \s-1DES:\s0 .PP .Vb 1 \& openssl pkey \-in key.pem \-des3 \-out keyout.pem .Ve .PP To convert a private key from \s-1PEM\s0 to \s-1DER\s0 format: .PP .Vb 1 \& openssl pkey \-in key.pem \-outform DER \-out keyout.der .Ve .PP To print out the components of a private key to standard output: .PP .Vb 1 \& openssl pkey \-in key.pem \-text \-noout .Ve .PP To print out the public components of a private key to standard output: .PP .Vb 1 \& openssl pkey \-in key.pem \-text_pub \-noout .Ve .PP To just output the public part of a private key: .PP .Vb 1 \& openssl pkey \-in key.pem \-pubout \-out pubkey.pem .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIgenpkey\fR\|(1), \fIrsa\fR\|(1), \fIpkcs8\fR\|(1), \&\fIdsa\fR\|(1), \fIgenrsa\fR\|(1), \fIgendsa\fR\|(1) man1/openssl.1ssl000064400000037302147210250140007670 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "OPENSSL 1" .TH OPENSSL 1 "2017-06-30" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl \- OpenSSL command line tool .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \&\fIcommand\fR [ \fIcommand_opts\fR ] [ \fIcommand_args\fR ] .PP \&\fBopenssl\fR [ \fBlist-standard-commands\fR | \fBlist-message-digest-commands\fR | \fBlist-cipher-commands\fR | \fBlist-cipher-algorithms\fR | \fBlist-message-digest-algorithms\fR | \fBlist-public-key-algorithms\fR] .PP \&\fBopenssl\fR \fBno\-\fR\fI\s-1XXX\s0\fR [ \fIarbitrary options\fR ] .SH "DESCRIPTION" .IX Header "DESCRIPTION" OpenSSL is a cryptography toolkit implementing the Secure Sockets Layer (\s-1SSL\s0 v2/v3) and Transport Layer Security (\s-1TLS\s0 v1) network protocols and related cryptography standards required by them. .PP The \fBopenssl\fR program is a command line tool for using the various cryptography functions of OpenSSL's \fBcrypto\fR library from the shell. It can be used for .PP .Vb 8 \& o Creation and management of private keys, public keys and parameters \& o Public key cryptographic operations \& o Creation of X.509 certificates, CSRs and CRLs \& o Calculation of Message Digests \& o Encryption and Decryption with Ciphers \& o SSL/TLS Client and Server Tests \& o Handling of S/MIME signed or encrypted mail \& o Time Stamp requests, generation and verification .Ve .SH "COMMAND SUMMARY" .IX Header "COMMAND SUMMARY" The \fBopenssl\fR program provides a rich variety of commands (\fIcommand\fR in the \&\s-1SYNOPSIS\s0 above), each of which often has a wealth of options and arguments (\fIcommand_opts\fR and \fIcommand_args\fR in the \s-1SYNOPSIS\s0). .PP The pseudo-commands \fBlist-standard-commands\fR, \fBlist-message-digest-commands\fR, and \fBlist-cipher-commands\fR output a list (one entry per line) of the names of all standard commands, message digest commands, or cipher commands, respectively, that are available in the present \fBopenssl\fR utility. .PP The pseudo-commands \fBlist-cipher-algorithms\fR and \&\fBlist-message-digest-algorithms\fR list all cipher and message digest names, one entry per line. Aliases are listed as: .PP .Vb 1 \& from => to .Ve .PP The pseudo-command \fBlist-public-key-algorithms\fR lists all supported public key algorithms. .PP The pseudo-command \fBno\-\fR\fI\s-1XXX\s0\fR tests whether a command of the specified name is available. If no command named \fI\s-1XXX\s0\fR exists, it returns 0 (success) and prints \fBno\-\fR\fI\s-1XXX\s0\fR; otherwise it returns 1 and prints \fI\s-1XXX\s0\fR. In both cases, the output goes to \fBstdout\fR and nothing is printed to \fBstderr\fR. Additional command line arguments are always ignored. Since for each cipher there is a command of the same name, this provides an easy way for shell scripts to test for the availability of ciphers in the \fBopenssl\fR program. (\fBno\-\fR\fI\s-1XXX\s0\fR is not able to detect pseudo-commands such as \fBquit\fR, \&\fBlist\-\fR\fI...\fR\fB\-commands\fR, or \fBno\-\fR\fI\s-1XXX\s0\fR itself.) .SS "\s-1STANDARD COMMANDS\s0" .IX Subsection "STANDARD COMMANDS" .IP "\fBasn1parse\fR" 10 .IX Item "asn1parse" Parse an \s-1ASN.1\s0 sequence. .IP "\fBca\fR" 10 .IX Item "ca" Certificate Authority (\s-1CA\s0) Management. .IP "\fBciphers\fR" 10 .IX Item "ciphers" Cipher Suite Description Determination. .IP "\fBcms\fR" 10 .IX Item "cms" \&\s-1CMS \s0(Cryptographic Message Syntax) utility .IP "\fBcrl\fR" 10 .IX Item "crl" Certificate Revocation List (\s-1CRL\s0) Management. .IP "\fBcrl2pkcs7\fR" 10 .IX Item "crl2pkcs7" \&\s-1CRL\s0 to PKCS#7 Conversion. .IP "\fBdgst\fR" 10 .IX Item "dgst" Message Digest Calculation. .IP "\fBdh\fR" 10 .IX Item "dh" Diffie-Hellman Parameter Management. Obsoleted by \fBdhparam\fR. .IP "\fBdhparam\fR" 10 .IX Item "dhparam" Generation and Management of Diffie-Hellman Parameters. Superseded by \&\fBgenpkey\fR and \fBpkeyparam\fR .IP "\fBdsa\fR" 10 .IX Item "dsa" \&\s-1DSA\s0 Data Management. .IP "\fBdsaparam\fR" 10 .IX Item "dsaparam" \&\s-1DSA\s0 Parameter Generation and Management. Superseded by \&\fBgenpkey\fR and \fBpkeyparam\fR .IP "\fBec\fR" 10 .IX Item "ec" \&\s-1EC \s0(Elliptic curve) key processing .IP "\fBecparam\fR" 10 .IX Item "ecparam" \&\s-1EC\s0 parameter manipulation and generation .IP "\fBenc\fR" 10 .IX Item "enc" Encoding with Ciphers. .IP "\fBengine\fR" 10 .IX Item "engine" Engine (loadble module) information and manipulation. .IP "\fBerrstr\fR" 10 .IX Item "errstr" Error Number to Error String Conversion. .IP "\fBgendh\fR" 10 .IX Item "gendh" Generation of Diffie-Hellman Parameters. Obsoleted by \fBdhparam\fR. .IP "\fBgendsa\fR" 10 .IX Item "gendsa" Generation of \s-1DSA\s0 Private Key from Parameters. Superseded by \&\fBgenpkey\fR and \fBpkey\fR .IP "\fBgenpkey\fR" 10 .IX Item "genpkey" Generation of Private Key or Parameters. .IP "\fBgenrsa\fR" 10 .IX Item "genrsa" Generation of \s-1RSA\s0 Private Key. Superceded by \fBgenpkey\fR. .IP "\fBnseq\fR" 10 .IX Item "nseq" Create or examine a netscape certificate sequence .IP "\fBocsp\fR" 10 .IX Item "ocsp" Online Certificate Status Protocol utility. .IP "\fBpasswd\fR" 10 .IX Item "passwd" Generation of hashed passwords. .IP "\fBpkcs12\fR" 10 .IX Item "pkcs12" PKCS#12 Data Management. .IP "\fBpkcs7\fR" 10 .IX Item "pkcs7" PKCS#7 Data Management. .IP "\fBpkey\fR" 10 .IX Item "pkey" Public and private key management. .IP "\fBpkeyparam\fR" 10 .IX Item "pkeyparam" Public key algorithm parameter management. .IP "\fBpkeyutl\fR" 10 .IX Item "pkeyutl" Public key algorithm cryptographic operation utility. .IP "\fBrand\fR" 10 .IX Item "rand" Generate pseudo-random bytes. .IP "\fBreq\fR" 10 .IX Item "req" PKCS#10 X.509 Certificate Signing Request (\s-1CSR\s0) Management. .IP "\fBrsa\fR" 10 .IX Item "rsa" \&\s-1RSA\s0 key management. .IP "\fBrsautl\fR" 10 .IX Item "rsautl" \&\s-1RSA\s0 utility for signing, verification, encryption, and decryption. Superseded by \fBpkeyutl\fR .IP "\fBs_client\fR" 10 .IX Item "s_client" This implements a generic \s-1SSL/TLS\s0 client which can establish a transparent connection to a remote server speaking \s-1SSL/TLS.\s0 It's intended for testing purposes only and provides only rudimentary interface functionality but internally uses mostly all functionality of the OpenSSL \fBssl\fR library. .IP "\fBs_server\fR" 10 .IX Item "s_server" This implements a generic \s-1SSL/TLS\s0 server which accepts connections from remote clients speaking \s-1SSL/TLS.\s0 It's intended for testing purposes only and provides only rudimentary interface functionality but internally uses mostly all functionality of the OpenSSL \fBssl\fR library. It provides both an own command line oriented protocol for testing \s-1SSL\s0 functions and a simple \s-1HTTP\s0 response facility to emulate an SSL/TLS\-aware webserver. .IP "\fBs_time\fR" 10 .IX Item "s_time" \&\s-1SSL\s0 Connection Timer. .IP "\fBsess_id\fR" 10 .IX Item "sess_id" \&\s-1SSL\s0 Session Data Management. .IP "\fBsmime\fR" 10 .IX Item "smime" S/MIME mail processing. .IP "\fBspeed\fR" 10 .IX Item "speed" Algorithm Speed Measurement. .IP "\fBspkac\fR" 10 .IX Item "spkac" \&\s-1SPKAC\s0 printing and generating utility .IP "\fBts\fR" 10 .IX Item "ts" Time Stamping Authority tool (client/server) .IP "\fBverify\fR" 10 .IX Item "verify" X.509 Certificate Verification. .IP "\fBversion\fR" 10 .IX Item "version" OpenSSL Version Information. .IP "\fBx509\fR" 10 .IX Item "x509" X.509 Certificate Data Management. .SS "\s-1MESSAGE DIGEST COMMANDS\s0" .IX Subsection "MESSAGE DIGEST COMMANDS" .IP "\fBmd2\fR" 10 .IX Item "md2" \&\s-1MD2\s0 Digest .IP "\fBmd5\fR" 10 .IX Item "md5" \&\s-1MD5\s0 Digest .IP "\fBmdc2\fR" 10 .IX Item "mdc2" \&\s-1MDC2\s0 Digest .IP "\fBrmd160\fR" 10 .IX Item "rmd160" \&\s-1RMD\-160\s0 Digest .IP "\fBsha\fR" 10 .IX Item "sha" \&\s-1SHA\s0 Digest .IP "\fBsha1\fR" 10 .IX Item "sha1" \&\s-1SHA\-1\s0 Digest .IP "\fBsha224\fR" 10 .IX Item "sha224" \&\s-1SHA\-224\s0 Digest .IP "\fBsha256\fR" 10 .IX Item "sha256" \&\s-1SHA\-256\s0 Digest .IP "\fBsha384\fR" 10 .IX Item "sha384" \&\s-1SHA\-384\s0 Digest .IP "\fBsha512\fR" 10 .IX Item "sha512" \&\s-1SHA\-512\s0 Digest .SS "\s-1ENCODING AND CIPHER COMMANDS\s0" .IX Subsection "ENCODING AND CIPHER COMMANDS" .IP "\fBbase64\fR" 10 .IX Item "base64" Base64 Encoding .IP "\fBbf bf-cbc bf-cfb bf-ecb bf-ofb\fR" 10 .IX Item "bf bf-cbc bf-cfb bf-ecb bf-ofb" Blowfish Cipher .IP "\fBcast cast-cbc\fR" 10 .IX Item "cast cast-cbc" \&\s-1CAST\s0 Cipher .IP "\fBcast5\-cbc cast5\-cfb cast5\-ecb cast5\-ofb\fR" 10 .IX Item "cast5-cbc cast5-cfb cast5-ecb cast5-ofb" \&\s-1CAST5\s0 Cipher .IP "\fBdes des-cbc des-cfb des-ecb des-ede des-ede-cbc des-ede-cfb des-ede-ofb des-ofb\fR" 10 .IX Item "des des-cbc des-cfb des-ecb des-ede des-ede-cbc des-ede-cfb des-ede-ofb des-ofb" \&\s-1DES\s0 Cipher .IP "\fBdes3 desx des\-ede3 des\-ede3\-cbc des\-ede3\-cfb des\-ede3\-ofb\fR" 10 .IX Item "des3 desx des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb" Triple-DES Cipher .IP "\fBidea idea-cbc idea-cfb idea-ecb idea-ofb\fR" 10 .IX Item "idea idea-cbc idea-cfb idea-ecb idea-ofb" \&\s-1IDEA\s0 Cipher .IP "\fBrc2 rc2\-cbc rc2\-cfb rc2\-ecb rc2\-ofb\fR" 10 .IX Item "rc2 rc2-cbc rc2-cfb rc2-ecb rc2-ofb" \&\s-1RC2\s0 Cipher .IP "\fBrc4\fR" 10 .IX Item "rc4" \&\s-1RC4\s0 Cipher .IP "\fBrc5 rc5\-cbc rc5\-cfb rc5\-ecb rc5\-ofb\fR" 10 .IX Item "rc5 rc5-cbc rc5-cfb rc5-ecb rc5-ofb" \&\s-1RC5\s0 Cipher .SH "PASS PHRASE ARGUMENTS" .IX Header "PASS PHRASE ARGUMENTS" Several commands accept password arguments, typically using \fB\-passin\fR and \fB\-passout\fR for input and output passwords respectively. These allow the password to be obtained from a variety of sources. Both of these options take a single argument whose format is described below. If no password argument is given and a password is required then the user is prompted to enter one: this will typically be read from the current terminal with echoing turned off. .IP "\fBpass:password\fR" 10 .IX Item "pass:password" the actual password is \fBpassword\fR. Since the password is visible to utilities (like 'ps' under Unix) this form should only be used where security is not important. .IP "\fBenv:var\fR" 10 .IX Item "env:var" obtain the password from the environment variable \fBvar\fR. Since the environment of other processes is visible on certain platforms (e.g. ps under certain Unix OSes) this option should be used with caution. .IP "\fBfile:pathname\fR" 10 .IX Item "file:pathname" the first line of \fBpathname\fR is the password. If the same \fBpathname\fR argument is supplied to \fB\-passin\fR and \fB\-passout\fR arguments then the first line will be used for the input password and the next line for the output password. \fBpathname\fR need not refer to a regular file: it could for example refer to a device or named pipe. .IP "\fBfd:number\fR" 10 .IX Item "fd:number" read the password from the file descriptor \fBnumber\fR. This can be used to send the data via a pipe for example. .IP "\fBstdin\fR" 10 .IX Item "stdin" read the password from standard input. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIasn1parse\fR\|(1), \fIca\fR\|(1), \fIconfig\fR\|(5), \&\fIcrl\fR\|(1), \fIcrl2pkcs7\fR\|(1), \fIdgst\fR\|(1), \&\fIdhparam\fR\|(1), \fIdsa\fR\|(1), \fIdsaparam\fR\|(1), \&\fIenc\fR\|(1), \fIgendsa\fR\|(1), \fIgenpkey\fR\|(1), \&\fIgenrsa\fR\|(1), \fInseq\fR\|(1), \fIopenssl\fR\|(1), \&\fIsslpasswd\fR\|(1), \&\fIpkcs12\fR\|(1), \fIpkcs7\fR\|(1), \fIpkcs8\fR\|(1), \&\fIsslrand\fR\|(1), \fIreq\fR\|(1), \fIrsa\fR\|(1), \&\fIrsautl\fR\|(1), \fIs_client\fR\|(1), \&\fIs_server\fR\|(1), \fIs_time\fR\|(1), \&\fIsmime\fR\|(1), \fIspkac\fR\|(1), \&\fIverify\fR\|(1), \fIversion\fR\|(1), \fIx509\fR\|(1), \&\fIcrypto\fR\|(3), \fIssl\fR\|(3), \fIx509v3_config\fR\|(5) .SH "HISTORY" .IX Header "HISTORY" The \fIopenssl\fR\|(1) document appeared in OpenSSL 0.9.2. The \fBlist\-\fR\fI\s-1XXX\s0\fR\fB\-commands\fR pseudo-commands were added in OpenSSL 0.9.3; The \fBlist\-\fR\fI\s-1XXX\s0\fR\fB\-algorithms\fR pseudo-commands were added in OpenSSL 1.0.0; the \fBno\-\fR\fI\s-1XXX\s0\fR pseudo-commands were added in OpenSSL 0.9.5a. For notes on the availability of other commands, see their individual manual pages. man1/s_server.1ssl000064400000046445147210250140010045 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "S_SERVER 1" .TH S_SERVER 1 "2017-06-30" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" s_server \- SSL/TLS server program .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBs_server\fR [\fB\-accept port\fR] [\fB\-context id\fR] [\fB\-verify depth\fR] [\fB\-Verify depth\fR] [\fB\-crl_check\fR] [\fB\-crl_check_all\fR] [\fB\-cert filename\fR] [\fB\-certform DER|PEM\fR] [\fB\-key keyfile\fR] [\fB\-keyform DER|PEM\fR] [\fB\-pass arg\fR] [\fB\-dcert filename\fR] [\fB\-dcertform DER|PEM\fR] [\fB\-dkey keyfile\fR] [\fB\-dkeyform DER|PEM\fR] [\fB\-dpass arg\fR] [\fB\-dhparam filename\fR] [\fB\-nbio\fR] [\fB\-nbio_test\fR] [\fB\-crlf\fR] [\fB\-debug\fR] [\fB\-msg\fR] [\fB\-state\fR] [\fB\-CApath directory\fR] [\fB\-CAfile filename\fR] [\fB\-trusted_first\fR] [\fB\-no_alt_chains\fR] [\fB\-nocert\fR] [\fB\-cipher cipherlist\fR] [\fB\-serverpref\fR] [\fB\-krb5svc service\fR] [\fB\-keytab filename\fR] [\fB\-quiet\fR] [\fB\-no_tmp_rsa\fR] [\fB\-ssl2\fR] [\fB\-ssl3\fR] [\fB\-tls1\fR] [\fB\-tls1_1\fR] [\fB\-tls1_2\fR] [\fB\-no_ssl2\fR] [\fB\-no_ssl3\fR] [\fB\-no_tls1\fR] [\fB\-no_dhe\fR] [\fB\-bugs\fR] [\fB\-hack\fR] [\fB\-www\fR] [\fB\-WWW\fR] [\fB\-HTTP\fR] [\fB\-engine id\fR] [\fB\-tlsextdebug\fR] [\fB\-no_ticket\fR] [\fB\-id_prefix arg\fR] [\fB\-rand file(s)\fR] [\fB\-serverinfo file\fR] [\fB\-no_resumption_on_reneg\fR] [\fB\-status\fR] [\fB\-status_verbose\fR] [\fB\-status_timeout nsec\fR] [\fB\-status_url url\fR] [\fB\-alpn protocols\fR] [\fB\-nextprotoneg protocols\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBs_server\fR command implements a generic \s-1SSL/TLS\s0 server which listens for connections on a given port using \s-1SSL/TLS.\s0 .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-accept port\fR" 4 .IX Item "-accept port" the \s-1TCP\s0 port to listen on for connections. If not specified 4433 is used. .IP "\fB\-context id\fR" 4 .IX Item "-context id" sets the \s-1SSL\s0 context id. It can be given any string value. If this option is not present a default value will be used. .IP "\fB\-cert certname\fR" 4 .IX Item "-cert certname" The certificate to use, most servers cipher suites require the use of a certificate and some require a certificate with a certain public key type: for example the \s-1DSS\s0 cipher suites require a certificate containing a \s-1DSS \&\s0(\s-1DSA\s0) key. If not specified then the filename \*(L"server.pem\*(R" will be used. .IP "\fB\-certform format\fR" 4 .IX Item "-certform format" The certificate format to use: \s-1DER\s0 or \s-1PEM. PEM\s0 is the default. .IP "\fB\-key keyfile\fR" 4 .IX Item "-key keyfile" The private key to use. If not specified then the certificate file will be used. .IP "\fB\-keyform format\fR" 4 .IX Item "-keyform format" The private format to use: \s-1DER\s0 or \s-1PEM. PEM\s0 is the default. .IP "\fB\-pass arg\fR" 4 .IX Item "-pass arg" the private key password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-dcert filename\fR, \fB\-dkey keyname\fR" 4 .IX Item "-dcert filename, -dkey keyname" specify an additional certificate and private key, these behave in the same manner as the \fB\-cert\fR and \fB\-key\fR options except there is no default if they are not specified (no additional certificate and key is used). As noted above some cipher suites require a certificate containing a key of a certain type. Some cipher suites need a certificate carrying an \s-1RSA\s0 key and some a \s-1DSS \s0(\s-1DSA\s0) key. By using \s-1RSA\s0 and \s-1DSS\s0 certificates and keys a server can support clients which only support \s-1RSA\s0 or \s-1DSS\s0 cipher suites by using an appropriate certificate. .IP "\fB\-dcertform format\fR, \fB\-dkeyform format\fR, \fB\-dpass arg\fR" 4 .IX Item "-dcertform format, -dkeyform format, -dpass arg" additional certificate and private key format and passphrase respectively. .IP "\fB\-nocert\fR" 4 .IX Item "-nocert" if this option is set then no certificate is used. This restricts the cipher suites available to the anonymous ones (currently just anonymous \&\s-1DH\s0). .IP "\fB\-dhparam filename\fR" 4 .IX Item "-dhparam filename" the \s-1DH\s0 parameter file to use. The ephemeral \s-1DH\s0 cipher suites generate keys using a set of \s-1DH\s0 parameters. If not specified then an attempt is made to load the parameters from the server certificate file. If this fails then a static set of parameters hard coded into the s_server program will be used. .IP "\fB\-no_dhe\fR" 4 .IX Item "-no_dhe" if this option is set then no \s-1DH\s0 parameters will be loaded effectively disabling the ephemeral \s-1DH\s0 cipher suites. .IP "\fB\-no_tmp_rsa\fR" 4 .IX Item "-no_tmp_rsa" certain export cipher suites sometimes use a temporary \s-1RSA\s0 key, this option disables temporary \s-1RSA\s0 key generation. .IP "\fB\-verify depth\fR, \fB\-Verify depth\fR" 4 .IX Item "-verify depth, -Verify depth" The verify depth to use. This specifies the maximum length of the client certificate chain and makes the server request a certificate from the client. With the \fB\-verify\fR option a certificate is requested but the client does not have to send one, with the \fB\-Verify\fR option the client must supply a certificate or an error occurs. .Sp If the ciphersuite cannot request a client certificate (for example an anonymous ciphersuite or \s-1PSK\s0) this option has no effect. .IP "\fB\-crl_check\fR, \fB\-crl_check_all\fR" 4 .IX Item "-crl_check, -crl_check_all" Check the peer certificate has not been revoked by its \s-1CA.\s0 The \s-1CRL\s0(s) are appended to the certificate file. With the \fB\-crl_check_all\fR option all CRLs of all CAs in the chain are checked. .IP "\fB\-CApath directory\fR" 4 .IX Item "-CApath directory" The directory to use for client certificate verification. This directory must be in \*(L"hash format\*(R", see \fBverify\fR for more information. These are also used when building the server certificate chain. .IP "\fB\-CAfile file\fR" 4 .IX Item "-CAfile file" A file containing trusted certificates to use during client authentication and to use when attempting to build the server certificate chain. The list is also used in the list of acceptable client CAs passed to the client when a certificate is requested. .IP "\fB\-trusted_first\fR" 4 .IX Item "-trusted_first" Use certificates in \s-1CA\s0 file or \s-1CA\s0 directory before other certificates when building the trust chain to verify client certificates. This is mainly useful in environments with Bridge \s-1CA\s0 or Cross-Certified CAs. .IP "\fB\-no_alt_chains\fR" 4 .IX Item "-no_alt_chains" See the \fBverify\fR manual page for details. .IP "\fB\-state\fR" 4 .IX Item "-state" prints out the \s-1SSL\s0 session states. .IP "\fB\-debug\fR" 4 .IX Item "-debug" print extensive debugging information including a hex dump of all traffic. .IP "\fB\-msg\fR" 4 .IX Item "-msg" show all protocol messages with hex dump. .IP "\fB\-nbio_test\fR" 4 .IX Item "-nbio_test" tests non blocking I/O .IP "\fB\-nbio\fR" 4 .IX Item "-nbio" turns on non blocking I/O .IP "\fB\-crlf\fR" 4 .IX Item "-crlf" this option translated a line feed from the terminal into \s-1CR+LF.\s0 .IP "\fB\-quiet\fR" 4 .IX Item "-quiet" inhibit printing of session and certificate information. .IP "\fB\-psk_hint hint\fR" 4 .IX Item "-psk_hint hint" Use the \s-1PSK\s0 identity hint \fBhint\fR when using a \s-1PSK\s0 cipher suite. .IP "\fB\-psk key\fR" 4 .IX Item "-psk key" Use the \s-1PSK\s0 key \fBkey\fR when using a \s-1PSK\s0 cipher suite. The key is given as a hexadecimal number without leading 0x, for example \-psk 1a2b3c4d. .IP "\fB\-ssl2\fR, \fB\-ssl3\fR, \fB\-tls1\fR, \fB\-tls1_1\fR, \fB\-tls1_2\fR, \fB\-dtls1\fR, \fB\-no_ssl2\fR, \fB\-no_ssl3\fR, \fB\-no_tls1\fR, \fB\-no_tls1_1\fR, \fB\-no_tls1_2\fR" 4 .IX Item "-ssl2, -ssl3, -tls1, -tls1_1, -tls1_2, -dtls1, -no_ssl2, -no_ssl3, -no_tls1, -no_tls1_1, -no_tls1_2" These options require or disable the use of the specified \s-1SSL\s0 or \s-1TLS\s0 protocols. By default the initial handshake uses a \fIversion-flexible\fR method which will negotiate the highest mutually supported protocol version. .IP "\fB\-bugs\fR" 4 .IX Item "-bugs" there are several known bug in \s-1SSL\s0 and \s-1TLS\s0 implementations. Adding this option enables various workarounds. .IP "\fB\-hack\fR" 4 .IX Item "-hack" this option enables a further workaround for some some early Netscape \&\s-1SSL\s0 code (?). .IP "\fB\-cipher cipherlist\fR" 4 .IX Item "-cipher cipherlist" this allows the cipher list used by the server to be modified. When the client sends a list of supported ciphers the first client cipher also included in the server list is used. Because the client specifies the preference order, the order of the server cipherlist irrelevant. See the \fBciphers\fR command for more information. .IP "\fB\-serverpref\fR" 4 .IX Item "-serverpref" use the server's cipher preferences, rather than the client's preferences. .IP "\fB\-krb5svc service\fR" 4 .IX Item "-krb5svc service" the Kerberos service name to use (default \*(L"host\*(R"). This means s_server will expect a ticket for the principal \fIservice\fR/hostname@REALM, and will need keys for that principal in its keytab. .IP "\fB\-keytab filename\fR" 4 .IX Item "-keytab filename" the Kerberos \*(L"keytab\*(R" (key table) file, containing keys for the s_server service principal (Kerberos identity; see \-krb5svc). .IP "\fB\-tlsextdebug\fR" 4 .IX Item "-tlsextdebug" print out a hex dump of any \s-1TLS\s0 extensions received from the server. .IP "\fB\-no_ticket\fR" 4 .IX Item "-no_ticket" disable RFC4507bis session ticket support. .IP "\fB\-www\fR" 4 .IX Item "-www" sends a status message back to the client when it connects. This includes lots of information about the ciphers used and various session parameters. The output is in \s-1HTML\s0 format so this option will normally be used with a web browser. .IP "\fB\-WWW\fR" 4 .IX Item "-WWW" emulates a simple web server. Pages will be resolved relative to the current directory, for example if the \s-1URL\s0 https://myhost/page.html is requested the file ./page.html will be loaded. .IP "\fB\-HTTP\fR" 4 .IX Item "-HTTP" emulates a simple web server. Pages will be resolved relative to the current directory, for example if the \s-1URL\s0 https://myhost/page.html is requested the file ./page.html will be loaded. The files loaded are assumed to contain a complete and correct \s-1HTTP\s0 response (lines that are part of the \s-1HTTP\s0 response line and headers must end with \s-1CRLF\s0). .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBs_server\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .IP "\fB\-id_prefix arg\fR" 4 .IX Item "-id_prefix arg" generate \s-1SSL/TLS\s0 session IDs prefixed by \fBarg\fR. This is mostly useful for testing any \s-1SSL/TLS\s0 code (eg. proxies) that wish to deal with multiple servers, when each of which might be generating a unique range of session IDs (eg. with a certain prefix). .IP "\fB\-rand file(s)\fR" 4 .IX Item "-rand file(s)" a file or files containing random data used to seed the random number generator, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). Multiple files can be specified separated by a OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fB\-serverinfo file\fR" 4 .IX Item "-serverinfo file" a file containing one or more blocks of \s-1PEM\s0 data. Each \s-1PEM\s0 block must encode a \s-1TLS\s0 ServerHello extension (2 bytes type, 2 bytes length, followed by \*(L"length\*(R" bytes of extension data). If the client sends an empty \s-1TLS\s0 ClientHello extension matching the type, the corresponding ServerHello extension will be returned. .IP "\fB\-no_resumption_on_reneg\fR" 4 .IX Item "-no_resumption_on_reneg" set \s-1SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION\s0 flag. .IP "\fB\-status\fR" 4 .IX Item "-status" enables certificate status request support (aka \s-1OCSP\s0 stapling). .IP "\fB\-status_verbose\fR" 4 .IX Item "-status_verbose" enables certificate status request support (aka \s-1OCSP\s0 stapling) and gives a verbose printout of the \s-1OCSP\s0 response. .IP "\fB\-status_timeout nsec\fR" 4 .IX Item "-status_timeout nsec" sets the timeout for \s-1OCSP\s0 response to \fBnsec\fR seconds. .IP "\fB\-status_url url\fR" 4 .IX Item "-status_url url" sets a fallback responder \s-1URL\s0 to use if no responder \s-1URL\s0 is present in the server certificate. Without this option an error is returned if the server certificate does not contain a responder address. .IP "\fB\-alpn protocols\fR, \fB\-nextprotoneg protocols\fR" 4 .IX Item "-alpn protocols, -nextprotoneg protocols" these flags enable the Enable the Application-Layer Protocol Negotiation or Next Protocol Negotiation extension, respectively. \s-1ALPN\s0 is the \s-1IETF\s0 standard and replaces \s-1NPN.\s0 The \fBprotocols\fR list is a comma-separated list of supported protocol names. The list should contain most wanted protocols first. Protocol names are printable \s-1ASCII\s0 strings, for example \*(L"http/1.1\*(R" or \&\*(L"spdy/3\*(R". .SH "CONNECTED COMMANDS" .IX Header "CONNECTED COMMANDS" If a connection request is established with an \s-1SSL\s0 client and neither the \&\fB\-www\fR nor the \fB\-WWW\fR option has been used then normally any data received from the client is displayed and any key presses will be sent to the client. .PP Certain single letter commands are also recognized which perform special operations: these are listed below. .IP "\fBq\fR" 4 .IX Item "q" end the current \s-1SSL\s0 connection but still accept new connections. .IP "\fBQ\fR" 4 .IX Item "Q" end the current \s-1SSL\s0 connection and exit. .IP "\fBr\fR" 4 .IX Item "r" renegotiate the \s-1SSL\s0 session. .IP "\fBR\fR" 4 .IX Item "R" renegotiate the \s-1SSL\s0 session and request a client certificate. .IP "\fBP\fR" 4 .IX Item "P" send some plain text down the underlying \s-1TCP\s0 connection: this should cause the client to disconnect due to a protocol violation. .IP "\fBS\fR" 4 .IX Item "S" print out some session cache status information. .SH "NOTES" .IX Header "NOTES" \&\fBs_server\fR can be used to debug \s-1SSL\s0 clients. To accept connections from a web browser the command: .PP .Vb 1 \& openssl s_server \-accept 443 \-www .Ve .PP can be used for example. .PP Most web browsers (in particular Netscape and \s-1MSIE\s0) only support \s-1RSA\s0 cipher suites, so they cannot connect to servers which don't use a certificate carrying an \s-1RSA\s0 key or a version of OpenSSL with \s-1RSA\s0 disabled. .PP Although specifying an empty list of CAs when requesting a client certificate is strictly speaking a protocol violation, some \s-1SSL\s0 clients interpret this to mean any \s-1CA\s0 is acceptable. This is useful for debugging purposes. .PP The session parameters can printed out using the \fBsess_id\fR program. .SH "BUGS" .IX Header "BUGS" Because this program has a lot of options and also because some of the techniques used are rather old, the C source of s_server is rather hard to read and not a model of how things should be done. A typical \&\s-1SSL\s0 server program would be much simpler. .PP The output of common ciphers is wrong: it just gives the list of ciphers that OpenSSL recognizes and the client supports. .PP There should be a way for the \fBs_server\fR program to print out details of any unknown cipher suites a client says it supports. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIsess_id\fR\|(1), \fIs_client\fR\|(1), \fIciphers\fR\|(1) .SH "HISTORY" .IX Header "HISTORY" The \-no_alt_chains options was first added to OpenSSL 1.0.2b. man1/rsautl.1ssl000064400000023371147210250140007520 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RSAUTL 1" .TH RSAUTL 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" rsautl \- RSA utility .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBrsautl\fR [\fB\-in file\fR] [\fB\-out file\fR] [\fB\-inkey file\fR] [\fB\-pubin\fR] [\fB\-certin\fR] [\fB\-sign\fR] [\fB\-verify\fR] [\fB\-encrypt\fR] [\fB\-decrypt\fR] [\fB\-pkcs\fR] [\fB\-ssl\fR] [\fB\-raw\fR] [\fB\-hexdump\fR] [\fB\-asn1parse\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBrsautl\fR command can be used to sign, verify, encrypt and decrypt data using the \s-1RSA\s0 algorithm. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read data from or standard input if this option is not specified. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" specifies the output filename to write to or standard output by default. .IP "\fB\-inkey file\fR" 4 .IX Item "-inkey file" the input key file, by default it should be an \s-1RSA\s0 private key. .IP "\fB\-pubin\fR" 4 .IX Item "-pubin" the input file is an \s-1RSA\s0 public key. .IP "\fB\-certin\fR" 4 .IX Item "-certin" the input is a certificate containing an \s-1RSA\s0 public key. .IP "\fB\-sign\fR" 4 .IX Item "-sign" sign the input data and output the signed result. This requires and \s-1RSA\s0 private key. .IP "\fB\-verify\fR" 4 .IX Item "-verify" verify the input data and output the recovered data. .IP "\fB\-encrypt\fR" 4 .IX Item "-encrypt" encrypt the input data using an \s-1RSA\s0 public key. .IP "\fB\-decrypt\fR" 4 .IX Item "-decrypt" decrypt the input data using an \s-1RSA\s0 private key. .IP "\fB\-pkcs, \-oaep, \-ssl, \-raw\fR" 4 .IX Item "-pkcs, -oaep, -ssl, -raw" the padding to use: PKCS#1 v1.5 (the default), PKCS#1 \s-1OAEP,\s0 special padding used in \s-1SSL\s0 v2 backwards compatible handshakes, or no padding, respectively. For signatures, only \fB\-pkcs\fR and \fB\-raw\fR can be used. .IP "\fB\-hexdump\fR" 4 .IX Item "-hexdump" hex dump the output data. .IP "\fB\-asn1parse\fR" 4 .IX Item "-asn1parse" asn1parse the output data, this is useful when combined with the \&\fB\-verify\fR option. .SH "NOTES" .IX Header "NOTES" \&\fBrsautl\fR because it uses the \s-1RSA\s0 algorithm directly can only be used to sign or verify small pieces of data. .SH "EXAMPLES" .IX Header "EXAMPLES" Sign some data using a private key: .PP .Vb 1 \& openssl rsautl \-sign \-in file \-inkey key.pem \-out sig .Ve .PP Recover the signed data .PP .Vb 1 \& openssl rsautl \-verify \-in sig \-inkey key.pem .Ve .PP Examine the raw signed data: .PP .Vb 1 \& openssl rsautl \-verify \-in file \-inkey key.pem \-raw \-hexdump \& \& 0000 \- 00 01 ff ff ff ff ff ff\-ff ff ff ff ff ff ff ff ................ \& 0010 \- ff ff ff ff ff ff ff ff\-ff ff ff ff ff ff ff ff ................ \& 0020 \- ff ff ff ff ff ff ff ff\-ff ff ff ff ff ff ff ff ................ \& 0030 \- ff ff ff ff ff ff ff ff\-ff ff ff ff ff ff ff ff ................ \& 0040 \- ff ff ff ff ff ff ff ff\-ff ff ff ff ff ff ff ff ................ \& 0050 \- ff ff ff ff ff ff ff ff\-ff ff ff ff ff ff ff ff ................ \& 0060 \- ff ff ff ff ff ff ff ff\-ff ff ff ff ff ff ff ff ................ \& 0070 \- ff ff ff ff 00 68 65 6c\-6c 6f 20 77 6f 72 6c 64 .....hello world .Ve .PP The PKCS#1 block formatting is evident from this. If this was done using encrypt and decrypt the block would have been of type 2 (the second byte) and random padding data visible instead of the 0xff bytes. .PP It is possible to analyse the signature of certificates using this utility in conjunction with \fBasn1parse\fR. Consider the self signed example in certs/pca\-cert.pem . Running \fBasn1parse\fR as follows yields: .PP .Vb 1 \& openssl asn1parse \-in pca\-cert.pem \& \& 0:d=0 hl=4 l= 742 cons: SEQUENCE \& 4:d=1 hl=4 l= 591 cons: SEQUENCE \& 8:d=2 hl=2 l= 3 cons: cont [ 0 ] \& 10:d=3 hl=2 l= 1 prim: INTEGER :02 \& 13:d=2 hl=2 l= 1 prim: INTEGER :00 \& 16:d=2 hl=2 l= 13 cons: SEQUENCE \& 18:d=3 hl=2 l= 9 prim: OBJECT :md5WithRSAEncryption \& 29:d=3 hl=2 l= 0 prim: NULL \& 31:d=2 hl=2 l= 92 cons: SEQUENCE \& 33:d=3 hl=2 l= 11 cons: SET \& 35:d=4 hl=2 l= 9 cons: SEQUENCE \& 37:d=5 hl=2 l= 3 prim: OBJECT :countryName \& 42:d=5 hl=2 l= 2 prim: PRINTABLESTRING :AU \& .... \& 599:d=1 hl=2 l= 13 cons: SEQUENCE \& 601:d=2 hl=2 l= 9 prim: OBJECT :md5WithRSAEncryption \& 612:d=2 hl=2 l= 0 prim: NULL \& 614:d=1 hl=3 l= 129 prim: BIT STRING .Ve .PP The final \s-1BIT STRING\s0 contains the actual signature. It can be extracted with: .PP .Vb 1 \& openssl asn1parse \-in pca\-cert.pem \-out sig \-noout \-strparse 614 .Ve .PP The certificate public key can be extracted with: .PP .Vb 1 \& openssl x509 \-in test/testx509.pem \-pubkey \-noout >pubkey.pem .Ve .PP The signature can be analysed with: .PP .Vb 1 \& openssl rsautl \-in sig \-verify \-asn1parse \-inkey pubkey.pem \-pubin \& \& 0:d=0 hl=2 l= 32 cons: SEQUENCE \& 2:d=1 hl=2 l= 12 cons: SEQUENCE \& 4:d=2 hl=2 l= 8 prim: OBJECT :md5 \& 14:d=2 hl=2 l= 0 prim: NULL \& 16:d=1 hl=2 l= 16 prim: OCTET STRING \& 0000 \- f3 46 9e aa 1a 4a 73 c9\-37 ea 93 00 48 25 08 b5 .F...Js.7...H%.. .Ve .PP This is the parsed version of an \s-1ASN1\s0 DigestInfo structure. It can be seen that the digest used was md5. The actual part of the certificate that was signed can be extracted with: .PP .Vb 1 \& openssl asn1parse \-in pca\-cert.pem \-out tbs \-noout \-strparse 4 .Ve .PP and its digest computed with: .PP .Vb 2 \& openssl md5 \-c tbs \& MD5(tbs)= f3:46:9e:aa:1a:4a:73:c9:37:ea:93:00:48:25:08:b5 .Ve .PP which it can be seen agrees with the recovered value above. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdgst\fR\|(1), \fIrsa\fR\|(1), \fIgenrsa\fR\|(1) man1/dhparam.1ssl000064400000021204147210250140007613 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DHPARAM 1" .TH DHPARAM 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" dhparam \- DH parameter manipulation and generation .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl dhparam\fR [\fB\-inform DER|PEM\fR] [\fB\-outform DER|PEM\fR] [\fB\-in\fR \fIfilename\fR] [\fB\-out\fR \fIfilename\fR] [\fB\-dsaparam\fR] [\fB\-check\fR] [\fB\-noout\fR] [\fB\-text\fR] [\fB\-C\fR] [\fB\-2\fR] [\fB\-5\fR] [\fB\-rand\fR \fIfile(s)\fR] [\fB\-engine id\fR] [\fInumbits\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" This command is used to manipulate \s-1DH\s0 parameter files. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-inform DER|PEM\fR" 4 .IX Item "-inform DER|PEM" This specifies the input format. The \fB\s-1DER\s0\fR option uses an \s-1ASN1 DER\s0 encoded form compatible with the PKCS#3 DHparameter structure. The \s-1PEM\s0 form is the default format: it consists of the \fB\s-1DER\s0\fR format base64 encoded with additional header and footer lines. .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in\fR \fIfilename\fR" 4 .IX Item "-in filename" This specifies the input filename to read parameters from or standard input if this option is not specified. .IP "\fB\-out\fR \fIfilename\fR" 4 .IX Item "-out filename" This specifies the output filename parameters to. Standard output is used if this option is not present. The output filename should \fBnot\fR be the same as the input filename. .IP "\fB\-dsaparam\fR" 4 .IX Item "-dsaparam" If this option is used, \s-1DSA\s0 rather than \s-1DH\s0 parameters are read or created; they are converted to \s-1DH\s0 format. Otherwise, \*(L"strong\*(R" primes (such that (p\-1)/2 is also prime) will be used for \s-1DH\s0 parameter generation. .Sp \&\s-1DH\s0 parameter generation with the \fB\-dsaparam\fR option is much faster, and the recommended exponent length is shorter, which makes \s-1DH\s0 key exchange more efficient. Beware that with such DSA-style \s-1DH\s0 parameters, a fresh \s-1DH\s0 key should be created for each use to avoid small-subgroup attacks that may be possible otherwise. .IP "\fB\-check\fR" 4 .IX Item "-check" check if the parameters are valid primes and generator. .IP "\fB\-2\fR, \fB\-5\fR" 4 .IX Item "-2, -5" The generator to use, either 2 or 5. If present then the input file is ignored and parameters are generated instead. If not present but \fBnumbits\fR is present, parameters are generated with the default generator 2. .IP "\fB\-rand\fR \fIfile(s)\fR" 4 .IX Item "-rand file(s)" a file or files containing random data used to seed the random number generator, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). Multiple files can be specified separated by a OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fInumbits\fR" 4 .IX Item "numbits" this option specifies that a parameter set should be generated of size \&\fInumbits\fR. It must be the last option. If this option is present then the input file is ignored and parameters are generated instead. If this option is not present but a generator (\fB\-2\fR or \fB\-5\fR) is present, parameters are generated with a default length of 2048 bits. .IP "\fB\-noout\fR" 4 .IX Item "-noout" this option inhibits the output of the encoded version of the parameters. .IP "\fB\-text\fR" 4 .IX Item "-text" this option prints out the \s-1DH\s0 parameters in human readable form. .IP "\fB\-C\fR" 4 .IX Item "-C" this option converts the parameters into C code. The parameters can then be loaded by calling the \fBget_dh\fR\fInumbits\fR\fB()\fR function. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBdhparam\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .SH "WARNINGS" .IX Header "WARNINGS" The program \fBdhparam\fR combines the functionality of the programs \fBdh\fR and \&\fBgendh\fR in previous versions of OpenSSL and SSLeay. The \fBdh\fR and \fBgendh\fR programs are retained for now but may have different purposes in future versions of OpenSSL. .SH "NOTES" .IX Header "NOTES" \&\s-1PEM\s0 format \s-1DH\s0 parameters use the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN DH PARAMETERS\-\-\-\-\- \& \-\-\-\-\-END DH PARAMETERS\-\-\-\-\- .Ve .PP OpenSSL currently only supports the older PKCS#3 \s-1DH,\s0 not the newer X9.42 \&\s-1DH.\s0 .PP This program manipulates \s-1DH\s0 parameters not keys. .SH "BUGS" .IX Header "BUGS" There should be a way to generate and manipulate \s-1DH\s0 keys. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdsaparam\fR\|(1) .SH "HISTORY" .IX Header "HISTORY" The \fBdhparam\fR command was added in OpenSSL 0.9.5. The \fB\-dsaparam\fR option was added in OpenSSL 0.9.6. man1/enc.1ssl000064400000035656147210250140006764 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ENC 1" .TH ENC 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" enc \- symmetric cipher routines .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl enc \-ciphername\fR [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-pass arg\fR] [\fB\-e\fR] [\fB\-d\fR] [\fB\-a/\-base64\fR] [\fB\-A\fR] [\fB\-k password\fR] [\fB\-kfile filename\fR] [\fB\-K key\fR] [\fB\-iv \s-1IV\s0\fR] [\fB\-S salt\fR] [\fB\-salt\fR] [\fB\-nosalt\fR] [\fB\-z\fR] [\fB\-md\fR] [\fB\-p\fR] [\fB\-P\fR] [\fB\-bufsize number\fR] [\fB\-nopad\fR] [\fB\-debug\fR] [\fB\-none\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The symmetric cipher commands allow data to be encrypted or decrypted using various block and stream ciphers using keys based on passwords or explicitly provided. Base64 encoding or decoding can also be performed either by itself or in addition to the encryption or decryption. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" the input filename, standard input by default. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" the output filename, standard output by default. .IP "\fB\-pass arg\fR" 4 .IX Item "-pass arg" the password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-salt\fR" 4 .IX Item "-salt" use a salt in the key derivation routines. This is the default. .IP "\fB\-nosalt\fR" 4 .IX Item "-nosalt" don't use a salt in the key derivation routines. This option \fB\s-1SHOULD NOT\s0\fR be used except for test purposes or compatibility with ancient versions of OpenSSL and SSLeay. .IP "\fB\-e\fR" 4 .IX Item "-e" encrypt the input data: this is the default. .IP "\fB\-d\fR" 4 .IX Item "-d" decrypt the input data. .IP "\fB\-a\fR" 4 .IX Item "-a" base64 process the data. This means that if encryption is taking place the data is base64 encoded after encryption. If decryption is set then the input data is base64 decoded before being decrypted. .IP "\fB\-base64\fR" 4 .IX Item "-base64" same as \fB\-a\fR .IP "\fB\-A\fR" 4 .IX Item "-A" if the \fB\-a\fR option is set then base64 process the data on one line. .IP "\fB\-k password\fR" 4 .IX Item "-k password" the password to derive the key from. This is for compatibility with previous versions of OpenSSL. Superseded by the \fB\-pass\fR argument. .IP "\fB\-kfile filename\fR" 4 .IX Item "-kfile filename" read the password to derive the key from the first line of \fBfilename\fR. This is for compatibility with previous versions of OpenSSL. Superseded by the \fB\-pass\fR argument. .IP "\fB\-nosalt\fR" 4 .IX Item "-nosalt" do not use a salt .IP "\fB\-salt\fR" 4 .IX Item "-salt" use salt (randomly generated or provide with \fB\-S\fR option) when encrypting (this is the default). .IP "\fB\-S salt\fR" 4 .IX Item "-S salt" the actual salt to use: this must be represented as a string of hex digits. .IP "\fB\-K key\fR" 4 .IX Item "-K key" the actual key to use: this must be represented as a string comprised only of hex digits. If only the key is specified, the \s-1IV\s0 must additionally specified using the \fB\-iv\fR option. When both a key and a password are specified, the key given with the \fB\-K\fR option will be used and the \s-1IV\s0 generated from the password will be taken. It probably does not make much sense to specify both key and password. .IP "\fB\-iv \s-1IV\s0\fR" 4 .IX Item "-iv IV" the actual \s-1IV\s0 to use: this must be represented as a string comprised only of hex digits. When only the key is specified using the \fB\-K\fR option, the \&\s-1IV\s0 must explicitly be defined. When a password is being specified using one of the other options, the \s-1IV\s0 is generated from this password. .IP "\fB\-p\fR" 4 .IX Item "-p" print out the key and \s-1IV\s0 used. .IP "\fB\-P\fR" 4 .IX Item "-P" print out the key and \s-1IV\s0 used then immediately exit: don't do any encryption or decryption. .IP "\fB\-bufsize number\fR" 4 .IX Item "-bufsize number" set the buffer size for I/O .IP "\fB\-nopad\fR" 4 .IX Item "-nopad" disable standard block padding .IP "\fB\-debug\fR" 4 .IX Item "-debug" debug the BIOs used for I/O. .IP "\fB\-z\fR" 4 .IX Item "-z" Compress or decompress clear text using zlib before encryption or after decryption. This option exists only if OpenSSL with compiled with zlib or zlib-dynamic option. .IP "\fB\-none\fR" 4 .IX Item "-none" Use \s-1NULL\s0 cipher (no encryption or decryption of input). .SH "NOTES" .IX Header "NOTES" The program can be called either as \fBopenssl ciphername\fR or \&\fBopenssl enc \-ciphername\fR. But the first form doesn't work with engine-provided ciphers, because this form is processed before the configuration file is read and any ENGINEs loaded. .PP Engines which provide entirely new encryption algorithms (such as ccgost engine which provides gost89 algorithm) should be configured in the configuration file. Engines, specified in the command line using \-engine options can only be used for hadrware-assisted implementations of ciphers, which are supported by OpenSSL core or other engine, specified in the configuration file. .PP When enc command lists supported ciphers, ciphers provided by engines, specified in the configuration files are listed too. .PP A password will be prompted for to derive the key and \s-1IV\s0 if necessary. .PP The \fB\-salt\fR option should \fB\s-1ALWAYS\s0\fR be used if the key is being derived from a password unless you want compatibility with previous versions of OpenSSL and SSLeay. .PP Without the \fB\-salt\fR option it is possible to perform efficient dictionary attacks on the password and to attack stream cipher encrypted data. The reason for this is that without the salt the same password always generates the same encryption key. When the salt is being used the first eight bytes of the encrypted data are reserved for the salt: it is generated at random when encrypting a file and read from the encrypted file when it is decrypted. .PP Some of the ciphers do not have large keys and others have security implications if not used correctly. A beginner is advised to just use a strong block cipher in \s-1CBC\s0 mode such as bf or des3. .PP All the block ciphers normally use PKCS#5 padding also known as standard block padding: this allows a rudimentary integrity or password check to be performed. However since the chance of random data passing the test is better than 1 in 256 it isn't a very good test. .PP If padding is disabled then the input data must be a multiple of the cipher block length. .PP All \s-1RC2\s0 ciphers have the same key and effective key length. .PP Blowfish and \s-1RC5\s0 algorithms use a 128 bit key. .SH "SUPPORTED CIPHERS" .IX Header "SUPPORTED CIPHERS" Note that some of these ciphers can be disabled at compile time and some are available only if an appropriate engine is configured in the configuration file. The output of the \fBenc\fR command run with unsupported options (for example \fBopenssl enc \-help\fR) includes a list of ciphers, supported by your versesion of OpenSSL, including ones provided by configured engines. .PP The \fBenc\fR program does not support authenticated encryption modes like \s-1CCM\s0 and \s-1GCM.\s0 The utility does not store or retrieve the authentication tag. .PP .Vb 1 \& base64 Base 64 \& \& bf\-cbc Blowfish in CBC mode \& bf Alias for bf\-cbc \& bf\-cfb Blowfish in CFB mode \& bf\-ecb Blowfish in ECB mode \& bf\-ofb Blowfish in OFB mode \& \& cast\-cbc CAST in CBC mode \& cast Alias for cast\-cbc \& cast5\-cbc CAST5 in CBC mode \& cast5\-cfb CAST5 in CFB mode \& cast5\-ecb CAST5 in ECB mode \& cast5\-ofb CAST5 in OFB mode \& \& des\-cbc DES in CBC mode \& des Alias for des\-cbc \& des\-cfb DES in CBC mode \& des\-ofb DES in OFB mode \& des\-ecb DES in ECB mode \& \& des\-ede\-cbc Two key triple DES EDE in CBC mode \& des\-ede Two key triple DES EDE in ECB mode \& des\-ede\-cfb Two key triple DES EDE in CFB mode \& des\-ede\-ofb Two key triple DES EDE in OFB mode \& \& des\-ede3\-cbc Three key triple DES EDE in CBC mode \& des\-ede3 Three key triple DES EDE in ECB mode \& des3 Alias for des\-ede3\-cbc \& des\-ede3\-cfb Three key triple DES EDE CFB mode \& des\-ede3\-ofb Three key triple DES EDE in OFB mode \& \& desx DESX algorithm. \& \& gost89 GOST 28147\-89 in CFB mode (provided by ccgost engine) \& gost89\-cnt \`GOST 28147\-89 in CNT mode (provided by ccgost engine) \& \& idea\-cbc IDEA algorithm in CBC mode \& idea same as idea\-cbc \& idea\-cfb IDEA in CFB mode \& idea\-ecb IDEA in ECB mode \& idea\-ofb IDEA in OFB mode \& \& rc2\-cbc 128 bit RC2 in CBC mode \& rc2 Alias for rc2\-cbc \& rc2\-cfb 128 bit RC2 in CFB mode \& rc2\-ecb 128 bit RC2 in ECB mode \& rc2\-ofb 128 bit RC2 in OFB mode \& rc2\-64\-cbc 64 bit RC2 in CBC mode \& rc2\-40\-cbc 40 bit RC2 in CBC mode \& \& rc4 128 bit RC4 \& rc4\-64 64 bit RC4 \& rc4\-40 40 bit RC4 \& \& rc5\-cbc RC5 cipher in CBC mode \& rc5 Alias for rc5\-cbc \& rc5\-cfb RC5 cipher in CFB mode \& rc5\-ecb RC5 cipher in ECB mode \& rc5\-ofb RC5 cipher in OFB mode \& \& aes\-[128|192|256]\-cbc 128/192/256 bit AES in CBC mode \& aes\-[128|192|256] Alias for aes\-[128|192|256]\-cbc \& aes\-[128|192|256]\-cfb 128/192/256 bit AES in 128 bit CFB mode \& aes\-[128|192|256]\-cfb1 128/192/256 bit AES in 1 bit CFB mode \& aes\-[128|192|256]\-cfb8 128/192/256 bit AES in 8 bit CFB mode \& aes\-[128|192|256]\-ecb 128/192/256 bit AES in ECB mode \& aes\-[128|192|256]\-ofb 128/192/256 bit AES in OFB mode .Ve .SH "EXAMPLES" .IX Header "EXAMPLES" Just base64 encode a binary file: .PP .Vb 1 \& openssl base64 \-in file.bin \-out file.b64 .Ve .PP Decode the same file .PP .Vb 1 \& openssl base64 \-d \-in file.b64 \-out file.bin .Ve .PP Encrypt a file using triple \s-1DES\s0 in \s-1CBC\s0 mode using a prompted password: .PP .Vb 1 \& openssl des3 \-salt \-in file.txt \-out file.des3 .Ve .PP Decrypt a file using a supplied password: .PP .Vb 1 \& openssl des3 \-d \-salt \-in file.des3 \-out file.txt \-k mypassword .Ve .PP Encrypt a file then base64 encode it (so it can be sent via mail for example) using Blowfish in \s-1CBC\s0 mode: .PP .Vb 1 \& openssl bf \-a \-salt \-in file.txt \-out file.bf .Ve .PP Base64 decode a file then decrypt it: .PP .Vb 1 \& openssl bf \-d \-salt \-a \-in file.bf \-out file.txt .Ve .PP Decrypt some data using a supplied 40 bit \s-1RC4\s0 key: .PP .Vb 1 \& openssl rc4\-40 \-in file.rc4 \-out file.txt \-K 0102030405 .Ve .SH "BUGS" .IX Header "BUGS" The \fB\-A\fR option when used with large files doesn't work properly. .PP There should be an option to allow an iteration count to be included. .PP The \fBenc\fR program only supports a fixed number of algorithms with certain parameters. So if, for example, you want to use \s-1RC2\s0 with a 76 bit key or \s-1RC4\s0 with an 84 bit key you can't use this program. man1/crl2pkcs7.1ssl000064400000015414147210250140010017 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CRL2PKCS7 1" .TH CRL2PKCS7 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" crl2pkcs7 \- Create a PKCS#7 structure from a CRL and certificates. .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBcrl2pkcs7\fR [\fB\-inform PEM|DER\fR] [\fB\-outform PEM|DER\fR] [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-certfile filename\fR] [\fB\-nocrl\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBcrl2pkcs7\fR command takes an optional \s-1CRL\s0 and one or more certificates and converts them into a PKCS#7 degenerate \*(L"certificates only\*(R" structure. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-inform DER|PEM\fR" 4 .IX Item "-inform DER|PEM" This specifies the \s-1CRL\s0 input format. \fB\s-1DER\s0\fR format is \s-1DER\s0 encoded \s-1CRL\s0 structure.\fB\s-1PEM\s0\fR (the default) is a base64 encoded version of the \s-1DER\s0 form with header and footer lines. .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the PKCS#7 structure output format. \fB\s-1DER\s0\fR format is \s-1DER\s0 encoded PKCS#7 structure.\fB\s-1PEM\s0\fR (the default) is a base64 encoded version of the \s-1DER\s0 form with header and footer lines. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read a \s-1CRL\s0 from or standard input if this option is not specified. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" specifies the output filename to write the PKCS#7 structure to or standard output by default. .IP "\fB\-certfile filename\fR" 4 .IX Item "-certfile filename" specifies a filename containing one or more certificates in \fB\s-1PEM\s0\fR format. All certificates in the file will be added to the PKCS#7 structure. This option can be used more than once to read certificates form multiple files. .IP "\fB\-nocrl\fR" 4 .IX Item "-nocrl" normally a \s-1CRL\s0 is included in the output file. With this option no \s-1CRL\s0 is included in the output file and a \s-1CRL\s0 is not read from the input file. .SH "EXAMPLES" .IX Header "EXAMPLES" Create a PKCS#7 structure from a certificate and \s-1CRL:\s0 .PP .Vb 1 \& openssl crl2pkcs7 \-in crl.pem \-certfile cert.pem \-out p7.pem .Ve .PP Creates a PKCS#7 structure in \s-1DER\s0 format with no \s-1CRL\s0 from several different certificates: .PP .Vb 2 \& openssl crl2pkcs7 \-nocrl \-certfile newcert.pem \& \-certfile demoCA/cacert.pem \-outform DER \-out p7.der .Ve .SH "NOTES" .IX Header "NOTES" The output file is a PKCS#7 signed data structure containing no signers and just certificates and an optional \s-1CRL.\s0 .PP This utility can be used to send certificates and CAs to Netscape as part of the certificate enrollment process. This involves sending the \s-1DER\s0 encoded output as \s-1MIME\s0 type application/x\-x509\-user\-cert. .PP The \fB\s-1PEM\s0\fR encoded form with the header and footer lines removed can be used to install user certificates and CAs in \s-1MSIE\s0 using the Xenroll control. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIpkcs7\fR\|(1) man1/sess_id.1ssl000064400000020441147210250140007632 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SESS_ID 1" .TH SESS_ID 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" sess_id \- SSL/TLS session handling utility .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBsess_id\fR [\fB\-inform PEM|DER\fR] [\fB\-outform PEM|DER\fR] [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-text\fR] [\fB\-noout\fR] [\fB\-context \s-1ID\s0\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBsess_id\fR process the encoded version of the \s-1SSL\s0 session structure and optionally prints out \s-1SSL\s0 session details (for example the \s-1SSL\s0 session master key) in human readable format. Since this is a diagnostic tool that needs some knowledge of the \s-1SSL\s0 protocol to use properly, most users will not need to use it. .IP "\fB\-inform DER|PEM\fR" 4 .IX Item "-inform DER|PEM" This specifies the input format. The \fB\s-1DER\s0\fR option uses an \s-1ASN1 DER\s0 encoded format containing session details. The precise format can vary from one version to the next. The \fB\s-1PEM\s0\fR form is the default format: it consists of the \fB\s-1DER\s0\fR format base64 encoded with additional header and footer lines. .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read session information from or standard input by default. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" This specifies the output filename to write session information to or standard output if this option is not specified. .IP "\fB\-text\fR" 4 .IX Item "-text" prints out the various public or private key components in plain text in addition to the encoded version. .IP "\fB\-cert\fR" 4 .IX Item "-cert" if a certificate is present in the session it will be output using this option, if the \fB\-text\fR option is also present then it will be printed out in text form. .IP "\fB\-noout\fR" 4 .IX Item "-noout" this option prevents output of the encoded version of the session. .IP "\fB\-context \s-1ID\s0\fR" 4 .IX Item "-context ID" this option can set the session id so the output session information uses the supplied \s-1ID.\s0 The \s-1ID\s0 can be any string of characters. This option wont normally be used. .SH "OUTPUT" .IX Header "OUTPUT" Typical output: .PP .Vb 10 \& SSL\-Session: \& Protocol : TLSv1 \& Cipher : 0016 \& Session\-ID: 871E62626C554CE95488823752CBD5F3673A3EF3DCE9C67BD916C809914B40ED \& Session\-ID\-ctx: 01000000 \& Master\-Key: A7CEFC571974BE02CAC305269DC59F76EA9F0B180CB6642697A68251F2D2BB57E51DBBB4C7885573192AE9AEE220FACD \& Key\-Arg : None \& Start Time: 948459261 \& Timeout : 300 (sec) \& Verify return code 0 (ok) .Ve .PP Theses are described below in more detail. .IP "\fBProtocol\fR" 4 .IX Item "Protocol" this is the protocol in use TLSv1, SSLv3 or SSLv2. .IP "\fBCipher\fR" 4 .IX Item "Cipher" the cipher used this is the actual raw \s-1SSL\s0 or \s-1TLS\s0 cipher code, see the \s-1SSL\s0 or \s-1TLS\s0 specifications for more information. .IP "\fBSession-ID\fR" 4 .IX Item "Session-ID" the \s-1SSL\s0 session \s-1ID\s0 in hex format. .IP "\fBSession-ID-ctx\fR" 4 .IX Item "Session-ID-ctx" the session \s-1ID\s0 context in hex format. .IP "\fBMaster-Key\fR" 4 .IX Item "Master-Key" this is the \s-1SSL\s0 session master key. .IP "\fBKey-Arg\fR" 4 .IX Item "Key-Arg" the key argument, this is only used in \s-1SSL\s0 v2. .IP "\fBStart Time\fR" 4 .IX Item "Start Time" this is the session start time represented as an integer in standard Unix format. .IP "\fBTimeout\fR" 4 .IX Item "Timeout" the timeout in seconds. .IP "\fBVerify return code\fR" 4 .IX Item "Verify return code" this is the return code when an \s-1SSL\s0 client certificate is verified. .SH "NOTES" .IX Header "NOTES" The \s-1PEM\s0 encoded session format uses the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN SSL SESSION PARAMETERS\-\-\-\-\- \& \-\-\-\-\-END SSL SESSION PARAMETERS\-\-\-\-\- .Ve .PP Since the \s-1SSL\s0 session output contains the master key it is possible to read the contents of an encrypted session using this information. Therefore appropriate security precautions should be taken if the information is being output by a \*(L"real\*(R" application. This is however strongly discouraged and should only be used for debugging purposes. .SH "BUGS" .IX Header "BUGS" The cipher and start time should be printed out in human readable form. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIciphers\fR\|(1), \fIs_server\fR\|(1) man1/x509.1ssl000064400000107434147210250140006716 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "X509 1" .TH X509 1 "2017-06-30" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" x509 \- Certificate display and signing utility .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBx509\fR [\fB\-inform DER|PEM|NET\fR] [\fB\-outform DER|PEM|NET\fR] [\fB\-keyform DER|PEM\fR] [\fB\-CAform DER|PEM\fR] [\fB\-CAkeyform DER|PEM\fR] [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-serial\fR] [\fB\-hash\fR] [\fB\-subject_hash\fR] [\fB\-issuer_hash\fR] [\fB\-ocspid\fR] [\fB\-subject\fR] [\fB\-issuer\fR] [\fB\-nameopt option\fR] [\fB\-email\fR] [\fB\-ocsp_uri\fR] [\fB\-startdate\fR] [\fB\-enddate\fR] [\fB\-purpose\fR] [\fB\-dates\fR] [\fB\-checkend num\fR] [\fB\-modulus\fR] [\fB\-pubkey\fR] [\fB\-fingerprint\fR] [\fB\-alias\fR] [\fB\-noout\fR] [\fB\-trustout\fR] [\fB\-clrtrust\fR] [\fB\-clrreject\fR] [\fB\-addtrust arg\fR] [\fB\-addreject arg\fR] [\fB\-setalias arg\fR] [\fB\-days arg\fR] [\fB\-set_serial n\fR] [\fB\-signkey filename\fR] [\fB\-passin arg\fR] [\fB\-x509toreq\fR] [\fB\-req\fR] [\fB\-CA filename\fR] [\fB\-CAkey filename\fR] [\fB\-CAcreateserial\fR] [\fB\-CAserial filename\fR] [\fB\-force_pubkey key\fR] [\fB\-text\fR] [\fB\-certopt option\fR] [\fB\-C\fR] [\fB\-md2|\-md5|\-sha1|\-mdc2\fR] [\fB\-clrext\fR] [\fB\-extfile filename\fR] [\fB\-extensions section\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBx509\fR command is a multi purpose certificate utility. It can be used to display certificate information, convert certificates to various forms, sign certificate requests like a \*(L"mini \s-1CA\*(R"\s0 or edit certificate trust settings. .PP Since there are a large number of options they will split up into various sections. .SH "OPTIONS" .IX Header "OPTIONS" .SS "\s-1INPUT, OUTPUT AND GENERAL PURPOSE OPTIONS\s0" .IX Subsection "INPUT, OUTPUT AND GENERAL PURPOSE OPTIONS" .IP "\fB\-inform DER|PEM|NET\fR" 4 .IX Item "-inform DER|PEM|NET" This specifies the input format normally the command will expect an X509 certificate but this can change if other options such as \fB\-req\fR are present. The \s-1DER\s0 format is the \s-1DER\s0 encoding of the certificate and \s-1PEM\s0 is the base64 encoding of the \s-1DER\s0 encoding with header and footer lines added. The \s-1NET\s0 option is an obscure Netscape server format that is now obsolete. .IP "\fB\-outform DER|PEM|NET\fR" 4 .IX Item "-outform DER|PEM|NET" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read a certificate from or standard input if this option is not specified. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" This specifies the output filename to write to or standard output by default. .IP "\fB\-md2|\-md5|\-sha1|\-mdc2\fR" 4 .IX Item "-md2|-md5|-sha1|-mdc2" the digest to use. This affects any signing or display option that uses a message digest, such as the \fB\-fingerprint\fR, \fB\-signkey\fR and \fB\-CA\fR options. If not specified then \s-1SHA1\s0 is used. If the key being used to sign with is a \s-1DSA\s0 key then this option has no effect: \s-1SHA1\s0 is always used with \s-1DSA\s0 keys. For full list of digests see openssl dgst \-h output. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBx509\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .SS "\s-1DISPLAY OPTIONS\s0" .IX Subsection "DISPLAY OPTIONS" Note: the \fB\-alias\fR and \fB\-purpose\fR options are also display options but are described in the \fB\s-1TRUST SETTINGS\s0\fR section. .IP "\fB\-text\fR" 4 .IX Item "-text" prints out the certificate in text form. Full details are output including the public key, signature algorithms, issuer and subject names, serial number any extensions present and any trust settings. .IP "\fB\-certopt option\fR" 4 .IX Item "-certopt option" customise the output format used with \fB\-text\fR. The \fBoption\fR argument can be a single option or multiple options separated by commas. The \fB\-certopt\fR switch may be also be used more than once to set multiple options. See the \fB\s-1TEXT OPTIONS\s0\fR section for more information. .IP "\fB\-noout\fR" 4 .IX Item "-noout" this option prevents output of the encoded version of the request. .IP "\fB\-pubkey\fR" 4 .IX Item "-pubkey" outputs the the certificate's SubjectPublicKeyInfo block in \s-1PEM\s0 format. .IP "\fB\-modulus\fR" 4 .IX Item "-modulus" this option prints out the value of the modulus of the public key contained in the certificate. .IP "\fB\-serial\fR" 4 .IX Item "-serial" outputs the certificate serial number. .IP "\fB\-subject_hash\fR" 4 .IX Item "-subject_hash" outputs the \*(L"hash\*(R" of the certificate subject name. This is used in OpenSSL to form an index to allow certificates in a directory to be looked up by subject name. .IP "\fB\-issuer_hash\fR" 4 .IX Item "-issuer_hash" outputs the \*(L"hash\*(R" of the certificate issuer name. .IP "\fB\-ocspid\fR" 4 .IX Item "-ocspid" outputs the \s-1OCSP\s0 hash values for the subject name and public key. .IP "\fB\-hash\fR" 4 .IX Item "-hash" synonym for \*(L"\-subject_hash\*(R" for backward compatibility reasons. .IP "\fB\-subject_hash_old\fR" 4 .IX Item "-subject_hash_old" outputs the \*(L"hash\*(R" of the certificate subject name using the older algorithm as used by OpenSSL versions before 1.0.0. .IP "\fB\-issuer_hash_old\fR" 4 .IX Item "-issuer_hash_old" outputs the \*(L"hash\*(R" of the certificate issuer name using the older algorithm as used by OpenSSL versions before 1.0.0. .IP "\fB\-subject\fR" 4 .IX Item "-subject" outputs the subject name. .IP "\fB\-issuer\fR" 4 .IX Item "-issuer" outputs the issuer name. .IP "\fB\-nameopt option\fR" 4 .IX Item "-nameopt option" option which determines how the subject or issuer names are displayed. The \&\fBoption\fR argument can be a single option or multiple options separated by commas. Alternatively the \fB\-nameopt\fR switch may be used more than once to set multiple options. See the \fB\s-1NAME OPTIONS\s0\fR section for more information. .IP "\fB\-email\fR" 4 .IX Item "-email" outputs the email address(es) if any. .IP "\fB\-ocsp_uri\fR" 4 .IX Item "-ocsp_uri" outputs the \s-1OCSP\s0 responder address(es) if any. .IP "\fB\-startdate\fR" 4 .IX Item "-startdate" prints out the start date of the certificate, that is the notBefore date. .IP "\fB\-enddate\fR" 4 .IX Item "-enddate" prints out the expiry date of the certificate, that is the notAfter date. .IP "\fB\-dates\fR" 4 .IX Item "-dates" prints out the start and expiry dates of a certificate. .IP "\fB\-checkend arg\fR" 4 .IX Item "-checkend arg" checks if the certificate expires within the next \fBarg\fR seconds and exits non-zero if yes it will expire or zero if not. .IP "\fB\-fingerprint\fR" 4 .IX Item "-fingerprint" prints out the digest of the \s-1DER\s0 encoded version of the whole certificate (see digest options). .IP "\fB\-C\fR" 4 .IX Item "-C" this outputs the certificate in the form of a C source file. .SS "\s-1TRUST SETTINGS\s0" .IX Subsection "TRUST SETTINGS" Please note these options are currently experimental and may well change. .PP A \fBtrusted certificate\fR is an ordinary certificate which has several additional pieces of information attached to it such as the permitted and prohibited uses of the certificate and an \*(L"alias\*(R". .PP Normally when a certificate is being verified at least one certificate must be \*(L"trusted\*(R". By default a trusted certificate must be stored locally and must be a root \s-1CA:\s0 any certificate chain ending in this \s-1CA\s0 is then usable for any purpose. .PP Trust settings currently are only used with a root \s-1CA.\s0 They allow a finer control over the purposes the root \s-1CA\s0 can be used for. For example a \s-1CA\s0 may be trusted for \s-1SSL\s0 client but not \s-1SSL\s0 server use. .PP See the description of the \fBverify\fR utility for more information on the meaning of trust settings. .PP Future versions of OpenSSL will recognize trust settings on any certificate: not just root CAs. .IP "\fB\-trustout\fR" 4 .IX Item "-trustout" this causes \fBx509\fR to output a \fBtrusted\fR certificate. An ordinary or trusted certificate can be input but by default an ordinary certificate is output and any trust settings are discarded. With the \&\fB\-trustout\fR option a trusted certificate is output. A trusted certificate is automatically output if any trust settings are modified. .IP "\fB\-setalias arg\fR" 4 .IX Item "-setalias arg" sets the alias of the certificate. This will allow the certificate to be referred to using a nickname for example \*(L"Steve's Certificate\*(R". .IP "\fB\-alias\fR" 4 .IX Item "-alias" outputs the certificate alias, if any. .IP "\fB\-clrtrust\fR" 4 .IX Item "-clrtrust" clears all the permitted or trusted uses of the certificate. .IP "\fB\-clrreject\fR" 4 .IX Item "-clrreject" clears all the prohibited or rejected uses of the certificate. .IP "\fB\-addtrust arg\fR" 4 .IX Item "-addtrust arg" adds a trusted certificate use. Any object name can be used here but currently only \fBclientAuth\fR (\s-1SSL\s0 client use), \fBserverAuth\fR (\s-1SSL\s0 server use) and \fBemailProtection\fR (S/MIME email) are used. Other OpenSSL applications may define additional uses. .IP "\fB\-addreject arg\fR" 4 .IX Item "-addreject arg" adds a prohibited use. It accepts the same values as the \fB\-addtrust\fR option. .IP "\fB\-purpose\fR" 4 .IX Item "-purpose" this option performs tests on the certificate extensions and outputs the results. For a more complete description see the \fB\s-1CERTIFICATE EXTENSIONS\s0\fR section. .SS "\s-1SIGNING OPTIONS\s0" .IX Subsection "SIGNING OPTIONS" The \fBx509\fR utility can be used to sign certificates and requests: it can thus behave like a \*(L"mini \s-1CA\*(R".\s0 .IP "\fB\-signkey filename\fR" 4 .IX Item "-signkey filename" this option causes the input file to be self signed using the supplied private key. .Sp If the input file is a certificate it sets the issuer name to the subject name (i.e. makes it self signed) changes the public key to the supplied value and changes the start and end dates. The start date is set to the current time and the end date is set to a value determined by the \fB\-days\fR option. Any certificate extensions are retained unless the \fB\-clrext\fR option is supplied. .Sp If the input is a certificate request then a self signed certificate is created using the supplied private key using the subject name in the request. .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the key password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-clrext\fR" 4 .IX Item "-clrext" delete any extensions from a certificate. This option is used when a certificate is being created from another certificate (for example with the \fB\-signkey\fR or the \fB\-CA\fR options). Normally all extensions are retained. .IP "\fB\-keyform PEM|DER\fR" 4 .IX Item "-keyform PEM|DER" specifies the format (\s-1DER\s0 or \s-1PEM\s0) of the private key file used in the \&\fB\-signkey\fR option. .IP "\fB\-days arg\fR" 4 .IX Item "-days arg" specifies the number of days to make a certificate valid for. The default is 30 days. .IP "\fB\-x509toreq\fR" 4 .IX Item "-x509toreq" converts a certificate into a certificate request. The \fB\-signkey\fR option is used to pass the required private key. .IP "\fB\-req\fR" 4 .IX Item "-req" by default a certificate is expected on input. With this option a certificate request is expected instead. .IP "\fB\-set_serial n\fR" 4 .IX Item "-set_serial n" specifies the serial number to use. This option can be used with either the \fB\-signkey\fR or \fB\-CA\fR options. If used in conjunction with the \fB\-CA\fR option the serial number file (as specified by the \fB\-CAserial\fR or \&\fB\-CAcreateserial\fR options) is not used. .Sp The serial number can be decimal or hex (if preceded by \fB0x\fR). Negative serial numbers can also be specified but their use is not recommended. .IP "\fB\-CA filename\fR" 4 .IX Item "-CA filename" specifies the \s-1CA\s0 certificate to be used for signing. When this option is present \fBx509\fR behaves like a \*(L"mini \s-1CA\*(R".\s0 The input file is signed by this \&\s-1CA\s0 using this option: that is its issuer name is set to the subject name of the \s-1CA\s0 and it is digitally signed using the CAs private key. .Sp This option is normally combined with the \fB\-req\fR option. Without the \&\fB\-req\fR option the input is a certificate which must be self signed. .IP "\fB\-CAkey filename\fR" 4 .IX Item "-CAkey filename" sets the \s-1CA\s0 private key to sign a certificate with. If this option is not specified then it is assumed that the \s-1CA\s0 private key is present in the \s-1CA\s0 certificate file. .IP "\fB\-CAserial filename\fR" 4 .IX Item "-CAserial filename" sets the \s-1CA\s0 serial number file to use. .Sp When the \fB\-CA\fR option is used to sign a certificate it uses a serial number specified in a file. This file consist of one line containing an even number of hex digits with the serial number to use. After each use the serial number is incremented and written out to the file again. .Sp The default filename consists of the \s-1CA\s0 certificate file base name with \&\*(L".srl\*(R" appended. For example if the \s-1CA\s0 certificate file is called \&\*(L"mycacert.pem\*(R" it expects to find a serial number file called \*(L"mycacert.srl\*(R". .IP "\fB\-CAcreateserial\fR" 4 .IX Item "-CAcreateserial" with this option the \s-1CA\s0 serial number file is created if it does not exist: it will contain the serial number \*(L"02\*(R" and the certificate being signed will have the 1 as its serial number. Normally if the \fB\-CA\fR option is specified and the serial number file does not exist it is an error. .IP "\fB\-extfile filename\fR" 4 .IX Item "-extfile filename" file containing certificate extensions to use. If not specified then no extensions are added to the certificate. .IP "\fB\-extensions section\fR" 4 .IX Item "-extensions section" the section to add certificate extensions from. If this option is not specified then the extensions should either be contained in the unnamed (default) section or the default section should contain a variable called \&\*(L"extensions\*(R" which contains the section to use. See the \&\fIx509v3_config\fR\|(5) manual page for details of the extension section format. .IP "\fB\-force_pubkey key\fR" 4 .IX Item "-force_pubkey key" when a certificate is created set its public key to \fBkey\fR instead of the key in the certificate or certificate request. This option is useful for creating certificates where the algorithm can't normally sign requests, for example \s-1DH.\s0 .Sp The format or \fBkey\fR can be specified using the \fB\-keyform\fR option. .SS "\s-1NAME OPTIONS\s0" .IX Subsection "NAME OPTIONS" The \fBnameopt\fR command line switch determines how the subject and issuer names are displayed. If no \fBnameopt\fR switch is present the default \*(L"oneline\*(R" format is used which is compatible with previous versions of OpenSSL. Each option is described in detail below, all options can be preceded by a \fB\-\fR to turn the option off. Only the first four will normally be used. .IP "\fBcompat\fR" 4 .IX Item "compat" use the old format. This is equivalent to specifying no name options at all. .IP "\fB\s-1RFC2253\s0\fR" 4 .IX Item "RFC2253" displays names compatible with \s-1RFC2253\s0 equivalent to \fBesc_2253\fR, \fBesc_ctrl\fR, \&\fBesc_msb\fR, \fButf8\fR, \fBdump_nostr\fR, \fBdump_unknown\fR, \fBdump_der\fR, \&\fBsep_comma_plus\fR, \fBdn_rev\fR and \fBsname\fR. .IP "\fBoneline\fR" 4 .IX Item "oneline" a oneline format which is more readable than \s-1RFC2253.\s0 It is equivalent to specifying the \fBesc_2253\fR, \fBesc_ctrl\fR, \fBesc_msb\fR, \fButf8\fR, \fBdump_nostr\fR, \&\fBdump_der\fR, \fBuse_quote\fR, \fBsep_comma_plus_space\fR, \fBspace_eq\fR and \fBsname\fR options. .IP "\fBmultiline\fR" 4 .IX Item "multiline" a multiline format. It is equivalent \fBesc_ctrl\fR, \fBesc_msb\fR, \fBsep_multiline\fR, \&\fBspace_eq\fR, \fBlname\fR and \fBalign\fR. .IP "\fBesc_2253\fR" 4 .IX Item "esc_2253" escape the \*(L"special\*(R" characters required by \s-1RFC2253\s0 in a field That is \&\fB,+"<>;\fR. Additionally \fB#\fR is escaped at the beginning of a string and a space character at the beginning or end of a string. .IP "\fBesc_ctrl\fR" 4 .IX Item "esc_ctrl" escape control characters. That is those with \s-1ASCII\s0 values less than 0x20 (space) and the delete (0x7f) character. They are escaped using the \&\s-1RFC2253\s0 \eXX notation (where \s-1XX\s0 are two hex digits representing the character value). .IP "\fBesc_msb\fR" 4 .IX Item "esc_msb" escape characters with the \s-1MSB\s0 set, that is with \s-1ASCII\s0 values larger than 127. .IP "\fBuse_quote\fR" 4 .IX Item "use_quote" escapes some characters by surrounding the whole string with \fB"\fR characters, without the option all escaping is done with the \fB\e\fR character. .IP "\fButf8\fR" 4 .IX Item "utf8" convert all strings to \s-1UTF8\s0 format first. This is required by \s-1RFC2253.\s0 If you are lucky enough to have a \s-1UTF8\s0 compatible terminal then the use of this option (and \fBnot\fR setting \fBesc_msb\fR) may result in the correct display of multibyte (international) characters. Is this option is not present then multibyte characters larger than 0xff will be represented using the format \eUXXXX for 16 bits and \eWXXXXXXXX for 32 bits. Also if this option is off any UTF8Strings will be converted to their character form first. .IP "\fBignore_type\fR" 4 .IX Item "ignore_type" this option does not attempt to interpret multibyte characters in any way. That is their content octets are merely dumped as though one octet represents each character. This is useful for diagnostic purposes but will result in rather odd looking output. .IP "\fBshow_type\fR" 4 .IX Item "show_type" show the type of the \s-1ASN1\s0 character string. The type precedes the field contents. For example \*(L"\s-1BMPSTRING:\s0 Hello World\*(R". .IP "\fBdump_der\fR" 4 .IX Item "dump_der" when this option is set any fields that need to be hexdumped will be dumped using the \s-1DER\s0 encoding of the field. Otherwise just the content octets will be displayed. Both options use the \s-1RFC2253 \&\s0\fB#XXXX...\fR format. .IP "\fBdump_nostr\fR" 4 .IX Item "dump_nostr" dump non character string types (for example \s-1OCTET STRING\s0) if this option is not set then non character string types will be displayed as though each content octet represents a single character. .IP "\fBdump_all\fR" 4 .IX Item "dump_all" dump all fields. This option when used with \fBdump_der\fR allows the \&\s-1DER\s0 encoding of the structure to be unambiguously determined. .IP "\fBdump_unknown\fR" 4 .IX Item "dump_unknown" dump any field whose \s-1OID\s0 is not recognised by OpenSSL. .IP "\fBsep_comma_plus\fR, \fBsep_comma_plus_space\fR, \fBsep_semi_plus_space\fR, \fBsep_multiline\fR" 4 .IX Item "sep_comma_plus, sep_comma_plus_space, sep_semi_plus_space, sep_multiline" these options determine the field separators. The first character is between RDNs and the second between multiple AVAs (multiple AVAs are very rare and their use is discouraged). The options ending in \&\*(L"space\*(R" additionally place a space after the separator to make it more readable. The \fBsep_multiline\fR uses a linefeed character for the \s-1RDN\s0 separator and a spaced \fB+\fR for the \s-1AVA\s0 separator. It also indents the fields by four characters. If no field separator is specified then \fBsep_comma_plus_space\fR is used by default. .IP "\fBdn_rev\fR" 4 .IX Item "dn_rev" reverse the fields of the \s-1DN.\s0 This is required by \s-1RFC2253.\s0 As a side effect this also reverses the order of multiple AVAs but this is permissible. .IP "\fBnofname\fR, \fBsname\fR, \fBlname\fR, \fBoid\fR" 4 .IX Item "nofname, sname, lname, oid" these options alter how the field name is displayed. \fBnofname\fR does not display the field at all. \fBsname\fR uses the \*(L"short name\*(R" form (\s-1CN\s0 for commonName for example). \fBlname\fR uses the long form. \&\fBoid\fR represents the \s-1OID\s0 in numerical form and is useful for diagnostic purpose. .IP "\fBalign\fR" 4 .IX Item "align" align field values for a more readable output. Only usable with \&\fBsep_multiline\fR. .IP "\fBspace_eq\fR" 4 .IX Item "space_eq" places spaces round the \fB=\fR character which follows the field name. .SS "\s-1TEXT OPTIONS\s0" .IX Subsection "TEXT OPTIONS" As well as customising the name output format, it is also possible to customise the actual fields printed using the \fBcertopt\fR options when the \fBtext\fR option is present. The default behaviour is to print all fields. .IP "\fBcompatible\fR" 4 .IX Item "compatible" use the old format. This is equivalent to specifying no output options at all. .IP "\fBno_header\fR" 4 .IX Item "no_header" don't print header information: that is the lines saying \*(L"Certificate\*(R" and \*(L"Data\*(R". .IP "\fBno_version\fR" 4 .IX Item "no_version" don't print out the version number. .IP "\fBno_serial\fR" 4 .IX Item "no_serial" don't print out the serial number. .IP "\fBno_signame\fR" 4 .IX Item "no_signame" don't print out the signature algorithm used. .IP "\fBno_validity\fR" 4 .IX Item "no_validity" don't print the validity, that is the \fBnotBefore\fR and \fBnotAfter\fR fields. .IP "\fBno_subject\fR" 4 .IX Item "no_subject" don't print out the subject name. .IP "\fBno_issuer\fR" 4 .IX Item "no_issuer" don't print out the issuer name. .IP "\fBno_pubkey\fR" 4 .IX Item "no_pubkey" don't print out the public key. .IP "\fBno_sigdump\fR" 4 .IX Item "no_sigdump" don't give a hexadecimal dump of the certificate signature. .IP "\fBno_aux\fR" 4 .IX Item "no_aux" don't print out certificate trust information. .IP "\fBno_extensions\fR" 4 .IX Item "no_extensions" don't print out any X509V3 extensions. .IP "\fBext_default\fR" 4 .IX Item "ext_default" retain default extension behaviour: attempt to print out unsupported certificate extensions. .IP "\fBext_error\fR" 4 .IX Item "ext_error" print an error message for unsupported certificate extensions. .IP "\fBext_parse\fR" 4 .IX Item "ext_parse" \&\s-1ASN1\s0 parse unsupported extensions. .IP "\fBext_dump\fR" 4 .IX Item "ext_dump" hex dump unsupported extensions. .IP "\fBca_default\fR" 4 .IX Item "ca_default" the value used by the \fBca\fR utility, equivalent to \fBno_issuer\fR, \fBno_pubkey\fR, \&\fBno_header\fR, and \fBno_version\fR. .SH "EXAMPLES" .IX Header "EXAMPLES" Note: in these examples the '\e' means the example should be all on one line. .PP Display the contents of a certificate: .PP .Vb 1 \& openssl x509 \-in cert.pem \-noout \-text .Ve .PP Display the certificate serial number: .PP .Vb 1 \& openssl x509 \-in cert.pem \-noout \-serial .Ve .PP Display the certificate subject name: .PP .Vb 1 \& openssl x509 \-in cert.pem \-noout \-subject .Ve .PP Display the certificate subject name in \s-1RFC2253\s0 form: .PP .Vb 1 \& openssl x509 \-in cert.pem \-noout \-subject \-nameopt RFC2253 .Ve .PP Display the certificate subject name in oneline form on a terminal supporting \s-1UTF8:\s0 .PP .Vb 1 \& openssl x509 \-in cert.pem \-noout \-subject \-nameopt oneline,\-esc_msb .Ve .PP Display the certificate \s-1MD5\s0 fingerprint: .PP .Vb 1 \& openssl x509 \-in cert.pem \-noout \-fingerprint .Ve .PP Display the certificate \s-1SHA1\s0 fingerprint: .PP .Vb 1 \& openssl x509 \-sha1 \-in cert.pem \-noout \-fingerprint .Ve .PP Convert a certificate from \s-1PEM\s0 to \s-1DER\s0 format: .PP .Vb 1 \& openssl x509 \-in cert.pem \-inform PEM \-out cert.der \-outform DER .Ve .PP Convert a certificate to a certificate request: .PP .Vb 1 \& openssl x509 \-x509toreq \-in cert.pem \-out req.pem \-signkey key.pem .Ve .PP Convert a certificate request into a self signed certificate using extensions for a \s-1CA:\s0 .PP .Vb 2 \& openssl x509 \-req \-in careq.pem \-extfile openssl.cnf \-extensions v3_ca \e \& \-signkey key.pem \-out cacert.pem .Ve .PP Sign a certificate request using the \s-1CA\s0 certificate above and add user certificate extensions: .PP .Vb 2 \& openssl x509 \-req \-in req.pem \-extfile openssl.cnf \-extensions v3_usr \e \& \-CA cacert.pem \-CAkey key.pem \-CAcreateserial .Ve .PP Set a certificate to be trusted for \s-1SSL\s0 client use and change set its alias to \&\*(L"Steve's Class 1 \s-1CA\*(R"\s0 .PP .Vb 2 \& openssl x509 \-in cert.pem \-addtrust clientAuth \e \& \-setalias "Steve\*(Aqs Class 1 CA" \-out trust.pem .Ve .SH "NOTES" .IX Header "NOTES" The \s-1PEM\s0 format uses the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN CERTIFICATE\-\-\-\-\- \& \-\-\-\-\-END CERTIFICATE\-\-\-\-\- .Ve .PP it will also handle files containing: .PP .Vb 2 \& \-\-\-\-\-BEGIN X509 CERTIFICATE\-\-\-\-\- \& \-\-\-\-\-END X509 CERTIFICATE\-\-\-\-\- .Ve .PP Trusted certificates have the lines .PP .Vb 2 \& \-\-\-\-\-BEGIN TRUSTED CERTIFICATE\-\-\-\-\- \& \-\-\-\-\-END TRUSTED CERTIFICATE\-\-\-\-\- .Ve .PP The conversion to \s-1UTF8\s0 format used with the name options assumes that T61Strings use the \s-1ISO8859\-1\s0 character set. This is wrong but Netscape and \s-1MSIE\s0 do this as do many certificates. So although this is incorrect it is more likely to display the majority of certificates correctly. .PP The \fB\-fingerprint\fR option takes the digest of the \s-1DER\s0 encoded certificate. This is commonly called a \*(L"fingerprint\*(R". Because of the nature of message digests the fingerprint of a certificate is unique to that certificate and two certificates with the same fingerprint can be considered to be the same. .PP The Netscape fingerprint uses \s-1MD5\s0 whereas \s-1MSIE\s0 uses \s-1SHA1.\s0 .PP The \fB\-email\fR option searches the subject name and the subject alternative name extension. Only unique email addresses will be printed out: it will not print the same address more than once. .SH "CERTIFICATE EXTENSIONS" .IX Header "CERTIFICATE EXTENSIONS" The \fB\-purpose\fR option checks the certificate extensions and determines what the certificate can be used for. The actual checks done are rather complex and include various hacks and workarounds to handle broken certificates and software. .PP The same code is used when verifying untrusted certificates in chains so this section is useful if a chain is rejected by the verify code. .PP The basicConstraints extension \s-1CA\s0 flag is used to determine whether the certificate can be used as a \s-1CA.\s0 If the \s-1CA\s0 flag is true then it is a \s-1CA,\s0 if the \s-1CA\s0 flag is false then it is not a \s-1CA. \s0\fBAll\fR CAs should have the \&\s-1CA\s0 flag set to true. .PP If the basicConstraints extension is absent then the certificate is considered to be a \*(L"possible \s-1CA\*(R"\s0 other extensions are checked according to the intended use of the certificate. A warning is given in this case because the certificate should really not be regarded as a \s-1CA:\s0 however it is allowed to be a \s-1CA\s0 to work around some broken software. .PP If the certificate is a V1 certificate (and thus has no extensions) and it is self signed it is also assumed to be a \s-1CA\s0 but a warning is again given: this is to work around the problem of Verisign roots which are V1 self signed certificates. .PP If the keyUsage extension is present then additional restraints are made on the uses of the certificate. A \s-1CA\s0 certificate \fBmust\fR have the keyCertSign bit set if the keyUsage extension is present. .PP The extended key usage extension places additional restrictions on the certificate uses. If this extension is present (whether critical or not) the key can only be used for the purposes specified. .PP A complete description of each test is given below. The comments about basicConstraints and keyUsage and V1 certificates above apply to \fBall\fR \&\s-1CA\s0 certificates. .IP "\fB\s-1SSL\s0 Client\fR" 4 .IX Item "SSL Client" The extended key usage extension must be absent or include the \*(L"web client authentication\*(R" \s-1OID. \s0 keyUsage must be absent or it must have the digitalSignature bit set. Netscape certificate type must be absent or it must have the \s-1SSL\s0 client bit set. .IP "\fB\s-1SSL\s0 Client \s-1CA\s0\fR" 4 .IX Item "SSL Client CA" The extended key usage extension must be absent or include the \*(L"web client authentication\*(R" \s-1OID.\s0 Netscape certificate type must be absent or it must have the \s-1SSL CA\s0 bit set: this is used as a work around if the basicConstraints extension is absent. .IP "\fB\s-1SSL\s0 Server\fR" 4 .IX Item "SSL Server" The extended key usage extension must be absent or include the \*(L"web server authentication\*(R" and/or one of the \s-1SGC\s0 OIDs. keyUsage must be absent or it must have the digitalSignature, the keyEncipherment set or both bits set. Netscape certificate type must be absent or have the \s-1SSL\s0 server bit set. .IP "\fB\s-1SSL\s0 Server \s-1CA\s0\fR" 4 .IX Item "SSL Server CA" The extended key usage extension must be absent or include the \*(L"web server authentication\*(R" and/or one of the \s-1SGC\s0 OIDs. Netscape certificate type must be absent or the \s-1SSL CA\s0 bit must be set: this is used as a work around if the basicConstraints extension is absent. .IP "\fBNetscape \s-1SSL\s0 Server\fR" 4 .IX Item "Netscape SSL Server" For Netscape \s-1SSL\s0 clients to connect to an \s-1SSL\s0 server it must have the keyEncipherment bit set if the keyUsage extension is present. This isn't always valid because some cipher suites use the key for digital signing. Otherwise it is the same as a normal \s-1SSL\s0 server. .IP "\fBCommon S/MIME Client Tests\fR" 4 .IX Item "Common S/MIME Client Tests" The extended key usage extension must be absent or include the \*(L"email protection\*(R" \s-1OID.\s0 Netscape certificate type must be absent or should have the S/MIME bit set. If the S/MIME bit is not set in netscape certificate type then the \s-1SSL\s0 client bit is tolerated as an alternative but a warning is shown: this is because some Verisign certificates don't set the S/MIME bit. .IP "\fBS/MIME Signing\fR" 4 .IX Item "S/MIME Signing" In addition to the common S/MIME client tests the digitalSignature bit must be set if the keyUsage extension is present. .IP "\fBS/MIME Encryption\fR" 4 .IX Item "S/MIME Encryption" In addition to the common S/MIME tests the keyEncipherment bit must be set if the keyUsage extension is present. .IP "\fBS/MIME \s-1CA\s0\fR" 4 .IX Item "S/MIME CA" The extended key usage extension must be absent or include the \*(L"email protection\*(R" \s-1OID.\s0 Netscape certificate type must be absent or must have the S/MIME \s-1CA\s0 bit set: this is used as a work around if the basicConstraints extension is absent. .IP "\fB\s-1CRL\s0 Signing\fR" 4 .IX Item "CRL Signing" The keyUsage extension must be absent or it must have the \s-1CRL\s0 signing bit set. .IP "\fB\s-1CRL\s0 Signing \s-1CA\s0\fR" 4 .IX Item "CRL Signing CA" The normal \s-1CA\s0 tests apply. Except in this case the basicConstraints extension must be present. .SH "BUGS" .IX Header "BUGS" Extensions in certificates are not transferred to certificate requests and vice versa. .PP It is possible to produce invalid certificates or requests by specifying the wrong private key or using inconsistent options in some cases: these should be checked. .PP There should be options to explicitly set such things as start and end dates rather than an offset from the current time. .PP The code to implement the verify behaviour described in the \fB\s-1TRUST SETTINGS\s0\fR is currently being developed. It thus describes the intended behaviour rather than the current behaviour. It is hoped that it will represent reality in OpenSSL 0.9.5 and later. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIreq\fR\|(1), \fIca\fR\|(1), \fIgenrsa\fR\|(1), \&\fIgendsa\fR\|(1), \fIverify\fR\|(1), \&\fIx509v3_config\fR\|(5) .SH "HISTORY" .IX Header "HISTORY" Before OpenSSL 0.9.8, the default digest for \s-1RSA\s0 keys was \s-1MD5.\s0 .PP The hash algorithm used in the \fB\-subject_hash\fR and \fB\-issuer_hash\fR options before OpenSSL 1.0.0 was based on the deprecated \s-1MD5\s0 algorithm and the encoding of the distinguished name. In OpenSSL 1.0.0 and later it is based on a canonical version of the \s-1DN\s0 using \s-1SHA1.\s0 This means that any directories using the old form must have their links rebuilt using \fBc_rehash\fR or similar. man1/version.1ssl000064400000011644147210250140007673 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "VERSION 1" .TH VERSION 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" version \- print OpenSSL version information .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl version\fR [\fB\-a\fR] [\fB\-v\fR] [\fB\-b\fR] [\fB\-o\fR] [\fB\-f\fR] [\fB\-p\fR] [\fB\-d\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" This command is used to print out version information about OpenSSL. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-a\fR" 4 .IX Item "-a" all information, this is the same as setting all the other flags. .IP "\fB\-v\fR" 4 .IX Item "-v" the current OpenSSL version. .IP "\fB\-b\fR" 4 .IX Item "-b" the date the current version of OpenSSL was built. .IP "\fB\-o\fR" 4 .IX Item "-o" option information: various options set when the library was built. .IP "\fB\-f\fR" 4 .IX Item "-f" compilation flags. .IP "\fB\-p\fR" 4 .IX Item "-p" platform setting. .IP "\fB\-d\fR" 4 .IX Item "-d" \&\s-1OPENSSLDIR\s0 setting. .SH "NOTES" .IX Header "NOTES" The output of \fBopenssl version \-a\fR would typically be used when sending in a bug report. .SH "HISTORY" .IX Header "HISTORY" The \fB\-d\fR option was added in OpenSSL 0.9.7. man1/ocsp.1ssl000064400000050117147210250140007150 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "OCSP 1" .TH OCSP 1 "2017-06-30" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ocsp \- Online Certificate Status Protocol utility .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBocsp\fR [\fB\-out file\fR] [\fB\-issuer file\fR] [\fB\-cert file\fR] [\fB\-serial n\fR] [\fB\-signer file\fR] [\fB\-signkey file\fR] [\fB\-sign_other file\fR] [\fB\-no_certs\fR] [\fB\-req_text\fR] [\fB\-resp_text\fR] [\fB\-text\fR] [\fB\-reqout file\fR] [\fB\-respout file\fR] [\fB\-reqin file\fR] [\fB\-respin file\fR] [\fB\-nonce\fR] [\fB\-no_nonce\fR] [\fB\-url \s-1URL\s0\fR] [\fB\-host host:n\fR] [\fB\-header name value\fR] [\fB\-path\fR] [\fB\-CApath dir\fR] [\fB\-CAfile file\fR] [\fB\-trusted_first\fR] [\fB\-no_alt_chains\fR] [\fB\-VAfile file\fR] [\fB\-validity_period n\fR] [\fB\-status_age n\fR] [\fB\-noverify\fR] [\fB\-verify_other file\fR] [\fB\-trust_other\fR] [\fB\-no_intern\fR] [\fB\-no_signature_verify\fR] [\fB\-no_cert_verify\fR] [\fB\-no_chain\fR] [\fB\-no_cert_checks\fR] [\fB\-no_explicit\fR] [\fB\-port num\fR] [\fB\-index file\fR] [\fB\-CA file\fR] [\fB\-rsigner file\fR] [\fB\-rkey file\fR] [\fB\-rother file\fR] [\fB\-resp_no_certs\fR] [\fB\-nmin n\fR] [\fB\-ndays n\fR] [\fB\-resp_key_id\fR] [\fB\-nrequest n\fR] [\fB\-md5|\-sha1|...\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The Online Certificate Status Protocol (\s-1OCSP\s0) enables applications to determine the (revocation) state of an identified certificate (\s-1RFC 2560\s0). .PP The \fBocsp\fR command performs many common \s-1OCSP\s0 tasks. It can be used to print out requests and responses, create requests and send queries to an \s-1OCSP\s0 responder and behave like a mini \s-1OCSP\s0 server itself. .SH "OCSP CLIENT OPTIONS" .IX Header "OCSP CLIENT OPTIONS" .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" specify output filename, default is standard output. .IP "\fB\-issuer filename\fR" 4 .IX Item "-issuer filename" This specifies the current issuer certificate. This option can be used multiple times. The certificate specified in \fBfilename\fR must be in \&\s-1PEM\s0 format. This option \fB\s-1MUST\s0\fR come before any \fB\-cert\fR options. .IP "\fB\-cert filename\fR" 4 .IX Item "-cert filename" Add the certificate \fBfilename\fR to the request. The issuer certificate is taken from the previous \fBissuer\fR option, or an error occurs if no issuer certificate is specified. .IP "\fB\-serial num\fR" 4 .IX Item "-serial num" Same as the \fBcert\fR option except the certificate with serial number \&\fBnum\fR is added to the request. The serial number is interpreted as a decimal integer unless preceded by \fB0x\fR. Negative integers can also be specified by preceding the value by a \fB\-\fR sign. .IP "\fB\-signer filename\fR, \fB\-signkey filename\fR" 4 .IX Item "-signer filename, -signkey filename" Sign the \s-1OCSP\s0 request using the certificate specified in the \fBsigner\fR option and the private key specified by the \fBsignkey\fR option. If the \fBsignkey\fR option is not present then the private key is read from the same file as the certificate. If neither option is specified then the \s-1OCSP\s0 request is not signed. .IP "\fB\-sign_other filename\fR" 4 .IX Item "-sign_other filename" Additional certificates to include in the signed request. .IP "\fB\-nonce\fR, \fB\-no_nonce\fR" 4 .IX Item "-nonce, -no_nonce" Add an \s-1OCSP\s0 nonce extension to a request or disable \s-1OCSP\s0 nonce addition. Normally if an \s-1OCSP\s0 request is input using the \fBrespin\fR option no nonce is added: using the \fBnonce\fR option will force addition of a nonce. If an \s-1OCSP\s0 request is being created (using \fBcert\fR and \fBserial\fR options) a nonce is automatically added specifying \fBno_nonce\fR overrides this. .IP "\fB\-req_text\fR, \fB\-resp_text\fR, \fB\-text\fR" 4 .IX Item "-req_text, -resp_text, -text" print out the text form of the \s-1OCSP\s0 request, response or both respectively. .IP "\fB\-reqout file\fR, \fB\-respout file\fR" 4 .IX Item "-reqout file, -respout file" write out the \s-1DER\s0 encoded certificate request or response to \fBfile\fR. .IP "\fB\-reqin file\fR, \fB\-respin file\fR" 4 .IX Item "-reqin file, -respin file" read \s-1OCSP\s0 request or response file from \fBfile\fR. These option are ignored if \s-1OCSP\s0 request or response creation is implied by other options (for example with \fBserial\fR, \fBcert\fR and \fBhost\fR options). .IP "\fB\-url responder_url\fR" 4 .IX Item "-url responder_url" specify the responder \s-1URL.\s0 Both \s-1HTTP\s0 and \s-1HTTPS \s0(\s-1SSL/TLS\s0) URLs can be specified. .IP "\fB\-host hostname:port\fR, \fB\-path pathname\fR" 4 .IX Item "-host hostname:port, -path pathname" if the \fBhost\fR option is present then the \s-1OCSP\s0 request is sent to the host \&\fBhostname\fR on port \fBport\fR. \fBpath\fR specifies the \s-1HTTP\s0 path name to use or \*(L"/\*(R" by default. .IP "\fB\-header name value\fR" 4 .IX Item "-header name value" If sending a request to an \s-1OCSP\s0 server, then the specified header name and value are added to the \s-1HTTP\s0 request. Note that the \fBname\fR and \fBvalue\fR must be specified as two separate parameters, not as a single quoted string, and that the header name does not have the trailing colon. Some \s-1OCSP\s0 responders require a Host header; use this flag to provide it. .IP "\fB\-timeout seconds\fR" 4 .IX Item "-timeout seconds" connection timeout to the \s-1OCSP\s0 responder in seconds .IP "\fB\-CAfile file\fR, \fB\-CApath pathname\fR" 4 .IX Item "-CAfile file, -CApath pathname" file or pathname containing trusted \s-1CA\s0 certificates. These are used to verify the signature on the \s-1OCSP\s0 response. .IP "\fB\-trusted_first\fR" 4 .IX Item "-trusted_first" Use certificates in \s-1CA\s0 file or \s-1CA\s0 directory over certificates provided in the response or residing in other certificates file when building the trust chain to verify responder certificate. This is mainly useful in environments with Bridge \s-1CA\s0 or Cross-Certified CAs. .IP "\fB\-no_alt_chains\fR" 4 .IX Item "-no_alt_chains" See \fBverify\fR manual page for details. .IP "\fB\-verify_other file\fR" 4 .IX Item "-verify_other file" file containing additional certificates to search when attempting to locate the \s-1OCSP\s0 response signing certificate. Some responders omit the actual signer's certificate from the response: this option can be used to supply the necessary certificate in such cases. .IP "\fB\-trust_other\fR" 4 .IX Item "-trust_other" the certificates specified by the \fB\-verify_other\fR option should be explicitly trusted and no additional checks will be performed on them. This is useful when the complete responder certificate chain is not available or trusting a root \s-1CA\s0 is not appropriate. .IP "\fB\-VAfile file\fR" 4 .IX Item "-VAfile file" file containing explicitly trusted responder certificates. Equivalent to the \&\fB\-verify_other\fR and \fB\-trust_other\fR options. .IP "\fB\-noverify\fR" 4 .IX Item "-noverify" don't attempt to verify the \s-1OCSP\s0 response signature or the nonce values. This option will normally only be used for debugging since it disables all verification of the responders certificate. .IP "\fB\-no_intern\fR" 4 .IX Item "-no_intern" ignore certificates contained in the \s-1OCSP\s0 response when searching for the signers certificate. With this option the signers certificate must be specified with either the \fB\-verify_other\fR or \fB\-VAfile\fR options. .IP "\fB\-no_signature_verify\fR" 4 .IX Item "-no_signature_verify" don't check the signature on the \s-1OCSP\s0 response. Since this option tolerates invalid signatures on \s-1OCSP\s0 responses it will normally only be used for testing purposes. .IP "\fB\-no_cert_verify\fR" 4 .IX Item "-no_cert_verify" don't verify the \s-1OCSP\s0 response signers certificate at all. Since this option allows the \s-1OCSP\s0 response to be signed by any certificate it should only be used for testing purposes. .IP "\fB\-no_chain\fR" 4 .IX Item "-no_chain" do not use certificates in the response as additional untrusted \s-1CA\s0 certificates. .IP "\fB\-no_explicit\fR" 4 .IX Item "-no_explicit" do not explicitly trust the root \s-1CA\s0 if it is set to be trusted for \s-1OCSP\s0 signing. .IP "\fB\-no_cert_checks\fR" 4 .IX Item "-no_cert_checks" don't perform any additional checks on the \s-1OCSP\s0 response signers certificate. That is do not make any checks to see if the signers certificate is authorised to provide the necessary status information: as a result this option should only be used for testing purposes. .IP "\fB\-validity_period nsec\fR, \fB\-status_age age\fR" 4 .IX Item "-validity_period nsec, -status_age age" these options specify the range of times, in seconds, which will be tolerated in an \s-1OCSP\s0 response. Each certificate status response includes a \fBnotBefore\fR time and an optional \fBnotAfter\fR time. The current time should fall between these two values, but the interval between the two times may be only a few seconds. In practice the \s-1OCSP\s0 responder and clients clocks may not be precisely synchronised and so such a check may fail. To avoid this the \fB\-validity_period\fR option can be used to specify an acceptable error range in seconds, the default value is 5 minutes. .Sp If the \fBnotAfter\fR time is omitted from a response then this means that new status information is immediately available. In this case the age of the \fBnotBefore\fR field is checked to see it is not older than \fBage\fR seconds old. By default this additional check is not performed. .IP "\fB\-md5|\-sha1|\-sha256|\-ripemod160|...\fR" 4 .IX Item "-md5|-sha1|-sha256|-ripemod160|..." this option sets digest algorithm to use for certificate identification in the \s-1OCSP\s0 request. By default \s-1SHA\-1\s0 is used. See openssl dgst \-h output for the list of available algorithms. .SH "OCSP SERVER OPTIONS" .IX Header "OCSP SERVER OPTIONS" .IP "\fB\-index indexfile\fR" 4 .IX Item "-index indexfile" \&\fBindexfile\fR is a text index file in \fBca\fR format containing certificate revocation information. .Sp If the \fBindex\fR option is specified the \fBocsp\fR utility is in responder mode, otherwise it is in client mode. The request(s) the responder processes can be either specified on the command line (using \fBissuer\fR and \fBserial\fR options), supplied in a file (using the \&\fBrespin\fR option) or via external \s-1OCSP\s0 clients (if \fBport\fR or \fBurl\fR is specified). .Sp If the \fBindex\fR option is present then the \fB\s-1CA\s0\fR and \fBrsigner\fR options must also be present. .IP "\fB\-CA file\fR" 4 .IX Item "-CA file" \&\s-1CA\s0 certificate corresponding to the revocation information in \fBindexfile\fR. .IP "\fB\-rsigner file\fR" 4 .IX Item "-rsigner file" The certificate to sign \s-1OCSP\s0 responses with. .IP "\fB\-rother file\fR" 4 .IX Item "-rother file" Additional certificates to include in the \s-1OCSP\s0 response. .IP "\fB\-resp_no_certs\fR" 4 .IX Item "-resp_no_certs" Don't include any certificates in the \s-1OCSP\s0 response. .IP "\fB\-resp_key_id\fR" 4 .IX Item "-resp_key_id" Identify the signer certificate using the key \s-1ID,\s0 default is to use the subject name. .IP "\fB\-rkey file\fR" 4 .IX Item "-rkey file" The private key to sign \s-1OCSP\s0 responses with: if not present the file specified in the \&\fBrsigner\fR option is used. .IP "\fB\-port portnum\fR" 4 .IX Item "-port portnum" Port to listen for \s-1OCSP\s0 requests on. The port may also be specified using the \fBurl\fR option. .IP "\fB\-nrequest number\fR" 4 .IX Item "-nrequest number" The \s-1OCSP\s0 server will exit after receiving \fBnumber\fR requests, default unlimited. .IP "\fB\-nmin minutes\fR, \fB\-ndays days\fR" 4 .IX Item "-nmin minutes, -ndays days" Number of minutes or days when fresh revocation information is available: used in the \&\fBnextUpdate\fR field. If neither option is present then the \fBnextUpdate\fR field is omitted meaning fresh revocation information is immediately available. .SH "OCSP Response verification." .IX Header "OCSP Response verification." \&\s-1OCSP\s0 Response follows the rules specified in \s-1RFC2560.\s0 .PP Initially the \s-1OCSP\s0 responder certificate is located and the signature on the \s-1OCSP\s0 request checked using the responder certificate's public key. .PP Then a normal certificate verify is performed on the \s-1OCSP\s0 responder certificate building up a certificate chain in the process. The locations of the trusted certificates used to build the chain can be specified by the \fBCAfile\fR and \fBCApath\fR options or they will be looked for in the standard OpenSSL certificates directory. .PP If the initial verify fails then the \s-1OCSP\s0 verify process halts with an error. .PP Otherwise the issuing \s-1CA\s0 certificate in the request is compared to the \s-1OCSP\s0 responder certificate: if there is a match then the \s-1OCSP\s0 verify succeeds. .PP Otherwise the \s-1OCSP\s0 responder certificate's \s-1CA\s0 is checked against the issuing \&\s-1CA\s0 certificate in the request. If there is a match and the OCSPSigning extended key usage is present in the \s-1OCSP\s0 responder certificate then the \&\s-1OCSP\s0 verify succeeds. .PP Otherwise, if \fB\-no_explicit\fR is \fBnot\fR set the root \s-1CA\s0 of the \s-1OCSP\s0 responders \&\s-1CA\s0 is checked to see if it is trusted for \s-1OCSP\s0 signing. If it is the \s-1OCSP\s0 verify succeeds. .PP If none of these checks is successful then the \s-1OCSP\s0 verify fails. .PP What this effectively means if that if the \s-1OCSP\s0 responder certificate is authorised directly by the \s-1CA\s0 it is issuing revocation information about (and it is correctly configured) then verification will succeed. .PP If the \s-1OCSP\s0 responder is a \*(L"global responder\*(R" which can give details about multiple CAs and has its own separate certificate chain then its root \&\s-1CA\s0 can be trusted for \s-1OCSP\s0 signing. For example: .PP .Vb 1 \& openssl x509 \-in ocspCA.pem \-addtrust OCSPSigning \-out trustedCA.pem .Ve .PP Alternatively the responder certificate itself can be explicitly trusted with the \fB\-VAfile\fR option. .SH "NOTES" .IX Header "NOTES" As noted, most of the verify options are for testing or debugging purposes. Normally only the \fB\-CApath\fR, \fB\-CAfile\fR and (if the responder is a 'global \&\s-1VA\s0') \fB\-VAfile\fR options need to be used. .PP The \s-1OCSP\s0 server is only useful for test and demonstration purposes: it is not really usable as a full \s-1OCSP\s0 responder. It contains only a very simple \s-1HTTP\s0 request handling and can only handle the \s-1POST\s0 form of \s-1OCSP\s0 queries. It also handles requests serially meaning it cannot respond to new requests until it has processed the current one. The text index file format of revocation is also inefficient for large quantities of revocation data. .PP It is possible to run the \fBocsp\fR application in responder mode via a \s-1CGI\s0 script using the \fBrespin\fR and \fBrespout\fR options. .SH "EXAMPLES" .IX Header "EXAMPLES" Create an \s-1OCSP\s0 request and write it to a file: .PP .Vb 1 \& openssl ocsp \-issuer issuer.pem \-cert c1.pem \-cert c2.pem \-reqout req.der .Ve .PP Send a query to an \s-1OCSP\s0 responder with \s-1URL\s0 http://ocsp.myhost.com/ save the response to a file and print it out in text form .PP .Vb 2 \& openssl ocsp \-issuer issuer.pem \-cert c1.pem \-cert c2.pem \e \& \-url http://ocsp.myhost.com/ \-resp_text \-respout resp.der .Ve .PP Read in an \s-1OCSP\s0 response and print out text form: .PP .Vb 1 \& openssl ocsp \-respin resp.der \-text .Ve .PP \&\s-1OCSP\s0 server on port 8888 using a standard \fBca\fR configuration, and a separate responder certificate. All requests and responses are printed to a file. .PP .Vb 2 \& openssl ocsp \-index demoCA/index.txt \-port 8888 \-rsigner rcert.pem \-CA demoCA/cacert.pem \& \-text \-out log.txt .Ve .PP As above but exit after processing one request: .PP .Vb 2 \& openssl ocsp \-index demoCA/index.txt \-port 8888 \-rsigner rcert.pem \-CA demoCA/cacert.pem \& \-nrequest 1 .Ve .PP Query status information using internally generated request: .PP .Vb 2 \& openssl ocsp \-index demoCA/index.txt \-rsigner rcert.pem \-CA demoCA/cacert.pem \& \-issuer demoCA/cacert.pem \-serial 1 .Ve .PP Query status information using request read from a file, write response to a second file. .PP .Vb 2 \& openssl ocsp \-index demoCA/index.txt \-rsigner rcert.pem \-CA demoCA/cacert.pem \& \-reqin req.der \-respout resp.der .Ve .SH "HISTORY" .IX Header "HISTORY" The \-no_alt_chains options was first added to OpenSSL 1.0.2b. man1/cms.1ssl000064400000072502147210250140006770 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CMS 1" .TH CMS 1 "2017-06-30" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" cms \- CMS utility .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBcms\fR [\fB\-encrypt\fR] [\fB\-decrypt\fR] [\fB\-sign\fR] [\fB\-verify\fR] [\fB\-cmsout\fR] [\fB\-resign\fR] [\fB\-data_create\fR] [\fB\-data_out\fR] [\fB\-digest_create\fR] [\fB\-digest_verify\fR] [\fB\-compress\fR] [\fB\-uncompress\fR] [\fB\-EncryptedData_encrypt\fR] [\fB\-sign_receipt\fR] [\fB\-verify_receipt receipt\fR] [\fB\-in filename\fR] [\fB\-inform SMIME|PEM|DER\fR] [\fB\-rctform SMIME|PEM|DER\fR] [\fB\-out filename\fR] [\fB\-outform SMIME|PEM|DER\fR] [\fB\-stream \-indef \-noindef\fR] [\fB\-noindef\fR] [\fB\-content filename\fR] [\fB\-text\fR] [\fB\-noout\fR] [\fB\-print\fR] [\fB\-CAfile file\fR] [\fB\-CApath dir\fR] [\fB\-trusted_first\fR] [\fB\-no_alt_chains\fR] [\fB\-md digest\fR] [\fB\-[cipher]\fR] [\fB\-nointern\fR] [\fB\-no_signer_cert_verify\fR] [\fB\-nocerts\fR] [\fB\-noattr\fR] [\fB\-nosmimecap\fR] [\fB\-binary\fR] [\fB\-nodetach\fR] [\fB\-certfile file\fR] [\fB\-certsout file\fR] [\fB\-signer file\fR] [\fB\-recip file\fR] [\fB\-keyid\fR] [\fB\-receipt_request_all \-receipt_request_first\fR] [\fB\-receipt_request_from emailaddress\fR] [\fB\-receipt_request_to emailaddress\fR] [\fB\-receipt_request_print\fR] [\fB\-secretkey key\fR] [\fB\-secretkeyid id\fR] [\fB\-econtent_type type\fR] [\fB\-inkey file\fR] [\fB\-keyopt name:parameter\fR] [\fB\-passin arg\fR] [\fB\-rand file(s)\fR] [\fBcert.pem...\fR] [\fB\-to addr\fR] [\fB\-from addr\fR] [\fB\-subject subj\fR] [cert.pem]... .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBcms\fR command handles S/MIME v3.1 mail. It can encrypt, decrypt, sign and verify, compress and uncompress S/MIME messages. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" There are fourteen operation options that set the type of operation to be performed. The meaning of the other options varies according to the operation type. .IP "\fB\-encrypt\fR" 4 .IX Item "-encrypt" encrypt mail for the given recipient certificates. Input file is the message to be encrypted. The output file is the encrypted mail in \s-1MIME\s0 format. The actual \s-1CMS\s0 type is EnvelopedData. .Sp Note that no revocation check is done for the recipient cert, so if that key has been compromised, others may be able to decrypt the text. .IP "\fB\-decrypt\fR" 4 .IX Item "-decrypt" decrypt mail using the supplied certificate and private key. Expects an encrypted mail message in \s-1MIME\s0 format for the input file. The decrypted mail is written to the output file. .IP "\fB\-debug_decrypt\fR" 4 .IX Item "-debug_decrypt" this option sets the \fB\s-1CMS_DEBUG_DECRYPT\s0\fR flag. This option should be used with caution: see the notes section below. .IP "\fB\-sign\fR" 4 .IX Item "-sign" sign mail using the supplied certificate and private key. Input file is the message to be signed. The signed message in \s-1MIME\s0 format is written to the output file. .IP "\fB\-verify\fR" 4 .IX Item "-verify" verify signed mail. Expects a signed mail message on input and outputs the signed data. Both clear text and opaque signing is supported. .IP "\fB\-cmsout\fR" 4 .IX Item "-cmsout" takes an input message and writes out a \s-1PEM\s0 encoded \s-1CMS\s0 structure. .IP "\fB\-resign\fR" 4 .IX Item "-resign" resign a message: take an existing message and one or more new signers. .IP "\fB\-data_create\fR" 4 .IX Item "-data_create" Create a \s-1CMS \s0\fBData\fR type. .IP "\fB\-data_out\fR" 4 .IX Item "-data_out" \&\fBData\fR type and output the content. .IP "\fB\-digest_create\fR" 4 .IX Item "-digest_create" Create a \s-1CMS \s0\fBDigestedData\fR type. .IP "\fB\-digest_verify\fR" 4 .IX Item "-digest_verify" Verify a \s-1CMS \s0\fBDigestedData\fR type and output the content. .IP "\fB\-compress\fR" 4 .IX Item "-compress" Create a \s-1CMS \s0\fBCompressedData\fR type. OpenSSL must be compiled with \fBzlib\fR support for this option to work, otherwise it will output an error. .IP "\fB\-uncompress\fR" 4 .IX Item "-uncompress" Uncompress a \s-1CMS \s0\fBCompressedData\fR type and output the content. OpenSSL must be compiled with \fBzlib\fR support for this option to work, otherwise it will output an error. .IP "\fB\-EncryptedData_encrypt\fR" 4 .IX Item "-EncryptedData_encrypt" Encrypt content using supplied symmetric key and algorithm using a \s-1CMS \&\s0\fBEncrytedData\fR type and output the content. .IP "\fB\-sign_receipt\fR" 4 .IX Item "-sign_receipt" Generate and output a signed receipt for the supplied message. The input message \fBmust\fR contain a signed receipt request. Functionality is otherwise similar to the \fB\-sign\fR operation. .IP "\fB\-verify_receipt receipt\fR" 4 .IX Item "-verify_receipt receipt" Verify a signed receipt in filename \fBreceipt\fR. The input message \fBmust\fR contain the original receipt request. Functionality is otherwise similar to the \fB\-verify\fR operation. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" the input message to be encrypted or signed or the message to be decrypted or verified. .IP "\fB\-inform SMIME|PEM|DER\fR" 4 .IX Item "-inform SMIME|PEM|DER" this specifies the input format for the \s-1CMS\s0 structure. The default is \fB\s-1SMIME\s0\fR which reads an S/MIME format message. \fB\s-1PEM\s0\fR and \fB\s-1DER\s0\fR format change this to expect \s-1PEM\s0 and \s-1DER\s0 format \s-1CMS\s0 structures instead. This currently only affects the input format of the \s-1CMS\s0 structure, if no \s-1CMS\s0 structure is being input (for example with \&\fB\-encrypt\fR or \fB\-sign\fR) this option has no effect. .IP "\fB\-rctform SMIME|PEM|DER\fR" 4 .IX Item "-rctform SMIME|PEM|DER" specify the format for a signed receipt for use with the \fB\-receipt_verify\fR operation. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" the message text that has been decrypted or verified or the output \s-1MIME\s0 format message that has been signed or verified. .IP "\fB\-outform SMIME|PEM|DER\fR" 4 .IX Item "-outform SMIME|PEM|DER" this specifies the output format for the \s-1CMS\s0 structure. The default is \fB\s-1SMIME\s0\fR which writes an S/MIME format message. \fB\s-1PEM\s0\fR and \fB\s-1DER\s0\fR format change this to write \s-1PEM\s0 and \s-1DER\s0 format \s-1CMS\s0 structures instead. This currently only affects the output format of the \s-1CMS\s0 structure, if no \s-1CMS\s0 structure is being output (for example with \&\fB\-verify\fR or \fB\-decrypt\fR) this option has no effect. .IP "\fB\-stream \-indef \-noindef\fR" 4 .IX Item "-stream -indef -noindef" the \fB\-stream\fR and \fB\-indef\fR options are equivalent and enable streaming I/O for encoding operations. This permits single pass processing of data without the need to hold the entire contents in memory, potentially supporting very large files. Streaming is automatically set for S/MIME signing with detached data if the output format is \fB\s-1SMIME\s0\fR it is currently off by default for all other operations. .IP "\fB\-noindef\fR" 4 .IX Item "-noindef" disable streaming I/O where it would produce and indefinite length constructed encoding. This option currently has no effect. In future streaming will be enabled by default on all relevant operations and this option will disable it. .IP "\fB\-content filename\fR" 4 .IX Item "-content filename" This specifies a file containing the detached content, this is only useful with the \fB\-verify\fR command. This is only usable if the \s-1CMS\s0 structure is using the detached signature form where the content is not included. This option will override any content if the input format is S/MIME and it uses the multipart/signed \s-1MIME\s0 content type. .IP "\fB\-text\fR" 4 .IX Item "-text" this option adds plain text (text/plain) \s-1MIME\s0 headers to the supplied message if encrypting or signing. If decrypting or verifying it strips off text headers: if the decrypted or verified message is not of \s-1MIME \s0 type text/plain then an error occurs. .IP "\fB\-noout\fR" 4 .IX Item "-noout" for the \fB\-cmsout\fR operation do not output the parsed \s-1CMS\s0 structure. This is useful when combined with the \fB\-print\fR option or if the syntax of the \s-1CMS\s0 structure is being checked. .IP "\fB\-print\fR" 4 .IX Item "-print" for the \fB\-cmsout\fR operation print out all fields of the \s-1CMS\s0 structure. This is mainly useful for testing purposes. .IP "\fB\-CAfile file\fR" 4 .IX Item "-CAfile file" a file containing trusted \s-1CA\s0 certificates, only used with \fB\-verify\fR. .IP "\fB\-CApath dir\fR" 4 .IX Item "-CApath dir" a directory containing trusted \s-1CA\s0 certificates, only used with \&\fB\-verify\fR. This directory must be a standard certificate directory: that is a hash of each subject name (using \fBx509 \-hash\fR) should be linked to each certificate. .IP "\fB\-trusted_first\fR" 4 .IX Item "-trusted_first" Use certificates in \s-1CA\s0 file or \s-1CA\s0 directory before untrusted certificates from the message when building the trust chain to verify certificates. This is mainly useful in environments with Bridge \s-1CA\s0 or Cross-Certified CAs. .IP "\fB\-md digest\fR" 4 .IX Item "-md digest" digest algorithm to use when signing or resigning. If not present then the default digest algorithm for the signing key will be used (usually \s-1SHA1\s0). .IP "\fB\-[cipher]\fR" 4 .IX Item "-[cipher]" the encryption algorithm to use. For example triple \s-1DES \s0(168 bits) \- \fB\-des3\fR or 256 bit \s-1AES \- \s0\fB\-aes256\fR. Any standard algorithm name (as used by the \&\fIEVP_get_cipherbyname()\fR function) can also be used preceded by a dash, for example \fB\-aes_128_cbc\fR. See \fBenc\fR for a list of ciphers supported by your version of OpenSSL. .Sp If not specified triple \s-1DES\s0 is used. Only used with \fB\-encrypt\fR and \&\fB\-EncryptedData_create\fR commands. .IP "\fB\-nointern\fR" 4 .IX Item "-nointern" when verifying a message normally certificates (if any) included in the message are searched for the signing certificate. With this option only the certificates specified in the \fB\-certfile\fR option are used. The supplied certificates can still be used as untrusted CAs however. .IP "\fB\-no_signer_cert_verify\fR" 4 .IX Item "-no_signer_cert_verify" do not verify the signers certificate of a signed message. .IP "\fB\-nocerts\fR" 4 .IX Item "-nocerts" when signing a message the signer's certificate is normally included with this option it is excluded. This will reduce the size of the signed message but the verifier must have a copy of the signers certificate available locally (passed using the \fB\-certfile\fR option for example). .IP "\fB\-noattr\fR" 4 .IX Item "-noattr" normally when a message is signed a set of attributes are included which include the signing time and supported symmetric algorithms. With this option they are not included. .IP "\fB\-nosmimecap\fR" 4 .IX Item "-nosmimecap" exclude the list of supported algorithms from signed attributes, other options such as signing time and content type are still included. .IP "\fB\-binary\fR" 4 .IX Item "-binary" normally the input message is converted to \*(L"canonical\*(R" format which is effectively using \s-1CR\s0 and \s-1LF\s0 as end of line: as required by the S/MIME specification. When this option is present no translation occurs. This is useful when handling binary data which may not be in \s-1MIME\s0 format. .IP "\fB\-nodetach\fR" 4 .IX Item "-nodetach" when signing a message use opaque signing: this form is more resistant to translation by mail relays but it cannot be read by mail agents that do not support S/MIME. Without this option cleartext signing with the \s-1MIME\s0 type multipart/signed is used. .IP "\fB\-certfile file\fR" 4 .IX Item "-certfile file" allows additional certificates to be specified. When signing these will be included with the message. When verifying these will be searched for the signers certificates. The certificates should be in \s-1PEM\s0 format. .IP "\fB\-certsout file\fR" 4 .IX Item "-certsout file" any certificates contained in the message are written to \fBfile\fR. .IP "\fB\-signer file\fR" 4 .IX Item "-signer file" a signing certificate when signing or resigning a message, this option can be used multiple times if more than one signer is required. If a message is being verified then the signers certificates will be written to this file if the verification was successful. .IP "\fB\-recip file\fR" 4 .IX Item "-recip file" when decrypting a message this specifies the recipients certificate. The certificate must match one of the recipients of the message or an error occurs. .Sp When encrypting a message this option may be used multiple times to specify each recipient. This form \fBmust\fR be used if customised parameters are required (for example to specify RSA-OAEP). .IP "\fB\-keyid\fR" 4 .IX Item "-keyid" use subject key identifier to identify certificates instead of issuer name and serial number. The supplied certificate \fBmust\fR include a subject key identifier extension. Supported by \fB\-sign\fR and \fB\-encrypt\fR options. .IP "\fB\-receipt_request_all \-receipt_request_first\fR" 4 .IX Item "-receipt_request_all -receipt_request_first" for \fB\-sign\fR option include a signed receipt request. Indicate requests should be provided by all receipient or first tier recipients (those mailed directly and not from a mailing list). Ignored it \fB\-receipt_request_from\fR is included. .IP "\fB\-receipt_request_from emailaddress\fR" 4 .IX Item "-receipt_request_from emailaddress" for \fB\-sign\fR option include a signed receipt request. Add an explicit email address where receipts should be supplied. .IP "\fB\-receipt_request_to emailaddress\fR" 4 .IX Item "-receipt_request_to emailaddress" Add an explicit email address where signed receipts should be sent to. This option \fBmust\fR but supplied if a signed receipt it requested. .IP "\fB\-receipt_request_print\fR" 4 .IX Item "-receipt_request_print" For the \fB\-verify\fR operation print out the contents of any signed receipt requests. .IP "\fB\-secretkey key\fR" 4 .IX Item "-secretkey key" specify symmetric key to use. The key must be supplied in hex format and be consistent with the algorithm used. Supported by the \fB\-EncryptedData_encrypt\fR \&\fB\-EncrryptedData_decrypt\fR, \fB\-encrypt\fR and \fB\-decrypt\fR options. When used with \fB\-encrypt\fR or \fB\-decrypt\fR the supplied key is used to wrap or unwrap the content encryption key using an \s-1AES\s0 key in the \fBKEKRecipientInfo\fR type. .IP "\fB\-secretkeyid id\fR" 4 .IX Item "-secretkeyid id" the key identifier for the supplied symmetric key for \fBKEKRecipientInfo\fR type. This option \fBmust\fR be present if the \fB\-secretkey\fR option is used with \&\fB\-encrypt\fR. With \fB\-decrypt\fR operations the \fBid\fR is used to locate the relevant key if it is not supplied then an attempt is used to decrypt any \&\fBKEKRecipientInfo\fR structures. .IP "\fB\-econtent_type type\fR" 4 .IX Item "-econtent_type type" set the encapsulated content type to \fBtype\fR if not supplied the \fBData\fR type is used. The \fBtype\fR argument can be any valid \s-1OID\s0 name in either text or numerical format. .IP "\fB\-inkey file\fR" 4 .IX Item "-inkey file" the private key to use when signing or decrypting. This must match the corresponding certificate. If this option is not specified then the private key must be included in the certificate file specified with the \fB\-recip\fR or \fB\-signer\fR file. When signing this option can be used multiple times to specify successive keys. .IP "\fB\-keyopt name:opt\fR" 4 .IX Item "-keyopt name:opt" for signing and encryption this option can be used multiple times to set customised parameters for the preceding key or certificate. It can currently be used to set RSA-PSS for signing, RSA-OAEP for encryption or to modify default parameters for \s-1ECDH.\s0 .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the private key password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-rand file(s)\fR" 4 .IX Item "-rand file(s)" a file or files containing random data used to seed the random number generator, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). Multiple files can be specified separated by a OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fBcert.pem...\fR" 4 .IX Item "cert.pem..." one or more certificates of message recipients: used when encrypting a message. .IP "\fB\-to, \-from, \-subject\fR" 4 .IX Item "-to, -from, -subject" the relevant mail headers. These are included outside the signed portion of a message so they may be included manually. If signing then many S/MIME mail clients check the signers certificate's email address matches that specified in the From: address. .IP "\fB\-purpose, \-ignore_critical, \-issuer_checks, \-crl_check, \-crl_check_all, \-policy_check, \-extended_crl, \-x509_strict, \-policy \-check_ss_sig \-no_alt_chains\fR" 4 .IX Item "-purpose, -ignore_critical, -issuer_checks, -crl_check, -crl_check_all, -policy_check, -extended_crl, -x509_strict, -policy -check_ss_sig -no_alt_chains" Set various certificate chain valiadition option. See the \&\fBverify\fR manual page for details. .SH "NOTES" .IX Header "NOTES" The \s-1MIME\s0 message must be sent without any blank lines between the headers and the output. Some mail programs will automatically add a blank line. Piping the mail directly to sendmail is one way to achieve the correct format. .PP The supplied message to be signed or encrypted must include the necessary \s-1MIME\s0 headers or many S/MIME clients wont display it properly (if at all). You can use the \fB\-text\fR option to automatically add plain text headers. .PP A \*(L"signed and encrypted\*(R" message is one where a signed message is then encrypted. This can be produced by encrypting an already signed message: see the examples section. .PP This version of the program only allows one signer per message but it will verify multiple signers on received messages. Some S/MIME clients choke if a message contains multiple signers. It is possible to sign messages \*(L"in parallel\*(R" by signing an already signed message. .PP The options \fB\-encrypt\fR and \fB\-decrypt\fR reflect common usage in S/MIME clients. Strictly speaking these process \s-1CMS\s0 enveloped data: \s-1CMS\s0 encrypted data is used for other purposes. .PP The \fB\-resign\fR option uses an existing message digest when adding a new signer. This means that attributes must be present in at least one existing signer using the same message digest or this operation will fail. .PP The \fB\-stream\fR and \fB\-indef\fR options enable experimental streaming I/O support. As a result the encoding is \s-1BER\s0 using indefinite length constructed encoding and no longer \s-1DER.\s0 Streaming is supported for the \fB\-encrypt\fR operation and the \&\fB\-sign\fR operation if the content is not detached. .PP Streaming is always used for the \fB\-sign\fR operation with detached data but since the content is no longer part of the \s-1CMS\s0 structure the encoding remains \s-1DER.\s0 .PP If the \fB\-decrypt\fR option is used without a recipient certificate then an attempt is made to locate the recipient by trying each potential recipient in turn using the supplied private key. To thwart the \s-1MMA\s0 attack (Bleichenbacher's attack on \s-1PKCS\s0 #1 v1.5 \s-1RSA\s0 padding) all recipients are tried whether they succeed or not and if no recipients match the message is \*(L"decrypted\*(R" using a random key which will typically output garbage. The \fB\-debug_decrypt\fR option can be used to disable the \s-1MMA\s0 attack protection and return an error if no recipient can be found: this option should be used with caution. For a fuller description see \fICMS_decrypt\fR\|(3)). .SH "EXIT CODES" .IX Header "EXIT CODES" .IP "0" 4 the operation was completely successfully. .IP "1" 4 .IX Item "1" an error occurred parsing the command options. .IP "2" 4 .IX Item "2" one of the input files could not be read. .IP "3" 4 .IX Item "3" an error occurred creating the \s-1CMS\s0 file or when reading the \s-1MIME\s0 message. .IP "4" 4 .IX Item "4" an error occurred decrypting or verifying the message. .IP "5" 4 .IX Item "5" the message was verified correctly but an error occurred writing out the signers certificates. .SH "COMPATIBILITY WITH PKCS#7 format." .IX Header "COMPATIBILITY WITH PKCS#7 format." The \fBsmime\fR utility can only process the older \fBPKCS#7\fR format. The \fBcms\fR utility supports Cryptographic Message Syntax format. Use of some features will result in messages which cannot be processed by applications which only support the older format. These are detailed below. .PP The use of the \fB\-keyid\fR option with \fB\-sign\fR or \fB\-encrypt\fR. .PP The \fB\-outform \s-1PEM\s0\fR option uses different headers. .PP The \fB\-compress\fR option. .PP The \fB\-secretkey\fR option when used with \fB\-encrypt\fR. .PP The use of \s-1PSS\s0 with \fB\-sign\fR. .PP The use of \s-1OAEP\s0 or non-RSA keys with \fB\-encrypt\fR. .PP Additionally the \fB\-EncryptedData_create\fR and \fB\-data_create\fR type cannot be processed by the older \fBsmime\fR command. .SH "EXAMPLES" .IX Header "EXAMPLES" Create a cleartext signed message: .PP .Vb 2 \& openssl cms \-sign \-in message.txt \-text \-out mail.msg \e \& \-signer mycert.pem .Ve .PP Create an opaque signed message .PP .Vb 2 \& openssl cms \-sign \-in message.txt \-text \-out mail.msg \-nodetach \e \& \-signer mycert.pem .Ve .PP Create a signed message, include some additional certificates and read the private key from another file: .PP .Vb 2 \& openssl cms \-sign \-in in.txt \-text \-out mail.msg \e \& \-signer mycert.pem \-inkey mykey.pem \-certfile mycerts.pem .Ve .PP Create a signed message with two signers, use key identifier: .PP .Vb 2 \& openssl cms \-sign \-in message.txt \-text \-out mail.msg \e \& \-signer mycert.pem \-signer othercert.pem \-keyid .Ve .PP Send a signed message under Unix directly to sendmail, including headers: .PP .Vb 3 \& openssl cms \-sign \-in in.txt \-text \-signer mycert.pem \e \& \-from steve@openssl.org \-to someone@somewhere \e \& \-subject "Signed message" | sendmail someone@somewhere .Ve .PP Verify a message and extract the signer's certificate if successful: .PP .Vb 1 \& openssl cms \-verify \-in mail.msg \-signer user.pem \-out signedtext.txt .Ve .PP Send encrypted mail using triple \s-1DES:\s0 .PP .Vb 3 \& openssl cms \-encrypt \-in in.txt \-from steve@openssl.org \e \& \-to someone@somewhere \-subject "Encrypted message" \e \& \-des3 user.pem \-out mail.msg .Ve .PP Sign and encrypt mail: .PP .Vb 4 \& openssl cms \-sign \-in ml.txt \-signer my.pem \-text \e \& | openssl cms \-encrypt \-out mail.msg \e \& \-from steve@openssl.org \-to someone@somewhere \e \& \-subject "Signed and Encrypted message" \-des3 user.pem .Ve .PP Note: the encryption command does not include the \fB\-text\fR option because the message being encrypted already has \s-1MIME\s0 headers. .PP Decrypt mail: .PP .Vb 1 \& openssl cms \-decrypt \-in mail.msg \-recip mycert.pem \-inkey key.pem .Ve .PP The output from Netscape form signing is a PKCS#7 structure with the detached signature format. You can use this program to verify the signature by line wrapping the base64 encoded structure and surrounding it with: .PP .Vb 2 \& \-\-\-\-\-BEGIN PKCS7\-\-\-\-\- \& \-\-\-\-\-END PKCS7\-\-\-\-\- .Ve .PP and using the command, .PP .Vb 1 \& openssl cms \-verify \-inform PEM \-in signature.pem \-content content.txt .Ve .PP alternatively you can base64 decode the signature and use .PP .Vb 1 \& openssl cms \-verify \-inform DER \-in signature.der \-content content.txt .Ve .PP Create an encrypted message using 128 bit Camellia: .PP .Vb 1 \& openssl cms \-encrypt \-in plain.txt \-camellia128 \-out mail.msg cert.pem .Ve .PP Add a signer to an existing message: .PP .Vb 1 \& openssl cms \-resign \-in mail.msg \-signer newsign.pem \-out mail2.msg .Ve .PP Sign mail using RSA-PSS: .PP .Vb 2 \& openssl cms \-sign \-in message.txt \-text \-out mail.msg \e \& \-signer mycert.pem \-keyopt rsa_padding_mode:pss .Ve .PP Create encrypted mail using RSA-OAEP: .PP .Vb 2 \& openssl cms \-encrypt \-in plain.txt \-out mail.msg \e \& \-recip cert.pem \-keyopt rsa_padding_mode:oaep .Ve .PP Use \s-1SHA256 KDF\s0 with an \s-1ECDH\s0 certificate: .PP .Vb 2 \& openssl cms \-encrypt \-in plain.txt \-out mail.msg \e \& \-recip ecdhcert.pem \-keyopt ecdh_kdf_md:sha256 .Ve .SH "BUGS" .IX Header "BUGS" The \s-1MIME\s0 parser isn't very clever: it seems to handle most messages that I've thrown at it but it may choke on others. .PP The code currently will only write out the signer's certificate to a file: if the signer has a separate encryption certificate this must be manually extracted. There should be some heuristic that determines the correct encryption certificate. .PP Ideally a database should be maintained of a certificates for each email address. .PP The code doesn't currently take note of the permitted symmetric encryption algorithms as supplied in the SMIMECapabilities signed attribute. this means the user has to manually include the correct encryption algorithm. It should store the list of permitted ciphers in a database and only use those. .PP No revocation checking is done on the signer's certificate. .SH "HISTORY" .IX Header "HISTORY" The use of multiple \fB\-signer\fR options and the \fB\-resign\fR command were first added in OpenSSL 1.0.0 .PP The \fBkeyopt\fR option was first added in OpenSSL 1.1.0 .PP The use of \fB\-recip\fR to specify the recipient when encrypting mail was first added to OpenSSL 1.1.0 .PP Support for RSA-OAEP and RSA-PSS was first added to OpenSSL 1.1.0. .PP The use of non-RSA keys with \fB\-encrypt\fR and \fB\-decrypt\fR was first added to OpenSSL 1.1.0. .PP The \-no_alt_chains options was first added to OpenSSL 1.0.2b. man1/c_rehash.1ssl000064400000017130147210250140007756 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "C_REHASH 1" .TH C_REHASH 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" c_rehash \- Create symbolic links to files named by the hash values .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBc_rehash\fR \&\fB[\-old]\fR \&\fB[\-h]\fR \&\fB[\-n]\fR \&\fB[\-v]\fR [ \fIdirectory\fR...] .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBc_rehash\fR scans directories and calculates a hash value of each \&\f(CW\*(C`.pem\*(C'\fR, \f(CW\*(C`.crt\*(C'\fR, \f(CW\*(C`.cer\*(C'\fR, or \f(CW\*(C`.crl\*(C'\fR file in the specified directory list and creates symbolic links for each file, where the name of the link is the hash value. (If the platform does not support symbolic links, a copy is made.) This utility is useful as many programs that use OpenSSL require directories to be set up like this in order to find certificates. .PP If any directories are named on the command line, then those are processed in turn. If not, then the \fB\s-1SSL_CERT_DIR\s0\fR environment variable is consulted; this shold be a colon-separated list of directories, like the Unix \fB\s-1PATH\s0\fR variable. If that is not set then the default directory (installation-specific but often \fB/usr/local/ssl/certs\fR) is processed. .PP In order for a directory to be processed, the user must have write permissions on that directory, otherwise it will be skipped. The links created are of the form \f(CW\*(C`HHHHHHHH.D\*(C'\fR, where each \fBH\fR is a hexadecimal character and \fBD\fR is a single decimal digit. When processing a directory, \fBc_rehash\fR will first remove all links that have a name in that syntax. If you have links in that format used for other purposes, they will be removed. To skip the removal step, use the \fB\-n\fR flag. Hashes for \s-1CRL\s0's look similar except the letter \fBr\fR appears after the period, like this: \f(CW\*(C`HHHHHHHH.rD\*(C'\fR. .PP Multiple objects may have the same hash; they will be indicated by incrementing the \fBD\fR value. Duplicates are found by comparing the full \s-1SHA\-1\s0 fingerprint. A warning will be displayed if a duplicate is found. .PP A warning will also be displayed if there are files that cannot be parsed as either a certificate or a \s-1CRL.\s0 .PP The program uses the \fBopenssl\fR program to compute the hashes and fingerprints. If not found in the user's \fB\s-1PATH\s0\fR, then set the \&\fB\s-1OPENSSL\s0\fR environment variable to the full pathname. Any program can be used, it will be invoked as follows for either a certificate or \s-1CRL:\s0 .PP .Vb 2 \& $OPENSSL x509 \-hash \-fingerprint \-noout \-in FILENAME \& $OPENSSL crl \-hash \-fingerprint \-noout \-in FILENAME .Ve .PP where \fB\s-1FILENAME\s0\fR is the filename. It must output the hash of the file on the first line, and the fingerprint on the second, optionally prefixed with some text and an equals sign. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-old\fR" 4 .IX Item "-old" Use old-style hashing (\s-1MD5,\s0 as opposed to \s-1SHA\-1\s0) for generating links for releases before 1.0.0. Note that current versions will not use the old style. .IP "\fB\-h\fR" 4 .IX Item "-h" Display a brief usage message. .IP "\fB\-n\fR" 4 .IX Item "-n" Do not remove existing links. This is needed when keeping new and old-style links in the same directory. .IP "\fB\-v\fR" 4 .IX Item "-v" Print messages about old links removed and new links created. By default, \fBc_rehash\fR only lists each directory as it is processed. .SH "ENVIRONMENT" .IX Header "ENVIRONMENT" .IP "\fB\s-1OPENSSL\s0\fR" 4 .IX Item "OPENSSL" The path to an executable to use to generate hashes and fingerprints (see above). .IP "\fB\s-1SSL_CERT_DIR\s0\fR" 4 .IX Item "SSL_CERT_DIR" Colon separated list of directories to operate on. Ignored if directories are listed on the command line. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIopenssl\fR\|(1), \&\fIcrl\fR\|(1). \&\fIx509\fR\|(1). man1/pkeyutl.1ssl000064400000026770147210250140007711 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PKEYUTL 1" .TH PKEYUTL 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" pkeyutl \- public key algorithm utility .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBpkeyutl\fR [\fB\-in file\fR] [\fB\-out file\fR] [\fB\-sigfile file\fR] [\fB\-inkey file\fR] [\fB\-keyform PEM|DER\fR] [\fB\-passin arg\fR] [\fB\-peerkey file\fR] [\fB\-peerform PEM|DER\fR] [\fB\-pubin\fR] [\fB\-certin\fR] [\fB\-rev\fR] [\fB\-sign\fR] [\fB\-verify\fR] [\fB\-verifyrecover\fR] [\fB\-encrypt\fR] [\fB\-decrypt\fR] [\fB\-derive\fR] [\fB\-pkeyopt opt:value\fR] [\fB\-hexdump\fR] [\fB\-asn1parse\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBpkeyutl\fR command can be used to perform public key operations using any supported algorithm. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read data from or standard input if this option is not specified. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" specifies the output filename to write to or standard output by default. .IP "\fB\-inkey file\fR" 4 .IX Item "-inkey file" the input key file, by default it should be a private key. .IP "\fB\-keyform PEM|DER\fR" 4 .IX Item "-keyform PEM|DER" the key format \s-1PEM, DER\s0 or \s-1ENGINE.\s0 .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the input key password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-peerkey file\fR" 4 .IX Item "-peerkey file" the peer key file, used by key derivation (agreement) operations. .IP "\fB\-peerform PEM|DER\fR" 4 .IX Item "-peerform PEM|DER" the peer key format \s-1PEM, DER\s0 or \s-1ENGINE.\s0 .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBpkeyutl\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .IP "\fB\-pubin\fR" 4 .IX Item "-pubin" the input file is a public key. .IP "\fB\-certin\fR" 4 .IX Item "-certin" the input is a certificate containing a public key. .IP "\fB\-rev\fR" 4 .IX Item "-rev" reverse the order of the input buffer. This is useful for some libraries (such as CryptoAPI) which represent the buffer in little endian format. .IP "\fB\-sign\fR" 4 .IX Item "-sign" sign the input data and output the signed result. This requires a private key. .IP "\fB\-verify\fR" 4 .IX Item "-verify" verify the input data against the signature file and indicate if the verification succeeded or failed. .IP "\fB\-verifyrecover\fR" 4 .IX Item "-verifyrecover" verify the input data and output the recovered data. .IP "\fB\-encrypt\fR" 4 .IX Item "-encrypt" encrypt the input data using a public key. .IP "\fB\-decrypt\fR" 4 .IX Item "-decrypt" decrypt the input data using a private key. .IP "\fB\-derive\fR" 4 .IX Item "-derive" derive a shared secret using the peer key. .IP "\fB\-hexdump\fR" 4 .IX Item "-hexdump" hex dump the output data. .IP "\fB\-asn1parse\fR" 4 .IX Item "-asn1parse" asn1parse the output data, this is useful when combined with the \&\fB\-verifyrecover\fR option when an \s-1ASN1\s0 structure is signed. .SH "NOTES" .IX Header "NOTES" The operations and options supported vary according to the key algorithm and its implementation. The OpenSSL operations and options are indicated below. .PP Unless otherwise mentioned all algorithms support the \fBdigest:alg\fR option which specifies the digest in use for sign, verify and verifyrecover operations. The value \fBalg\fR should represent a digest name as used in the \&\fIEVP_get_digestbyname()\fR function for example \fBsha1\fR. This value is used only for sanity-checking the lengths of data passed in to the \fBpkeyutl\fR and for creating the structures that make up the signature (e.g. \fBDigestInfo\fR in \s-1RSASSA\s0 PKCS#1 v1.5 signatures). In case of \s-1RSA, ECDSA\s0 and \s-1DSA\s0 signatures, this utility will not perform hashing on input data but rather use the data directly as input of signature algorithm. Depending on key type, signature type and mode of padding, the maximum acceptable lengths of input data differ. In general, with \s-1RSA\s0 the signed data can't be longer than the key modulus, in case of \s-1ECDSA\s0 and \s-1DSA\s0 the data shouldn't be longer than field size, otherwise it will be silently truncated to field size. .PP In other words, if the value of digest is \fBsha1\fR the input should be 20 bytes long binary encoding of \s-1SHA\-1\s0 hash function output. .SH "RSA ALGORITHM" .IX Header "RSA ALGORITHM" The \s-1RSA\s0 algorithm supports encrypt, decrypt, sign, verify and verifyrecover operations in general. Some padding modes only support some of these operations however. .IP "\-\fBrsa_padding_mode:mode\fR" 4 .IX Item "-rsa_padding_mode:mode" This sets the \s-1RSA\s0 padding mode. Acceptable values for \fBmode\fR are \fBpkcs1\fR for PKCS#1 padding, \fBsslv23\fR for SSLv23 padding, \fBnone\fR for no padding, \fBoaep\fR for \fB\s-1OAEP\s0\fR mode, \fBx931\fR for X9.31 mode and \fBpss\fR for \s-1PSS.\s0 .Sp In PKCS#1 padding if the message digest is not set then the supplied data is signed or verified directly instead of using a \fBDigestInfo\fR structure. If a digest is set then the a \fBDigestInfo\fR structure is used and its the length must correspond to the digest type. .Sp For \fBoeap\fR mode only encryption and decryption is supported. .Sp For \fBx931\fR if the digest type is set it is used to format the block data otherwise the first byte is used to specify the X9.31 digest \s-1ID.\s0 Sign, verify and verifyrecover are can be performed in this mode. .Sp For \fBpss\fR mode only sign and verify are supported and the digest type must be specified. .IP "\fBrsa_pss_saltlen:len\fR" 4 .IX Item "rsa_pss_saltlen:len" For \fBpss\fR mode only this option specifies the salt length. Two special values are supported: \-1 sets the salt length to the digest length. When signing \-2 sets the salt length to the maximum permissible value. When verifying \-2 causes the salt length to be automatically determined based on the \fB\s-1PSS\s0\fR block structure. .SH "DSA ALGORITHM" .IX Header "DSA ALGORITHM" The \s-1DSA\s0 algorithm supports signing and verification operations only. Currently there are no additional options other than \fBdigest\fR. Only the \s-1SHA1\s0 digest can be used and this digest is assumed by default. .SH "DH ALGORITHM" .IX Header "DH ALGORITHM" The \s-1DH\s0 algorithm only supports the derivation operation and no additional options. .SH "EC ALGORITHM" .IX Header "EC ALGORITHM" The \s-1EC\s0 algorithm supports sign, verify and derive operations. The sign and verify operations use \s-1ECDSA\s0 and derive uses \s-1ECDH.\s0 Currently there are no additional options other than \fBdigest\fR. Only the \s-1SHA1\s0 digest can be used and this digest is assumed by default. .SH "EXAMPLES" .IX Header "EXAMPLES" Sign some data using a private key: .PP .Vb 1 \& openssl pkeyutl \-sign \-in file \-inkey key.pem \-out sig .Ve .PP Recover the signed data (e.g. if an \s-1RSA\s0 key is used): .PP .Vb 1 \& openssl pkeyutl \-verifyrecover \-in sig \-inkey key.pem .Ve .PP Verify the signature (e.g. a \s-1DSA\s0 key): .PP .Vb 1 \& openssl pkeyutl \-verify \-in file \-sigfile sig \-inkey key.pem .Ve .PP Sign data using a message digest value (this is currently only valid for \s-1RSA\s0): .PP .Vb 1 \& openssl pkeyutl \-sign \-in file \-inkey key.pem \-out sig \-pkeyopt digest:sha256 .Ve .PP Derive a shared secret value: .PP .Vb 1 \& openssl pkeyutl \-derive \-inkey key.pem \-peerkey pubkey.pem \-out secret .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIgenpkey\fR\|(1), \fIpkey\fR\|(1), \fIrsautl\fR\|(1) \&\fIdgst\fR\|(1), \fIrsa\fR\|(1), \fIgenrsa\fR\|(1) man1/verify.1ssl000064400000057730147210250140007520 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "VERIFY 1" .TH VERIFY 1 "2017-06-30" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" verify \- Utility to verify certificates. .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBverify\fR [\fB\-CApath directory\fR] [\fB\-CAfile file\fR] [\fB\-trusted_first\fR] [\fB\-purpose purpose\fR] [\fB\-policy arg\fR] [\fB\-ignore_critical\fR] [\fB\-attime timestamp\fR] [\fB\-check_ss_sig\fR] [\fB\-crlfile file\fR] [\fB\-crl_download\fR] [\fB\-crl_check\fR] [\fB\-crl_check_all\fR] [\fB\-policy_check\fR] [\fB\-explicit_policy\fR] [\fB\-inhibit_any\fR] [\fB\-inhibit_map\fR] [\fB\-x509_strict\fR] [\fB\-extended_crl\fR] [\fB\-use_deltas\fR] [\fB\-policy_print\fR] [\fB\-no_alt_chains\fR] [\fB\-allow_proxy_certs\fR] [\fB\-untrusted file\fR] [\fB\-help\fR] [\fB\-issuer_checks\fR] [\fB\-trusted file\fR] [\fB\-verbose\fR] [\fB\-\fR] [certificates] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBverify\fR command verifies certificate chains. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-CApath directory\fR" 4 .IX Item "-CApath directory" A directory of trusted certificates. The certificates should have names of the form: hash.0 or have symbolic links to them of this form (\*(L"hash\*(R" is the hashed certificate subject name: see the \fB\-hash\fR option of the \fBx509\fR utility). Under Unix the \fBc_rehash\fR script will automatically create symbolic links to a directory of certificates. .IP "\fB\-CAfile file\fR A file of trusted certificates. The file should contain multiple certificates in \s-1PEM\s0 format concatenated together." 4 .IX Item "-CAfile file A file of trusted certificates. The file should contain multiple certificates in PEM format concatenated together." .PD 0 .IP "\fB\-attime timestamp\fR" 4 .IX Item "-attime timestamp" .PD Perform validation checks using time specified by \fBtimestamp\fR and not current system time. \fBtimestamp\fR is the number of seconds since 01.01.1970 (\s-1UNIX\s0 time). .IP "\fB\-check_ss_sig\fR" 4 .IX Item "-check_ss_sig" Verify the signature on the self-signed root \s-1CA.\s0 This is disabled by default because it doesn't add any security. .IP "\fB\-crlfile file\fR" 4 .IX Item "-crlfile file" File containing one or more \s-1CRL\s0's (in \s-1PEM\s0 format) to load. .IP "\fB\-crl_download\fR" 4 .IX Item "-crl_download" Attempt to download \s-1CRL\s0 information for this certificate. .IP "\fB\-crl_check\fR" 4 .IX Item "-crl_check" Checks end entity certificate validity by attempting to look up a valid \s-1CRL.\s0 If a valid \s-1CRL\s0 cannot be found an error occurs. .IP "\fB\-untrusted file\fR" 4 .IX Item "-untrusted file" A file of untrusted certificates. The file should contain multiple certificates in \s-1PEM\s0 format concatenated together. .IP "\fB\-trusted_first\fR" 4 .IX Item "-trusted_first" Use certificates in \s-1CA\s0 file or \s-1CA\s0 directory before the certificates in the untrusted file when building the trust chain to verify certificates. This is mainly useful in environments with Bridge \s-1CA\s0 or Cross-Certified CAs. .IP "\fB\-purpose purpose\fR" 4 .IX Item "-purpose purpose" The intended use for the certificate. If this option is not specified, \&\fBverify\fR will not consider certificate purpose during chain verification. Currently accepted uses are \fBsslclient\fR, \fBsslserver\fR, \fBnssslserver\fR, \&\fBsmimesign\fR, \fBsmimeencrypt\fR. See the \fB\s-1VERIFY OPERATION\s0\fR section for more information. .IP "\fB\-help\fR" 4 .IX Item "-help" Print out a usage message. .IP "\fB\-verbose\fR" 4 .IX Item "-verbose" Print extra information about the operations being performed. .IP "\fB\-issuer_checks\fR" 4 .IX Item "-issuer_checks" Print out diagnostics relating to searches for the issuer certificate of the current certificate. This shows why each candidate issuer certificate was rejected. The presence of rejection messages does not itself imply that anything is wrong; during the normal verification process, several rejections may take place. .IP "\fB\-policy arg\fR" 4 .IX Item "-policy arg" Enable policy processing and add \fBarg\fR to the user-initial-policy-set (see \&\s-1RFC5280\s0). The policy \fBarg\fR can be an object name an \s-1OID\s0 in numeric form. This argument can appear more than once. .IP "\fB\-policy_check\fR" 4 .IX Item "-policy_check" Enables certificate policy processing. .IP "\fB\-explicit_policy\fR" 4 .IX Item "-explicit_policy" Set policy variable require-explicit-policy (see \s-1RFC5280\s0). .IP "\fB\-inhibit_any\fR" 4 .IX Item "-inhibit_any" Set policy variable inhibit-any-policy (see \s-1RFC5280\s0). .IP "\fB\-inhibit_map\fR" 4 .IX Item "-inhibit_map" Set policy variable inhibit-policy-mapping (see \s-1RFC5280\s0). .IP "\fB\-no_alt_chains\fR" 4 .IX Item "-no_alt_chains" When building a certificate chain, if the first certificate chain found is not trusted, then OpenSSL will continue to check to see if an alternative chain can be found that is trusted. With this option that behaviour is suppressed so that only the first chain found is ever used. Using this option will force the behaviour to match that of previous OpenSSL versions. .IP "\fB\-allow_proxy_certs\fR" 4 .IX Item "-allow_proxy_certs" Allow the verification of proxy certificates. .IP "\fB\-trusted file\fR" 4 .IX Item "-trusted file" A file of additional trusted certificates. The file should contain multiple certificates in \s-1PEM\s0 format concatenated together. .IP "\fB\-policy_print\fR" 4 .IX Item "-policy_print" Print out diagnostics related to policy processing. .IP "\fB\-crl_check\fR" 4 .IX Item "-crl_check" Checks end entity certificate validity by attempting to look up a valid \s-1CRL.\s0 If a valid \s-1CRL\s0 cannot be found an error occurs. .IP "\fB\-crl_check_all\fR" 4 .IX Item "-crl_check_all" Checks the validity of \fBall\fR certificates in the chain by attempting to look up valid CRLs. .IP "\fB\-ignore_critical\fR" 4 .IX Item "-ignore_critical" Normally if an unhandled critical extension is present which is not supported by OpenSSL the certificate is rejected (as required by \s-1RFC5280\s0). If this option is set critical extensions are ignored. .IP "\fB\-x509_strict\fR" 4 .IX Item "-x509_strict" For strict X.509 compliance, disable non-compliant workarounds for broken certificates. .IP "\fB\-extended_crl\fR" 4 .IX Item "-extended_crl" Enable extended \s-1CRL\s0 features such as indirect CRLs and alternate \s-1CRL\s0 signing keys. .IP "\fB\-use_deltas\fR" 4 .IX Item "-use_deltas" Enable support for delta CRLs. .IP "\fB\-check_ss_sig\fR" 4 .IX Item "-check_ss_sig" Verify the signature on the self-signed root \s-1CA.\s0 This is disabled by default because it doesn't add any security. .IP "\fB\-\fR" 4 .IX Item "-" Indicates the last option. All arguments following this are assumed to be certificate files. This is useful if the first certificate filename begins with a \fB\-\fR. .IP "\fBcertificates\fR" 4 .IX Item "certificates" One or more certificates to verify. If no certificates are given, \fBverify\fR will attempt to read a certificate from standard input. Certificates must be in \s-1PEM\s0 format. .SH "VERIFY OPERATION" .IX Header "VERIFY OPERATION" The \fBverify\fR program uses the same functions as the internal \s-1SSL\s0 and S/MIME verification, therefore this description applies to these verify operations too. .PP There is one crucial difference between the verify operations performed by the \fBverify\fR program: wherever possible an attempt is made to continue after an error whereas normally the verify operation would halt on the first error. This allows all the problems with a certificate chain to be determined. .PP The verify operation consists of a number of separate steps. .PP Firstly a certificate chain is built up starting from the supplied certificate and ending in the root \s-1CA.\s0 It is an error if the whole chain cannot be built up. The chain is built up by looking up the issuers certificate of the current certificate. If a certificate is found which is its own issuer it is assumed to be the root \s-1CA.\s0 .PP The process of 'looking up the issuers certificate' itself involves a number of steps. In versions of OpenSSL before 0.9.5a the first certificate whose subject name matched the issuer of the current certificate was assumed to be the issuers certificate. In OpenSSL 0.9.6 and later all certificates whose subject name matches the issuer name of the current certificate are subject to further tests. The relevant authority key identifier components of the current certificate (if present) must match the subject key identifier (if present) and issuer and serial number of the candidate issuer, in addition the keyUsage extension of the candidate issuer (if present) must permit certificate signing. .PP The lookup first looks in the list of untrusted certificates and if no match is found the remaining lookups are from the trusted certificates. The root \s-1CA\s0 is always looked up in the trusted certificate list: if the certificate to verify is a root certificate then an exact match must be found in the trusted list. .PP The second operation is to check every untrusted certificate's extensions for consistency with the supplied purpose. If the \fB\-purpose\fR option is not included then no checks are done. The supplied or \*(L"leaf\*(R" certificate must have extensions compatible with the supplied purpose and all other certificates must also be valid \&\s-1CA\s0 certificates. The precise extensions required are described in more detail in the \fB\s-1CERTIFICATE EXTENSIONS\s0\fR section of the \fBx509\fR utility. .PP The third operation is to check the trust settings on the root \s-1CA.\s0 The root \&\s-1CA\s0 should be trusted for the supplied purpose. For compatibility with previous versions of SSLeay and OpenSSL a certificate with no trust settings is considered to be valid for all purposes. .PP The final operation is to check the validity of the certificate chain. The validity period is checked against the current system time and the notBefore and notAfter dates in the certificate. The certificate signatures are also checked at this point. .PP If all operations complete successfully then certificate is considered valid. If any operation fails then the certificate is not valid. .SH "DIAGNOSTICS" .IX Header "DIAGNOSTICS" When a verify operation fails the output messages can be somewhat cryptic. The general form of the error message is: .PP .Vb 2 \& server.pem: /C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test CA (1024 bit) \& error 24 at 1 depth lookup:invalid CA certificate .Ve .PP The first line contains the name of the certificate being verified followed by the subject name of the certificate. The second line contains the error number and the depth. The depth is number of the certificate being verified when a problem was detected starting with zero for the certificate being verified itself then 1 for the \s-1CA\s0 that signed the certificate and so on. Finally a text version of the error number is presented. .PP An exhaustive list of the error codes and messages is shown below, this also includes the name of the error code as defined in the header file x509_vfy.h Some of the error codes are defined but never returned: these are described as \*(L"unused\*(R". .IP "\fB0 X509_V_OK: ok\fR" 4 .IX Item "0 X509_V_OK: ok" the operation was successful. .IP "\fB2 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: unable to get issuer certificate\fR" 4 .IX Item "2 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: unable to get issuer certificate" the issuer certificate of a looked up certificate could not be found. This normally means the list of trusted certificates is not complete. .IP "\fB3 X509_V_ERR_UNABLE_TO_GET_CRL: unable to get certificate \s-1CRL\s0\fR" 4 .IX Item "3 X509_V_ERR_UNABLE_TO_GET_CRL: unable to get certificate CRL" the \s-1CRL\s0 of a certificate could not be found. .IP "\fB4 X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE: unable to decrypt certificate's signature\fR" 4 .IX Item "4 X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE: unable to decrypt certificate's signature" the certificate signature could not be decrypted. This means that the actual signature value could not be determined rather than it not matching the expected value, this is only meaningful for \s-1RSA\s0 keys. .IP "\fB5 X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE: unable to decrypt \s-1CRL\s0's signature\fR" 4 .IX Item "5 X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE: unable to decrypt CRL's signature" the \s-1CRL\s0 signature could not be decrypted: this means that the actual signature value could not be determined rather than it not matching the expected value. Unused. .IP "\fB6 X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY: unable to decode issuer public key\fR" 4 .IX Item "6 X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY: unable to decode issuer public key" the public key in the certificate SubjectPublicKeyInfo could not be read. .IP "\fB7 X509_V_ERR_CERT_SIGNATURE_FAILURE: certificate signature failure\fR" 4 .IX Item "7 X509_V_ERR_CERT_SIGNATURE_FAILURE: certificate signature failure" the signature of the certificate is invalid. .IP "\fB8 X509_V_ERR_CRL_SIGNATURE_FAILURE: \s-1CRL\s0 signature failure\fR" 4 .IX Item "8 X509_V_ERR_CRL_SIGNATURE_FAILURE: CRL signature failure" the signature of the certificate is invalid. .IP "\fB9 X509_V_ERR_CERT_NOT_YET_VALID: certificate is not yet valid\fR" 4 .IX Item "9 X509_V_ERR_CERT_NOT_YET_VALID: certificate is not yet valid" the certificate is not yet valid: the notBefore date is after the current time. .IP "\fB10 X509_V_ERR_CERT_HAS_EXPIRED: certificate has expired\fR" 4 .IX Item "10 X509_V_ERR_CERT_HAS_EXPIRED: certificate has expired" the certificate has expired: that is the notAfter date is before the current time. .IP "\fB11 X509_V_ERR_CRL_NOT_YET_VALID: \s-1CRL\s0 is not yet valid\fR" 4 .IX Item "11 X509_V_ERR_CRL_NOT_YET_VALID: CRL is not yet valid" the \s-1CRL\s0 is not yet valid. .IP "\fB12 X509_V_ERR_CRL_HAS_EXPIRED: \s-1CRL\s0 has expired\fR" 4 .IX Item "12 X509_V_ERR_CRL_HAS_EXPIRED: CRL has expired" the \s-1CRL\s0 has expired. .IP "\fB13 X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD: format error in certificate's notBefore field\fR" 4 .IX Item "13 X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD: format error in certificate's notBefore field" the certificate notBefore field contains an invalid time. .IP "\fB14 X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD: format error in certificate's notAfter field\fR" 4 .IX Item "14 X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD: format error in certificate's notAfter field" the certificate notAfter field contains an invalid time. .IP "\fB15 X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD: format error in \s-1CRL\s0's lastUpdate field\fR" 4 .IX Item "15 X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD: format error in CRL's lastUpdate field" the \s-1CRL\s0 lastUpdate field contains an invalid time. .IP "\fB16 X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD: format error in \s-1CRL\s0's nextUpdate field\fR" 4 .IX Item "16 X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD: format error in CRL's nextUpdate field" the \s-1CRL\s0 nextUpdate field contains an invalid time. .IP "\fB17 X509_V_ERR_OUT_OF_MEM: out of memory\fR" 4 .IX Item "17 X509_V_ERR_OUT_OF_MEM: out of memory" an error occurred trying to allocate memory. This should never happen. .IP "\fB18 X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT: self signed certificate\fR" 4 .IX Item "18 X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT: self signed certificate" the passed certificate is self signed and the same certificate cannot be found in the list of trusted certificates. .IP "\fB19 X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN: self signed certificate in certificate chain\fR" 4 .IX Item "19 X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN: self signed certificate in certificate chain" the certificate chain could be built up using the untrusted certificates but the root could not be found locally. .IP "\fB20 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY: unable to get local issuer certificate\fR" 4 .IX Item "20 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY: unable to get local issuer certificate" the issuer certificate could not be found: this occurs if the issuer certificate of an untrusted certificate cannot be found. .IP "\fB21 X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE: unable to verify the first certificate\fR" 4 .IX Item "21 X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE: unable to verify the first certificate" no signatures could be verified because the chain contains only one certificate and it is not self signed. .IP "\fB22 X509_V_ERR_CERT_CHAIN_TOO_LONG: certificate chain too long\fR" 4 .IX Item "22 X509_V_ERR_CERT_CHAIN_TOO_LONG: certificate chain too long" the certificate chain length is greater than the supplied maximum depth. Unused. .IP "\fB23 X509_V_ERR_CERT_REVOKED: certificate revoked\fR" 4 .IX Item "23 X509_V_ERR_CERT_REVOKED: certificate revoked" the certificate has been revoked. .IP "\fB24 X509_V_ERR_INVALID_CA: invalid \s-1CA\s0 certificate\fR" 4 .IX Item "24 X509_V_ERR_INVALID_CA: invalid CA certificate" a \s-1CA\s0 certificate is invalid. Either it is not a \s-1CA\s0 or its extensions are not consistent with the supplied purpose. .IP "\fB25 X509_V_ERR_PATH_LENGTH_EXCEEDED: path length constraint exceeded\fR" 4 .IX Item "25 X509_V_ERR_PATH_LENGTH_EXCEEDED: path length constraint exceeded" the basicConstraints pathlength parameter has been exceeded. .IP "\fB26 X509_V_ERR_INVALID_PURPOSE: unsupported certificate purpose\fR" 4 .IX Item "26 X509_V_ERR_INVALID_PURPOSE: unsupported certificate purpose" the supplied certificate cannot be used for the specified purpose. .IP "\fB27 X509_V_ERR_CERT_UNTRUSTED: certificate not trusted\fR" 4 .IX Item "27 X509_V_ERR_CERT_UNTRUSTED: certificate not trusted" the root \s-1CA\s0 is not marked as trusted for the specified purpose. .IP "\fB28 X509_V_ERR_CERT_REJECTED: certificate rejected\fR" 4 .IX Item "28 X509_V_ERR_CERT_REJECTED: certificate rejected" the root \s-1CA\s0 is marked to reject the specified purpose. .IP "\fB29 X509_V_ERR_SUBJECT_ISSUER_MISMATCH: subject issuer mismatch\fR" 4 .IX Item "29 X509_V_ERR_SUBJECT_ISSUER_MISMATCH: subject issuer mismatch" the current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate. Only displayed when the \fB\-issuer_checks\fR option is set. .IP "\fB30 X509_V_ERR_AKID_SKID_MISMATCH: authority and subject key identifier mismatch\fR" 4 .IX Item "30 X509_V_ERR_AKID_SKID_MISMATCH: authority and subject key identifier mismatch" the current candidate issuer certificate was rejected because its subject key identifier was present and did not match the authority key identifier current certificate. Only displayed when the \fB\-issuer_checks\fR option is set. .IP "\fB31 X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH: authority and issuer serial number mismatch\fR" 4 .IX Item "31 X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH: authority and issuer serial number mismatch" the current candidate issuer certificate was rejected because its issuer name and serial number was present and did not match the authority key identifier of the current certificate. Only displayed when the \fB\-issuer_checks\fR option is set. .IP "\fB32 X509_V_ERR_KEYUSAGE_NO_CERTSIGN:key usage does not include certificate signing\fR" 4 .IX Item "32 X509_V_ERR_KEYUSAGE_NO_CERTSIGN:key usage does not include certificate signing" the current candidate issuer certificate was rejected because its keyUsage extension does not permit certificate signing. .IP "\fB50 X509_V_ERR_APPLICATION_VERIFICATION: application verification failure\fR" 4 .IX Item "50 X509_V_ERR_APPLICATION_VERIFICATION: application verification failure" an application specific error. Unused. .SH "BUGS" .IX Header "BUGS" Although the issuer checks are a considerable improvement over the old technique they still suffer from limitations in the underlying X509_LOOKUP \s-1API.\s0 One consequence of this is that trusted certificates with matching subject name must either appear in a file (as specified by the \&\fB\-CAfile\fR option) or a directory (as specified by \fB\-CApath\fR. If they occur in both then only the certificates in the file will be recognised. .PP Previous versions of OpenSSL assume certificates with matching subject name are identical and mishandled them. .PP Previous versions of this documentation swapped the meaning of the \&\fBX509_V_ERR_UNABLE_TO_GET_ISSUER_CERT\fR and \&\fB20 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY\fR error codes. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIx509\fR\|(1) .SH "HISTORY" .IX Header "HISTORY" The \-no_alt_chains options was first added to OpenSSL 1.0.2b. man1/nseq.1ssl000064400000013474147210250140007157 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "NSEQ 1" .TH NSEQ 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" nseq \- create or examine a netscape certificate sequence .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBnseq\fR [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-toseq\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBnseq\fR command takes a file containing a Netscape certificate sequence and prints out the certificates contained in it or takes a file of certificates and converts it into a Netscape certificate sequence. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read or standard input if this option is not specified. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" specifies the output filename or standard output by default. .IP "\fB\-toseq\fR" 4 .IX Item "-toseq" normally a Netscape certificate sequence will be input and the output is the certificates contained in it. With the \fB\-toseq\fR option the situation is reversed: a Netscape certificate sequence is created from a file of certificates. .SH "EXAMPLES" .IX Header "EXAMPLES" Output the certificates in a Netscape certificate sequence .PP .Vb 1 \& openssl nseq \-in nseq.pem \-out certs.pem .Ve .PP Create a Netscape certificate sequence .PP .Vb 1 \& openssl nseq \-in certs.pem \-toseq \-out nseq.pem .Ve .SH "NOTES" .IX Header "NOTES" The \fB\s-1PEM\s0\fR encoded form uses the same headers and footers as a certificate: .PP .Vb 2 \& \-\-\-\-\-BEGIN CERTIFICATE\-\-\-\-\- \& \-\-\-\-\-END CERTIFICATE\-\-\-\-\- .Ve .PP A Netscape certificate sequence is a Netscape specific form that can be sent to browsers as an alternative to the standard PKCS#7 format when several certificates are sent to the browser: for example during certificate enrollment. It is used by Netscape certificate server for example. .SH "BUGS" .IX Header "BUGS" This program needs a few more options: like allowing \s-1DER\s0 or \s-1PEM\s0 input and output files and allowing multiple certificate files to be used. man1/rsa.1ssl000064400000025635147210250140007000 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RSA 1" .TH RSA 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" rsa \- RSA key processing tool .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBrsa\fR [\fB\-inform PEM|NET|DER\fR] [\fB\-outform PEM|NET|DER\fR] [\fB\-in filename\fR] [\fB\-passin arg\fR] [\fB\-out filename\fR] [\fB\-passout arg\fR] [\fB\-sgckey\fR] [\fB\-aes128\fR] [\fB\-aes192\fR] [\fB\-aes256\fR] [\fB\-camellia128\fR] [\fB\-camellia192\fR] [\fB\-camellia256\fR] [\fB\-des\fR] [\fB\-des3\fR] [\fB\-idea\fR] [\fB\-text\fR] [\fB\-noout\fR] [\fB\-modulus\fR] [\fB\-check\fR] [\fB\-pubin\fR] [\fB\-pubout\fR] [\fB\-RSAPublicKey_in\fR] [\fB\-RSAPublicKey_out\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBrsa\fR command processes \s-1RSA\s0 keys. They can be converted between various forms and their components printed out. \fBNote\fR this command uses the traditional SSLeay compatible format for private key encryption: newer applications should use the more secure PKCS#8 format using the \fBpkcs8\fR utility. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-inform DER|NET|PEM\fR" 4 .IX Item "-inform DER|NET|PEM" This specifies the input format. The \fB\s-1DER\s0\fR option uses an \s-1ASN1 DER\s0 encoded form compatible with the PKCS#1 RSAPrivateKey or SubjectPublicKeyInfo format. The \fB\s-1PEM\s0\fR form is the default format: it consists of the \fB\s-1DER\s0\fR format base64 encoded with additional header and footer lines. On input PKCS#8 format private keys are also accepted. The \fB\s-1NET\s0\fR form is a format is described in the \fB\s-1NOTES\s0\fR section. .IP "\fB\-outform DER|NET|PEM\fR" 4 .IX Item "-outform DER|NET|PEM" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read a key from or standard input if this option is not specified. If the key is encrypted a pass phrase will be prompted for. .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the input file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" This specifies the output filename to write a key to or standard output if this option is not specified. If any encryption options are set then a pass phrase will be prompted for. The output filename should \fBnot\fR be the same as the input filename. .IP "\fB\-passout password\fR" 4 .IX Item "-passout password" the output file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-sgckey\fR" 4 .IX Item "-sgckey" use the modified \s-1NET\s0 algorithm used with some versions of Microsoft \s-1IIS\s0 and \s-1SGC\s0 keys. .IP "\fB\-aes128|\-aes192|\-aes256|\-camellia128|\-camellia192|\-camellia256|\-des|\-des3|\-idea\fR" 4 .IX Item "-aes128|-aes192|-aes256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea" These options encrypt the private key with the specified cipher before outputting it. A pass phrase is prompted for. If none of these options is specified the key is written in plain text. This means that using the \fBrsa\fR utility to read in an encrypted key with no encryption option can be used to remove the pass phrase from a key, or by setting the encryption options it can be use to add or change the pass phrase. These options can only be used with \s-1PEM\s0 format output files. .IP "\fB\-text\fR" 4 .IX Item "-text" prints out the various public or private key components in plain text in addition to the encoded version. .IP "\fB\-noout\fR" 4 .IX Item "-noout" this option prevents output of the encoded version of the key. .IP "\fB\-modulus\fR" 4 .IX Item "-modulus" this option prints out the value of the modulus of the key. .IP "\fB\-check\fR" 4 .IX Item "-check" this option checks the consistency of an \s-1RSA\s0 private key. .IP "\fB\-pubin\fR" 4 .IX Item "-pubin" by default a private key is read from the input file: with this option a public key is read instead. .IP "\fB\-pubout\fR" 4 .IX Item "-pubout" by default a private key is output: with this option a public key will be output instead. This option is automatically set if the input is a public key. .IP "\fB\-RSAPublicKey_in\fR, \fB\-RSAPublicKey_out\fR" 4 .IX Item "-RSAPublicKey_in, -RSAPublicKey_out" like \fB\-pubin\fR and \fB\-pubout\fR except \fBRSAPublicKey\fR format is used instead. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBrsa\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .SH "NOTES" .IX Header "NOTES" The \s-1PEM\s0 private key format uses the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN RSA PRIVATE KEY\-\-\-\-\- \& \-\-\-\-\-END RSA PRIVATE KEY\-\-\-\-\- .Ve .PP The \s-1PEM\s0 public key format uses the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN PUBLIC KEY\-\-\-\-\- \& \-\-\-\-\-END PUBLIC KEY\-\-\-\-\- .Ve .PP The \s-1PEM \s0\fBRSAPublicKey\fR format uses the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN RSA PUBLIC KEY\-\-\-\-\- \& \-\-\-\-\-END RSA PUBLIC KEY\-\-\-\-\- .Ve .PP The \fB\s-1NET\s0\fR form is a format compatible with older Netscape servers and Microsoft \s-1IIS \s0.key files, this uses unsalted \s-1RC4\s0 for its encryption. It is not very secure and so should only be used when necessary. .PP Some newer version of \s-1IIS\s0 have additional data in the exported .key files. To use these with the utility, view the file with a binary editor and look for the string \*(L"private-key\*(R", then trace back to the byte sequence 0x30, 0x82 (this is an \s-1ASN1 SEQUENCE\s0). Copy all the data from this point onwards to another file and use that as the input to the \fBrsa\fR utility with the \fB\-inform \s-1NET\s0\fR option. If you get an error after entering the password try the \fB\-sgckey\fR option. .SH "EXAMPLES" .IX Header "EXAMPLES" To remove the pass phrase on an \s-1RSA\s0 private key: .PP .Vb 1 \& openssl rsa \-in key.pem \-out keyout.pem .Ve .PP To encrypt a private key using triple \s-1DES:\s0 .PP .Vb 1 \& openssl rsa \-in key.pem \-des3 \-out keyout.pem .Ve .PP To convert a private key from \s-1PEM\s0 to \s-1DER\s0 format: .PP .Vb 1 \& openssl rsa \-in key.pem \-outform DER \-out keyout.der .Ve .PP To print out the components of a private key to standard output: .PP .Vb 1 \& openssl rsa \-in key.pem \-text \-noout .Ve .PP To just output the public part of a private key: .PP .Vb 1 \& openssl rsa \-in key.pem \-pubout \-out pubkey.pem .Ve .PP Output the public part of a private key in \fBRSAPublicKey\fR format: .PP .Vb 1 \& openssl rsa \-in key.pem \-RSAPublicKey_out \-out pubkey.pem .Ve .SH "BUGS" .IX Header "BUGS" The command line password arguments don't currently work with \&\fB\s-1NET\s0\fR format. .PP There should be an option that automatically handles .key files, without having to manually edit them. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIpkcs8\fR\|(1), \fIdsa\fR\|(1), \fIgenrsa\fR\|(1), \&\fIgendsa\fR\|(1) man1/ts.1ssl000064400000064731147210250140006641 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "TS 1" .TH TS 1 "2017-06-30" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ts \- Time Stamping Authority tool (client/server) .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBts\fR \&\fB\-query\fR [\fB\-rand\fR file:file...] [\fB\-config\fR configfile] [\fB\-data\fR file_to_hash] [\fB\-digest\fR digest_bytes] [\fB\-md2\fR|\fB\-md4\fR|\fB\-md5\fR|\fB\-sha\fR|\fB\-sha1\fR|\fB\-mdc2\fR|\fB\-ripemd160\fR|\fB...\fR] [\fB\-policy\fR object_id] [\fB\-no_nonce\fR] [\fB\-cert\fR] [\fB\-in\fR request.tsq] [\fB\-out\fR request.tsq] [\fB\-text\fR] .PP \&\fBopenssl\fR \fBts\fR \&\fB\-reply\fR [\fB\-config\fR configfile] [\fB\-section\fR tsa_section] [\fB\-queryfile\fR request.tsq] [\fB\-passin\fR password_src] [\fB\-signer\fR tsa_cert.pem] [\fB\-inkey\fR private.pem] [\fB\-chain\fR certs_file.pem] [\fB\-policy\fR object_id] [\fB\-in\fR response.tsr] [\fB\-token_in\fR] [\fB\-out\fR response.tsr] [\fB\-token_out\fR] [\fB\-text\fR] [\fB\-engine\fR id] .PP \&\fBopenssl\fR \fBts\fR \&\fB\-verify\fR [\fB\-data\fR file_to_hash] [\fB\-digest\fR digest_bytes] [\fB\-queryfile\fR request.tsq] [\fB\-in\fR response.tsr] [\fB\-token_in\fR] [\fB\-CApath\fR trusted_cert_path] [\fB\-CAfile\fR trusted_certs.pem] [\fB\-trusted_first\fR] [\fB\-untrusted\fR cert_file.pem] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBts\fR command is a basic Time Stamping Authority (\s-1TSA\s0) client and server application as specified in \s-1RFC 3161 \s0(Time-Stamp Protocol, \s-1TSP\s0). A \&\s-1TSA\s0 can be part of a \s-1PKI\s0 deployment and its role is to provide long term proof of the existence of a certain datum before a particular time. Here is a brief description of the protocol: .IP "1." 4 The \s-1TSA\s0 client computes a one-way hash value for a data file and sends the hash to the \s-1TSA.\s0 .IP "2." 4 The \s-1TSA\s0 attaches the current date and time to the received hash value, signs them and sends the time stamp token back to the client. By creating this token the \s-1TSA\s0 certifies the existence of the original data file at the time of response generation. .IP "3." 4 The \s-1TSA\s0 client receives the time stamp token and verifies the signature on it. It also checks if the token contains the same hash value that it had sent to the \s-1TSA.\s0 .PP There is one \s-1DER\s0 encoded protocol data unit defined for transporting a time stamp request to the \s-1TSA\s0 and one for sending the time stamp response back to the client. The \fBts\fR command has three main functions: creating a time stamp request based on a data file, creating a time stamp response based on a request, verifying if a response corresponds to a particular request or a data file. .PP There is no support for sending the requests/responses automatically over \s-1HTTP\s0 or \s-1TCP\s0 yet as suggested in \s-1RFC 3161.\s0 The users must send the requests either by ftp or e\-mail. .SH "OPTIONS" .IX Header "OPTIONS" .SS "Time Stamp Request generation" .IX Subsection "Time Stamp Request generation" The \fB\-query\fR switch can be used for creating and printing a time stamp request with the following options: .IP "\fB\-rand\fR file:file..." 4 .IX Item "-rand file:file..." The files containing random data for seeding the random number generator. Multiple files can be specified, the separator is \fB;\fR for MS-Windows, \fB,\fR for \s-1VMS\s0 and \fB:\fR for all other platforms. (Optional) .IP "\fB\-config\fR configfile" 4 .IX Item "-config configfile" The configuration file to use, this option overrides the \&\fB\s-1OPENSSL_CONF\s0\fR environment variable. Only the \s-1OID\s0 section of the config file is used with the \fB\-query\fR command. (Optional) .IP "\fB\-data\fR file_to_hash" 4 .IX Item "-data file_to_hash" The data file for which the time stamp request needs to be created. stdin is the default if neither the \fB\-data\fR nor the \fB\-digest\fR parameter is specified. (Optional) .IP "\fB\-digest\fR digest_bytes" 4 .IX Item "-digest digest_bytes" It is possible to specify the message imprint explicitly without the data file. The imprint must be specified in a hexadecimal format, two characters per byte, the bytes optionally separated by colons (e.g. 1A:F6:01:... or 1AF601...). The number of bytes must match the message digest algorithm in use. (Optional) .IP "\fB\-md2\fR|\fB\-md4\fR|\fB\-md5\fR|\fB\-sha\fR|\fB\-sha1\fR|\fB\-mdc2\fR|\fB\-ripemd160\fR|\fB...\fR" 4 .IX Item "-md2|-md4|-md5|-sha|-sha1|-mdc2|-ripemd160|..." The message digest to apply to the data file, it supports all the message digest algorithms that are supported by the openssl \fBdgst\fR command. The default is \s-1SHA\-1. \s0(Optional) .IP "\fB\-policy\fR object_id" 4 .IX Item "-policy object_id" The policy that the client expects the \s-1TSA\s0 to use for creating the time stamp token. Either the dotted \s-1OID\s0 notation or \s-1OID\s0 names defined in the config file can be used. If no policy is requested the \s-1TSA\s0 will use its own default policy. (Optional) .IP "\fB\-no_nonce\fR" 4 .IX Item "-no_nonce" No nonce is specified in the request if this option is given. Otherwise a 64 bit long pseudo-random none is included in the request. It is recommended to use nonce to protect against replay-attacks. (Optional) .IP "\fB\-cert\fR" 4 .IX Item "-cert" The \s-1TSA\s0 is expected to include its signing certificate in the response. (Optional) .IP "\fB\-in\fR request.tsq" 4 .IX Item "-in request.tsq" This option specifies a previously created time stamp request in \s-1DER\s0 format that will be printed into the output file. Useful when you need to examine the content of a request in human-readable .Sp format. (Optional) .IP "\fB\-out\fR request.tsq" 4 .IX Item "-out request.tsq" Name of the output file to which the request will be written. Default is stdout. (Optional) .IP "\fB\-text\fR" 4 .IX Item "-text" If this option is specified the output is human-readable text format instead of \s-1DER. \s0(Optional) .SS "Time Stamp Response generation" .IX Subsection "Time Stamp Response generation" A time stamp response (TimeStampResp) consists of a response status and the time stamp token itself (ContentInfo), if the token generation was successful. The \fB\-reply\fR command is for creating a time stamp response or time stamp token based on a request and printing the response/token in human-readable format. If \fB\-token_out\fR is not specified the output is always a time stamp response (TimeStampResp), otherwise it is a time stamp token (ContentInfo). .IP "\fB\-config\fR configfile" 4 .IX Item "-config configfile" The configuration file to use, this option overrides the \&\fB\s-1OPENSSL_CONF\s0\fR environment variable. See \fB\s-1CONFIGURATION FILE OPTIONS\s0\fR for configurable variables. (Optional) .IP "\fB\-section\fR tsa_section" 4 .IX Item "-section tsa_section" The name of the config file section conatining the settings for the response generation. If not specified the default \s-1TSA\s0 section is used, see \fB\s-1CONFIGURATION FILE OPTIONS\s0\fR for details. (Optional) .IP "\fB\-queryfile\fR request.tsq" 4 .IX Item "-queryfile request.tsq" The name of the file containing a \s-1DER\s0 encoded time stamp request. (Optional) .IP "\fB\-passin\fR password_src" 4 .IX Item "-passin password_src" Specifies the password source for the private key of the \s-1TSA.\s0 See \&\fB\s-1PASS PHRASE ARGUMENTS\s0\fR in \fIopenssl\fR\|(1). (Optional) .IP "\fB\-signer\fR tsa_cert.pem" 4 .IX Item "-signer tsa_cert.pem" The signer certificate of the \s-1TSA\s0 in \s-1PEM\s0 format. The \s-1TSA\s0 signing certificate must have exactly one extended key usage assigned to it: timeStamping. The extended key usage must also be critical, otherwise the certificate is going to be refused. Overrides the \fBsigner_cert\fR variable of the config file. (Optional) .IP "\fB\-inkey\fR private.pem" 4 .IX Item "-inkey private.pem" The signer private key of the \s-1TSA\s0 in \s-1PEM\s0 format. Overrides the \&\fBsigner_key\fR config file option. (Optional) .IP "\fB\-chain\fR certs_file.pem" 4 .IX Item "-chain certs_file.pem" The collection of certificates in \s-1PEM\s0 format that will all be included in the response in addition to the signer certificate if the \fB\-cert\fR option was used for the request. This file is supposed to contain the certificate chain for the signer certificate from its issuer upwards. The \fB\-reply\fR command does not build a certificate chain automatically. (Optional) .IP "\fB\-policy\fR object_id" 4 .IX Item "-policy object_id" The default policy to use for the response unless the client explicitly requires a particular \s-1TSA\s0 policy. The \s-1OID\s0 can be specified either in dotted notation or with its name. Overrides the \&\fBdefault_policy\fR config file option. (Optional) .IP "\fB\-in\fR response.tsr" 4 .IX Item "-in response.tsr" Specifies a previously created time stamp response or time stamp token (if \fB\-token_in\fR is also specified) in \s-1DER\s0 format that will be written to the output file. This option does not require a request, it is useful e.g. when you need to examine the content of a response or token or you want to extract the time stamp token from a response. If the input is a token and the output is a time stamp response a default \&'granted' status info is added to the token. (Optional) .IP "\fB\-token_in\fR" 4 .IX Item "-token_in" This flag can be used together with the \fB\-in\fR option and indicates that the input is a \s-1DER\s0 encoded time stamp token (ContentInfo) instead of a time stamp response (TimeStampResp). (Optional) .IP "\fB\-out\fR response.tsr" 4 .IX Item "-out response.tsr" The response is written to this file. The format and content of the file depends on other options (see \fB\-text\fR, \fB\-token_out\fR). The default is stdout. (Optional) .IP "\fB\-token_out\fR" 4 .IX Item "-token_out" The output is a time stamp token (ContentInfo) instead of time stamp response (TimeStampResp). (Optional) .IP "\fB\-text\fR" 4 .IX Item "-text" If this option is specified the output is human-readable text format instead of \s-1DER. \s0(Optional) .IP "\fB\-engine\fR id" 4 .IX Item "-engine id" Specifying an engine (by its unique \fBid\fR string) will cause \fBts\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. Default is builtin. (Optional) .SS "Time Stamp Response verification" .IX Subsection "Time Stamp Response verification" The \fB\-verify\fR command is for verifying if a time stamp response or time stamp token is valid and matches a particular time stamp request or data file. The \fB\-verify\fR command does not use the configuration file. .IP "\fB\-data\fR file_to_hash" 4 .IX Item "-data file_to_hash" The response or token must be verified against file_to_hash. The file is hashed with the message digest algorithm specified in the token. The \fB\-digest\fR and \fB\-queryfile\fR options must not be specified with this one. (Optional) .IP "\fB\-digest\fR digest_bytes" 4 .IX Item "-digest digest_bytes" The response or token must be verified against the message digest specified with this option. The number of bytes must match the message digest algorithm specified in the token. The \fB\-data\fR and \fB\-queryfile\fR options must not be specified with this one. (Optional) .IP "\fB\-queryfile\fR request.tsq" 4 .IX Item "-queryfile request.tsq" The original time stamp request in \s-1DER\s0 format. The \fB\-data\fR and \fB\-digest\fR options must not be specified with this one. (Optional) .IP "\fB\-in\fR response.tsr" 4 .IX Item "-in response.tsr" The time stamp response that needs to be verified in \s-1DER\s0 format. (Mandatory) .IP "\fB\-token_in\fR" 4 .IX Item "-token_in" This flag can be used together with the \fB\-in\fR option and indicates that the input is a \s-1DER\s0 encoded time stamp token (ContentInfo) instead of a time stamp response (TimeStampResp). (Optional) .IP "\fB\-CApath\fR trusted_cert_path" 4 .IX Item "-CApath trusted_cert_path" The name of the directory containing the trused \s-1CA\s0 certificates of the client. See the similar option of \fIverify\fR\|(1) for additional details. Either this option or \fB\-CAfile\fR must be specified. (Optional) .IP "\fB\-CAfile\fR trusted_certs.pem" 4 .IX Item "-CAfile trusted_certs.pem" The name of the file containing a set of trusted self-signed \s-1CA \s0 certificates in \s-1PEM\s0 format. See the similar option of \&\fIverify\fR\|(1) for additional details. Either this option or \fB\-CApath\fR must be specified. (Optional) .IP "\fB\-trusted_first\fR" 4 .IX Item "-trusted_first" Use certificates in \s-1CA\s0 file or \s-1CA\s0 directory before other certificates when building the trust chain to verify certificates. This is mainly useful in environments with Bridge \s-1CA\s0 or Cross-Certified CAs. .IP "\fB\-untrusted\fR cert_file.pem" 4 .IX Item "-untrusted cert_file.pem" Set of additional untrusted certificates in \s-1PEM\s0 format which may be needed when building the certificate chain for the \s-1TSA\s0's signing certificate. This file must contain the \s-1TSA\s0 signing certificate and all intermediate \s-1CA\s0 certificates unless the response includes them. (Optional) .SH "CONFIGURATION FILE OPTIONS" .IX Header "CONFIGURATION FILE OPTIONS" The \fB\-query\fR and \fB\-reply\fR commands make use of a configuration file defined by the \fB\s-1OPENSSL_CONF\s0\fR environment variable. See \fIconfig\fR\|(5) for a general description of the syntax of the config file. The \&\fB\-query\fR command uses only the symbolic \s-1OID\s0 names section and it can work without it. However, the \fB\-reply\fR command needs the config file for its operation. .PP When there is a command line switch equivalent of a variable the switch always overrides the settings in the config file. .IP "\fBtsa\fR section, \fBdefault_tsa\fR" 4 .IX Item "tsa section, default_tsa" This is the main section and it specifies the name of another section that contains all the options for the \fB\-reply\fR command. This default section can be overridden with the \fB\-section\fR command line switch. (Optional) .IP "\fBoid_file\fR" 4 .IX Item "oid_file" See \fIca\fR\|(1) for description. (Optional) .IP "\fBoid_section\fR" 4 .IX Item "oid_section" See \fIca\fR\|(1) for description. (Optional) .IP "\fB\s-1RANDFILE\s0\fR" 4 .IX Item "RANDFILE" See \fIca\fR\|(1) for description. (Optional) .IP "\fBserial\fR" 4 .IX Item "serial" The name of the file containing the hexadecimal serial number of the last time stamp response created. This number is incremented by 1 for each response. If the file does not exist at the time of response generation a new file is created with serial number 1. (Mandatory) .IP "\fBcrypto_device\fR" 4 .IX Item "crypto_device" Specifies the OpenSSL engine that will be set as the default for all available algorithms. The default value is builtin, you can specify any other engines supported by OpenSSL (e.g. use chil for the NCipher \s-1HSM\s0). (Optional) .IP "\fBsigner_cert\fR" 4 .IX Item "signer_cert" \&\s-1TSA\s0 signing certificate in \s-1PEM\s0 format. The same as the \fB\-signer\fR command line option. (Optional) .IP "\fBcerts\fR" 4 .IX Item "certs" A file containing a set of \s-1PEM\s0 encoded certificates that need to be included in the response. The same as the \fB\-chain\fR command line option. (Optional) .IP "\fBsigner_key\fR" 4 .IX Item "signer_key" The private key of the \s-1TSA\s0 in \s-1PEM\s0 format. The same as the \fB\-inkey\fR command line option. (Optional) .IP "\fBdefault_policy\fR" 4 .IX Item "default_policy" The default policy to use when the request does not mandate any policy. The same as the \fB\-policy\fR command line option. (Optional) .IP "\fBother_policies\fR" 4 .IX Item "other_policies" Comma separated list of policies that are also acceptable by the \s-1TSA\s0 and used only if the request explicitly specifies one of them. (Optional) .IP "\fBdigests\fR" 4 .IX Item "digests" The list of message digest algorithms that the \s-1TSA\s0 accepts. At least one algorithm must be specified. (Mandatory) .IP "\fBaccuracy\fR" 4 .IX Item "accuracy" The accuracy of the time source of the \s-1TSA\s0 in seconds, milliseconds and microseconds. E.g. secs:1, millisecs:500, microsecs:100. If any of the components is missing zero is assumed for that field. (Optional) .IP "\fBclock_precision_digits\fR" 4 .IX Item "clock_precision_digits" Specifies the maximum number of digits, which represent the fraction of seconds, that need to be included in the time field. The trailing zeroes must be removed from the time, so there might actually be fewer digits, or no fraction of seconds at all. Supported only on \s-1UNIX\s0 platforms. The maximum value is 6, default is 0. (Optional) .IP "\fBordering\fR" 4 .IX Item "ordering" If this option is yes the responses generated by this \s-1TSA\s0 can always be ordered, even if the time difference between two responses is less than the sum of their accuracies. Default is no. (Optional) .IP "\fBtsa_name\fR" 4 .IX Item "tsa_name" Set this option to yes if the subject name of the \s-1TSA\s0 must be included in the \s-1TSA\s0 name field of the response. Default is no. (Optional) .IP "\fBess_cert_id_chain\fR" 4 .IX Item "ess_cert_id_chain" The SignedData objects created by the \s-1TSA\s0 always contain the certificate identifier of the signing certificate in a signed attribute (see \s-1RFC 2634,\s0 Enhanced Security Services). If this option is set to yes and either the \fBcerts\fR variable or the \fB\-chain\fR option is specified then the certificate identifiers of the chain will also be included in the SigningCertificate signed attribute. If this variable is set to no, only the signing certificate identifier is included. Default is no. (Optional) .SH "ENVIRONMENT VARIABLES" .IX Header "ENVIRONMENT VARIABLES" \&\fB\s-1OPENSSL_CONF\s0\fR contains the path of the configuration file and can be overridden by the \fB\-config\fR command line option. .SH "EXAMPLES" .IX Header "EXAMPLES" All the examples below presume that \fB\s-1OPENSSL_CONF\s0\fR is set to a proper configuration file, e.g. the example configuration file openssl/apps/openssl.cnf will do. .SS "Time Stamp Request" .IX Subsection "Time Stamp Request" To create a time stamp request for design1.txt with \s-1SHA\-1 \s0 without nonce and policy and no certificate is required in the response: .PP .Vb 2 \& openssl ts \-query \-data design1.txt \-no_nonce \e \& \-out design1.tsq .Ve .PP To create a similar time stamp request with specifying the message imprint explicitly: .PP .Vb 2 \& openssl ts \-query \-digest b7e5d3f93198b38379852f2c04e78d73abdd0f4b \e \& \-no_nonce \-out design1.tsq .Ve .PP To print the content of the previous request in human readable format: .PP .Vb 1 \& openssl ts \-query \-in design1.tsq \-text .Ve .PP To create a time stamp request which includes the \s-1MD\-5\s0 digest of design2.txt, requests the signer certificate and nonce, specifies a policy id (assuming the tsa_policy1 name is defined in the \&\s-1OID\s0 section of the config file): .PP .Vb 2 \& openssl ts \-query \-data design2.txt \-md5 \e \& \-policy tsa_policy1 \-cert \-out design2.tsq .Ve .SS "Time Stamp Response" .IX Subsection "Time Stamp Response" Before generating a response a signing certificate must be created for the \s-1TSA\s0 that contains the \fBtimeStamping\fR critical extended key usage extension without any other key usage extensions. You can add the \&'extendedKeyUsage = critical,timeStamping' line to the user certificate section of the config file to generate a proper certificate. See \fIreq\fR\|(1), \&\fIca\fR\|(1), \fIx509\fR\|(1) for instructions. The examples below assume that cacert.pem contains the certificate of the \s-1CA,\s0 tsacert.pem is the signing certificate issued by cacert.pem and tsakey.pem is the private key of the \s-1TSA.\s0 .PP To create a time stamp response for a request: .PP .Vb 2 \& openssl ts \-reply \-queryfile design1.tsq \-inkey tsakey.pem \e \& \-signer tsacert.pem \-out design1.tsr .Ve .PP If you want to use the settings in the config file you could just write: .PP .Vb 1 \& openssl ts \-reply \-queryfile design1.tsq \-out design1.tsr .Ve .PP To print a time stamp reply to stdout in human readable format: .PP .Vb 1 \& openssl ts \-reply \-in design1.tsr \-text .Ve .PP To create a time stamp token instead of time stamp response: .PP .Vb 1 \& openssl ts \-reply \-queryfile design1.tsq \-out design1_token.der \-token_out .Ve .PP To print a time stamp token to stdout in human readable format: .PP .Vb 1 \& openssl ts \-reply \-in design1_token.der \-token_in \-text \-token_out .Ve .PP To extract the time stamp token from a response: .PP .Vb 1 \& openssl ts \-reply \-in design1.tsr \-out design1_token.der \-token_out .Ve .PP To add 'granted' status info to a time stamp token thereby creating a valid response: .PP .Vb 1 \& openssl ts \-reply \-in design1_token.der \-token_in \-out design1.tsr .Ve .SS "Time Stamp Verification" .IX Subsection "Time Stamp Verification" To verify a time stamp reply against a request: .PP .Vb 2 \& openssl ts \-verify \-queryfile design1.tsq \-in design1.tsr \e \& \-CAfile cacert.pem \-untrusted tsacert.pem .Ve .PP To verify a time stamp reply that includes the certificate chain: .PP .Vb 2 \& openssl ts \-verify \-queryfile design2.tsq \-in design2.tsr \e \& \-CAfile cacert.pem .Ve .PP To verify a time stamp token against the original data file: openssl ts \-verify \-data design2.txt \-in design2.tsr \e \-CAfile cacert.pem .PP To verify a time stamp token against a message imprint: openssl ts \-verify \-digest b7e5d3f93198b38379852f2c04e78d73abdd0f4b \e \-in design2.tsr \-CAfile cacert.pem .PP You could also look at the 'test' directory for more examples. .SH "BUGS" .IX Header "BUGS" If you find any bugs or you have suggestions please write to Zoltan Glozik . Known issues: .IP "\(bu" 4 No support for time stamps over \s-1SMTP,\s0 though it is quite easy to implement an automatic e\-mail based \s-1TSA\s0 with \fIprocmail\fR\|(1) and \fIperl\fR\|(1). \s-1HTTP\s0 server support is provided in the form of a separate apache module. \s-1HTTP\s0 client support is provided by \&\fItsget\fR\|(1). Pure \s-1TCP/IP\s0 protocol is not supported. .IP "\(bu" 4 The file containing the last serial number of the \s-1TSA\s0 is not locked when being read or written. This is a problem if more than one instance of \fIopenssl\fR\|(1) is trying to create a time stamp response at the same time. This is not an issue when using the apache server module, it does proper locking. .IP "\(bu" 4 Look for the \s-1FIXME\s0 word in the source files. .IP "\(bu" 4 The source code should really be reviewed by somebody else, too. .IP "\(bu" 4 More testing is needed, I have done only some basic tests (see test/testtsa). .SH "AUTHOR" .IX Header "AUTHOR" Zoltan Glozik , OpenTSA project (http://www.opentsa.org) .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fItsget\fR\|(1), \fIopenssl\fR\|(1), \fIreq\fR\|(1), \&\fIx509\fR\|(1), \fIca\fR\|(1), \fIgenrsa\fR\|(1), \&\fIconfig\fR\|(5) man1/genrsa.1ssl000064400000015762147210250140007472 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "GENRSA 1" .TH GENRSA 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" genrsa \- generate an RSA private key .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBgenrsa\fR [\fB\-out filename\fR] [\fB\-passout arg\fR] [\fB\-aes128\fR] [\fB\-aes192\fR] [\fB\-aes256\fR] [\fB\-camellia128\fR] [\fB\-camellia192\fR] [\fB\-camellia256\fR] [\fB\-des\fR] [\fB\-des3\fR] [\fB\-idea\fR] [\fB\-f4\fR] [\fB\-3\fR] [\fB\-rand file(s)\fR] [\fB\-engine id\fR] [\fBnumbits\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBgenrsa\fR command generates an \s-1RSA\s0 private key. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" the output filename. If this argument is not specified then standard output is used. .IP "\fB\-passout arg\fR" 4 .IX Item "-passout arg" the output file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-aes128|\-aes192|\-aes256|\-camellia128|\-camellia192|\-camellia256|\-des|\-des3|\-idea\fR" 4 .IX Item "-aes128|-aes192|-aes256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea" These options encrypt the private key with specified cipher before outputting it. If none of these options is specified no encryption is used. If encryption is used a pass phrase is prompted for if it is not supplied via the \fB\-passout\fR argument. .IP "\fB\-F4|\-3\fR" 4 .IX Item "-F4|-3" the public exponent to use, either 65537 or 3. The default is 65537. .IP "\fB\-rand file(s)\fR" 4 .IX Item "-rand file(s)" a file or files containing random data used to seed the random number generator, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). Multiple files can be specified separated by a OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBgenrsa\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .IP "\fBnumbits\fR" 4 .IX Item "numbits" the size of the private key to generate in bits. This must be the last option specified. The default is 512. .SH "NOTES" .IX Header "NOTES" \&\s-1RSA\s0 private key generation essentially involves the generation of two prime numbers. When generating a private key various symbols will be output to indicate the progress of the generation. A \fB.\fR represents each number which has passed an initial sieve test, \fB+\fR means a number has passed a single round of the Miller-Rabin primality test. A newline means that the number has passed all the prime tests (the actual number depends on the key size). .PP Because key generation is a random process the time taken to generate a key may vary somewhat. .SH "BUGS" .IX Header "BUGS" A quirk of the prime generation algorithm is that it cannot generate small primes. Therefore the number of bits should not be less that 64. For typical private keys this will not matter because for security reasons they will be much larger (typically 1024 bits). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIgendsa\fR\|(1) man1/pkcs12.1ssl000064400000042440147210250140007307 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PKCS12 1" .TH PKCS12 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" pkcs12 \- PKCS#12 file utility .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBpkcs12\fR [\fB\-export\fR] [\fB\-chain\fR] [\fB\-inkey filename\fR] [\fB\-certfile filename\fR] [\fB\-name name\fR] [\fB\-caname name\fR] [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-noout\fR] [\fB\-nomacver\fR] [\fB\-nocerts\fR] [\fB\-clcerts\fR] [\fB\-cacerts\fR] [\fB\-nokeys\fR] [\fB\-info\fR] [\fB\-des | \-des3 | \-idea | \-aes128 | \-aes192 | \-aes256 | \-camellia128 | \-camellia192 | \-camellia256 | \-nodes\fR] [\fB\-noiter\fR] [\fB\-maciter | \-nomaciter | \-nomac\fR] [\fB\-twopass\fR] [\fB\-descert\fR] [\fB\-certpbe cipher\fR] [\fB\-keypbe cipher\fR] [\fB\-macalg digest\fR] [\fB\-keyex\fR] [\fB\-keysig\fR] [\fB\-password arg\fR] [\fB\-passin arg\fR] [\fB\-passout arg\fR] [\fB\-rand file(s)\fR] [\fB\-CAfile file\fR] [\fB\-CApath dir\fR] [\fB\-CSP name\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBpkcs12\fR command allows PKCS#12 files (sometimes referred to as \&\s-1PFX\s0 files) to be created and parsed. PKCS#12 files are used by several programs including Netscape, \s-1MSIE\s0 and \s-1MS\s0 Outlook. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" There are a lot of options the meaning of some depends of whether a PKCS#12 file is being created or parsed. By default a PKCS#12 file is parsed. A PKCS#12 file can be created by using the \fB\-export\fR option (see below). .SH "PARSING OPTIONS" .IX Header "PARSING OPTIONS" .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies filename of the PKCS#12 file to be parsed. Standard input is used by default. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" The filename to write certificates and private keys to, standard output by default. They are all written in \s-1PEM\s0 format. .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the PKCS#12 file (i.e. input file) password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \&\fIopenssl\fR\|(1). .IP "\fB\-passout arg\fR" 4 .IX Item "-passout arg" pass phrase source to encrypt any outputted private keys with. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-password arg\fR" 4 .IX Item "-password arg" With \-export, \-password is equivalent to \-passout. Otherwise, \-password is equivalent to \-passin. .IP "\fB\-noout\fR" 4 .IX Item "-noout" this option inhibits output of the keys and certificates to the output file version of the PKCS#12 file. .IP "\fB\-clcerts\fR" 4 .IX Item "-clcerts" only output client certificates (not \s-1CA\s0 certificates). .IP "\fB\-cacerts\fR" 4 .IX Item "-cacerts" only output \s-1CA\s0 certificates (not client certificates). .IP "\fB\-nocerts\fR" 4 .IX Item "-nocerts" no certificates at all will be output. .IP "\fB\-nokeys\fR" 4 .IX Item "-nokeys" no private keys will be output. .IP "\fB\-info\fR" 4 .IX Item "-info" output additional information about the PKCS#12 file structure, algorithms used and iteration counts. .IP "\fB\-des\fR" 4 .IX Item "-des" use \s-1DES\s0 to encrypt private keys before outputting. .IP "\fB\-des3\fR" 4 .IX Item "-des3" use triple \s-1DES\s0 to encrypt private keys before outputting, this is the default. .IP "\fB\-idea\fR" 4 .IX Item "-idea" use \s-1IDEA\s0 to encrypt private keys before outputting. .IP "\fB\-aes128\fR, \fB\-aes192\fR, \fB\-aes256\fR" 4 .IX Item "-aes128, -aes192, -aes256" use \s-1AES\s0 to encrypt private keys before outputting. .IP "\fB\-camellia128\fR, \fB\-camellia192\fR, \fB\-camellia256\fR" 4 .IX Item "-camellia128, -camellia192, -camellia256" use Camellia to encrypt private keys before outputting. .IP "\fB\-nodes\fR" 4 .IX Item "-nodes" don't encrypt the private keys at all. .IP "\fB\-nomacver\fR" 4 .IX Item "-nomacver" don't attempt to verify the integrity \s-1MAC\s0 before reading the file. .IP "\fB\-twopass\fR" 4 .IX Item "-twopass" prompt for separate integrity and encryption passwords: most software always assumes these are the same so this option will render such PKCS#12 files unreadable. .SH "FILE CREATION OPTIONS" .IX Header "FILE CREATION OPTIONS" .IP "\fB\-export\fR" 4 .IX Item "-export" This option specifies that a PKCS#12 file will be created rather than parsed. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" This specifies filename to write the PKCS#12 file to. Standard output is used by default. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" The filename to read certificates and private keys from, standard input by default. They must all be in \s-1PEM\s0 format. The order doesn't matter but one private key and its corresponding certificate should be present. If additional certificates are present they will also be included in the PKCS#12 file. .IP "\fB\-inkey filename\fR" 4 .IX Item "-inkey filename" file to read private key from. If not present then a private key must be present in the input file. .IP "\fB\-name friendlyname\fR" 4 .IX Item "-name friendlyname" This specifies the \*(L"friendly name\*(R" for the certificate and private key. This name is typically displayed in list boxes by software importing the file. .IP "\fB\-certfile filename\fR" 4 .IX Item "-certfile filename" A filename to read additional certificates from. .IP "\fB\-caname friendlyname\fR" 4 .IX Item "-caname friendlyname" This specifies the \*(L"friendly name\*(R" for other certificates. This option may be used multiple times to specify names for all certificates in the order they appear. Netscape ignores friendly names on other certificates whereas \s-1MSIE\s0 displays them. .IP "\fB\-pass arg\fR, \fB\-passout arg\fR" 4 .IX Item "-pass arg, -passout arg" the PKCS#12 file (i.e. output file) password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \&\fIopenssl\fR\|(1). .IP "\fB\-passin password\fR" 4 .IX Item "-passin password" pass phrase source to decrypt any input private keys with. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \&\fIopenssl\fR\|(1). .IP "\fB\-chain\fR" 4 .IX Item "-chain" if this option is present then an attempt is made to include the entire certificate chain of the user certificate. The standard \s-1CA\s0 store is used for this search. If the search fails it is considered a fatal error. .IP "\fB\-descert\fR" 4 .IX Item "-descert" encrypt the certificate using triple \s-1DES,\s0 this may render the PKCS#12 file unreadable by some \*(L"export grade\*(R" software. By default the private key is encrypted using triple \s-1DES\s0 and the certificate using 40 bit \s-1RC2.\s0 .IP "\fB\-keypbe alg\fR, \fB\-certpbe alg\fR" 4 .IX Item "-keypbe alg, -certpbe alg" these options allow the algorithm used to encrypt the private key and certificates to be selected. Any PKCS#5 v1.5 or PKCS#12 \s-1PBE\s0 algorithm name can be used (see \fB\s-1NOTES\s0\fR section for more information). If a cipher name (as output by the \fBlist-cipher-algorithms\fR command is specified then it is used with PKCS#5 v2.0. For interoperability reasons it is advisable to only use PKCS#12 algorithms. .IP "\fB\-keyex|\-keysig\fR" 4 .IX Item "-keyex|-keysig" specifies that the private key is to be used for key exchange or just signing. This option is only interpreted by \s-1MSIE\s0 and similar \s-1MS\s0 software. Normally \&\*(L"export grade\*(R" software will only allow 512 bit \s-1RSA\s0 keys to be used for encryption purposes but arbitrary length keys for signing. The \fB\-keysig\fR option marks the key for signing only. Signing only keys can be used for S/MIME signing, authenticode (ActiveX control signing) and \s-1SSL\s0 client authentication, however due to a bug only \s-1MSIE 5.0\s0 and later support the use of signing only keys for \s-1SSL\s0 client authentication. .IP "\fB\-macalg digest\fR" 4 .IX Item "-macalg digest" specify the \s-1MAC\s0 digest algorithm. If not included them \s-1SHA1\s0 will be used. .IP "\fB\-nomaciter\fR, \fB\-noiter\fR" 4 .IX Item "-nomaciter, -noiter" these options affect the iteration counts on the \s-1MAC\s0 and key algorithms. Unless you wish to produce files compatible with \s-1MSIE 4.0\s0 you should leave these options alone. .Sp To discourage attacks by using large dictionaries of common passwords the algorithm that derives keys from passwords can have an iteration count applied to it: this causes a certain part of the algorithm to be repeated and slows it down. The \s-1MAC\s0 is used to check the file integrity but since it will normally have the same password as the keys and certificates it could also be attacked. By default both \s-1MAC\s0 and encryption iteration counts are set to 2048, using these options the \s-1MAC\s0 and encryption iteration counts can be set to 1, since this reduces the file security you should not use these options unless you really have to. Most software supports both \s-1MAC\s0 and key iteration counts. \&\s-1MSIE 4.0\s0 doesn't support \s-1MAC\s0 iteration counts so it needs the \fB\-nomaciter\fR option. .IP "\fB\-maciter\fR" 4 .IX Item "-maciter" This option is included for compatibility with previous versions, it used to be needed to use \s-1MAC\s0 iterations counts but they are now used by default. .IP "\fB\-nomac\fR" 4 .IX Item "-nomac" don't attempt to provide the \s-1MAC\s0 integrity. .IP "\fB\-rand file(s)\fR" 4 .IX Item "-rand file(s)" a file or files containing random data used to seed the random number generator, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). Multiple files can be specified separated by a OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fB\-CAfile file\fR" 4 .IX Item "-CAfile file" \&\s-1CA\s0 storage as a file. .IP "\fB\-CApath dir\fR" 4 .IX Item "-CApath dir" \&\s-1CA\s0 storage as a directory. This directory must be a standard certificate directory: that is a hash of each subject name (using \fBx509 \-hash\fR) should be linked to each certificate. .IP "\fB\-CSP name\fR" 4 .IX Item "-CSP name" write \fBname\fR as a Microsoft \s-1CSP\s0 name. .SH "NOTES" .IX Header "NOTES" Although there are a large number of options most of them are very rarely used. For PKCS#12 file parsing only \fB\-in\fR and \fB\-out\fR need to be used for PKCS#12 file creation \fB\-export\fR and \fB\-name\fR are also used. .PP If none of the \fB\-clcerts\fR, \fB\-cacerts\fR or \fB\-nocerts\fR options are present then all certificates will be output in the order they appear in the input PKCS#12 files. There is no guarantee that the first certificate present is the one corresponding to the private key. Certain software which requires a private key and certificate and assumes the first certificate in the file is the one corresponding to the private key: this may not always be the case. Using the \fB\-clcerts\fR option will solve this problem by only outputting the certificate corresponding to the private key. If the \s-1CA\s0 certificates are required then they can be output to a separate file using the \fB\-nokeys \-cacerts\fR options to just output \s-1CA\s0 certificates. .PP The \fB\-keypbe\fR and \fB\-certpbe\fR algorithms allow the precise encryption algorithms for private keys and certificates to be specified. Normally the defaults are fine but occasionally software can't handle triple \s-1DES\s0 encrypted private keys, then the option \fB\-keypbe \s-1PBE\-SHA1\-RC2\-40\s0\fR can be used to reduce the private key encryption to 40 bit \s-1RC2. A\s0 complete description of all algorithms is contained in the \fBpkcs8\fR manual page. .SH "EXAMPLES" .IX Header "EXAMPLES" Parse a PKCS#12 file and output it to a file: .PP .Vb 1 \& openssl pkcs12 \-in file.p12 \-out file.pem .Ve .PP Output only client certificates to a file: .PP .Vb 1 \& openssl pkcs12 \-in file.p12 \-clcerts \-out file.pem .Ve .PP Don't encrypt the private key: .PP .Vb 1 \& openssl pkcs12 \-in file.p12 \-out file.pem \-nodes .Ve .PP Print some info about a PKCS#12 file: .PP .Vb 1 \& openssl pkcs12 \-in file.p12 \-info \-noout .Ve .PP Create a PKCS#12 file: .PP .Vb 1 \& openssl pkcs12 \-export \-in file.pem \-out file.p12 \-name "My Certificate" .Ve .PP Include some extra certificates: .PP .Vb 2 \& openssl pkcs12 \-export \-in file.pem \-out file.p12 \-name "My Certificate" \e \& \-certfile othercerts.pem .Ve .SH "BUGS" .IX Header "BUGS" Some would argue that the PKCS#12 standard is one big bug :\-) .PP Versions of OpenSSL before 0.9.6a had a bug in the PKCS#12 key generation routines. Under rare circumstances this could produce a PKCS#12 file encrypted with an invalid key. As a result some PKCS#12 files which triggered this bug from other implementations (\s-1MSIE\s0 or Netscape) could not be decrypted by OpenSSL and similarly OpenSSL could produce PKCS#12 files which could not be decrypted by other implementations. The chances of producing such a file are relatively small: less than 1 in 256. .PP A side effect of fixing this bug is that any old invalidly encrypted PKCS#12 files cannot no longer be parsed by the fixed version. Under such circumstances the \fBpkcs12\fR utility will report that the \s-1MAC\s0 is \s-1OK\s0 but fail with a decryption error when extracting private keys. .PP This problem can be resolved by extracting the private keys and certificates from the PKCS#12 file using an older version of OpenSSL and recreating the PKCS#12 file from the keys and certificates using a newer version of OpenSSL. For example: .PP .Vb 2 \& old\-openssl \-in bad.p12 \-out keycerts.pem \& openssl \-in keycerts.pem \-export \-name "My PKCS#12 file" \-out fixed.p12 .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIpkcs8\fR\|(1) man1/asn1parse.1ssl000064400000023602147210250140010100 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ASN1PARSE 1" .TH ASN1PARSE 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" asn1parse \- ASN.1 parsing tool .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBasn1parse\fR [\fB\-inform PEM|DER\fR] [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-noout\fR] [\fB\-offset number\fR] [\fB\-length number\fR] [\fB\-i\fR] [\fB\-oid filename\fR] [\fB\-dump\fR] [\fB\-dlimit num\fR] [\fB\-strparse offset\fR] [\fB\-genstr string\fR] [\fB\-genconf file\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBasn1parse\fR command is a diagnostic utility that can parse \s-1ASN.1\s0 structures. It can also be used to extract data from \s-1ASN.1\s0 formatted data. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-inform\fR \fBDER|PEM\fR" 4 .IX Item "-inform DER|PEM" the input format. \fB\s-1DER\s0\fR is binary format and \fB\s-1PEM\s0\fR (the default) is base64 encoded. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" the input file, default is standard input .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" output file to place the \s-1DER\s0 encoded data into. If this option is not present then no data will be output. This is most useful when combined with the \fB\-strparse\fR option. .IP "\fB\-noout\fR" 4 .IX Item "-noout" don't output the parsed version of the input file. .IP "\fB\-offset number\fR" 4 .IX Item "-offset number" starting offset to begin parsing, default is start of file. .IP "\fB\-length number\fR" 4 .IX Item "-length number" number of bytes to parse, default is until end of file. .IP "\fB\-i\fR" 4 .IX Item "-i" indents the output according to the \*(L"depth\*(R" of the structures. .IP "\fB\-oid filename\fR" 4 .IX Item "-oid filename" a file containing additional \s-1OBJECT\s0 IDENTIFIERs (OIDs). The format of this file is described in the \s-1NOTES\s0 section below. .IP "\fB\-dump\fR" 4 .IX Item "-dump" dump unknown data in hex format. .IP "\fB\-dlimit num\fR" 4 .IX Item "-dlimit num" like \fB\-dump\fR, but only the first \fBnum\fR bytes are output. .IP "\fB\-strparse offset\fR" 4 .IX Item "-strparse offset" parse the contents octets of the \s-1ASN.1\s0 object starting at \fBoffset\fR. This option can be used multiple times to \*(L"drill down\*(R" into a nested structure. .IP "\fB\-genstr string\fR, \fB\-genconf file\fR" 4 .IX Item "-genstr string, -genconf file" generate encoded data based on \fBstring\fR, \fBfile\fR or both using \&\fIASN1_generate_nconf\fR\|(3) format. If \fBfile\fR only is present then the string is obtained from the default section using the name \&\fBasn1\fR. The encoded data is passed through the \s-1ASN1\s0 parser and printed out as though it came from a file, the contents can thus be examined and written to a file using the \fBout\fR option. .SS "\s-1OUTPUT\s0" .IX Subsection "OUTPUT" The output will typically contain lines like this: .PP .Vb 1 \& 0:d=0 hl=4 l= 681 cons: SEQUENCE .Ve .PP \&..... .PP .Vb 10 \& 229:d=3 hl=3 l= 141 prim: BIT STRING \& 373:d=2 hl=3 l= 162 cons: cont [ 3 ] \& 376:d=3 hl=3 l= 159 cons: SEQUENCE \& 379:d=4 hl=2 l= 29 cons: SEQUENCE \& 381:d=5 hl=2 l= 3 prim: OBJECT :X509v3 Subject Key Identifier \& 386:d=5 hl=2 l= 22 prim: OCTET STRING \& 410:d=4 hl=2 l= 112 cons: SEQUENCE \& 412:d=5 hl=2 l= 3 prim: OBJECT :X509v3 Authority Key Identifier \& 417:d=5 hl=2 l= 105 prim: OCTET STRING \& 524:d=4 hl=2 l= 12 cons: SEQUENCE .Ve .PP \&..... .PP This example is part of a self signed certificate. Each line starts with the offset in decimal. \fBd=XX\fR specifies the current depth. The depth is increased within the scope of any \s-1SET\s0 or \s-1SEQUENCE. \s0\fBhl=XX\fR gives the header length (tag and length octets) of the current type. \fBl=XX\fR gives the length of the contents octets. .PP The \fB\-i\fR option can be used to make the output more readable. .PP Some knowledge of the \s-1ASN.1\s0 structure is needed to interpret the output. .PP In this example the \s-1BIT STRING\s0 at offset 229 is the certificate public key. The contents octets of this will contain the public key information. This can be examined using the option \fB\-strparse 229\fR to yield: .PP .Vb 3 \& 0:d=0 hl=3 l= 137 cons: SEQUENCE \& 3:d=1 hl=3 l= 129 prim: INTEGER :E5D21E1F5C8D208EA7A2166C7FAF9F6BDF2059669C60876DDB70840F1A5AAFA59699FE471F379F1DD6A487E7D5409AB6A88D4A9746E24B91D8CF55DB3521015460C8EDE44EE8A4189F7A7BE77D6CD3A9AF2696F486855CF58BF0EDF2B4068058C7A947F52548DDF7E15E96B385F86422BEA9064A3EE9E1158A56E4A6F47E5897 \& 135:d=1 hl=2 l= 3 prim: INTEGER :010001 .Ve .SH "NOTES" .IX Header "NOTES" If an \s-1OID\s0 is not part of OpenSSL's internal table it will be represented in numerical form (for example 1.2.3.4). The file passed to the \fB\-oid\fR option allows additional OIDs to be included. Each line consists of three columns, the first column is the \s-1OID\s0 in numerical format and should be followed by white space. The second column is the \*(L"short name\*(R" which is a single word followed by white space. The final column is the rest of the line and is the \&\*(L"long name\*(R". \fBasn1parse\fR displays the long name. Example: .PP \&\f(CW\*(C`1.2.3.4 shortName A long name\*(C'\fR .SH "EXAMPLES" .IX Header "EXAMPLES" Parse a file: .PP .Vb 1 \& openssl asn1parse \-in file.pem .Ve .PP Parse a \s-1DER\s0 file: .PP .Vb 1 \& openssl asn1parse \-inform DER \-in file.der .Ve .PP Generate a simple UTF8String: .PP .Vb 1 \& openssl asn1parse \-genstr \*(AqUTF8:Hello World\*(Aq .Ve .PP Generate and write out a UTF8String, don't print parsed output: .PP .Vb 1 \& openssl asn1parse \-genstr \*(AqUTF8:Hello World\*(Aq \-noout \-out utf8.der .Ve .PP Generate using a config file: .PP .Vb 1 \& openssl asn1parse \-genconf asn1.cnf \-noout \-out asn1.der .Ve .PP Example config file: .PP .Vb 1 \& asn1=SEQUENCE:seq_sect \& \& [seq_sect] \& \& field1=BOOL:TRUE \& field2=EXP:0, UTF8:some random string .Ve .SH "BUGS" .IX Header "BUGS" There should be options to change the format of output lines. The output of some \&\s-1ASN.1\s0 types is not well handled (if at all). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIASN1_generate_nconf\fR\|(3) man1/spkac.1ssl000064400000017640147210250140007311 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SPKAC 1" .TH SPKAC 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" spkac \- SPKAC printing and generating utility .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBspkac\fR [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-key keyfile\fR] [\fB\-passin arg\fR] [\fB\-challenge string\fR] [\fB\-pubkey\fR] [\fB\-spkac spkacname\fR] [\fB\-spksect section\fR] [\fB\-noout\fR] [\fB\-verify\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBspkac\fR command processes Netscape signed public key and challenge (\s-1SPKAC\s0) files. It can print out their contents, verify the signature and produce its own SPKACs from a supplied private key. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read from or standard input if this option is not specified. Ignored if the \fB\-key\fR option is used. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" specifies the output filename to write to or standard output by default. .IP "\fB\-key keyfile\fR" 4 .IX Item "-key keyfile" create an \s-1SPKAC\s0 file using the private key in \fBkeyfile\fR. The \&\fB\-in\fR, \fB\-noout\fR, \fB\-spksect\fR and \fB\-verify\fR options are ignored if present. .IP "\fB\-passin password\fR" 4 .IX Item "-passin password" the input file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-challenge string\fR" 4 .IX Item "-challenge string" specifies the challenge string if an \s-1SPKAC\s0 is being created. .IP "\fB\-spkac spkacname\fR" 4 .IX Item "-spkac spkacname" allows an alternative name form the variable containing the \&\s-1SPKAC.\s0 The default is \*(L"\s-1SPKAC\*(R".\s0 This option affects both generated and input \s-1SPKAC\s0 files. .IP "\fB\-spksect section\fR" 4 .IX Item "-spksect section" allows an alternative name form the section containing the \&\s-1SPKAC.\s0 The default is the default section. .IP "\fB\-noout\fR" 4 .IX Item "-noout" don't output the text version of the \s-1SPKAC \s0(not used if an \&\s-1SPKAC\s0 is being created). .IP "\fB\-pubkey\fR" 4 .IX Item "-pubkey" output the public key of an \s-1SPKAC \s0(not used if an \s-1SPKAC\s0 is being created). .IP "\fB\-verify\fR" 4 .IX Item "-verify" verifies the digital signature on the supplied \s-1SPKAC.\s0 .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBspkac\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .SH "EXAMPLES" .IX Header "EXAMPLES" Print out the contents of an \s-1SPKAC:\s0 .PP .Vb 1 \& openssl spkac \-in spkac.cnf .Ve .PP Verify the signature of an \s-1SPKAC:\s0 .PP .Vb 1 \& openssl spkac \-in spkac.cnf \-noout \-verify .Ve .PP Create an \s-1SPKAC\s0 using the challenge string \*(L"hello\*(R": .PP .Vb 1 \& openssl spkac \-key key.pem \-challenge hello \-out spkac.cnf .Ve .PP Example of an \s-1SPKAC, \s0(long lines split up for clarity): .PP .Vb 5 \& SPKAC=MIG5MGUwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA1cCoq2Wa3Ixs47uI7F\e \& PVwHVIPDx5yso105Y6zpozam135a8R0CpoRvkkigIyXfcCjiVi5oWk+6FfPaD03u\e \& PFoQIDAQABFgVoZWxsbzANBgkqhkiG9w0BAQQFAANBAFpQtY/FojdwkJh1bEIYuc\e \& 2EeM2KHTWPEepWYeawvHD0gQ3DngSC75YCWnnDdq+NQ3F+X4deMx9AaEglZtULwV\e \& 4= .Ve .SH "NOTES" .IX Header "NOTES" A created \s-1SPKAC\s0 with suitable \s-1DN\s0 components appended can be fed into the \fBca\fR utility. .PP SPKACs are typically generated by Netscape when a form is submitted containing the \fB\s-1KEYGEN\s0\fR tag as part of the certificate enrollment process. .PP The challenge string permits a primitive form of proof of possession of private key. By checking the \s-1SPKAC\s0 signature and a random challenge string some guarantee is given that the user knows the private key corresponding to the public key being certified. This is important in some applications. Without this it is possible for a previous \s-1SPKAC\s0 to be used in a \*(L"replay attack\*(R". .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIca\fR\|(1) man1/dsa.1ssl000064400000022262147210250140006753 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DSA 1" .TH DSA 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" dsa \- DSA key processing .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBdsa\fR [\fB\-inform PEM|DER\fR] [\fB\-outform PEM|DER\fR] [\fB\-in filename\fR] [\fB\-passin arg\fR] [\fB\-out filename\fR] [\fB\-passout arg\fR] [\fB\-aes128\fR] [\fB\-aes192\fR] [\fB\-aes256\fR] [\fB\-camellia128\fR] [\fB\-camellia192\fR] [\fB\-camellia256\fR] [\fB\-des\fR] [\fB\-des3\fR] [\fB\-idea\fR] [\fB\-text\fR] [\fB\-noout\fR] [\fB\-modulus\fR] [\fB\-pubin\fR] [\fB\-pubout\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBdsa\fR command processes \s-1DSA\s0 keys. They can be converted between various forms and their components printed out. \fBNote\fR This command uses the traditional SSLeay compatible format for private key encryption: newer applications should use the more secure PKCS#8 format using the \fBpkcs8\fR .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-inform DER|PEM\fR" 4 .IX Item "-inform DER|PEM" This specifies the input format. The \fB\s-1DER\s0\fR option with a private key uses an \s-1ASN1 DER\s0 encoded form of an \s-1ASN.1 SEQUENCE\s0 consisting of the values of version (currently zero), p, q, g, the public and private key components respectively as \s-1ASN.1\s0 INTEGERs. When used with a public key it uses a SubjectPublicKeyInfo structure: it is an error if the key is not \s-1DSA.\s0 .Sp The \fB\s-1PEM\s0\fR form is the default format: it consists of the \fB\s-1DER\s0\fR format base64 encoded with additional header and footer lines. In the case of a private key PKCS#8 format is also accepted. .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read a key from or standard input if this option is not specified. If the key is encrypted a pass phrase will be prompted for. .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the input file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" This specifies the output filename to write a key to or standard output by is not specified. If any encryption options are set then a pass phrase will be prompted for. The output filename should \fBnot\fR be the same as the input filename. .IP "\fB\-passout arg\fR" 4 .IX Item "-passout arg" the output file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-aes128|\-aes192|\-aes256|\-camellia128|\-camellia192|\-camellia256|\-des|\-des3|\-idea\fR" 4 .IX Item "-aes128|-aes192|-aes256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea" These options encrypt the private key with the specified cipher before outputting it. A pass phrase is prompted for. If none of these options is specified the key is written in plain text. This means that using the \fBdsa\fR utility to read in an encrypted key with no encryption option can be used to remove the pass phrase from a key, or by setting the encryption options it can be use to add or change the pass phrase. These options can only be used with \s-1PEM\s0 format output files. .IP "\fB\-text\fR" 4 .IX Item "-text" prints out the public, private key components and parameters. .IP "\fB\-noout\fR" 4 .IX Item "-noout" this option prevents output of the encoded version of the key. .IP "\fB\-modulus\fR" 4 .IX Item "-modulus" this option prints out the value of the public key component of the key. .IP "\fB\-pubin\fR" 4 .IX Item "-pubin" by default a private key is read from the input file: with this option a public key is read instead. .IP "\fB\-pubout\fR" 4 .IX Item "-pubout" by default a private key is output. With this option a public key will be output instead. This option is automatically set if the input is a public key. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBdsa\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .SH "NOTES" .IX Header "NOTES" The \s-1PEM\s0 private key format uses the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN DSA PRIVATE KEY\-\-\-\-\- \& \-\-\-\-\-END DSA PRIVATE KEY\-\-\-\-\- .Ve .PP The \s-1PEM\s0 public key format uses the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN PUBLIC KEY\-\-\-\-\- \& \-\-\-\-\-END PUBLIC KEY\-\-\-\-\- .Ve .SH "EXAMPLES" .IX Header "EXAMPLES" To remove the pass phrase on a \s-1DSA\s0 private key: .PP .Vb 1 \& openssl dsa \-in key.pem \-out keyout.pem .Ve .PP To encrypt a private key using triple \s-1DES:\s0 .PP .Vb 1 \& openssl dsa \-in key.pem \-des3 \-out keyout.pem .Ve .PP To convert a private key from \s-1PEM\s0 to \s-1DER\s0 format: .PP .Vb 1 \& openssl dsa \-in key.pem \-outform DER \-out keyout.der .Ve .PP To print out the components of a private key to standard output: .PP .Vb 1 \& openssl dsa \-in key.pem \-text \-noout .Ve .PP To just output the public part of a private key: .PP .Vb 1 \& openssl dsa \-in key.pem \-pubout \-out pubkey.pem .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdsaparam\fR\|(1), \fIgendsa\fR\|(1), \fIrsa\fR\|(1), \&\fIgenrsa\fR\|(1) man1/genpkey.1ssl000064400000026220147210250140007644 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "GENPKEY 1" .TH GENPKEY 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" genpkey \- generate a private key .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBgenpkey\fR [\fB\-out filename\fR] [\fB\-outform PEM|DER\fR] [\fB\-pass arg\fR] [\fB\-cipher\fR] [\fB\-engine id\fR] [\fB\-paramfile file\fR] [\fB\-algorithm alg\fR] [\fB\-pkeyopt opt:value\fR] [\fB\-genparam\fR] [\fB\-text\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBgenpkey\fR command generates a private key. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" the output filename. If this argument is not specified then standard output is used. .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the output format \s-1DER\s0 or \s-1PEM.\s0 .IP "\fB\-pass arg\fR" 4 .IX Item "-pass arg" the output file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-cipher\fR" 4 .IX Item "-cipher" This option encrypts the private key with the supplied cipher. Any algorithm name accepted by \fIEVP_get_cipherbyname()\fR is acceptable such as \fBdes3\fR. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBgenpkey\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. If used this option should precede all other options. .IP "\fB\-algorithm alg\fR" 4 .IX Item "-algorithm alg" public key algorithm to use such as \s-1RSA, DSA\s0 or \s-1DH.\s0 If used this option must precede any \fB\-pkeyopt\fR options. The options \fB\-paramfile\fR and \fB\-algorithm\fR are mutually exclusive. .IP "\fB\-pkeyopt opt:value\fR" 4 .IX Item "-pkeyopt opt:value" set the public key algorithm option \fBopt\fR to \fBvalue\fR. The precise set of options supported depends on the public key algorithm used and its implementation. See \fB\s-1KEY GENERATION OPTIONS\s0\fR below for more details. .IP "\fB\-genparam\fR" 4 .IX Item "-genparam" generate a set of parameters instead of a private key. If used this option must precede and \fB\-algorithm\fR, \fB\-paramfile\fR or \fB\-pkeyopt\fR options. .IP "\fB\-paramfile filename\fR" 4 .IX Item "-paramfile filename" Some public key algorithms generate a private key based on a set of parameters. They can be supplied using this option. If this option is used the public key algorithm used is determined by the parameters. If used this option must precede and \fB\-pkeyopt\fR options. The options \fB\-paramfile\fR and \fB\-algorithm\fR are mutually exclusive. .IP "\fB\-text\fR" 4 .IX Item "-text" Print an (unencrypted) text representation of private and public keys and parameters along with the \s-1PEM\s0 or \s-1DER\s0 structure. .SH "KEY GENERATION OPTIONS" .IX Header "KEY GENERATION OPTIONS" The options supported by each algorith and indeed each implementation of an algorithm can vary. The options for the OpenSSL implementations are detailed below. .SH "RSA KEY GENERATION OPTIONS" .IX Header "RSA KEY GENERATION OPTIONS" .IP "\fBrsa_keygen_bits:numbits\fR" 4 .IX Item "rsa_keygen_bits:numbits" The number of bits in the generated key. If not specified 1024 is used. .IP "\fBrsa_keygen_pubexp:value\fR" 4 .IX Item "rsa_keygen_pubexp:value" The \s-1RSA\s0 public exponent value. This can be a large decimal or hexadecimal value if preceded by \fB0x\fR. Default value is 65537. .SH "DSA PARAMETER GENERATION OPTIONS" .IX Header "DSA PARAMETER GENERATION OPTIONS" .IP "\fBdsa_paramgen_bits:numbits\fR" 4 .IX Item "dsa_paramgen_bits:numbits" The number of bits in the generated parameters. If not specified 1024 is used. .SH "DH PARAMETER GENERATION OPTIONS" .IX Header "DH PARAMETER GENERATION OPTIONS" .IP "\fBdh_paramgen_prime_len:numbits\fR" 4 .IX Item "dh_paramgen_prime_len:numbits" The number of bits in the prime parameter \fBp\fR. .IP "\fBdh_paramgen_generator:value\fR" 4 .IX Item "dh_paramgen_generator:value" The value to use for the generator \fBg\fR. .IP "\fBdh_rfc5114:num\fR" 4 .IX Item "dh_rfc5114:num" If this option is set then the appropriate \s-1RFC5114\s0 parameters are used instead of generating new parameters. The value \fBnum\fR can take the values 1, 2 or 3 corresponding to \s-1RFC5114 DH\s0 parameters consisting of 1024 bit group with 160 bit subgroup, 2048 bit group with 224 bit subgroup and 2048 bit group with 256 bit subgroup as mentioned in \s-1RFC5114\s0 sections 2.1, 2.2 and 2.3 respectively. .SH "EC PARAMETER GENERATION OPTIONS" .IX Header "EC PARAMETER GENERATION OPTIONS" .IP "\fBec_paramgen_curve:curve\fR" 4 .IX Item "ec_paramgen_curve:curve" the \s-1EC\s0 curve to use. .SH "GOST2001 KEY GENERATION AND PARAMETER OPTIONS" .IX Header "GOST2001 KEY GENERATION AND PARAMETER OPTIONS" Gost 2001 support is not enabled by default. To enable this algorithm, one should load the ccgost engine in the OpenSSL configuration file. See \s-1README\s0.gost file in the engines/ccgost directiry of the source distribution for more details. .PP Use of a parameter file for the \s-1GOST R 34.10\s0 algorithm is optional. Parameters can be specified during key generation directly as well as during generation of parameter file. .IP "\fBparamset:name\fR" 4 .IX Item "paramset:name" Specifies \s-1GOST R 34.10\-2001\s0 parameter set according to \s-1RFC 4357.\s0 Parameter set can be specified using abbreviated name, object short name or numeric \s-1OID.\s0 Following parameter sets are supported: .Sp .Vb 7 \& paramset OID Usage \& A 1.2.643.2.2.35.1 Signature \& B 1.2.643.2.2.35.2 Signature \& C 1.2.643.2.2.35.3 Signature \& XA 1.2.643.2.2.36.0 Key exchange \& XB 1.2.643.2.2.36.1 Key exchange \& test 1.2.643.2.2.35.0 Test purposes .Ve .SH "NOTES" .IX Header "NOTES" The use of the genpkey program is encouraged over the algorithm specific utilities because additional algorithm options and \s-1ENGINE\s0 provided algorithms can be used. .SH "EXAMPLES" .IX Header "EXAMPLES" Generate an \s-1RSA\s0 private key using default parameters: .PP .Vb 1 \& openssl genpkey \-algorithm RSA \-out key.pem .Ve .PP Encrypt output private key using 128 bit \s-1AES\s0 and the passphrase \*(L"hello\*(R": .PP .Vb 1 \& openssl genpkey \-algorithm RSA \-out key.pem \-aes\-128\-cbc \-pass pass:hello .Ve .PP Generate a 2048 bit \s-1RSA\s0 key using 3 as the public exponent: .PP .Vb 2 \& openssl genpkey \-algorithm RSA \-out key.pem \-pkeyopt rsa_keygen_bits:2048 \e \& \-pkeyopt rsa_keygen_pubexp:3 .Ve .PP Generate 1024 bit \s-1DSA\s0 parameters: .PP .Vb 2 \& openssl genpkey \-genparam \-algorithm DSA \-out dsap.pem \e \& \-pkeyopt dsa_paramgen_bits:1024 .Ve .PP Generate \s-1DSA\s0 key from parameters: .PP .Vb 1 \& openssl genpkey \-paramfile dsap.pem \-out dsakey.pem .Ve .PP Generate 1024 bit \s-1DH\s0 parameters: .PP .Vb 2 \& openssl genpkey \-genparam \-algorithm DH \-out dhp.pem \e \& \-pkeyopt dh_paramgen_prime_len:1024 .Ve .PP Output \s-1RFC5114 2048\s0 bit \s-1DH\s0 parameters with 224 bit subgroup: .PP .Vb 1 \& openssl genpkey \-genparam \-algorithm DH \-out dhp.pem \-pkeyopt dh_rfc5114:2 .Ve .PP Generate \s-1DH\s0 key from parameters: .PP .Vb 1 \& openssl genpkey \-paramfile dhp.pem \-out dhkey.pem .Ve man1/CA.pl.1ssl000064400000024167147210250140007107 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CA.PL 1" .TH CA.PL 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" CA.pl \- friendlier interface for OpenSSL certificate programs .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fB\s-1CA\s0.pl\fR [\fB\-?\fR] [\fB\-h\fR] [\fB\-help\fR] [\fB\-newcert\fR] [\fB\-newreq\fR] [\fB\-newreq\-nodes\fR] [\fB\-newca\fR] [\fB\-xsign\fR] [\fB\-sign\fR] [\fB\-signreq\fR] [\fB\-signcert\fR] [\fB\-verify\fR] [\fBfiles\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fB\s-1CA\s0.pl\fR script is a perl script that supplies the relevant command line arguments to the \fBopenssl\fR command for some common certificate operations. It is intended to simplify the process of certificate creation and management by the use of some simple options. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB?\fR, \fB\-h\fR, \fB\-help\fR" 4 .IX Item "?, -h, -help" prints a usage message. .IP "\fB\-newcert\fR" 4 .IX Item "-newcert" creates a new self signed certificate. The private key is written to the file \&\*(L"newkey.pem\*(R" and the request written to the file \*(L"newreq.pem\*(R". .IP "\fB\-newreq\fR" 4 .IX Item "-newreq" creates a new certificate request. The private key is written to the file \&\*(L"newkey.pem\*(R" and the request written to the file \*(L"newreq.pem\*(R". .IP "\fB\-newreq\-nodes\fR" 4 .IX Item "-newreq-nodes" is like \fB\-newreq\fR except that the private key will not be encrypted. .IP "\fB\-newca\fR" 4 .IX Item "-newca" creates a new \s-1CA\s0 hierarchy for use with the \fBca\fR program (or the \fB\-signcert\fR and \fB\-xsign\fR options). The user is prompted to enter the filename of the \s-1CA\s0 certificates (which should also contain the private key) or by hitting \s-1ENTER\s0 details of the \s-1CA\s0 will be prompted for. The relevant files and directories are created in a directory called \*(L"demoCA\*(R" in the current directory. .IP "\fB\-pkcs12\fR" 4 .IX Item "-pkcs12" create a PKCS#12 file containing the user certificate, private key and \s-1CA\s0 certificate. It expects the user certificate and private key to be in the file \*(L"newcert.pem\*(R" and the \s-1CA\s0 certificate to be in the file demoCA/cacert.pem, it creates a file \*(L"newcert.p12\*(R". This command can thus be called after the \&\fB\-sign\fR option. The PKCS#12 file can be imported directly into a browser. If there is an additional argument on the command line it will be used as the \&\*(L"friendly name\*(R" for the certificate (which is typically displayed in the browser list box), otherwise the name \*(L"My Certificate\*(R" is used. .IP "\fB\-sign\fR, \fB\-signreq\fR, \fB\-xsign\fR" 4 .IX Item "-sign, -signreq, -xsign" calls the \fBca\fR program to sign a certificate request. It expects the request to be in the file \*(L"newreq.pem\*(R". The new certificate is written to the file \&\*(L"newcert.pem\*(R" except in the case of the \fB\-xsign\fR option when it is written to standard output. .IP "\fB\-signCA\fR" 4 .IX Item "-signCA" this option is the same as the \fB\-signreq\fR option except it uses the configuration file section \fBv3_ca\fR and so makes the signed request a valid \s-1CA\s0 certificate. This is useful when creating intermediate \s-1CA\s0 from a root \s-1CA.\s0 .IP "\fB\-signcert\fR" 4 .IX Item "-signcert" this option is the same as \fB\-sign\fR except it expects a self signed certificate to be present in the file \*(L"newreq.pem\*(R". .IP "\fB\-verify\fR" 4 .IX Item "-verify" verifies certificates against the \s-1CA\s0 certificate for \*(L"demoCA\*(R". If no certificates are specified on the command line it tries to verify the file \*(L"newcert.pem\*(R". .IP "\fBfiles\fR" 4 .IX Item "files" one or more optional certificate file names for use with the \fB\-verify\fR command. .SH "EXAMPLES" .IX Header "EXAMPLES" Create a \s-1CA\s0 hierarchy: .PP .Vb 1 \& CA.pl \-newca .Ve .PP Complete certificate creation example: create a \s-1CA,\s0 create a request, sign the request and finally create a PKCS#12 file containing it. .PP .Vb 4 \& CA.pl \-newca \& CA.pl \-newreq \& CA.pl \-signreq \& CA.pl \-pkcs12 "My Test Certificate" .Ve .SH "DSA CERTIFICATES" .IX Header "DSA CERTIFICATES" Although the \fB\s-1CA\s0.pl\fR creates \s-1RSA\s0 CAs and requests it is still possible to use it with \s-1DSA\s0 certificates and requests using the \fIreq\fR\|(1) command directly. The following example shows the steps that would typically be taken. .PP Create some \s-1DSA\s0 parameters: .PP .Vb 1 \& openssl dsaparam \-out dsap.pem 1024 .Ve .PP Create a \s-1DSA CA\s0 certificate and private key: .PP .Vb 1 \& openssl req \-x509 \-newkey dsa:dsap.pem \-keyout cacert.pem \-out cacert.pem .Ve .PP Create the \s-1CA\s0 directories and files: .PP .Vb 1 \& CA.pl \-newca .Ve .PP enter cacert.pem when prompted for the \s-1CA\s0 file name. .PP Create a \s-1DSA\s0 certificate request and private key (a different set of parameters can optionally be created first): .PP .Vb 1 \& openssl req \-out newreq.pem \-newkey dsa:dsap.pem .Ve .PP Sign the request: .PP .Vb 1 \& CA.pl \-signreq .Ve .SH "NOTES" .IX Header "NOTES" Most of the filenames mentioned can be modified by editing the \fB\s-1CA\s0.pl\fR script. .PP If the demoCA directory already exists then the \fB\-newca\fR command will not overwrite it and will do nothing. This can happen if a previous call using the \fB\-newca\fR option terminated abnormally. To get the correct behaviour delete the demoCA directory if it already exists. .PP Under some environments it may not be possible to run the \fB\s-1CA\s0.pl\fR script directly (for example Win32) and the default configuration file location may be wrong. In this case the command: .PP .Vb 1 \& perl \-S CA.pl .Ve .PP can be used and the \fB\s-1OPENSSL_CONF\s0\fR environment variable changed to point to the correct path of the configuration file \*(L"openssl.cnf\*(R". .PP The script is intended as a simple front end for the \fBopenssl\fR program for use by a beginner. Its behaviour isn't always what is wanted. For more control over the behaviour of the certificate commands call the \fBopenssl\fR command directly. .SH "ENVIRONMENT VARIABLES" .IX Header "ENVIRONMENT VARIABLES" The variable \fB\s-1OPENSSL_CONF\s0\fR if defined allows an alternative configuration file location to be specified, it should contain the full path to the configuration file, not just its directory. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIx509\fR\|(1), \fIca\fR\|(1), \fIreq\fR\|(1), \fIpkcs12\fR\|(1), \&\fIconfig\fR\|(5) man1/crl.1ssl000064400000016055147210250140006767 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CRL 1" .TH CRL 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" crl \- CRL utility .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBcrl\fR [\fB\-inform PEM|DER\fR] [\fB\-outform PEM|DER\fR] [\fB\-text\fR] [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-nameopt option\fR] [\fB\-noout\fR] [\fB\-hash\fR] [\fB\-issuer\fR] [\fB\-lastupdate\fR] [\fB\-nextupdate\fR] [\fB\-CAfile file\fR] [\fB\-CApath dir\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBcrl\fR command processes \s-1CRL\s0 files in \s-1DER\s0 or \s-1PEM\s0 format. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-inform DER|PEM\fR" 4 .IX Item "-inform DER|PEM" This specifies the input format. \fB\s-1DER\s0\fR format is \s-1DER\s0 encoded \s-1CRL\s0 structure. \fB\s-1PEM\s0\fR (the default) is a base64 encoded version of the \s-1DER\s0 form with header and footer lines. .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read from or standard input if this option is not specified. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" specifies the output filename to write to or standard output by default. .IP "\fB\-text\fR" 4 .IX Item "-text" print out the \s-1CRL\s0 in text form. .IP "\fB\-nameopt option\fR" 4 .IX Item "-nameopt option" option which determines how the subject or issuer names are displayed. See the description of \fB\-nameopt\fR in \fIx509\fR\|(1). .IP "\fB\-noout\fR" 4 .IX Item "-noout" don't output the encoded version of the \s-1CRL.\s0 .IP "\fB\-hash\fR" 4 .IX Item "-hash" output a hash of the issuer name. This can be use to lookup CRLs in a directory by issuer name. .IP "\fB\-hash_old\fR" 4 .IX Item "-hash_old" outputs the \*(L"hash\*(R" of the \s-1CRL\s0 issuer name using the older algorithm as used by OpenSSL versions before 1.0.0. .IP "\fB\-issuer\fR" 4 .IX Item "-issuer" output the issuer name. .IP "\fB\-lastupdate\fR" 4 .IX Item "-lastupdate" output the lastUpdate field. .IP "\fB\-nextupdate\fR" 4 .IX Item "-nextupdate" output the nextUpdate field. .IP "\fB\-CAfile file\fR" 4 .IX Item "-CAfile file" verify the signature on a \s-1CRL\s0 by looking up the issuing certificate in \&\fBfile\fR .IP "\fB\-CApath dir\fR" 4 .IX Item "-CApath dir" verify the signature on a \s-1CRL\s0 by looking up the issuing certificate in \&\fBdir\fR. This directory must be a standard certificate directory: that is a hash of each subject name (using \fBx509 \-hash\fR) should be linked to each certificate. .SH "NOTES" .IX Header "NOTES" The \s-1PEM CRL\s0 format uses the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN X509 CRL\-\-\-\-\- \& \-\-\-\-\-END X509 CRL\-\-\-\-\- .Ve .SH "EXAMPLES" .IX Header "EXAMPLES" Convert a \s-1CRL\s0 file from \s-1PEM\s0 to \s-1DER:\s0 .PP .Vb 1 \& openssl crl \-in crl.pem \-outform DER \-out crl.der .Ve .PP Output the text form of a \s-1DER\s0 encoded certificate: .PP .Vb 1 \& openssl crl \-in crl.der \-text \-noout .Ve .SH "BUGS" .IX Header "BUGS" Ideally it should be possible to create a \s-1CRL\s0 using appropriate options and files too. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIcrl2pkcs7\fR\|(1), \fIca\fR\|(1), \fIx509\fR\|(1) man1/pkcs7.1ssl000064400000015244147210250140007235 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PKCS7 1" .TH PKCS7 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" pkcs7 \- PKCS#7 utility .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBpkcs7\fR [\fB\-inform PEM|DER\fR] [\fB\-outform PEM|DER\fR] [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-print_certs\fR] [\fB\-text\fR] [\fB\-noout\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBpkcs7\fR command processes PKCS#7 files in \s-1DER\s0 or \s-1PEM\s0 format. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-inform DER|PEM\fR" 4 .IX Item "-inform DER|PEM" This specifies the input format. \fB\s-1DER\s0\fR format is \s-1DER\s0 encoded PKCS#7 v1.5 structure.\fB\s-1PEM\s0\fR (the default) is a base64 encoded version of the \s-1DER\s0 form with header and footer lines. .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read from or standard input if this option is not specified. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" specifies the output filename to write to or standard output by default. .IP "\fB\-print_certs\fR" 4 .IX Item "-print_certs" prints out any certificates or CRLs contained in the file. They are preceded by their subject and issuer names in one line format. .IP "\fB\-text\fR" 4 .IX Item "-text" prints out certificates details in full rather than just subject and issuer names. .IP "\fB\-noout\fR" 4 .IX Item "-noout" don't output the encoded version of the PKCS#7 structure (or certificates is \fB\-print_certs\fR is set). .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBpkcs7\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .SH "EXAMPLES" .IX Header "EXAMPLES" Convert a PKCS#7 file from \s-1PEM\s0 to \s-1DER:\s0 .PP .Vb 1 \& openssl pkcs7 \-in file.pem \-outform DER \-out file.der .Ve .PP Output all certificates in a file: .PP .Vb 1 \& openssl pkcs7 \-in file.pem \-print_certs \-out certs.pem .Ve .SH "NOTES" .IX Header "NOTES" The \s-1PEM\s0 PKCS#7 format uses the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN PKCS7\-\-\-\-\- \& \-\-\-\-\-END PKCS7\-\-\-\-\- .Ve .PP For compatibility with some CAs it will also accept: .PP .Vb 2 \& \-\-\-\-\-BEGIN CERTIFICATE\-\-\-\-\- \& \-\-\-\-\-END CERTIFICATE\-\-\-\-\- .Ve .SH "RESTRICTIONS" .IX Header "RESTRICTIONS" There is no option to print out all the fields of a PKCS#7 file. .PP This PKCS#7 routines only understand PKCS#7 v 1.5 as specified in \s-1RFC2315\s0 they cannot currently parse, for example, the new \s-1CMS\s0 as described in \s-1RFC2630.\s0 .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIcrl2pkcs7\fR\|(1) man1/smime.1ssl000064400000051652147210250140007323 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SMIME 1" .TH SMIME 1 "2017-06-30" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" smime \- S/MIME utility .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBsmime\fR [\fB\-encrypt\fR] [\fB\-decrypt\fR] [\fB\-sign\fR] [\fB\-resign\fR] [\fB\-verify\fR] [\fB\-pk7out\fR] [\fB\-[cipher]\fR] [\fB\-in file\fR] [\fB\-CAfile file\fR] [\fB\-CApath dir\fR] [\fB\-trusted_first\fR] [\fB\-no_alt_chains\fR] [\fB\-certfile file\fR] [\fB\-signer file\fR] [\fB\-recip file\fR] [\fB\-inform SMIME|PEM|DER\fR] [\fB\-passin arg\fR] [\fB\-inkey file\fR] [\fB\-out file\fR] [\fB\-outform SMIME|PEM|DER\fR] [\fB\-content file\fR] [\fB\-to addr\fR] [\fB\-from ad\fR] [\fB\-subject s\fR] [\fB\-text\fR] [\fB\-indef\fR] [\fB\-noindef\fR] [\fB\-stream\fR] [\fB\-rand file(s)\fR] [\fB\-md digest\fR] [cert.pem]... .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBsmime\fR command handles S/MIME mail. It can encrypt, decrypt, sign and verify S/MIME messages. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" There are six operation options that set the type of operation to be performed. The meaning of the other options varies according to the operation type. .IP "\fB\-encrypt\fR" 4 .IX Item "-encrypt" encrypt mail for the given recipient certificates. Input file is the message to be encrypted. The output file is the encrypted mail in \s-1MIME\s0 format. .Sp Note that no revocation check is done for the recipient cert, so if that key has been compromised, others may be able to decrypt the text. .IP "\fB\-decrypt\fR" 4 .IX Item "-decrypt" decrypt mail using the supplied certificate and private key. Expects an encrypted mail message in \s-1MIME\s0 format for the input file. The decrypted mail is written to the output file. .IP "\fB\-sign\fR" 4 .IX Item "-sign" sign mail using the supplied certificate and private key. Input file is the message to be signed. The signed message in \s-1MIME\s0 format is written to the output file. .IP "\fB\-verify\fR" 4 .IX Item "-verify" verify signed mail. Expects a signed mail message on input and outputs the signed data. Both clear text and opaque signing is supported. .IP "\fB\-pk7out\fR" 4 .IX Item "-pk7out" takes an input message and writes out a \s-1PEM\s0 encoded PKCS#7 structure. .IP "\fB\-resign\fR" 4 .IX Item "-resign" resign a message: take an existing message and one or more new signers. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" the input message to be encrypted or signed or the \s-1MIME\s0 message to be decrypted or verified. .IP "\fB\-inform SMIME|PEM|DER\fR" 4 .IX Item "-inform SMIME|PEM|DER" this specifies the input format for the PKCS#7 structure. The default is \fB\s-1SMIME\s0\fR which reads an S/MIME format message. \fB\s-1PEM\s0\fR and \fB\s-1DER\s0\fR format change this to expect \s-1PEM\s0 and \s-1DER\s0 format PKCS#7 structures instead. This currently only affects the input format of the PKCS#7 structure, if no PKCS#7 structure is being input (for example with \&\fB\-encrypt\fR or \fB\-sign\fR) this option has no effect. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" the message text that has been decrypted or verified or the output \s-1MIME\s0 format message that has been signed or verified. .IP "\fB\-outform SMIME|PEM|DER\fR" 4 .IX Item "-outform SMIME|PEM|DER" this specifies the output format for the PKCS#7 structure. The default is \fB\s-1SMIME\s0\fR which write an S/MIME format message. \fB\s-1PEM\s0\fR and \fB\s-1DER\s0\fR format change this to write \s-1PEM\s0 and \s-1DER\s0 format PKCS#7 structures instead. This currently only affects the output format of the PKCS#7 structure, if no PKCS#7 structure is being output (for example with \&\fB\-verify\fR or \fB\-decrypt\fR) this option has no effect. .IP "\fB\-stream \-indef \-noindef\fR" 4 .IX Item "-stream -indef -noindef" the \fB\-stream\fR and \fB\-indef\fR options are equivalent and enable streaming I/O for encoding operations. This permits single pass processing of data without the need to hold the entire contents in memory, potentially supporting very large files. Streaming is automatically set for S/MIME signing with detached data if the output format is \fB\s-1SMIME\s0\fR it is currently off by default for all other operations. .IP "\fB\-noindef\fR" 4 .IX Item "-noindef" disable streaming I/O where it would produce and indefinite length constructed encoding. This option currently has no effect. In future streaming will be enabled by default on all relevant operations and this option will disable it. .IP "\fB\-content filename\fR" 4 .IX Item "-content filename" This specifies a file containing the detached content, this is only useful with the \fB\-verify\fR command. This is only usable if the PKCS#7 structure is using the detached signature form where the content is not included. This option will override any content if the input format is S/MIME and it uses the multipart/signed \s-1MIME\s0 content type. .IP "\fB\-text\fR" 4 .IX Item "-text" this option adds plain text (text/plain) \s-1MIME\s0 headers to the supplied message if encrypting or signing. If decrypting or verifying it strips off text headers: if the decrypted or verified message is not of \s-1MIME \s0 type text/plain then an error occurs. .IP "\fB\-CAfile file\fR" 4 .IX Item "-CAfile file" a file containing trusted \s-1CA\s0 certificates, only used with \fB\-verify\fR. .IP "\fB\-CApath dir\fR" 4 .IX Item "-CApath dir" a directory containing trusted \s-1CA\s0 certificates, only used with \&\fB\-verify\fR. This directory must be a standard certificate directory: that is a hash of each subject name (using \fBx509 \-hash\fR) should be linked to each certificate. .IP "\fB\-trusted_first\fR" 4 .IX Item "-trusted_first" Use certificates in \s-1CA\s0 file or \s-1CA\s0 directory over certificates provided in the message when building the trust chain to verify a certificate. This is mainly useful in environments with Bridge \s-1CA\s0 or Cross-Certified CAs. .IP "\fB\-md digest\fR" 4 .IX Item "-md digest" digest algorithm to use when signing or resigning. If not present then the default digest algorithm for the signing key will be used (usually \s-1SHA1\s0). .IP "\fB\-[cipher]\fR" 4 .IX Item "-[cipher]" the encryption algorithm to use. For example \s-1DES \s0(56 bits) \- \fB\-des\fR, triple \s-1DES \s0(168 bits) \- \fB\-des3\fR, \&\fIEVP_get_cipherbyname()\fR function) can also be used preceded by a dash, for example \fB\-aes_128_cbc\fR. See \fBenc\fR for list of ciphers supported by your version of OpenSSL. .Sp If not specified triple \s-1DES\s0 is used. Only used with \fB\-encrypt\fR. .IP "\fB\-nointern\fR" 4 .IX Item "-nointern" when verifying a message normally certificates (if any) included in the message are searched for the signing certificate. With this option only the certificates specified in the \fB\-certfile\fR option are used. The supplied certificates can still be used as untrusted CAs however. .IP "\fB\-noverify\fR" 4 .IX Item "-noverify" do not verify the signers certificate of a signed message. .IP "\fB\-nochain\fR" 4 .IX Item "-nochain" do not do chain verification of signers certificates: that is don't use the certificates in the signed message as untrusted CAs. .IP "\fB\-nosigs\fR" 4 .IX Item "-nosigs" don't try to verify the signatures on the message. .IP "\fB\-nocerts\fR" 4 .IX Item "-nocerts" when signing a message the signer's certificate is normally included with this option it is excluded. This will reduce the size of the signed message but the verifier must have a copy of the signers certificate available locally (passed using the \fB\-certfile\fR option for example). .IP "\fB\-noattr\fR" 4 .IX Item "-noattr" normally when a message is signed a set of attributes are included which include the signing time and supported symmetric algorithms. With this option they are not included. .IP "\fB\-binary\fR" 4 .IX Item "-binary" normally the input message is converted to \*(L"canonical\*(R" format which is effectively using \s-1CR\s0 and \s-1LF\s0 as end of line: as required by the S/MIME specification. When this option is present no translation occurs. This is useful when handling binary data which may not be in \s-1MIME\s0 format. .IP "\fB\-nodetach\fR" 4 .IX Item "-nodetach" when signing a message use opaque signing: this form is more resistant to translation by mail relays but it cannot be read by mail agents that do not support S/MIME. Without this option cleartext signing with the \s-1MIME\s0 type multipart/signed is used. .IP "\fB\-certfile file\fR" 4 .IX Item "-certfile file" allows additional certificates to be specified. When signing these will be included with the message. When verifying these will be searched for the signers certificates. The certificates should be in \s-1PEM\s0 format. .IP "\fB\-signer file\fR" 4 .IX Item "-signer file" a signing certificate when signing or resigning a message, this option can be used multiple times if more than one signer is required. If a message is being verified then the signers certificates will be written to this file if the verification was successful. .IP "\fB\-recip file\fR" 4 .IX Item "-recip file" the recipients certificate when decrypting a message. This certificate must match one of the recipients of the message or an error occurs. .IP "\fB\-inkey file\fR" 4 .IX Item "-inkey file" the private key to use when signing or decrypting. This must match the corresponding certificate. If this option is not specified then the private key must be included in the certificate file specified with the \fB\-recip\fR or \fB\-signer\fR file. When signing this option can be used multiple times to specify successive keys. .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the private key password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-rand file(s)\fR" 4 .IX Item "-rand file(s)" a file or files containing random data used to seed the random number generator, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). Multiple files can be specified separated by a OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fBcert.pem...\fR" 4 .IX Item "cert.pem..." one or more certificates of message recipients: used when encrypting a message. .IP "\fB\-to, \-from, \-subject\fR" 4 .IX Item "-to, -from, -subject" the relevant mail headers. These are included outside the signed portion of a message so they may be included manually. If signing then many S/MIME mail clients check the signers certificate's email address matches that specified in the From: address. .IP "\fB\-purpose, \-ignore_critical, \-issuer_checks, \-crl_check, \-crl_check_all, \-policy_check, \-extended_crl, \-x509_strict, \-policy \-check_ss_sig \-no_alt_chains\fR" 4 .IX Item "-purpose, -ignore_critical, -issuer_checks, -crl_check, -crl_check_all, -policy_check, -extended_crl, -x509_strict, -policy -check_ss_sig -no_alt_chains" Set various options of certificate chain verification. See \&\fBverify\fR manual page for details. .SH "NOTES" .IX Header "NOTES" The \s-1MIME\s0 message must be sent without any blank lines between the headers and the output. Some mail programs will automatically add a blank line. Piping the mail directly to sendmail is one way to achieve the correct format. .PP The supplied message to be signed or encrypted must include the necessary \s-1MIME\s0 headers or many S/MIME clients wont display it properly (if at all). You can use the \fB\-text\fR option to automatically add plain text headers. .PP A \*(L"signed and encrypted\*(R" message is one where a signed message is then encrypted. This can be produced by encrypting an already signed message: see the examples section. .PP This version of the program only allows one signer per message but it will verify multiple signers on received messages. Some S/MIME clients choke if a message contains multiple signers. It is possible to sign messages \*(L"in parallel\*(R" by signing an already signed message. .PP The options \fB\-encrypt\fR and \fB\-decrypt\fR reflect common usage in S/MIME clients. Strictly speaking these process PKCS#7 enveloped data: PKCS#7 encrypted data is used for other purposes. .PP The \fB\-resign\fR option uses an existing message digest when adding a new signer. This means that attributes must be present in at least one existing signer using the same message digest or this operation will fail. .PP The \fB\-stream\fR and \fB\-indef\fR options enable experimental streaming I/O support. As a result the encoding is \s-1BER\s0 using indefinite length constructed encoding and no longer \s-1DER.\s0 Streaming is supported for the \fB\-encrypt\fR operation and the \&\fB\-sign\fR operation if the content is not detached. .PP Streaming is always used for the \fB\-sign\fR operation with detached data but since the content is no longer part of the PKCS#7 structure the encoding remains \s-1DER.\s0 .SH "EXIT CODES" .IX Header "EXIT CODES" .IP "0" 4 the operation was completely successfully. .IP "1" 4 .IX Item "1" an error occurred parsing the command options. .IP "2" 4 .IX Item "2" one of the input files could not be read. .IP "3" 4 .IX Item "3" an error occurred creating the PKCS#7 file or when reading the \s-1MIME\s0 message. .IP "4" 4 .IX Item "4" an error occurred decrypting or verifying the message. .IP "5" 4 .IX Item "5" the message was verified correctly but an error occurred writing out the signers certificates. .SH "EXAMPLES" .IX Header "EXAMPLES" Create a cleartext signed message: .PP .Vb 2 \& openssl smime \-sign \-in message.txt \-text \-out mail.msg \e \& \-signer mycert.pem .Ve .PP Create an opaque signed message: .PP .Vb 2 \& openssl smime \-sign \-in message.txt \-text \-out mail.msg \-nodetach \e \& \-signer mycert.pem .Ve .PP Create a signed message, include some additional certificates and read the private key from another file: .PP .Vb 2 \& openssl smime \-sign \-in in.txt \-text \-out mail.msg \e \& \-signer mycert.pem \-inkey mykey.pem \-certfile mycerts.pem .Ve .PP Create a signed message with two signers: .PP .Vb 2 \& openssl smime \-sign \-in message.txt \-text \-out mail.msg \e \& \-signer mycert.pem \-signer othercert.pem .Ve .PP Send a signed message under Unix directly to sendmail, including headers: .PP .Vb 3 \& openssl smime \-sign \-in in.txt \-text \-signer mycert.pem \e \& \-from steve@openssl.org \-to someone@somewhere \e \& \-subject "Signed message" | sendmail someone@somewhere .Ve .PP Verify a message and extract the signer's certificate if successful: .PP .Vb 1 \& openssl smime \-verify \-in mail.msg \-signer user.pem \-out signedtext.txt .Ve .PP Send encrypted mail using triple \s-1DES:\s0 .PP .Vb 3 \& openssl smime \-encrypt \-in in.txt \-from steve@openssl.org \e \& \-to someone@somewhere \-subject "Encrypted message" \e \& \-des3 user.pem \-out mail.msg .Ve .PP Sign and encrypt mail: .PP .Vb 4 \& openssl smime \-sign \-in ml.txt \-signer my.pem \-text \e \& | openssl smime \-encrypt \-out mail.msg \e \& \-from steve@openssl.org \-to someone@somewhere \e \& \-subject "Signed and Encrypted message" \-des3 user.pem .Ve .PP Note: the encryption command does not include the \fB\-text\fR option because the message being encrypted already has \s-1MIME\s0 headers. .PP Decrypt mail: .PP .Vb 1 \& openssl smime \-decrypt \-in mail.msg \-recip mycert.pem \-inkey key.pem .Ve .PP The output from Netscape form signing is a PKCS#7 structure with the detached signature format. You can use this program to verify the signature by line wrapping the base64 encoded structure and surrounding it with: .PP .Vb 2 \& \-\-\-\-\-BEGIN PKCS7\-\-\-\-\- \& \-\-\-\-\-END PKCS7\-\-\-\-\- .Ve .PP and using the command: .PP .Vb 1 \& openssl smime \-verify \-inform PEM \-in signature.pem \-content content.txt .Ve .PP Alternatively you can base64 decode the signature and use: .PP .Vb 1 \& openssl smime \-verify \-inform DER \-in signature.der \-content content.txt .Ve .PP Create an encrypted message using 128 bit Camellia: .PP .Vb 1 \& openssl smime \-encrypt \-in plain.txt \-camellia128 \-out mail.msg cert.pem .Ve .PP Add a signer to an existing message: .PP .Vb 1 \& openssl smime \-resign \-in mail.msg \-signer newsign.pem \-out mail2.msg .Ve .SH "BUGS" .IX Header "BUGS" The \s-1MIME\s0 parser isn't very clever: it seems to handle most messages that I've thrown at it but it may choke on others. .PP The code currently will only write out the signer's certificate to a file: if the signer has a separate encryption certificate this must be manually extracted. There should be some heuristic that determines the correct encryption certificate. .PP Ideally a database should be maintained of a certificates for each email address. .PP The code doesn't currently take note of the permitted symmetric encryption algorithms as supplied in the SMIMECapabilities signed attribute. This means the user has to manually include the correct encryption algorithm. It should store the list of permitted ciphers in a database and only use those. .PP No revocation checking is done on the signer's certificate. .PP The current code can only handle S/MIME v2 messages, the more complex S/MIME v3 structures may cause parsing errors. .SH "HISTORY" .IX Header "HISTORY" The use of multiple \fB\-signer\fR options and the \fB\-resign\fR command were first added in OpenSSL 1.0.0 .PP The \-no_alt_chains options was first added to OpenSSL 1.0.2b. man1/errstr.1ssl000064400000011262147210250140007523 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ERRSTR 1" .TH ERRSTR 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" errstr \- lookup error codes .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl errstr error_code\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" Sometimes an application will not load error message and only numerical forms will be available. The \fBerrstr\fR utility can be used to display the meaning of the hex code. The hex code is the hex digits after the second colon. .SH "EXAMPLE" .IX Header "EXAMPLE" The error code: .PP .Vb 1 \& 27594:error:2006D080:lib(32):func(109):reason(128):bss_file.c:107: .Ve .PP can be displayed with: .PP .Vb 1 \& openssl errstr 2006D080 .Ve .PP to produce the error message: .PP .Vb 1 \& error:2006D080:BIO routines:BIO_new_file:no such file .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIerr\fR\|(3), \&\fIERR_load_crypto_strings\fR\|(3), \&\fISSL_load_error_strings\fR\|(3) man1/ec.1ssl000064400000024224147210250140006573 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EC 1" .TH EC 1 "2017-06-30" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ec \- EC key processing .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBec\fR [\fB\-inform PEM|DER\fR] [\fB\-outform PEM|DER\fR] [\fB\-in filename\fR] [\fB\-passin arg\fR] [\fB\-out filename\fR] [\fB\-passout arg\fR] [\fB\-des\fR] [\fB\-des3\fR] [\fB\-idea\fR] [\fB\-text\fR] [\fB\-noout\fR] [\fB\-param_out\fR] [\fB\-pubin\fR] [\fB\-pubout\fR] [\fB\-conv_form arg\fR] [\fB\-param_enc arg\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBec\fR command processes \s-1EC\s0 keys. They can be converted between various forms and their components printed out. \fBNote\fR OpenSSL uses the private key format specified in '\s-1SEC 1:\s0 Elliptic Curve Cryptography' (http://www.secg.org/). To convert a OpenSSL \s-1EC\s0 private key into the PKCS#8 private key format use the \fBpkcs8\fR command. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-inform DER|PEM\fR" 4 .IX Item "-inform DER|PEM" This specifies the input format. The \fB\s-1DER\s0\fR option with a private key uses an \s-1ASN.1 DER\s0 encoded \s-1SEC1\s0 private key. When used with a public key it uses the SubjectPublicKeyInfo structure as specified in \s-1RFC 3280.\s0 The \fB\s-1PEM\s0\fR form is the default format: it consists of the \fB\s-1DER\s0\fR format base64 encoded with additional header and footer lines. In the case of a private key PKCS#8 format is also accepted. .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read a key from or standard input if this option is not specified. If the key is encrypted a pass phrase will be prompted for. .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the input file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" This specifies the output filename to write a key to or standard output by is not specified. If any encryption options are set then a pass phrase will be prompted for. The output filename should \fBnot\fR be the same as the input filename. .IP "\fB\-passout arg\fR" 4 .IX Item "-passout arg" the output file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-des|\-des3|\-idea\fR" 4 .IX Item "-des|-des3|-idea" These options encrypt the private key with the \s-1DES,\s0 triple \s-1DES, IDEA\s0 or any other cipher supported by OpenSSL before outputting it. A pass phrase is prompted for. If none of these options is specified the key is written in plain text. This means that using the \fBec\fR utility to read in an encrypted key with no encryption option can be used to remove the pass phrase from a key, or by setting the encryption options it can be use to add or change the pass phrase. These options can only be used with \s-1PEM\s0 format output files. .IP "\fB\-text\fR" 4 .IX Item "-text" prints out the public, private key components and parameters. .IP "\fB\-noout\fR" 4 .IX Item "-noout" this option prevents output of the encoded version of the key. .IP "\fB\-pubin\fR" 4 .IX Item "-pubin" by default a private key is read from the input file: with this option a public key is read instead. .IP "\fB\-pubout\fR" 4 .IX Item "-pubout" by default a private key is output. With this option a public key will be output instead. This option is automatically set if the input is a public key. .IP "\fB\-conv_form\fR" 4 .IX Item "-conv_form" This specifies how the points on the elliptic curve are converted into octet strings. Possible values are: \fBcompressed\fR (the default value), \fBuncompressed\fR and \fBhybrid\fR. For more information regarding the point conversion forms please read the X9.62 standard. \&\fBNote\fR Due to patent issues the \fBcompressed\fR option is disabled by default for binary curves and can be enabled by defining the preprocessor macro \fB\s-1OPENSSL_EC_BIN_PT_COMP\s0\fR at compile time. .IP "\fB\-param_enc arg\fR" 4 .IX Item "-param_enc arg" This specifies how the elliptic curve parameters are encoded. Possible value are: \fBnamed_curve\fR, i.e. the ec parameters are specified by a \s-1OID,\s0 or \fBexplicit\fR where the ec parameters are explicitly given (see \s-1RFC 3279\s0 for the definition of the \&\s-1EC\s0 parameters structures). The default value is \fBnamed_curve\fR. \&\fBNote\fR the \fBimplicitlyCA\fR alternative ,as specified in \s-1RFC 3279,\s0 is currently not implemented in OpenSSL. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBec\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .SH "NOTES" .IX Header "NOTES" The \s-1PEM\s0 private key format uses the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN EC PRIVATE KEY\-\-\-\-\- \& \-\-\-\-\-END EC PRIVATE KEY\-\-\-\-\- .Ve .PP The \s-1PEM\s0 public key format uses the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN PUBLIC KEY\-\-\-\-\- \& \-\-\-\-\-END PUBLIC KEY\-\-\-\-\- .Ve .SH "EXAMPLES" .IX Header "EXAMPLES" To encrypt a private key using triple \s-1DES:\s0 .PP .Vb 1 \& openssl ec \-in key.pem \-des3 \-out keyout.pem .Ve .PP To convert a private key from \s-1PEM\s0 to \s-1DER\s0 format: .PP .Vb 1 \& openssl ec \-in key.pem \-outform DER \-out keyout.der .Ve .PP To print out the components of a private key to standard output: .PP .Vb 1 \& openssl ec \-in key.pem \-text \-noout .Ve .PP To just output the public part of a private key: .PP .Vb 1 \& openssl ec \-in key.pem \-pubout \-out pubkey.pem .Ve .PP To change the parameters encoding to \fBexplicit\fR: .PP .Vb 1 \& openssl ec \-in key.pem \-param_enc explicit \-out keyout.pem .Ve .PP To change the point conversion form to \fBcompressed\fR: .PP .Vb 1 \& openssl ec \-in key.pem \-conv_form compressed \-out keyout.pem .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIecparam\fR\|(1), \fIdsa\fR\|(1), \fIrsa\fR\|(1) .SH "HISTORY" .IX Header "HISTORY" The ec command was first introduced in OpenSSL 0.9.8. .SH "AUTHOR" .IX Header "AUTHOR" Nils Larsch for the OpenSSL project (http://www.openssl.org). man1/sslrand.1ssl000064400000012304147210250140007646 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RAND 1" .TH RAND 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" rand \- generate pseudo\-random bytes .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl rand\fR [\fB\-out\fR \fIfile\fR] [\fB\-rand\fR \fIfile(s)\fR] [\fB\-base64\fR] [\fB\-hex\fR] \&\fInum\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBrand\fR command outputs \fInum\fR pseudo-random bytes after seeding the random number generator once. As in other \fBopenssl\fR command line tools, \s-1PRNG\s0 seeding uses the file \fI\f(CI$HOME\fI/\fR\fB.rnd\fR or \fB.rnd\fR in addition to the files given in the \fB\-rand\fR option. A new \&\fI\f(CI$HOME\fI\fR/\fB.rnd\fR or \fB.rnd\fR file will be written back if enough seeding was obtained from these sources. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-out\fR \fIfile\fR" 4 .IX Item "-out file" Write to \fIfile\fR instead of standard output. .IP "\fB\-rand\fR \fIfile(s)\fR" 4 .IX Item "-rand file(s)" Use specified file or files or \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)) for seeding the random number generator. Multiple files can be specified separated by a OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fB\-base64\fR" 4 .IX Item "-base64" Perform base64 encoding on the output. .IP "\fB\-hex\fR" 4 .IX Item "-hex" Show the output as a hex string. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIRAND_bytes\fR\|(3) man1/pkeyparam.1ssl000064400000013177147210250140010202 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PKEYPARAM 1" .TH PKEYPARAM 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" pkeyparam \- public key algorithm parameter processing tool .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBpkeyparam\fR [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-text\fR] [\fB\-noout\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBpkey\fR command processes public or private keys. They can be converted between various forms and their components printed out. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read parameters from or standard input if this option is not specified. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" This specifies the output filename to write parameters to or standard output if this option is not specified. .IP "\fB\-text\fR" 4 .IX Item "-text" prints out the parameters in plain text in addition to the encoded version. .IP "\fB\-noout\fR" 4 .IX Item "-noout" do not output the encoded version of the parameters. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBpkeyparam\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .SH "EXAMPLE" .IX Header "EXAMPLE" Print out text version of parameters: .PP .Vb 1 \& openssl pkeyparam \-in param.pem \-text .Ve .SH "NOTES" .IX Header "NOTES" There are no \fB\-inform\fR or \fB\-outform\fR options for this command because only \&\s-1PEM\s0 format is supported because the key type is determined by the \s-1PEM\s0 headers. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIgenpkey\fR\|(1), \fIrsa\fR\|(1), \fIpkcs8\fR\|(1), \&\fIdsa\fR\|(1), \fIgenrsa\fR\|(1), \fIgendsa\fR\|(1) man1/ca.1ssl000064400000073600147210250140006571 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CA 1" .TH CA 1 "2017-06-30" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ca \- sample minimal CA application .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBca\fR [\fB\-verbose\fR] [\fB\-config filename\fR] [\fB\-name section\fR] [\fB\-gencrl\fR] [\fB\-revoke file\fR] [\fB\-status serial\fR] [\fB\-updatedb\fR] [\fB\-crl_reason reason\fR] [\fB\-crl_hold instruction\fR] [\fB\-crl_compromise time\fR] [\fB\-crl_CA_compromise time\fR] [\fB\-crldays days\fR] [\fB\-crlhours hours\fR] [\fB\-crlexts section\fR] [\fB\-startdate date\fR] [\fB\-enddate date\fR] [\fB\-days arg\fR] [\fB\-md arg\fR] [\fB\-policy arg\fR] [\fB\-keyfile arg\fR] [\fB\-keyform PEM|DER\fR] [\fB\-key arg\fR] [\fB\-passin arg\fR] [\fB\-cert file\fR] [\fB\-selfsign\fR] [\fB\-in file\fR] [\fB\-out file\fR] [\fB\-notext\fR] [\fB\-outdir dir\fR] [\fB\-infiles\fR] [\fB\-spkac file\fR] [\fB\-ss_cert file\fR] [\fB\-preserveDN\fR] [\fB\-noemailDN\fR] [\fB\-batch\fR] [\fB\-msie_hack\fR] [\fB\-extensions section\fR] [\fB\-extfile section\fR] [\fB\-engine id\fR] [\fB\-subj arg\fR] [\fB\-utf8\fR] [\fB\-multivalue\-rdn\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBca\fR command is a minimal \s-1CA\s0 application. It can be used to sign certificate requests in a variety of forms and generate CRLs it also maintains a text database of issued certificates and their status. .PP The options descriptions will be divided into each purpose. .SH "CA OPTIONS" .IX Header "CA OPTIONS" .IP "\fB\-config filename\fR" 4 .IX Item "-config filename" specifies the configuration file to use. .IP "\fB\-name section\fR" 4 .IX Item "-name section" specifies the configuration file section to use (overrides \&\fBdefault_ca\fR in the \fBca\fR section). .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" an input filename containing a single certificate request to be signed by the \s-1CA.\s0 .IP "\fB\-ss_cert filename\fR" 4 .IX Item "-ss_cert filename" a single self signed certificate to be signed by the \s-1CA.\s0 .IP "\fB\-spkac filename\fR" 4 .IX Item "-spkac filename" a file containing a single Netscape signed public key and challenge and additional field values to be signed by the \s-1CA.\s0 See the \fB\s-1SPKAC FORMAT\s0\fR section for information on the required input and output format. .IP "\fB\-infiles\fR" 4 .IX Item "-infiles" if present this should be the last option, all subsequent arguments are assumed to the the names of files containing certificate requests. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" the output file to output certificates to. The default is standard output. The certificate details will also be printed out to this file in \s-1PEM\s0 format (except that \fB\-spkac\fR outputs \s-1DER\s0 format). .IP "\fB\-outdir directory\fR" 4 .IX Item "-outdir directory" the directory to output certificates to. The certificate will be written to a filename consisting of the serial number in hex with \&\*(L".pem\*(R" appended. .IP "\fB\-cert\fR" 4 .IX Item "-cert" the \s-1CA\s0 certificate file. .IP "\fB\-keyfile filename\fR" 4 .IX Item "-keyfile filename" the private key to sign requests with. .IP "\fB\-keyform PEM|DER\fR" 4 .IX Item "-keyform PEM|DER" the format of the data in the private key file. The default is \s-1PEM.\s0 .IP "\fB\-key password\fR" 4 .IX Item "-key password" the password used to encrypt the private key. Since on some systems the command line arguments are visible (e.g. Unix with the 'ps' utility) this option should be used with caution. .IP "\fB\-selfsign\fR" 4 .IX Item "-selfsign" indicates the issued certificates are to be signed with the key the certificate requests were signed with (given with \fB\-keyfile\fR). Cerificate requests signed with a different key are ignored. If \&\fB\-spkac\fR, \fB\-ss_cert\fR or \fB\-gencrl\fR are given, \fB\-selfsign\fR is ignored. .Sp A consequence of using \fB\-selfsign\fR is that the self-signed certificate appears among the entries in the certificate database (see the configuration option \fBdatabase\fR), and uses the same serial number counter as all other certificates sign with the self-signed certificate. .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the key password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-verbose\fR" 4 .IX Item "-verbose" this prints extra details about the operations being performed. .IP "\fB\-notext\fR" 4 .IX Item "-notext" don't output the text form of a certificate to the output file. .IP "\fB\-startdate date\fR" 4 .IX Item "-startdate date" this allows the start date to be explicitly set. The format of the date is \s-1YYMMDDHHMMSSZ \s0(the same as an \s-1ASN1\s0 UTCTime structure). .IP "\fB\-enddate date\fR" 4 .IX Item "-enddate date" this allows the expiry date to be explicitly set. The format of the date is \s-1YYMMDDHHMMSSZ \s0(the same as an \s-1ASN1\s0 UTCTime structure). .IP "\fB\-days arg\fR" 4 .IX Item "-days arg" the number of days to certify the certificate for. .IP "\fB\-md alg\fR" 4 .IX Item "-md alg" the message digest to use. Possible values include md5, sha1 and mdc2. For full list of digests see openssl dgst \-h output. This option also applies to CRLs. .IP "\fB\-policy arg\fR" 4 .IX Item "-policy arg" this option defines the \s-1CA \s0\*(L"policy\*(R" to use. This is a section in the configuration file which decides which fields should be mandatory or match the \s-1CA\s0 certificate. Check out the \fB\s-1POLICY FORMAT\s0\fR section for more information. .IP "\fB\-msie_hack\fR" 4 .IX Item "-msie_hack" this is a legacy option to make \fBca\fR work with very old versions of the \s-1IE\s0 certificate enrollment control \*(L"certenr3\*(R". It used UniversalStrings for almost everything. Since the old control has various security bugs its use is strongly discouraged. The newer control \*(L"Xenroll\*(R" does not need this option. .IP "\fB\-preserveDN\fR" 4 .IX Item "-preserveDN" Normally the \s-1DN\s0 order of a certificate is the same as the order of the fields in the relevant policy section. When this option is set the order is the same as the request. This is largely for compatibility with the older \s-1IE\s0 enrollment control which would only accept certificates if their DNs match the order of the request. This is not needed for Xenroll. .IP "\fB\-noemailDN\fR" 4 .IX Item "-noemailDN" The \s-1DN\s0 of a certificate can contain the \s-1EMAIL\s0 field if present in the request \s-1DN,\s0 however it is good policy just having the e\-mail set into the altName extension of the certificate. When this option is set the \&\s-1EMAIL\s0 field is removed from the certificate' subject and set only in the, eventually present, extensions. The \fBemail_in_dn\fR keyword can be used in the configuration file to enable this behaviour. .IP "\fB\-batch\fR" 4 .IX Item "-batch" this sets the batch mode. In this mode no questions will be asked and all certificates will be certified automatically. .IP "\fB\-extensions section\fR" 4 .IX Item "-extensions section" the section of the configuration file containing certificate extensions to be added when a certificate is issued (defaults to \fBx509_extensions\fR unless the \fB\-extfile\fR option is used). If no extension section is present then, a V1 certificate is created. If the extension section is present (even if it is empty), then a V3 certificate is created. See the:w \&\fIx509v3_config\fR\|(5) manual page for details of the extension section format. .IP "\fB\-extfile file\fR" 4 .IX Item "-extfile file" an additional configuration file to read certificate extensions from (using the default section unless the \fB\-extensions\fR option is also used). .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBca\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .IP "\fB\-subj arg\fR" 4 .IX Item "-subj arg" supersedes subject name given in the request. The arg must be formatted as \fI/type0=value0/type1=value1/type2=...\fR, characters may be escaped by \e (backslash), no spaces are skipped. .IP "\fB\-utf8\fR" 4 .IX Item "-utf8" this option causes field values to be interpreted as \s-1UTF8\s0 strings, by default they are interpreted as \s-1ASCII.\s0 This means that the field values, whether prompted from a terminal or obtained from a configuration file, must be valid \s-1UTF8\s0 strings. .IP "\fB\-multivalue\-rdn\fR" 4 .IX Item "-multivalue-rdn" this option causes the \-subj argument to be interpretedt with full support for multivalued RDNs. Example: .Sp \&\fI/DC=org/DC=OpenSSL/DC=users/UID=123456+CN=John Doe\fR .Sp If \-multi\-rdn is not used then the \s-1UID\s0 value is \fI123456+CN=John Doe\fR. .SH "CRL OPTIONS" .IX Header "CRL OPTIONS" .IP "\fB\-gencrl\fR" 4 .IX Item "-gencrl" this option generates a \s-1CRL\s0 based on information in the index file. .IP "\fB\-crldays num\fR" 4 .IX Item "-crldays num" the number of days before the next \s-1CRL\s0 is due. That is the days from now to place in the \s-1CRL\s0 nextUpdate field. .IP "\fB\-crlhours num\fR" 4 .IX Item "-crlhours num" the number of hours before the next \s-1CRL\s0 is due. .IP "\fB\-revoke filename\fR" 4 .IX Item "-revoke filename" a filename containing a certificate to revoke. .IP "\fB\-status serial\fR" 4 .IX Item "-status serial" displays the revocation status of the certificate with the specified serial number and exits. .IP "\fB\-updatedb\fR" 4 .IX Item "-updatedb" Updates the database index to purge expired certificates. .IP "\fB\-crl_reason reason\fR" 4 .IX Item "-crl_reason reason" revocation reason, where \fBreason\fR is one of: \fBunspecified\fR, \fBkeyCompromise\fR, \&\fBCACompromise\fR, \fBaffiliationChanged\fR, \fBsuperseded\fR, \fBcessationOfOperation\fR, \&\fBcertificateHold\fR or \fBremoveFromCRL\fR. The matching of \fBreason\fR is case insensitive. Setting any revocation reason will make the \s-1CRL\s0 v2. .Sp In practive \fBremoveFromCRL\fR is not particularly useful because it is only used in delta CRLs which are not currently implemented. .IP "\fB\-crl_hold instruction\fR" 4 .IX Item "-crl_hold instruction" This sets the \s-1CRL\s0 revocation reason code to \fBcertificateHold\fR and the hold instruction to \fBinstruction\fR which must be an \s-1OID.\s0 Although any \s-1OID\s0 can be used only \fBholdInstructionNone\fR (the use of which is discouraged by \s-1RFC2459\s0) \&\fBholdInstructionCallIssuer\fR or \fBholdInstructionReject\fR will normally be used. .IP "\fB\-crl_compromise time\fR" 4 .IX Item "-crl_compromise time" This sets the revocation reason to \fBkeyCompromise\fR and the compromise time to \&\fBtime\fR. \fBtime\fR should be in GeneralizedTime format that is \fB\s-1YYYYMMDDHHMMSSZ\s0\fR. .IP "\fB\-crl_CA_compromise time\fR" 4 .IX Item "-crl_CA_compromise time" This is the same as \fBcrl_compromise\fR except the revocation reason is set to \&\fBCACompromise\fR. .IP "\fB\-crlexts section\fR" 4 .IX Item "-crlexts section" the section of the configuration file containing \s-1CRL\s0 extensions to include. If no \s-1CRL\s0 extension section is present then a V1 \s-1CRL\s0 is created, if the \s-1CRL\s0 extension section is present (even if it is empty) then a V2 \s-1CRL\s0 is created. The \s-1CRL\s0 extensions specified are \&\s-1CRL\s0 extensions and \fBnot\fR \s-1CRL\s0 entry extensions. It should be noted that some software (for example Netscape) can't handle V2 CRLs. See \&\fIx509v3_config\fR\|(5) manual page for details of the extension section format. .SH "CONFIGURATION FILE OPTIONS" .IX Header "CONFIGURATION FILE OPTIONS" The section of the configuration file containing options for \fBca\fR is found as follows: If the \fB\-name\fR command line option is used, then it names the section to be used. Otherwise the section to be used must be named in the \fBdefault_ca\fR option of the \fBca\fR section of the configuration file (or in the default section of the configuration file). Besides \fBdefault_ca\fR, the following options are read directly from the \fBca\fR section: \s-1RANDFILE \&\s0 preserve msie_hack With the exception of \fB\s-1RANDFILE\s0\fR, this is probably a bug and may change in future releases. .PP Many of the configuration file options are identical to command line options. Where the option is present in the configuration file and the command line the command line value is used. Where an option is described as mandatory then it must be present in the configuration file or the command line equivalent (if any) used. .IP "\fBoid_file\fR" 4 .IX Item "oid_file" This specifies a file containing additional \fB\s-1OBJECT IDENTIFIERS\s0\fR. Each line of the file should consist of the numerical form of the object identifier followed by white space then the short name followed by white space and finally the long name. .IP "\fBoid_section\fR" 4 .IX Item "oid_section" This specifies a section in the configuration file containing extra object identifiers. Each line should consist of the short name of the object identifier followed by \fB=\fR and the numerical form. The short and long names are the same when this option is used. .IP "\fBnew_certs_dir\fR" 4 .IX Item "new_certs_dir" the same as the \fB\-outdir\fR command line option. It specifies the directory where new certificates will be placed. Mandatory. .IP "\fBcertificate\fR" 4 .IX Item "certificate" the same as \fB\-cert\fR. It gives the file containing the \s-1CA\s0 certificate. Mandatory. .IP "\fBprivate_key\fR" 4 .IX Item "private_key" same as the \fB\-keyfile\fR option. The file containing the \&\s-1CA\s0 private key. Mandatory. .IP "\fB\s-1RANDFILE\s0\fR" 4 .IX Item "RANDFILE" a file used to read and write random number seed information, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). .IP "\fBdefault_days\fR" 4 .IX Item "default_days" the same as the \fB\-days\fR option. The number of days to certify a certificate for. .IP "\fBdefault_startdate\fR" 4 .IX Item "default_startdate" the same as the \fB\-startdate\fR option. The start date to certify a certificate for. If not set the current time is used. .IP "\fBdefault_enddate\fR" 4 .IX Item "default_enddate" the same as the \fB\-enddate\fR option. Either this option or \&\fBdefault_days\fR (or the command line equivalents) must be present. .IP "\fBdefault_crl_hours default_crl_days\fR" 4 .IX Item "default_crl_hours default_crl_days" the same as the \fB\-crlhours\fR and the \fB\-crldays\fR options. These will only be used if neither command line option is present. At least one of these must be present to generate a \s-1CRL.\s0 .IP "\fBdefault_md\fR" 4 .IX Item "default_md" the same as the \fB\-md\fR option. The message digest to use. Mandatory. .IP "\fBdatabase\fR" 4 .IX Item "database" the text database file to use. Mandatory. This file must be present though initially it will be empty. .IP "\fBunique_subject\fR" 4 .IX Item "unique_subject" if the value \fByes\fR is given, the valid certificate entries in the database must have unique subjects. if the value \fBno\fR is given, several valid certificate entries may have the exact same subject. The default value is \fByes\fR, to be compatible with older (pre 0.9.8) versions of OpenSSL. However, to make \s-1CA\s0 certificate roll-over easier, it's recommended to use the value \fBno\fR, especially if combined with the \fB\-selfsign\fR command line option. .IP "\fBserial\fR" 4 .IX Item "serial" a text file containing the next serial number to use in hex. Mandatory. This file must be present and contain a valid serial number. .IP "\fBcrlnumber\fR" 4 .IX Item "crlnumber" a text file containing the next \s-1CRL\s0 number to use in hex. The crl number will be inserted in the CRLs only if this file exists. If this file is present, it must contain a valid \s-1CRL\s0 number. .IP "\fBx509_extensions\fR" 4 .IX Item "x509_extensions" the same as \fB\-extensions\fR. .IP "\fBcrl_extensions\fR" 4 .IX Item "crl_extensions" the same as \fB\-crlexts\fR. .IP "\fBpreserve\fR" 4 .IX Item "preserve" the same as \fB\-preserveDN\fR .IP "\fBemail_in_dn\fR" 4 .IX Item "email_in_dn" the same as \fB\-noemailDN\fR. If you want the \s-1EMAIL\s0 field to be removed from the \s-1DN\s0 of the certificate simply set this to 'no'. If not present the default is to allow for the \s-1EMAIL\s0 filed in the certificate's \s-1DN.\s0 .IP "\fBmsie_hack\fR" 4 .IX Item "msie_hack" the same as \fB\-msie_hack\fR .IP "\fBpolicy\fR" 4 .IX Item "policy" the same as \fB\-policy\fR. Mandatory. See the \fB\s-1POLICY FORMAT\s0\fR section for more information. .IP "\fBname_opt\fR, \fBcert_opt\fR" 4 .IX Item "name_opt, cert_opt" these options allow the format used to display the certificate details when asking the user to confirm signing. All the options supported by the \fBx509\fR utilities \fB\-nameopt\fR and \fB\-certopt\fR switches can be used here, except the \fBno_signame\fR and \fBno_sigdump\fR are permanently set and cannot be disabled (this is because the certificate signature cannot be displayed because the certificate has not been signed at this point). .Sp For convenience the values \fBca_default\fR are accepted by both to produce a reasonable output. .Sp If neither option is present the format used in earlier versions of OpenSSL is used. Use of the old format is \fBstrongly\fR discouraged because it only displays fields mentioned in the \fBpolicy\fR section, mishandles multicharacter string types and does not display extensions. .IP "\fBcopy_extensions\fR" 4 .IX Item "copy_extensions" determines how extensions in certificate requests should be handled. If set to \fBnone\fR or this option is not present then extensions are ignored and not copied to the certificate. If set to \fBcopy\fR then any extensions present in the request that are not already present are copied to the certificate. If set to \fBcopyall\fR then all extensions in the request are copied to the certificate: if the extension is already present in the certificate it is deleted first. See the \fB\s-1WARNINGS\s0\fR section before using this option. .Sp The main use of this option is to allow a certificate request to supply values for certain extensions such as subjectAltName. .SH "POLICY FORMAT" .IX Header "POLICY FORMAT" The policy section consists of a set of variables corresponding to certificate \s-1DN\s0 fields. If the value is \*(L"match\*(R" then the field value must match the same field in the \s-1CA\s0 certificate. If the value is \&\*(L"supplied\*(R" then it must be present. If the value is \*(L"optional\*(R" then it may be present. Any fields not mentioned in the policy section are silently deleted, unless the \fB\-preserveDN\fR option is set but this can be regarded more of a quirk than intended behaviour. .SH "SPKAC FORMAT" .IX Header "SPKAC FORMAT" The input to the \fB\-spkac\fR command line option is a Netscape signed public key and challenge. This will usually come from the \fB\s-1KEYGEN\s0\fR tag in an \s-1HTML\s0 form to create a new private key. It is however possible to create SPKACs using the \fBspkac\fR utility. .PP The file should contain the variable \s-1SPKAC\s0 set to the value of the \s-1SPKAC\s0 and also the required \s-1DN\s0 components as name value pairs. If you need to include the same component twice then it can be preceded by a number and a '.'. .PP When processing \s-1SPKAC\s0 format, the output is \s-1DER\s0 if the \fB\-out\fR flag is used, but \s-1PEM\s0 format if sending to stdout or the \fB\-outdir\fR flag is used. .SH "EXAMPLES" .IX Header "EXAMPLES" Note: these examples assume that the \fBca\fR directory structure is already set up and the relevant files already exist. This usually involves creating a \s-1CA\s0 certificate and private key with \fBreq\fR, a serial number file and an empty index file and placing them in the relevant directories. .PP To use the sample configuration file below the directories demoCA, demoCA/private and demoCA/newcerts would be created. The \s-1CA\s0 certificate would be copied to demoCA/cacert.pem and its private key to demoCA/private/cakey.pem. A file demoCA/serial would be created containing for example \*(L"01\*(R" and the empty index file demoCA/index.txt. .PP Sign a certificate request: .PP .Vb 1 \& openssl ca \-in req.pem \-out newcert.pem .Ve .PP Sign a certificate request, using \s-1CA\s0 extensions: .PP .Vb 1 \& openssl ca \-in req.pem \-extensions v3_ca \-out newcert.pem .Ve .PP Generate a \s-1CRL\s0 .PP .Vb 1 \& openssl ca \-gencrl \-out crl.pem .Ve .PP Sign several requests: .PP .Vb 1 \& openssl ca \-infiles req1.pem req2.pem req3.pem .Ve .PP Certify a Netscape \s-1SPKAC:\s0 .PP .Vb 1 \& openssl ca \-spkac spkac.txt .Ve .PP A sample \s-1SPKAC\s0 file (the \s-1SPKAC\s0 line has been truncated for clarity): .PP .Vb 5 \& SPKAC=MIG0MGAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAn7PDhCeV/xIxUg8V70YRxK2A5 \& CN=Steve Test \& emailAddress=steve@openssl.org \& 0.OU=OpenSSL Group \& 1.OU=Another Group .Ve .PP A sample configuration file with the relevant sections for \fBca\fR: .PP .Vb 2 \& [ ca ] \& default_ca = CA_default # The default ca section \& \& [ CA_default ] \& \& dir = ./demoCA # top dir \& database = $dir/index.txt # index file. \& new_certs_dir = $dir/newcerts # new certs dir \& \& certificate = $dir/cacert.pem # The CA cert \& serial = $dir/serial # serial no file \& private_key = $dir/private/cakey.pem# CA private key \& RANDFILE = $dir/private/.rand # random number file \& \& default_days = 365 # how long to certify for \& default_crl_days= 30 # how long before next CRL \& default_md = md5 # md to use \& \& policy = policy_any # default policy \& email_in_dn = no # Don\*(Aqt add the email into cert DN \& \& name_opt = ca_default # Subject name display option \& cert_opt = ca_default # Certificate display option \& copy_extensions = none # Don\*(Aqt copy extensions from request \& \& [ policy_any ] \& countryName = supplied \& stateOrProvinceName = optional \& organizationName = optional \& organizationalUnitName = optional \& commonName = supplied \& emailAddress = optional .Ve .SH "FILES" .IX Header "FILES" Note: the location of all files can change either by compile time options, configuration file entries, environment variables or command line options. The values below reflect the default values. .PP .Vb 10 \& /usr/local/ssl/lib/openssl.cnf \- master configuration file \& ./demoCA \- main CA directory \& ./demoCA/cacert.pem \- CA certificate \& ./demoCA/private/cakey.pem \- CA private key \& ./demoCA/serial \- CA serial number file \& ./demoCA/serial.old \- CA serial number backup file \& ./demoCA/index.txt \- CA text database file \& ./demoCA/index.txt.old \- CA text database backup file \& ./demoCA/certs \- certificate output file \& ./demoCA/.rnd \- CA random seed information .Ve .SH "ENVIRONMENT VARIABLES" .IX Header "ENVIRONMENT VARIABLES" \&\fB\s-1OPENSSL_CONF\s0\fR reflects the location of master configuration file it can be overridden by the \fB\-config\fR command line option. .SH "RESTRICTIONS" .IX Header "RESTRICTIONS" The text database index file is a critical part of the process and if corrupted it can be difficult to fix. It is theoretically possible to rebuild the index file from all the issued certificates and a current \&\s-1CRL:\s0 however there is no option to do this. .PP V2 \s-1CRL\s0 features like delta CRLs are not currently supported. .PP Although several requests can be input and handled at once it is only possible to include one \s-1SPKAC\s0 or self signed certificate. .SH "BUGS" .IX Header "BUGS" The use of an in memory text database can cause problems when large numbers of certificates are present because, as the name implies the database has to be kept in memory. .PP The \fBca\fR command really needs rewriting or the required functionality exposed at either a command or interface level so a more friendly utility (perl script or \s-1GUI\s0) can handle things properly. The scripts \fB\s-1CA\s0.sh\fR and \&\fB\s-1CA\s0.pl\fR help a little but not very much. .PP Any fields in a request that are not present in a policy are silently deleted. This does not happen if the \fB\-preserveDN\fR option is used. To enforce the absence of the \s-1EMAIL\s0 field within the \s-1DN,\s0 as suggested by RFCs, regardless the contents of the request' subject the \fB\-noemailDN\fR option can be used. The behaviour should be more friendly and configurable. .PP Cancelling some commands by refusing to certify a certificate can create an empty file. .SH "WARNINGS" .IX Header "WARNINGS" The \fBca\fR command is quirky and at times downright unfriendly. .PP The \fBca\fR utility was originally meant as an example of how to do things in a \s-1CA.\s0 It was not supposed to be used as a full blown \s-1CA\s0 itself: nevertheless some people are using it for this purpose. .PP The \fBca\fR command is effectively a single user command: no locking is done on the various files and attempts to run more than one \fBca\fR command on the same database can have unpredictable results. .PP The \fBcopy_extensions\fR option should be used with caution. If care is not taken then it can be a security risk. For example if a certificate request contains a basicConstraints extension with \s-1CA:TRUE\s0 and the \&\fBcopy_extensions\fR value is set to \fBcopyall\fR and the user does not spot this when the certificate is displayed then this will hand the requestor a valid \s-1CA\s0 certificate. .PP This situation can be avoided by setting \fBcopy_extensions\fR to \fBcopy\fR and including basicConstraints with \s-1CA:FALSE\s0 in the configuration file. Then if the request contains a basicConstraints extension it will be ignored. .PP It is advisable to also include values for other extensions such as \fBkeyUsage\fR to prevent a request supplying its own values. .PP Additional restrictions can be placed on the \s-1CA\s0 certificate itself. For example if the \s-1CA\s0 certificate has: .PP .Vb 1 \& basicConstraints = CA:TRUE, pathlen:0 .Ve .PP then even if a certificate is issued with \s-1CA:TRUE\s0 it will not be valid. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIreq\fR\|(1), \fIspkac\fR\|(1), \fIx509\fR\|(1), \s-1\fICA\s0.pl\fR\|(1), \&\fIconfig\fR\|(5), \fIx509v3_config\fR\|(5) man1/req.1ssl000064400000072177147210250140007005 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "REQ 1" .TH REQ 1 "2017-06-30" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" req \- PKCS#10 certificate request and certificate generating utility. .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBreq\fR [\fB\-inform PEM|DER\fR] [\fB\-outform PEM|DER\fR] [\fB\-in filename\fR] [\fB\-passin arg\fR] [\fB\-out filename\fR] [\fB\-passout arg\fR] [\fB\-text\fR] [\fB\-pubkey\fR] [\fB\-noout\fR] [\fB\-verify\fR] [\fB\-modulus\fR] [\fB\-new\fR] [\fB\-rand file(s)\fR] [\fB\-newkey rsa:bits\fR] [\fB\-newkey alg:file\fR] [\fB\-nodes\fR] [\fB\-key filename\fR] [\fB\-keyform PEM|DER\fR] [\fB\-keyout filename\fR] [\fB\-keygen_engine id\fR] [\fB\-[digest]\fR] [\fB\-config filename\fR] [\fB\-multivalue\-rdn\fR] [\fB\-x509\fR] [\fB\-days n\fR] [\fB\-set_serial n\fR] [\fB\-asn1\-kludge\fR] [\fB\-no\-asn1\-kludge\fR] [\fB\-newhdr\fR] [\fB\-extensions section\fR] [\fB\-reqexts section\fR] [\fB\-utf8\fR] [\fB\-nameopt\fR] [\fB\-reqopt\fR] [\fB\-subject\fR] [\fB\-subj arg\fR] [\fB\-batch\fR] [\fB\-verbose\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBreq\fR command primarily creates and processes certificate requests in PKCS#10 format. It can additionally create self signed certificates for use as root CAs for example. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-inform DER|PEM\fR" 4 .IX Item "-inform DER|PEM" This specifies the input format. The \fB\s-1DER\s0\fR option uses an \s-1ASN1 DER\s0 encoded form compatible with the PKCS#10. The \fB\s-1PEM\s0\fR form is the default format: it consists of the \fB\s-1DER\s0\fR format base64 encoded with additional header and footer lines. .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read a request from or standard input if this option is not specified. A request is only read if the creation options (\fB\-new\fR and \fB\-newkey\fR) are not specified. .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the input file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" This specifies the output filename to write to or standard output by default. .IP "\fB\-passout arg\fR" 4 .IX Item "-passout arg" the output file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-text\fR" 4 .IX Item "-text" prints out the certificate request in text form. .IP "\fB\-subject\fR" 4 .IX Item "-subject" prints out the request subject (or certificate subject if \fB\-x509\fR is specified) .IP "\fB\-pubkey\fR" 4 .IX Item "-pubkey" outputs the public key. .IP "\fB\-noout\fR" 4 .IX Item "-noout" this option prevents output of the encoded version of the request. .IP "\fB\-modulus\fR" 4 .IX Item "-modulus" this option prints out the value of the modulus of the public key contained in the request. .IP "\fB\-verify\fR" 4 .IX Item "-verify" verifies the signature on the request. .IP "\fB\-new\fR" 4 .IX Item "-new" this option generates a new certificate request. It will prompt the user for the relevant field values. The actual fields prompted for and their maximum and minimum sizes are specified in the configuration file and any requested extensions. .Sp If the \fB\-key\fR option is not used it will generate a new \s-1RSA\s0 private key using information specified in the configuration file. .IP "\fB\-subj arg\fR" 4 .IX Item "-subj arg" Replaces subject field of input request with specified data and outputs modified request. The arg must be formatted as \&\fI/type0=value0/type1=value1/type2=...\fR, characters may be escaped by \e (backslash), no spaces are skipped. .IP "\fB\-rand file(s)\fR" 4 .IX Item "-rand file(s)" a file or files containing random data used to seed the random number generator, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). Multiple files can be specified separated by a OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fB\-newkey arg\fR" 4 .IX Item "-newkey arg" this option creates a new certificate request and a new private key. The argument takes one of several forms. \fBrsa:nbits\fR, where \&\fBnbits\fR is the number of bits, generates an \s-1RSA\s0 key \fBnbits\fR in size. If \fBnbits\fR is omitted, i.e. \fB\-newkey rsa\fR specified, the default key size, specified in the configuration file is used. .Sp All other algorithms support the \fB\-newkey alg:file\fR form, where file may be an algorithm parameter file, created by the \fBgenpkey \-genparam\fR command or and X.509 certificate for a key with approriate algorithm. .Sp \&\fBparam:file\fR generates a key using the parameter file or certificate \fBfile\fR, the algorithm is determined by the parameters. \fBalgname:file\fR use algorithm \&\fBalgname\fR and parameter file \fBfile\fR: the two algorithms must match or an error occurs. \fBalgname\fR just uses algorithm \fBalgname\fR, and parameters, if neccessary should be specified via \fB\-pkeyopt\fR parameter. .Sp \&\fBdsa:filename\fR generates a \s-1DSA\s0 key using the parameters in the file \fBfilename\fR. \fBec:filename\fR generates \s-1EC\s0 key (usable both with \&\s-1ECDSA\s0 or \s-1ECDH\s0 algorithms), \fBgost2001:filename\fR generates \s-1GOST R 34.10\-2001\s0 key (requires \fBccgost\fR engine configured in the configuration file). If just \fBgost2001\fR is specified a parameter set should be specified by \fB\-pkeyopt paramset:X\fR .IP "\fB\-pkeyopt opt:value\fR" 4 .IX Item "-pkeyopt opt:value" set the public key algorithm option \fBopt\fR to \fBvalue\fR. The precise set of options supported depends on the public key algorithm used and its implementation. See \fB\s-1KEY GENERATION OPTIONS\s0\fR in the \fBgenpkey\fR manual page for more details. .IP "\fB\-key filename\fR" 4 .IX Item "-key filename" This specifies the file to read the private key from. It also accepts PKCS#8 format private keys for \s-1PEM\s0 format files. .IP "\fB\-keyform PEM|DER\fR" 4 .IX Item "-keyform PEM|DER" the format of the private key file specified in the \fB\-key\fR argument. \s-1PEM\s0 is the default. .IP "\fB\-keyout filename\fR" 4 .IX Item "-keyout filename" this gives the filename to write the newly created private key to. If this option is not specified then the filename present in the configuration file is used. .IP "\fB\-nodes\fR" 4 .IX Item "-nodes" if this option is specified then if a private key is created it will not be encrypted. .IP "\fB\-[digest]\fR" 4 .IX Item "-[digest]" this specifies the message digest to sign the request with (such as \&\fB\-md5\fR, \fB\-sha1\fR). This overrides the digest algorithm specified in the configuration file. For full list of possible digests see openssl dgst \-h output. .Sp Some public key algorithms may override this choice. For instance, \s-1DSA\s0 signatures always use \s-1SHA1, GOST R 34.10\s0 signatures always use \&\s-1GOST R 34.11\-94 \s0(\fB\-md_gost94\fR). .IP "\fB\-config filename\fR" 4 .IX Item "-config filename" this allows an alternative configuration file to be specified, this overrides the compile time filename or any specified in the \fB\s-1OPENSSL_CONF\s0\fR environment variable. .IP "\fB\-subj arg\fR" 4 .IX Item "-subj arg" sets subject name for new request or supersedes the subject name when processing a request. The arg must be formatted as \fI/type0=value0/type1=value1/type2=...\fR, characters may be escaped by \e (backslash), no spaces are skipped. .IP "\fB\-multivalue\-rdn\fR" 4 .IX Item "-multivalue-rdn" this option causes the \-subj argument to be interpreted with full support for multivalued RDNs. Example: .Sp \&\fI/DC=org/DC=OpenSSL/DC=users/UID=123456+CN=John Doe\fR .Sp If \-multi\-rdn is not used then the \s-1UID\s0 value is \fI123456+CN=John Doe\fR. .IP "\fB\-x509\fR" 4 .IX Item "-x509" this option outputs a self signed certificate instead of a certificate request. This is typically used to generate a test certificate or a self signed root \s-1CA.\s0 The extensions added to the certificate (if any) are specified in the configuration file. Unless specified using the \fBset_serial\fR option, a large random number will be used for the serial number. .IP "\fB\-days n\fR" 4 .IX Item "-days n" when the \fB\-x509\fR option is being used this specifies the number of days to certify the certificate for. The default is 30 days. .IP "\fB\-set_serial n\fR" 4 .IX Item "-set_serial n" serial number to use when outputting a self signed certificate. This may be specified as a decimal value or a hex value if preceded by \fB0x\fR. It is possible to use negative serial numbers but this is not recommended. .IP "\fB\-extensions section\fR" 4 .IX Item "-extensions section" .PD 0 .IP "\fB\-reqexts section\fR" 4 .IX Item "-reqexts section" .PD these options specify alternative sections to include certificate extensions (if the \fB\-x509\fR option is present) or certificate request extensions. This allows several different sections to be used in the same configuration file to specify requests for a variety of purposes. .IP "\fB\-utf8\fR" 4 .IX Item "-utf8" this option causes field values to be interpreted as \s-1UTF8\s0 strings, by default they are interpreted as \s-1ASCII.\s0 This means that the field values, whether prompted from a terminal or obtained from a configuration file, must be valid \s-1UTF8\s0 strings. .IP "\fB\-nameopt option\fR" 4 .IX Item "-nameopt option" option which determines how the subject or issuer names are displayed. The \&\fBoption\fR argument can be a single option or multiple options separated by commas. Alternatively the \fB\-nameopt\fR switch may be used more than once to set multiple options. See the \fIx509\fR\|(1) manual page for details. .IP "\fB\-reqopt\fR" 4 .IX Item "-reqopt" customise the output format used with \fB\-text\fR. The \fBoption\fR argument can be a single option or multiple options separated by commas. .Sp See discission of the \fB\-certopt\fR parameter in the \fBx509\fR command. .IP "\fB\-asn1\-kludge\fR" 4 .IX Item "-asn1-kludge" by default the \fBreq\fR command outputs certificate requests containing no attributes in the correct PKCS#10 format. However certain CAs will only accept requests containing no attributes in an invalid form: this option produces this invalid format. .Sp More precisely the \fBAttributes\fR in a PKCS#10 certificate request are defined as a \fB\s-1SET OF\s0 Attribute\fR. They are \fBnot \s-1OPTIONAL\s0\fR so if no attributes are present then they should be encoded as an empty \fB\s-1SET OF\s0\fR. The invalid form does not include the empty \&\fB\s-1SET OF\s0\fR whereas the correct form does. .Sp It should be noted that very few CAs still require the use of this option. .IP "\fB\-no\-asn1\-kludge\fR" 4 .IX Item "-no-asn1-kludge" Reverses effect of \fB\-asn1\-kludge\fR .IP "\fB\-newhdr\fR" 4 .IX Item "-newhdr" Adds the word \fB\s-1NEW\s0\fR to the \s-1PEM\s0 file header and footer lines on the outputted request. Some software (Netscape certificate server) and some CAs need this. .IP "\fB\-batch\fR" 4 .IX Item "-batch" non-interactive mode. .IP "\fB\-verbose\fR" 4 .IX Item "-verbose" print extra details about the operations being performed. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBreq\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .IP "\fB\-keygen_engine id\fR" 4 .IX Item "-keygen_engine id" specifies an engine (by its unique \fBid\fR string) which would be used for key generation operations. .SH "CONFIGURATION FILE FORMAT" .IX Header "CONFIGURATION FILE FORMAT" The configuration options are specified in the \fBreq\fR section of the configuration file. As with all configuration files if no value is specified in the specific section (i.e. \fBreq\fR) then the initial unnamed or \fBdefault\fR section is searched too. .PP The options available are described in detail below. .IP "\fBinput_password output_password\fR" 4 .IX Item "input_password output_password" The passwords for the input private key file (if present) and the output private key file (if one will be created). The command line options \fBpassin\fR and \fBpassout\fR override the configuration file values. .IP "\fBdefault_bits\fR" 4 .IX Item "default_bits" Specifies the default key size in bits. .Sp This option is used in conjunction with the \fB\-new\fR option to generate a new key. It can be overridden by specifying an explicit key size in the \fB\-newkey\fR option. The smallest accepted key size is 512 bits. If no key size is specified then 2048 bits is used. .IP "\fBdefault_keyfile\fR" 4 .IX Item "default_keyfile" This is the default filename to write a private key to. If not specified the key is written to standard output. This can be overridden by the \fB\-keyout\fR option. .IP "\fBoid_file\fR" 4 .IX Item "oid_file" This specifies a file containing additional \fB\s-1OBJECT IDENTIFIERS\s0\fR. Each line of the file should consist of the numerical form of the object identifier followed by white space then the short name followed by white space and finally the long name. .IP "\fBoid_section\fR" 4 .IX Item "oid_section" This specifies a section in the configuration file containing extra object identifiers. Each line should consist of the short name of the object identifier followed by \fB=\fR and the numerical form. The short and long names are the same when this option is used. .IP "\fB\s-1RANDFILE\s0\fR" 4 .IX Item "RANDFILE" This specifies a filename in which random number seed information is placed and read from, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). It is used for private key generation. .IP "\fBencrypt_key\fR" 4 .IX Item "encrypt_key" If this is set to \fBno\fR then if a private key is generated it is \&\fBnot\fR encrypted. This is equivalent to the \fB\-nodes\fR command line option. For compatibility \fBencrypt_rsa_key\fR is an equivalent option. .IP "\fBdefault_md\fR" 4 .IX Item "default_md" This option specifies the digest algorithm to use. Possible values include \fBmd5 sha1 mdc2\fR. If not present then \s-1MD5\s0 is used. This option can be overridden on the command line. .IP "\fBstring_mask\fR" 4 .IX Item "string_mask" This option masks out the use of certain string types in certain fields. Most users will not need to change this option. .Sp It can be set to several values \fBdefault\fR which is also the default option uses PrintableStrings, T61Strings and BMPStrings if the \&\fBpkix\fR value is used then only PrintableStrings and BMPStrings will be used. This follows the \s-1PKIX\s0 recommendation in \s-1RFC2459.\s0 If the \&\fButf8only\fR option is used then only UTF8Strings will be used: this is the \s-1PKIX\s0 recommendation in \s-1RFC2459\s0 after 2003. Finally the \fBnombstr\fR option just uses PrintableStrings and T61Strings: certain software has problems with BMPStrings and UTF8Strings: in particular Netscape. .IP "\fBreq_extensions\fR" 4 .IX Item "req_extensions" this specifies the configuration file section containing a list of extensions to add to the certificate request. It can be overridden by the \fB\-reqexts\fR command line switch. See the \&\fIx509v3_config\fR\|(5) manual page for details of the extension section format. .IP "\fBx509_extensions\fR" 4 .IX Item "x509_extensions" this specifies the configuration file section containing a list of extensions to add to certificate generated when the \fB\-x509\fR switch is used. It can be overridden by the \fB\-extensions\fR command line switch. .IP "\fBprompt\fR" 4 .IX Item "prompt" if set to the value \fBno\fR this disables prompting of certificate fields and just takes values from the config file directly. It also changes the expected format of the \fBdistinguished_name\fR and \fBattributes\fR sections. .IP "\fButf8\fR" 4 .IX Item "utf8" if set to the value \fByes\fR then field values to be interpreted as \s-1UTF8\s0 strings, by default they are interpreted as \s-1ASCII.\s0 This means that the field values, whether prompted from a terminal or obtained from a configuration file, must be valid \s-1UTF8\s0 strings. .IP "\fBattributes\fR" 4 .IX Item "attributes" this specifies the section containing any request attributes: its format is the same as \fBdistinguished_name\fR. Typically these may contain the challengePassword or unstructuredName types. They are currently ignored by OpenSSL's request signing utilities but some CAs might want them. .IP "\fBdistinguished_name\fR" 4 .IX Item "distinguished_name" This specifies the section containing the distinguished name fields to prompt for when generating a certificate or certificate request. The format is described in the next section. .SH "DISTINGUISHED NAME AND ATTRIBUTE SECTION FORMAT" .IX Header "DISTINGUISHED NAME AND ATTRIBUTE SECTION FORMAT" There are two separate formats for the distinguished name and attribute sections. If the \fBprompt\fR option is set to \fBno\fR then these sections just consist of field names and values: for example, .PP .Vb 3 \& CN=My Name \& OU=My Organization \& emailAddress=someone@somewhere.org .Ve .PP This allows external programs (e.g. \s-1GUI\s0 based) to generate a template file with all the field names and values and just pass it to \fBreq\fR. An example of this kind of configuration file is contained in the \fB\s-1EXAMPLES\s0\fR section. .PP Alternatively if the \fBprompt\fR option is absent or not set to \fBno\fR then the file contains field prompting information. It consists of lines of the form: .PP .Vb 4 \& fieldName="prompt" \& fieldName_default="default field value" \& fieldName_min= 2 \& fieldName_max= 4 .Ve .PP \&\*(L"fieldName\*(R" is the field name being used, for example commonName (or \s-1CN\s0). The \*(L"prompt\*(R" string is used to ask the user to enter the relevant details. If the user enters nothing then the default value is used if no default value is present then the field is omitted. A field can still be omitted if a default value is present if the user just enters the '.' character. .PP The number of characters entered must be between the fieldName_min and fieldName_max limits: there may be additional restrictions based on the field being used (for example countryName can only ever be two characters long and must fit in a PrintableString). .PP Some fields (such as organizationName) can be used more than once in a \s-1DN.\s0 This presents a problem because configuration files will not recognize the same name occurring twice. To avoid this problem if the fieldName contains some characters followed by a full stop they will be ignored. So for example a second organizationName can be input by calling it \*(L"1.organizationName\*(R". .PP The actual permitted field names are any object identifier short or long names. These are compiled into OpenSSL and include the usual values such as commonName, countryName, localityName, organizationName, organizationalUnitName, stateOrProvinceName. Additionally emailAddress is include as well as name, surname, givenName initials and dnQualifier. .PP Additional object identifiers can be defined with the \fBoid_file\fR or \&\fBoid_section\fR options in the configuration file. Any additional fields will be treated as though they were a DirectoryString. .SH "EXAMPLES" .IX Header "EXAMPLES" Examine and verify certificate request: .PP .Vb 1 \& openssl req \-in req.pem \-text \-verify \-noout .Ve .PP Create a private key and then generate a certificate request from it: .PP .Vb 2 \& openssl genrsa \-out key.pem 2048 \& openssl req \-new \-key key.pem \-out req.pem .Ve .PP The same but just using req: .PP .Vb 1 \& openssl req \-newkey rsa:2048 \-keyout key.pem \-out req.pem .Ve .PP Generate a self signed root certificate: .PP .Vb 1 \& openssl req \-x509 \-newkey rsa:2048 \-keyout key.pem \-out req.pem .Ve .PP Example of a file pointed to by the \fBoid_file\fR option: .PP .Vb 2 \& 1.2.3.4 shortName A longer Name \& 1.2.3.6 otherName Other longer Name .Ve .PP Example of a section pointed to by \fBoid_section\fR making use of variable expansion: .PP .Vb 2 \& testoid1=1.2.3.5 \& testoid2=${testoid1}.6 .Ve .PP Sample configuration file prompting for field values: .PP .Vb 6 \& [ req ] \& default_bits = 2048 \& default_keyfile = privkey.pem \& distinguished_name = req_distinguished_name \& attributes = req_attributes \& x509_extensions = v3_ca \& \& dirstring_type = nobmp \& \& [ req_distinguished_name ] \& countryName = Country Name (2 letter code) \& countryName_default = AU \& countryName_min = 2 \& countryName_max = 2 \& \& localityName = Locality Name (eg, city) \& \& organizationalUnitName = Organizational Unit Name (eg, section) \& \& commonName = Common Name (eg, YOUR name) \& commonName_max = 64 \& \& emailAddress = Email Address \& emailAddress_max = 40 \& \& [ req_attributes ] \& challengePassword = A challenge password \& challengePassword_min = 4 \& challengePassword_max = 20 \& \& [ v3_ca ] \& \& subjectKeyIdentifier=hash \& authorityKeyIdentifier=keyid:always,issuer:always \& basicConstraints = CA:true .Ve .PP Sample configuration containing all field values: .PP .Vb 1 \& RANDFILE = $ENV::HOME/.rnd \& \& [ req ] \& default_bits = 2048 \& default_keyfile = keyfile.pem \& distinguished_name = req_distinguished_name \& attributes = req_attributes \& prompt = no \& output_password = mypass \& \& [ req_distinguished_name ] \& C = GB \& ST = Test State or Province \& L = Test Locality \& O = Organization Name \& OU = Organizational Unit Name \& CN = Common Name \& emailAddress = test@email.address \& \& [ req_attributes ] \& challengePassword = A challenge password .Ve .SH "NOTES" .IX Header "NOTES" The header and footer lines in the \fB\s-1PEM\s0\fR format are normally: .PP .Vb 2 \& \-\-\-\-\-BEGIN CERTIFICATE REQUEST\-\-\-\-\- \& \-\-\-\-\-END CERTIFICATE REQUEST\-\-\-\-\- .Ve .PP some software (some versions of Netscape certificate server) instead needs: .PP .Vb 2 \& \-\-\-\-\-BEGIN NEW CERTIFICATE REQUEST\-\-\-\-\- \& \-\-\-\-\-END NEW CERTIFICATE REQUEST\-\-\-\-\- .Ve .PP which is produced with the \fB\-newhdr\fR option but is otherwise compatible. Either form is accepted transparently on input. .PP The certificate requests generated by \fBXenroll\fR with \s-1MSIE\s0 have extensions added. It includes the \fBkeyUsage\fR extension which determines the type of key (signature only or general purpose) and any additional OIDs entered by the script in an extendedKeyUsage extension. .SH "DIAGNOSTICS" .IX Header "DIAGNOSTICS" The following messages are frequently asked about: .PP .Vb 2 \& Using configuration from /some/path/openssl.cnf \& Unable to load config info .Ve .PP This is followed some time later by... .PP .Vb 2 \& unable to find \*(Aqdistinguished_name\*(Aq in config \& problems making Certificate Request .Ve .PP The first error message is the clue: it can't find the configuration file! Certain operations (like examining a certificate request) don't need a configuration file so its use isn't enforced. Generation of certificates or requests however does need a configuration file. This could be regarded as a bug. .PP Another puzzling message is this: .PP .Vb 2 \& Attributes: \& a0:00 .Ve .PP this is displayed when no attributes are present and the request includes the correct empty \fB\s-1SET OF\s0\fR structure (the \s-1DER\s0 encoding of which is 0xa0 0x00). If you just see: .PP .Vb 1 \& Attributes: .Ve .PP then the \fB\s-1SET OF\s0\fR is missing and the encoding is technically invalid (but it is tolerated). See the description of the command line option \fB\-asn1\-kludge\fR for more information. .SH "ENVIRONMENT VARIABLES" .IX Header "ENVIRONMENT VARIABLES" The variable \fB\s-1OPENSSL_CONF\s0\fR if defined allows an alternative configuration file location to be specified, it will be overridden by the \fB\-config\fR command line switch if it is present. For compatibility reasons the \fB\s-1SSLEAY_CONF\s0\fR environment variable serves the same purpose but its use is discouraged. .SH "BUGS" .IX Header "BUGS" OpenSSL's handling of T61Strings (aka TeletexStrings) is broken: it effectively treats them as \s-1ISO\-8859\-1 \s0(Latin 1), Netscape and \s-1MSIE\s0 have similar behaviour. This can cause problems if you need characters that aren't available in PrintableStrings and you don't want to or can't use BMPStrings. .PP As a consequence of the T61String handling the only correct way to represent accented characters in OpenSSL is to use a BMPString: unfortunately Netscape currently chokes on these. If you have to use accented characters with Netscape and \s-1MSIE\s0 then you currently need to use the invalid T61String form. .PP The current prompting is not very friendly. It doesn't allow you to confirm what you've just entered. Other things like extensions in certificate requests are statically defined in the configuration file. Some of these: like an email address in subjectAltName should be input by the user. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIx509\fR\|(1), \fIca\fR\|(1), \fIgenrsa\fR\|(1), \&\fIgendsa\fR\|(1), \fIconfig\fR\|(5), \&\fIx509v3_config\fR\|(5) man1/s_client.1ssl000064400000043421147210250140010004 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "S_CLIENT 1" .TH S_CLIENT 1 "2017-06-30" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" s_client \- SSL/TLS client program .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBs_client\fR [\fB\-connect host:port\fR] [\fB\-servername name\fR] [\fB\-verify depth\fR] [\fB\-verify_return_error\fR] [\fB\-cert filename\fR] [\fB\-certform DER|PEM\fR] [\fB\-key filename\fR] [\fB\-keyform DER|PEM\fR] [\fB\-pass arg\fR] [\fB\-CApath directory\fR] [\fB\-CAfile filename\fR] [\fB\-trusted_first\fR] [\fB\-no_alt_chains\fR] [\fB\-reconnect\fR] [\fB\-pause\fR] [\fB\-showcerts\fR] [\fB\-debug\fR] [\fB\-msg\fR] [\fB\-nbio_test\fR] [\fB\-state\fR] [\fB\-nbio\fR] [\fB\-crlf\fR] [\fB\-ign_eof\fR] [\fB\-no_ign_eof\fR] [\fB\-quiet\fR] [\fB\-ssl2\fR] [\fB\-ssl3\fR] [\fB\-tls1\fR] [\fB\-tls1_1\fR] [\fB\-tls1_2\fR] [\fB\-dtls1\fR] [\fB\-no_ssl2\fR] [\fB\-no_ssl3\fR] [\fB\-no_tls1\fR] [\fB\-no_tls1_1\fR] [\fB\-no_tls1_2\fR] [\fB\-fallback_scsv\fR] [\fB\-bugs\fR] [\fB\-cipher cipherlist\fR] [\fB\-krb5svc service\fR] [\fB\-serverpref\fR] [\fB\-starttls protocol\fR] [\fB\-engine id\fR] [\fB\-tlsextdebug\fR] [\fB\-no_ticket\fR] [\fB\-sess_out filename\fR] [\fB\-sess_in filename\fR] [\fB\-rand file(s)\fR] [\fB\-serverinfo types\fR] [\fB\-status\fR] [\fB\-alpn protocols\fR] [\fB\-nextprotoneg protocols\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBs_client\fR command implements a generic \s-1SSL/TLS\s0 client which connects to a remote host using \s-1SSL/TLS.\s0 It is a \fIvery\fR useful diagnostic tool for \&\s-1SSL\s0 servers. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-connect host:port\fR" 4 .IX Item "-connect host:port" This specifies the host and optional port to connect to. If not specified then an attempt is made to connect to the local host on port 4433. .IP "\fB\-servername name\fR" 4 .IX Item "-servername name" Set the \s-1TLS SNI \s0(Server Name Indication) extension in the ClientHello message. .IP "\fB\-cert certname\fR" 4 .IX Item "-cert certname" The certificate to use, if one is requested by the server. The default is not to use a certificate. .IP "\fB\-certform format\fR" 4 .IX Item "-certform format" The certificate format to use: \s-1DER\s0 or \s-1PEM. PEM\s0 is the default. .IP "\fB\-key keyfile\fR" 4 .IX Item "-key keyfile" The private key to use. If not specified then the certificate file will be used. .IP "\fB\-keyform format\fR" 4 .IX Item "-keyform format" The private format to use: \s-1DER\s0 or \s-1PEM. PEM\s0 is the default. .IP "\fB\-pass arg\fR" 4 .IX Item "-pass arg" the private key password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-verify depth\fR" 4 .IX Item "-verify depth" The verify depth to use. This specifies the maximum length of the server certificate chain and turns on server certificate verification. Currently the verify operation continues after errors so all the problems with a certificate chain can be seen. As a side effect the connection will never fail due to a server certificate verify failure. .IP "\fB\-verify_return_error\fR" 4 .IX Item "-verify_return_error" Return verification errors instead of continuing. This will typically abort the handshake with a fatal error. .IP "\fB\-CApath directory\fR" 4 .IX Item "-CApath directory" The directory to use for server certificate verification. This directory must be in \*(L"hash format\*(R", see \fBverify\fR for more information. These are also used when building the client certificate chain. .IP "\fB\-CAfile file\fR" 4 .IX Item "-CAfile file" A file containing trusted certificates to use during server authentication and to use when attempting to build the client certificate chain. .IP "\fB\-purpose, \-ignore_critical, \-issuer_checks, \-crl_check, \-crl_check_all, \-policy_check, \-extended_crl, \-x509_strict, \-policy \-check_ss_sig, \-trusted_first \-no_alt_chains\fR" 4 .IX Item "-purpose, -ignore_critical, -issuer_checks, -crl_check, -crl_check_all, -policy_check, -extended_crl, -x509_strict, -policy -check_ss_sig, -trusted_first -no_alt_chains" Set various certificate chain valiadition option. See the \&\fBverify\fR manual page for details. .IP "\fB\-reconnect\fR" 4 .IX Item "-reconnect" reconnects to the same server 5 times using the same session \s-1ID,\s0 this can be used as a test that session caching is working. .IP "\fB\-pause\fR" 4 .IX Item "-pause" pauses 1 second between each read and write call. .IP "\fB\-showcerts\fR" 4 .IX Item "-showcerts" display the whole server certificate chain: normally only the server certificate itself is displayed. .IP "\fB\-prexit\fR" 4 .IX Item "-prexit" print session information when the program exits. This will always attempt to print out information even if the connection fails. Normally information will only be printed out once if the connection succeeds. This option is useful because the cipher in use may be renegotiated or the connection may fail because a client certificate is required or is requested only after an attempt is made to access a certain \s-1URL.\s0 Note: the output produced by this option is not always accurate because a connection might never have been established. .IP "\fB\-state\fR" 4 .IX Item "-state" prints out the \s-1SSL\s0 session states. .IP "\fB\-debug\fR" 4 .IX Item "-debug" print extensive debugging information including a hex dump of all traffic. .IP "\fB\-msg\fR" 4 .IX Item "-msg" show all protocol messages with hex dump. .IP "\fB\-nbio_test\fR" 4 .IX Item "-nbio_test" tests non-blocking I/O .IP "\fB\-nbio\fR" 4 .IX Item "-nbio" turns on non-blocking I/O .IP "\fB\-crlf\fR" 4 .IX Item "-crlf" this option translated a line feed from the terminal into \s-1CR+LF\s0 as required by some servers. .IP "\fB\-ign_eof\fR" 4 .IX Item "-ign_eof" inhibit shutting down the connection when end of file is reached in the input. .IP "\fB\-quiet\fR" 4 .IX Item "-quiet" inhibit printing of session and certificate information. This implicitly turns on \fB\-ign_eof\fR as well. .IP "\fB\-no_ign_eof\fR" 4 .IX Item "-no_ign_eof" shut down the connection when end of file is reached in the input. Can be used to override the implicit \fB\-ign_eof\fR after \fB\-quiet\fR. .IP "\fB\-psk_identity identity\fR" 4 .IX Item "-psk_identity identity" Use the \s-1PSK\s0 identity \fBidentity\fR when using a \s-1PSK\s0 cipher suite. .IP "\fB\-psk key\fR" 4 .IX Item "-psk key" Use the \s-1PSK\s0 key \fBkey\fR when using a \s-1PSK\s0 cipher suite. The key is given as a hexadecimal number without leading 0x, for example \-psk 1a2b3c4d. .IP "\fB\-ssl2\fR, \fB\-ssl3\fR, \fB\-tls1\fR, \fB\-tls1_1\fR, \fB\-tls1_2\fR, \fB\-dtls1\fR, \fB\-no_ssl2\fR, \fB\-no_ssl3\fR, \fB\-no_tls1\fR, \fB\-no_tls1_1\fR, \fB\-no_tls1_2\fR" 4 .IX Item "-ssl2, -ssl3, -tls1, -tls1_1, -tls1_2, -dtls1, -no_ssl2, -no_ssl3, -no_tls1, -no_tls1_1, -no_tls1_2" These options require or disable the use of the specified \s-1SSL\s0 or \s-1TLS\s0 protocols. By default the initial handshake uses a \fIversion-flexible\fR method which will negotiate the highest mutually supported protocol version. .IP "\fB\-fallback_scsv\fR" 4 .IX Item "-fallback_scsv" Send \s-1TLS_FALLBACK_SCSV\s0 in the ClientHello. .IP "\fB\-bugs\fR" 4 .IX Item "-bugs" there are several known bug in \s-1SSL\s0 and \s-1TLS\s0 implementations. Adding this option enables various workarounds. .IP "\fB\-cipher cipherlist\fR" 4 .IX Item "-cipher cipherlist" this allows the cipher list sent by the client to be modified. Although the server determines which cipher suite is used it should take the first supported cipher in the list sent by the client. See the \fBciphers\fR command for more information. .IP "\fB\-serverpref\fR" 4 .IX Item "-serverpref" use the server's cipher preferences; only used for \s-1SSLV2.\s0 .IP "\fB\-krb5svc service\fR" 4 .IX Item "-krb5svc service" the Kerberos service name to use (default \*(L"host\*(R"). This means s_server will expect a ticket for the principal \fIservice\fR/hostname@REALM, and will need keys for that principal in its keytab. .IP "\fB\-starttls protocol\fR" 4 .IX Item "-starttls protocol" send the protocol-specific message(s) to switch to \s-1TLS\s0 for communication. \&\fBprotocol\fR is a keyword for the intended protocol. Currently, the only supported keywords are \*(L"smtp\*(R", \*(L"pop3\*(R", \*(L"imap\*(R", and \*(L"ftp\*(R". .IP "\fB\-tlsextdebug\fR" 4 .IX Item "-tlsextdebug" print out a hex dump of any \s-1TLS\s0 extensions received from the server. .IP "\fB\-no_ticket\fR" 4 .IX Item "-no_ticket" disable RFC4507bis session ticket support. .IP "\fB\-sess_out filename\fR" 4 .IX Item "-sess_out filename" output \s-1SSL\s0 session to \fBfilename\fR .IP "\fB\-sess_in sess.pem\fR" 4 .IX Item "-sess_in sess.pem" load \s-1SSL\s0 session from \fBfilename\fR. The client will attempt to resume a connection from this session. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBs_client\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .IP "\fB\-rand file(s)\fR" 4 .IX Item "-rand file(s)" a file or files containing random data used to seed the random number generator, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). Multiple files can be specified separated by a OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fB\-serverinfo types\fR" 4 .IX Item "-serverinfo types" a list of comma-separated \s-1TLS\s0 Extension Types (numbers between 0 and 65535). Each type will be sent as an empty ClientHello \s-1TLS\s0 Extension. The server's response (if any) will be encoded and displayed as a \s-1PEM\s0 file. .IP "\fB\-status\fR" 4 .IX Item "-status" sends a certificate status request to the server (\s-1OCSP\s0 stapling). The server response (if any) is printed out. .IP "\fB\-alpn protocols\fR, \fB\-nextprotoneg protocols\fR" 4 .IX Item "-alpn protocols, -nextprotoneg protocols" these flags enable the Enable the Application-Layer Protocol Negotiation or Next Protocol Negotiation extension, respectively. \s-1ALPN\s0 is the \s-1IETF\s0 standard and replaces \s-1NPN.\s0 The \fBprotocols\fR list is a comma-separated protocol names that the client should advertise support for. The list should contain most wanted protocols first. Protocol names are printable \s-1ASCII\s0 strings, for example \*(L"http/1.1\*(R" or \&\*(L"spdy/3\*(R". Empty list of protocols is treated specially and will cause the client to advertise support for the \s-1TLS\s0 extension but disconnect just after reciving ServerHello with a list of server supported protocols. .SH "CONNECTED COMMANDS" .IX Header "CONNECTED COMMANDS" If a connection is established with an \s-1SSL\s0 server then any data received from the server is displayed and any key presses will be sent to the server. When used interactively (which means neither \fB\-quiet\fR nor \fB\-ign_eof\fR have been given), the session will be renegotiated if the line begins with an \&\fBR\fR, and if the line begins with a \fBQ\fR or if end of file is reached, the connection will be closed down. .SH "NOTES" .IX Header "NOTES" \&\fBs_client\fR can be used to debug \s-1SSL\s0 servers. To connect to an \s-1SSL HTTP\s0 server the command: .PP .Vb 1 \& openssl s_client \-connect servername:443 .Ve .PP would typically be used (https uses port 443). If the connection succeeds then an \s-1HTTP\s0 command can be given such as \*(L"\s-1GET /\*(R"\s0 to retrieve a web page. .PP If the handshake fails then there are several possible causes, if it is nothing obvious like no client certificate then the \fB\-bugs\fR, \fB\-ssl2\fR, \&\fB\-ssl3\fR, \fB\-tls1\fR, \fB\-no_ssl2\fR, \fB\-no_ssl3\fR, \fB\-no_tls1\fR options can be tried in case it is a buggy server. In particular you should play with these options \fBbefore\fR submitting a bug report to an OpenSSL mailing list. .PP A frequent problem when attempting to get client certificates working is that a web client complains it has no certificates or gives an empty list to choose from. This is normally because the server is not sending the clients certificate authority in its \*(L"acceptable \s-1CA\s0 list\*(R" when it requests a certificate. By using \fBs_client\fR the \s-1CA\s0 list can be viewed and checked. However some servers only request client authentication after a specific \s-1URL\s0 is requested. To obtain the list in this case it is necessary to use the \fB\-prexit\fR option and send an \s-1HTTP\s0 request for an appropriate page. .PP If a certificate is specified on the command line using the \fB\-cert\fR option it will not be used unless the server specifically requests a client certificate. Therefor merely including a client certificate on the command line is no guarantee that the certificate works. .PP If there are problems verifying a server certificate then the \&\fB\-showcerts\fR option can be used to show the whole chain. .PP Since the SSLv23 client hello cannot include compression methods or extensions these will only be supported if its use is disabled, for example by using the \&\fB\-no_sslv2\fR option. .PP The \fBs_client\fR utility is a test tool and is designed to continue the handshake after any certificate verification errors. As a result it will accept any certificate chain (trusted or not) sent by the peer. None test applications should \fBnot\fR do this as it makes them vulnerable to a \s-1MITM\s0 attack. This behaviour can be changed by with the \fB\-verify_return_error\fR option: any verify errors are then returned aborting the handshake. .SH "BUGS" .IX Header "BUGS" Because this program has a lot of options and also because some of the techniques used are rather old, the C source of s_client is rather hard to read and not a model of how things should be done. A typical \&\s-1SSL\s0 client program would be much simpler. .PP The \fB\-prexit\fR option is a bit of a hack. We should really report information whenever a session is renegotiated. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIsess_id\fR\|(1), \fIs_server\fR\|(1), \fIciphers\fR\|(1) .SH "HISTORY" .IX Header "HISTORY" The \-no_alt_chains options was first added to OpenSSL 1.0.2b. man1/pkcs8.1ssl000064400000033102147210250140007227 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PKCS8 1" .TH PKCS8 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" pkcs8 \- PKCS#8 format private key conversion tool .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBpkcs8\fR [\fB\-topk8\fR] [\fB\-inform PEM|DER\fR] [\fB\-outform PEM|DER\fR] [\fB\-in filename\fR] [\fB\-passin arg\fR] [\fB\-out filename\fR] [\fB\-passout arg\fR] [\fB\-noiter\fR] [\fB\-nocrypt\fR] [\fB\-nooct\fR] [\fB\-embed\fR] [\fB\-nsdb\fR] [\fB\-v2 alg\fR] [\fB\-v2prf alg\fR] [\fB\-v1 alg\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBpkcs8\fR command processes private keys in PKCS#8 format. It can handle both unencrypted PKCS#8 PrivateKeyInfo format and EncryptedPrivateKeyInfo format with a variety of PKCS#5 (v1.5 and v2.0) and PKCS#12 algorithms. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-topk8\fR" 4 .IX Item "-topk8" Normally a PKCS#8 private key is expected on input and a traditional format private key will be written. With the \fB\-topk8\fR option the situation is reversed: it reads a traditional format private key and writes a PKCS#8 format key. .IP "\fB\-inform DER|PEM\fR" 4 .IX Item "-inform DER|PEM" This specifies the input format. If a PKCS#8 format key is expected on input then either a \fB\s-1DER\s0\fR or \fB\s-1PEM\s0\fR encoded version of a PKCS#8 key will be expected. Otherwise the \fB\s-1DER\s0\fR or \fB\s-1PEM\s0\fR format of the traditional format private key is used. .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read a key from or standard input if this option is not specified. If the key is encrypted a pass phrase will be prompted for. .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the input file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" This specifies the output filename to write a key to or standard output by default. If any encryption options are set then a pass phrase will be prompted for. The output filename should \fBnot\fR be the same as the input filename. .IP "\fB\-passout arg\fR" 4 .IX Item "-passout arg" the output file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-nocrypt\fR" 4 .IX Item "-nocrypt" PKCS#8 keys generated or input are normally PKCS#8 EncryptedPrivateKeyInfo structures using an appropriate password based encryption algorithm. With this option an unencrypted PrivateKeyInfo structure is expected or output. This option does not encrypt private keys at all and should only be used when absolutely necessary. Certain software such as some versions of Java code signing software used unencrypted private keys. .IP "\fB\-nooct\fR" 4 .IX Item "-nooct" This option generates \s-1RSA\s0 private keys in a broken format that some software uses. Specifically the private key should be enclosed in a \s-1OCTET STRING\s0 but some software just includes the structure itself without the surrounding \s-1OCTET STRING.\s0 .IP "\fB\-embed\fR" 4 .IX Item "-embed" This option generates \s-1DSA\s0 keys in a broken format. The \s-1DSA\s0 parameters are embedded inside the PrivateKey structure. In this form the \s-1OCTET STRING\s0 contains an \s-1ASN1 SEQUENCE\s0 consisting of two structures: a \s-1SEQUENCE\s0 containing the parameters and an \s-1ASN1 INTEGER\s0 containing the private key. .IP "\fB\-nsdb\fR" 4 .IX Item "-nsdb" This option generates \s-1DSA\s0 keys in a broken format compatible with Netscape private key databases. The PrivateKey contains a \s-1SEQUENCE\s0 consisting of the public and private keys respectively. .IP "\fB\-v2 alg\fR" 4 .IX Item "-v2 alg" This option enables the use of PKCS#5 v2.0 algorithms. Normally PKCS#8 private keys are encrypted with the password based encryption algorithm called \fBpbeWithMD5AndDES\-CBC\fR this uses 56 bit \s-1DES\s0 encryption but it was the strongest encryption algorithm supported in PKCS#5 v1.5. Using the \fB\-v2\fR option PKCS#5 v2.0 algorithms are used which can use any encryption algorithm such as 168 bit triple \s-1DES\s0 or 128 bit \s-1RC2\s0 however not many implementations support PKCS#5 v2.0 yet. If you are just using private keys with OpenSSL then this doesn't matter. .Sp The \fBalg\fR argument is the encryption algorithm to use, valid values include \&\fBdes\fR, \fBdes3\fR and \fBrc2\fR. It is recommended that \fBdes3\fR is used. .IP "\fB\-v2prf alg\fR" 4 .IX Item "-v2prf alg" This option sets the \s-1PRF\s0 algorithm to use with PKCS#5 v2.0. A typical value values would be \fBhmacWithSHA256\fR. If this option isn't set then the default for the cipher is used or \fBhmacWithSHA1\fR if there is no default. .IP "\fB\-v1 alg\fR" 4 .IX Item "-v1 alg" This option specifies a PKCS#5 v1.5 or PKCS#12 algorithm to use. A complete list of possible algorithms is included below. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBpkcs8\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .SH "NOTES" .IX Header "NOTES" The encrypted form of a \s-1PEM\s0 encode PKCS#8 files uses the following headers and footers: .PP .Vb 2 \& \-\-\-\-\-BEGIN ENCRYPTED PRIVATE KEY\-\-\-\-\- \& \-\-\-\-\-END ENCRYPTED PRIVATE KEY\-\-\-\-\- .Ve .PP The unencrypted form uses: .PP .Vb 2 \& \-\-\-\-\-BEGIN PRIVATE KEY\-\-\-\-\- \& \-\-\-\-\-END PRIVATE KEY\-\-\-\-\- .Ve .PP Private keys encrypted using PKCS#5 v2.0 algorithms and high iteration counts are more secure that those encrypted using the traditional SSLeay compatible formats. So if additional security is considered important the keys should be converted. .PP The default encryption is only 56 bits because this is the encryption that most current implementations of PKCS#8 will support. .PP Some software may use PKCS#12 password based encryption algorithms with PKCS#8 format private keys: these are handled automatically but there is no option to produce them. .PP It is possible to write out \s-1DER\s0 encoded encrypted private keys in PKCS#8 format because the encryption details are included at an \s-1ASN1\s0 level whereas the traditional format includes them at a \s-1PEM\s0 level. .SH "PKCS#5 v1.5 and PKCS#12 algorithms." .IX Header "PKCS#5 v1.5 and PKCS#12 algorithms." Various algorithms can be used with the \fB\-v1\fR command line option, including PKCS#5 v1.5 and PKCS#12. These are described in more detail below. .IP "\fB\s-1PBE\-MD2\-DES PBE\-MD5\-DES\s0\fR" 4 .IX Item "PBE-MD2-DES PBE-MD5-DES" These algorithms were included in the original PKCS#5 v1.5 specification. They only offer 56 bits of protection since they both use \s-1DES.\s0 .IP "\fB\s-1PBE\-SHA1\-RC2\-64 PBE\-MD2\-RC2\-64 PBE\-MD5\-RC2\-64 PBE\-SHA1\-DES\s0\fR" 4 .IX Item "PBE-SHA1-RC2-64 PBE-MD2-RC2-64 PBE-MD5-RC2-64 PBE-SHA1-DES" These algorithms are not mentioned in the original PKCS#5 v1.5 specification but they use the same key derivation algorithm and are supported by some software. They are mentioned in PKCS#5 v2.0. They use either 64 bit \s-1RC2\s0 or 56 bit \s-1DES.\s0 .IP "\fB\s-1PBE\-SHA1\-RC4\-128 PBE\-SHA1\-RC4\-40 PBE\-SHA1\-3DES PBE\-SHA1\-2DES PBE\-SHA1\-RC2\-128 PBE\-SHA1\-RC2\-40\s0\fR" 4 .IX Item "PBE-SHA1-RC4-128 PBE-SHA1-RC4-40 PBE-SHA1-3DES PBE-SHA1-2DES PBE-SHA1-RC2-128 PBE-SHA1-RC2-40" These algorithms use the PKCS#12 password based encryption algorithm and allow strong encryption algorithms like triple \s-1DES\s0 or 128 bit \s-1RC2\s0 to be used. .SH "EXAMPLES" .IX Header "EXAMPLES" Convert a private from traditional to PKCS#5 v2.0 format using triple \&\s-1DES:\s0 .PP .Vb 1 \& openssl pkcs8 \-in key.pem \-topk8 \-v2 des3 \-out enckey.pem .Ve .PP Convert a private from traditional to PKCS#5 v2.0 format using \s-1AES\s0 with 256 bits in \s-1CBC\s0 mode and \fBhmacWithSHA256\fR \s-1PRF:\s0 .PP .Vb 1 \& openssl pkcs8 \-in key.pem \-topk8 \-v2 aes\-256\-cbc \-v2prf hmacWithSHA256 \-out enckey.pem .Ve .PP Convert a private key to PKCS#8 using a PKCS#5 1.5 compatible algorithm (\s-1DES\s0): .PP .Vb 1 \& openssl pkcs8 \-in key.pem \-topk8 \-out enckey.pem .Ve .PP Convert a private key to PKCS#8 using a PKCS#12 compatible algorithm (3DES): .PP .Vb 1 \& openssl pkcs8 \-in key.pem \-topk8 \-out enckey.pem \-v1 PBE\-SHA1\-3DES .Ve .PP Read a \s-1DER\s0 unencrypted PKCS#8 format private key: .PP .Vb 1 \& openssl pkcs8 \-inform DER \-nocrypt \-in key.der \-out key.pem .Ve .PP Convert a private key from any PKCS#8 format to traditional format: .PP .Vb 1 \& openssl pkcs8 \-in pk8.pem \-out key.pem .Ve .SH "STANDARDS" .IX Header "STANDARDS" Test vectors from this PKCS#5 v2.0 implementation were posted to the pkcs-tng mailing list using triple \s-1DES, DES\s0 and \s-1RC2\s0 with high iteration counts, several people confirmed that they could decrypt the private keys produced and Therefore it can be assumed that the PKCS#5 v2.0 implementation is reasonably accurate at least as far as these algorithms are concerned. .PP The format of PKCS#8 \s-1DSA \s0(and other) private keys is not well documented: it is hidden away in PKCS#11 v2.01, section 11.9. OpenSSL's default \s-1DSA\s0 PKCS#8 private key format complies with this standard. .SH "BUGS" .IX Header "BUGS" There should be an option that prints out the encryption algorithm in use and other details such as the iteration count. .PP PKCS#8 using triple \s-1DES\s0 and PKCS#5 v2.0 should be the default private key format for OpenSSL: for compatibility several of the utilities use the old format at present. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdsa\fR\|(1), \fIrsa\fR\|(1), \fIgenrsa\fR\|(1), \&\fIgendsa\fR\|(1) man1/tsget.1ssl000064400000025651147210250140007337 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "TSGET 1" .TH TSGET 1 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" tsget \- Time Stamping HTTP/HTTPS client .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBtsget\fR \&\fB\-h\fR server_url [\fB\-e\fR extension] [\fB\-o\fR output] [\fB\-v\fR] [\fB\-d\fR] [\fB\-k\fR private_key.pem] [\fB\-p\fR key_password] [\fB\-c\fR client_cert.pem] [\fB\-C\fR CA_certs.pem] [\fB\-P\fR CA_path] [\fB\-r\fR file:file...] [\fB\-g\fR EGD_socket] [request]... .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBtsget\fR command can be used for sending a time stamp request, as specified in \fB\s-1RFC 3161\s0\fR, to a time stamp server over \s-1HTTP\s0 or \s-1HTTPS\s0 and storing the time stamp response in a file. This tool cannot be used for creating the requests and verifying responses, you can use the OpenSSL \fB\f(BIts\fB\|(1)\fR command to do that. \fBtsget\fR can send several requests to the server without closing the \s-1TCP\s0 connection if more than one requests are specified on the command line. .PP The tool sends the following \s-1HTTP\s0 request for each time stamp request: .PP .Vb 7 \& POST url HTTP/1.1 \& User\-Agent: OpenTSA tsget.pl/ \& Host: : \& Pragma: no\-cache \& Content\-Type: application/timestamp\-query \& Accept: application/timestamp\-reply \& Content\-Length: length of body \& \& ...binary request specified by the user... .Ve .PP \&\fBtsget\fR expects a response of type application/timestamp\-reply, which is written to a file without any interpretation. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-h\fR server_url" 4 .IX Item "-h server_url" The \s-1URL\s0 of the \s-1HTTP/HTTPS\s0 server listening for time stamp requests. .IP "\fB\-e\fR extension" 4 .IX Item "-e extension" If the \fB\-o\fR option is not given this argument specifies the extension of the output files. The base name of the output file will be the same as those of the input files. Default extension is '.tsr'. (Optional) .IP "\fB\-o\fR output" 4 .IX Item "-o output" This option can be specified only when just one request is sent to the server. The time stamp response will be written to the given output file. '\-' means standard output. In case of multiple time stamp requests or the absence of this argument the names of the output files will be derived from the names of the input files and the default or specified extension argument. (Optional) .IP "\fB\-v\fR" 4 .IX Item "-v" The name of the currently processed request is printed on standard error. (Optional) .IP "\fB\-d\fR" 4 .IX Item "-d" Switches on verbose mode for the underlying \fBcurl\fR library. You can see detailed debug messages for the connection. (Optional) .IP "\fB\-k\fR private_key.pem" 4 .IX Item "-k private_key.pem" (\s-1HTTPS\s0) In case of certificate-based client authentication over \s-1HTTPS\s0 must contain the private key of the user. The private key file can optionally be protected by a passphrase. The \fB\-c\fR option must also be specified. (Optional) .IP "\fB\-p\fR key_password" 4 .IX Item "-p key_password" (\s-1HTTPS\s0) Specifies the passphrase for the private key specified by the \fB\-k\fR argument. If this option is omitted and the key is passphrase protected \fBtsget\fR will ask for it. (Optional) .IP "\fB\-c\fR client_cert.pem" 4 .IX Item "-c client_cert.pem" (\s-1HTTPS\s0) In case of certificate-based client authentication over \s-1HTTPS\s0 must contain the X.509 certificate of the user. The \fB\-k\fR option must also be specified. If this option is not specified no certificate-based client authentication will take place. (Optional) .IP "\fB\-C\fR CA_certs.pem" 4 .IX Item "-C CA_certs.pem" (\s-1HTTPS\s0) The trusted \s-1CA\s0 certificate store. The certificate chain of the peer's certificate must include one of the \s-1CA\s0 certificates specified in this file. Either option \fB\-C\fR or option \fB\-P\fR must be given in case of \s-1HTTPS. \s0(Optional) .IP "\fB\-P\fR CA_path" 4 .IX Item "-P CA_path" (\s-1HTTPS\s0) The path containing the trusted \s-1CA\s0 certificates to verify the peer's certificate. The directory must be prepared with the \fBc_rehash\fR OpenSSL utility. Either option \fB\-C\fR or option \fB\-P\fR must be given in case of \&\s-1HTTPS. \s0(Optional) .IP "\fB\-rand\fR file:file..." 4 .IX Item "-rand file:file..." The files containing random data for seeding the random number generator. Multiple files can be specified, the separator is \fB;\fR for MS-Windows, \fB,\fR for \s-1VMS\s0 and \fB:\fR for all other platforms. (Optional) .IP "\fB\-g\fR EGD_socket" 4 .IX Item "-g EGD_socket" The name of an \s-1EGD\s0 socket to get random data from. (Optional) .IP "[request]..." 4 .IX Item "[request]..." List of files containing \fB\s-1RFC 3161\s0\fR DER-encoded time stamp requests. If no requests are specified only one request will be sent to the server and it will be read from the standard input. (Optional) .SH "ENVIRONMENT VARIABLES" .IX Header "ENVIRONMENT VARIABLES" The \fB\s-1TSGET\s0\fR environment variable can optionally contain default arguments. The content of this variable is added to the list of command line arguments. .SH "EXAMPLES" .IX Header "EXAMPLES" The examples below presume that \fBfile1.tsq\fR and \fBfile2.tsq\fR contain valid time stamp requests, tsa.opentsa.org listens at port 8080 for \s-1HTTP\s0 requests and at port 8443 for \s-1HTTPS\s0 requests, the \s-1TSA\s0 service is available at the /tsa absolute path. .PP Get a time stamp response for file1.tsq over \s-1HTTP,\s0 output is written to file1.tsr: .PP .Vb 1 \& tsget \-h http://tsa.opentsa.org:8080/tsa file1.tsq .Ve .PP Get a time stamp response for file1.tsq and file2.tsq over \s-1HTTP\s0 showing progress, output is written to file1.reply and file2.reply respectively: .PP .Vb 2 \& tsget \-h http://tsa.opentsa.org:8080/tsa \-v \-e .reply \e \& file1.tsq file2.tsq .Ve .PP Create a time stamp request, write it to file3.tsq, send it to the server and write the response to file3.tsr: .PP .Vb 3 \& openssl ts \-query \-data file3.txt \-cert | tee file3.tsq \e \& | tsget \-h http://tsa.opentsa.org:8080/tsa \e \& \-o file3.tsr .Ve .PP Get a time stamp response for file1.tsq over \s-1HTTPS\s0 without client authentication: .PP .Vb 2 \& tsget \-h https://tsa.opentsa.org:8443/tsa \e \& \-C cacerts.pem file1.tsq .Ve .PP Get a time stamp response for file1.tsq over \s-1HTTPS\s0 with certificate-based client authentication (it will ask for the passphrase if client_key.pem is protected): .PP .Vb 2 \& tsget \-h https://tsa.opentsa.org:8443/tsa \-C cacerts.pem \e \& \-k client_key.pem \-c client_cert.pem file1.tsq .Ve .PP You can shorten the previous command line if you make use of the \fB\s-1TSGET\s0\fR environment variable. The following commands do the same as the previous example: .PP .Vb 4 \& TSGET=\*(Aq\-h https://tsa.opentsa.org:8443/tsa \-C cacerts.pem \e \& \-k client_key.pem \-c client_cert.pem\*(Aq \& export TSGET \& tsget file1.tsq .Ve .SH "AUTHOR" .IX Header "AUTHOR" Zoltan Glozik , OpenTSA project (http://www.opentsa.org) .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIopenssl\fR\|(1), \fIts\fR\|(1), \fIcurl\fR\|(1), \&\fB\s-1RFC 3161\s0\fR man5/x509v3_config.5ssl000064400000054066147210250140010526 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "X509V3_CONFIG 5" .TH X509V3_CONFIG 5 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" x509v3_config \- X509 V3 certificate extension configuration format .SH "DESCRIPTION" .IX Header "DESCRIPTION" Several of the OpenSSL utilities can add extensions to a certificate or certificate request based on the contents of a configuration file. .PP Typically the application will contain an option to point to an extension section. Each line of the extension section takes the form: .PP .Vb 1 \& extension_name=[critical,] extension_options .Ve .PP If \fBcritical\fR is present then the extension will be critical. .PP The format of \fBextension_options\fR depends on the value of \fBextension_name\fR. .PP There are four main types of extension: \fIstring\fR extensions, \fImulti-valued\fR extensions, \fIraw\fR and \fIarbitrary\fR extensions. .PP String extensions simply have a string which contains either the value itself or how it is obtained. .PP For example: .PP .Vb 1 \& nsComment="This is a Comment" .Ve .PP Multi-valued extensions have a short form and a long form. The short form is a list of names and values: .PP .Vb 1 \& basicConstraints=critical,CA:true,pathlen:1 .Ve .PP The long form allows the values to be placed in a separate section: .PP .Vb 1 \& basicConstraints=critical,@bs_section \& \& [bs_section] \& \& CA=true \& pathlen=1 .Ve .PP Both forms are equivalent. .PP The syntax of raw extensions is governed by the extension code: it can for example contain data in multiple sections. The correct syntax to use is defined by the extension code itself: check out the certificate policies extension for an example. .PP If an extension type is unsupported then the \fIarbitrary\fR extension syntax must be used, see the \s-1ARBITRARY EXTENSIONS\s0 section for more details. .SH "STANDARD EXTENSIONS" .IX Header "STANDARD EXTENSIONS" The following sections describe each supported extension in detail. .SS "Basic Constraints." .IX Subsection "Basic Constraints." This is a multi valued extension which indicates whether a certificate is a \s-1CA\s0 certificate. The first (mandatory) name is \fB\s-1CA\s0\fR followed by \fB\s-1TRUE\s0\fR or \&\fB\s-1FALSE\s0\fR. If \fB\s-1CA\s0\fR is \fB\s-1TRUE\s0\fR then an optional \fBpathlen\fR name followed by an non-negative value can be included. .PP For example: .PP .Vb 1 \& basicConstraints=CA:TRUE \& \& basicConstraints=CA:FALSE \& \& basicConstraints=critical,CA:TRUE, pathlen:0 .Ve .PP A \s-1CA\s0 certificate \fBmust\fR include the basicConstraints value with the \s-1CA\s0 field set to \s-1TRUE.\s0 An end user certificate must either set \s-1CA\s0 to \s-1FALSE\s0 or exclude the extension entirely. Some software may require the inclusion of basicConstraints with \s-1CA\s0 set to \s-1FALSE\s0 for end entity certificates. .PP The pathlen parameter indicates the maximum number of CAs that can appear below this one in a chain. So if you have a \s-1CA\s0 with a pathlen of zero it can only be used to sign end user certificates and not further CAs. .SS "Key Usage." .IX Subsection "Key Usage." Key usage is a multi valued extension consisting of a list of names of the permitted key usages. .PP The supporte names are: digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment, keyAgreement, keyCertSign, cRLSign, encipherOnly and decipherOnly. .PP Examples: .PP .Vb 1 \& keyUsage=digitalSignature, nonRepudiation \& \& keyUsage=critical, keyCertSign .Ve .SS "Extended Key Usage." .IX Subsection "Extended Key Usage." This extensions consists of a list of usages indicating purposes for which the certificate public key can be used for, .PP These can either be object short names or the dotted numerical form of OIDs. While any \s-1OID\s0 can be used only certain values make sense. In particular the following \s-1PKIX, NS\s0 and \s-1MS\s0 values are meaningful: .PP .Vb 10 \& Value Meaning \& \-\-\-\-\- \-\-\-\-\-\-\- \& serverAuth SSL/TLS Web Server Authentication. \& clientAuth SSL/TLS Web Client Authentication. \& codeSigning Code signing. \& emailProtection E\-mail Protection (S/MIME). \& timeStamping Trusted Timestamping \& msCodeInd Microsoft Individual Code Signing (authenticode) \& msCodeCom Microsoft Commercial Code Signing (authenticode) \& msCTLSign Microsoft Trust List Signing \& msSGC Microsoft Server Gated Crypto \& msEFS Microsoft Encrypted File System \& nsSGC Netscape Server Gated Crypto .Ve .PP Examples: .PP .Vb 2 \& extendedKeyUsage=critical,codeSigning,1.2.3.4 \& extendedKeyUsage=nsSGC,msSGC .Ve .SS "Subject Key Identifier." .IX Subsection "Subject Key Identifier." This is really a string extension and can take two possible values. Either the word \fBhash\fR which will automatically follow the guidelines in \s-1RFC3280\s0 or a hex string giving the extension value to include. The use of the hex string is strongly discouraged. .PP Example: .PP .Vb 1 \& subjectKeyIdentifier=hash .Ve .SS "Authority Key Identifier." .IX Subsection "Authority Key Identifier." The authority key identifier extension permits two options. keyid and issuer: both can take the optional value \*(L"always\*(R". .PP If the keyid option is present an attempt is made to copy the subject key identifier from the parent certificate. If the value \*(L"always\*(R" is present then an error is returned if the option fails. .PP The issuer option copies the issuer and serial number from the issuer certificate. This will only be done if the keyid option fails or is not included unless the \*(L"always\*(R" flag will always include the value. .PP Example: .PP .Vb 1 \& authorityKeyIdentifier=keyid,issuer .Ve .SS "Subject Alternative Name." .IX Subsection "Subject Alternative Name." The subject alternative name extension allows various literal values to be included in the configuration file. These include \fBemail\fR (an email address) \&\fB\s-1URI\s0\fR a uniform resource indicator, \fB\s-1DNS\s0\fR (a \s-1DNS\s0 domain name), \fB\s-1RID\s0\fR (a registered \s-1ID: OBJECT IDENTIFIER\s0), \fB\s-1IP\s0\fR (an \s-1IP\s0 address), \fBdirName\fR (a distinguished name) and otherName. .PP The email option include a special 'copy' value. This will automatically include and email addresses contained in the certificate subject name in the extension. .PP The \s-1IP\s0 address used in the \fB\s-1IP\s0\fR options can be in either IPv4 or IPv6 format. .PP The value of \fBdirName\fR should point to a section containing the distinguished name to use as a set of name value pairs. Multi values AVAs can be formed by prefacing the name with a \fB+\fR character. .PP otherName can include arbitrary data associated with an \s-1OID:\s0 the value should be the \s-1OID\s0 followed by a semicolon and the content in standard \&\fIASN1_generate_nconf\fR\|(3) format. .PP Examples: .PP .Vb 5 \& subjectAltName=email:copy,email:my@other.address,URI:http://my.url.here/ \& subjectAltName=IP:192.168.7.1 \& subjectAltName=IP:13::17 \& subjectAltName=email:my@other.address,RID:1.2.3.4 \& subjectAltName=otherName:1.2.3.4;UTF8:some other identifier \& \& subjectAltName=dirName:dir_sect \& \& [dir_sect] \& C=UK \& O=My Organization \& OU=My Unit \& CN=My Name .Ve .SS "Issuer Alternative Name." .IX Subsection "Issuer Alternative Name." The issuer alternative name option supports all the literal options of subject alternative name. It does \fBnot\fR support the email:copy option because that would not make sense. It does support an additional issuer:copy option that will copy all the subject alternative name values from the issuer certificate (if possible). .PP Example: .PP .Vb 1 \& issuserAltName = issuer:copy .Ve .SS "Authority Info Access." .IX Subsection "Authority Info Access." The authority information access extension gives details about how to access certain information relating to the \s-1CA.\s0 Its syntax is accessOID;location where \fIlocation\fR has the same syntax as subject alternative name (except that email:copy is not supported). accessOID can be any valid \s-1OID\s0 but only certain values are meaningful, for example \s-1OCSP\s0 and caIssuers. .PP Example: .PP .Vb 2 \& authorityInfoAccess = OCSP;URI:http://ocsp.my.host/ \& authorityInfoAccess = caIssuers;URI:http://my.ca/ca.html .Ve .SS "\s-1CRL\s0 distribution points." .IX Subsection "CRL distribution points." This is a multi-valued extension whose options can be either in name:value pair using the same form as subject alternative name or a single value representing a section name containing all the distribution point fields. .PP For a name:value pair a new DistributionPoint with the fullName field set to the given value both the cRLissuer and reasons fields are omitted in this case. .PP In the single option case the section indicated contains values for each field. In this section: .PP If the name is \*(L"fullname\*(R" the value field should contain the full name of the distribution point in the same format as subject alternative name. .PP If the name is \*(L"relativename\*(R" then the value field should contain a section name whose contents represent a \s-1DN\s0 fragment to be placed in this field. .PP The name \*(L"CRLIssuer\*(R" if present should contain a value for this field in subject alternative name format. .PP If the name is \*(L"reasons\*(R" the value field should consist of a comma separated field containing the reasons. Valid reasons are: \*(L"keyCompromise\*(R", \&\*(L"CACompromise\*(R", \*(L"affiliationChanged\*(R", \*(L"superseded\*(R", \*(L"cessationOfOperation\*(R", \&\*(L"certificateHold\*(R", \*(L"privilegeWithdrawn\*(R" and \*(L"AACompromise\*(R". .PP Simple examples: .PP .Vb 2 \& crlDistributionPoints=URI:http://myhost.com/myca.crl \& crlDistributionPoints=URI:http://my.com/my.crl,URI:http://oth.com/my.crl .Ve .PP Full distribution point example: .PP .Vb 1 \& crlDistributionPoints=crldp1_section \& \& [crldp1_section] \& \& fullname=URI:http://myhost.com/myca.crl \& CRLissuer=dirName:issuer_sect \& reasons=keyCompromise, CACompromise \& \& [issuer_sect] \& C=UK \& O=Organisation \& CN=Some Name .Ve .SS "Issuing Distribution Point" .IX Subsection "Issuing Distribution Point" This extension should only appear in CRLs. It is a multi valued extension whose syntax is similar to the \*(L"section\*(R" pointed to by the \s-1CRL\s0 distribution points extension with a few differences. .PP The names \*(L"reasons\*(R" and \*(L"CRLissuer\*(R" are not recognized. .PP The name \*(L"onlysomereasons\*(R" is accepted which sets this field. The value is in the same format as the \s-1CRL\s0 distribution point \*(L"reasons\*(R" field. .PP The names \*(L"onlyuser\*(R", \*(L"onlyCA\*(R", \*(L"onlyAA\*(R" and \*(L"indirectCRL\*(R" are also accepted the values should be a boolean value (\s-1TRUE\s0 or \s-1FALSE\s0) to indicate the value of the corresponding field. .PP Example: .PP .Vb 1 \& issuingDistributionPoint=critical, @idp_section \& \& [idp_section] \& \& fullname=URI:http://myhost.com/myca.crl \& indirectCRL=TRUE \& onlysomereasons=keyCompromise, CACompromise \& \& [issuer_sect] \& C=UK \& O=Organisation \& CN=Some Name .Ve .SS "Certificate Policies." .IX Subsection "Certificate Policies." This is a \fIraw\fR extension. All the fields of this extension can be set by using the appropriate syntax. .PP If you follow the \s-1PKIX\s0 recommendations and just using one \s-1OID\s0 then you just include the value of that \s-1OID.\s0 Multiple OIDs can be set separated by commas, for example: .PP .Vb 1 \& certificatePolicies= 1.2.4.5, 1.1.3.4 .Ve .PP If you wish to include qualifiers then the policy \s-1OID\s0 and qualifiers need to be specified in a separate section: this is done by using the \f(CW@section\fR syntax instead of a literal \s-1OID\s0 value. .PP The section referred to must include the policy \s-1OID\s0 using the name policyIdentifier, cPSuri qualifiers can be included using the syntax: .PP .Vb 1 \& CPS.nnn=value .Ve .PP userNotice qualifiers can be set using the syntax: .PP .Vb 1 \& userNotice.nnn=@notice .Ve .PP The value of the userNotice qualifier is specified in the relevant section. This section can include explicitText, organization and noticeNumbers options. explicitText and organization are text strings, noticeNumbers is a comma separated list of numbers. The organization and noticeNumbers options (if included) must \s-1BOTH\s0 be present. If you use the userNotice option with \s-1IE5\s0 then you need the 'ia5org' option at the top level to modify the encoding: otherwise it will not be interpreted properly. .PP Example: .PP .Vb 1 \& certificatePolicies=ia5org,1.2.3.4,1.5.6.7.8,@polsect \& \& [polsect] \& \& policyIdentifier = 1.3.5.8 \& CPS.1="http://my.host.name/" \& CPS.2="http://my.your.name/" \& userNotice.1=@notice \& \& [notice] \& \& explicitText="Explicit Text Here" \& organization="Organisation Name" \& noticeNumbers=1,2,3,4 .Ve .PP The \fBia5org\fR option changes the type of the \fIorganization\fR field. In \s-1RFC2459\s0 it can only be of type DisplayText. In \s-1RFC3280\s0 IA5Strring is also permissible. Some software (for example some versions of \s-1MSIE\s0) may require ia5org. .SS "Policy Constraints" .IX Subsection "Policy Constraints" This is a multi-valued extension which consisting of the names \&\fBrequireExplicitPolicy\fR or \fBinhibitPolicyMapping\fR and a non negative intger value. At least one component must be present. .PP Example: .PP .Vb 1 \& policyConstraints = requireExplicitPolicy:3 .Ve .SS "Inhibit Any Policy" .IX Subsection "Inhibit Any Policy" This is a string extension whose value must be a non negative integer. .PP Example: .PP .Vb 1 \& inhibitAnyPolicy = 2 .Ve .SS "Name Constraints" .IX Subsection "Name Constraints" The name constraints extension is a multi-valued extension. The name should begin with the word \fBpermitted\fR or \fBexcluded\fR followed by a \fB;\fR. The rest of the name and the value follows the syntax of subjectAltName except email:copy is not supported and the \fB\s-1IP\s0\fR form should consist of an \s-1IP\s0 addresses and subnet mask separated by a \fB/\fR. .PP Examples: .PP .Vb 1 \& nameConstraints=permitted;IP:192.168.0.0/255.255.0.0 \& \& nameConstraints=permitted;email:.somedomain.com \& \& nameConstraints=excluded;email:.com .Ve .SS "\s-1OCSP\s0 No Check" .IX Subsection "OCSP No Check" The \s-1OCSP\s0 No Check extension is a string extension but its value is ignored. .PP Example: .PP .Vb 1 \& noCheck = ignored .Ve .SH "DEPRECATED EXTENSIONS" .IX Header "DEPRECATED EXTENSIONS" The following extensions are non standard, Netscape specific and largely obsolete. Their use in new applications is discouraged. .SS "Netscape String extensions." .IX Subsection "Netscape String extensions." Netscape Comment (\fBnsComment\fR) is a string extension containing a comment which will be displayed when the certificate is viewed in some browsers. .PP Example: .PP .Vb 1 \& nsComment = "Some Random Comment" .Ve .PP Other supported extensions in this category are: \fBnsBaseUrl\fR, \&\fBnsRevocationUrl\fR, \fBnsCaRevocationUrl\fR, \fBnsRenewalUrl\fR, \fBnsCaPolicyUrl\fR and \fBnsSslServerName\fR. .SS "Netscape Certificate Type" .IX Subsection "Netscape Certificate Type" This is a multi-valued extensions which consists of a list of flags to be included. It was used to indicate the purposes for which a certificate could be used. The basicConstraints, keyUsage and extended key usage extensions are now used instead. .PP Acceptable values for nsCertType are: \fBclient\fR, \fBserver\fR, \fBemail\fR, \&\fBobjsign\fR, \fBreserved\fR, \fBsslCA\fR, \fBemailCA\fR, \fBobjCA\fR. .SH "ARBITRARY EXTENSIONS" .IX Header "ARBITRARY EXTENSIONS" If an extension is not supported by the OpenSSL code then it must be encoded using the arbitrary extension format. It is also possible to use the arbitrary format for supported extensions. Extreme care should be taken to ensure that the data is formatted correctly for the given extension type. .PP There are two ways to encode arbitrary extensions. .PP The first way is to use the word \s-1ASN1\s0 followed by the extension content using the same syntax as \fIASN1_generate_nconf\fR\|(3). For example: .PP .Vb 1 \& 1.2.3.4=critical,ASN1:UTF8String:Some random data \& \& 1.2.3.4=ASN1:SEQUENCE:seq_sect \& \& [seq_sect] \& \& field1 = UTF8:field1 \& field2 = UTF8:field2 .Ve .PP It is also possible to use the word \s-1DER\s0 to include the raw encoded data in any extension. .PP .Vb 2 \& 1.2.3.4=critical,DER:01:02:03:04 \& 1.2.3.4=DER:01020304 .Ve .PP The value following \s-1DER\s0 is a hex dump of the \s-1DER\s0 encoding of the extension Any extension can be placed in this form to override the default behaviour. For example: .PP .Vb 1 \& basicConstraints=critical,DER:00:01:02:03 .Ve .SH "WARNING" .IX Header "WARNING" There is no guarantee that a specific implementation will process a given extension. It may therefore be sometimes possible to use certificates for purposes prohibited by their extensions because a specific application does not recognize or honour the values of the relevant extensions. .PP The \s-1DER\s0 and \s-1ASN1\s0 options should be used with caution. It is possible to create totally invalid extensions if they are not used carefully. .SH "NOTES" .IX Header "NOTES" If an extension is multi-value and a field value must contain a comma the long form must be used otherwise the comma would be misinterpreted as a field separator. For example: .PP .Vb 1 \& subjectAltName=URI:ldap://somehost.com/CN=foo,OU=bar .Ve .PP will produce an error but the equivalent form: .PP .Vb 1 \& subjectAltName=@subject_alt_section \& \& [subject_alt_section] \& subjectAltName=URI:ldap://somehost.com/CN=foo,OU=bar .Ve .PP is valid. .PP Due to the behaviour of the OpenSSL \fBconf\fR library the same field name can only occur once in a section. This means that: .PP .Vb 1 \& subjectAltName=@alt_section \& \& [alt_section] \& \& email=steve@here \& email=steve@there .Ve .PP will only recognize the last value. This can be worked around by using the form: .PP .Vb 1 \& [alt_section] \& \& email.1=steve@here \& email.2=steve@there .Ve .SH "HISTORY" .IX Header "HISTORY" The X509v3 extension code was first added to OpenSSL 0.9.2. .PP Policy mappings, inhibit any policy and name constraints support was added in OpenSSL 0.9.8 .PP The \fBdirectoryName\fR and \fBotherName\fR option as well as the \fB\s-1ASN1\s0\fR option for arbitrary extensions was added in OpenSSL 0.9.8 .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIreq\fR\|(1), \fIca\fR\|(1), \fIx509\fR\|(1), \&\fIASN1_generate_nconf\fR\|(3) man5/config.5ssl000064400000041511147210250140007457 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CONFIG 5" .TH CONFIG 5 "2017-01-26" "1.0.2k" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" config \- OpenSSL CONF library configuration files .SH "DESCRIPTION" .IX Header "DESCRIPTION" The OpenSSL \s-1CONF\s0 library can be used to read configuration files. It is used for the OpenSSL master configuration file \fBopenssl.cnf\fR and in a few other places like \fB\s-1SPKAC\s0\fR files and certificate extension files for the \fBx509\fR utility. OpenSSL applications can also use the \&\s-1CONF\s0 library for their own purposes. .PP A configuration file is divided into a number of sections. Each section starts with a line \fB[ section_name ]\fR and ends when a new section is started or end of file is reached. A section name can consist of alphanumeric characters and underscores. .PP The first section of a configuration file is special and is referred to as the \fBdefault\fR section this is usually unnamed and is from the start of file until the first named section. When a name is being looked up it is first looked up in a named section (if any) and then the default section. .PP The environment is mapped onto a section called \fB\s-1ENV\s0\fR. .PP Comments can be included by preceding them with the \fB#\fR character .PP Each section in a configuration file consists of a number of name and value pairs of the form \fBname=value\fR .PP The \fBname\fR string can contain any alphanumeric characters as well as a few punctuation symbols such as \fB.\fR \fB,\fR \fB;\fR and \fB_\fR. .PP The \fBvalue\fR string consists of the string following the \fB=\fR character until end of line with any leading and trailing white space removed. .PP The value string undergoes variable expansion. This can be done by including the form \fB\f(CB$var\fB\fR or \fB${var}\fR: this will substitute the value of the named variable in the current section. It is also possible to substitute a value from another section using the syntax \fB\f(CB$section::name\fB\fR or \fB${section::name}\fR. By using the form \fB\f(CB$ENV::name\fB\fR environment variables can be substituted. It is also possible to assign values to environment variables by using the name \fBENV::name\fR, this will work if the program looks up environment variables using the \fB\s-1CONF\s0\fR library instead of calling \fB\f(BIgetenv()\fB\fR directly. .PP It is possible to escape certain characters by using any kind of quote or the \fB\e\fR character. By making the last character of a line a \fB\e\fR a \fBvalue\fR string can be spread across multiple lines. In addition the sequences \fB\en\fR, \fB\er\fR, \fB\eb\fR and \fB\et\fR are recognized. .SH "OPENSSL LIBRARY CONFIGURATION" .IX Header "OPENSSL LIBRARY CONFIGURATION" In OpenSSL 0.9.7 and later applications can automatically configure certain aspects of OpenSSL using the master OpenSSL configuration file, or optionally an alternative configuration file. The \fBopenssl\fR utility includes this functionality: any sub command uses the master OpenSSL configuration file unless an option is used in the sub command to use an alternative configuration file. .PP To enable library configuration the default section needs to contain an appropriate line which points to the main configuration section. The default name is \fBopenssl_conf\fR which is used by the \fBopenssl\fR utility. Other applications may use an alternative name such as \fBmyapplicaton_conf\fR. .PP The configuration section should consist of a set of name value pairs which contain specific module configuration information. The \fBname\fR represents the name of the \fIconfiguration module\fR the meaning of the \fBvalue\fR is module specific: it may, for example, represent a further configuration section containing configuration module specific information. E.g. .PP .Vb 1 \& openssl_conf = openssl_init \& \& [openssl_init] \& \& oid_section = new_oids \& engines = engine_section \& \& [new_oids] \& \& ... new oids here ... \& \& [engine_section] \& \& ... engine stuff here ... .Ve .PP The features of each configuration module are described below. .SS "\s-1ASN1 OBJECT CONFIGURATION MODULE\s0" .IX Subsection "ASN1 OBJECT CONFIGURATION MODULE" This module has the name \fBoid_section\fR. The value of this variable points to a section containing name value pairs of OIDs: the name is the \s-1OID\s0 short and long name, the value is the numerical form of the \s-1OID.\s0 Although some of the \fBopenssl\fR utility sub commands already have their own \s-1ASN1 OBJECT\s0 section functionality not all do. By using the \s-1ASN1 OBJECT\s0 configuration module \&\fBall\fR the \fBopenssl\fR utility sub commands can see the new objects as well as any compliant applications. For example: .PP .Vb 1 \& [new_oids] \& \& some_new_oid = 1.2.3.4 \& some_other_oid = 1.2.3.5 .Ve .PP In OpenSSL 0.9.8 it is also possible to set the value to the long name followed by a comma and the numerical \s-1OID\s0 form. For example: .PP .Vb 1 \& shortName = some object long name, 1.2.3.4 .Ve .SS "\s-1ENGINE CONFIGURATION MODULE\s0" .IX Subsection "ENGINE CONFIGURATION MODULE" This \s-1ENGINE\s0 configuration module has the name \fBengines\fR. The value of this variable points to a section containing further \s-1ENGINE\s0 configuration information. .PP The section pointed to by \fBengines\fR is a table of engine names (though see \&\fBengine_id\fR below) and further sections containing configuration information specific to each \s-1ENGINE.\s0 .PP Each \s-1ENGINE\s0 specific section is used to set default algorithms, load dynamic, perform initialization and send ctrls. The actual operation performed depends on the \fIcommand\fR name which is the name of the name value pair. The currently supported commands are listed below. .PP For example: .PP .Vb 1 \& [engine_section] \& \& # Configure ENGINE named "foo" \& foo = foo_section \& # Configure ENGINE named "bar" \& bar = bar_section \& \& [foo_section] \& ... foo ENGINE specific commands ... \& \& [bar_section] \& ... "bar" ENGINE specific commands ... .Ve .PP The command \fBengine_id\fR is used to give the \s-1ENGINE\s0 name. If used this command must be first. For example: .PP .Vb 3 \& [engine_section] \& # This would normally handle an ENGINE named "foo" \& foo = foo_section \& \& [foo_section] \& # Override default name and use "myfoo" instead. \& engine_id = myfoo .Ve .PP The command \fBdynamic_path\fR loads and adds an \s-1ENGINE\s0 from the given path. It is equivalent to sending the ctrls \fB\s-1SO_PATH\s0\fR with the path argument followed by \fB\s-1LIST_ADD\s0\fR with value 2 and \fB\s-1LOAD\s0\fR to the dynamic \s-1ENGINE.\s0 If this is not the required behaviour then alternative ctrls can be sent directly to the dynamic \s-1ENGINE\s0 using ctrl commands. .PP The command \fBinit\fR determines whether to initialize the \s-1ENGINE.\s0 If the value is \fB0\fR the \s-1ENGINE\s0 will not be initialized, if \fB1\fR and attempt it made to initialized the \s-1ENGINE\s0 immediately. If the \fBinit\fR command is not present then an attempt will be made to initialize the \s-1ENGINE\s0 after all commands in its section have been processed. .PP The command \fBdefault_algorithms\fR sets the default algorithms an \s-1ENGINE\s0 will supply using the functions \fB\f(BIENGINE_set_default_string()\fB\fR .PP If the name matches none of the above command names it is assumed to be a ctrl command which is sent to the \s-1ENGINE.\s0 The value of the command is the argument to the ctrl command. If the value is the string \fB\s-1EMPTY\s0\fR then no value is sent to the command. .PP For example: .PP .Vb 1 \& [engine_section] \& \& # Configure ENGINE named "foo" \& foo = foo_section \& \& [foo_section] \& # Load engine from DSO \& dynamic_path = /some/path/fooengine.so \& # A foo specific ctrl. \& some_ctrl = some_value \& # Another ctrl that doesn\*(Aqt take a value. \& other_ctrl = EMPTY \& # Supply all default algorithms \& default_algorithms = ALL .Ve .SS "\s-1EVP CONFIGURATION MODULE\s0" .IX Subsection "EVP CONFIGURATION MODULE" This modules has the name \fBalg_section\fR which points to a section containing algorithm commands. .PP Currently the only algorithm command supported is \fBfips_mode\fR whose value should be a boolean string such as \fBon\fR or \fBoff\fR. If the value is \&\fBon\fR this attempt to enter \s-1FIPS\s0 mode. If the call fails or the library is not \s-1FIPS\s0 capable then an error occurs. .PP For example: .PP .Vb 1 \& alg_section = evp_settings \& \& [evp_settings] \& \& fips_mode = on .Ve .SH "NOTES" .IX Header "NOTES" If a configuration file attempts to expand a variable that doesn't exist then an error is flagged and the file will not load. This can happen if an attempt is made to expand an environment variable that doesn't exist. For example in a previous version of OpenSSL the default OpenSSL master configuration file used the value of \fB\s-1HOME\s0\fR which may not be defined on non Unix systems and would cause an error. .PP This can be worked around by including a \fBdefault\fR section to provide a default value: then if the environment lookup fails the default value will be used instead. For this to work properly the default value must be defined earlier in the configuration file than the expansion. See the \fB\s-1EXAMPLES\s0\fR section for an example of how to do this. .PP If the same variable exists in the same section then all but the last value will be silently ignored. In certain circumstances such as with DNs the same field may occur multiple times. This is usually worked around by ignoring any characters before an initial \fB.\fR e.g. .PP .Vb 2 \& 1.OU="My first OU" \& 2.OU="My Second OU" .Ve .SH "EXAMPLES" .IX Header "EXAMPLES" Here is a sample configuration file using some of the features mentioned above. .PP .Vb 1 \& # This is the default section. \& \& HOME=/temp \& RANDFILE= ${ENV::HOME}/.rnd \& configdir=$ENV::HOME/config \& \& [ section_one ] \& \& # We are now in section one. \& \& # Quotes permit leading and trailing whitespace \& any = " any variable name " \& \& other = A string that can \e \& cover several lines \e \& by including \e\e characters \& \& message = Hello World\en \& \& [ section_two ] \& \& greeting = $section_one::message .Ve .PP This next example shows how to expand environment variables safely. .PP Suppose you want a variable called \fBtmpfile\fR to refer to a temporary filename. The directory it is placed in can determined by the the \fB\s-1TEMP\s0\fR or \fB\s-1TMP\s0\fR environment variables but they may not be set to any value at all. If you just include the environment variable names and the variable doesn't exist then this will cause an error when an attempt is made to load the configuration file. By making use of the default section both values can be looked up with \fB\s-1TEMP\s0\fR taking priority and \fB/tmp\fR used if neither is defined: .PP .Vb 5 \& TMP=/tmp \& # The above value is used if TMP isn\*(Aqt in the environment \& TEMP=$ENV::TMP \& # The above value is used if TEMP isn\*(Aqt in the environment \& tmpfile=${ENV::TEMP}/tmp.filename .Ve .PP Simple OpenSSL library configuration example to enter \s-1FIPS\s0 mode: .PP .Vb 3 \& # Default appname: should match "appname" parameter (if any) \& # supplied to CONF_modules_load_file et al. \& openssl_conf = openssl_conf_section \& \& [openssl_conf_section] \& # Configuration module list \& alg_section = evp_sect \& \& [evp_sect] \& # Set to "yes" to enter FIPS mode if supported \& fips_mode = yes .Ve .PP Note: in the above example you will get an error in non \s-1FIPS\s0 capable versions of OpenSSL. .PP More complex OpenSSL library configuration. Add \s-1OID\s0 and don't enter \s-1FIPS\s0 mode: .PP .Vb 3 \& # Default appname: should match "appname" parameter (if any) \& # supplied to CONF_modules_load_file et al. \& openssl_conf = openssl_conf_section \& \& [openssl_conf_section] \& # Configuration module list \& alg_section = evp_sect \& oid_section = new_oids \& \& [evp_sect] \& # This will have no effect as FIPS mode is off by default. \& # Set to "yes" to enter FIPS mode, if supported \& fips_mode = no \& \& [new_oids] \& # New OID, just short name \& newoid1 = 1.2.3.4.1 \& # New OID shortname and long name \& newoid2 = New OID 2 long name, 1.2.3.4.2 .Ve .PP The above examples can be used with with any application supporting library configuration if \*(L"openssl_conf\*(R" is modified to match the appropriate \*(L"appname\*(R". .PP For example if the second sample file above is saved to \*(L"example.cnf\*(R" then the command line: .PP .Vb 1 \& OPENSSL_CONF=example.cnf openssl asn1parse \-genstr OID:1.2.3.4.1 .Ve .PP will output: .PP .Vb 1 \& 0:d=0 hl=2 l= 4 prim: OBJECT :newoid1 .Ve .PP showing that the \s-1OID \s0\*(L"newoid1\*(R" has been added as \*(L"1.2.3.4.1\*(R". .SH "BUGS" .IX Header "BUGS" Currently there is no way to include characters using the octal \fB\ennn\fR form. Strings are all null terminated so nulls cannot form part of the value. .PP The escaping isn't quite right: if you want to use sequences like \fB\en\fR you can't use any quote escaping on the same line. .PP Files are loaded in a single pass. This means that an variable expansion will only work if the variables referenced are defined earlier in the file. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIx509\fR\|(1), \fIreq\fR\|(1), \fIca\fR\|(1) man1/python3.5.1000064400000032154147210255650007245 0ustar00.TH PYTHON "1" .\" To view this file while editing, run it through groff: .\" groff -Tascii -man python.man | less .SH NAME python \- an interpreted, interactive, object-oriented programming language .SH SYNOPSIS .B python [ .B \-B ] [ .B \-b ] [ .B \-d ] [ .B \-E ] [ .B \-h ] [ .B \-i ] [ .B \-I ] .br [ .B \-m .I module-name ] [ .B \-q ] [ .B \-O ] [ .B \-OO ] [ .B \-s ] [ .B \-S ] [ .B \-u ] .br [ .B \-v ] [ .B \-V ] [ .B \-W .I argument ] [ .B \-x ] [ [ .B \-X .I option ] .B \-? ] .br [ .B \-c .I command | .I script | \- ] [ .I arguments ] .SH DESCRIPTION Python is an interpreted, interactive, object-oriented programming language that combines remarkable power with very clear syntax. For an introduction to programming in Python, see the Python Tutorial. The Python Library Reference documents built-in and standard types, constants, functions and modules. Finally, the Python Reference Manual describes the syntax and semantics of the core language in (perhaps too) much detail. (These documents may be located via the .B "INTERNET RESOURCES" below; they may be installed on your system as well.) .PP Python's basic power can be extended with your own modules written in C or C++. On most systems such modules may be dynamically loaded. Python is also adaptable as an extension language for existing applications. See the internal documentation for hints. .PP Documentation for installed Python modules and packages can be viewed by running the .B pydoc program. .SH COMMAND LINE OPTIONS .TP .B \-B Don't write .I .pyc files on import. See also PYTHONDONTWRITEBYTECODE. .TP .B \-b Issue warnings about str(bytes_instance), str(bytearray_instance) and comparing bytes/bytearray with str. (-bb: issue errors) .TP .BI "\-c " command Specify the command to execute (see next section). This terminates the option list (following options are passed as arguments to the command). .TP .B \-d Turn on parser debugging output (for wizards only, depending on compilation options). .TP .B \-E Ignore environment variables like PYTHONPATH and PYTHONHOME that modify the behavior of the interpreter. .TP .B \-h ", " \-? ", "\-\-help Prints the usage for the interpreter executable and exits. .TP .B \-i When a script is passed as first argument or the \fB\-c\fP option is used, enter interactive mode after executing the script or the command. It does not read the $PYTHONSTARTUP file. This can be useful to inspect global variables or a stack trace when a script raises an exception. .TP .B \-I Run Python in isolated mode. This also implies \fB\-E\fP and \fB\-s\fP. In isolated mode sys.path contains neither the script's directory nor the user's site-packages directory. All PYTHON* environment variables are ignored, too. Further restrictions may be imposed to prevent the user from injecting malicious code. .TP .BI "\-m " module-name Searches .I sys.path for the named module and runs the corresponding .I .py file as a script. .TP .B \-O Turn on basic optimizations. Given twice, causes docstrings to be discarded. .TP .B \-OO Discard docstrings in addition to the \fB-O\fP optimizations. .TP .B \-q Do not print the version and copyright messages. These messages are also suppressed in non-interactive mode. .TP .B \-s Don't add user site directory to sys.path. .TP .B \-S Disable the import of the module .I site and the site-dependent manipulations of .I sys.path that it entails. Also disable these manipulations if .I site is explicitly imported later. .TP .B \-u Force the binary I/O layers of stdout and stderr to be unbuffered. stdin is always buffered. The text I/O layer will still be line-buffered. .\" Note that there is internal buffering in readlines() and .\" file-object iterators ("for line in sys.stdin") which is not .\" influenced by this option. To work around this, you will want to use .\" "sys.stdin.readline()" inside a "while 1:" loop. .TP .B \-v Print a message each time a module is initialized, showing the place (filename or built-in module) from which it is loaded. When given twice, print a message for each file that is checked for when searching for a module. Also provides information on module cleanup at exit. .TP .B \-V ", " \-\-version Prints the Python version number of the executable and exits. .TP .BI "\-W " argument Warning control. Python sometimes prints warning message to .IR sys.stderr . A typical warning message has the following form: .IB file ":" line ": " category ": " message. By default, each warning is printed once for each source line where it occurs. This option controls how often warnings are printed. Multiple .B \-W options may be given; when a warning matches more than one option, the action for the last matching option is performed. Invalid .B \-W options are ignored (a warning message is printed about invalid options when the first warning is issued). Warnings can also be controlled from within a Python program using the .I warnings module. The simplest form of .I argument is one of the following .I action strings (or a unique abbreviation): .B ignore to ignore all warnings; .B default to explicitly request the default behavior (printing each warning once per source line); .B all to print a warning each time it occurs (this may generate many messages if a warning is triggered repeatedly for the same source line, such as inside a loop); .B module to print each warning only the first time it occurs in each module; .B once to print each warning only the first time it occurs in the program; or .B error to raise an exception instead of printing a warning message. The full form of .I argument is .IB action : message : category : module : line. Here, .I action is as explained above but only applies to messages that match the remaining fields. Empty fields match all values; trailing empty fields may be omitted. The .I message field matches the start of the warning message printed; this match is case-insensitive. The .I category field matches the warning category. This must be a class name; the match test whether the actual warning category of the message is a subclass of the specified warning category. The full class name must be given. The .I module field matches the (fully-qualified) module name; this match is case-sensitive. The .I line field matches the line number, where zero matches all line numbers and is thus equivalent to an omitted line number. .TP .BI "\-X " option Set implementation specific option. .TP .B \-x Skip the first line of the source. This is intended for a DOS specific hack only. Warning: the line numbers in error messages will be off by one! .SH INTERPRETER INTERFACE The interpreter interface resembles that of the UNIX shell: when called with standard input connected to a tty device, it prompts for commands and executes them until an EOF is read; when called with a file name argument or with a file as standard input, it reads and executes a .I script from that file; when called with .B \-c .IR command , it executes the Python statement(s) given as .IR command . Here .I command may contain multiple statements separated by newlines. Leading whitespace is significant in Python statements! In non-interactive mode, the entire input is parsed before it is executed. .PP If available, the script name and additional arguments thereafter are passed to the script in the Python variable .IR sys.argv , which is a list of strings (you must first .I import sys to be able to access it). If no script name is given, .I sys.argv[0] is an empty string; if .B \-c is used, .I sys.argv[0] contains the string .I '-c'. Note that options interpreted by the Python interpreter itself are not placed in .IR sys.argv . .PP In interactive mode, the primary prompt is `>>>'; the second prompt (which appears when a command is not complete) is `...'. The prompts can be changed by assignment to .I sys.ps1 or .IR sys.ps2 . The interpreter quits when it reads an EOF at a prompt. When an unhandled exception occurs, a stack trace is printed and control returns to the primary prompt; in non-interactive mode, the interpreter exits after printing the stack trace. The interrupt signal raises the .I Keyboard\%Interrupt exception; other UNIX signals are not caught (except that SIGPIPE is sometimes ignored, in favor of the .I IOError exception). Error messages are written to stderr. .SH FILES AND DIRECTORIES These are subject to difference depending on local installation conventions; ${prefix} and ${exec_prefix} are installation-dependent and should be interpreted as for GNU software; they may be the same. The default for both is \fI/usr/local\fP. .IP \fI${exec_prefix}/bin/python\fP Recommended location of the interpreter. .PP .I ${prefix}/lib/python .br .I ${exec_prefix}/lib/python .RS Recommended locations of the directories containing the standard modules. .RE .PP .I ${prefix}/include/python .br .I ${exec_prefix}/include/python .RS Recommended locations of the directories containing the include files needed for developing Python extensions and embedding the interpreter. .RE .SH ENVIRONMENT VARIABLES .IP PYTHONHOME Change the location of the standard Python libraries. By default, the libraries are searched in ${prefix}/lib/python and ${exec_prefix}/lib/python, where ${prefix} and ${exec_prefix} are installation-dependent directories, both defaulting to \fI/usr/local\fP. When $PYTHONHOME is set to a single directory, its value replaces both ${prefix} and ${exec_prefix}. To specify different values for these, set $PYTHONHOME to ${prefix}:${exec_prefix}. .IP PYTHONPATH Augments the default search path for module files. The format is the same as the shell's $PATH: one or more directory pathnames separated by colons. Non-existent directories are silently ignored. The default search path is installation dependent, but generally begins with ${prefix}/lib/python (see PYTHONHOME above). The default search path is always appended to $PYTHONPATH. If a script argument is given, the directory containing the script is inserted in the path in front of $PYTHONPATH. The search path can be manipulated from within a Python program as the variable .IR sys.path . .IP PYTHONSTARTUP If this is the name of a readable file, the Python commands in that file are executed before the first prompt is displayed in interactive mode. The file is executed in the same name space where interactive commands are executed so that objects defined or imported in it can be used without qualification in the interactive session. You can also change the prompts .I sys.ps1 and .I sys.ps2 in this file. .IP PYTHONOPTIMIZE If this is set to a non-empty string it is equivalent to specifying the \fB\-O\fP option. If set to an integer, it is equivalent to specifying \fB\-O\fP multiple times. .IP PYTHONDEBUG If this is set to a non-empty string it is equivalent to specifying the \fB\-d\fP option. If set to an integer, it is equivalent to specifying \fB\-d\fP multiple times. .IP PYTHONDONTWRITEBYTECODE If this is set to a non-empty string it is equivalent to specifying the \fB\-B\fP option (don't try to write .I .pyc files). .IP PYTHONINSPECT If this is set to a non-empty string it is equivalent to specifying the \fB\-i\fP option. .IP PYTHONIOENCODING If this is set before running the interpreter, it overrides the encoding used for stdin/stdout/stderr, in the syntax .IB encodingname ":" errorhandler The .IB errorhandler part is optional and has the same meaning as in str.encode. For stderr, the .IB errorhandler part is ignored; the handler will always be \'backslashreplace\'. .IP PYTHONNOUSERSITE If this is set to a non-empty string it is equivalent to specifying the \fB\-s\fP option (Don't add the user site directory to sys.path). .IP PYTHONUNBUFFERED If this is set to a non-empty string it is equivalent to specifying the \fB\-u\fP option. .IP PYTHONVERBOSE If this is set to a non-empty string it is equivalent to specifying the \fB\-v\fP option. If set to an integer, it is equivalent to specifying \fB\-v\fP multiple times. .IP PYTHONWARNINGS If this is set to a comma-separated string it is equivalent to specifying the \fB\-W\fP option for each separate value. .IP PYTHONHASHSEED If this variable is set to "random", a random value is used to seed the hashes of str, bytes and datetime objects. If PYTHONHASHSEED is set to an integer value, it is used as a fixed seed for generating the hash() of the types covered by the hash randomization. Its purpose is to allow repeatable hashing, such as for selftests for the interpreter itself, or to allow a cluster of python processes to share hash values. The integer must be a decimal number in the range [0,4294967295]. Specifying the value 0 will disable hash randomization. .SH AUTHOR The Python Software Foundation: https://www.python.org/psf/ .SH INTERNET RESOURCES Main website: https://www.python.org/ .br Documentation: https://docs.python.org/ .br Developer resources: https://docs.python.org/devguide/ .br Downloads: https://www.python.org/downloads/ .br Module repository: https://pypi.python.org/ .br Newsgroups: comp.lang.python, comp.lang.python.announce .SH LICENSING Python is distributed under an Open Source license. See the file "LICENSE" in the Python source distribution for information on terms & conditions for accessing and otherwise using Python and for a DISCLAIMER OF ALL WARRANTIES. man3/libxml.3000064400000003137147210323330006757 0ustar00.TH libxml 3 "12 April 2000" .SH NAME libxml \- library used to parse XML files .SH DESCRIPTION The .I libxml library is used to parse XML files. Its internal document representation is as close as possible to the .I DOM (Document Object Model) interface, an API for accessing XML or HTML structured documents. .LP The .I libxml library also has a .IR SAX -like interface, which is designed to be compatible with .IR expat (1). NOTE: .IR SAX , the Simple API for XML, is a standard interface for event-based XML parsing, developed collaboratively by the members of the XML-DEV mailing list, currently hosted by OASIS. The .I expat library is a XML 1.0 parser written in C, which aims to be fully conforming. It is currently not a validating XML processor. .LP The .I libxml library now includes a nearly complete .I XPath implementation. The .I XPath (XML Path Language) is a language for addressing parts of an XML document, designed to be used by both .I XSLT and .IR XPointer . .LP The .I libxml library exports Push and Pull type parser interfaces for both XML and .IR html . .SH FILES .TP 2.2i .B /depot/lib/libxml_2.0.0/libxml.a static library .TP .B /depot/lib/libxml_2.0.0/libxml.so shared library .TP .B /depot/package/libxml_2.0.0/bin/xmllint binary application for parsing XML files .SH AUTHORS Daniel Veillard (daniel@veillard.com). Red Hat Inc. Manual page by Ziying Sherwin (sherwin@nlm.nih.gov), Lister Hill National Center for Biomedical Communications, U.S. National Library of Medicine. .SH SEE ALSO .IR xmllint (1), .IR libxslt (3), .IR libexslt (3), .IR xsltproc (1) .\" end of manual page man1/xmllint.1000064400000032232147210323330007151 0ustar00'\" t .\" Title: xmllint .\" Author: John Fleck .\" Generator: DocBook XSL Stylesheets v1.78.1 .\" Date: $Date$ .\" Manual: xmllint Manual .\" Source: libxml2 .\" Language: English .\" .TH "XMLLINT" "1" "$Date$" "libxml2" "xmllint Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" xmllint \- command line XML tool .SH "SYNOPSIS" .HP \w'\fBxmllint\fR\ 'u \fBxmllint\fR [\fB\-\-version\fR | \fB\-\-debug\fR | \fB\-\-shell\fR | \fB\-\-xpath\ "\fR\fB\fIXPath_expression\fR\fR\fB"\fR | \fB\-\-debugent\fR | \fB\-\-copy\fR | \fB\-\-recover\fR | \fB\-\-noent\fR | \fB\-\-noout\fR | \fB\-\-nonet\fR | \fB\-\-path\ "\fR\fB\fIPATH(S)\fR\fR\fB"\fR | \fB\-\-load\-trace\fR | \fB\-\-htmlout\fR | \fB\-\-nowrap\fR | \fB\-\-valid\fR | \fB\-\-postvalid\fR | \fB\-\-dtdvalid\ \fR\fB\fIURL\fR\fR | \fB\-\-dtdvalidfpi\ \fR\fB\fIFPI\fR\fR | \fB\-\-timing\fR | \fB\-\-output\ \fR\fB\fIFILE\fR\fR | \fB\-\-repeat\fR | \fB\-\-insert\fR | \fB\-\-compress\fR | \fB\-\-html\fR | \fB\-\-xmlout\fR | \fB\-\-push\fR | \fB\-\-memory\fR | \fB\-\-maxmem\ \fR\fB\fINBBYTES\fR\fR | \fB\-\-nowarning\fR | \fB\-\-noblanks\fR | \fB\-\-nocdata\fR | \fB\-\-format\fR | \fB\-\-encode\ \fR\fB\fIENCODING\fR\fR | \fB\-\-dropdtd\fR | \fB\-\-nsclean\fR | \fB\-\-testIO\fR | \fB\-\-catalogs\fR | \fB\-\-nocatalogs\fR | \fB\-\-auto\fR | \fB\-\-xinclude\fR | \fB\-\-noxincludenode\fR | \fB\-\-loaddtd\fR | \fB\-\-dtdattr\fR | \fB\-\-stream\fR | \fB\-\-walker\fR | \fB\-\-pattern\ \fR\fB\fIPATTERNVALUE\fR\fR | \fB\-\-chkregister\fR | \fB\-\-relaxng\ \fR\fB\fISCHEMA\fR\fR | \fB\-\-schema\ \fR\fB\fISCHEMA\fR\fR | \fB\-\-c14n\fR] {\fIXML\-FILE(S)\fR... | \-} .HP \w'\fBxmllint\fR\ 'u \fBxmllint\fR \fB\-\-help\fR .SH "DESCRIPTION" .PP The \fBxmllint\fR program parses one or more XML files, specified on the command line as \fIXML\-FILE\fR (or the standard input if the filename provided is \fB\-\fR )\&. It prints various types of output, depending upon the options selected\&. It is useful for detecting errors both in XML code and in the XML parser itself\&. .PP \fBxmllint\fR is included in \fBlibxml\fR(3)\&. .SH "OPTIONS" .PP \fBxmllint\fR accepts the following options (in alphabetical order): .PP \fB\-\-auto\fR .RS 4 Generate a small document for testing purposes\&. .RE .PP \fB\-\-catalogs\fR .RS 4 Use the SGML catalog(s) from \fBSGML_CATALOG_FILES\fR\&. Otherwise XML catalogs starting from /etc/xml/catalog are used by default\&. .RE .PP \fB\-\-chkregister\fR .RS 4 Turn on node registration\&. Useful for developers testing \fBlibxml\fR(3) node tracking code\&. .RE .PP \fB\-\-compress\fR .RS 4 Turn on \fBgzip\fR(1) compression of output\&. .RE .PP \fB\-\-copy\fR .RS 4 Test the internal copy implementation\&. .RE .PP \fB\-\-c14n\fR .RS 4 Use the W3C XML Canonicalisation (C14N) to serialize the result of parsing to stdout\&. It keeps comments in the result\&. .RE .PP \fB\-\-dtdvalid \fR\fB\fIURL\fR\fR .RS 4 Use the DTD specified by an \fIURL\fR for validation\&. .RE .PP \fB\-\-dtdvalidfpi \fR\fB\fIFPI\fR\fR .RS 4 Use the DTD specified by a Formal Public Identifier \fIFPI\fR for validation, note that this will require a catalog exporting that Formal Public Identifier to work\&. .RE .PP \fB\-\-debug\fR .RS 4 Parse a file and output an annotated tree of the in\-memory version of the document\&. .RE .PP \fB\-\-debugent\fR .RS 4 Debug the entities defined in the document\&. .RE .PP \fB\-\-dropdtd\fR .RS 4 Remove DTD from output\&. .RE .PP \fB\-\-dtdattr\fR .RS 4 Fetch external DTD and populate the tree with inherited attributes\&. .RE .PP \fB\-\-encode \fR\fB\fIENCODING\fR\fR .RS 4 Output in the given encoding\&. Note that this works for full document not fragments or result from XPath queries\&. .RE .PP \fB\-\-format\fR .RS 4 Reformat and reindent the output\&. The \fBXMLLINT_INDENT\fR environment variable controls the indentation\&. The default value is two spaces " ")\&. .RE .PP \fB\-\-help\fR .RS 4 Print out a short usage summary for \fBxmllint\fR\&. .RE .PP \fB\-\-html\fR .RS 4 Use the HTML parser\&. .RE .PP \fB\-\-htmlout\fR .RS 4 Output results as an HTML file\&. This causes \fBxmllint\fR to output the necessary HTML tags surrounding the result tree output so the results can be displayed/viewed in a browser\&. .RE .PP \fB\-\-insert\fR .RS 4 Test for valid insertions\&. .RE .PP \fB\-\-loaddtd\fR .RS 4 Fetch an external DTD\&. .RE .PP \fB\-\-load\-trace\fR .RS 4 Display all the documents loaded during the processing to stderr\&. .RE .PP \fB\-\-maxmem \fR\fB\fINNBYTES\fR\fR .RS 4 Test the parser memory support\&. \fINNBYTES\fR is the maximum number of bytes the library is allowed to allocate\&. This can also be used to make sure batch processing of XML files will not exhaust the virtual memory of the server running them\&. .RE .PP \fB\-\-memory\fR .RS 4 Parse from memory\&. .RE .PP \fB\-\-noblanks\fR .RS 4 Drop ignorable blank spaces\&. .RE .PP \fB\-\-nocatalogs\fR .RS 4 Do not use any catalogs\&. .RE .PP \fB\-\-nocdata\fR .RS 4 Substitute CDATA section by equivalent text nodes\&. .RE .PP \fB\-\-noent\fR .RS 4 Substitute entity values for entity references\&. By default, \fBxmllint\fR leaves entity references in place\&. .RE .PP \fB\-\-nonet\fR .RS 4 Do not use the Internet to fetch DTDs or entities\&. .RE .PP \fB\-\-noout\fR .RS 4 Suppress output\&. By default, \fBxmllint\fR outputs the result tree\&. .RE .PP \fB\-\-nowarning\fR .RS 4 Do not emit warnings from the parser and/or validator\&. .RE .PP \fB\-\-nowrap\fR .RS 4 Do not output HTML doc wrapper\&. .RE .PP \fB\-\-noxincludenode\fR .RS 4 Do XInclude processing but do not generate XInclude start and end nodes\&. .RE .PP \fB\-\-nsclean\fR .RS 4 Remove redundant namespace declarations\&. .RE .PP \fB\-\-output \fR\fB\fIFILE\fR\fR .RS 4 Define a file path where \fBxmllint\fR will save the result of parsing\&. Usually the programs build a tree and save it on stdout, with this option the result XML instance will be saved onto a file\&. .RE .PP \fB\-\-path "\fR\fB\fIPATH(S)\fR\fR\fB"\fR .RS 4 Use the (space\- or colon\-separated) list of filesystem paths specified by \fIPATHS\fR to load DTDs or entities\&. Enclose space\-separated lists by quotation marks\&. .RE .PP \fB\-\-pattern \fR\fB\fIPATTERNVALUE\fR\fR .RS 4 Used to exercise the pattern recognition engine, which can be used with the reader interface to the parser\&. It allows to select some nodes in the document based on an XPath (subset) expression\&. Used for debugging\&. .RE .PP \fB\-\-postvalid\fR .RS 4 Validate after parsing has completed\&. .RE .PP \fB\-\-push\fR .RS 4 Use the push mode of the parser\&. .RE .PP \fB\-\-recover\fR .RS 4 Output any parsable portions of an invalid document\&. .RE .PP \fB\-\-relaxng \fR\fB\fISCHEMA\fR\fR .RS 4 Use RelaxNG file named \fISCHEMA\fR for validation\&. .RE .PP \fB\-\-repeat\fR .RS 4 Repeat 100 times, for timing or profiling\&. .RE .PP \fB\-\-schema \fR\fB\fISCHEMA\fR\fR .RS 4 Use a W3C XML Schema file named \fISCHEMA\fR for validation\&. .RE .PP \fB\-\-shell\fR .RS 4 Run a navigating shell\&. Details on available commands in shell mode are below (see the section called \(lqSHELL COMMANDS\(rq)\&. .RE .PP \fB\-\-xpath "\fR\fB\fIXPath_expression\fR\fR\fB"\fR .RS 4 Run an XPath expression given as argument and print the result\&. In case of a nodeset result, each node in the node set is serialized in full in the output\&. In case of an empty node set the "XPath set is empty" result will be shown and an error exit code will be returned\&. .RE .PP \fB\-\-stream\fR .RS 4 Use streaming API \- useful when used in combination with \fB\-\-relaxng\fR or \fB\-\-valid\fR options for validation of files that are too large to be held in memory\&. .RE .PP \fB\-\-testIO\fR .RS 4 Test user input/output support\&. .RE .PP \fB\-\-timing\fR .RS 4 Output information about the time it takes \fBxmllint\fR to perform the various steps\&. .RE .PP \fB\-\-valid\fR .RS 4 Determine if the document is a valid instance of the included Document Type Definition (DTD)\&. A DTD to be validated against also can be specified at the command line using the \fB\-\-dtdvalid\fR option\&. By default, \fBxmllint\fR also checks to determine if the document is well\-formed\&. .RE .PP \fB\-\-version\fR .RS 4 Display the version of \fBlibxml\fR(3) used\&. .RE .PP \fB\-\-walker\fR .RS 4 Test the walker module, which is a reader interface but for a document tree, instead of using the reader API on an unparsed document it works on an existing in\-memory tree\&. Used for debugging\&. .RE .PP \fB\-\-xinclude\fR .RS 4 Do XInclude processing\&. .RE .PP \fB\-\-xmlout\fR .RS 4 Used in conjunction with \fB\-\-html\fR\&. Usually when HTML is parsed the document is saved with the HTML serializer\&. But with this option the resulting document is saved with the XML serializer\&. This is primarily used to generate XHTML from HTML input\&. .RE .SH "SHELL COMMANDS" .PP \fBxmllint\fR offers an interactive shell mode invoked with the \fB\-\-shell\fR command\&. Available commands in shell mode include (in alphabetical order): .PP \fBbase\fR .RS 4 Display XML base of the node\&. .RE .PP \fBbye\fR .RS 4 Leave the shell\&. .RE .PP \fBcat \fR\fB\fINODE\fR\fR .RS 4 Display the given node or the current one\&. .RE .PP \fBcd \fR\fB\fIPATH\fR\fR .RS 4 Change the current node to the given path (if unique) or root if no argument is given\&. .RE .PP \fBdir \fR\fB\fIPATH\fR\fR .RS 4 Dumps information about the node (namespace, attributes, content)\&. .RE .PP \fBdu \fR\fB\fIPATH\fR\fR .RS 4 Show the structure of the subtree under the given path or the current node\&. .RE .PP \fBexit\fR .RS 4 Leave the shell\&. .RE .PP \fBhelp\fR .RS 4 Show this help\&. .RE .PP \fBfree\fR .RS 4 Display memory usage\&. .RE .PP \fBload \fR\fB\fIFILENAME\fR\fR .RS 4 Load a new document with the given filename\&. .RE .PP \fBls \fR\fB\fIPATH\fR\fR .RS 4 List contents of the given path or the current directory\&. .RE .PP \fBpwd\fR .RS 4 Display the path to the current node\&. .RE .PP \fBquit\fR .RS 4 Leave the shell\&. .RE .PP \fBsave \fR\fB\fIFILENAME\fR\fR .RS 4 Save the current document to the given filename or to the original name\&. .RE .PP \fBvalidate\fR .RS 4 Check the document for errors\&. .RE .PP \fBwrite \fR\fB\fIFILENAME\fR\fR .RS 4 Write the current node to the given filename\&. .RE .SH "ENVIRONMENT" .PP \fBSGML_CATALOG_FILES\fR .RS 4 SGML catalog behavior can be changed by redirecting queries to the user\*(Aqs own set of catalogs\&. This can be done by setting the \fBSGML_CATALOG_FILES\fR environment variable to a list of catalogs\&. An empty one should deactivate loading the default /etc/sgml/catalog catalog\&. .RE .PP \fBXML_CATALOG_FILES\fR .RS 4 XML catalog behavior can be changed by redirecting queries to the user\*(Aqs own set of catalogs\&. This can be done by setting the \fBXML_CATALOG_FILES\fR environment variable to a list of catalogs\&. An empty one should deactivate loading the default /etc/xml/catalog catalog\&. .RE .PP \fBXML_DEBUG_CATALOG\fR .RS 4 Setting the environment variable \fBXML_DEBUG_CATALOG\fR to \fInon\-zero\fR using the \fBexport\fR command outputs debugging information related to catalog operations\&. .RE .PP \fBXMLLINT_INDENT\fR .RS 4 Setting the environment variable \fBXMLLINT_INDENT\fR controls the indentation\&. The default value is two spaces " "\&. .RE .SH "DIAGNOSTICS" .PP \fBxmllint\fR return codes provide information that can be used when calling it from scripts\&. .PP \fB0\fR .RS 4 No error .RE .PP \fB1\fR .RS 4 Unclassified .RE .PP \fB2\fR .RS 4 Error in DTD .RE .PP \fB3\fR .RS 4 Validation error .RE .PP \fB4\fR .RS 4 Validation error .RE .PP \fB5\fR .RS 4 Error in schema compilation .RE .PP \fB6\fR .RS 4 Error writing output .RE .PP \fB7\fR .RS 4 Error in pattern (generated when \fB\-\-pattern\fR option is used) .RE .PP \fB8\fR .RS 4 Error in Reader registration (generated when \fB\-\-chkregister\fR option is used) .RE .PP \fB9\fR .RS 4 Out of memory error .RE .SH "SEE ALSO" .PP \fBlibxml\fR(3) .PP More information can be found at .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBlibxml\fR(3) web page \m[blue]\fB\%http://www.xmlsoft.org/\fR\m[] .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} W3C XSLT page \m[blue]\fB\%http://www.w3.org/TR/xslt\fR\m[] .RE .sp .SH "AUTHORS" .PP \fBJohn Fleck\fR <\&jfleck@inkstain\&.net\&> .RS 4 Author. .RE .PP \fBZiying Sherwin\fR <\&sherwin@nlm\&.nih\&.gov\&> .RS 4 Author. .RE .PP \fBHeiko Rupp\fR <\&hwr@pilhuhn\&.de\&> .RS 4 Author. .RE .SH "COPYRIGHT" .br Copyright \(co 2001, 2004 .br man1/xmlcatalog.1000064400000020315147210323330007614 0ustar00'\" t .\" Title: xmlcatalog .\" Author: John Fleck .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: $Date$ .\" Manual: xmlcatalog Manual .\" Source: libxml2 .\" Language: English .\" .TH "XMLCATALOG" "1" "$Date$" "libxml2" "xmlcatalog Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" xmlcatalog \- Command line tool to parse and manipulate XML or SGML catalog files\&. .SH "SYNOPSIS" .HP \w'\fBxmlcatalog\fR\ 'u \fBxmlcatalog\fR [\fB\-\-sgml\fR | \fB\-\-shell\fR | \fB\-\-create\fR | \fB\-\-del\ \fR\fB\fIVALUE(S)\fR\fR | [\ \fB\-\-add\ \fR\fB\fITYPE\fR\fR\fB\ \fR\fB\fIORIG\fR\fR\fB\ \fR\fB\fIREPLACE\fR\fR\fB\ \fR\ |\ \fB\-\-add\ \fR\fB\fIFILENAME\fR\fR] | \fB\-\-noout\fR | \fB\-\-no\-super\-update\fR | [\fB\-v\fR\ |\ \fB\-\-verbose\fR]] {\fICATALOGFILE\fR} {\fIENTITIES\fR...} .SH "DESCRIPTION" .PP \fBxmlcatalog\fR is a command line application allowing users to monitor and manipulate XML and SGML catalogs\&. It is included in \fBlibxml\fR(3)\&. .PP Its functions can be invoked from a single command from the command line, or it can perform multiple functions in interactive mode\&. It can operate on both XML and SGML files\&. .SH "OPTIONS" .PP \fBxmlcatalog\fR accepts the following options (in alphabetical order): .PP \fB\-\-add \fR\fB\fITYPE\fR\fR\fB \fR\fB\fIORIG\fR\fR\fB \fR\fB\fIREPLACE\fR\fR\fB \fR .RS 4 Add an entry to CATALOGFILE\&. \fITYPE\fR indicates the type of entry\&. Possible types are: \fIpublic\fR, \fIsystem\fR, \fIuri\fR, \fIrewriteSystem\fR, \fIrewriteURI\fR, \fIdelegatePublic\fR, \fIdelegateSystem\fR, \fIdelegateURI\fR, \fInextCatalog\fR\&. \fIORIG\fR is the original reference to be replaced, and \fIREPLACE\fR is the URI of the replacement entity to be used\&. The \fB\-\-add\fR option will not overwrite CATALOGFILE, outputting to stdout, unless \fB\-\-noout\fR is used\&. The \fB\-\-add\fR will always take three parameters even if some of the XML catalog constructs will have only a single argument\&. .RE .PP \fB\-\-add \fR\fB\fIFILENAME\fR\fR .RS 4 If the \fB\-\-add\fR option is used following the \fB\-\-sgml\fR option, only a single argument, a \fIFILENAME\fR, is used\&. This is used to add the name of a catalog file to an SGML supercatalog, a file that contains references to other included SGML catalog files\&. .RE .PP \fB\-\-create\fR .RS 4 Create a new XML catalog\&. Outputs to stdout, ignoring \fIfilename\fR unless \fB\-\-noout\fR is used, in which case it creates a new catalog file \fIfilename\fR\&. .RE .PP \fB\-\-del \fR\fB\fIVALUE(S)\fR\fR .RS 4 Remove entries from \fICATALOGFILE\fR matching \fIVALUE(S)\fR\&. The \fB\-\-del\fR option will not overwrite \fICATALOGFILE\fR, outputting to stdout, unless \fB\-\-noout\fR is used\&. .RE .PP \fB\-\-noout\fR .RS 4 Save output to the named file rather than outputting to stdout\&. .RE .PP \fB\-\-no\-super\-update\fR .RS 4 Do not update the SGML super catalog\&. .RE .PP \fB\-\-shell\fR .RS 4 Run a shell allowing interactive queries on catalog file \fICATALOGFILE\fR\&. For the set of available commands see the section called \(lqSHELL COMMANDS\(rq\&. .RE .PP \fB\-\-sgml\fR .RS 4 Uses SGML super catalogs for \fB\-\-add\fR and \fB\-\-del\fR options\&. .RE .PP \fB\-v\fR, \fB\-\-verbose\fR .RS 4 Output debugging information\&. .RE .PP Invoking \fBxmlcatalog\fR non\-interactively without a designated action (imposed with options like \fB\-\-add\fR) will result in a lookup of the catalog entry for \fIENTITIES\fR in the catalog denoted with \fICATALOGFILE\fR\&. The corresponding entries will be output to the command line\&. This mode of operation, together with \fB\-\-shell\fR mode and non\-modifying (i\&.e\&. without \fB\-\-noout\fR) direct actions, allows for a special shortcut of the void \fICATALOGFILE\fR specification (possibly expressed as "" in the shell environment) appointing the default system catalog\&. That simplifies the handling when its exact location is irrelevant but the respective built\-in still needs to be consulted\&. .SH "SHELL COMMANDS" .PP Invoking \fBxmlcatalog\fR with the \fB\-\-shell \fR\fB\fICATALOGFILE\fR\fR option opens a command line shell allowing interactive access to the catalog file identified by \fICATALOGFILE\fR\&. Invoking the shell provides a command line prompt after which the following commands (described in alphabetical order) can be entered\&. .PP \fBadd \fR\fB\fITYPE\fR\fR\fB \fR\fB\fIORIG\fR\fR\fB \fR\fB\fIREPLACE\fR\fR\fB \fR .RS 4 Add an entry to the catalog file\&. \fITYPE\fR indicates the type of entry\&. Possible types are: \fIpublic\fR, \fIsystem\fR, \fIuri\fR, \fIrewriteSystem\fR, \fIrewriteURI\fR, \fIdelegatePublic\fR, \fIdelegateSystem\fR, \fIdelegateURI\fR, \fInextCatalog\fR\&. \fIORIG\fR is the original reference to be replaced, and \fIREPLACE\fR is the URI of the replacement entity to be used\&. The \fB\-\-add\fR option will not overwrite CATALOGFILE, outputting to stdout, unless \fB\-\-noout\fR is used\&. The \fB\-\-add\fR will always take three parameters even if some of the XML catalog constructs will have only a single argument\&. .RE .PP \fBdebug\fR .RS 4 Print debugging statements showing the steps \fBxmlcatalog\fR is executing\&. .RE .PP \fBdel \fR\fB\fIVALUE(S)\fR\fR .RS 4 Remove the catalog entry corresponding to \fIVALUE(S)\fR\&. .RE .PP \fBdump\fR .RS 4 Print the current catalog\&. .RE .PP \fBexit\fR .RS 4 Quit the shell\&. .RE .PP \fBpublic \fR\fB\fIPUBLIC\-ID\fR\fR .RS 4 Execute a Formal Public Identifier lookup of the catalog entry for \fIPUBLIC\-ID\fR\&. The corresponding entry will be output to the command line\&. .RE .PP \fBquiet\fR .RS 4 Stop printing debugging statements\&. .RE .PP \fBsystem \fR\fB\fISYSTEM\-ID\fR\fR .RS 4 Execute a Formal Public Identifier lookup of the catalog entry for \fISYSTEM\-ID\fR\&. The corresponding entry will be output to the command line\&. .RE .SH "ENVIRONMENT" .PP \fBXML_CATALOG_FILES\fR .RS 4 XML catalog behavior can be changed by redirecting queries to the user\*(Aqs own set of catalogs\&. This can be done by setting the \fBXML_CATALOG_FILES\fR environment variable to a list of catalogs\&. An empty one should deactivate loading the default /etc/xml/catalog catalog\&. .RE .SH "DIAGNOSTICS" .PP \fBxmlcatalog\fR return codes provide information that can be used when calling it from scripts\&. .PP \fB0\fR .RS 4 No error .RE .PP \fB1\fR .RS 4 Failed to remove an entry from the catalog .RE .PP \fB2\fR .RS 4 Failed to save to the catalog, check file permissions .RE .PP \fB3\fR .RS 4 Failed to add an entry to the catalog .RE .PP \fB4\fR .RS 4 Failed to look up an entry in the catalog .RE .SH "SEE ALSO" .PP \fBlibxml\fR(3) .PP More information can be found at .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBlibxml\fR(3) web page \m[blue]\fB\%http://www.xmlsoft.org/\fR\m[] .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \fBlibxml\fR(3) catalog support web page at \m[blue]\fB\%http://www.xmlsoft.org/catalog.html\fR\m[] .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} James Clark\*(Aqs SGML catalog page \m[blue]\fB\%http://www.jclark.com/sp/catalog.htm\fR\m[] .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} OASIS XML catalog specification \m[blue]\fB\%http://www.oasis-open.org/committees/entity/spec.html\fR\m[] .RE .sp .SH "AUTHOR" .PP \fBJohn Fleck\fR <\&jfleck@inkstain\&.net\&> .RS 4 Author. .RE .SH "COPYRIGHT" .br Copyright \(co 2001, 2004 .br man1/tsql.1000064400000006634147210354370006464 0ustar00.\" cf. groff_mdoc .Dd March 25, 2015 .Os FreeTDS 1.1.15 .Dt TSQL FreeTDS "FreeTDS Reference Manual" .Sh NAME .Nm tsql .Nd utility to test FreeTDS connections and queries .Sh SYNOPSIS .Nm .Bro .Fl S Ar servername .Op Fl I Ar interface | .Fl H Ar hostname .Op Fl L .Op Fl p Ar port .Brc .Op Fl D Ar dbname .Op Fl U Ar username .Op Fl P Ar password .Op Fl o Ar options .Nm .Fl C .Sh DESCRIPTION .Nm is a FreeTDS diagnostic tool. It uses the TDS protocol to connect to a Sybase or Microsoft SQL Server, and lets the user issue queries. .Nm does not use the FreeTDS client libraries. Instead, it uses only the lowest level library, libtds, to test the protocol implementation. .Pp .Nm can be run in two ways, one which uses the freetds.conf and one which connects directly using the server's hostname and port. The .Fl H and .Fl p parameters are provided to let the user verify a server is listening on the named host and port. These parameters override any configuration files and environment variables. .Pl The .Fl S parameter can be used to test the local configuration. FreeTDS will use freetds.conf (or equivalent) and environment variables in the normal way to determine the server's IP address and port. You can use .Fl I to specify a filename, overriding FreeTDS's configuration file search algorithm. .Sh OPTIONS .Bl -tag -width indent .It Fl S Ar servername database server to which to connect. .It Fl D Ar dbname database to use. .It Fl I Ar interface freetds.conf or interfaces file describing servername. .It Fl H Ar hostname DNS hostname of the server. .It Fl p Ar port port at which SQL Server is listening. .It Fl U Ar username database login name. If username is not provided, a domain login is attempted for TDS 7+ connections. .It Fl P Ar password database password. .It Fl L list Microsoft server instances (with .Fl H Ns ). .It Fl C print some of the compile-time configuration parameters. .It Fl o Ar options apply the options specified to every command. .Bl -tag -width indent .It Fl f No footer .Bq result count .It Fl h No header .Bq titles .It Fl t Print time .It Fl v Print version .It Fl q Quiet .El .It Fl a Ar appname application name. .It Fl t Ar colterm column terminator. .It Fl r Ar rowterm row terminator. .It Fl r Ar rowterm row terminator. .It Fl J Ar charset character set. .It Fl v verbose mode. .El .\" .Sh NOTES If you can connect with .Ql tsql -S servername Ns , your basic FreeTDS installation is working. .Pp Typing .Ql exit Ns , .Ql quit Ns , or .Ql bye (or .Li ^D Ns ) exits .Nm Ns . .Pp Typing .Ql version displays the TDS protocol version. .Pp Command batches may be separated with .Ql go or .Ql GO Ns . If .Ql GO the version string is reported before executing the batch. .Pp After prompting for the password (if not provided with .Fl P Ns ), .Nm will attempt to connect to the remote server. .Nm displays a counter indicating the number of seconds elapsed during the connection attempt. Typically, .Nm immediately responds with a .Ql 1> prompt. If you see the counter (1, 2, 3, ...), most likely .Nm is unable to connect to the indicated server. .Pp .Nm is not a replacement for a complete isql such as sqsh (www.sqsh.org). If you have suggestions for ways to make .Nm more useful as a diagnostic tool, please post them to the FreeTDS mailing list for consideration. .Sh HISTORY .Nm first appeared in FreeTDS 0.60. .Sh AUTHORS The .Nm utility was written by .An Brian Bruns Ns . .Sh BUGS Several, to be sure, now that it's documented. :) man1/freebcp.1000064400000014320147210354370007076 0ustar00.\" cf. groff_mdoc .Dd March 25, 2015 .Os FreeTDS 1.1.15 .Dt FREEBCP 1 .Sh NAME .Nm freebcp .Nd bulk loading utility for Sybase and Microsoft databases .Sh SYNOPSIS .Nm .Bo Bo Ao Ar database Ac Ns . Bc Ns Ao Ar owner Ac Ns . Bc Ns Aq Ar object_name .Bro .Ar in | .Ar [query] Ns Ar out .Brc .Ar datafile .Bro .Fl c | .Fl n | .Fl f Ar formatfile .Brc .Op Fl S Ar servername .Op Fl D Ar dbname .Op Fl U Ar username .Op Fl P Ar password .Op Fl b Ar batchsize .Op Fl F Ar firstrow .Op Fl L Ar lastrow .Op Fl e Ar errfile .Op Fl I Ar interfaces .Op Fl m Ar maxerror .Op Fl t Ar field_term .Op Fl r Ar row_term .Op Fl h Ar hints .Op Fl T Ar textsize .Op Fl A Ar packet_size .Op Fl O Ar options .Op Fl i Ar inputfile .Op Fl o Ar outputfile .Op Fl C Ar charset .Op Fl EdVv .\" .Sh DESCRIPTION .Nm is a utility program distributed with FreeTDS. .Nm replicates (in part at least) the functionality of the bcp utility programs distributed by Sybase and Microsoft. .Nm makes use of the DB-Library bcp API provided by FreeTDS. This API is also available to application developers. .Pp The manual pages or online help for Sybase or SQL Server can be referenced for more detailed information on bcp functionality. .\" .Sh TABLES\ AND\ FILES .Bl -tag -width indent .It Ar database The name of the database containing object to be copied. Optional if the table/view is in the default database for .Ar username . .It Ar schema The schema of the object being copied. If not provided, the default schema for .Ar username is used. .It Ar object The name of the database object you wish to access, typically a table. It can also be a view. All views can be read; some can be written, subject to constraints. With .Ar queryout Ns , Ar object can also be an SQL query. .It Ar in Copy data from a host file to a database table. .It Ar out Copy data from a database table to a host file. .It Ar queryout indicates that .Ar table_name is in fact SQL, rather than a database object. .Nm will execute the query and write the results to a file. (It is a good idea to have the query return one and only one result set.) .It Ar datafile The name of an operating system file. .El .\" .Sh OPTIONS .Bl -tag -width indent .It Fl A Ar packet_size Set the size of a TDS packet to packet_size. Not sure why you would want to do this, except as an experiment. .It Fl D Ar dbname The name of the default database to use. Overrides default database associated with the login account. Causes .Nm to issue a .Ic USE Ar dbname command immediately after logging in, before commencing BCP operations. .It Fl E Write the data in datafile to the table's IDENTITY column. Without this flag, the identity data present in the datafile will be ignored, and new IDENTITY values will be generated for the imported rows. .It Fl F Ar firstrow The first row to copy from the input file or database table. The default is the first row, row 1. .It Fl I Ar interfaces The name and location of the .Pa interfaces file to search when connecting to servername. Overrides .Pa freetds.conf. .It Fl L Ar lastrow The last row to copy from an input file or database table. The default is the last row. .It Fl O Ar options SQL text to set connection options prior to the bcp operation. If .Ar options is a valid filename, the SQL is read from the file instead. Sometimes needed for .Ar queryout . Example: .Li -O `SET QUOTED_IDENTIFIER ON' Ns . .It Fl P Ar password The password associated with .Ar username . .It Fl S Ar servername The name of the Database Server to which to connect. .It Fl T Ar textsize For text or image columns, set the maximum number of characters to request from the server. Defaults to the setting in .Pa freetds.conf . If not specified anywhere, defaults to the full size of the data. .It Fl U Ar username A database login name. For TDS\ 7+ connections, a domain login is attempted if .Ar username is not provided. .It Fl b Ar batchsize The number of rows per batch of data copied. Batching applies only when you are bulk copying into the database. Each batch of data is effectively .Dq committed into the database. The default value for .Ar batchsize is 1000. .It Fl c The host data file is (or will be) in "character" format, i.e., a text file. Encoding is determined by the client charset attribute in .Pa freetds.conf . .It Fl d Turn off any logging. (Unintuitive, perhaps.) .It Fl e Ar errfile Write errors to .Ar errfile . For uploads. Includes line and column information, and the row data. .It Fl f Ar formatfile The format of the host data file is described by .Ar formatfile . The layout of .Ar formatfile is identical to that understood by the Sybase and Microsoft bcp utilities, but is too complicated to describe here. .It Fl h Ar hints Set bcp hints. For valid values, cf. .Fn bcp_options in the FreeTDS Reference Manual. .It Fl m Ar maxerror Stop after encountering .Ar maxerror errors. Default 10. .It Fl n The host data file is in .Dq native format. This is a format that .Nm will be able to process, but is not portable or readable. .It Fl r Ar row_term The row terminator for a character file. May be more than one character. Default is newline ('\\n'). Cf\&. .Fl c Ns , above. .It Fl t Ar field_term The field terminator for character file. Also known as a column delimiter. May be more than one character. Default is tab ('\\t'). Cf\&. .Fl c Ns , above. .It Fl v .It Fl V Print the version information and exit. .It Fl i Ar inputfile Read input data from file specified. .It Fl o Ar outputfile Write output data to file specified. .It Fl C Ar charset Specify character set to use to talk to server. .El .Sh ENVIRONMENT .Ev DSQUERY default .Ar servername .\" .Sh NOTES When connecting to a Sybase database server, it is required that the TDS 5.0 protocol be used. When connecting to a Microsoft SQL Server 2000 database server, the TDS\ 7 (or later) protocol is required. .Pp Sybase and Microsoft define different versions of the bcp portion of TDS 4.2. Because FreeTDS has no way of knowing which type of server it's connected to, .Nm does not support version 4.2 of the TDS protocol. .\" .Sh HISTORY .Nm first appeared in FreeTDS 0.60 .Sh AUTHORS The .Nm utility was written by .An Bill Thompson Aq thompbil@exchange.uk.ml.com .Sh BUGS Currently, there is no support for text data types in .Nm Ns , when SQL Server 2000 is the target server. man1/fisql.1000064400000010071147210354370006605 0ustar00.\" cf. groff_mdoc .Dd March 25, 2015 .Os FreeTDS 1.1.15 .Dt FISQL FreeTDS "FreeTDS Reference Manual" .\" .Sh NAME .Nm fisql .Nd interactive SQL shell .\" .Sh SYNOPSIS .Pp .Nm .Op Fl eFgpnvXY .Op Fl a Ar display_charset .Op Fl A Ar packet_size .Op Fl c Ar cmdend .Op Fl D Ar database .Op Fl E Ar editor .Op Fl h Ar headers .Op Fl H Ar hostname .Op Fl i Ar inputfile .Op Fl I Ar interfaces_file .Op Fl J Ar client_charset .Op Fl l Ar login_timeout .Op Fl m Ar errorlevel .Op Fl o Ar outputfile .Op Fl P Ar password .Op Fl s Ar colseparator .Op Fl S Ar server .Op Fl t Ar timeout .Op Fl U Ar username .Op Fl w Ar width .Op Fl y Ar sybase_dir .Op Fl z Ar language .\" .Sh DESCRIPTION .Pp .Nm is very similar to the .Ql isql utility programs distributed by Sybase and Microsoft. Like them, .Nm uses the command .Ql go on a line by itself as a separator between batches. .\" .Sh OPTIONS .Bl -tag -width indent .It Fl a Ar display_charset The client charset name. Not implemented. .It Fl A Ar packet_size Set protocol packet size. You should not need to set this parameter. .It Fl c Ar cmdend Command terminator, defaults to .Ql go Ns . .It Fl D Database name on the server to use. .It Fl e Echo SQL input (usually in outputfile) .It Fl E Ar editor Specify an editor to invoke. Defaults to vi. .It Fl F FIPS mode ON. Server returns a message (but processes the query anyway) when it encounters a non-standard SQL command. .It Fl g Display a brief help message .It Fl h Ar headers Number of rows after which to repeat the column headers. Default is once per resultset. .It Fl H Ar hostname Hostname of the client machine as it will be told to the server. .It Fl I Ar interfaces_file Name of the interfaces or freetds.conf file to use. .It Fl i Ar inputfile Name of script file, containing SQL. .It Fl J Ar client_charset Not implemented. .It Fl l Ar login_timeout How long to wait for the server to acknowledge a login attempt. .It Fl m Ar errorlevel For errors of the severity level specified or higher, print only the message number, state, and error level. Below that level, print nothing. .It Fl n Suppress line numbers in echoed output. .It Fl o Ar outputfile Name of output file, holding result data. .It Fl p Prints performance statistics. Not implemented. .It Fl P Ar password Database server password. .It Fl s Ar colseparator The column separator. Default is space. Shell metacharacters require quoting. .It Fl S Ar server Database server to which to connect. .It Fl t Ar timeout The query timeout, in seconds. How long to wait for a query to be processed. The default is indefinitely, or as determined by freetds.conf. .It Fl U Ar username Database server login name. .It Fl v Display version and copyright. .It Fl w Ar width How many characters wide to print the output. Defaults to 80. .It Fl X Use encrypted login. Not implemented in FreeTDS. .It Fl y Pa sybase_dir Sets the .Ev SYBASE environment variable. Not used by FreeTDS. .It Fl Y Use chained transactions. .It Fl z Ar language Name of a language for fisql's prompts and messages. Cf. DBSETLNATLANG. .El .\" .Sh NOTES .Nm is a filter; it reads from standard input, writes to standard output, and writes errors to standard error. The .Fl i Ns , .FL o Ns , and .Fl e options override these defaults. .Pp .Nm uses the DB-Library API provided by FreeTDS. It was first implemented using Sybase's own library and continues to work with it. Before (and after) modifying it, it would be well to test it with Sybase's library to assure compatibility between it and FreeTDS. EXIT STATUS .Pp .Nm exits 0 on success, and >0 if the server cannot process the query. .Pp .Nm will report any errors returned by the server, but will continue processing. In a production environment, this behavior may be insufficiently stringent. To make it extremely intolerant of errors, change the message and error handlers to call exit(3). .\" .Sh HISTORY .Nm first appeared in FreeTDS 0.65. .\" .Sh AUTHORS The .Nm utility was written by .An Nicholas S. Castellano Aq entropy@freetds.org Ns , who contributed it to the FreeTDS project under the terms of the GPL. .\" .Sh BUGS Requires the GNU readline library. man1/defncopy.1000064400000005074147210354370007305 0ustar00.\" cf. groff_mdoc .Dd April 26, 2012 .Os FreeTDS 1.1.15 .Dt DEFNCOPY FreeTDS "FreeTDS Reference Manual" .\" .Sh NAME .Nm defncopy .Nd extract procedures and views from a Microsoft server. .\" .Sh SYNOPSIS .Pp .Nm .Op Fl v .Op Fl U Ar username .Op Fl P Ar password .Op Fl S Ar server .Op Fl D Ar database .Op Fl i Ar input_file .Op Fl o Ar output_file .Bo .Ar owner.object_name .\" Elipsis according to Werner Lemberg: .\" http://www.mail-archive.com/groff@gnu.org/msg03122.html .Op Ar owner.object_name .\|.\|.\& .Bc .\" .Sh DESCRIPTION .Pp .Nm is a utility program distributed with FreeTDS. It replaces a similar program of the same name distributed by Sybase. .Pp .Nm reads the text of a stored procedure or view, and writes a script suitable for recreating the procedure or view. For tables, it reads the output of sp_help and constructs a .Ql CREATE TABLE statement, complete with .Ql CREATE INDEX Ns , too. .\" .Ar owner is optional if you or the database owner is the owner of the procedure/view being copied. .Ar object_name is the name of the system object you wish to extract. .\" .Sh OPTIONS .Bl -tag -width indent .It Fl U Ar username database server login name. .It Fl P Ar password database server password. .It Fl S Ar server database server to which to connect. .It Fl D Ar database database to use. Optional if the procedure/view being extracted is in your default database. .It Fl i Ar input_file a script to apply to the database. Not currently implemented. .It Fl o Ar output_file a file to hold the script, defaults to standard output. .It Fl v Show version information and copyright notice. .El .\" .Sh NOTES .Nm is a filter; it reads from standard input, writes to standard output, and writes errors to standard error. The .Fl i , .Fl o , and .Fl e options override these defaults. .Pp .Nm makes use of the db-lib API provided by FreeTDS. This API is of course also available to application developers. .Sh EXIT STATUS .Pp .Nm exits 0 on success, and >0 if the server cannot process the query. .Pp .Nm will report any errors returned by the server, but will continue processing. .\" .Sh HISTORY .Pp .Nm first appeared in FreeTDS 0.63. .\" .Sh AUTHORS The .Nm utility was written by .An James K. Lowden Aq jklowden@schemamania.org. .\" .Sh BUGS Works only with Microsoft servers and ancient Sybase servers. Does not create primary keys. Many options are defined by Sybase that this version does not implement. Feel free to correct this situation. In theory, .Nm could apply/produce DDL for any system object, but at present only tables, procedures and views are supported, and only for extraction. man1/bsqlodbc.1000064400000004520147210354370007262 0ustar00.\" cf. groff_mdoc .Dd March 25, 2015 .Os FreeTDS 1.1.15 .Dt BSQLODBC FreeTDS "FreeTDS Reference Manual" .\" .Sh NAME .Nm bsqlodbc .Nd batch SQL script processor using ODBC .\" .Sh SYNOPSIS .Pp .Nm .Op Fl hqv .Op Fl U Ar username .Op Fl P Ar password .Op Fl S Ar server .Op Fl D Ar database .Op Fl i Ar input_file .Op Fl o Ar output_file .Op Fl e Ar error_file .Op Fl t Ar field_term .Op Fl V Ar odbc_version .\" .Sh DESCRIPTION .Pp .Nm is a utility program distributed with FreeTDS. .Pp .Nm is a non-interactive equivalent of the .Ql isql utility programs distributed by Sybase and Microsoft. Like them, .Nm uses the command .Ql go on a line by itself as a separator between batches. The last batch need not be followed by .Ql go . .Pp .Nm makes use of the ODBC API provided by FreeTDS. This API is of course also available to application developers. .\" .Sh OPTIONS .Bl -tag -width indent .It Fl U Ar username Database server login name. .It Fl P Ar password Database server password. .It Fl S Ar server Database server to which to connect. .It Fl D Ar database Database to use. .It Fl i Ar input_file Name of script file, containing SQL. .It Fl o Ar output_file Name of output file, holding result data. .It Fl e Ar error_file Name of file for errors. .It Fl t Ar field_term Specifies the field terminator. Default is two spaces ( .Ql \ \ .Ns ). Recognized escape sequences are tab ( .Ql \et .Ns ), carriage return ( .Ql \er .Ns ), newline ( .Ql \en .Ns ), and backslash ( .Ql \e\e .Ns ). .It Fl h Print column headers with the data to the same file. .It Fl q Do not print column metadata, return status, or rowcount. Overrides .Fl h . .It Fl v Verbose mode, for more information about the ODBC interaction. This also reports the result set metadata, including and return code. All verbose data are written to standard error (or .Fl e Ns ), so as not to interfere with the data stream. .It Fl V Ar odbc_version Specify ODBC version (2 or 3). .El .\" .Sh NOTES .Pp .Nm is a filter; it reads from standard input, writes to standard output, and writes errors to standard error. The .Fl i , .Fl o , and .Fl e options override these defaults. .Sh EXIT STATUS .Nm exits 0 on success, and >0 if the server cannot process the query. .\" .Sh HISTORY .Nm first appeared in FreeTDS 0.65. .\" .Sh AUTHORS The .Nm utility was written by .An James K. Lowden Aq jklowden@freetds.org . man1/datacopy.1000064400000004560147210354370007301 0ustar00.\" cf. groff_mdoc .Dd March 25, 2015 .Os FreeTDS 1.1.15 .Dt DATACOPY FreeTDS "FreeTDS Reference Manual" .\" .Sh NAME .Nm datacopy .Nd move table data between two servers .\" .Sh SYNOPSIS .Nm .Op Fl vdE .Bro .Fl t | .Fl a | .Fl c .Ar owner .Brc .Op Fl b Ar batchsize .Op Fl p Ar packetsize .Op Fl S Ar server/username/password/database/table_or_view .Op Fl D Ar server/username/password/database/table .Op Fl T Ar textsize .\" .Sh DESCRIPTION .Nm is a utility distributed with FreeTDS. .Nm will move table data from one server to another without the need for intermediate files. .Nm is much faster and more efficient than is freebcp out/in. .Pp .Nm makes use of the db-lib bcp API built into FreeTDS. This API is also available to application developers. .Pp .Nm can be used to migrate data between Sybase ASE and SQL Server or vice versa. .\" .Sh OPTIONS .Bl -tag -width indent .It Fl t Truncate target table before loading data. .It Fl a Append data to target table. .It Fl c Ar owner Create the target table with the same schema as the source table. .Nm will submit a .Ql CREATE TABLE command on the target server using the specified owner in the command, e.g. .Ql CREATE TABLE owner.table (.\|.\|.\&). .It Fl b Ar batchsize The number of rows per batch of data copied. Each batch of data is effectively 'committed' to the database. The default is 1000. .It Fl p Ar packetsize The number of bytes, per network packet, sent to and from the servers. Increased packet size can enhance performance. .It Fl T Ar textsize Specify size of TEXT/IMAGE column from network. .It Fl v Produce verbose output, including diagnostic timings. .It Fl d Produce freetds TDSDUMP output. (Serious debug only!) .It Fl S Ar server/username/password/database/table_or_view The connection information for the source server and the location/name of the table (or view) to be copied. If not specified, .Nm prompts the user for the information. .It Fl D Ar server/username/password/database/table The connection information for the destination server and the location/name of the target table. If not specified, .Nm prompts the user for the information. .It Fl E Keep identity values. .Sh SEE ALSO .Xr freebcp 1 , Xr defncopy 1 , Xr bsqldb 1 , Xr tsql 1 , .%B FreeTDS User Guide. .\" .Sh HISTORY .Pp .Nm first appeared in FreeTDS 0.64. .\" .Sh AUTHORS The .Nm utility was written by .An Bill Thompson Aq thompbil@exchange.uk.ml.com . man1/bsqldb.1000064400000006667147210354370006756 0ustar00.\" cf. groff_mdoc .Dd March 26, 2015 .Dt BSQLDB 1 .Os FreeTDS 1.1.15 .Sh NAME .Nm bsqldb .Nd batch SQL script processor using DB-Library .Sh SYNOPSIS .Nm .Op Fl hqv .Op Fl S Ar servername .Op Fl D Ar database .Op Fl U Ar username .Op Fl P Ar password .Op Fl i Ar input_file .Op Fl o Ar output_file .Op Fl e Ar error_file .Op Fl H Ar hostname .Op Fl t Ar field_term .Op Fl R Ar pivot_description .\" .Sh DESCRIPTION .Nm is a utility program distributed with FreeTDS. .Nm is a non-interactive equivalent of the "isql" utility programs distributed by Sybase and Microsoft. Like them, .Nm uses the command "go" on a line by itself as a separator between batches. The last batch need not be followed by "go". .Nm makes use of the DB-Library API provided by FreeTDS. This API is of course also available to application developers. .Sh OPTIONS .Bl -tag -width indent .It Fl D Ar database Database to use. .It Fl H Ar hostname hostname Override name of client sent to server. .It Fl P Ar password Database server password. .It Fl S Ar servername Database server to which to connect. .It Fl U Ar username Database server login name. If username is not provided, a domain login is attempted for TDS 7+ connections. .It Fl e Ar error_file Name of file for errors. .It Fl h Print column headers with the data to the same file. .It Fl i Ar input_file Name of script file, containing SQL. .It Fl o Ar output_file Name of output file, holding result data. .It Fl q Do not print column metadata, return status, or rowcount. Overrides .Fl h Ns . .It Fl t Ar field_term Specifies the field terminator. Default is two spaces (' '). Recognized escape sequences are tab ('\\t'), carriage return ('\\r'), newline ('\\n'), and backslash ('\\\\'). .It Fl v Verbose mode, for more information about the DB-Library interaction. This also reports the result set metadata, including and return code. All verbose data are written to standard error (or .Fl e Ns ), so as not to interfere with the data stream. .It Fl R Ar pivot_description Specify pivot trasformation. The format is .Ao Ar down\ columns Ac .Ao Ar across\ columns Ac .Ao Ar function Ac .Ao Ar value Ac . Columns are specified but numbers. The format of .Ar down columns and .Ar across columns is a comma separated list of columns. .Ar function is either count, sum, min or max. .El .\" .Sh ENVIRONMENT .Ev DSQUERY default .Ar servername .\" .Sh NOTES .Nm is a filter; it reads from standard input, writes to standard output, and writes errors to standard error. The .Fl i Ns , Fl o Ns , and Fl e options override these defaults. .Pp The source code for .Nm is intended as a model for DB-Library users. DB-Library has a rich set of functions, and it can be hard sometimes to understand how to use them, particularly the first time. If you find something about the source code unclear, you are encouraged to email the author your comments. .\" .Sh EXIT STATUS .Nm exits 0 on success, and >0 if the server cannot process the query. .Pp For messages with severity > 10, .Nm calls exit(3) with the severity level. For example, if the severity level is 16, .Nm will return an exit status of 16 to the shell. .\" .Sh HISTORY .Nm first appeared in FreeTDS 0.63. .\" .Sh AUTHORS The .Nm utility was written by .An "James K. Lowden" Aq jklowden@freetds.org . .\" .Sh BUGS Microsoft servers as of SQL Server 7.0 SP 3 do not return output parameters unless the RPC functions are used. This means .Nm cannot return output parameters for stored procedures with these servers. man1/osql.1000064400000003740147210354370006452 0ustar00.\" cf. groff_mdoc .Dd April 26, 2012 .Os FreeTDS 1.1.15 .Dt OSQL FreeTDS "FreeTDS Reference Manual" .\" .Sh NAME .Nm osql .Nd utility to test FreeTDS connections and queries .\" .Sh SYNOPSIS .Pp .Nm .Fl S Ar dsn .Fl U Ar username .Fl P Ar password .Op Fl I Pa ini_directory .\" .Sh DESCRIPTION .Pp .Nm is a diagnostic tool provided as part of FreeTDS. It is a Bourne shell script that checks and reports on your configuration files. If everything checks out OK, it invokes isql. .Pp .Nm works only with the isql that comes with unixODBC. .\" .Sh OPTIONS .Bl -tag -width indent .It Fl S Ar dsn the Data Source Name to which to connect, as known to .Pa odbc.ini Ns . .It Fl U Ar username database login name. .It Fl P Ar password database password. .It Fl I Ar ini_dir override .Pa odbc.ini file location. .El .\" .Sh EXAMPLE If you have an .Pa odbc.ini with a section like this: .Bd -literal -offset indent .Bq myDSN servername = myserver TDS_Version = 5.0 .Ed .Pp You would invoke .Nm as: .Pp .Li osql -S myDSN .Op .\|.\|.\& .\" .Sh FILES .Pa odbc.ini .Pa freetds.conf .\" .Sh NOTES If you can connect with .Ql osql -S servername -U user -P passwd Ns , your FreeTDS ODBC installation is working. .Pp .Nm guesses where unixODBC might look for its .Pa odbc.ini by examining the binary. This is not always an effective approach. If it doesn't work, you'll receive a report of candidate strings. Kindly pass along the output to help improve the guessing. .Pp If .Nm cannot intuit your .Pa odbc.ini directory, you can force the issue with the .Fl I option. However, you're then instructing .Nm what to test, not where unixODBC will eventually look. Your override is therefore only as good as you are. Look carefully at the error output before overriding. .Pp If you have suggestions for ways to make .Nm more useful as a diagnostic tool, please post them to the FreeTDS mailing list. .\" .Sh HISTORY .Nm first appeared in FreeTDS 0.65. .\" .Sh AUTHORS The .Nm utility was written by .An James K. Lowden Ns . man5/freetds.conf.5000064400000014473147210354370010071 0ustar00.Dd May 2, 2017 .Os FreeTDS 1.1.15 .Dt FREETDS.CONF "FreeTDS 5" "FreeTDS Reference Manual" . .Sh NAME .Nm freetds.conf .Nd configuration file for FreeTDS . .Sh SYNOPSIS The .Pa freetds.conf file describes Sybase and Microsoft database servers to the FreeTDS library. It comprises sections headed by a servername, followed by a list of connection properties denoted as name-value pairs. Defaults are defined via a .Bq global section. This file supersedes the .Pa interfaces file that Sybase defines for the same purpose, although the latter is still supported. . .Sh DESCRIPTION A section begins with a servername \(em the name of the server \(em in square brackets. The servername is chosen at the client's descretion. (One exception: with Sybase ASA the servername must match the database name to be used.) .Pp Sections contain properties, one per line, in the form .Pp .Dl name = value .Pp where .Ar name is the connection property to be described. Servernames and properties are not case sensitive. Values are case-preserving i.e., copied literally. Comments begin with either a semicolon .Pq So ; Sc or pound sign .Pq So # Sc and continue to end of line. Blank lines are ignored. Whitespace surrounding the .So = Sc is ignored. . .Sh PROPERTIES .Bl -tag -width "emulate little endian" -compact . .It client charset encoding of client data; overrides locale(1) settings .Bl -tag -width "default:" -compact .It Domain: iconv character set names .It Default: ISO-8859-1 .El . .It connect timeout seconds to wait for response from connect request .Bl -tag -width "default:" -compact .It Domain: 0 to MAX_INT .It Default: none .El . .It debug flags logging granularity .Bl -tag -width "default:" -compact .It Domain: 32-bit integer .It Default: 0x4fff .El . .It dump file specifies location of a logfile and turns on logging .Bl -tag -width "default:" -compact .It Domain: valid file name .It Default: none .El . .It dump file append log data appended to file instead of re-writing for each connection .Bl -tag -width "default:" -compact .It Domain: yes/no .It Default: no .El . .It emulate little endian forces big endian machines to act as little endian to communicate with Microsoft Servers .Bl -tag -width "default:" -compact .It Domain: yes/no .It Default: no .El . .It encryption .Bl -tag -compact .It Em off disables encryption .It Em request use if available (default when tds version greater than 7.0) .It Em required allow encrypted connections only .El . .It host Name of the host the server is running on. .Bl -tag -width "default:" -compact .It Domain: host name or IP address .It Default: SYBASE .El . .It initial block size maximum size of a protocol block .Bl -tag -width "default:" -compact .It Domain: multiple of 512 .It Default: 512 .El . .It instance name of Microsoft SQL Server instance to connect to (supersedes .Em port ) .Bl -tag -width "default:" -compact .It Domain: instance name .It Default: none .El . .It port port number that the server is listening to .Bl -tag -width "default:" -compact .It Domain: any valid port .It Default: TDS 5.0, 5000; TDS 7.0 and up, 1433 .El . .It tds version TDS protocol version to use .Bl -tag -width "default:" -compact .It Domain: 4.2, 5.0, 7.0, 7.1, 7.2 .It Default: .Fl -with-tdsver value (5.0 if unspecified) .El . .It text size default value of TEXTSIZE, in bytes .Bl -tag -width "default:" -compact .It Domain: 0 to 4,294,967,295 .It Default: 4,294,967,295 .El . .It timeout seconds to wait for response to a query .Bl -tag -width "default:" -compact .It Domain: 0 to MAX_INT .It Default: none (wait forever) .El . .El .Pp Do not define both .Fa port and .Fa instance Ns \&. One implies the other. .Pp Boolean property values may be denoted as on/off, true/false, or 1/0. . .Ss DEBUG FLAGS The log's granularity can be controlled with the .Em debug flags property. .Bl -column -offset indent ".Sy 0x8000" ".Sy show source level info (source file and line)" .It Sy Value Ta Sy Meaning .It Li \ \ 0x02 severe error .It Li \ \ 0x04 error .It Li \ \ 0x08 warning .It Li \ \ 0x10 network .It Li \ \ 0x20 information level 1 .It Li \ \ 0x40 information level 2 .It Li \ \ 0x80 function trace and info .It Li 0x1000 show pid .It Li 0x2000 show time .It Li 0x4000 show source level info (source file and line) .It Li 0x8000 thread id (not implemented). .El . .Sh NAMES AND LOCATIONS The file is normally named .Pa /etc/freetds.conf or .Pa ${HOME}/.freetds.conf . That name can be overridden with the FREETDSCONF environment variable. .Pp FreeTDS will search conf files for a servername in the following order: .Bl -enum -offset indent -compact .It a filename set programatically via dbsetifile() that is in .conf format .It a filename in the environment variable FREETDSCONF that is in .conf format .It .Pa ${HOME}/.freetds.conf if extant .It .Pa /opt/alt/freetds/etc/freetds.conf .El .Pp The search stops with the first file containing the servername. .Pp If no conf file is found, FreeTDS searches for an .Pa interfaces file in the following order: .Bl -enum -offset indent -compact .It a filename set programatically via dbsetifile() that is in .Pa interfaces format .It .Pa ${HOME}/.interfaces .It .Pa $SYBASE/interfaces (where .Ev $SYBASE is an environment variable) .El .Pp If the requested servername is not found in any configuration file, the fallback mechanism is: .Bl -enum -offset indent -compact .It attempt to convert the name to an IP address with inet_addr(3), else .It attempt to convert the name to an IP address with gethostbyname(3), else .It attempt to look up the literal name .Dq SYBASE .El . .Sh ENVIRONMENT .Bl -tag -width "TDSDUMPCONFIG" -compact .It Ev FREETDSCONF overrides name and location of the system-wide conf file .It Ev TDSDUMP overrides the name and location of the FreeTDS log file .It Ev TDSDUMPCONFIG specifies a name and location of a file that logs the search of configuration files .It Ev TDSHOST overrides the host property .It Ev TDSPORT overrides the port property .It Ev TDSQUERY synonym for DSQUERY, the default servername .It Ev TDSVER overrides the version specified in the freetds.conf .El .Pp The environment variables .Ev TDSVER, Ev TDSDUMP, Ev TDSPORT, Ev TDSQUERY, and Ev TDSHOST override values set by a .conf or .Pa interfaces file. . .Sh FILES .Pa /opt/alt/freetds/etc/freetds.conf , ${HOME}/.freetds.conf . .Sh SEE ALSO .%B FreeTDS User Guide . .Sh HISTORY \.conf files first appeared with version 0.53 of FreeTDS. man1/curl.1000064400000631263147210422200006434 0ustar00.\" ************************************************************************** .\" * _ _ ____ _ .\" * Project ___| | | | _ \| | .\" * / __| | | | |_) | | .\" * | (__| |_| | _ <| |___ .\" * \___|\___/|_| \_\_____| .\" * .\" * Copyright (C) 1998 \- 2022, Daniel Stenberg, , et al. .\" * .\" * This software is licensed as described in the file COPYING, which .\" * you should have received as part of this distribution. The terms .\" * are also available at https://curl.se/docs/copyright.html. .\" * .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell .\" * copies of the Software, and permit persons to whom the Software is .\" * furnished to do so, under the terms of the COPYING file. .\" * .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY .\" * KIND, either express or implied. .\" * .\" * SPDX-License-Identifier: curl .\" * .\" ************************************************************************** .\" .\" DO NOT EDIT. Generated by the curl project gen.pl man page generator. .\" .TH curl 1 "December 19 2022" "curl 7.87.0" "curl Manual" .SH NAME curl \- transfer a URL .SH SYNOPSIS .B curl [options / URLs] .SH DESCRIPTION \fBcurl\fP is a tool for transferring data from or to a server. It supports these protocols: DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS. The command is designed to work without user interaction. curl offers a busload of useful tricks like proxy support, user authentication, FTP upload, HTTP post, SSL connections, cookies, file transfer resume and more. As you will see below, the number of features will make your head spin. curl is powered by libcurl for all transfer-related features. See \fIlibcurl(3)\fP for details. .SH URL The URL syntax is protocol-dependent. You find a detailed description in RFC 3986. You can specify multiple URLs or parts of URLs by writing part sets within braces and quoting the URL as in: .nf \(dqhttp://site.{one,two,three}.com" .fi or you can get sequences of alphanumeric series by using [] as in: .nf \(dqftp://ftp.example.com/file[1-100].txt" .fi .nf \(dqftp://ftp.example.com/file[001-100].txt" (with leading zeros) .fi .nf \(dqftp://ftp.example.com/file[a-z].txt" .fi Nested sequences are not supported, but you can use several ones next to each other: .nf \(dqhttp://example.com/archive[1996-1999]/vol[1-4]/part{a,b,c}.html" .fi You can specify any amount of URLs on the command line. They will be fetched in a sequential manner in the specified order. You can specify command line options and URLs mixed and in any order on the command line. You can specify a step counter for the ranges to get every Nth number or letter: .nf \(dqhttp://example.com/file[1-100:10].txt" .fi .nf \(dqhttp://example.com/file[a-z:2].txt" .fi When using [] or {} sequences when invoked from a command line prompt, you probably have to put the full URL within double quotes to avoid the shell from interfering with it. This also goes for other characters treated special, like for example '&', '?' and '*'. Provide the IPv6 zone index in the URL with an escaped percentage sign and the interface name. Like in .nf \(dqhttp://[fe80::3%25eth0]/" .fi If you specify URL without protocol:// prefix, curl will attempt to guess what protocol you might want. It will then default to HTTP but try other protocols based on often-used host name prefixes. For example, for host names starting with "ftp." curl will assume you want to speak FTP. curl will do its best to use what you pass to it as a URL. It is not trying to validate it as a syntactically correct URL by any means but is fairly liberal with what it accepts. curl will attempt to re-use connections for multiple file transfers, so that getting many files from the same server will not do multiple connects / handshakes. This improves speed. Of course this is only done on files specified on a single command line and cannot be used between separate curl invocations. .SH OUTPUT If not told otherwise, curl writes the received data to stdout. It can be instructed to instead save that data into a local file, using the \fI\-o, \-\-output\fP or \fI\-O, \-\-remote-name\fP options. If curl is given multiple URLs to transfer on the command line, it similarly needs multiple options for where to save them. curl does not parse or otherwise "understand" the content it gets or writes as output. It does no encoding or decoding, unless explicitly asked to with dedicated command line options. .SH PROTOCOLS curl supports numerous protocols, or put in URL terms: schemes. Your particular build may not support them all. .IP DICT Lets you lookup words using online dictionaries. .IP FILE Read or write local files. curl does not support accessing file:// URL remotely, but when running on Microsoft Windows using the native UNC approach will work. .IP FTP(S) curl supports the File Transfer Protocol with a lot of tweaks and levers. With or without using TLS. .IP GOPHER(S) Retrieve files. .IP HTTP(S) curl supports HTTP with numerous options and variations. It can speak HTTP version 0.9, 1.0, 1.1, 2 and 3 depending on build options and the correct command line options. .IP IMAP(S) Using the mail reading protocol, curl can "download" emails for you. With or without using TLS. .IP LDAP(S) curl can do directory lookups for you, with or without TLS. .IP MQTT curl supports MQTT version 3. Downloading over MQTT equals "subscribe" to a topic while uploading/posting equals "publish" on a topic. MQTT over TLS is not supported (yet). .IP POP3(S) Downloading from a pop3 server means getting a mail. With or without using TLS. .IP RTMP(S) The Realtime Messaging Protocol is primarily used to server streaming media and curl can download it. .IP RTSP curl supports RTSP 1.0 downloads. .IP SCP curl supports SSH version 2 scp transfers. .IP SFTP curl supports SFTP (draft 5) done over SSH version 2. .IP SMB(S) curl supports SMB version 1 for upload and download. .IP SMTP(S) Uploading contents to an SMTP server means sending an email. With or without TLS. .IP TELNET Telling curl to fetch a telnet URL starts an interactive session where it sends what it reads on stdin and outputs what the server sends it. .IP TFTP curl can do TFTP downloads and uploads. .SH "PROGRESS METER" curl normally displays a progress meter during operations, indicating the amount of transferred data, transfer speeds and estimated time left, etc. The progress meter displays the transfer rate in bytes per second. The suffixes (k, M, G, T, P) are 1024 based. For example 1k is 1024 bytes. 1M is 1048576 bytes. curl displays this data to the terminal by default, so if you invoke curl to do an operation and it is about to write data to the terminal, it \fIdisables\fP the progress meter as otherwise it would mess up the output mixing progress meter and response data. If you want a progress meter for HTTP POST or PUT requests, you need to redirect the response output to a file, using shell redirect (>), \fI\-o, \-\-output\fP or similar. This does not apply to FTP upload as that operation does not spit out any response data to the terminal. If you prefer a progress "bar" instead of the regular meter, \fI\-#, \-\-progress-bar\fP is your friend. You can also disable the progress meter completely with the \fI\-s, \-\-silent\fP option. .SH OPTIONS Options start with one or two dashes. Many of the options require an additional value next to them. The short "single-dash" form of the options, \-d for example, may be used with or without a space between it and its value, although a space is a recommended separator. The long "double-dash" form, \fI\-d, \-\-data\fP for example, requires a space between it and its value. Short version options that do not need any additional values can be used immediately next to each other, like for example you can specify all the options \-O, \-L and \-v at once as \-OLv. In general, all boolean options are enabled with \-\-\fBoption\fP and yet again disabled with \-\-\fBno-\fPoption. That is, you use the same option name but prefix it with "no-". However, in this list we mostly only list and show the \-\-option version of them. .IP "\-\-abstract-unix-socket " (HTTP) Connect through an abstract Unix domain socket, instead of using the network. Note: netstat shows the path of an abstract socket prefixed with '@', however the argument should not have this leading character. If \fI\-\-abstract-unix-socket\fP is provided several times, the last set value will be used. Example: .nf curl --abstract-unix-socket socketpath https://example.com .fi See also \fI--unix-socket\fP. Added in 7.53.0. .IP "\-\-alt-svc " (HTTPS) This option enables the alt-svc parser in curl. If the file name points to an existing alt-svc cache file, that will be used. After a completed transfer, the cache will be saved to the file name again if it has been modified. Specify a "" file name (zero length) to avoid loading/saving and make curl just handle the cache in memory. If this option is used several times, curl will load contents from all the files but the last one will be used for saving. \fI\-\-alt-svc\fP can be used several times in a command line Example: .nf curl --alt-svc svc.txt https://example.com .fi See also \fI--resolve\fP and \fI--connect-to\fP. Added in 7.64.1. .IP "\-\-anyauth" (HTTP) Tells curl to figure out authentication method by itself, and use the most secure one the remote site claims to support. This is done by first doing a request and checking the response-headers, thus possibly inducing an extra network round-trip. This is used instead of setting a specific authentication method, which you can do with \fI\-\-basic\fP, \fI\-\-digest\fP, \fI\-\-ntlm\fP, and \fI\-\-negotiate\fP. Using \fI\-\-anyauth\fP is not recommended if you do uploads from stdin, since it may require data to be sent twice and then the client must be able to rewind. If the need should arise when uploading from stdin, the upload operation will fail. Used together with \fI\-u, \-\-user\fP. Providing \fI\-\-anyauth\fP multiple times has no extra effect. Example: .nf curl --anyauth --user me:pwd https://example.com .fi See also \fI--proxy-anyauth\fP, \fI--basic\fP and \fI--digest\fP. .IP "\-a, \-\-append" (FTP SFTP) When used in an upload, this makes curl append to the target file instead of overwriting it. If the remote file does not exist, it will be created. Note that this flag is ignored by some SFTP servers (including OpenSSH). Providing \fI\-a, \-\-append\fP multiple times has no extra effect. Disable it again with \-\-no-append. Example: .nf curl --upload-file local --append ftp://example.com/ .fi See also \fI-r, --range\fP and \fI-C, --continue-at\fP. .IP "\-\-aws-sigv4 " Use AWS V4 signature authentication in the transfer. The provider argument is a string that is used by the algorithm when creating outgoing authentication headers. The region argument is a string that points to a geographic area of a resources collection (region-code) when the region name is omitted from the endpoint. The service argument is a string that points to a function provided by a cloud (service-code) when the service name is omitted from the endpoint. If \fI\-\-aws-sigv4\fP is provided several times, the last set value will be used. Example: .nf curl --aws-sigv4 "aws:amz:east-2:es" --user "key:secret" https://example.com .fi See also \fI--basic\fP and \fI-u, --user\fP. Added in 7.75.0. .IP "\-\-basic" (HTTP) Tells curl to use HTTP Basic authentication with the remote host. This is the default and this option is usually pointless, unless you use it to override a previously set option that sets a different authentication method (such as \fI\-\-ntlm\fP, \fI\-\-digest\fP, or \fI\-\-negotiate\fP). Used together with \fI\-u, \-\-user\fP. Providing \fI\-\-basic\fP multiple times has no extra effect. Example: .nf curl -u name:password --basic https://example.com .fi See also \fI--proxy-basic\fP. .IP "\-\-cacert " (TLS) Tells curl to use the specified certificate file to verify the peer. The file may contain multiple CA certificates. The certificate(s) must be in PEM format. Normally curl is built to use a default file for this, so this option is typically used to alter that default file. curl recognizes the environment variable named 'CURL_CA_BUNDLE' if it is set, and uses the given path as a path to a CA cert bundle. This option overrides that variable. The windows version of curl will automatically look for a CA certs file named \(aqcurl-ca-bundle.crt', either in the same directory as curl.exe, or in the Current Working Directory, or in any folder along your PATH. If curl is built against the NSS SSL library, the NSS PEM PKCS#11 module (libnsspem.so) needs to be available for this option to work properly. (iOS and macOS only) If curl is built against Secure Transport, then this option is supported for backward compatibility with other SSL engines, but it should not be set. If the option is not set, then curl will use the certificates in the system and user Keychain to verify the peer, which is the preferred method of verifying the peer's certificate chain. (Schannel only) This option is supported for Schannel in Windows 7 or later with libcurl 7.60 or later. This option is supported for backward compatibility with other SSL engines; instead it is recommended to use Windows' store of root certificates (the default for Schannel). If \fI\-\-cacert\fP is provided several times, the last set value will be used. Example: .nf curl --cacert CA-file.txt https://example.com .fi See also \fI--capath\fP and \fI-k, --insecure\fP. .IP "\-\-capath " (TLS) Tells curl to use the specified certificate directory to verify the peer. Multiple paths can be provided by separating them with ":" (e.g. \(dqpath1:path2:path3"). The certificates must be in PEM format, and if curl is built against OpenSSL, the directory must have been processed using the c_rehash utility supplied with OpenSSL. Using \fI\-\-capath\fP can allow OpenSSL-powered curl to make SSL-connections much more efficiently than using \fI\-\-cacert\fP if the \fI\-\-cacert\fP file contains many CA certificates. If this option is set, the default capath value will be ignored. If \fI\-\-capath\fP is provided several times, the last set value will be used. Example: .nf curl --capath /local/directory https://example.com .fi See also \fI--cacert\fP and \fI-k, --insecure\fP. .IP "\-\-cert-status" (TLS) Tells curl to verify the status of the server certificate by using the Certificate Status Request (aka. OCSP stapling) TLS extension. If this option is enabled and the server sends an invalid (e.g. expired) response, if the response suggests that the server certificate has been revoked, or no response at all is received, the verification fails. This is currently only implemented in the OpenSSL, GnuTLS and NSS backends. Providing \fI\-\-cert-status\fP multiple times has no extra effect. Disable it again with \-\-no-cert-status. Example: .nf curl --cert-status https://example.com .fi See also \fI--pinnedpubkey\fP. Added in 7.41.0. .IP "\-\-cert-type " (TLS) Tells curl what type the provided client certificate is using. PEM, DER, ENG and P12 are recognized types. The default type depends on the TLS backend and is usually PEM, however for Secure Transport and Schannel it is P12. If \fI\-E, \-\-cert\fP is a pkcs11: URI then ENG is the default type. If \fI\-\-cert-type\fP is provided several times, the last set value will be used. Example: .nf curl --cert-type PEM --cert file https://example.com .fi See also \fI-E, --cert\fP, \fI--key\fP and \fI--key-type\fP. .IP "\-E, \-\-cert " (TLS) Tells curl to use the specified client certificate file when getting a file with HTTPS, FTPS or another SSL-based protocol. The certificate must be in PKCS#12 format if using Secure Transport, or PEM format if using any other engine. If the optional password is not specified, it will be queried for on the terminal. Note that this option assumes a certificate file that is the private key and the client certificate concatenated. See \fI\-E, \-\-cert\fP and \fI\-\-key\fP to specify them independently. In the portion of the argument, you must escape the character ":" as "\\:" so that it is not recognized as the password delimiter. Similarly, you must escape the character "\\" as "\\\\" so that it is not recognized as an escape character. If curl is built against the NSS SSL library then this option can tell curl the nickname of the certificate to use within the NSS database defined by the environment variable SSL_DIR (or by default /etc/pki/nssdb). If the NSS PEM PKCS#11 module (libnsspem.so) is available then PEM files may be loaded. If you provide a path relative to the current directory, you must prefix the path with "./" in order to avoid confusion with an NSS database nickname. If curl is built against OpenSSL library, and the engine pkcs11 is available, then a PKCS#11 URI (RFC 7512) can be used to specify a certificate located in a PKCS#11 device. A string beginning with "pkcs11:" will be interpreted as a PKCS#11 URI. If a PKCS#11 URI is provided, then the \fI\-\-engine\fP option will be set as "pkcs11" if none was provided and the \fI\-\-cert-type\fP option will be set as \(dqENG" if none was provided. (iOS and macOS only) If curl is built against Secure Transport, then the certificate string can either be the name of a certificate/private key in the system or user keychain, or the path to a PKCS#12-encoded certificate and private key. If you want to use a file from the current directory, please precede it with "./" prefix, in order to avoid confusion with a nickname. (Schannel only) Client certificates must be specified by a path expression to a certificate store. (Loading PFX is not supported; you can import it to a store first). You can use \(dq\\\\" to refer to a certificate in the system certificates store, for example, \(dqCurrentUser\\MY\\934a7ac6f8a5d579285a74fa61e19f23ddfe8d7a". Thumbprint is usually a SHA-1 hex string which you can see in certificate details. Following store locations are supported: CurrentUser, LocalMachine, CurrentService, Services, CurrentUserGroupPolicy, LocalMachineGroupPolicy, LocalMachineEnterprise. If \fI\-E, \-\-cert\fP is provided several times, the last set value will be used. Example: .nf curl --cert certfile --key keyfile https://example.com .fi See also \fI--cert-type\fP, \fI--key\fP and \fI--key-type\fP. .IP "\-\-ciphers " (TLS) Specifies which ciphers to use in the connection. The list of ciphers must specify valid ciphers. Read up on SSL cipher list details on this URL: .nf https://curl.se/docs/ssl-ciphers.html .fi If \fI\-\-ciphers\fP is provided several times, the last set value will be used. Example: .nf curl --ciphers ECDHE-ECDSA-AES256-CCM8 https://example.com .fi See also \fI--tlsv1.3\fP. .IP "\-\-compressed-ssh" (SCP SFTP) Enables built-in SSH compression. This is a request, not an order; the server may or may not do it. Providing \fI\-\-compressed-ssh\fP multiple times has no extra effect. Disable it again with \-\-no-compressed-ssh. Example: .nf curl --compressed-ssh sftp://example.com/ .fi See also \fI--compressed\fP. Added in 7.56.0. .IP "\-\-compressed" (HTTP) Request a compressed response using one of the algorithms curl supports, and automatically decompress the content. Headers are not modified. If this option is used and the server sends an unsupported encoding, curl will report an error. This is a request, not an order; the server may or may not deliver data compressed. Providing \fI\-\-compressed\fP multiple times has no extra effect. Disable it again with \-\-no-compressed. Example: .nf curl --compressed https://example.com .fi See also \fI--compressed-ssh\fP. .IP "\-K, \-\-config " Specify a text file to read curl arguments from. The command line arguments found in the text file will be used as if they were provided on the command line. Options and their parameters must be specified on the same line in the file, separated by whitespace, colon, or the equals sign. Long option names can optionally be given in the config file without the initial double dashes and if so, the colon or equals characters can be used as separators. If the option is specified with one or two dashes, there can be no colon or equals character between the option and its parameter. If the parameter contains whitespace (or starts with : or =), the parameter must be enclosed within quotes. Within double quotes, the following escape sequences are available: \\\\, \\", \\t, \\n, \\r and \\v. A backslash preceding any other letter is ignored. If the first column of a config line is a '#' character, the rest of the line will be treated as a comment. Only write one option per physical line in the config file. Specify the filename to \fI\-K, \-\-config\fP as '-' to make curl read the file from stdin. Note that to be able to specify a URL in the config file, you need to specify it using the \fI\-\-url\fP option, and not by simply writing the URL on its own line. So, it could look similar to this: url = "https://curl.se/docs/" .nf # \-\-\- Example file \-\-\- # this is a comment url = "example.com" output = "curlhere.html" user-agent = "superagent/1.0" .fi .nf # and fetch another URL too url = "example.com/docs/manpage.html" \-O referer = "http://nowhereatall.example.com/" # \-\-\- End of example file \-\-\- .fi When curl is invoked, it (unless \fI\-q, \-\-disable\fP is used) checks for a default config file and uses it if found, even when \fI\-K, \-\-config\fP is used. The default config file is checked for in the following places in this order: 1) "$CURL_HOME/.curlrc" 2) "$XDG_CONFIG_HOME/.curlrc" (Added in 7.73.0) 3) "$HOME/.curlrc" 4) Windows: "%USERPROFILE%\\.curlrc" 5) Windows: "%APPDATA%\\.curlrc" 6) Windows: "%USERPROFILE%\\Application Data\\.curlrc" 7) Non-Windows: use getpwuid to find the home directory 8) On Windows, if it finds no .curlrc file in the sequence described above, it checks for one in the same dir the curl executable is placed. On Windows two filenames are checked per location: .curlrc and _curlrc, preferring the former. Older versions on Windows checked for _curlrc only. \fI\-K, \-\-config\fP can be used several times in a command line Example: .nf curl --config file.txt https://example.com .fi See also \fI-q, --disable\fP. .IP "\-\-connect-timeout " Maximum time in seconds that you allow curl's connection to take. This only limits the connection phase, so if curl connects within the given period it will continue \- if not it will exit. Since version 7.32.0, this option accepts decimal values. The "connection phase" is considered complete when the requested TCP, TLS or QUIC handshakes are done. The decimal value needs to provided using a dot (.) as decimal separator \- not the local version even if it might be using another separator. If \fI\-\-connect-timeout\fP is provided several times, the last set value will be used. Examples: .nf curl --connect-timeout 20 https://example.com curl --connect-timeout 3.14 https://example.com .fi See also \fI-m, --max-time\fP. .IP "\-\-connect-to " For a request to the given HOST1:PORT1 pair, connect to HOST2:PORT2 instead. This option is suitable to direct requests at a specific server, e.g. at a specific cluster node in a cluster of servers. This option is only used to establish the network connection. It does NOT affect the hostname/port that is used for TLS/SSL (e.g. SNI, certificate verification) or for the application protocols. "HOST1" and "PORT1" may be the empty string, meaning "any host/port". "HOST2" and "PORT2" may also be the empty string, meaning "use the request's original host/port". A "host" specified to this option is compared as a string, so it needs to match the name used in request URL. It can be either numerical such as \(dq127.0.0.1" or the full host name such as "example.org". \fI\-\-connect-to\fP can be used several times in a command line Example: .nf curl --connect-to example.com:443:example.net:8443 https://example.com .fi See also \fI--resolve\fP and \fI-H, --header\fP. Added in 7.49.0. .IP "\-C, \-\-continue-at " Continue/Resume a previous file transfer at the given offset. The given offset is the exact number of bytes that will be skipped, counting from the beginning of the source file before it is transferred to the destination. If used with uploads, the FTP server command SIZE will not be used by curl. Use "-C \-" to tell curl to automatically find out where/how to resume the transfer. It then uses the given output/input files to figure that out. If \fI\-C, \-\-continue-at\fP is provided several times, the last set value will be used. Examples: .nf curl -C - https://example.com curl -C 400 https://example.com .fi See also \fI-r, --range\fP. .IP "\-c, \-\-cookie-jar " (HTTP) Specify to which file you want curl to write all cookies after a completed operation. Curl writes all cookies from its in-memory cookie storage to the given file at the end of operations. If no cookies are known, no data will be written. The file will be written using the Netscape cookie file format. If you set the file name to a single dash, "-", the cookies will be written to stdout. This command line option will activate the cookie engine that makes curl record and use cookies. Another way to activate it is to use the \fI\-b, \-\-cookie\fP option. If the cookie jar cannot be created or written to, the whole curl operation will not fail or even report an error clearly. Using \fI\-v, \-\-verbose\fP will get a warning displayed, but that is the only visible feedback you get about this possibly lethal situation. If \fI\-c, \-\-cookie-jar\fP is provided several times, the last set value will be used. Examples: .nf curl -c store-here.txt https://example.com curl -c store-here.txt -b read-these https://example.com .fi See also \fI-b, --cookie\fP. .IP "\-b, \-\-cookie " (HTTP) Pass the data to the HTTP server in the Cookie header. It is supposedly the data previously received from the server in a "Set-Cookie:" line. The data should be in the format "NAME1=VALUE1; NAME2=VALUE2". This makes curl use the cookie header with this content explicitly in all outgoing request(s). If multiple requests are done due to authentication, followed redirects or similar, they will all get this cookie passed on. If no '=' symbol is used in the argument, it is instead treated as a filename to read previously stored cookie from. This option also activates the cookie engine which will make curl record incoming cookies, which may be handy if you are using this in combination with the \fI\-L, \-\-location\fP option or do multiple URL transfers on the same invoke. If the file name is exactly a minus ("-"), curl will instead read the contents from stdin. The file format of the file to read cookies from should be plain HTTP headers (Set-Cookie style) or the Netscape/Mozilla cookie file format. The file specified with \fI\-b, \-\-cookie\fP is only used as input. No cookies will be written to the file. To store cookies, use the \fI\-c, \-\-cookie-jar\fP option. If you use the Set-Cookie file format and do not specify a domain then the cookie is not sent since the domain will never match. To address this, set a domain in Set-Cookie line (doing that will include sub-domains) or preferably: use the Netscape format. Users often want to both read cookies from a file and write updated cookies back to a file, so using both \fI\-b, \-\-cookie\fP and \fI\-c, \-\-cookie-jar\fP in the same command line is common. \fI\-b, \-\-cookie\fP can be used several times in a command line Examples: .nf curl -b cookiefile https://example.com curl -b cookiefile -c cookiefile https://example.com .fi See also \fI-c, --cookie-jar\fP and \fI-j, --junk-session-cookies\fP. .IP "\-\-create-dirs" When used in conjunction with the \fI\-o, \-\-output\fP option, curl will create the necessary local directory hierarchy as needed. This option creates the directories mentioned with the \fI\-o, \-\-output\fP option, nothing else. If the \fI\-o, \-\-output\fP file name uses no directory, or if the directories it mentions already exist, no directories will be created. Created dirs are made with mode 0750 on unix style file systems. To create remote directories when using FTP or SFTP, try \fI\-\-ftp-create-dirs\fP. Providing \fI\-\-create-dirs\fP multiple times has no extra effect. Disable it again with \-\-no-create-dirs. Example: .nf curl --create-dirs --output local/dir/file https://example.com .fi See also \fI--ftp-create-dirs\fP and \fI--output-dir\fP. .IP "\-\-create-file-mode " (SFTP SCP FILE) When curl is used to create files remotely using one of the supported protocols, this option allows the user to set which 'mode' to set on the file at creation time, instead of the default 0644. This option takes an octal number as argument. If \fI\-\-create-file-mode\fP is provided several times, the last set value will be used. Example: .nf curl --create-file-mode 0777 -T localfile sftp://example.com/new .fi See also \fI--ftp-create-dirs\fP. Added in 7.75.0. .IP "\-\-crlf" (FTP SMTP) Convert LF to CRLF in upload. Useful for MVS (OS/390). (SMTP added in 7.40.0) Providing \fI\-\-crlf\fP multiple times has no extra effect. Disable it again with \-\-no-crlf. Example: .nf curl --crlf -T file ftp://example.com/ .fi See also \fI-B, --use-ascii\fP. .IP "\-\-crlfile " (TLS) Provide a file using PEM format with a Certificate Revocation List that may specify peer certificates that are to be considered revoked. If \fI\-\-crlfile\fP is provided several times, the last set value will be used. Example: .nf curl --crlfile rejects.txt https://example.com .fi See also \fI--cacert\fP and \fI--capath\fP. .IP "\-\-curves " (TLS) Tells curl to request specific curves to use during SSL session establishment according to RFC 8422, 5.1. Multiple algorithms can be provided by separating them with ":" (e.g. "X25519:P-521"). The parameter is available identically in the "openssl s_client/s_server" utilities. \fI\-\-curves\fP allows a OpenSSL powered curl to make SSL-connections with exactly the (EC) curve requested by the client, avoiding nontransparent client/server negotiations. If this option is set, the default curves list built into openssl will be ignored. If \fI\-\-curves\fP is provided several times, the last set value will be used. Example: .nf curl --curves X25519 https://example.com .fi See also \fI--ciphers\fP. Added in 7.73.0. .IP "\-\-data-ascii " (HTTP) This is just an alias for \fI\-d, \-\-data\fP. \fI\-\-data-ascii\fP can be used several times in a command line Example: .nf curl --data-ascii @file https://example.com .fi See also \fI--data-binary\fP, \fI--data-raw\fP and \fI--data-urlencode\fP. .IP "\-\-data-binary " (HTTP) This posts data exactly as specified with no extra processing whatsoever. If you start the data with the letter @, the rest should be a filename. Data is posted in a similar manner as \fI\-d, \-\-data\fP does, except that newlines and carriage returns are preserved and conversions are never done. Like \fI\-d, \-\-data\fP the default content-type sent to the server is application/x-www-form-urlencoded. If you want the data to be treated as arbitrary binary data by the server then set the content-type to octet-stream: \-H "Content-Type: application/octet-stream". If this option is used several times, the ones following the first will append data as described in \fI\-d, \-\-data\fP. \fI\-\-data-binary\fP can be used several times in a command line Example: .nf curl --data-binary @filename https://example.com .fi See also \fI--data-ascii\fP. .IP "\-\-data-raw " (HTTP) This posts data similarly to \fI\-d, \-\-data\fP but without the special interpretation of the @ character. \fI\-\-data-raw\fP can be used several times in a command line Examples: .nf curl --data-raw "hello" https://example.com curl --data-raw "@at@at@" https://example.com .fi See also \fI-d, --data\fP. Added in 7.43.0. .IP "\-\-data-urlencode " (HTTP) This posts data, similar to the other \fI\-d, \-\-data\fP options with the exception that this performs URL-encoding. To be CGI-compliant, the part should begin with a \fIname\fP followed by a separator and a content specification. The part can be passed to curl using one of the following syntaxes: .RS .IP "content" This will make curl URL-encode the content and pass that on. Just be careful so that the content does not contain any = or @ symbols, as that will then make the syntax match one of the other cases below! .IP "=content" This will make curl URL-encode the content and pass that on. The preceding = symbol is not included in the data. .IP "name=content" This will make curl URL-encode the content part and pass that on. Note that the name part is expected to be URL-encoded already. .IP "@filename" This will make curl load data from the given file (including any newlines), URL-encode that data and pass it on in the POST. .IP "name@filename" This will make curl load data from the given file (including any newlines), URL-encode that data and pass it on in the POST. The name part gets an equal sign appended, resulting in \fIname=urlencoded-file-content\fP. Note that the name is expected to be URL-encoded already. .RE \fI\-\-data-urlencode\fP can be used several times in a command line Examples: .nf curl --data-urlencode name=val https://example.com curl --data-urlencode =encodethis https://example.com curl --data-urlencode name@file https://example.com curl --data-urlencode @fileonly https://example.com .fi See also \fI-d, --data\fP and \fI--data-raw\fP. .IP "\-d, \-\-data " (HTTP MQTT) Sends the specified data in a POST request to the HTTP server, in the same way that a browser does when a user has filled in an HTML form and presses the submit button. This will cause curl to pass the data to the server using the content-type application/x-www-form-urlencoded. Compare to \fI\-F, \-\-form\fP. \fI\-\-data-raw\fP is almost the same but does not have a special interpretation of the @ character. To post data purely binary, you should instead use the \fI\-\-data-binary\fP option. To URL-encode the value of a form field you may use \fI\-\-data-urlencode\fP. If any of these options is used more than once on the same command line, the data pieces specified will be merged with a separating &-symbol. Thus, using \(aq-d name=daniel \-d skill=lousy' would generate a post chunk that looks like \(aqname=daniel&skill=lousy'. If you start the data with the letter @, the rest should be a file name to read the data from, or \- if you want curl to read the data from stdin. Posting data from a file named 'foobar' would thus be done with \fI\-d, \-\-data\fP @foobar. When \fI\-d, \-\-data\fP is told to read from a file like that, carriage returns and newlines will be stripped out. If you do not want the @ character to have a special interpretation use \fI\-\-data-raw\fP instead. \fI\-d, \-\-data\fP can be used several times in a command line Examples: .nf curl -d "name=curl" https://example.com curl -d "name=curl" -d "tool=cmdline" https://example.com curl -d @filename https://example.com .fi See also \fI--data-binary\fP, \fI--data-urlencode\fP and \fI--data-raw\fP. This option is mutually exclusive to \fI-F, --form\fP and \fI-I, --head\fP and \fI-T, --upload-file\fP. .IP "\-\-delegation " (GSS/kerberos) Set LEVEL to tell the server what it is allowed to delegate when it comes to user credentials. .RS .IP "none" Do not allow any delegation. .IP "policy" Delegates if and only if the OK-AS-DELEGATE flag is set in the Kerberos service ticket, which is a matter of realm policy. .IP "always" Unconditionally allow the server to delegate. .RE If \fI\-\-delegation\fP is provided several times, the last set value will be used. Example: .nf curl --delegation "none" https://example.com .fi See also \fI-k, --insecure\fP and \fI--ssl\fP. .IP "\-\-digest" (HTTP) Enables HTTP Digest authentication. This is an authentication scheme that prevents the password from being sent over the wire in clear text. Use this in combination with the normal \fI\-u, \-\-user\fP option to set user name and password. Providing \fI\-\-digest\fP multiple times has no extra effect. Disable it again with \-\-no-digest. Example: .nf curl -u name:password --digest https://example.com .fi See also \fI-u, --user\fP, \fI--proxy-digest\fP and \fI--anyauth\fP. This option is mutually exclusive to \fI--basic\fP and \fI--ntlm\fP and \fI--negotiate\fP. .IP "\-\-disable-eprt" (FTP) Tell curl to disable the use of the EPRT and LPRT commands when doing active FTP transfers. Curl will normally always first attempt to use EPRT, then LPRT before using PORT, but with this option, it will use PORT right away. EPRT and LPRT are extensions to the original FTP protocol, and may not work on all servers, but they enable more functionality in a better way than the traditional PORT command. \-\-eprt can be used to explicitly enable EPRT again and \-\-no-eprt is an alias for \fI\-\-disable-eprt\fP. If the server is accessed using IPv6, this option will have no effect as EPRT is necessary then. Disabling EPRT only changes the active behavior. If you want to switch to passive mode you need to not use \fI\-P, \-\-ftp-port\fP or force it with \fI\-\-ftp-pasv\fP. Providing \fI\-\-disable-eprt\fP multiple times has no extra effect. Disable it again with \-\-no-disable-eprt. Example: .nf curl --disable-eprt ftp://example.com/ .fi See also \fI--disable-epsv\fP and \fI-P, --ftp-port\fP. .IP "\-\-disable-epsv" (FTP) Tell curl to disable the use of the EPSV command when doing passive FTP transfers. Curl will normally always first attempt to use EPSV before PASV, but with this option, it will not try using EPSV. \-\-epsv can be used to explicitly enable EPSV again and \-\-no-epsv is an alias for \fI\-\-disable-epsv\fP. If the server is an IPv6 host, this option will have no effect as EPSV is necessary then. Disabling EPSV only changes the passive behavior. If you want to switch to active mode you need to use \fI\-P, \-\-ftp-port\fP. Providing \fI\-\-disable-epsv\fP multiple times has no extra effect. Disable it again with \-\-no-disable-epsv. Example: .nf curl --disable-epsv ftp://example.com/ .fi See also \fI--disable-eprt\fP and \fI-P, --ftp-port\fP. .IP "\-q, \-\-disable" If used as the first parameter on the command line, the \fIcurlrc\fP config file will not be read and used. See the \fI\-K, \-\-config\fP for details on the default config file search path. Providing \fI\-q, \-\-disable\fP multiple times has no extra effect. Disable it again with \-\-no-disable. Example: .nf curl -q https://example.com .fi See also \fI-K, --config\fP. .IP "\-\-disallow-username-in-url" (HTTP) This tells curl to exit if passed a URL containing a username. This is probably most useful when the URL is being provided at runtime or similar. Providing \fI\-\-disallow-username-in-url\fP multiple times has no extra effect. Disable it again with \-\-no-disallow-username-in-url. Example: .nf curl --disallow-username-in-url https://example.com .fi See also \fI--proto\fP. Added in 7.61.0. .IP "\-\-dns-interface " (DNS) Tell curl to send outgoing DNS requests through . This option is a counterpart to \fI\-\-interface\fP (which does not affect DNS). The supplied string must be an interface name (not an address). If \fI\-\-dns-interface\fP is provided several times, the last set value will be used. Example: .nf curl --dns-interface eth0 https://example.com .fi See also \fI--dns-ipv4-addr\fP and \fI--dns-ipv6-addr\fP. \fI--dns-interface\fP requires that the underlying libcurl was built to support c-ares. Added in 7.33.0. .IP "\-\-dns-ipv4-addr
" (DNS) Tell curl to bind to when making IPv4 DNS requests, so that the DNS requests originate from this address. The argument should be a single IPv4 address. If \fI\-\-dns-ipv4-addr\fP is provided several times, the last set value will be used. Example: .nf curl --dns-ipv4-addr 10.1.2.3 https://example.com .fi See also \fI--dns-interface\fP and \fI--dns-ipv6-addr\fP. \fI--dns-ipv4-addr\fP requires that the underlying libcurl was built to support c-ares. Added in 7.33.0. .IP "\-\-dns-ipv6-addr
" (DNS) Tell curl to bind to when making IPv6 DNS requests, so that the DNS requests originate from this address. The argument should be a single IPv6 address. If \fI\-\-dns-ipv6-addr\fP is provided several times, the last set value will be used. Example: .nf curl --dns-ipv6-addr 2a04:4e42::561 https://example.com .fi See also \fI--dns-interface\fP and \fI--dns-ipv4-addr\fP. \fI--dns-ipv6-addr\fP requires that the underlying libcurl was built to support c-ares. Added in 7.33.0. .IP "\-\-dns-servers " Set the list of DNS servers to be used instead of the system default. The list of IP addresses should be separated with commas. Port numbers may also optionally be given as \fI:\fP after each IP address. If \fI\-\-dns-servers\fP is provided several times, the last set value will be used. Example: .nf curl --dns-servers 192.168.0.1,192.168.0.2 https://example.com .fi See also \fI--dns-interface\fP and \fI--dns-ipv4-addr\fP. \fI--dns-servers\fP requires that the underlying libcurl was built to support c-ares. Added in 7.33.0. .IP "\-\-doh-cert-status" Same as \fI\-\-cert-status\fP but used for DoH (DNS-over-HTTPS). Providing \fI\-\-doh-cert-status\fP multiple times has no extra effect. Disable it again with \-\-no-doh-cert-status. Example: .nf curl --doh-cert-status --doh-url https://doh.example https://example.com .fi See also \fI--doh-insecure\fP. Added in 7.76.0. .IP "\-\-doh-insecure" Same as \fI\-k, \-\-insecure\fP but used for DoH (DNS-over-HTTPS). Providing \fI\-\-doh-insecure\fP multiple times has no extra effect. Disable it again with \-\-no-doh-insecure. Example: .nf curl --doh-insecure --doh-url https://doh.example https://example.com .fi See also \fI--doh-url\fP. Added in 7.76.0. .IP "\-\-doh-url " Specifies which DNS-over-HTTPS (DoH) server to use to resolve hostnames, instead of using the default name resolver mechanism. The URL must be HTTPS. Some SSL options that you set for your transfer will apply to DoH since the name lookups take place over SSL. However, the certificate verification settings are not inherited and can be controlled separately via \fI\-\-doh-insecure\fP and \fI\-\-doh-cert-status\fP. This option is unset if an empty string "" is used as the URL. (Added in 7.85.0) If \fI\-\-doh-url\fP is provided several times, the last set value will be used. Example: .nf curl --doh-url https://doh.example https://example.com .fi See also \fI--doh-insecure\fP. Added in 7.62.0. .IP "\-D, \-\-dump-header " (HTTP FTP) Write the received protocol headers to the specified file. If no headers are received, the use of this option will create an empty file. When used in FTP, the FTP server response lines are considered being "headers" and thus are saved there. Having multiple transfers in one set of operations (i.e. the URLs in one \fI\-:, \-\-next\fP clause), will append them to the same file, seperated by a blank line. If \fI\-D, \-\-dump-header\fP is provided several times, the last set value will be used. Example: .nf curl --dump-header store.txt https://example.com .fi See also \fI-o, --output\fP. .IP "\-\-egd-file " (TLS) Deprecated option. This option is ignored by curl since 7.84.0. Prior to that it only had an effect on curl if built to use old versions of OpenSSL. Specify the path name to the Entropy Gathering Daemon socket. The socket is used to seed the random engine for SSL connections. If \fI\-\-egd-file\fP is provided several times, the last set value will be used. Example: .nf curl --egd-file /random/here https://example.com .fi See also \fI--random-file\fP. .IP "\-\-engine " (TLS) Select the OpenSSL crypto engine to use for cipher operations. Use \fI\-\-engine\fP list to print a list of build-time supported engines. Note that not all (and possibly none) of the engines may be available at runtime. If \fI\-\-engine\fP is provided several times, the last set value will be used. Example: .nf curl --engine flavor https://example.com .fi See also \fI--ciphers\fP and \fI--curves\fP. .IP "\-\-etag-compare " (HTTP) This option makes a conditional HTTP request for the specific ETag read from the given file by sending a custom If-None-Match header using the stored ETag. For correct results, make sure that the specified file contains only a single line with the desired ETag. An empty file is parsed as an empty ETag. Use the option \fI\-\-etag-save\fP to first save the ETag from a response, and then use this option to compare against the saved ETag in a subsequent request. If \fI\-\-etag-compare\fP is provided several times, the last set value will be used. Example: .nf curl --etag-compare etag.txt https://example.com .fi See also \fI--etag-save\fP and \fI-z, --time-cond\fP. Added in 7.68.0. .IP "\-\-etag-save " (HTTP) This option saves an HTTP ETag to the specified file. An ETag is a caching related header, usually returned in a response. If no ETag is sent by the server, an empty file is created. If \fI\-\-etag-save\fP is provided several times, the last set value will be used. Example: .nf curl --etag-save storetag.txt https://example.com .fi See also \fI--etag-compare\fP. Added in 7.68.0. .IP "\-\-expect100-timeout " (HTTP) Maximum time in seconds that you allow curl to wait for a 100-continue response when curl emits an Expects: 100-continue header in its request. By default curl will wait one second. This option accepts decimal values! When curl stops waiting, it will continue as if the response has been received. The decimal value needs to provided using a dot (.) as decimal separator \- not the local version even if it might be using another separator. If \fI\-\-expect100-timeout\fP is provided several times, the last set value will be used. Example: .nf curl --expect100-timeout 2.5 -T file https://example.com .fi See also \fI--connect-timeout\fP. Added in 7.47.0. .IP "\-\-fail-early" Fail and exit on the first detected transfer error. When curl is used to do multiple transfers on the command line, it will attempt to operate on each given URL, one by one. By default, it will ignore errors if there are more URLs given and the last URL's success will determine the error code curl returns. So early failures will be "hidden" by subsequent successful transfers. Using this option, curl will instead return an error on the first transfer that fails, independent of the amount of URLs that are given on the command line. This way, no transfer failures go undetected by scripts and similar. This option is global and does not need to be specified for each use of \fI\-:, \-\-next\fP. This option does not imply \fI\-f, \-\-fail\fP, which causes transfers to fail due to the server's HTTP status code. You can combine the two options, however note \fI\-f, \-\-fail\fP is not global and is therefore contained by \fI\-:, \-\-next\fP. Providing \fI\-\-fail-early\fP multiple times has no extra effect. Disable it again with \-\-no-fail-early. Example: .nf curl --fail-early https://example.com https://two.example .fi See also \fI-f, --fail\fP and \fI--fail-with-body\fP. Added in 7.52.0. .IP "\-\-fail-with-body" (HTTP) Return an error on server errors where the HTTP response code is 400 or greater). In normal cases when an HTTP server fails to deliver a document, it returns an HTML document stating so (which often also describes why and more). This flag will still allow curl to output and save that content but also to return error 22. This is an alternative option to \fI\-f, \-\-fail\fP which makes curl fail for the same circumstances but without saving the content. Providing \fI\-\-fail-with-body\fP multiple times has no extra effect. Disable it again with \-\-no-fail-with-body. Example: .nf curl --fail-with-body https://example.com .fi See also \fI-f, --fail\fP. This option is mutually exclusive to \fI-f, --fail\fP. Added in 7.76.0. .IP "\-f, \-\-fail" (HTTP) Fail fast with no output at all on server errors. This is useful to enable scripts and users to better deal with failed attempts. In normal cases when an HTTP server fails to deliver a document, it returns an HTML document stating so (which often also describes why and more). This flag will prevent curl from outputting that and return error 22. This method is not fail-safe and there are occasions where non-successful response codes will slip through, especially when authentication is involved (response codes 401 and 407). Providing \fI\-f, \-\-fail\fP multiple times has no extra effect. Disable it again with \-\-no-fail. Example: .nf curl --fail https://example.com .fi See also \fI--fail-with-body\fP. This option is mutually exclusive to \fI--fail-with-body\fP. .IP "\-\-false-start" (TLS) Tells curl to use false start during the TLS handshake. False start is a mode where a TLS client will start sending application data before verifying the server's Finished message, thus saving a round trip when performing a full handshake. This is currently only implemented in the NSS and Secure Transport (on iOS 7.0 or later, or OS X 10.9 or later) backends. Providing \fI\-\-false-start\fP multiple times has no extra effect. Disable it again with \-\-no-false-start. Example: .nf curl --false-start https://example.com .fi See also \fI--tcp-fastopen\fP. Added in 7.42.0. .IP "\-\-form-escape" (HTTP) Tells curl to pass on names of multipart form fields and files using backslash-escaping instead of percent-encoding. If \fI\-\-form-escape\fP is provided several times, the last set value will be used. Example: .nf curl --form-escape -F 'field\\name=curl' -F 'file=@load"this' https://example.com .fi See also \fI-F, --form\fP. Added in 7.81.0. .IP "\-\-form-string " (HTTP SMTP IMAP) Similar to \fI\-F, \-\-form\fP except that the value string for the named parameter is used literally. Leading '@' and '<' characters, and the ';type=' string in the value have no special meaning. Use this in preference to \fI\-F, \-\-form\fP if there's any possibility that the string value may accidentally trigger the \(aq@' or '<' features of \fI\-F, \-\-form\fP. \fI\-\-form-string\fP can be used several times in a command line Example: .nf curl --form-string "data" https://example.com .fi See also \fI-F, --form\fP. .IP "\-F, \-\-form " (HTTP SMTP IMAP) For HTTP protocol family, this lets curl emulate a filled-in form in which a user has pressed the submit button. This causes curl to POST data using the Content-Type multipart/form-data according to RFC 2388. For SMTP and IMAP protocols, this is the means to compose a multipart mail message to transmit. This enables uploading of binary files etc. To force the 'content' part to be a file, prefix the file name with an @ sign. To just get the content part from a file, prefix the file name with the symbol <. The difference between @ and < is then that @ makes a file get attached in the post as a file upload, while the < makes a text field and just get the contents for that text field from a file. Tell curl to read content from stdin instead of a file by using \- as filename. This goes for both @ and < constructs. When stdin is used, the contents is buffered in memory first by curl to determine its size and allow a possible resend. Defining a part's data from a named non-regular file (such as a named pipe or similar) is unfortunately not subject to buffering and will be effectively read at transmission time; since the full size is unknown before the transfer starts, such data is sent as chunks by HTTP and rejected by IMAP. Example: send an image to an HTTP server, where 'profile' is the name of the form-field to which the file portrait.jpg will be the input: .nf curl \-F profile=@portrait.jpg https://example.com/upload.cgi .fi Example: send your name and shoe size in two text fields to the server: .nf curl \-F name=John \-F shoesize=11 https://example.com/ .fi Example: send your essay in a text field to the server. Send it as a plain text field, but get the contents for it from a local file: .nf curl \-F "story=HTML message;type=text/html' \\ \-F '=)' \-F '=@textfile.txt' ... smtp://example.com .fi Data can be encoded for transfer using encoder=. Available encodings are \fIbinary\fP and \fI8bit\fP that do nothing else than adding the corresponding Content-Transfer-Encoding header, \fI7bit\fP that only rejects 8-bit characters with a transfer error, \fIquoted-printable\fP and \fIbase64\fP that encodes data according to the corresponding schemes, limiting lines length to 76 characters. Example: send multipart mail with a quoted-printable text message and a base64 attached file: .nf curl \-F '=text message;encoder=quoted-printable' \\ \-F '=@localfile;encoder=base64' ... smtp://example.com .fi See further examples and details in the MANUAL. \fI\-F, \-\-form\fP can be used several times in a command line Example: .nf curl --form "name=curl" --form "file=@loadthis" https://example.com .fi See also \fI-d, --data\fP, \fI--form-string\fP and \fI--form-escape\fP. This option is mutually exclusive to \fI-d, --data\fP and \fI-I, --head\fP and \fI-T, --upload-file\fP. .IP "\-\-ftp-account " (FTP) When an FTP server asks for "account data" after user name and password has been provided, this data is sent off using the ACCT command. If \fI\-\-ftp-account\fP is provided several times, the last set value will be used. Example: .nf curl --ftp-account "mr.robot" ftp://example.com/ .fi See also \fI-u, --user\fP. .IP "\-\-ftp-alternative-to-user " (FTP) If authenticating with the USER and PASS commands fails, send this command. When connecting to Tumbleweed's Secure Transport server over FTPS using a client certificate, using "SITE AUTH" will tell the server to retrieve the username from the certificate. If \fI\-\-ftp-alternative-to-user\fP is provided several times, the last set value will be used. Example: .nf curl --ftp-alternative-to-user "U53r" ftp://example.com .fi See also \fI--ftp-account\fP and \fI-u, --user\fP. .IP "\-\-ftp-create-dirs" (FTP SFTP) When an FTP or SFTP URL/operation uses a path that does not currently exist on the server, the standard behavior of curl is to fail. Using this option, curl will instead attempt to create missing directories. Providing \fI\-\-ftp-create-dirs\fP multiple times has no extra effect. Disable it again with \-\-no-ftp-create-dirs. Example: .nf curl --ftp-create-dirs -T file ftp://example.com/remote/path/file .fi See also \fI--create-dirs\fP. .IP "\-\-ftp-method " (FTP) Control what method curl should use to reach a file on an FTP(S) server. The method argument should be one of the following alternatives: .RS .IP multicwd curl does a single CWD operation for each path part in the given URL. For deep hierarchies this means many commands. This is how RFC 1738 says it should be done. This is the default but the slowest behavior. .IP nocwd curl does no CWD at all. curl will do SIZE, RETR, STOR etc and give a full path to the server for all these commands. This is the fastest behavior. .IP singlecwd curl does one CWD with the full target directory and then operates on the file \(dqnormally" (like in the multicwd case). This is somewhat more standards compliant than 'nocwd' but without the full penalty of 'multicwd'. .RE If \fI\-\-ftp-method\fP is provided several times, the last set value will be used. Examples: .nf curl --ftp-method multicwd ftp://example.com/dir1/dir2/file curl --ftp-method nocwd ftp://example.com/dir1/dir2/file curl --ftp-method singlecwd ftp://example.com/dir1/dir2/file .fi See also \fI-l, --list-only\fP. .IP "\-\-ftp-pasv" (FTP) Use passive mode for the data connection. Passive is the internal default behavior, but using this option can be used to override a previous \fI\-P, \-\-ftp-port\fP option. Reversing an enforced passive really is not doable but you must then instead enforce the correct \fI\-P, \-\-ftp-port\fP again. Passive mode means that curl will try the EPSV command first and then PASV, unless \fI\-\-disable-epsv\fP is used. Providing \fI\-\-ftp-pasv\fP multiple times has no extra effect. Disable it again with \-\-no-ftp-pasv. Example: .nf curl --ftp-pasv ftp://example.com/ .fi See also \fI--disable-epsv\fP. .IP "\-P, \-\-ftp-port
" (FTP) Reverses the default initiator/listener roles when connecting with FTP. This option makes curl use active mode. curl then tells the server to connect back to the client's specified address and port, while passive mode asks the server to setup an IP address and port for it to connect to.
should be one of: .RS .IP interface e.g. "eth0" to specify which interface's IP address you want to use (Unix only) .IP "IP address" e.g. "192.168.10.1" to specify the exact IP address .IP "host name" e.g. "my.host.domain" to specify the machine .IP "-" make curl pick the same IP address that is already used for the control connection .RE Disable the use of PORT with \fI\-\-ftp-pasv\fP. Disable the attempt to use the EPRT command instead of PORT by using \fI\-\-disable-eprt\fP. EPRT is really PORT++. You can also append ":[start]-[end]\&" to the right of the address, to tell curl what TCP port range to use. That means you specify a port range, from a lower to a higher number. A single number works as well, but do note that it increases the risk of failure since the port may not be available. If \fI\-P, \-\-ftp-port\fP is provided several times, the last set value will be used. Examples: .nf curl -P - ftp:/example.com curl -P eth0 ftp:/example.com curl -P 192.168.0.2 ftp:/example.com .fi See also \fI--ftp-pasv\fP and \fI--disable-eprt\fP. .IP "\-\-ftp-pret" (FTP) Tell curl to send a PRET command before PASV (and EPSV). Certain FTP servers, mainly drftpd, require this non-standard command for directory listings as well as up and downloads in PASV mode. Providing \fI\-\-ftp-pret\fP multiple times has no extra effect. Disable it again with \-\-no-ftp-pret. Example: .nf curl --ftp-pret ftp://example.com/ .fi See also \fI-P, --ftp-port\fP and \fI--ftp-pasv\fP. .IP "\-\-ftp-skip-pasv-ip" (FTP) Tell curl to not use the IP address the server suggests in its response to curl's PASV command when curl connects the data connection. Instead curl will re-use the same IP address it already uses for the control connection. Since curl 7.74.0 this option is enabled by default. This option has no effect if PORT, EPRT or EPSV is used instead of PASV. Providing \fI\-\-ftp-skip-pasv-ip\fP multiple times has no extra effect. Disable it again with \-\-no-ftp-skip-pasv-ip. Example: .nf curl --ftp-skip-pasv-ip ftp://example.com/ .fi See also \fI--ftp-pasv\fP. .IP "\-\-ftp-ssl-ccc-mode " (FTP) Sets the CCC mode. The passive mode will not initiate the shutdown, but instead wait for the server to do it, and will not reply to the shutdown from the server. The active mode initiates the shutdown and waits for a reply from the server. Providing \fI\-\-ftp-ssl-ccc-mode\fP multiple times has no extra effect. Disable it again with \-\-no-ftp-ssl-ccc-mode. Example: .nf curl --ftp-ssl-ccc-mode active --ftp-ssl-ccc ftps://example.com/ .fi See also \fI--ftp-ssl-ccc\fP. .IP "\-\-ftp-ssl-ccc" (FTP) Use CCC (Clear Command Channel) Shuts down the SSL/TLS layer after authenticating. The rest of the control channel communication will be unencrypted. This allows NAT routers to follow the FTP transaction. The default mode is passive. Providing \fI\-\-ftp-ssl-ccc\fP multiple times has no extra effect. Disable it again with \-\-no-ftp-ssl-ccc. Example: .nf curl --ftp-ssl-ccc ftps://example.com/ .fi See also \fI--ssl\fP and \fI--ftp-ssl-ccc-mode\fP. .IP "\-\-ftp-ssl-control" (FTP) Require SSL/TLS for the FTP login, clear for transfer. Allows secure authentication, but non-encrypted data transfers for efficiency. Fails the transfer if the server does not support SSL/TLS. Providing \fI\-\-ftp-ssl-control\fP multiple times has no extra effect. Disable it again with \-\-no-ftp-ssl-control. Example: .nf curl --ftp-ssl-control ftp://example.com .fi See also \fI--ssl\fP. .IP "\-G, \-\-get" When used, this option will make all data specified with \fI\-d, \-\-data\fP, \fI\-\-data-binary\fP or \fI\-\-data-urlencode\fP to be used in an HTTP GET request instead of the POST request that otherwise would be used. The data will be appended to the URL with a '?' separator. If used in combination with \fI\-I, \-\-head\fP, the POST data will instead be appended to the URL with a HEAD request. Providing \fI\-G, \-\-get\fP multiple times has no extra effect. Disable it again with \-\-no-get. Examples: .nf curl --get https://example.com curl --get -d "tool=curl" -d "age=old" https://example.com curl --get -I -d "tool=curl" https://example.com .fi See also \fI-d, --data\fP and \fI-X, --request\fP. .IP "\-g, \-\-globoff" This option switches off the "URL globbing parser". When you set this option, you can specify URLs that contain the letters {}[] without having curl itself interpret them. Note that these letters are not normal legal URL contents but they should be encoded according to the URI standard. Providing \fI\-g, \-\-globoff\fP multiple times has no extra effect. Disable it again with \-\-no-globoff. Example: .nf curl -g "https://example.com/{[]}}}}" .fi See also \fI-K, --config\fP and \fI-q, --disable\fP. .IP "\-\-happy-eyeballs-timeout-ms " Happy Eyeballs is an algorithm that attempts to connect to both IPv4 and IPv6 addresses for dual-stack hosts, giving IPv6 a head-start of the specified number of milliseconds. If the IPv6 address cannot be connected to within that time, then a connection attempt is made to the IPv4 address in parallel. The first connection to be established is the one that is used. The range of suggested useful values is limited. Happy Eyeballs RFC 6555 says \(dqIt is RECOMMENDED that connection attempts be paced 150-250 ms apart to balance human factors against network load." libcurl currently defaults to 200 ms. Firefox and Chrome currently default to 300 ms. If \fI\-\-happy-eyeballs-timeout-ms\fP is provided several times, the last set value will be used. Example: .nf curl --happy-eyeballs-timeout-ms 500 https://example.com .fi See also \fI-m, --max-time\fP and \fI--connect-timeout\fP. Added in 7.59.0. .IP "\-\-haproxy-protocol" (HTTP) Send a HAProxy PROXY protocol v1 header at the beginning of the connection. This is used by some load balancers and reverse proxies to indicate the client's true IP address and port. This option is primarily useful when sending test requests to a service that expects this header. Providing \fI\-\-haproxy-protocol\fP multiple times has no extra effect. Disable it again with \-\-no-haproxy-protocol. Example: .nf curl --haproxy-protocol https://example.com .fi See also \fI-x, --proxy\fP. Added in 7.60.0. .IP "\-I, \-\-head" (HTTP FTP FILE) Fetch the headers only! HTTP-servers feature the command HEAD which this uses to get nothing but the header of a document. When used on an FTP or FILE file, curl displays the file size and last modification time only. Providing \fI\-I, \-\-head\fP multiple times has no extra effect. Disable it again with \-\-no-head. Example: .nf curl -I https://example.com .fi See also \fI-G, --get\fP, \fI-v, --verbose\fP and \fI--trace-ascii\fP. .IP "\-H, \-\-header
" (HTTP IMAP SMTP) Extra header to include in information sent. When used within an HTTP request, it is added to the regular request headers. For an IMAP or SMTP MIME uploaded mail built with \fI\-F, \-\-form\fP options, it is prepended to the resulting MIME document, effectively including it at the mail global level. It does not affect raw uploaded mails (Added in 7.56.0). You may specify any number of extra headers. Note that if you should add a custom header that has the same name as one of the internal ones curl would use, your externally set header will be used instead of the internal one. This allows you to make even trickier stuff than curl would normally do. You should not replace internally set headers without knowing perfectly well what you are doing. Remove an internal header by giving a replacement without content on the right side of the colon, as in: \-H "Host:". If you send the custom header with no-value then its header must be terminated with a semicolon, such as \-H "X-Custom-Header;" to send "X-Custom-Header:". curl will make sure that each header you add/replace is sent with the proper end-of-line marker, you should thus \fBnot\fP add that as a part of the header content: do not add newlines or carriage returns, they will only mess things up for you. This option can take an argument in @filename style, which then adds a header for each line in the input file. Using @- will make curl read the header file from stdin. Added in 7.55.0. Please note that most anti-spam utilities check the presence and value of several MIME mail headers: these are "From:", "To:", "Date:" and "Subject:" among others and should be added with this option. You need \fI\-\-proxy-header\fP to send custom headers intended for an HTTP proxy. Added in 7.37.0. Passing on a "Transfer-Encoding: chunked" header when doing an HTTP request with a request body, will make curl send the data using chunked encoding. \fBWARNING\fP: headers set with this option will be set in all HTTP requests \- even after redirects are followed, like when told with \fI\-L, \-\-location\fP. This can lead to the header being sent to other hosts than the original host, so sensitive headers should be used with caution combined with following redirects. \fI\-H, \-\-header\fP can be used several times in a command line Examples: .nf curl -H "X-First-Name: Joe" https://example.com curl -H "User-Agent: yes-please/2000" https://example.com curl -H "Host:" https://example.com .fi See also \fI-A, --user-agent\fP and \fI-e, --referer\fP. .IP "\-h, \-\-help " Usage help. This lists all commands of the . If no arg was provided, curl will display the most important command line arguments. If the argument "all" was provided, curl will display all options available. If the argument "category" was provided, curl will display all categories and their meanings. Providing \fI\-h, \-\-help\fP multiple times has no extra effect. Disable it again with \-\-no-help. Example: .nf curl --help all .fi See also \fI-v, --verbose\fP. .IP "\-\-hostpubmd5 " (SFTP SCP) Pass a string containing 32 hexadecimal digits. The string should be the 128 bit MD5 checksum of the remote host's public key, curl will refuse the connection with the host unless the md5sums match. If \fI\-\-hostpubmd5\fP is provided several times, the last set value will be used. Example: .nf curl --hostpubmd5 e5c1c49020640a5ab0f2034854c321a8 sftp://example.com/ .fi See also \fI--hostpubsha256\fP. .IP "\-\-hostpubsha256 " (SFTP SCP) Pass a string containing a Base64-encoded SHA256 hash of the remote host's public key. Curl will refuse the connection with the host unless the hashes match. If \fI\-\-hostpubsha256\fP is provided several times, the last set value will be used. Example: .nf curl --hostpubsha256 NDVkMTQxMGQ1ODdmMjQ3MjczYjAyOTY5MmRkMjVmNDQ= sftp://example.com/ .fi See also \fI--hostpubmd5\fP. Added in 7.80.0. .IP "\-\-hsts " (HTTPS) This option enables HSTS for the transfer. If the file name points to an existing HSTS cache file, that will be used. After a completed transfer, the cache will be saved to the file name again if it has been modified. Specify a "" file name (zero length) to avoid loading/saving and make curl just handle HSTS in memory. If this option is used several times, curl will load contents from all the files but the last one will be used for saving. \fI\-\-hsts\fP can be used several times in a command line Example: .nf curl --hsts cache.txt https://example.com .fi See also \fI--proto\fP. Added in 7.74.0. .IP "\-\-http0.9" (HTTP) Tells curl to be fine with HTTP version 0.9 response. HTTP/0.9 is a completely headerless response and therefore you can also connect with this to non-HTTP servers and still get a response since curl will simply transparently downgrade \- if allowed. Since curl 7.66.0, HTTP/0.9 is disabled by default. Providing \fI\-\-http0.9\fP multiple times has no extra effect. Disable it again with \-\-no-http0.9. Example: .nf curl --http0.9 https://example.com .fi See also \fI--http1.1\fP, \fI--http2\fP and \fI--http3\fP. Added in 7.64.0. .IP "\-0, \-\-http1.0" (HTTP) Tells curl to use HTTP version 1.0 instead of using its internally preferred HTTP version. Providing \fI\-0, \-\-http1.0\fP multiple times has no extra effect. Example: .nf curl --http1.0 https://example.com .fi See also \fI--http0.9\fP and \fI--http1.1\fP. This option is mutually exclusive to \fI--http1.1\fP and \fI--http2\fP and \fI--http2-prior-knowledge\fP and \fI--http3\fP. .IP "\-\-http1.1" (HTTP) Tells curl to use HTTP version 1.1. Providing \fI\-\-http1.1\fP multiple times has no extra effect. Example: .nf curl --http1.1 https://example.com .fi See also \fI-0, --http1.0\fP and \fI--http0.9\fP. This option is mutually exclusive to \fI-0, --http1.0\fP and \fI--http2\fP and \fI--http2-prior-knowledge\fP and \fI--http3\fP. Added in 7.33.0. .IP "\-\-http2-prior-knowledge" (HTTP) Tells curl to issue its non-TLS HTTP requests using HTTP/2 without HTTP/1.1 Upgrade. It requires prior knowledge that the server supports HTTP/2 straight away. HTTPS requests will still do HTTP/2 the standard way with negotiated protocol version in the TLS handshake. Providing \fI\-\-http2-prior-knowledge\fP multiple times has no extra effect. Disable it again with \-\-no-http2-prior-knowledge. Example: .nf curl --http2-prior-knowledge https://example.com .fi See also \fI--http2\fP and \fI--http3\fP. \fI--http2-prior-knowledge\fP requires that the underlying libcurl was built to support HTTP/2. This option is mutually exclusive to \fI--http1.1\fP and \fI-0, --http1.0\fP and \fI--http2\fP and \fI--http3\fP. Added in 7.49.0. .IP "\-\-http2" (HTTP) Tells curl to use HTTP version 2. For HTTPS, this means curl will attempt to negotiate HTTP/2 in the TLS handshake. curl does this by default. For HTTP, this means curl will attempt to upgrade the request to HTTP/2 using the Upgrade: request header. When curl uses HTTP/2 over HTTPS, it does not itself insist on TLS 1.2 or higher even though that is required by the specification. A user can add this version requirement with \fI\-\-tlsv1.2\fP. Providing \fI\-\-http2\fP multiple times has no extra effect. Example: .nf curl --http2 https://example.com .fi See also \fI--http1.1\fP and \fI--http3\fP. \fI--http2\fP requires that the underlying libcurl was built to support HTTP/2. This option is mutually exclusive to \fI--http1.1\fP and \fI-0, --http1.0\fP and \fI--http2-prior-knowledge\fP and \fI--http3\fP. Added in 7.33.0. .IP "\-\-http3" (HTTP) **WARNING**: this option is experimental. Do not use in production. Tells curl to use HTTP version 3 directly to the host and port number used in the URL. A normal HTTP/3 transaction will be done to a host and then get redirected via Alt-Svc, but this option allows a user to circumvent that when you know that the target speaks HTTP/3 on the given host and port. This option will make curl fail if a QUIC connection cannot be established, it cannot fall back to a lower HTTP version on its own. Providing \fI\-\-http3\fP multiple times has no extra effect. Example: .nf curl --http3 https://example.com .fi See also \fI--http1.1\fP and \fI--http2\fP. \fI--http3\fP requires that the underlying libcurl was built to support HTTP/3. This option is mutually exclusive to \fI--http1.1\fP and \fI-0, --http1.0\fP and \fI--http2\fP and \fI--http2-prior-knowledge\fP. Added in 7.66.0. .IP "\-\-ignore-content-length" (FTP HTTP) For HTTP, Ignore the Content-Length header. This is particularly useful for servers running Apache 1.x, which will report incorrect Content-Length for files larger than 2 gigabytes. For FTP (since 7.46.0), skip the RETR command to figure out the size before downloading a file. This option does not work for HTTP if libcurl was built to use hyper. Providing \fI\-\-ignore-content-length\fP multiple times has no extra effect. Disable it again with \-\-no-ignore-content-length. Example: .nf curl --ignore-content-length https://example.com .fi See also \fI--ftp-skip-pasv-ip\fP. .IP "\-i, \-\-include" Include the HTTP response headers in the output. The HTTP response headers can include things like server name, cookies, date of the document, HTTP version and more... To view the request headers, consider the \fI\-v, \-\-verbose\fP option. Providing \fI\-i, \-\-include\fP multiple times has no extra effect. Disable it again with \-\-no-include. Example: .nf curl -i https://example.com .fi See also \fI-v, --verbose\fP. .IP "\-k, \-\-insecure" (TLS SFTP SCP) By default, every secure connection curl makes is verified to be secure before the transfer takes place. This option makes curl skip the verification step and proceed without checking. When this option is not used for protocols using TLS, curl verifies the server's TLS certificate before it continues: that the certificate contains the right name which matches the host name used in the URL and that the certificate has been signed by a CA certificate present in the cert store. See this online resource for further details: .nf https://curl.se/docs/sslcerts.html .fi For SFTP and SCP, this option makes curl skip the \fIknown_hosts\fP verification. \fIknown_hosts\fP is a file normally stored in the user's home directory in the \(dq.ssh" subdirectory, which contains host names and their public keys. \fBWARNING\fP: using this option makes the transfer insecure. Providing \fI\-k, \-\-insecure\fP multiple times has no extra effect. Disable it again with \-\-no-insecure. Example: .nf curl --insecure https://example.com .fi See also \fI--proxy-insecure\fP, \fI--cacert\fP and \fI--capath\fP. .IP "\-\-interface " Perform an operation using a specified interface. You can enter interface name, IP address or host name. An example could look like: .nf curl \-\-interface eth0:1 https://www.example.com/ .fi On Linux it can be used to specify a VRF, but the binary needs to either have CAP_NET_RAW or to be run as root. More information about Linux VRF: https://www.kernel.org/doc/Documentation/networking/vrf.txt If \fI\-\-interface\fP is provided several times, the last set value will be used. Example: .nf curl --interface eth0 https://example.com .fi See also \fI--dns-interface\fP. .IP "\-4, \-\-ipv4" This option tells curl to use IPv4 addresses only, and not for example try IPv6. Providing \fI\-4, \-\-ipv4\fP multiple times has no extra effect. Disable it again with \-\-no-ipv4. Example: .nf curl --ipv4 https://example.com .fi See also \fI--http1.1\fP and \fI--http2\fP. This option is mutually exclusive to \fI-6, --ipv6\fP. .IP "\-6, \-\-ipv6" This option tells curl to use IPv6 addresses only, and not for example try IPv4. Providing \fI\-6, \-\-ipv6\fP multiple times has no extra effect. Disable it again with \-\-no-ipv6. Example: .nf curl --ipv6 https://example.com .fi See also \fI--http1.1\fP and \fI--http2\fP. This option is mutually exclusive to \fI-4, --ipv4\fP. .IP "\-\-json " (HTTP) Sends the specified JSON data in a POST request to the HTTP server. \fI\-\-json\fP works as a shortcut for passing on these three options: .nf \-\-data [arg] \-\-header "Content-Type: application/json" \-\-header "Accept: application/json" .fi There is \fI\fPno verification\fI\fP that the passed in data is actual JSON or that the syntax is correct. If you start the data with the letter @, the rest should be a file name to read the data from, or a single dash (-) if you want curl to read the data from stdin. Posting data from a file named 'foobar' would thus be done with \fI\-\-json\fP @foobar and to instead read the data from stdin, use \fI\-\-json\fP @-. If this option is used more than once on the same command line, the additional data pieces will be concatenated to the previous before sending. The headers this option sets can be overridden with \fI\-H, \-\-header\fP as usual. \fI\-\-json\fP can be used several times in a command line Examples: .nf curl --json '{ "drink": "coffe" }' https://example.com curl --json '{ "drink":' --json ' "coffe" }' https://example.com curl --json @prepared https://example.com curl --json @- https://example.com < json.txt .fi See also \fI--data-binary\fP and \fI--data-raw\fP. This option is mutually exclusive to \fI-F, --form\fP and \fI-I, --head\fP and \fI-T, --upload-file\fP. Added in 7.82.0. .IP "\-j, \-\-junk-session-cookies" (HTTP) When curl is told to read cookies from a given file, this option will make it discard all "session cookies". This will basically have the same effect as if a new session is started. Typical browsers always discard session cookies when they are closed down. Providing \fI\-j, \-\-junk-session-cookies\fP multiple times has no extra effect. Disable it again with \-\-no-junk-session-cookies. Example: .nf curl --junk-session-cookies -b cookies.txt https://example.com .fi See also \fI-b, --cookie\fP and \fI-c, --cookie-jar\fP. .IP "\-\-keepalive-time " This option sets the time a connection needs to remain idle before sending keepalive probes and the time between individual keepalive probes. It is currently effective on operating systems offering the TCP_KEEPIDLE and TCP_KEEPINTVL socket options (meaning Linux, recent AIX, HP-UX and more). Keepalives are used by the TCP stack to detect broken networks on idle connections. The number of missed keepalive probes before declaring the connection down is OS dependent and is commonly 9 or 10. This option has no effect if \fI\-\-no-keepalive\fP is used. If unspecified, the option defaults to 60 seconds. If \fI\-\-keepalive-time\fP is provided several times, the last set value will be used. Example: .nf curl --keepalive-time 20 https://example.com .fi See also \fI--no-keepalive\fP and \fI-m, --max-time\fP. .IP "\-\-key-type " (TLS) Private key file type. Specify which type your \fI\-\-key\fP provided private key is. DER, PEM, and ENG are supported. If not specified, PEM is assumed. If \fI\-\-key-type\fP is provided several times, the last set value will be used. Example: .nf curl --key-type DER --key here https://example.com .fi See also \fI--key\fP. .IP "\-\-key " (TLS SSH) Private key file name. Allows you to provide your private key in this separate file. For SSH, if not specified, curl tries the following candidates in order: \(aq~/.ssh/id_rsa', '~/.ssh/id_dsa', './id_rsa', './id_dsa'. If curl is built against OpenSSL library, and the engine pkcs11 is available, then a PKCS#11 URI (RFC 7512) can be used to specify a private key located in a PKCS#11 device. A string beginning with "pkcs11:" will be interpreted as a PKCS#11 URI. If a PKCS#11 URI is provided, then the \fI\-\-engine\fP option will be set as "pkcs11" if none was provided and the \fI\-\-key-type\fP option will be set as \(dqENG" if none was provided. If curl is built against Secure Transport or Schannel then this option is ignored for TLS protocols (HTTPS, etc). Those backends expect the private key to be already present in the keychain or PKCS#12 file containing the certificate. If \fI\-\-key\fP is provided several times, the last set value will be used. Example: .nf curl --cert certificate --key here https://example.com .fi See also \fI--key-type\fP and \fI-E, --cert\fP. .IP "\-\-krb " (FTP) Enable Kerberos authentication and use. The level must be entered and should be one of 'clear', 'safe', 'confidential', or 'private'. Should you use a level that is not one of these, 'private' will instead be used. If \fI\-\-krb\fP is provided several times, the last set value will be used. Example: .nf curl --krb clear ftp://example.com/ .fi See also \fI--delegation\fP and \fI--ssl\fP. \fI--krb\fP requires that the underlying libcurl was built to support Kerberos. .IP "\-\-libcurl " Append this option to any ordinary curl command line, and you will get libcurl-using C source code written to the file that does the equivalent of what your command-line operation does! This option is global and does not need to be specified for each use of \fI\-:, \-\-next\fP. If \fI\-\-libcurl\fP is provided several times, the last set value will be used. Example: .nf curl --libcurl client.c https://example.com .fi See also \fI-v, --verbose\fP. .IP "\-\-limit-rate " Specify the maximum transfer rate you want curl to use \- for both downloads and uploads. This feature is useful if you have a limited pipe and you would like your transfer not to use your entire bandwidth. To make it slower than it otherwise would be. The given speed is measured in bytes/second, unless a suffix is appended. Appending 'k' or 'K' will count the number as kilobytes, 'm' or 'M' makes it megabytes, while 'g' or 'G' makes it gigabytes. The suffixes (k, M, G, T, P) are 1024 based. For example 1k is 1024. Examples: 200K, 3m and 1G. The rate limiting logic works on averaging the transfer speed to no more than the set threshold over a period of multiple seconds. If you also use the \fI\-Y, \-\-speed-limit\fP option, that option will take precedence and might cripple the rate-limiting slightly, to help keeping the speed-limit logic working. If \fI\-\-limit-rate\fP is provided several times, the last set value will be used. Examples: .nf curl --limit-rate 100K https://example.com curl --limit-rate 1000 https://example.com curl --limit-rate 10M https://example.com .fi See also \fI--rate\fP, \fI-Y, --speed-limit\fP and \fI-y, --speed-time\fP. .IP "\-l, \-\-list-only" (FTP POP3) (FTP) When listing an FTP directory, this switch forces a name-only view. This is especially useful if the user wants to machine-parse the contents of an FTP directory since the normal directory view does not use a standard look or format. When used like this, the option causes an NLST command to be sent to the server instead of LIST. Note: Some FTP servers list only files in their response to NLST; they do not include sub-directories and symbolic links. (POP3) When retrieving a specific email from POP3, this switch forces a LIST command to be performed instead of RETR. This is particularly useful if the user wants to see if a specific message-id exists on the server and what size it is. Note: When combined with \fI\-X, \-\-request\fP, this option can be used to send a UIDL command instead, so the user may use the email's unique identifier rather than its message-id to make the request. Providing \fI\-l, \-\-list-only\fP multiple times has no extra effect. Disable it again with \-\-no-list-only. Example: .nf curl --list-only ftp://example.com/dir/ .fi See also \fI-Q, --quote\fP and \fI-X, --request\fP. .IP "\-\-local-port " Set a preferred single number or range (FROM-TO) of local port numbers to use for the connection(s). Note that port numbers by nature are a scarce resource that will be busy at times so setting this range to something too narrow might cause unnecessary connection setup failures. If \fI\-\-local-port\fP is provided several times, the last set value will be used. Example: .nf curl --local-port 1000-3000 https://example.com .fi See also \fI-g, --globoff\fP. .IP "\-\-location-trusted" (HTTP) Like \fI\-L, \-\-location\fP, but will allow sending the name + password to all hosts that the site may redirect to. This may or may not introduce a security breach if the site redirects you to a site to which you will send your authentication info (which is plaintext in the case of HTTP Basic authentication). Providing \fI\-\-location-trusted\fP multiple times has no extra effect. Disable it again with \-\-no-location-trusted. Example: .nf curl --location-trusted -u user:password https://example.com .fi See also \fI-u, --user\fP. .IP "\-L, \-\-location" (HTTP) If the server reports that the requested page has moved to a different location (indicated with a Location: header and a 3XX response code), this option will make curl redo the request on the new place. If used together with \fI\-i, \-\-include\fP or \fI\-I, \-\-head\fP, headers from all requested pages will be shown. When authentication is used, curl only sends its credentials to the initial host. If a redirect takes curl to a different host, it will not be able to intercept the user+password. See also \fI\-\-location-trusted\fP on how to change this. You can limit the amount of redirects to follow by using the \fI\-\-max-redirs\fP option. When curl follows a redirect and if the request is a POST, it will send the following request with a GET if the HTTP response was 301, 302, or 303. If the response code was any other 3xx code, curl will re-send the following request using the same unmodified method. You can tell curl to not change POST requests to GET after a 30x response by using the dedicated options for that: \fI\-\-post301\fP, \fI\-\-post302\fP and \fI\-\-post303\fP. The method set with \fI\-X, \-\-request\fP overrides the method curl would otherwise select to use. Providing \fI\-L, \-\-location\fP multiple times has no extra effect. Disable it again with \-\-no-location. Example: .nf curl -L https://example.com .fi See also \fI--resolve\fP and \fI--alt-svc\fP. .IP "\-\-login-options " (IMAP LDAP POP3 SMTP) Specify the login options to use during server authentication. You can use login options to specify protocol specific options that may be used during authentication. At present only IMAP, POP3 and SMTP support login options. For more information about login options please see RFC 2384, RFC 5092 and IETF draft draft-earhart-url-smtp-00.txt If \fI\-\-login-options\fP is provided several times, the last set value will be used. Example: .nf curl --login-options 'AUTH=*' imap://example.com .fi See also \fI-u, --user\fP. Added in 7.34.0. .IP "\-\-mail-auth
" (SMTP) Specify a single address. This will be used to specify the authentication address (identity) of a submitted message that is being relayed to another server. If \fI\-\-mail-auth\fP is provided several times, the last set value will be used. Example: .nf curl --mail-auth user@example.come -T mail smtp://example.com/ .fi See also \fI--mail-rcpt\fP and \fI--mail-from\fP. .IP "\-\-mail-from
" (SMTP) Specify a single address that the given mail should get sent from. If \fI\-\-mail-from\fP is provided several times, the last set value will be used. Example: .nf curl --mail-from user@example.com -T mail smtp://example.com/ .fi See also \fI--mail-rcpt\fP and \fI--mail-auth\fP. .IP "\-\-mail-rcpt-allowfails" (SMTP) When sending data to multiple recipients, by default curl will abort SMTP conversation if at least one of the recipients causes RCPT TO command to return an error. The default behavior can be changed by passing \fI\-\-mail-rcpt-allowfails\fP command-line option which will make curl ignore errors and proceed with the remaining valid recipients. If all recipients trigger RCPT TO failures and this flag is specified, curl will still abort the SMTP conversation and return the error received from to the last RCPT TO command. Providing \fI\-\-mail-rcpt-allowfails\fP multiple times has no extra effect. Disable it again with \-\-no-mail-rcpt-allowfails. Example: .nf curl --mail-rcpt-allowfails --mail-rcpt dest@example.com smtp://example.com .fi See also \fI--mail-rcpt\fP. Added in 7.69.0. .IP "\-\-mail-rcpt
" (SMTP) Specify a single email address, user name or mailing list name. Repeat this option several times to send to multiple recipients. When performing an address verification (VRFY command), the recipient should be specified as the user name or user name and domain (as per Section 3.5 of RFC5321). (Added in 7.34.0) When performing a mailing list expand (EXPN command), the recipient should be specified using the mailing list name, such as "Friends" or "London-Office". (Added in 7.34.0) \fI\-\-mail-rcpt\fP can be used several times in a command line Example: .nf curl --mail-rcpt user@example.net smtp://example.com .fi See also \fI--mail-rcpt-allowfails\fP. .IP "\-M, \-\-manual" Manual. Display the huge help text. Providing \fI\-M, \-\-manual\fP multiple times has no extra effect. Disable it again with \-\-no-manual. Example: .nf curl --manual .fi See also \fI-v, --verbose\fP, \fI--libcurl\fP and \fI--trace\fP. .IP "\-\-max-filesize " (FTP HTTP MQTT) Specify the maximum size (in bytes) of a file to download. If the file requested is larger than this value, the transfer will not start and curl will return with exit code 63. A size modifier may be used. For example, Appending 'k' or 'K' will count the number as kilobytes, 'm' or 'M' makes it megabytes, while 'g' or 'G' makes it gigabytes. Examples: 200K, 3m and 1G. (Added in 7.58.0) \fBNOTE\fP: The file size is not always known prior to download, and for such files this option has no effect even if the file transfer ends up being larger than this given limit. If \fI\-\-max-filesize\fP is provided several times, the last set value will be used. Example: .nf curl --max-filesize 100K https://example.com .fi See also \fI--limit-rate\fP. .IP "\-\-max-redirs " (HTTP) Set maximum number of redirections to follow. When \fI\-L, \-\-location\fP is used, to prevent curl from following too many redirects, by default, the limit is set to 50 redirects. Set this option to \-1 to make it unlimited. If \fI\-\-max-redirs\fP is provided several times, the last set value will be used. Example: .nf curl --max-redirs 3 --location https://example.com .fi See also \fI-L, --location\fP. .IP "\-m, \-\-max-time " Maximum time in seconds that you allow each transfer to take. This is useful for preventing your batch jobs from hanging for hours due to slow networks or links going down. Since 7.32.0, this option accepts decimal values, but the actual timeout will decrease in accuracy as the specified timeout increases in decimal precision. If you enable retrying the transfer (\fI\-\-retry\fP) then the maximum time counter is reset each time the transfer is retried. You can use \fI\-\-retry-max-time\fP to limit the retry time. The decimal value needs to provided using a dot (.) as decimal separator \- not the local version even if it might be using another separator. If \fI\-m, \-\-max-time\fP is provided several times, the last set value will be used. Examples: .nf curl --max-time 10 https://example.com curl --max-time 2.92 https://example.com .fi See also \fI--connect-timeout\fP and \fI--retry-max-time\fP. .IP "\-\-metalink" This option was previously used to specify a metalink resource. Metalink support has been disabled in curl since 7.78.0 for security reasons. If \fI\-\-metalink\fP is provided several times, the last set value will be used. Example: .nf curl --metalink file https://example.com .fi See also \fI-Z, --parallel\fP. .IP "\-\-negotiate" (HTTP) Enables Negotiate (SPNEGO) authentication. This option requires a library built with GSS-API or SSPI support. Use \fI\-V, \-\-version\fP to see if your curl supports GSS-API/SSPI or SPNEGO. When using this option, you must also provide a fake \fI\-u, \-\-user\fP option to activate the authentication code properly. Sending a '-u :' is enough as the user name and password from the \fI\-u, \-\-user\fP option are not actually used. If this option is used several times, only the first one is used. Providing \fI\-\-negotiate\fP multiple times has no extra effect. Example: .nf curl --negotiate -u : https://example.com .fi See also \fI--basic\fP, \fI--ntlm\fP, \fI--anyauth\fP and \fI--proxy-negotiate\fP. .IP "\-\-netrc-file " This option is similar to \fI\-n, \-\-netrc\fP, except that you provide the path (absolute or relative) to the netrc file that curl should use. You can only specify one netrc file per invocation. It will abide by \fI\-\-netrc-optional\fP if specified. If \fI\-\-netrc-file\fP is provided several times, the last set value will be used. Example: .nf curl --netrc-file netrc https://example.com .fi See also \fI-n, --netrc\fP, \fI-u, --user\fP and \fI-K, --config\fP. This option is mutually exclusive to \fI-n, --netrc\fP. .IP "\-\-netrc-optional" Similar to \fI\-n, \-\-netrc\fP, but this option makes the .netrc usage \fBoptional\fP and not mandatory as the \fI\-n, \-\-netrc\fP option does. Providing \fI\-\-netrc-optional\fP multiple times has no extra effect. Disable it again with \-\-no-netrc-optional. Example: .nf curl --netrc-optional https://example.com .fi See also \fI--netrc-file\fP. This option is mutually exclusive to \fI-n, --netrc\fP. .IP "\-n, \-\-netrc" Makes curl scan the \fI.netrc\fP (\fI_netrc\fP on Windows) file in the user's home directory for login name and password. This is typically used for FTP on Unix. If used with HTTP, curl will enable user authentication. See \fInetrc(5)\fP and \fIftp(1)\fP for details on the file format. Curl will not complain if that file does not have the right permissions (it should be neither world- nor group-readable). The environment variable "HOME" is used to find the home directory. A quick and simple example of how to setup a \fI.netrc\fP to allow curl to FTP to the machine host.domain.com with user name 'myself' and password 'secret' could look similar to: .nf machine host.domain.com login myself password secret .fi Providing \fI\-n, \-\-netrc\fP multiple times has no extra effect. Disable it again with \-\-no-netrc. Example: .nf curl --netrc https://example.com .fi See also \fI--netrc-file\fP, \fI-K, --config\fP and \fI-u, --user\fP. This option is mutually exclusive to \fI--netrc-file\fP and \fI--netrc-optional\fP. .IP "\-:, \-\-next" Tells curl to use a separate operation for the following URL and associated options. This allows you to send several URL requests, each with their own specific options, for example, such as different user names or custom requests for each. \fI\-:, \-\-next\fP will reset all local options and only global ones will have their values survive over to the operation following the \fI\-:, \-\-next\fP instruction. Global options include \fI\-v, \-\-verbose\fP, \fI\-\-trace\fP, \fI\-\-trace-ascii\fP and \fI\-\-fail-early\fP. For example, you can do both a GET and a POST in a single command line: .nf curl www1.example.com \-\-next \-d postthis www2.example.com .fi \fI\-:, \-\-next\fP can be used several times in a command line Examples: .nf curl https://example.com --next -d postthis www2.example.com curl -I https://example.com --next https://example.net/ .fi See also \fI-Z, --parallel\fP and \fI-K, --config\fP. Added in 7.36.0. .IP "\-\-no-alpn" (HTTPS) Disable the ALPN TLS extension. ALPN is enabled by default if libcurl was built with an SSL library that supports ALPN. ALPN is used by a libcurl that supports HTTP/2 to negotiate HTTP/2 support with the server during https sessions. Providing \fI\-\-no-alpn\fP multiple times has no extra effect. Disable it again with \-\-alpn. Example: .nf curl --no-alpn https://example.com .fi See also \fI--no-npn\fP and \fI--http2\fP. \fI--no-alpn\fP requires that the underlying libcurl was built to support TLS. Added in 7.36.0. .IP "\-N, \-\-no-buffer" Disables the buffering of the output stream. In normal work situations, curl will use a standard buffered output stream that will have the effect that it will output the data in chunks, not necessarily exactly when the data arrives. Using this option will disable that buffering. Providing \fI\-N, \-\-no-buffer\fP multiple times has no extra effect. Disable it again with \-\-buffer. Example: .nf curl --no-buffer https://example.com .fi See also \fI-#, --progress-bar\fP. .IP "\-\-no-clobber" When used in conjunction with the \fI\-o, \-\-output\fP, \fI\-J, \-\-remote-header-name\fP, \fI\-O, \-\-remote-name\fP, or \fI\-\-remote-name-all\fP options, curl avoids overwriting files that already exist. Instead, a dot and a number gets appended to the name of the file that would be created, up to filename.100 after which it will not create any file. Note that this is the negated option name documented. You can thus use \-\-clobber to enforce the clobbering, even if \fI\-J, \-\-remote-header-name\fP or \-J is specified. Providing \fI\-\-no-clobber\fP multiple times has no extra effect. Disable it again with \-\-clobber. Example: .nf curl --no-clobber --output local/dir/file https://example.com .fi See also \fI-o, --output\fP and \fI-O, --remote-name\fP. Added in 7.83.0. .IP "\-\-no-keepalive" Disables the use of keepalive messages on the TCP connection. curl otherwise enables them by default. Note that this is the negated option name documented. You can thus use \-\-keepalive to enforce keepalive. Providing \fI\-\-no-keepalive\fP multiple times has no extra effect. Disable it again with \-\-keepalive. Example: .nf curl --no-keepalive https://example.com .fi See also \fI--keepalive-time\fP. .IP "\-\-no-npn" (HTTPS) In curl 7.86.0 and later, curl never uses NPN. Disable the NPN TLS extension. NPN is enabled by default if libcurl was built with an SSL library that supports NPN. NPN is used by a libcurl that supports HTTP/2 to negotiate HTTP/2 support with the server during https sessions. Providing \fI\-\-no-npn\fP multiple times has no extra effect. Disable it again with \-\-npn. Example: .nf curl --no-npn https://example.com .fi See also \fI--no-alpn\fP and \fI--http2\fP. \fI--no-npn\fP requires that the underlying libcurl was built to support TLS. Added in 7.36.0. .IP "\-\-no-progress-meter" Option to switch off the progress meter output without muting or otherwise affecting warning and informational messages like \fI\-s, \-\-silent\fP does. Note that this is the negated option name documented. You can thus use \-\-progress-meter to enable the progress meter again. Providing \fI\-\-no-progress-meter\fP multiple times has no extra effect. Disable it again with \-\-progress-meter. Example: .nf curl --no-progress-meter -o store https://example.com .fi See also \fI-v, --verbose\fP and \fI-s, --silent\fP. Added in 7.67.0. .IP "\-\-no-sessionid" (TLS) Disable curl's use of SSL session-ID caching. By default all transfers are done using the cache. Note that while nothing should ever get hurt by attempting to reuse SSL session-IDs, there seem to be broken SSL implementations in the wild that may require you to disable this in order for you to succeed. Note that this is the negated option name documented. You can thus use \-\-sessionid to enforce session-ID caching. Providing \fI\-\-no-sessionid\fP multiple times has no extra effect. Disable it again with \-\-sessionid. Example: .nf curl --no-sessionid https://example.com .fi See also \fI-k, --insecure\fP. .IP "\-\-noproxy " Comma-separated list of hosts for which not to use a proxy, if one is specified. The only wildcard is a single * character, which matches all hosts, and effectively disables the proxy. Each name in this list is matched as either a domain which contains the hostname, or the hostname itself. For example, local.com would match local.com, local.com:80, and www.local.com, but not www.notlocal.com. Since 7.53.0, This option overrides the environment variables that disable the proxy ('no_proxy' and 'NO_PROXY'). If there's an environment variable disabling a proxy, you can set the noproxy list to "" to override it. Since 7.86.0, IP addresses specified to this option can be provided using CIDR notation: an appended slash and number specifies the number of "network bits" out of the address to use in the comparison. For example "192.168.0.0/16" would match all addresses starting with "192.168". If \fI\-\-noproxy\fP is provided several times, the last set value will be used. Example: .nf curl --noproxy "www.example" https://example.com .fi See also \fI-x, --proxy\fP. .IP "\-\-ntlm-wb" (HTTP) Enables NTLM much in the style \fI\-\-ntlm\fP does, but hand over the authentication to the separate binary ntlmauth application that is executed when needed. Providing \fI\-\-ntlm-wb\fP multiple times has no extra effect. Example: .nf curl --ntlm-wb -u user:password https://example.com .fi See also \fI--ntlm\fP and \fI--proxy-ntlm\fP. .IP "\-\-ntlm" (HTTP) Enables NTLM authentication. The NTLM authentication method was designed by Microsoft and is used by IIS web servers. It is a proprietary protocol, reverse-engineered by clever people and implemented in curl based on their efforts. This kind of behavior should not be endorsed, you should encourage everyone who uses NTLM to switch to a public and documented authentication method instead, such as Digest. If you want to enable NTLM for your proxy authentication, then use \fI\-\-proxy-ntlm\fP. If this option is used several times, only the first one is used. Providing \fI\-\-ntlm\fP multiple times has no extra effect. Example: .nf curl --ntlm -u user:password https://example.com .fi See also \fI--proxy-ntlm\fP. \fI--ntlm\fP requires that the underlying libcurl was built to support TLS. This option is mutually exclusive to \fI--basic\fP and \fI--negotiate\fP and \fI--digest\fP and \fI--anyauth\fP. .IP "\-\-oauth2-bearer " (IMAP LDAP POP3 SMTP HTTP) Specify the Bearer Token for OAUTH 2.0 server authentication. The Bearer Token is used in conjunction with the user name which can be specified as part of the \fI\-\-url\fP or \fI\-u, \-\-user\fP options. The Bearer Token and user name are formatted according to RFC 6750. If \fI\-\-oauth2-bearer\fP is provided several times, the last set value will be used. Example: .nf curl --oauth2-bearer "mF_9.B5f-4.1JqM" https://example.com .fi See also \fI--basic\fP, \fI--ntlm\fP and \fI--digest\fP. Added in 7.33.0. .IP "\-\-output-dir " This option specifies the directory in which files should be stored, when \fI\-O, \-\-remote-name\fP or \fI\-o, \-\-output\fP are used. The given output directory is used for all URLs and output options on the command line, up until the first \fI\-:, \-\-next\fP. If the specified target directory does not exist, the operation will fail unless \fI\-\-create-dirs\fP is also used. If \fI\-\-output-dir\fP is provided several times, the last set value will be used. Example: .nf curl --output-dir "tmp" -O https://example.com .fi See also \fI-O, --remote-name\fP and \fI-J, --remote-header-name\fP. Added in 7.73.0. .IP "\-o, \-\-output " Write output to instead of stdout. If you are using {} or [] to fetch multiple documents, you should quote the URL and you can use '#' followed by a number in the specifier. That variable will be replaced with the current string for the URL being fetched. Like in: .nf curl "http://{one,two}.example.com" \-o "file_#1.txt" .fi or use several variables like: .nf curl "http://{site,host}.host[1-5].com" \-o "#1_#2" .fi You may use this option as many times as the number of URLs you have. For example, if you specify two URLs on the same command line, you can use it like this: .nf curl \-o aa example.com \-o bb example.net .fi and the order of the \-o options and the URLs does not matter, just that the first \-o is for the first URL and so on, so the above command line can also be written as .nf curl example.com example.net \-o aa \-o bb .fi See also the \fI\-\-create-dirs\fP option to create the local directories dynamically. Specifying the output as '-' (a single dash) will force the output to be done to stdout. To suppress response bodies, you can redirect output to /dev/null: .nf curl example.com \-o /dev/null .fi Or for Windows use nul: .nf curl example.com \-o nul .fi \fI\-o, \-\-output\fP can be used several times in a command line Examples: .nf curl -o file https://example.com curl "http://{one,two}.example.com" -o "file_#1.txt" curl "http://{site,host}.host[1-5].com" -o "#1_#2" curl -o file https://example.com -o file2 https://example.net .fi See also \fI-O, --remote-name\fP, \fI--remote-name-all\fP and \fI-J, --remote-header-name\fP. .IP "\-\-parallel-immediate" When doing parallel transfers, this option will instruct curl that it should rather prefer opening up more connections in parallel at once rather than waiting to see if new transfers can be added as multiplexed streams on another connection. This option is global and does not need to be specified for each use of \fI\-:, \-\-next\fP. Providing \fI\-\-parallel-immediate\fP multiple times has no extra effect. Disable it again with \-\-no-parallel-immediate. Example: .nf curl --parallel-immediate -Z https://example.com -o file1 https://example.com -o file2 .fi See also \fI-Z, --parallel\fP and \fI--parallel-max\fP. Added in 7.68.0. .IP "\-\-parallel-max " When asked to do parallel transfers, using \fI\-Z, \-\-parallel\fP, this option controls the maximum amount of transfers to do simultaneously. This option is global and does not need to be specified for each use of \fI\-:, \-\-next\fP. The default is 50. If \fI\-\-parallel-max\fP is provided several times, the last set value will be used. Example: .nf curl --parallel-max 100 -Z https://example.com ftp://example.com/ .fi See also \fI-Z, --parallel\fP. Added in 7.66.0. .IP "\-Z, \-\-parallel" Makes curl perform its transfers in parallel as compared to the regular serial manner. This option is global and does not need to be specified for each use of \fI\-:, \-\-next\fP. Providing \fI\-Z, \-\-parallel\fP multiple times has no extra effect. Disable it again with \-\-no-parallel. Example: .nf curl --parallel https://example.com -o file1 https://example.com -o file2 .fi See also \fI-:, --next\fP and \fI-v, --verbose\fP. Added in 7.66.0. .IP "\-\-pass " (SSH TLS) Passphrase for the private key. If \fI\-\-pass\fP is provided several times, the last set value will be used. Example: .nf curl --pass secret --key file https://example.com .fi See also \fI--key\fP and \fI-u, --user\fP. .IP "\-\-path-as-is" Tell curl to not handle sequences of /../ or /./ in the given URL path. Normally curl will squash or merge them according to standards but with this option set you tell it not to do that. Providing \fI\-\-path-as-is\fP multiple times has no extra effect. Disable it again with \-\-no-path-as-is. Example: .nf curl --path-as-is https://example.com/../../etc/passwd .fi See also \fI--request-target\fP. Added in 7.42.0. .IP "\-\-pinnedpubkey " (TLS) Tells curl to use the specified public key file (or hashes) to verify the peer. This can be a path to a file which contains a single public key in PEM or DER format, or any number of base64 encoded sha256 hashes preceded by \(aqsha256//' and separated by ';'. When negotiating a TLS or SSL connection, the server sends a certificate indicating its identity. A public key is extracted from this certificate and if it does not exactly match the public key provided to this option, curl will abort the connection before sending or receiving any data. PEM/DER support: 7.39.0: OpenSSL, GnuTLS and GSKit 7.43.0: NSS and wolfSSL 7.47.0: mbedtls sha256 support: 7.44.0: OpenSSL, GnuTLS, NSS and wolfSSL 7.47.0: mbedtls Other SSL backends not supported. If \fI\-\-pinnedpubkey\fP is provided several times, the last set value will be used. Examples: .nf curl --pinnedpubkey keyfile https://example.com curl --pinnedpubkey 'sha256//ce118b51897f4452dc' https://example.com .fi See also \fI--hostpubsha256\fP. Added in 7.39.0. .IP "\-\-post301" (HTTP) Tells curl to respect RFC 7231/6.4.2 and not convert POST requests into GET requests when following a 301 redirection. The non-RFC behavior is ubiquitous in web browsers, so curl does the conversion by default to maintain consistency. However, a server may require a POST to remain a POST after such a redirection. This option is meaningful only when using \fI\-L, \-\-location\fP. Providing \fI\-\-post301\fP multiple times has no extra effect. Disable it again with \-\-no-post301. Example: .nf curl --post301 --location -d "data" https://example.com .fi See also \fI--post302\fP, \fI--post303\fP and \fI-L, --location\fP. .IP "\-\-post302" (HTTP) Tells curl to respect RFC 7231/6.4.3 and not convert POST requests into GET requests when following a 302 redirection. The non-RFC behavior is ubiquitous in web browsers, so curl does the conversion by default to maintain consistency. However, a server may require a POST to remain a POST after such a redirection. This option is meaningful only when using \fI\-L, \-\-location\fP. Providing \fI\-\-post302\fP multiple times has no extra effect. Disable it again with \-\-no-post302. Example: .nf curl --post302 --location -d "data" https://example.com .fi See also \fI--post301\fP, \fI--post303\fP and \fI-L, --location\fP. .IP "\-\-post303" (HTTP) Tells curl to violate RFC 7231/6.4.4 and not convert POST requests into GET requests when following 303 redirections. A server may require a POST to remain a POST after a 303 redirection. This option is meaningful only when using \fI\-L, \-\-location\fP. Providing \fI\-\-post303\fP multiple times has no extra effect. Disable it again with \-\-no-post303. Example: .nf curl --post303 --location -d "data" https://example.com .fi See also \fI--post302\fP, \fI--post301\fP and \fI-L, --location\fP. .IP "\-\-preproxy [protocol://]host[:port]" Use the specified SOCKS proxy before connecting to an HTTP or HTTPS \fI\-x, \-\-proxy\fP. In such a case curl first connects to the SOCKS proxy and then connects (through SOCKS) to the HTTP or HTTPS proxy. Hence pre proxy. The pre proxy string should be specified with a protocol:// prefix to specify alternative proxy protocols. Use socks4://, socks4a://, socks5:// or socks5h:// to request the specific SOCKS version to be used. No protocol specified will make curl default to SOCKS4. If the port number is not specified in the proxy string, it is assumed to be 1080. User and password that might be provided in the proxy string are URL decoded by curl. This allows you to pass in special characters such as @ by using %40 or pass in a colon with %3a. If \fI\-\-preproxy\fP is provided several times, the last set value will be used. Example: .nf curl --preproxy socks5://proxy.example -x http://http.example https://example.com .fi See also \fI-x, --proxy\fP and \fI--socks5\fP. Added in 7.52.0. .IP "\-#, \-\-progress-bar" Make curl display transfer progress as a simple progress bar instead of the standard, more informational, meter. This progress bar draws a single line of '#' characters across the screen and shows a percentage if the transfer size is known. For transfers without a known size, there will be space ship (-=o=-) that moves back and forth but only while data is being transferred, with a set of flying hash sign symbols on top. This option is global and does not need to be specified for each use of \fI\-:, \-\-next\fP. Providing \fI\-#, \-\-progress-bar\fP multiple times has no extra effect. Disable it again with \-\-no-progress-bar. Example: .nf curl -# -O https://example.com .fi See also \fI--styled-output\fP. .IP "\-\-proto-default " Tells curl to use \fIprotocol\fP for any URL missing a scheme name. An unknown or unsupported protocol causes error \fICURLE_UNSUPPORTED_PROTOCOL\fP (1). This option does not change the default proxy protocol (http). Without this option set, curl guesses protocol based on the host name, see \fI\-\-url\fP for details. If \fI\-\-proto-default\fP is provided several times, the last set value will be used. Example: .nf curl --proto-default https ftp.example.com .fi See also \fI--proto\fP and \fI--proto-redir\fP. Added in 7.45.0. .IP "\-\-proto-redir " Tells curl to limit what protocols it may use on redirect. Protocols denied by \fI\-\-proto\fP are not overridden by this option. See \fI\-\-proto\fP for how protocols are represented. Example, allow only HTTP and HTTPS on redirect: .nf curl \-\-proto-redir \-all,http,https http://example.com .fi By default curl will only allow HTTP, HTTPS, FTP and FTPS on redirect (since 7.65.2). Specifying \fIall\fP or \fI+all\fP enables all protocols on redirects, which is not good for security. If \fI\-\-proto-redir\fP is provided several times, the last set value will be used. Example: .nf curl --proto-redir =http,https https://example.com .fi See also \fI--proto\fP. .IP "\-\-proto " Tells curl to limit what protocols it may use for transfers. Protocols are evaluated left to right, are comma separated, and are each a protocol name or \(aqall', optionally prefixed by zero or more modifiers. Available modifiers are: .RS .TP 3 .B + Permit this protocol in addition to protocols already permitted (this is the default if no modifier is used). .TP .B \- Deny this protocol, removing it from the list of protocols already permitted. .TP .B = Permit only this protocol (ignoring the list already permitted), though subject to later modification by subsequent entries in the comma separated list. .RE .IP For example: .RS .TP 15 .B \fI\-\-proto\fP \-ftps uses the default protocols, but disables ftps .TP .B \fI\-\-proto\fP \-all,https,+http only enables http and https .TP .B \fI\-\-proto\fP =http,https also only enables http and https .RE .IP Unknown and disabled protocols produce a warning. This allows scripts to safely rely on being able to disable potentially dangerous protocols, without relying upon support for that protocol being built into curl to avoid an error. This option can be used multiple times, in which case the effect is the same as concatenating the protocols into one instance of the option. If \fI\-\-proto\fP is provided several times, the last set value will be used. Example: .nf curl --proto =http,https,sftp https://example.com .fi See also \fI--proto-redir\fP and \fI--proto-default\fP. .IP "\-\-proxy-anyauth" Tells curl to pick a suitable authentication method when communicating with the given HTTP proxy. This might cause an extra request/response round-trip. Providing \fI\-\-proxy-anyauth\fP multiple times has no extra effect. Example: .nf curl --proxy-anyauth --proxy-user user:passwd -x proxy https://example.com .fi See also \fI-x, --proxy\fP, \fI--proxy-basic\fP and \fI--proxy-digest\fP. .IP "\-\-proxy-basic" Tells curl to use HTTP Basic authentication when communicating with the given proxy. Use \fI\-\-basic\fP for enabling HTTP Basic with a remote host. Basic is the default authentication method curl uses with proxies. Providing \fI\-\-proxy-basic\fP multiple times has no extra effect. Example: .nf curl --proxy-basic --proxy-user user:passwd -x proxy https://example.com .fi See also \fI-x, --proxy\fP, \fI--proxy-anyauth\fP and \fI--proxy-digest\fP. .IP "\-\-proxy-cacert " Same as \fI\-\-cacert\fP but used in HTTPS proxy context. If \fI\-\-proxy-cacert\fP is provided several times, the last set value will be used. Example: .nf curl --proxy-cacert CA-file.txt -x https://proxy https://example.com .fi See also \fI--proxy-capath\fP, \fI--cacert\fP, \fI--capath\fP and \fI-x, --proxy\fP. Added in 7.52.0. .IP "\-\-proxy-capath " Same as \fI\-\-capath\fP but used in HTTPS proxy context. If \fI\-\-proxy-capath\fP is provided several times, the last set value will be used. Example: .nf curl --proxy-capath /local/directory -x https://proxy https://example.com .fi See also \fI--proxy-cacert\fP, \fI-x, --proxy\fP and \fI--capath\fP. Added in 7.52.0. .IP "\-\-proxy-cert-type " Same as \fI\-\-cert-type\fP but used in HTTPS proxy context. If \fI\-\-proxy-cert-type\fP is provided several times, the last set value will be used. Example: .nf curl --proxy-cert-type PEM --proxy-cert file -x https://proxy https://example.com .fi See also \fI--proxy-cert\fP. Added in 7.52.0. .IP "\-\-proxy-cert " Same as \fI\-E, \-\-cert\fP but used in HTTPS proxy context. If \fI\-\-proxy-cert\fP is provided several times, the last set value will be used. Example: .nf curl --proxy-cert file -x https://proxy https://example.com .fi See also \fI--proxy-cert-type\fP. Added in 7.52.0. .IP "\-\-proxy-ciphers " Same as \fI\-\-ciphers\fP but used in HTTPS proxy context. If \fI\-\-proxy-ciphers\fP is provided several times, the last set value will be used. Example: .nf curl --proxy-ciphers ECDHE-ECDSA-AES256-CCM8 -x https://proxy https://example.com .fi See also \fI--ciphers\fP, \fI--curves\fP and \fI-x, --proxy\fP. Added in 7.52.0. .IP "\-\-proxy-crlfile " Same as \fI\-\-crlfile\fP but used in HTTPS proxy context. If \fI\-\-proxy-crlfile\fP is provided several times, the last set value will be used. Example: .nf curl --proxy-crlfile rejects.txt -x https://proxy https://example.com .fi See also \fI--crlfile\fP and \fI-x, --proxy\fP. Added in 7.52.0. .IP "\-\-proxy-digest" Tells curl to use HTTP Digest authentication when communicating with the given proxy. Use \fI\-\-digest\fP for enabling HTTP Digest with a remote host. Providing \fI\-\-proxy-digest\fP multiple times has no extra effect. Example: .nf curl --proxy-digest --proxy-user user:passwd -x proxy https://example.com .fi See also \fI-x, --proxy\fP, \fI--proxy-anyauth\fP and \fI--proxy-basic\fP. .IP "\-\-proxy-header
" (HTTP) Extra header to include in the request when sending HTTP to a proxy. You may specify any number of extra headers. This is the equivalent option to \fI\-H, \-\-header\fP but is for proxy communication only like in CONNECT requests when you want a separate header sent to the proxy to what is sent to the actual remote host. curl will make sure that each header you add/replace is sent with the proper end-of-line marker, you should thus \fBnot\fP add that as a part of the header content: do not add newlines or carriage returns, they will only mess things up for you. Headers specified with this option will not be included in requests that curl knows will not be sent to a proxy. Starting in 7.55.0, this option can take an argument in @filename style, which then adds a header for each line in the input file. Using @- will make curl read the header file from stdin. This option can be used multiple times to add/replace/remove multiple headers. \fI\-\-proxy-header\fP can be used several times in a command line Examples: .nf curl --proxy-header "X-First-Name: Joe" -x http://proxy https://example.com curl --proxy-header "User-Agent: surprise" -x http://proxy https://example.com curl --proxy-header "Host:" -x http://proxy https://example.com .fi See also \fI-x, --proxy\fP. Added in 7.37.0. .IP "\-\-proxy-insecure" Same as \fI\-k, \-\-insecure\fP but used in HTTPS proxy context. Providing \fI\-\-proxy-insecure\fP multiple times has no extra effect. Disable it again with \-\-no-proxy-insecure. Example: .nf curl --proxy-insecure -x https://proxy https://example.com .fi See also \fI-x, --proxy\fP and \fI-k, --insecure\fP. Added in 7.52.0. .IP "\-\-proxy-key-type " Same as \fI\-\-key-type\fP but used in HTTPS proxy context. If \fI\-\-proxy-key-type\fP is provided several times, the last set value will be used. Example: .nf curl --proxy-key-type DER --proxy-key here -x https://proxy https://example.com .fi See also \fI--proxy-key\fP and \fI-x, --proxy\fP. Added in 7.52.0. .IP "\-\-proxy-key " Same as \fI\-\-key\fP but used in HTTPS proxy context. If \fI\-\-proxy-key\fP is provided several times, the last set value will be used. Example: .nf curl --proxy-key here -x https://proxy https://example.com .fi See also \fI--proxy-key-type\fP and \fI-x, --proxy\fP. Added in 7.52.0. .IP "\-\-proxy-negotiate" Tells curl to use HTTP Negotiate (SPNEGO) authentication when communicating with the given proxy. Use \fI\-\-negotiate\fP for enabling HTTP Negotiate (SPNEGO) with a remote host. Providing \fI\-\-proxy-negotiate\fP multiple times has no extra effect. Example: .nf curl --proxy-negotiate --proxy-user user:passwd -x proxy https://example.com .fi See also \fI--proxy-anyauth\fP and \fI--proxy-basic\fP. .IP "\-\-proxy-ntlm" Tells curl to use HTTP NTLM authentication when communicating with the given proxy. Use \fI\-\-ntlm\fP for enabling NTLM with a remote host. Providing \fI\-\-proxy-ntlm\fP multiple times has no extra effect. Example: .nf curl --proxy-ntlm --proxy-user user:passwd -x http://proxy https://example.com .fi See also \fI--proxy-negotiate\fP and \fI--proxy-anyauth\fP. .IP "\-\-proxy-pass " Same as \fI\-\-pass\fP but used in HTTPS proxy context. If \fI\-\-proxy-pass\fP is provided several times, the last set value will be used. Example: .nf curl --proxy-pass secret --proxy-key here -x https://proxy https://example.com .fi See also \fI-x, --proxy\fP and \fI--proxy-key\fP. Added in 7.52.0. .IP "\-\-proxy-pinnedpubkey " (TLS) Tells curl to use the specified public key file (or hashes) to verify the proxy. This can be a path to a file which contains a single public key in PEM or DER format, or any number of base64 encoded sha256 hashes preceded by \(aqsha256//' and separated by ';'. When negotiating a TLS or SSL connection, the server sends a certificate indicating its identity. A public key is extracted from this certificate and if it does not exactly match the public key provided to this option, curl will abort the connection before sending or receiving any data. If \fI\-\-proxy-pinnedpubkey\fP is provided several times, the last set value will be used. Examples: .nf curl --proxy-pinnedpubkey keyfile https://example.com curl --proxy-pinnedpubkey 'sha256//ce118b51897f4452dc' https://example.com .fi See also \fI--pinnedpubkey\fP and \fI-x, --proxy\fP. Added in 7.59.0. .IP "\-\-proxy-service-name " This option allows you to change the service name for proxy negotiation. If \fI\-\-proxy-service-name\fP is provided several times, the last set value will be used. Example: .nf curl --proxy-service-name "shrubbery" -x proxy https://example.com .fi See also \fI--service-name\fP and \fI-x, --proxy\fP. Added in 7.43.0. .IP "\-\-proxy-ssl-allow-beast" Same as \fI\-\-ssl-allow-beast\fP but used in HTTPS proxy context. Providing \fI\-\-proxy-ssl-allow-beast\fP multiple times has no extra effect. Disable it again with \-\-no-proxy-ssl-allow-beast. Example: .nf curl --proxy-ssl-allow-beast -x https://proxy https://example.com .fi See also \fI--ssl-allow-beast\fP and \fI-x, --proxy\fP. Added in 7.52.0. .IP "\-\-proxy-ssl-auto-client-cert" Same as \fI\-\-ssl-auto-client-cert\fP but used in HTTPS proxy context. Providing \fI\-\-proxy-ssl-auto-client-cert\fP multiple times has no extra effect. Disable it again with \-\-no-proxy-ssl-auto-client-cert. Example: .nf curl --proxy-ssl-auto-client-cert -x https://proxy https://example.com .fi See also \fI--ssl-auto-client-cert\fP and \fI-x, --proxy\fP. Added in 7.77.0. .IP "\-\-proxy-tls13-ciphers " (TLS) Specifies which cipher suites to use in the connection to your HTTPS proxy when it negotiates TLS 1.3. The list of ciphers suites must specify valid ciphers. Read up on TLS 1.3 cipher suite details on this URL: .nf https://curl.se/docs/ssl-ciphers.html .fi This option is currently used only when curl is built to use OpenSSL 1.1.1 or later. If you are using a different SSL backend you can try setting TLS 1.3 cipher suites by using the \fI\-\-proxy-ciphers\fP option. If \fI\-\-proxy-tls13-ciphers\fP is provided several times, the last set value will be used. Example: .nf curl --proxy-tls13-ciphers TLS_AES_128_GCM_SHA256 -x proxy https://example.com .fi See also \fI--tls13-ciphers\fP and \fI--curves\fP. Added in 7.61.0. .IP "\-\-proxy-tlsauthtype " Same as \fI\-\-tlsauthtype\fP but used in HTTPS proxy context. If \fI\-\-proxy-tlsauthtype\fP is provided several times, the last set value will be used. Example: .nf curl --proxy-tlsauthtype SRP -x https://proxy https://example.com .fi See also \fI-x, --proxy\fP and \fI--proxy-tlsuser\fP. Added in 7.52.0. .IP "\-\-proxy-tlspassword " Same as \fI\-\-tlspassword\fP but used in HTTPS proxy context. If \fI\-\-proxy-tlspassword\fP is provided several times, the last set value will be used. Example: .nf curl --proxy-tlspassword passwd -x https://proxy https://example.com .fi See also \fI-x, --proxy\fP and \fI--proxy-tlsuser\fP. Added in 7.52.0. .IP "\-\-proxy-tlsuser " Same as \fI\-\-tlsuser\fP but used in HTTPS proxy context. If \fI\-\-proxy-tlsuser\fP is provided several times, the last set value will be used. Example: .nf curl --proxy-tlsuser smith -x https://proxy https://example.com .fi See also \fI-x, --proxy\fP and \fI--proxy-tlspassword\fP. Added in 7.52.0. .IP "\-\-proxy-tlsv1" Same as \fI\-1, \-\-tlsv1\fP but used in HTTPS proxy context. Providing \fI\-\-proxy-tlsv1\fP multiple times has no extra effect. Example: .nf curl --proxy-tlsv1 -x https://proxy https://example.com .fi See also \fI-x, --proxy\fP. Added in 7.52.0. .IP "\-U, \-\-proxy-user " Specify the user name and password to use for proxy authentication. If you use a Windows SSPI-enabled curl binary and do either Negotiate or NTLM authentication then you can tell curl to select the user name and password from your environment by specifying a single colon with this option: "-U :". On systems where it works, curl will hide the given option argument from process listings. This is not enough to protect credentials from possibly getting seen by other users on the same system as they will still be visible for a moment before cleared. Such sensitive data should be retrieved from a file instead or similar and never used in clear text in a command line. If \fI\-U, \-\-proxy-user\fP is provided several times, the last set value will be used. Example: .nf curl --proxy-user name:pwd -x proxy https://example.com .fi See also \fI--proxy-pass\fP. .IP "\-x, \-\-proxy [protocol://]host[:port]" Use the specified proxy. The proxy string can be specified with a protocol:// prefix. No protocol specified or http:// will be treated as HTTP proxy. Use socks4://, socks4a://, socks5:// or socks5h:// to request a specific SOCKS version to be used. Unix domain sockets are supported for socks proxy. Set localhost for the host part. e.g. socks5h://localhost/path/to/socket.sock HTTPS proxy support via https:// protocol prefix was added in 7.52.0 for OpenSSL, GnuTLS and NSS. Unrecognized and unsupported proxy protocols cause an error since 7.52.0. Prior versions may ignore the protocol and use http:// instead. If the port number is not specified in the proxy string, it is assumed to be 1080. This option overrides existing environment variables that set the proxy to use. If there's an environment variable setting a proxy, you can set proxy to \(dq" to override it. All operations that are performed over an HTTP proxy will transparently be converted to HTTP. It means that certain protocol specific operations might not be available. This is not the case if you can tunnel through the proxy, as one with the \fI\-p, \-\-proxytunnel\fP option. User and password that might be provided in the proxy string are URL decoded by curl. This allows you to pass in special characters such as @ by using %40 or pass in a colon with %3a. The proxy host can be specified the same way as the proxy environment variables, including the protocol prefix (http://) and the embedded user + password. When a proxy is used, the active FTP mode as set with \fI\-P, \-\-ftp-port\fP, cannot be used. If \fI\-x, \-\-proxy\fP is provided several times, the last set value will be used. Example: .nf curl --proxy http://proxy.example https://example.com .fi See also \fI--socks5\fP and \fI--proxy-basic\fP. .IP "\-\-proxy1.0 " Use the specified HTTP 1.0 proxy. If the port number is not specified, it is assumed at port 1080. The only difference between this and the HTTP proxy option \fI\-x, \-\-proxy\fP, is that attempts to use CONNECT through the proxy will specify an HTTP 1.0 protocol instead of the default HTTP 1.1. Providing \fI\-\-proxy1.0\fP multiple times has no extra effect. Example: .nf curl --proxy1.0 -x http://proxy https://example.com .fi See also \fI-x, --proxy\fP, \fI--socks5\fP and \fI--preproxy\fP. .IP "\-p, \-\-proxytunnel" When an HTTP proxy is used \fI\-x, \-\-proxy\fP, this option will make curl tunnel through the proxy. The tunnel approach is made with the HTTP proxy CONNECT request and requires that the proxy allows direct connect to the remote port number curl wants to tunnel through to. To suppress proxy CONNECT response headers when curl is set to output headers use \fI\-\-suppress-connect-headers\fP. Providing \fI\-p, \-\-proxytunnel\fP multiple times has no extra effect. Disable it again with \-\-no-proxytunnel. Example: .nf curl --proxytunnel -x http://proxy https://example.com .fi See also \fI-x, --proxy\fP. .IP "\-\-pubkey " (SFTP SCP) Public key file name. Allows you to provide your public key in this separate file. (As of 7.39.0, curl attempts to automatically extract the public key from the private key file, so passing this option is generally not required. Note that this public key extraction requires libcurl to be linked against a copy of libssh2 1.2.8 or higher that is itself linked against OpenSSL.) If \fI\-\-pubkey\fP is provided several times, the last set value will be used. Example: .nf curl --pubkey file.pub sftp://example.com/ .fi See also \fI--pass\fP. .IP "\-Q, \-\-quote " (FTP SFTP) Send an arbitrary command to the remote FTP or SFTP server. Quote commands are sent BEFORE the transfer takes place (just after the initial PWD command in an FTP transfer, to be exact). To make commands take place after a successful transfer, prefix them with a dash '-'. (FTP only) To make commands be sent after curl has changed the working directory, just before the file transfer command(s), prefix the command with a \(aq+'. This is not performed when a directory listing is performed. You may specify any number of commands. By default curl will stop at first failure. To make curl continue even if the command fails, prefix the command with an asterisk (*). Otherwise, if the server returns failure for one of the commands, the entire operation will be aborted. You must send syntactically correct FTP commands as RFC 959 defines to FTP servers, or one of the commands listed below to SFTP servers. This option can be used multiple times. SFTP is a binary protocol. Unlike for FTP, curl interprets SFTP quote commands itself before sending them to the server. File names may be quoted shell-style to embed spaces or special characters. Following is the list of all supported SFTP quote commands: .RS .IP "atime date file" The atime command sets the last access time of the file named by the file operand. The can be all sorts of date strings, see the \fIcurl_getdate(3)\fP man page for date expression details. (Added in 7.73.0) .IP "chgrp group file" The chgrp command sets the group ID of the file named by the file operand to the group ID specified by the group operand. The group operand is a decimal integer group ID. .IP "chmod mode file" The chmod command modifies the file mode bits of the specified file. The mode operand is an octal integer mode number. .IP "chown user file" The chown command sets the owner of the file named by the file operand to the user ID specified by the user operand. The user operand is a decimal integer user ID. .IP "ln source_file target_file" The ln and symlink commands create a symbolic link at the target_file location pointing to the source_file location. .IP "mkdir directory_name" The mkdir command creates the directory named by the directory_name operand. .IP "mtime date file" The mtime command sets the last modification time of the file named by the file operand. The can be all sorts of date strings, see the \fIcurl_getdate(3)\fP man page for date expression details. (Added in 7.73.0) .IP "pwd" The pwd command returns the absolute pathname of the current working directory. .IP "rename source target" The rename command renames the file or directory named by the source operand to the destination path named by the target operand. .IP "rm file" The rm command removes the file specified by the file operand. .IP "rmdir directory" The rmdir command removes the directory entry specified by the directory operand, provided it is empty. .IP "symlink source_file target_file" See ln. .RE \fI\-Q, \-\-quote\fP can be used several times in a command line Example: .nf curl --quote "DELE file" ftp://example.com/foo .fi See also \fI-X, --request\fP. .IP "\-\-random-file " Deprecated option. This option is ignored by curl since 7.84.0. Prior to that it only had an effect on curl if built to use old versions of OpenSSL. Specify the path name to file containing what will be considered as random data. The data may be used to seed the random engine for SSL connections. If \fI\-\-random-file\fP is provided several times, the last set value will be used. Example: .nf curl --random-file rubbish https://example.com .fi See also \fI--egd-file\fP. .IP "\-r, \-\-range " (HTTP FTP SFTP FILE) Retrieve a byte range (i.e. a partial document) from an HTTP/1.1, FTP or SFTP server or a local FILE. Ranges can be specified in a number of ways. .RS .TP 10 .B 0-499 specifies the first 500 bytes .TP .B 500-999 specifies the second 500 bytes .TP .B \-500 specifies the last 500 bytes .TP .B 9500- specifies the bytes from offset 9500 and forward .TP .B 0-0,-1 specifies the first and last byte only(*)(HTTP) .TP .B 100-199,500-599 specifies two separate 100-byte ranges(*) (HTTP) .RE .IP (*) = NOTE that this will cause the server to reply with a multipart response, which will be returned as-is by curl! Parsing or otherwise transforming this response is the responsibility of the caller. Only digit characters (0-9) are valid in the 'start' and 'stop' fields of the \(aqstart-stop' range syntax. If a non-digit character is given in the range, the server's response will be unspecified, depending on the server's configuration. You should also be aware that many HTTP/1.1 servers do not have this feature enabled, so that when you attempt to get a range, you will instead get the whole document. FTP and SFTP range downloads only support the simple 'start-stop' syntax (optionally with one of the numbers omitted). FTP use depends on the extended FTP command SIZE. If \fI\-r, \-\-range\fP is provided several times, the last set value will be used. Example: .nf curl --range 22-44 https://example.com .fi See also \fI-C, --continue-at\fP and \fI-a, --append\fP. .IP "\-\-rate " Specify the maximum transfer frequency you allow curl to use \- in number of transfer starts per time unit (sometimes called request rate). Without this option, curl will start the next transfer as fast as possible. If given several URLs and a transfer completes faster than the allowed rate, curl will wait until the next transfer is started to maintain the requested rate. This option has no effect when \fI\-Z, \-\-parallel\fP is used. The request rate is provided as "N/U" where N is an integer number and U is a time unit. Supported units are 's' (second), 'm' (minute), 'h' (hour) and 'd' /(day, as in a 24 hour unit). The default time unit, if no "/U" is provided, is number of transfers per hour. If curl is told to allow 10 requests per minute, it will not start the next request until 6 seconds have elapsed since the previous transfer was started. This function uses millisecond resolution. If the allowed frequency is set more than 1000 per second, it will instead run unrestricted. When retrying transfers, enabled with \fI\-\-retry\fP, the separate retry delay logic is used and not this setting. If \fI\-\-rate\fP is provided several times, the last set value will be used. Examples: .nf curl --rate 2/s https://example.com curl --rate 3/h https://example.com curl --rate 14/m https://example.com .fi See also \fI--limit-rate\fP and \fI--retry-delay\fP. Added in 7.84.0. .IP "\-\-raw" (HTTP) When used, it disables all internal HTTP decoding of content or transfer encodings and instead makes them passed on unaltered, raw. Providing \fI\-\-raw\fP multiple times has no extra effect. Disable it again with \-\-no-raw. Example: .nf curl --raw https://example.com .fi See also \fI--tr-encoding\fP. .IP "\-e, \-\-referer " (HTTP) Sends the "Referrer Page" information to the HTTP server. This can also be set with the \fI\-H, \-\-header\fP flag of course. When used with \fI\-L, \-\-location\fP you can append \(dq;auto" to the \fI\-e, \-\-referer\fP URL to make curl automatically set the previous URL when it follows a Location: header. The ";auto" string can be used alone, even if you do not set an initial \fI\-e, \-\-referer\fP. If \fI\-e, \-\-referer\fP is provided several times, the last set value will be used. Examples: .nf curl --referer "https://fake.example" https://example.com curl --referer "https://fake.example;auto" -L https://example.com curl --referer ";auto" -L https://example.com .fi See also \fI-A, --user-agent\fP and \fI-H, --header\fP. .IP "\-J, \-\-remote-header-name" (HTTP) This option tells the \fI\-O, \-\-remote-name\fP option to use the server-specified Content-Disposition filename instead of extracting a filename from the URL. If the server-provided file name contains a path, that will be stripped off before the file name is used. The file is saved in the current directory, or in the directory specified with \fI\-\-output-dir\fP. If the server specifies a file name and a file with that name already exists in the destination directory, it will not be overwritten and an error will occur. If the server does not specify a file name then this option has no effect. There's no attempt to decode %-sequences (yet) in the provided file name, so this option may provide you with rather unexpected file names. \fBWARNING\fP: Exercise judicious use of this option, especially on Windows. A rogue server could send you the name of a DLL or other file that could be loaded automatically by Windows or some third party software. Providing \fI\-J, \-\-remote-header-name\fP multiple times has no extra effect. Disable it again with \-\-no-remote-header-name. Example: .nf curl -OJ https://example.com/file .fi See also \fI-O, --remote-name\fP. .IP "\-\-remote-name-all" This option changes the default action for all given URLs to be dealt with as if \fI\-O, \-\-remote-name\fP were used for each one. So if you want to disable that for a specific URL after \fI\-\-remote-name-all\fP has been used, you must use "-o \-" or \-\-no-remote-name. Providing \fI\-\-remote-name-all\fP multiple times has no extra effect. Disable it again with \-\-no-remote-name-all. Example: .nf curl --remote-name-all ftp://example.com/file1 ftp://example.com/file2 .fi See also \fI-O, --remote-name\fP. .IP "\-O, \-\-remote-name" Write output to a local file named like the remote file we get. (Only the file part of the remote file is used, the path is cut off.) The file will be saved in the current working directory. If you want the file saved in a different directory, make sure you change the current working directory before invoking curl with this option or use \fI\-\-output-dir\fP. The remote file name to use for saving is extracted from the given URL, nothing else, and if it already exists it will be overwritten. If you want the server to be able to choose the file name refer to \fI\-J, \-\-remote-header-name\fP which can be used in addition to this option. If the server chooses a file name and that name already exists it will not be overwritten. There is no URL decoding done on the file name. If it has %20 or other URL encoded parts of the name, they will end up as-is as file name. You may use this option as many times as the number of URLs you have. \fI\-O, \-\-remote-name\fP can be used several times in a command line Example: .nf curl -O https://example.com/filename .fi See also \fI--remote-name-all\fP, \fI--output-dir\fP and \fI-J, --remote-header-name\fP. .IP "\-R, \-\-remote-time" When used, this will make curl attempt to figure out the timestamp of the remote file, and if that is available make the local file get that same timestamp. Providing \fI\-R, \-\-remote-time\fP multiple times has no extra effect. Disable it again with \-\-no-remote-time. Example: .nf curl --remote-time -o foo https://example.com .fi See also \fI-O, --remote-name\fP and \fI-z, --time-cond\fP. .IP "\-\-remove-on-error" When curl returns an error when told to save output in a local file, this option removes that saved file before exiting. This prevents curl from leaving a partial file in the case of an error during transfer. If the output is not a file, this option has no effect. Providing \fI\-\-remove-on-error\fP multiple times has no extra effect. Disable it again with \-\-no-remove-on-error. Example: .nf curl --remove-on-error -o output https://example.com .fi See also \fI-f, --fail\fP. Added in 7.83.0. .IP "\-\-request-target " (HTTP) Tells curl to use an alternative "target" (path) instead of using the path as provided in the URL. Particularly useful when wanting to issue HTTP requests without leading slash or other data that does not follow the regular URL pattern, like "OPTIONS *". If \fI\-\-request-target\fP is provided several times, the last set value will be used. Example: .nf curl --request-target "*" -X OPTIONS https://example.com .fi See also \fI-X, --request\fP. Added in 7.55.0. .IP "\-X, \-\-request " (HTTP) Specifies a custom request method to use when communicating with the HTTP server. The specified request method will be used instead of the method otherwise used (which defaults to GET). Read the HTTP 1.1 specification for details and explanations. Common additional HTTP requests include PUT and DELETE, but related technologies like WebDAV offers PROPFIND, COPY, MOVE and more. Normally you do not need this option. All sorts of GET, HEAD, POST and PUT requests are rather invoked by using dedicated command line options. This option only changes the actual word used in the HTTP request, it does not alter the way curl behaves. So for example if you want to make a proper HEAD request, using \-X HEAD will not suffice. You need to use the \fI\-I, \-\-head\fP option. The method string you set with \fI\-X, \-\-request\fP will be used for all requests, which if you for example use \fI\-L, \-\-location\fP may cause unintended side-effects when curl does not change request method according to the HTTP 30x response codes \- and similar. (FTP) Specifies a custom FTP command to use instead of LIST when doing file lists with FTP. (POP3) Specifies a custom POP3 command to use instead of LIST or RETR. (IMAP) Specifies a custom IMAP command to use instead of LIST. (Added in 7.30.0) (SMTP) Specifies a custom SMTP command to use instead of HELP or VRFY. (Added in 7.34.0) If \fI\-X, \-\-request\fP is provided several times, the last set value will be used. Examples: .nf curl -X "DELETE" https://example.com curl -X NLST ftp://example.com/ .fi See also \fI--request-target\fP. .IP "\-\-resolve <[+]host:port:addr[,addr]...>" Provide a custom address for a specific host and port pair. Using this, you can make the curl requests(s) use a specified address and prevent the otherwise normally resolved address to be used. Consider it a sort of /etc/hosts alternative provided on the command line. The port number should be the number used for the specific protocol the host will be used for. It means you need several entries if you want to provide address for the same host but different ports. By specifying '*' as host you can tell curl to resolve any host and specific port pair to the specified address. Wildcard is resolved last so any \fI\-\-resolve\fP with a specific host and port will be used first. The provided address set by this option will be used even if \fI\-4, \-\-ipv4\fP or \fI\-6, \-\-ipv6\fP is set to make curl use another IP version. By prefixing the host with a '+' you can make the entry time out after curl's default timeout (1 minute). Note that this will only make sense for long running parallel transfers with a lot of files. In such cases, if this option is used curl will try to resolve the host as it normally would once the timeout has expired. Support for providing the IP address within [brackets] was added in 7.57.0. Support for providing multiple IP addresses per entry was added in 7.59.0. Support for resolving with wildcard was added in 7.64.0. Support for the '+' prefix was was added in 7.75.0. This option can be used many times to add many host names to resolve. \fI\-\-resolve\fP can be used several times in a command line Example: .nf curl --resolve example.com:443:127.0.0.1 https://example.com .fi See also \fI--connect-to\fP and \fI--alt-svc\fP. .IP "\-\-retry-all-errors" Retry on any error. This option is used together with \fI\-\-retry\fP. This option is the "sledgehammer" of retrying. Do not use this option by default (eg in curlrc), there may be unintended consequences such as sending or receiving duplicate data. Do not use with redirected input or output. You'd be much better off handling your unique problems in shell script. Please read the example below. \fBWARNING\fP: For server compatibility curl attempts to retry failed flaky transfers as close as possible to how they were started, but this is not possible with redirected input or output. For example, before retrying it removes output data from a failed partial transfer that was written to an output file. However this is not true of data redirected to a | pipe or > file, which are not reset. We strongly suggest you do not parse or record output via redirect in combination with this option, since you may receive duplicate data. By default curl will not error on an HTTP response code that indicates an HTTP error, if the transfer was successful. For example, if a server replies 404 Not Found and the reply is fully received then that is not an error. When \fI\-\-retry\fP is used then curl will retry on some HTTP response codes that indicate transient HTTP errors, but that does not include most 4xx response codes such as 404. If you want to retry on all response codes that indicate HTTP errors (4xx and 5xx) then combine with \fI\-f, \-\-fail\fP. Providing \fI\-\-retry-all-errors\fP multiple times has no extra effect. Disable it again with \-\-no-retry-all-errors. Example: .nf curl --retry 5 --retry-all-errors https://example.com .fi See also \fI--retry\fP. Added in 7.71.0. .IP "\-\-retry-connrefused" In addition to the other conditions, consider ECONNREFUSED as a transient error too for \fI\-\-retry\fP. This option is used together with \fI\-\-retry\fP. Providing \fI\-\-retry-connrefused\fP multiple times has no extra effect. Disable it again with \-\-no-retry-connrefused. Example: .nf curl --retry-connrefused --retry 7 https://example.com .fi See also \fI--retry\fP and \fI--retry-all-errors\fP. Added in 7.52.0. .IP "\-\-retry-delay " Make curl sleep this amount of time before each retry when a transfer has failed with a transient error (it changes the default backoff time algorithm between retries). This option is only interesting if \fI\-\-retry\fP is also used. Setting this delay to zero will make curl use the default backoff time. If \fI\-\-retry-delay\fP is provided several times, the last set value will be used. Example: .nf curl --retry-delay 5 --retry 7 https://example.com .fi See also \fI--retry\fP. .IP "\-\-retry-max-time " The retry timer is reset before the first transfer attempt. Retries will be done as usual (see \fI\-\-retry\fP) as long as the timer has not reached this given limit. Notice that if the timer has not reached the limit, the request will be made and while performing, it may take longer than this given time period. To limit a single request's maximum time, use \fI\-m, \-\-max-time\fP. Set this option to zero to not timeout retries. If \fI\-\-retry-max-time\fP is provided several times, the last set value will be used. Example: .nf curl --retry-max-time 30 --retry 10 https://example.com .fi See also \fI--retry\fP. .IP "\-\-retry " If a transient error is returned when curl tries to perform a transfer, it will retry this number of times before giving up. Setting the number to 0 makes curl do no retries (which is the default). Transient error means either: a timeout, an FTP 4xx response code or an HTTP 408, 429, 500, 502, 503 or 504 response code. When curl is about to retry a transfer, it will first wait one second and then for all forthcoming retries it will double the waiting time until it reaches 10 minutes which then will be the delay between the rest of the retries. By using \fI\-\-retry-delay\fP you disable this exponential backoff algorithm. See also \fI\-\-retry-max-time\fP to limit the total time allowed for retries. Since curl 7.66.0, curl will comply with the Retry-After: response header if one was present to know when to issue the next retry. If \fI\-\-retry\fP is provided several times, the last set value will be used. Example: .nf curl --retry 7 https://example.com .fi See also \fI--retry-max-time\fP. .IP "\-\-sasl-authzid " Use this authorization identity (authzid), during SASL PLAIN authentication, in addition to the authentication identity (authcid) as specified by \fI\-u, \-\-user\fP. If the option is not specified, the server will derive the authzid from the authcid, but if specified, and depending on the server implementation, it may be used to access another user's inbox, that the user has been granted access to, or a shared mailbox for example. If \fI\-\-sasl-authzid\fP is provided several times, the last set value will be used. Example: .nf curl --sasl-authzid zid imap://example.com/ .fi See also \fI--login-options\fP. Added in 7.66.0. .IP "\-\-sasl-ir" Enable initial response in SASL authentication. Providing \fI\-\-sasl-ir\fP multiple times has no extra effect. Disable it again with \-\-no-sasl-ir. Example: .nf curl --sasl-ir imap://example.com/ .fi See also \fI--sasl-authzid\fP. Added in 7.31.0. .IP "\-\-service-name " This option allows you to change the service name for SPNEGO. Examples: \fI\-\-negotiate\fP \fI\-\-service-name\fP sockd would use sockd/server-name. If \fI\-\-service-name\fP is provided several times, the last set value will be used. Example: .nf curl --service-name sockd/server https://example.com .fi See also \fI--negotiate\fP and \fI--proxy-service-name\fP. Added in 7.43.0. .IP "\-S, \-\-show-error" When used with \fI\-s, \-\-silent\fP, it makes curl show an error message if it fails. This option is global and does not need to be specified for each use of \fI\-:, \-\-next\fP. Providing \fI\-S, \-\-show-error\fP multiple times has no extra effect. Disable it again with \-\-no-show-error. Example: .nf curl --show-error --silent https://example.com .fi See also \fI--no-progress-meter\fP. .IP "\-s, \-\-silent" Silent or quiet mode. Do not show progress meter or error messages. Makes Curl mute. It will still output the data you ask for, potentially even to the terminal/stdout unless you redirect it. Use \fI\-S, \-\-show-error\fP in addition to this option to disable progress meter but still show error messages. Providing \fI\-s, \-\-silent\fP multiple times has no extra effect. Disable it again with \-\-no-silent. Example: .nf curl -s https://example.com .fi See also \fI-v, --verbose\fP, \fI--stderr\fP and \fI--no-progress-meter\fP. .IP "\-\-socks4 " Use the specified SOCKS4 proxy. If the port number is not specified, it is assumed at port 1080. Using this socket type make curl resolve the host name and passing the address on to the proxy. To specify proxy on a unix domain socket, use localhost for host, e.g. socks4://localhost/path/to/socket.sock This option overrides any previous use of \fI\-x, \-\-proxy\fP, as they are mutually exclusive. This option is superfluous since you can specify a socks4 proxy with \fI\-x, \-\-proxy\fP using a socks4:// protocol prefix. Since 7.52.0, \fI\-\-preproxy\fP can be used to specify a SOCKS proxy at the same time \fI\-x, \-\-proxy\fP is used with an HTTP/HTTPS proxy. In such a case curl first connects to the SOCKS proxy and then connects (through SOCKS) to the HTTP or HTTPS proxy. If \fI\-\-socks4\fP is provided several times, the last set value will be used. Example: .nf curl --socks4 hostname:4096 https://example.com .fi See also \fI--socks4a\fP, \fI--socks5\fP and \fI--socks5-hostname\fP. .IP "\-\-socks4a " Use the specified SOCKS4a proxy. If the port number is not specified, it is assumed at port 1080. This asks the proxy to resolve the host name. To specify proxy on a unix domain socket, use localhost for host, e.g. socks4a://localhost/path/to/socket.sock This option overrides any previous use of \fI\-x, \-\-proxy\fP, as they are mutually exclusive. This option is superfluous since you can specify a socks4a proxy with \fI\-x, \-\-proxy\fP using a socks4a:// protocol prefix. Since 7.52.0, \fI\-\-preproxy\fP can be used to specify a SOCKS proxy at the same time \fI\-x, \-\-proxy\fP is used with an HTTP/HTTPS proxy. In such a case curl first connects to the SOCKS proxy and then connects (through SOCKS) to the HTTP or HTTPS proxy. If \fI\-\-socks4a\fP is provided several times, the last set value will be used. Example: .nf curl --socks4a hostname:4096 https://example.com .fi See also \fI--socks4\fP, \fI--socks5\fP and \fI--socks5-hostname\fP. .IP "\-\-socks5-basic" Tells curl to use username/password authentication when connecting to a SOCKS5 proxy. The username/password authentication is enabled by default. Use \fI\-\-socks5-gssapi\fP to force GSS-API authentication to SOCKS5 proxies. Providing \fI\-\-socks5-basic\fP multiple times has no extra effect. Example: .nf curl --socks5-basic --socks5 hostname:4096 https://example.com .fi See also \fI--socks5\fP. Added in 7.55.0. .IP "\-\-socks5-gssapi-nec" As part of the GSS-API negotiation a protection mode is negotiated. RFC 1961 says in section 4.3/4.4 it should be protected, but the NEC reference implementation does not. The option \fI\-\-socks5-gssapi-nec\fP allows the unprotected exchange of the protection mode negotiation. Providing \fI\-\-socks5-gssapi-nec\fP multiple times has no extra effect. Disable it again with \-\-no-socks5-gssapi-nec. Example: .nf curl --socks5-gssapi-nec --socks5 hostname:4096 https://example.com .fi See also \fI--socks5\fP. .IP "\-\-socks5-gssapi-service " The default service name for a socks server is rcmd/server-fqdn. This option allows you to change it. Examples: \fI\-\-socks5\fP proxy-name \fI\-\-socks5-gssapi-service\fP sockd would use sockd/proxy-name \fI\-\-socks5\fP proxy-name \fI\-\-socks5-gssapi-service\fP sockd/real-name would use sockd/real-name for cases where the proxy-name does not match the principal name. If \fI\-\-socks5-gssapi-service\fP is provided several times, the last set value will be used. Example: .nf curl --socks5-gssapi-service sockd --socks5 hostname:4096 https://example.com .fi See also \fI--socks5\fP. .IP "\-\-socks5-gssapi" Tells curl to use GSS-API authentication when connecting to a SOCKS5 proxy. The GSS-API authentication is enabled by default (if curl is compiled with GSS-API support). Use \fI\-\-socks5-basic\fP to force username/password authentication to SOCKS5 proxies. Providing \fI\-\-socks5-gssapi\fP multiple times has no extra effect. Disable it again with \-\-no-socks5-gssapi. Example: .nf curl --socks5-gssapi --socks5 hostname:4096 https://example.com .fi See also \fI--socks5\fP. Added in 7.55.0. .IP "\-\-socks5-hostname " Use the specified SOCKS5 proxy (and let the proxy resolve the host name). If the port number is not specified, it is assumed at port 1080. To specify proxy on a unix domain socket, use localhost for host, e.g. socks5h://localhost/path/to/socket.sock This option overrides any previous use of \fI\-x, \-\-proxy\fP, as they are mutually exclusive. This option is superfluous since you can specify a socks5 hostname proxy with \fI\-x, \-\-proxy\fP using a socks5h:// protocol prefix. Since 7.52.0, \fI\-\-preproxy\fP can be used to specify a SOCKS proxy at the same time \fI\-x, \-\-proxy\fP is used with an HTTP/HTTPS proxy. In such a case curl first connects to the SOCKS proxy and then connects (through SOCKS) to the HTTP or HTTPS proxy. If \fI\-\-socks5-hostname\fP is provided several times, the last set value will be used. Example: .nf curl --socks5-hostname proxy.example:7000 https://example.com .fi See also \fI--socks5\fP and \fI--socks4a\fP. .IP "\-\-socks5 " Use the specified SOCKS5 proxy \- but resolve the host name locally. If the port number is not specified, it is assumed at port 1080. To specify proxy on a unix domain socket, use localhost for host, e.g. socks5://localhost/path/to/socket.sock This option overrides any previous use of \fI\-x, \-\-proxy\fP, as they are mutually exclusive. This option is superfluous since you can specify a socks5 proxy with \fI\-x, \-\-proxy\fP using a socks5:// protocol prefix. Since 7.52.0, \fI\-\-preproxy\fP can be used to specify a SOCKS proxy at the same time \fI\-x, \-\-proxy\fP is used with an HTTP/HTTPS proxy. In such a case curl first connects to the SOCKS proxy and then connects (through SOCKS) to the HTTP or HTTPS proxy. This option (as well as \fI\-\-socks4\fP) does not work with IPV6, FTPS or LDAP. If \fI\-\-socks5\fP is provided several times, the last set value will be used. Example: .nf curl --socks5 proxy.example:7000 https://example.com .fi See also \fI--socks5-hostname\fP and \fI--socks4a\fP. .IP "\-Y, \-\-speed-limit " If a transfer is slower than this given speed (in bytes per second) for speed-time seconds it gets aborted. speed-time is set with \fI\-y, \-\-speed-time\fP and is 30 if not set. If \fI\-Y, \-\-speed-limit\fP is provided several times, the last set value will be used. Example: .nf curl --speed-limit 300 --speed-time 10 https://example.com .fi See also \fI-y, --speed-time\fP, \fI--limit-rate\fP and \fI-m, --max-time\fP. .IP "\-y, \-\-speed-time " If a transfer runs slower than speed-limit bytes per second during a speed-time period, the transfer is aborted. If speed-time is used, the default speed-limit will be 1 unless set with \fI\-Y, \-\-speed-limit\fP. This option controls transfers (in both directions) but will not affect slow connects etc. If this is a concern for you, try the \fI\-\-connect-timeout\fP option. If \fI\-y, \-\-speed-time\fP is provided several times, the last set value will be used. Example: .nf curl --speed-limit 300 --speed-time 10 https://example.com .fi See also \fI-Y, --speed-limit\fP and \fI--limit-rate\fP. .IP "\-\-ssl-allow-beast" This option tells curl to not work around a security flaw in the SSL3 and TLS1.0 protocols known as BEAST. If this option is not used, the SSL layer may use workarounds known to cause interoperability problems with some older SSL implementations. \fBWARNING\fP: this option loosens the SSL security, and by using this flag you ask for exactly that. Providing \fI\-\-ssl-allow-beast\fP multiple times has no extra effect. Disable it again with \-\-no-ssl-allow-beast. Example: .nf curl --ssl-allow-beast https://example.com .fi See also \fI--proxy-ssl-allow-beast\fP and \fI-k, --insecure\fP. .IP "\-\-ssl-auto-client-cert" Tell libcurl to automatically locate and use a client certificate for authentication, when requested by the server. This option is only supported for Schannel (the native Windows SSL library). Prior to 7.77.0 this was the default behavior in libcurl with Schannel. Since the server can request any certificate that supports client authentication in the OS certificate store it could be a privacy violation and unexpected. Providing \fI\-\-ssl-auto-client-cert\fP multiple times has no extra effect. Disable it again with \-\-no-ssl-auto-client-cert. Example: .nf curl --ssl-auto-client-cert https://example.com .fi See also \fI--proxy-ssl-auto-client-cert\fP. Added in 7.77.0. .IP "\-\-ssl-no-revoke" (Schannel) This option tells curl to disable certificate revocation checks. WARNING: this option loosens the SSL security, and by using this flag you ask for exactly that. Providing \fI\-\-ssl-no-revoke\fP multiple times has no extra effect. Disable it again with \-\-no-ssl-no-revoke. Example: .nf curl --ssl-no-revoke https://example.com .fi See also \fI--crlfile\fP. Added in 7.44.0. .IP "\-\-ssl-reqd" (FTP IMAP POP3 SMTP LDAP) Require SSL/TLS for the connection. Terminates the connection if the transfer cannot be upgraded to use SSL/TLS. This option is handled in LDAP since version 7.81.0. It is fully supported by the OpenLDAP backend and rejected by the generic ldap backend if explicit TLS is required. This option is unnecessary if you use a URL scheme that in itself implies immediate and implicit use of TLS, like for FTPS, IMAPS, POP3S, SMTPS and LDAPS. Such transfers will always fail if the TLS handshake does not work. This option was formerly known as \-\-ftp-ssl-reqd. Providing \fI\-\-ssl-reqd\fP multiple times has no extra effect. Disable it again with \-\-no-ssl-reqd. Example: .nf curl --ssl-reqd ftp://example.com .fi See also \fI--ssl\fP and \fI-k, --insecure\fP. .IP "\-\-ssl-revoke-best-effort" (Schannel) This option tells curl to ignore certificate revocation checks when they failed due to missing/offline distribution points for the revocation check lists. Providing \fI\-\-ssl-revoke-best-effort\fP multiple times has no extra effect. Disable it again with \-\-no-ssl-revoke-best-effort. Example: .nf curl --ssl-revoke-best-effort https://example.com .fi See also \fI--crlfile\fP and \fI-k, --insecure\fP. Added in 7.70.0. .IP "\-\-ssl" (FTP IMAP POP3 SMTP LDAP) Warning: this is considered an insecure option. Consider using \fI\-\-ssl-reqd\fP instead to be sure curl upgrades to a secure connection. Try to use SSL/TLS for the connection. Reverts to a non-secure connection if the server does not support SSL/TLS. See also \fI\-\-ftp-ssl-control\fP and \fI\-\-ssl-reqd\fP for different levels of encryption required. This option is handled in LDAP since version 7.81.0. It is fully supported by the OpenLDAP backend and ignored by the generic ldap backend. Please note that a server may close the connection if the negotiation does not succeed. This option was formerly known as \-\-ftp-ssl. That option name can still be used but will be removed in a future version. Providing \fI\-\-ssl\fP multiple times has no extra effect. Disable it again with \-\-no-ssl. Example: .nf curl --ssl pop3://example.com/ .fi See also \fI--ssl-reqd\fP, \fI-k, --insecure\fP and \fI--ciphers\fP. .IP "\-2, \-\-sslv2" (SSL) This option previously asked curl to use SSLv2, but starting in curl 7.77.0 this instruction is ignored. SSLv2 is widely considered insecure (see RFC 6176). Providing \fI\-2, \-\-sslv2\fP multiple times has no extra effect. Example: .nf curl --sslv2 https://example.com .fi See also \fI--http1.1\fP and \fI--http2\fP. \fI-2, --sslv2\fP requires that the underlying libcurl was built to support TLS. This option is mutually exclusive to \fI-3, --sslv3\fP and \fI-1, --tlsv1\fP and \fI--tlsv1.1\fP and \fI--tlsv1.2\fP. .IP "\-3, \-\-sslv3" (SSL) This option previously asked curl to use SSLv3, but starting in curl 7.77.0 this instruction is ignored. SSLv3 is widely considered insecure (see RFC 7568). Providing \fI\-3, \-\-sslv3\fP multiple times has no extra effect. Example: .nf curl --sslv3 https://example.com .fi See also \fI--http1.1\fP and \fI--http2\fP. \fI-3, --sslv3\fP requires that the underlying libcurl was built to support TLS. This option is mutually exclusive to \fI-2, --sslv2\fP and \fI-1, --tlsv1\fP and \fI--tlsv1.1\fP and \fI--tlsv1.2\fP. .IP "\-\-stderr " Redirect all writes to stderr to the specified file instead. If the file name is a plain '-', it is instead written to stdout. This option is global and does not need to be specified for each use of \fI\-:, \-\-next\fP. If \fI\-\-stderr\fP is provided several times, the last set value will be used. Example: .nf curl --stderr output.txt https://example.com .fi See also \fI-v, --verbose\fP and \fI-s, --silent\fP. .IP "\-\-styled-output" Enables the automatic use of bold font styles when writing HTTP headers to the terminal. Use \-\-no-styled-output to switch them off. Styled output requires a terminal that supports bold fonts. This feature is not present on curl for Windows due to lack of this capability. This option is global and does not need to be specified for each use of \fI\-:, \-\-next\fP. Providing \fI\-\-styled-output\fP multiple times has no extra effect. Disable it again with \-\-no-styled-output. Example: .nf curl --styled-output -I https://example.com .fi See also \fI-I, --head\fP and \fI-v, --verbose\fP. Added in 7.61.0. .IP "\-\-suppress-connect-headers" When \fI\-p, \-\-proxytunnel\fP is used and a CONNECT request is made do not output proxy CONNECT response headers. This option is meant to be used with \fI\-D, \-\-dump-header\fP or \fI\-i, \-\-include\fP which are used to show protocol headers in the output. It has no effect on debug options such as \fI\-v, \-\-verbose\fP or \fI\-\-trace\fP, or any statistics. Providing \fI\-\-suppress-connect-headers\fP multiple times has no extra effect. Disable it again with \-\-no-suppress-connect-headers. Example: .nf curl --suppress-connect-headers --include -x proxy https://example.com .fi See also \fI-D, --dump-header\fP, \fI-i, --include\fP and \fI-p, --proxytunnel\fP. Added in 7.54.0. .IP "\-\-tcp-fastopen" Enable use of TCP Fast Open (RFC7413). Providing \fI\-\-tcp-fastopen\fP multiple times has no extra effect. Disable it again with \-\-no-tcp-fastopen. Example: .nf curl --tcp-fastopen https://example.com .fi See also \fI--false-start\fP. Added in 7.49.0. .IP "\-\-tcp-nodelay" Turn on the TCP_NODELAY option. See the \fIcurl_easy_setopt(3)\fP man page for details about this option. Since 7.50.2, curl sets this option by default and you need to explicitly switch it off if you do not want it on. Providing \fI\-\-tcp-nodelay\fP multiple times has no extra effect. Disable it again with \-\-no-tcp-nodelay. Example: .nf curl --tcp-nodelay https://example.com .fi See also \fI-N, --no-buffer\fP. .IP "\-t, \-\-telnet-option " Pass options to the telnet protocol. Supported options are: TTYPE= Sets the terminal type. XDISPLOC= Sets the X display location. NEW_ENV= Sets an environment variable. \fI\-t, \-\-telnet-option\fP can be used several times in a command line Example: .nf curl -t TTYPE=vt100 telnet://example.com/ .fi See also \fI-K, --config\fP. .IP "\-\-tftp-blksize " (TFTP) Set TFTP BLKSIZE option (must be >512). This is the block size that curl will try to use when transferring data to or from a TFTP server. By default 512 bytes will be used. If \fI\-\-tftp-blksize\fP is provided several times, the last set value will be used. Example: .nf curl --tftp-blksize 1024 tftp://example.com/file .fi See also \fI--tftp-no-options\fP. .IP "\-\-tftp-no-options" (TFTP) Tells curl not to send TFTP options requests. This option improves interop with some legacy servers that do not acknowledge or properly implement TFTP options. When this option is used \fI\-\-tftp-blksize\fP is ignored. Providing \fI\-\-tftp-no-options\fP multiple times has no extra effect. Disable it again with \-\-no-tftp-no-options. Example: .nf curl --tftp-no-options tftp://192.168.0.1/ .fi See also \fI--tftp-blksize\fP. Added in 7.48.0. .IP "\-z, \-\-time-cond " On Windows, this variable is used when trying to find the home directory. If the primary home variable are all unset. .IP "COLUMNS " If set, the specified number of characters will be used as the terminal width when the alternative progress-bar is shown. If not set, curl will try to figure it out using other ways. .IP "CURL_CA_BUNDLE " If set, will be used as the \fI\-\-cacert\fP value. .IP "CURL_HOME " If set, is the first variable curl checks when trying to find its home directory. If not set, it continues to check \fIXDG_CONFIG_HOME\fP .IP "CURL_SSL_BACKEND " If curl was built with support for "MultiSSL", meaning that it has built-in support for more than one TLS backend, this environment variable can be set to the case insensitive name of the particular backend to use when curl is invoked. Setting a name that is not a built-in alternative will make curl stay with the default. SSL backend names (case-insensitive): bearssl, gnutls, gskit, mbedtls, nss, openssl, rustls, schannel, secure-transport, wolfssl .IP "HOME " If set, this is used to find the home directory when that is needed. Like when looking for the default .curlrc. \fICURL_HOME\fP and \fIXDG_CONFIG_HOME\fP have preference. .IP "QLOGDIR " If curl was built with HTTP/3 support, setting this environment variable to a local directory will make curl produce qlogs in that directory, using file names named after the destination connection id (in hex). Do note that these files can become rather large. Works with both QUIC backends. .IP SHELL Used on VMS when trying to detect if using a DCL or a "unix" shell. .IP "SSL_CERT_DIR " If set, will be used as the \fI\-\-capath\fP value. .IP "SSL_CERT_FILE " If set, will be used as the \fI\-\-cacert\fP value. .IP "SSLKEYLOGFILE " If you set this environment variable to a file name, curl will store TLS secrets from its connections in that file when invoked to enable you to analyze the TLS traffic in real time using network analyzing tools such as Wireshark. This works with the following TLS backends: OpenSSL, libressl, BoringSSL, GnuTLS, NSS and wolfSSL. .IP "USERPROFILE " On Windows, this variable is used when trying to find the home directory. If the other, primary, variable are all unset. If set, curl will use the path \(dq$USERPROFILE\\Application Data". .IP "XDG_CONFIG_HOME " If \fICURL_HOME\fP is not set, this variable is checked when looking for a default .curlrc file. .SH "PROXY PROTOCOL PREFIXES" The proxy string may be specified with a protocol:// prefix to specify alternative proxy protocols. If no protocol is specified in the proxy string or if the string does not match a supported one, the proxy will be treated as an HTTP proxy. The supported proxy protocol prefixes are as follows: .IP "http://" Makes it use it as an HTTP proxy. The default if no scheme prefix is used. .IP "https://" Makes it treated as an \fBHTTPS\fP proxy. .IP "socks4://" Makes it the equivalent of \fI\-\-socks4\fP .IP "socks4a://" Makes it the equivalent of \fI\-\-socks4a\fP .IP "socks5://" Makes it the equivalent of \fI\-\-socks5\fP .IP "socks5h://" Makes it the equivalent of \fI\-\-socks5-hostname\fP .SH EXIT CODES There are a bunch of different error codes and their corresponding error messages that may appear under error conditions. At the time of this writing, the exit codes are: .IP 0 Success. The operation completed successfully according to the instructions. .IP 1 Unsupported protocol. This build of curl has no support for this protocol. .IP 2 Failed to initialize. .IP 3 URL malformed. The syntax was not correct. .IP 4 A feature or option that was needed to perform the desired request was not enabled or was explicitly disabled at build-time. To make curl able to do this, you probably need another build of libcurl. .IP 5 Could not resolve proxy. The given proxy host could not be resolved. .IP 6 Could not resolve host. The given remote host could not be resolved. .IP 7 Failed to connect to host. .IP 8 Weird server reply. The server sent data curl could not parse. .IP 9 FTP access denied. The server denied login or denied access to the particular resource or directory you wanted to reach. Most often you tried to change to a directory that does not exist on the server. .IP 10 FTP accept failed. While waiting for the server to connect back when an active FTP session is used, an error code was sent over the control connection or similar. .IP 11 FTP weird PASS reply. Curl could not parse the reply sent to the PASS request. .IP 12 During an active FTP session while waiting for the server to connect back to curl, the timeout expired. .IP 13 FTP weird PASV reply, Curl could not parse the reply sent to the PASV request. .IP 14 FTP weird 227 format. Curl could not parse the 227-line the server sent. .IP 15 FTP cannot use host. Could not resolve the host IP we got in the 227-line. .IP 16 HTTP/2 error. A problem was detected in the HTTP2 framing layer. This is somewhat generic and can be one out of several problems, see the error message for details. .IP 17 FTP could not set binary. Could not change transfer method to binary. .IP 18 Partial file. Only a part of the file was transferred. .IP 19 FTP could not download/access the given file, the RETR (or similar) command failed. .IP 21 FTP quote error. A quote command returned error from the server. .IP 22 HTTP page not retrieved. The requested URL was not found or returned another error with the HTTP error code being 400 or above. This return code only appears if \fI\-f, \-\-fail\fP is used. .IP 23 Write error. Curl could not write data to a local filesystem or similar. .IP 25 FTP could not STOR file. The server denied the STOR operation, used for FTP uploading. .IP 26 Read error. Various reading problems. .IP 27 Out of memory. A memory allocation request failed. .IP 28 Operation timeout. The specified time-out period was reached according to the conditions. .IP 30 FTP PORT failed. The PORT command failed. Not all FTP servers support the PORT command, try doing a transfer using PASV instead! .IP 31 FTP could not use REST. The REST command failed. This command is used for resumed FTP transfers. .IP 33 HTTP range error. The range "command" did not work. .IP 34 HTTP post error. Internal post-request generation error. .IP 35 SSL connect error. The SSL handshaking failed. .IP 36 Bad download resume. Could not continue an earlier aborted download. .IP 37 FILE could not read file. Failed to open the file. Permissions? .IP 38 LDAP cannot bind. LDAP bind operation failed. .IP 39 LDAP search failed. .IP 41 Function not found. A required LDAP function was not found. .IP 42 Aborted by callback. An application told curl to abort the operation. .IP 43 Internal error. A function was called with a bad parameter. .IP 45 Interface error. A specified outgoing interface could not be used. .IP 47 Too many redirects. When following redirects, curl hit the maximum amount. .IP 48 Unknown option specified to libcurl. This indicates that you passed a weird option to curl that was passed on to libcurl and rejected. Read up in the manual! .IP 49 Malformed telnet option. .IP 52 The server did not reply anything, which here is considered an error. .IP 53 SSL crypto engine not found. .IP 54 Cannot set SSL crypto engine as default. .IP 55 Failed sending network data. .IP 56 Failure in receiving network data. .IP 58 Problem with the local certificate. .IP 59 Could not use specified SSL cipher. .IP 60 Peer certificate cannot be authenticated with known CA certificates. .IP 61 Unrecognized transfer encoding. .IP 63 Maximum file size exceeded. .IP 64 Requested FTP SSL level failed. .IP 65 Sending the data requires a rewind that failed. .IP 66 Failed to initialise SSL Engine. .IP 67 The user name, password, or similar was not accepted and curl failed to log in. .IP 68 File not found on TFTP server. .IP 69 Permission problem on TFTP server. .IP 70 Out of disk space on TFTP server. .IP 71 Illegal TFTP operation. .IP 72 Unknown TFTP transfer ID. .IP 73 File already exists (TFTP). .IP 74 No such user (TFTP). .IP 77 Problem reading the SSL CA cert (path? access rights?). .IP 78 The resource referenced in the URL does not exist. .IP 79 An unspecified error occurred during the SSH session. .IP 80 Failed to shut down the SSL connection. .IP 82 Could not load CRL file, missing or wrong format. .IP 83 Issuer check failed. .IP 84 The FTP PRET command failed. .IP 85 Mismatch of RTSP CSeq numbers. .IP 86 Mismatch of RTSP Session Identifiers. .IP 87 Unable to parse FTP file list. .IP 88 FTP chunk callback reported error. .IP 89 No connection available, the session will be queued. .IP 90 SSL public key does not matched pinned public key. .IP 91 Invalid SSL certificate status. .IP 92 Stream error in HTTP/2 framing layer. .IP 93 An API function was called from inside a callback. .IP 94 An authentication function returned an error. .IP 95 A problem was detected in the HTTP/3 layer. This is somewhat generic and can be one out of several problems, see the error message for details. .IP 96 QUIC connection error. This error may be caused by an SSL library error. QUIC is the protocol used for HTTP/3 transfers. .IP XX More error codes will appear here in future releases. The existing ones are meant to never change. .SH BUGS If you experience any problems with curl, submit an issue in the project's bug tracker on GitHub: https://github.com/curl/curl/issues .SH AUTHORS / CONTRIBUTORS Daniel Stenberg is the main author, but the whole list of contributors is found in the separate THANKS file. .SH WWW https://curl.se .SH "SEE ALSO" .BR ftp (1), .BR wget (1) man8/t1libconfig.8000064400000002737147210500760007714 0ustar00.TH T1LIBCONFIG 8 .SH NAME .B t1libconfig \- create the t1lib.config and FontDataBase files for t1lib .SH SYNOPSIS .B t1libconfig [ .BR \-v\fP, \fB\-\-version ] [ .BR \-h\fP, \fB\-\-help ] .B \-\-force ] [ .B fontdirectory... ] .SH DESCRIPTION .B t1libconfig scans a list of directories for Type 1 fonts and font metric files, and generates a configuration file and font database file for the .B t1lib rasterizer library accordingly. By default, it looks in all subdirectories of /usr/X11R6/lib/X11/fonts, and in /usr/lib/ghostscript. Extra directories to search may be specified on the command line. The .B t1libconfig script tries not to scan the same directory twice (this is, however, not foolproof, since /usr/X11R6/lib/X11/fonts and /usr/lib/X11/fonts typically point to the same directory on GNU/Linux systems). .SH OPTIONS .TP .BR \-v\fP, \fB\-\-version Print the version of .B t1libconfig and exit. .TP .BR \-h\fP, \fB\-\-help Print help about usage and exit. .TP .B \-\-force Force the generation of new configuration files even if these files already exist on the system. .SH FILES .TP 25 .B /etc/t1lib/t1lib.config Contains configuration information for t1lib, including colon-separated lists of paths to Type 1 font files and font metrics files, and the location of the default font database file .TP 25 .B /etc/t1lib/FontDataBase Contains a list of the names of Type 1 font files to be used by t1lib. .SH AUTHOR David Huggins-Daines .SH SEE ALSO .BR FontDataBase (5) man5/FontDatabase.5000064400000004350147210500760010031 0ustar00.TH FONTDATABASE 5 .SH NAME FontDataBase \- database of fonts accessible to t1lib. .SH DESCRIPTION This manual page has been written for the Debian GNU/Linux distribution. It has been adapted from the documentation included in the upstream .B t1lib distribution. .PP .B /etc/t1lib/FontDataBase is a text file which contains, minimally, the basenames of Type 1 font files to be made accessible to the .B t1lib font rasterizer library. The format is intentionally similar to that of the .B fonts.dir and .B fonts.scale files used by X11. .PP Line 1 of this file contains a positive integer specifying the number of fonts declared in that file. This is as in the .B fonts.dir files of the X11 system. .PP All remaining lines contain declarations of one font each. The only thing taken from such a line is the last string (delimited by white space) in it. It is assumed to be a filename of the format \fIbasename\fR.\fIsomeextension\fR. .PP The \fIbasename\fR part is assumed to be the .BR basename (1) of a fontfile. After the a string has been parsed, the .I extension is cut off and replaced in turn with .I .pfa and .I .pfb. The initialization routine tries to open a font file in its search path with one of the resulting filenames. .PP The remainder of the line, i.e., from beginning to the start of the filename string, is completely ignored and thus may contain information for other programs. .SH EXAMPLES Here is a minimal font database file for 4 fonts: .sp .nf 4 isvl.afm isvli.afm isvd.afm isvdi.afm .fi .PP This file is \fIminimal\fR, because it contains just the information needed, and nothing not needed by the library. .PP Here is a more realistic example, which allows an application to match a fully qualified X11 fontname to a FontID in .B t1lib. This is also a valid font database file: .sp .nf 4 Souvenir Souvenir-Light --- -itc-souvenir-light-r-normal--#-0-0-0-p-0-iso8859-1 isvl.afm Souvenir Souvenir-LightItalic -*- -itc-souvenir-light-i-normal--#-0-0-0-p-0-iso8859-1 isvli.afm Souvenir-Demi *-- -itc-souvenir-demi-r-normal--#-0-0-0-p-0-iso8859-1 isvd.afm Souvenir-DemiItalic **- -itc-souvenir-demi-i-normal--#-0-0-0-p-0-iso8859-1 isvdi.afm .fi .PP .SH FILES .I /etc/t1lib/FontDataBase .SH "SEE ALSO" .BR mkfontdir (1x) man3/EVP_DigestInit.3000064400000037142147210533270010256 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EVP_DigestInit 3" .TH EVP_DigestInit 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EVP_MD_CTX_init, EVP_MD_CTX_create, EVP_DigestInit_ex, EVP_DigestUpdate, EVP_DigestFinal_ex, EVP_MD_CTX_cleanup, EVP_MD_CTX_destroy, EVP_MAX_MD_SIZE, EVP_MD_CTX_copy_ex, EVP_DigestInit, EVP_DigestFinal, EVP_MD_CTX_copy, EVP_MD_type, EVP_MD_pkey_type, EVP_MD_size, EVP_MD_block_size, EVP_MD_CTX_md, EVP_MD_CTX_size, EVP_MD_CTX_block_size, EVP_MD_CTX_type, EVP_md_null, EVP_md2, EVP_md5, EVP_sha, EVP_sha1, EVP_sha224, EVP_sha256, EVP_sha384, EVP_sha512, EVP_dss, EVP_dss1, EVP_mdc2, EVP_ripemd160, EVP_get_digestbyname, EVP_get_digestbynid, EVP_get_digestbyobj \- EVP digest routines .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void EVP_MD_CTX_init(EVP_MD_CTX *ctx); \& EVP_MD_CTX *EVP_MD_CTX_create(void); \& \& int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl); \& int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, size_t cnt); \& int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, \& unsigned int *s); \& \& int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx); \& void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx); \& \& int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out,const EVP_MD_CTX *in); \& \& int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type); \& int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, \& unsigned int *s); \& \& int EVP_MD_CTX_copy(EVP_MD_CTX *out,EVP_MD_CTX *in); \& \& #define EVP_MAX_MD_SIZE 64 /* SHA512 */ \& \& int EVP_MD_type(const EVP_MD *md); \& int EVP_MD_pkey_type(const EVP_MD *md); \& int EVP_MD_size(const EVP_MD *md); \& int EVP_MD_block_size(const EVP_MD *md); \& \& const EVP_MD *EVP_MD_CTX_md(const EVP_MD_CTX *ctx); \& #define EVP_MD_CTX_size(e) EVP_MD_size(EVP_MD_CTX_md(e)) \& #define EVP_MD_CTX_block_size(e) EVP_MD_block_size((e)\->digest) \& #define EVP_MD_CTX_type(e) EVP_MD_type((e)\->digest) \& \& const EVP_MD *EVP_md_null(void); \& const EVP_MD *EVP_md2(void); \& const EVP_MD *EVP_md5(void); \& const EVP_MD *EVP_sha(void); \& const EVP_MD *EVP_sha1(void); \& const EVP_MD *EVP_dss(void); \& const EVP_MD *EVP_dss1(void); \& const EVP_MD *EVP_mdc2(void); \& const EVP_MD *EVP_ripemd160(void); \& \& const EVP_MD *EVP_sha224(void); \& const EVP_MD *EVP_sha256(void); \& const EVP_MD *EVP_sha384(void); \& const EVP_MD *EVP_sha512(void); \& \& const EVP_MD *EVP_get_digestbyname(const char *name); \& #define EVP_get_digestbynid(a) EVP_get_digestbyname(OBJ_nid2sn(a)) \& #define EVP_get_digestbyobj(a) EVP_get_digestbynid(OBJ_obj2nid(a)) .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \s-1EVP\s0 digest routines are a high level interface to message digests. .PP \&\fIEVP_MD_CTX_init()\fR initializes digest context \fBctx\fR. .PP \&\fIEVP_MD_CTX_create()\fR allocates, initializes and returns a digest context. .PP \&\fIEVP_DigestInit_ex()\fR sets up digest context \fBctx\fR to use a digest \&\fBtype\fR from \s-1ENGINE \s0\fBimpl\fR. \fBctx\fR must be initialized before calling this function. \fBtype\fR will typically be supplied by a functionsuch as \fIEVP_sha1()\fR. If \fBimpl\fR is \s-1NULL\s0 then the default implementation of digest \fBtype\fR is used. .PP \&\fIEVP_DigestUpdate()\fR hashes \fBcnt\fR bytes of data at \fBd\fR into the digest context \fBctx\fR. This function can be called several times on the same \fBctx\fR to hash additional data. .PP \&\fIEVP_DigestFinal_ex()\fR retrieves the digest value from \fBctx\fR and places it in \fBmd\fR. If the \fBs\fR parameter is not \s-1NULL\s0 then the number of bytes of data written (i.e. the length of the digest) will be written to the integer at \fBs\fR, at most \fB\s-1EVP_MAX_MD_SIZE\s0\fR bytes will be written. After calling \fIEVP_DigestFinal_ex()\fR no additional calls to \fIEVP_DigestUpdate()\fR can be made, but \fIEVP_DigestInit_ex()\fR can be called to initialize a new digest operation. .PP \&\fIEVP_MD_CTX_cleanup()\fR cleans up digest context \fBctx\fR, it should be called after a digest context is no longer needed. .PP \&\fIEVP_MD_CTX_destroy()\fR cleans up digest context \fBctx\fR and frees up the space allocated to it, it should be called only on a context created using \fIEVP_MD_CTX_create()\fR. .PP \&\fIEVP_MD_CTX_copy_ex()\fR can be used to copy the message digest state from \&\fBin\fR to \fBout\fR. This is useful if large amounts of data are to be hashed which only differ in the last few bytes. \fBout\fR must be initialized before calling this function. .PP \&\fIEVP_DigestInit()\fR behaves in the same way as \fIEVP_DigestInit_ex()\fR except the passed context \fBctx\fR does not have to be initialized, and it always uses the default digest implementation. .PP \&\fIEVP_DigestFinal()\fR is similar to \fIEVP_DigestFinal_ex()\fR except the digest context \fBctx\fR is automatically cleaned up. .PP \&\fIEVP_MD_CTX_copy()\fR is similar to \fIEVP_MD_CTX_copy_ex()\fR except the destination \&\fBout\fR does not have to be initialized. .PP \&\fIEVP_MD_size()\fR and \fIEVP_MD_CTX_size()\fR return the size of the message digest when passed an \fB\s-1EVP_MD\s0\fR or an \fB\s-1EVP_MD_CTX\s0\fR structure, i.e. the size of the hash. .PP \&\fIEVP_MD_block_size()\fR and \fIEVP_MD_CTX_block_size()\fR return the block size of the message digest when passed an \fB\s-1EVP_MD\s0\fR or an \fB\s-1EVP_MD_CTX\s0\fR structure. .PP \&\fIEVP_MD_type()\fR and \fIEVP_MD_CTX_type()\fR return the \s-1NID\s0 of the \s-1OBJECT IDENTIFIER\s0 representing the given message digest when passed an \fB\s-1EVP_MD\s0\fR structure. For example EVP_MD_type(\fIEVP_sha1()\fR) returns \fBNID_sha1\fR. This function is normally used when setting \s-1ASN1\s0 OIDs. .PP \&\fIEVP_MD_CTX_md()\fR returns the \fB\s-1EVP_MD\s0\fR structure corresponding to the passed \&\fB\s-1EVP_MD_CTX\s0\fR. .PP \&\fIEVP_MD_pkey_type()\fR returns the \s-1NID\s0 of the public key signing algorithm associated with this digest. For example \fIEVP_sha1()\fR is associated with \s-1RSA\s0 so this will return \fBNID_sha1WithRSAEncryption\fR. Since digests and signature algorithms are no longer linked this function is only retained for compatibility reasons. .PP \&\fIEVP_md2()\fR, \fIEVP_md5()\fR, \fIEVP_sha()\fR, \fIEVP_sha1()\fR, \fIEVP_sha224()\fR, \fIEVP_sha256()\fR, \&\fIEVP_sha384()\fR, \fIEVP_sha512()\fR, \fIEVP_mdc2()\fR and \fIEVP_ripemd160()\fR return \fB\s-1EVP_MD\s0\fR structures for the \s-1MD2, MD5, SHA, SHA1, SHA224, SHA256, SHA384, SHA512, MDC2\s0 and \s-1RIPEMD160\s0 digest algorithms respectively. .PP \&\fIEVP_dss()\fR and \fIEVP_dss1()\fR return \fB\s-1EVP_MD\s0\fR structures for \s-1SHA\s0 and \s-1SHA1\s0 digest algorithms but using \s-1DSS \s0(\s-1DSA\s0) for the signature algorithm. Note: there is no need to use these pseudo-digests in OpenSSL 1.0.0 and later, they are however retained for compatibility. .PP \&\fIEVP_md_null()\fR is a \*(L"null\*(R" message digest that does nothing: i.e. the hash it returns is of zero length. .PP \&\fIEVP_get_digestbyname()\fR, \fIEVP_get_digestbynid()\fR and \fIEVP_get_digestbyobj()\fR return an \fB\s-1EVP_MD\s0\fR structure when passed a digest name, a digest \s-1NID\s0 or an \s-1ASN1_OBJECT\s0 structure respectively. The digest table must be initialized using, for example, \fIOpenSSL_add_all_digests()\fR for these functions to work. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIEVP_DigestInit_ex()\fR, \fIEVP_DigestUpdate()\fR and \fIEVP_DigestFinal_ex()\fR return 1 for success and 0 for failure. .PP \&\fIEVP_MD_CTX_copy_ex()\fR returns 1 if successful or 0 for failure. .PP \&\fIEVP_MD_type()\fR, \fIEVP_MD_pkey_type()\fR and \fIEVP_MD_type()\fR return the \s-1NID\s0 of the corresponding \s-1OBJECT IDENTIFIER\s0 or NID_undef if none exists. .PP \&\fIEVP_MD_size()\fR, \fIEVP_MD_block_size()\fR, \fIEVP_MD_CTX_size()\fR and \&\fIEVP_MD_CTX_block_size()\fR return the digest or block size in bytes. .PP \&\fIEVP_md_null()\fR, \fIEVP_md2()\fR, \fIEVP_md5()\fR, \fIEVP_sha()\fR, \fIEVP_sha1()\fR, \fIEVP_dss()\fR, \&\fIEVP_dss1()\fR, \fIEVP_mdc2()\fR and \fIEVP_ripemd160()\fR return pointers to the corresponding \s-1EVP_MD\s0 structures. .PP \&\fIEVP_get_digestbyname()\fR, \fIEVP_get_digestbynid()\fR and \fIEVP_get_digestbyobj()\fR return either an \fB\s-1EVP_MD\s0\fR structure or \s-1NULL\s0 if an error occurs. .SH "NOTES" .IX Header "NOTES" The \fB\s-1EVP\s0\fR interface to message digests should almost always be used in preference to the low level interfaces. This is because the code then becomes transparent to the digest used and much more flexible. .PP New applications should use the \s-1SHA2\s0 digest algorithms such as \s-1SHA256.\s0 The other digest algorithms are still in common use. .PP For most applications the \fBimpl\fR parameter to \fIEVP_DigestInit_ex()\fR will be set to \s-1NULL\s0 to use the default digest implementation. .PP The functions \fIEVP_DigestInit()\fR, \fIEVP_DigestFinal()\fR and \fIEVP_MD_CTX_copy()\fR are obsolete but are retained to maintain compatibility with existing code. New applications should use \fIEVP_DigestInit_ex()\fR, \fIEVP_DigestFinal_ex()\fR and \&\fIEVP_MD_CTX_copy_ex()\fR because they can efficiently reuse a digest context instead of initializing and cleaning it up on each call and allow non default implementations of digests to be specified. .PP In OpenSSL 0.9.7 and later if digest contexts are not cleaned up after use memory leaks will occur. .PP Stack allocation of \s-1EVP_MD_CTX\s0 structures is common, for example: .PP .Vb 2 \& EVP_MD_CTX mctx; \& EVP_MD_CTX_init(&mctx); .Ve .PP This will cause binary compatibility issues if the size of \s-1EVP_MD_CTX\s0 structure changes (this will only happen with a major release of OpenSSL). Applications wishing to avoid this should use \fIEVP_MD_CTX_create()\fR instead: .PP .Vb 2 \& EVP_MD_CTX *mctx; \& mctx = EVP_MD_CTX_create(); .Ve .SH "EXAMPLE" .IX Header "EXAMPLE" This example digests the data \*(L"Test Message\en\*(R" and \*(L"Hello World\en\*(R", using the digest name passed on the command line. .PP .Vb 2 \& #include \& #include \& \& main(int argc, char *argv[]) \& { \& EVP_MD_CTX *mdctx; \& const EVP_MD *md; \& char mess1[] = "Test Message\en"; \& char mess2[] = "Hello World\en"; \& unsigned char md_value[EVP_MAX_MD_SIZE]; \& int md_len, i; \& \& OpenSSL_add_all_digests(); \& \& if(!argv[1]) { \& printf("Usage: mdtest digestname\en"); \& exit(1); \& } \& \& md = EVP_get_digestbyname(argv[1]); \& \& if(!md) { \& printf("Unknown message digest %s\en", argv[1]); \& exit(1); \& } \& \& mdctx = EVP_MD_CTX_create(); \& EVP_DigestInit_ex(mdctx, md, NULL); \& EVP_DigestUpdate(mdctx, mess1, strlen(mess1)); \& EVP_DigestUpdate(mdctx, mess2, strlen(mess2)); \& EVP_DigestFinal_ex(mdctx, md_value, &md_len); \& EVP_MD_CTX_destroy(mdctx); \& \& printf("Digest is: "); \& for(i = 0; i < md_len; i++) \& printf("%02x", md_value[i]); \& printf("\en"); \& \& /* Call this once before exit. */ \& EVP_cleanup(); \& exit(0); \& } .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdgst\fR\|(1), \&\fIevp\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIEVP_DigestInit()\fR, \fIEVP_DigestUpdate()\fR and \fIEVP_DigestFinal()\fR are available in all versions of SSLeay and OpenSSL. .PP \&\fIEVP_MD_CTX_init()\fR, \fIEVP_MD_CTX_create()\fR, \fIEVP_MD_CTX_copy_ex()\fR, \&\fIEVP_MD_CTX_cleanup()\fR, \fIEVP_MD_CTX_destroy()\fR, \fIEVP_DigestInit_ex()\fR and \fIEVP_DigestFinal_ex()\fR were added in OpenSSL 0.9.7. .PP \&\fIEVP_md_null()\fR, \fIEVP_md2()\fR, \fIEVP_md5()\fR, \fIEVP_sha()\fR, \fIEVP_sha1()\fR, \&\fIEVP_dss()\fR, \fIEVP_dss1()\fR, \fIEVP_mdc2()\fR and \fIEVP_ripemd160()\fR were changed to return truly const \s-1EVP_MD\s0 * in OpenSSL 0.9.7. .PP The link between digests and signing algorithms was fixed in OpenSSL 1.0 and later, so now \fIEVP_sha1()\fR can be used with \s-1RSA\s0 and \s-1DSA\s0; there is no need to use \fIEVP_dss1()\fR any more. .PP OpenSSL 1.0 and later does not include the \s-1MD2\s0 digest algorithm in the default configuration due to its security weaknesses. man3/BIO_f_cipher.3000064400000015400147210533270007742 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BIO_f_cipher 3" .TH BIO_f_cipher 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BIO_f_cipher, BIO_set_cipher, BIO_get_cipher_status, BIO_get_cipher_ctx \- cipher BIO filter .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& #include \& #include \& \& BIO_METHOD * BIO_f_cipher(void); \& void BIO_set_cipher(BIO *b,const EVP_CIPHER *cipher, \& unsigned char *key, unsigned char *iv, int enc); \& int BIO_get_cipher_status(BIO *b) \& int BIO_get_cipher_ctx(BIO *b, EVP_CIPHER_CTX **pctx) .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBIO_f_cipher()\fR returns the cipher \s-1BIO\s0 method. This is a filter \&\s-1BIO\s0 that encrypts any data written through it, and decrypts any data read from it. It is a \s-1BIO\s0 wrapper for the cipher routines \&\fIEVP_CipherInit()\fR, \fIEVP_CipherUpdate()\fR and \fIEVP_CipherFinal()\fR. .PP Cipher BIOs do not support \fIBIO_gets()\fR or \fIBIO_puts()\fR. .PP \&\fIBIO_flush()\fR on an encryption \s-1BIO\s0 that is being written through is used to signal that no more data is to be encrypted: this is used to flush and possibly pad the final block through the \s-1BIO.\s0 .PP \&\fIBIO_set_cipher()\fR sets the cipher of \s-1BIO \s0\fBb\fR to \fBcipher\fR using key \fBkey\fR and \s-1IV \s0\fBiv\fR. \fBenc\fR should be set to 1 for encryption and zero for decryption. .PP When reading from an encryption \s-1BIO\s0 the final block is automatically decrypted and checked when \s-1EOF\s0 is detected. \fIBIO_get_cipher_status()\fR is a \fIBIO_ctrl()\fR macro which can be called to determine whether the decryption operation was successful. .PP \&\fIBIO_get_cipher_ctx()\fR is a \fIBIO_ctrl()\fR macro which retrieves the internal \&\s-1BIO\s0 cipher context. The retrieved context can be used in conjunction with the standard cipher routines to set it up. This is useful when \&\fIBIO_set_cipher()\fR is not flexible enough for the applications needs. .SH "NOTES" .IX Header "NOTES" When encrypting \fIBIO_flush()\fR \fBmust\fR be called to flush the final block through the \s-1BIO.\s0 If it is not then the final block will fail a subsequent decrypt. .PP When decrypting an error on the final block is signalled by a zero return value from the read operation. A successful decrypt followed by \s-1EOF\s0 will also return zero for the final read. \fIBIO_get_cipher_status()\fR should be called to determine if the decrypt was successful. .PP As always, if \fIBIO_gets()\fR or \fIBIO_puts()\fR support is needed then it can be achieved by preceding the cipher \s-1BIO\s0 with a buffering \s-1BIO.\s0 .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBIO_f_cipher()\fR returns the cipher \s-1BIO\s0 method. .PP \&\fIBIO_set_cipher()\fR does not return a value. .PP \&\fIBIO_get_cipher_status()\fR returns 1 for a successful decrypt and 0 for failure. .PP \&\fIBIO_get_cipher_ctx()\fR currently always returns 1. .SH "EXAMPLES" .IX Header "EXAMPLES" \&\s-1TBA\s0 .SH "SEE ALSO" .IX Header "SEE ALSO" \&\s-1TBA\s0 man3/SSL_CTX_use_certificate.3000064400000032276147210533270012101 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_use_certificate 3" .TH SSL_CTX_use_certificate 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_use_certificate, SSL_CTX_use_certificate_ASN1, SSL_CTX_use_certificate_file, SSL_use_certificate, SSL_use_certificate_ASN1, SSL_use_certificate_file, SSL_CTX_use_certificate_chain_file, SSL_CTX_use_PrivateKey, SSL_CTX_use_PrivateKey_ASN1, SSL_CTX_use_PrivateKey_file, SSL_CTX_use_RSAPrivateKey, SSL_CTX_use_RSAPrivateKey_ASN1, SSL_CTX_use_RSAPrivateKey_file, SSL_use_PrivateKey_file, SSL_use_PrivateKey_ASN1, SSL_use_PrivateKey, SSL_use_RSAPrivateKey, SSL_use_RSAPrivateKey_ASN1, SSL_use_RSAPrivateKey_file, SSL_CTX_check_private_key, SSL_check_private_key \- load certificate and key data .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x); \& int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len, unsigned char *d); \& int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, int type); \& int SSL_use_certificate(SSL *ssl, X509 *x); \& int SSL_use_certificate_ASN1(SSL *ssl, unsigned char *d, int len); \& int SSL_use_certificate_file(SSL *ssl, const char *file, int type); \& \& int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file); \& \& int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey); \& int SSL_CTX_use_PrivateKey_ASN1(int pk, SSL_CTX *ctx, unsigned char *d, \& long len); \& int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type); \& int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa); \& int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, unsigned char *d, long len); \& int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file, int type); \& int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey); \& int SSL_use_PrivateKey_ASN1(int pk,SSL *ssl, unsigned char *d, long len); \& int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type); \& int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa); \& int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, unsigned char *d, long len); \& int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type); \& \& int SSL_CTX_check_private_key(const SSL_CTX *ctx); \& int SSL_check_private_key(const SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions load the certificates and private keys into the \s-1SSL_CTX\s0 or \s-1SSL\s0 object, respectively. .PP The SSL_CTX_* class of functions loads the certificates and keys into the \&\s-1SSL_CTX\s0 object \fBctx\fR. The information is passed to \s-1SSL\s0 objects \fBssl\fR created from \fBctx\fR with \fISSL_new\fR\|(3) by copying, so that changes applied to \fBctx\fR do not propagate to already existing \s-1SSL\s0 objects. .PP The SSL_* class of functions only loads certificates and keys into a specific \s-1SSL\s0 object. The specific information is kept, when \&\fISSL_clear\fR\|(3) is called for this \s-1SSL\s0 object. .PP \&\fISSL_CTX_use_certificate()\fR loads the certificate \fBx\fR into \fBctx\fR, \&\fISSL_use_certificate()\fR loads \fBx\fR into \fBssl\fR. The rest of the certificates needed to form the complete certificate chain can be specified using the \&\fISSL_CTX_add_extra_chain_cert\fR\|(3) function. .PP \&\fISSL_CTX_use_certificate_ASN1()\fR loads the \s-1ASN1\s0 encoded certificate from the memory location \fBd\fR (with length \fBlen\fR) into \fBctx\fR, \&\fISSL_use_certificate_ASN1()\fR loads the \s-1ASN1\s0 encoded certificate into \fBssl\fR. .PP \&\fISSL_CTX_use_certificate_file()\fR loads the first certificate stored in \fBfile\fR into \fBctx\fR. The formatting \fBtype\fR of the certificate must be specified from the known types \s-1SSL_FILETYPE_PEM, SSL_FILETYPE_ASN1.\s0 \&\fISSL_use_certificate_file()\fR loads the certificate from \fBfile\fR into \fBssl\fR. See the \s-1NOTES\s0 section on why \fISSL_CTX_use_certificate_chain_file()\fR should be preferred. .PP \&\fISSL_CTX_use_certificate_chain_file()\fR loads a certificate chain from \&\fBfile\fR into \fBctx\fR. The certificates must be in \s-1PEM\s0 format and must be sorted starting with the subject's certificate (actual client or server certificate), followed by intermediate \s-1CA\s0 certificates if applicable, and ending at the highest level (root) \s-1CA.\s0 There is no corresponding function working on a single \s-1SSL\s0 object. .PP \&\fISSL_CTX_use_PrivateKey()\fR adds \fBpkey\fR as private key to \fBctx\fR. \&\fISSL_CTX_use_RSAPrivateKey()\fR adds the private key \fBrsa\fR of type \s-1RSA\s0 to \fBctx\fR. \fISSL_use_PrivateKey()\fR adds \fBpkey\fR as private key to \fBssl\fR; \&\fISSL_use_RSAPrivateKey()\fR adds \fBrsa\fR as private key of type \s-1RSA\s0 to \fBssl\fR. If a certificate has already been set and the private does not belong to the certificate an error is returned. To change a certificate, private key pair the new certificate needs to be set with \fISSL_use_certificate()\fR or \fISSL_CTX_use_certificate()\fR before setting the private key with \&\fISSL_CTX_use_PrivateKey()\fR or \fISSL_use_PrivateKey()\fR. .PP \&\fISSL_CTX_use_PrivateKey_ASN1()\fR adds the private key of type \fBpk\fR stored at memory location \fBd\fR (length \fBlen\fR) to \fBctx\fR. \&\fISSL_CTX_use_RSAPrivateKey_ASN1()\fR adds the private key of type \s-1RSA\s0 stored at memory location \fBd\fR (length \fBlen\fR) to \fBctx\fR. \&\fISSL_use_PrivateKey_ASN1()\fR and \fISSL_use_RSAPrivateKey_ASN1()\fR add the private key to \fBssl\fR. .PP \&\fISSL_CTX_use_PrivateKey_file()\fR adds the first private key found in \&\fBfile\fR to \fBctx\fR. The formatting \fBtype\fR of the certificate must be specified from the known types \s-1SSL_FILETYPE_PEM, SSL_FILETYPE_ASN1.\s0 \&\fISSL_CTX_use_RSAPrivateKey_file()\fR adds the first private \s-1RSA\s0 key found in \&\fBfile\fR to \fBctx\fR. \fISSL_use_PrivateKey_file()\fR adds the first private key found in \fBfile\fR to \fBssl\fR; \fISSL_use_RSAPrivateKey_file()\fR adds the first private \&\s-1RSA\s0 key found to \fBssl\fR. .PP \&\fISSL_CTX_check_private_key()\fR checks the consistency of a private key with the corresponding certificate loaded into \fBctx\fR. If more than one key/certificate pair (\s-1RSA/DSA\s0) is installed, the last item installed will be checked. If e.g. the last item was a \s-1RSA\s0 certificate or key, the \s-1RSA\s0 key/certificate pair will be checked. \fISSL_check_private_key()\fR performs the same check for \fBssl\fR. If no key/certificate was explicitly added for this \fBssl\fR, the last item added into \fBctx\fR will be checked. .SH "NOTES" .IX Header "NOTES" The internal certificate store of OpenSSL can hold several private key/certificate pairs at a time. The certificate used depends on the cipher selected, see also \fISSL_CTX_set_cipher_list\fR\|(3). .PP When reading certificates and private keys from file, files of type \&\s-1SSL_FILETYPE_ASN1 \s0(also known as \fB\s-1DER\s0\fR, binary encoding) can only contain one certificate or private key, consequently \&\fISSL_CTX_use_certificate_chain_file()\fR is only applicable to \s-1PEM\s0 formatting. Files of type \s-1SSL_FILETYPE_PEM\s0 can contain more than one item. .PP \&\fISSL_CTX_use_certificate_chain_file()\fR adds the first certificate found in the file to the certificate store. The other certificates are added to the store of chain certificates using \fISSL_CTX_add1_chain_cert\fR\|(3). Note: versions of OpenSSL before 1.0.2 only had a single certificate chain store for all certificate types, OpenSSL 1.0.2 and later have a separate chain store for each type. \fISSL_CTX_use_certificate_chain_file()\fR should be used instead of the \fISSL_CTX_use_certificate_file()\fR function in order to allow the use of complete certificate chains even when no trusted \s-1CA\s0 storage is used or when the \s-1CA\s0 issuing the certificate shall not be added to the trusted \s-1CA\s0 storage. .PP If additional certificates are needed to complete the chain during the \&\s-1TLS\s0 negotiation, \s-1CA\s0 certificates are additionally looked up in the locations of trusted \s-1CA\s0 certificates, see \&\fISSL_CTX_load_verify_locations\fR\|(3). .PP The private keys loaded from file can be encrypted. In order to successfully load encrypted keys, a function returning the passphrase must have been supplied, see \&\fISSL_CTX_set_default_passwd_cb\fR\|(3). (Certificate files might be encrypted as well from the technical point of view, it however does not make sense as the data in the certificate is considered public anyway.) .PP All of the functions to set a new certificate will replace any existing certificate of the same type that has already been set. Similarly all of the functions to set a new private key will replace any private key that has already been set. Applications should call \fISSL_CTX_check_private_key\fR\|(3) or \&\fISSL_check_private_key\fR\|(3) as appropriate after loading a new certificate and private key to confirm that the certificate and key match. .SH "RETURN VALUES" .IX Header "RETURN VALUES" On success, the functions return 1. Otherwise check out the error stack to find out the reason. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_new\fR\|(3), \fISSL_clear\fR\|(3), \&\fISSL_CTX_load_verify_locations\fR\|(3), \&\fISSL_CTX_set_default_passwd_cb\fR\|(3), \&\fISSL_CTX_set_cipher_list\fR\|(3), \&\fISSL_CTX_set_client_cert_cb\fR\|(3), \&\fISSL_CTX_add_extra_chain_cert\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" Support for \s-1DER\s0 encoded private keys (\s-1SSL_FILETYPE_ASN1\s0) in \&\fISSL_CTX_use_PrivateKey_file()\fR and \fISSL_use_PrivateKey_file()\fR was added in 0.9.8 . man3/d2i_DSAPublicKey.3000064400000015667147210533270010466 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "d2i_DSAPublicKey 3" .TH d2i_DSAPublicKey 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" d2i_DSAPublicKey, i2d_DSAPublicKey, d2i_DSAPrivateKey, i2d_DSAPrivateKey, d2i_DSA_PUBKEY, i2d_DSA_PUBKEY, d2i_DSAparams, i2d_DSAparams, d2i_DSA_SIG, i2d_DSA_SIG \- DSA key encoding and parsing functions. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& #include \& #include \& \& DSA * d2i_DSAPublicKey(DSA **a, const unsigned char **pp, long length); \& \& int i2d_DSAPublicKey(const DSA *a, unsigned char **pp); \& \& DSA * d2i_DSA_PUBKEY(DSA **a, const unsigned char **pp, long length); \& \& int i2d_DSA_PUBKEY(const DSA *a, unsigned char **pp); \& \& DSA * d2i_DSAPrivateKey(DSA **a, const unsigned char **pp, long length); \& \& int i2d_DSAPrivateKey(const DSA *a, unsigned char **pp); \& \& DSA * d2i_DSAparams(DSA **a, const unsigned char **pp, long length); \& \& int i2d_DSAparams(const DSA *a, unsigned char **pp); \& \& DSA * d2i_DSA_SIG(DSA_SIG **a, const unsigned char **pp, long length); \& \& int i2d_DSA_SIG(const DSA_SIG *a, unsigned char **pp); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fId2i_DSAPublicKey()\fR and \fIi2d_DSAPublicKey()\fR decode and encode the \s-1DSA\s0 public key components structure. .PP \&\fId2i_DSA_PUBKEY()\fR and \fIi2d_DSA_PUBKEY()\fR decode and encode an \s-1DSA\s0 public key using a SubjectPublicKeyInfo (certificate public key) structure. .PP \&\fId2i_DSAPrivateKey()\fR, \fIi2d_DSAPrivateKey()\fR decode and encode the \s-1DSA\s0 private key components. .PP \&\fId2i_DSAparams()\fR, \fIi2d_DSAparams()\fR decode and encode the \s-1DSA\s0 parameters using a \fBDss-Parms\fR structure as defined in \s-1RFC2459.\s0 .PP \&\fId2i_DSA_SIG()\fR, \fIi2d_DSA_SIG()\fR decode and encode a \s-1DSA\s0 signature using a \&\fBDss-Sig-Value\fR structure as defined in \s-1RFC2459.\s0 .PP The usage of all of these functions is similar to the \fId2i_X509()\fR and \&\fIi2d_X509()\fR described in the \fId2i_X509\fR\|(3) manual page. .SH "NOTES" .IX Header "NOTES" The \fB\s-1DSA\s0\fR structure passed to the private key encoding functions should have all the private key components present. .PP The data encoded by the private key functions is unencrypted and therefore offers no private key security. .PP The \fB\s-1DSA_PUBKEY\s0\fR functions should be used in preference to the \fBDSAPublicKey\fR functions when encoding public keys because they use a standard format. .PP The \fBDSAPublicKey\fR functions use an non standard format the actual data encoded depends on the value of the \fBwrite_params\fR field of the \fBa\fR key parameter. If \fBwrite_params\fR is zero then only the \fBpub_key\fR field is encoded as an \&\fB\s-1INTEGER\s0\fR. If \fBwrite_params\fR is 1 then a \fB\s-1SEQUENCE\s0\fR consisting of the \&\fBp\fR, \fBq\fR, \fBg\fR and \fBpub_key\fR respectively fields are encoded. .PP The \fBDSAPrivateKey\fR functions also use a non standard structure consiting consisting of a \s-1SEQUENCE\s0 containing the \fBp\fR, \fBq\fR, \fBg\fR and \fBpub_key\fR and \&\fBpriv_key\fR fields respectively. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fId2i_X509\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1TBA\s0 man3/ui.3000064400000031366147210533270006120 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ui 3" .TH ui 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" UI_new, UI_new_method, UI_free, UI_add_input_string, UI_dup_input_string, UI_add_verify_string, UI_dup_verify_string, UI_add_input_boolean, UI_dup_input_boolean, UI_add_info_string, UI_dup_info_string, UI_add_error_string, UI_dup_error_string, UI_construct_prompt, UI_add_user_data, UI_get0_user_data, UI_get0_result, UI_process, UI_ctrl, UI_set_default_method, UI_get_default_method, UI_get_method, UI_set_method, UI_OpenSSL, ERR_load_UI_strings \- New User Interface .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& typedef struct ui_st UI; \& typedef struct ui_method_st UI_METHOD; \& \& UI *UI_new(void); \& UI *UI_new_method(const UI_METHOD *method); \& void UI_free(UI *ui); \& \& int UI_add_input_string(UI *ui, const char *prompt, int flags, \& char *result_buf, int minsize, int maxsize); \& int UI_dup_input_string(UI *ui, const char *prompt, int flags, \& char *result_buf, int minsize, int maxsize); \& int UI_add_verify_string(UI *ui, const char *prompt, int flags, \& char *result_buf, int minsize, int maxsize, const char *test_buf); \& int UI_dup_verify_string(UI *ui, const char *prompt, int flags, \& char *result_buf, int minsize, int maxsize, const char *test_buf); \& int UI_add_input_boolean(UI *ui, const char *prompt, const char *action_desc, \& const char *ok_chars, const char *cancel_chars, \& int flags, char *result_buf); \& int UI_dup_input_boolean(UI *ui, const char *prompt, const char *action_desc, \& const char *ok_chars, const char *cancel_chars, \& int flags, char *result_buf); \& int UI_add_info_string(UI *ui, const char *text); \& int UI_dup_info_string(UI *ui, const char *text); \& int UI_add_error_string(UI *ui, const char *text); \& int UI_dup_error_string(UI *ui, const char *text); \& \& /* These are the possible flags. They can be or\*(Aqed together. */ \& #define UI_INPUT_FLAG_ECHO 0x01 \& #define UI_INPUT_FLAG_DEFAULT_PWD 0x02 \& \& char *UI_construct_prompt(UI *ui_method, \& const char *object_desc, const char *object_name); \& \& void *UI_add_user_data(UI *ui, void *user_data); \& void *UI_get0_user_data(UI *ui); \& \& const char *UI_get0_result(UI *ui, int i); \& \& int UI_process(UI *ui); \& \& int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f)()); \& #define UI_CTRL_PRINT_ERRORS 1 \& #define UI_CTRL_IS_REDOABLE 2 \& \& void UI_set_default_method(const UI_METHOD *meth); \& const UI_METHOD *UI_get_default_method(void); \& const UI_METHOD *UI_get_method(UI *ui); \& const UI_METHOD *UI_set_method(UI *ui, const UI_METHOD *meth); \& \& UI_METHOD *UI_OpenSSL(void); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\s-1UI\s0 stands for User Interface, and is general purpose set of routines to prompt the user for text-based information. Through user-written methods (see \fIui_create\fR\|(3)), prompting can be done in any way imaginable, be it plain text prompting, through dialog boxes or from a cell phone. .PP All the functions work through a context of the type \s-1UI. \s0 This context contains all the information needed to prompt correctly as well as a reference to a \s-1UI_METHOD,\s0 which is an ordered vector of functions that carry out the actual prompting. .PP The first thing to do is to create a \s-1UI\s0 with \fIUI_new()\fR or \fIUI_new_method()\fR, then add information to it with the UI_add or UI_dup functions. Also, user-defined random data can be passed down to the underlying method through calls to UI_add_user_data. The default \s-1UI\s0 method doesn't care about these data, but other methods might. Finally, use \fIUI_process()\fR to actually perform the prompting and \fIUI_get0_result()\fR to find the result to the prompt. .PP A \s-1UI\s0 can contain more than one prompt, which are performed in the given sequence. Each prompt gets an index number which is returned by the UI_add and UI_dup functions, and has to be used to get the corresponding result with \fIUI_get0_result()\fR. .PP The functions are as follows: .PP \&\fIUI_new()\fR creates a new \s-1UI\s0 using the default \s-1UI\s0 method. When done with this \s-1UI,\s0 it should be freed using \fIUI_free()\fR. .PP \&\fIUI_new_method()\fR creates a new \s-1UI\s0 using the given \s-1UI\s0 method. When done with this \s-1UI,\s0 it should be freed using \fIUI_free()\fR. .PP \&\fIUI_OpenSSL()\fR returns the built-in \s-1UI\s0 method (note: not the default one, since the default can be changed. See further on). This method is the most machine/OS dependent part of OpenSSL and normally generates the most problems when porting. .PP \&\fIUI_free()\fR removes a \s-1UI\s0 from memory, along with all other pieces of memory that's connected to it, like duplicated input strings, results and others. .PP \&\fIUI_add_input_string()\fR and \fIUI_add_verify_string()\fR add a prompt to the \s-1UI,\s0 as well as flags and a result buffer and the desired minimum and maximum sizes of the result, not counting the final \s-1NUL\s0 character. The given information is used to prompt for information, for example a password, and to verify a password (i.e. having the user enter it twice and check that the same string was entered twice). \fIUI_add_verify_string()\fR takes and extra argument that should be a pointer to the result buffer of the input string that it's supposed to verify, or verification will fail. .PP \&\fIUI_add_input_boolean()\fR adds a prompt to the \s-1UI\s0 that's supposed to be answered in a boolean way, with a single character for yes and a different character for no. A set of characters that can be used to cancel the prompt is given as well. The prompt itself is divided in two, one part being the descriptive text (given through the \fIprompt\fR argument) and one describing the possible answers (given through the \fIaction_desc\fR argument). .PP \&\fIUI_add_info_string()\fR and \fIUI_add_error_string()\fR add strings that are shown at the same time as the prompt for extra information or to show an error string. The difference between the two is only conceptual. With the builtin method, there's no technical difference between them. Other methods may make a difference between them, however. .PP The flags currently supported are \s-1UI_INPUT_FLAG_ECHO,\s0 which is relevant for \&\fIUI_add_input_string()\fR and will have the users response be echoed (when prompting for a password, this flag should obviously not be used, and \&\s-1UI_INPUT_FLAG_DEFAULT_PWD,\s0 which means that a default password of some sort will be used (completely depending on the application and the \s-1UI\s0 method). .PP \&\fIUI_dup_input_string()\fR, \fIUI_dup_verify_string()\fR, \fIUI_dup_input_boolean()\fR, \&\fIUI_dup_info_string()\fR and \fIUI_dup_error_string()\fR are basically the same as their UI_add counterparts, except that they make their own copies of all strings. .PP \&\fIUI_construct_prompt()\fR is a helper function that can be used to create a prompt from two pieces of information: an description and a name. The default constructor (if there is none provided by the method used) creates a string "Enter \fIdescription\fR for \fIname\fR:\*(L". With the description \*(R"pass phrase\*(L" and the file name \*(R"foo.key\*(L", that becomes \&\*(R"Enter pass phrase for foo.key:". Other methods may create whatever string and may include encodings that will be processed by the other method functions. .PP \&\fIUI_add_user_data()\fR adds a piece of memory for the method to use at any time. The builtin \s-1UI\s0 method doesn't care about this info. Note that several calls to this function doesn't add data, it replaces the previous blob with the one given as argument. .PP \&\fIUI_get0_user_data()\fR retrieves the data that has last been given to the \&\s-1UI\s0 with \fIUI_add_user_data()\fR. .PP \&\fIUI_get0_result()\fR returns a pointer to the result buffer associated with the information indexed by \fIi\fR. .PP \&\fIUI_process()\fR goes through the information given so far, does all the printing and prompting and returns. .PP \&\fIUI_ctrl()\fR adds extra control for the application author. For now, it understands two commands: \s-1UI_CTRL_PRINT_ERRORS,\s0 which makes \fIUI_process()\fR print the OpenSSL error stack as part of processing the \s-1UI,\s0 and \&\s-1UI_CTRL_IS_REDOABLE,\s0 which returns a flag saying if the used \s-1UI\s0 can be used again or not. .PP \&\fIUI_set_default_method()\fR changes the default \s-1UI\s0 method to the one given. .PP \&\fIUI_get_default_method()\fR returns a pointer to the current default \s-1UI\s0 method. .PP \&\fIUI_get_method()\fR returns the \s-1UI\s0 method associated with a given \s-1UI.\s0 .PP \&\fIUI_set_method()\fR changes the \s-1UI\s0 method associated with a given \s-1UI.\s0 .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIui_create\fR\|(3), \fIui_compat\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" The \s-1UI\s0 section was first introduced in OpenSSL 0.9.7. .SH "AUTHOR" .IX Header "AUTHOR" Richard Levitte (richard@levitte.org) for the OpenSSL project (http://www.openssl.org). man3/BN_cmp.3000064400000012446147210533270006637 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BN_cmp 3" .TH BN_cmp 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BN_cmp, BN_ucmp, BN_is_zero, BN_is_one, BN_is_word, BN_is_odd \- BIGNUM comparison and test functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int BN_cmp(BIGNUM *a, BIGNUM *b); \& int BN_ucmp(BIGNUM *a, BIGNUM *b); \& \& int BN_is_zero(BIGNUM *a); \& int BN_is_one(BIGNUM *a); \& int BN_is_word(BIGNUM *a, BN_ULONG w); \& int BN_is_odd(BIGNUM *a); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBN_cmp()\fR compares the numbers \fBa\fR and \fBb\fR. \fIBN_ucmp()\fR compares their absolute values. .PP \&\fIBN_is_zero()\fR, \fIBN_is_one()\fR and \fIBN_is_word()\fR test if \fBa\fR equals 0, 1, or \fBw\fR respectively. \fIBN_is_odd()\fR tests if a is odd. .PP \&\fIBN_is_zero()\fR, \fIBN_is_one()\fR, \fIBN_is_word()\fR and \fIBN_is_odd()\fR are macros. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBN_cmp()\fR returns \-1 if \fBa\fR < \fBb\fR, 0 if \fBa\fR == \fBb\fR and 1 if \&\fBa\fR > \fBb\fR. \fIBN_ucmp()\fR is the same using the absolute values of \fBa\fR and \fBb\fR. .PP \&\fIBN_is_zero()\fR, \fIBN_is_one()\fR \fIBN_is_word()\fR and \fIBN_is_odd()\fR return 1 if the condition is true, 0 otherwise. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIbn\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIBN_cmp()\fR, \fIBN_ucmp()\fR, \fIBN_is_zero()\fR, \fIBN_is_one()\fR and \fIBN_is_word()\fR are available in all versions of SSLeay and OpenSSL. \&\fIBN_is_odd()\fR was added in SSLeay 0.8. man3/blowfish.3000064400000022130147210533270007305 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "blowfish 3" .TH blowfish 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" blowfish, BF_set_key, BF_encrypt, BF_decrypt, BF_ecb_encrypt, BF_cbc_encrypt, BF_cfb64_encrypt, BF_ofb64_encrypt, BF_options \- Blowfish encryption .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void BF_set_key(BF_KEY *key, int len, const unsigned char *data); \& \& void BF_ecb_encrypt(const unsigned char *in, unsigned char *out, \& BF_KEY *key, int enc); \& void BF_cbc_encrypt(const unsigned char *in, unsigned char *out, \& long length, BF_KEY *schedule, unsigned char *ivec, int enc); \& void BF_cfb64_encrypt(const unsigned char *in, unsigned char *out, \& long length, BF_KEY *schedule, unsigned char *ivec, int *num, \& int enc); \& void BF_ofb64_encrypt(const unsigned char *in, unsigned char *out, \& long length, BF_KEY *schedule, unsigned char *ivec, int *num); \& const char *BF_options(void); \& \& void BF_encrypt(BF_LONG *data,const BF_KEY *key); \& void BF_decrypt(BF_LONG *data,const BF_KEY *key); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This library implements the Blowfish cipher, which was invented and described by Counterpane (see http://www.counterpane.com/blowfish.html ). .PP Blowfish is a block cipher that operates on 64 bit (8 byte) blocks of data. It uses a variable size key, but typically, 128 bit (16 byte) keys are considered good for strong encryption. Blowfish can be used in the same modes as \s-1DES \s0(see \fIdes_modes\fR\|(7)). Blowfish is currently one of the faster block ciphers. It is quite a bit faster than \s-1DES,\s0 and much faster than \s-1IDEA\s0 or \s-1RC2.\s0 .PP Blowfish consists of a key setup phase and the actual encryption or decryption phase. .PP \&\fIBF_set_key()\fR sets up the \fB\s-1BF_KEY\s0\fR \fBkey\fR using the \fBlen\fR bytes long key at \fBdata\fR. .PP \&\fIBF_ecb_encrypt()\fR is the basic Blowfish encryption and decryption function. It encrypts or decrypts the first 64 bits of \fBin\fR using the key \fBkey\fR, putting the result in \fBout\fR. \fBenc\fR decides if encryption (\fB\s-1BF_ENCRYPT\s0\fR) or decryption (\fB\s-1BF_DECRYPT\s0\fR) shall be performed. The vector pointed at by \&\fBin\fR and \fBout\fR must be 64 bits in length, no less. If they are larger, everything after the first 64 bits is ignored. .PP The mode functions \fIBF_cbc_encrypt()\fR, \fIBF_cfb64_encrypt()\fR and \fIBF_ofb64_encrypt()\fR all operate on variable length data. They all take an initialization vector \&\fBivec\fR which needs to be passed along into the next call of the same function for the same message. \fBivec\fR may be initialized with anything, but the recipient needs to know what it was initialized with, or it won't be able to decrypt. Some programs and protocols simplify this, like \s-1SSH,\s0 where \&\fBivec\fR is simply initialized to zero. \&\fIBF_cbc_encrypt()\fR operates on data that is a multiple of 8 bytes long, while \&\fIBF_cfb64_encrypt()\fR and \fIBF_ofb64_encrypt()\fR are used to encrypt an variable number of bytes (the amount does not have to be an exact multiple of 8). The purpose of the latter two is to simulate stream ciphers, and therefore, they need the parameter \fBnum\fR, which is a pointer to an integer where the current offset in \fBivec\fR is stored between calls. This integer must be initialized to zero when \fBivec\fR is initialized. .PP \&\fIBF_cbc_encrypt()\fR is the Cipher Block Chaining function for Blowfish. It encrypts or decrypts the 64 bits chunks of \fBin\fR using the key \fBschedule\fR, putting the result in \fBout\fR. \fBenc\fR decides if encryption (\s-1BF_ENCRYPT\s0) or decryption (\s-1BF_DECRYPT\s0) shall be performed. \fBivec\fR must point at an 8 byte long initialization vector. .PP \&\fIBF_cfb64_encrypt()\fR is the \s-1CFB\s0 mode for Blowfish with 64 bit feedback. It encrypts or decrypts the bytes in \fBin\fR using the key \fBschedule\fR, putting the result in \fBout\fR. \fBenc\fR decides if encryption (\fB\s-1BF_ENCRYPT\s0\fR) or decryption (\fB\s-1BF_DECRYPT\s0\fR) shall be performed. \fBivec\fR must point at an 8 byte long initialization vector. \fBnum\fR must point at an integer which must be initially zero. .PP \&\fIBF_ofb64_encrypt()\fR is the \s-1OFB\s0 mode for Blowfish with 64 bit feedback. It uses the same parameters as \fIBF_cfb64_encrypt()\fR, which must be initialized the same way. .PP \&\fIBF_encrypt()\fR and \fIBF_decrypt()\fR are the lowest level functions for Blowfish encryption. They encrypt/decrypt the first 64 bits of the vector pointed by \&\fBdata\fR, using the key \fBkey\fR. These functions should not be used unless you implement 'modes' of Blowfish. The alternative is to use \fIBF_ecb_encrypt()\fR. If you still want to use these functions, you should be aware that they take each 32\-bit chunk in host-byte order, which is little-endian on little-endian platforms and big-endian on big-endian ones. .SH "RETURN VALUES" .IX Header "RETURN VALUES" None of the functions presented here return any value. .SH "NOTE" .IX Header "NOTE" Applications should use the higher level functions \&\fIEVP_EncryptInit\fR\|(3) etc. instead of calling the blowfish functions directly. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdes_modes\fR\|(7) .SH "HISTORY" .IX Header "HISTORY" The Blowfish functions are available in all versions of SSLeay and OpenSSL. man3/d2i_X509_CRL.3000064400000011474147210533270007404 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "d2i_X509_CRL 3" .TH d2i_X509_CRL 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" d2i_X509_CRL, i2d_X509_CRL, d2i_X509_CRL_bio, d2i_X509_CRL_fp, i2d_X509_CRL_bio, i2d_X509_CRL_fp \- PKCS#10 certificate request functions. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& X509_CRL *d2i_X509_CRL(X509_CRL **a, const unsigned char **pp, long length); \& int i2d_X509_CRL(X509_CRL *a, unsigned char **pp); \& \& X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **x); \& X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **x); \& \& int i2d_X509_CRL_bio(BIO *bp, X509_CRL *x); \& int i2d_X509_CRL_fp(FILE *fp, X509_CRL *x); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions decode and encode an X509 \s-1CRL \s0(certificate revocation list). .PP Othewise the functions behave in a similar way to \fId2i_X509()\fR and \fIi2d_X509()\fR described in the \fId2i_X509\fR\|(3) manual page. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fId2i_X509\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1TBA\s0 man3/EVP_PKEY_meth_new.3000064400000061357147210533270010656 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EVP_PKEY_meth_new 3" .TH EVP_PKEY_meth_new 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EVP_PKEY_meth_new, EVP_PKEY_meth_free, EVP_PKEY_meth_copy, EVP_PKEY_meth_find, EVP_PKEY_meth_add0, EVP_PKEY_METHOD, EVP_PKEY_meth_set_init, EVP_PKEY_meth_set_copy, EVP_PKEY_meth_set_cleanup, EVP_PKEY_meth_set_paramgen, EVP_PKEY_meth_set_keygen, EVP_PKEY_meth_set_sign, EVP_PKEY_meth_set_verify, EVP_PKEY_meth_set_verify_recover, EVP_PKEY_meth_set_signctx, EVP_PKEY_meth_set_verifyctx, EVP_PKEY_meth_set_encrypt, EVP_PKEY_meth_set_decrypt, EVP_PKEY_meth_set_derive, EVP_PKEY_meth_set_ctrl, EVP_PKEY_meth_get_init, EVP_PKEY_meth_get_copy, EVP_PKEY_meth_get_cleanup, EVP_PKEY_meth_get_paramgen, EVP_PKEY_meth_get_keygen, EVP_PKEY_meth_get_sign, EVP_PKEY_meth_get_verify, EVP_PKEY_meth_get_verify_recover, EVP_PKEY_meth_get_signctx, EVP_PKEY_meth_get_verifyctx, EVP_PKEY_meth_get_encrypt, EVP_PKEY_meth_get_decrypt, EVP_PKEY_meth_get_derive, EVP_PKEY_meth_get_ctrl \&\- manipulating EVP_PKEY_METHOD structure .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& typedef struct evp_pkey_method_st EVP_PKEY_METHOD; \& \& EVP_PKEY_METHOD *EVP_PKEY_meth_new(int id, int flags); \& void EVP_PKEY_meth_free(EVP_PKEY_METHOD *pmeth); \& void EVP_PKEY_meth_copy(EVP_PKEY_METHOD *dst, const EVP_PKEY_METHOD *src); \& const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type); \& int EVP_PKEY_meth_add0(const EVP_PKEY_METHOD *pmeth); \& \& void EVP_PKEY_meth_set_init(EVP_PKEY_METHOD *pmeth, \& int (*init) (EVP_PKEY_CTX *ctx)); \& void EVP_PKEY_meth_set_copy(EVP_PKEY_METHOD *pmeth, \& int (*copy) (EVP_PKEY_CTX *dst, \& EVP_PKEY_CTX *src)); \& void EVP_PKEY_meth_set_cleanup(EVP_PKEY_METHOD *pmeth, \& void (*cleanup) (EVP_PKEY_CTX *ctx)); \& void EVP_PKEY_meth_set_paramgen(EVP_PKEY_METHOD *pmeth, \& int (*paramgen_init) (EVP_PKEY_CTX *ctx), \& int (*paramgen) (EVP_PKEY_CTX *ctx, \& EVP_PKEY *pkey)); \& void EVP_PKEY_meth_set_keygen(EVP_PKEY_METHOD *pmeth, \& int (*keygen_init) (EVP_PKEY_CTX *ctx), \& int (*keygen) (EVP_PKEY_CTX *ctx, \& EVP_PKEY *pkey)); \& void EVP_PKEY_meth_set_sign(EVP_PKEY_METHOD *pmeth, \& int (*sign_init) (EVP_PKEY_CTX *ctx), \& int (*sign) (EVP_PKEY_CTX *ctx, \& unsigned char *sig, size_t *siglen, \& const unsigned char *tbs, \& size_t tbslen)); \& void EVP_PKEY_meth_set_verify(EVP_PKEY_METHOD *pmeth, \& int (*verify_init) (EVP_PKEY_CTX *ctx), \& int (*verify) (EVP_PKEY_CTX *ctx, \& const unsigned char *sig, \& size_t siglen, \& const unsigned char *tbs, \& size_t tbslen)); \& void EVP_PKEY_meth_set_verify_recover(EVP_PKEY_METHOD *pmeth, \& int (*verify_recover_init) (EVP_PKEY_CTX \& *ctx), \& int (*verify_recover) (EVP_PKEY_CTX \& *ctx, \& unsigned char \& *sig, \& size_t *siglen, \& const unsigned \& char *tbs, \& size_t tbslen)); \& void EVP_PKEY_meth_set_signctx(EVP_PKEY_METHOD *pmeth, \& int (*signctx_init) (EVP_PKEY_CTX *ctx, \& EVP_MD_CTX *mctx), \& int (*signctx) (EVP_PKEY_CTX *ctx, \& unsigned char *sig, \& size_t *siglen, \& EVP_MD_CTX *mctx)); \& void EVP_PKEY_meth_set_verifyctx(EVP_PKEY_METHOD *pmeth, \& int (*verifyctx_init) (EVP_PKEY_CTX *ctx, \& EVP_MD_CTX *mctx), \& int (*verifyctx) (EVP_PKEY_CTX *ctx, \& const unsigned char *sig, \& int siglen, \& EVP_MD_CTX *mctx)); \& void EVP_PKEY_meth_set_encrypt(EVP_PKEY_METHOD *pmeth, \& int (*encrypt_init) (EVP_PKEY_CTX *ctx), \& int (*encryptfn) (EVP_PKEY_CTX *ctx, \& unsigned char *out, \& size_t *outlen, \& const unsigned char *in, \& size_t inlen)); \& void EVP_PKEY_meth_set_decrypt(EVP_PKEY_METHOD *pmeth, \& int (*decrypt_init) (EVP_PKEY_CTX *ctx), \& int (*decrypt) (EVP_PKEY_CTX *ctx, \& unsigned char *out, \& size_t *outlen, \& const unsigned char *in, \& size_t inlen)); \& void EVP_PKEY_meth_set_derive(EVP_PKEY_METHOD *pmeth, \& int (*derive_init) (EVP_PKEY_CTX *ctx), \& int (*derive) (EVP_PKEY_CTX *ctx, \& unsigned char *key, \& size_t *keylen)); \& void EVP_PKEY_meth_set_ctrl(EVP_PKEY_METHOD *pmeth, \& int (*ctrl) (EVP_PKEY_CTX *ctx, int type, int p1, \& void *p2), \& int (*ctrl_str) (EVP_PKEY_CTX *ctx, \& const char *type, \& const char *value)); \& \& void EVP_PKEY_meth_get_init(EVP_PKEY_METHOD *pmeth, \& int (**pinit) (EVP_PKEY_CTX *ctx)); \& void EVP_PKEY_meth_get_copy(EVP_PKEY_METHOD *pmeth, \& int (**pcopy) (EVP_PKEY_CTX *dst, \& EVP_PKEY_CTX *src)); \& void EVP_PKEY_meth_get_cleanup(EVP_PKEY_METHOD *pmeth, \& void (**pcleanup) (EVP_PKEY_CTX *ctx)); \& void EVP_PKEY_meth_get_paramgen(EVP_PKEY_METHOD *pmeth, \& int (**pparamgen_init) (EVP_PKEY_CTX *ctx), \& int (**pparamgen) (EVP_PKEY_CTX *ctx, \& EVP_PKEY *pkey)); \& void EVP_PKEY_meth_get_keygen(EVP_PKEY_METHOD *pmeth, \& int (**pkeygen_init) (EVP_PKEY_CTX *ctx), \& int (**pkeygen) (EVP_PKEY_CTX *ctx, \& EVP_PKEY *pkey)); \& void EVP_PKEY_meth_get_sign(EVP_PKEY_METHOD *pmeth, \& int (**psign_init) (EVP_PKEY_CTX *ctx), \& int (**psign) (EVP_PKEY_CTX *ctx, \& unsigned char *sig, size_t *siglen, \& const unsigned char *tbs, \& size_t tbslen)); \& void EVP_PKEY_meth_get_verify(EVP_PKEY_METHOD *pmeth, \& int (**pverify_init) (EVP_PKEY_CTX *ctx), \& int (**pverify) (EVP_PKEY_CTX *ctx, \& const unsigned char *sig, \& size_t siglen, \& const unsigned char *tbs, \& size_t tbslen)); \& void EVP_PKEY_meth_get_verify_recover(EVP_PKEY_METHOD *pmeth, \& int (**pverify_recover_init) (EVP_PKEY_CTX \& *ctx), \& int (**pverify_recover) (EVP_PKEY_CTX \& *ctx, \& unsigned char \& *sig, \& size_t *siglen, \& const unsigned \& char *tbs, \& size_t tbslen)); \& void EVP_PKEY_meth_get_signctx(EVP_PKEY_METHOD *pmeth, \& int (**psignctx_init) (EVP_PKEY_CTX *ctx, \& EVP_MD_CTX *mctx), \& int (**psignctx) (EVP_PKEY_CTX *ctx, \& unsigned char *sig, \& size_t *siglen, \& EVP_MD_CTX *mctx)); \& void EVP_PKEY_meth_get_verifyctx(EVP_PKEY_METHOD *pmeth, \& int (**pverifyctx_init) (EVP_PKEY_CTX *ctx, \& EVP_MD_CTX *mctx), \& int (**pverifyctx) (EVP_PKEY_CTX *ctx, \& const unsigned char *sig, \& int siglen, \& EVP_MD_CTX *mctx)); \& void EVP_PKEY_meth_get_encrypt(EVP_PKEY_METHOD *pmeth, \& int (**pencrypt_init) (EVP_PKEY_CTX *ctx), \& int (**pencryptfn) (EVP_PKEY_CTX *ctx, \& unsigned char *out, \& size_t *outlen, \& const unsigned char *in, \& size_t inlen)); \& void EVP_PKEY_meth_get_decrypt(EVP_PKEY_METHOD *pmeth, \& int (**pdecrypt_init) (EVP_PKEY_CTX *ctx), \& int (**pdecrypt) (EVP_PKEY_CTX *ctx, \& unsigned char *out, \& size_t *outlen, \& const unsigned char *in, \& size_t inlen)); \& void EVP_PKEY_meth_get_derive(EVP_PKEY_METHOD *pmeth, \& int (**pderive_init) (EVP_PKEY_CTX *ctx), \& int (**pderive) (EVP_PKEY_CTX *ctx, \& unsigned char *key, \& size_t *keylen)); \& void EVP_PKEY_meth_get_ctrl(EVP_PKEY_METHOD *pmeth, \& int (**pctrl) (EVP_PKEY_CTX *ctx, int type, int p1, \& void *p2), \& int (**pctrl_str) (EVP_PKEY_CTX *ctx, \& const char *type, \& const char *value)); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fB\s-1EVP_PKEY_METHOD\s0\fR is a structure which holds a set of methods for a specific public key cryptographic algorithm. Those methods are usually used to perform different jobs, such as generating a key, signing or verifying, encrypting or decrypting, etc. .PP There are two places where the \fB\s-1EVP_PKEY_METHOD\s0\fR objects are stored: one is a built-in static array representing the standard methods for different algorithms, and the other one is a stack of user-defined application-specific methods, which can be manipulated by using \fIEVP_PKEY_meth_add0\fR\|(3). .PP The \fB\s-1EVP_PKEY_METHOD\s0\fR objects are usually referenced by \fB\s-1EVP_PKEY_CTX\s0\fR objects. .SS "Methods" .IX Subsection "Methods" The methods are the underlying implementations of a particular public key algorithm present by the \fB\s-1EVP_PKEY_CTX\s0\fR object. .PP .Vb 3 \& int (*init) (EVP_PKEY_CTX *ctx); \& int (*copy) (EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src); \& void (*cleanup) (EVP_PKEY_CTX *ctx); .Ve .PP The \fIinit()\fR method is called to initialize algorithm-specific data when a new \&\fB\s-1EVP_PKEY_CTX\s0\fR is created. As opposed to \fIinit()\fR, the \fIcleanup()\fR method is called when an \fB\s-1EVP_PKEY_CTX\s0\fR is freed. The \fIcopy()\fR method is called when an \fB\s-1EVP_PKEY_CTX\s0\fR is being duplicated. Refer to \fIEVP_PKEY_CTX_new\fR\|(3), \fIEVP_PKEY_CTX_new_id\fR\|(3), \&\fIEVP_PKEY_CTX_free\fR\|(3) and \fIEVP_PKEY_CTX_dup\fR\|(3). .PP .Vb 2 \& int (*paramgen_init) (EVP_PKEY_CTX *ctx); \& int (*paramgen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey); .Ve .PP The \fIparamgen_init()\fR and \fIparamgen()\fR methods deal with key parameter generation. They are called by \fIEVP_PKEY_paramgen_init\fR\|(3) and \fIEVP_PKEY_paramgen\fR\|(3) to handle the parameter generation process. .PP .Vb 2 \& int (*keygen_init) (EVP_PKEY_CTX *ctx); \& int (*keygen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey); .Ve .PP The \fIkeygen_init()\fR and \fIkeygen()\fR methods are used to generate the actual key for the specified algorithm. They are called by \fIEVP_PKEY_keygen_init\fR\|(3) and \&\fIEVP_PKEY_keygen\fR\|(3). .PP .Vb 3 \& int (*sign_init) (EVP_PKEY_CTX *ctx); \& int (*sign) (EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, \& const unsigned char *tbs, size_t tbslen); .Ve .PP The \fIsign_init()\fR and \fIsign()\fR methods are used to generate the signature of a piece of data using a private key. They are called by \fIEVP_PKEY_sign_init\fR\|(3) and \fIEVP_PKEY_sign\fR\|(3). .PP .Vb 4 \& int (*verify_init) (EVP_PKEY_CTX *ctx); \& int (*verify) (EVP_PKEY_CTX *ctx, \& const unsigned char *sig, size_t siglen, \& const unsigned char *tbs, size_t tbslen); .Ve .PP The \fIverify_init()\fR and \fIverify()\fR methods are used to verify whether a signature is valid. They are called by \fIEVP_PKEY_verify_init\fR\|(3) and \fIEVP_PKEY_verify\fR\|(3). .PP .Vb 4 \& int (*verify_recover_init) (EVP_PKEY_CTX *ctx); \& int (*verify_recover) (EVP_PKEY_CTX *ctx, \& unsigned char *rout, size_t *routlen, \& const unsigned char *sig, size_t siglen); .Ve .PP The \fIverify_recover_init()\fR and \fIverify_recover()\fR methods are used to verify a signature and then recover the digest from the signature (for instance, a signature that was generated by \s-1RSA\s0 signing algorithm). They are called by \&\fIEVP_PKEY_verify_recover_init\fR\|(3) and \fIEVP_PKEY_verify_recover\fR\|(3). .PP .Vb 3 \& int (*signctx_init) (EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx); \& int (*signctx) (EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen, \& EVP_MD_CTX *mctx); .Ve .PP The \fIsignctx_init()\fR and \fIsignctx()\fR methods are used to sign a digest present by a \fB\s-1EVP_MD_CTX\s0\fR object. They are called by the EVP_DigestSign functions. See \&\fIEVP_DigestSignInit\fR\|(3) for detail. .PP .Vb 3 \& int (*verifyctx_init) (EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx); \& int (*verifyctx) (EVP_PKEY_CTX *ctx, const unsigned char *sig, int siglen, \& EVP_MD_CTX *mctx); .Ve .PP The \fIverifyctx_init()\fR and \fIverifyctx()\fR methods are used to verify a signature against the data in a \fB\s-1EVP_MD_CTX\s0\fR object. They are called by the various EVP_DigestVerify functions. See \fIEVP_DigestVerifyInit\fR\|(3) for detail. .PP .Vb 3 \& int (*encrypt_init) (EVP_PKEY_CTX *ctx); \& int (*encrypt) (EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, \& const unsigned char *in, size_t inlen); .Ve .PP The \fIencrypt_init()\fR and \fIencrypt()\fR methods are used to encrypt a piece of data. They are called by \fIEVP_PKEY_encrypt_init\fR\|(3) and \fIEVP_PKEY_encrypt\fR\|(3). .PP .Vb 3 \& int (*decrypt_init) (EVP_PKEY_CTX *ctx); \& int (*decrypt) (EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen, \& const unsigned char *in, size_t inlen); .Ve .PP The \fIdecrypt_init()\fR and \fIdecrypt()\fR methods are used to decrypt a piece of data. They are called by \fIEVP_PKEY_decrypt_init\fR\|(3) and \fIEVP_PKEY_decrypt\fR\|(3). .PP .Vb 2 \& int (*derive_init) (EVP_PKEY_CTX *ctx); \& int (*derive) (EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen); .Ve .PP The \fIderive_init()\fR and \fIderive()\fR methods are used to derive the shared secret from a public key algorithm (for instance, the \s-1DH\s0 algorithm). They are called by \&\fIEVP_PKEY_derive_init\fR\|(3) and \fIEVP_PKEY_derive\fR\|(3). .PP .Vb 2 \& int (*ctrl) (EVP_PKEY_CTX *ctx, int type, int p1, void *p2); \& int (*ctrl_str) (EVP_PKEY_CTX *ctx, const char *type, const char *value); .Ve .PP The \fIctrl()\fR and \fIctrl_str()\fR methods are used to adjust algorithm-specific settings. See \fIEVP_PKEY_CTX_ctrl\fR\|(3) and related functions for detail. .PP .Vb 5 \& int (*digestsign) (EVP_MD_CTX *ctx, unsigned char *sig, size_t *siglen, \& const unsigned char *tbs, size_t tbslen); \& int (*digestverify) (EVP_MD_CTX *ctx, const unsigned char *sig, \& size_t siglen, const unsigned char *tbs, \& size_t tbslen); .Ve .PP The \fIdigestsign()\fR and \fIdigestverify()\fR methods are used to generate or verify a signature in a one-shot mode. They could be called by \fIEVP_DigetSign\fR\|(3) and \fIEVP_DigestVerify\fR\|(3). .SS "Functions" .IX Subsection "Functions" \&\fIEVP_PKEY_meth_new()\fR creates and returns a new \fB\s-1EVP_PKEY_METHOD\s0\fR object, and associates the given \fBid\fR and \fBflags\fR. The following flags are supported: .PP .Vb 2 \& EVP_PKEY_FLAG_AUTOARGLEN \& EVP_PKEY_FLAG_SIGCTX_CUSTOM .Ve .PP If an \fB\s-1EVP_PKEY_METHOD\s0\fR is set with the \fB\s-1EVP_PKEY_FLAG_AUTOARGLEN\s0\fR flag, the maximum size of the output buffer will be automatically calculated or checked in corresponding \s-1EVP\s0 methods by the \s-1EVP\s0 framework. Thus the implementations of these methods don't need to care about handling the case of returning output buffer size by themselves. For details on the output buffer size, refer to \&\fIEVP_PKEY_sign\fR\|(3). .PP The \fB\s-1EVP_PKEY_FLAG_SIGCTX_CUSTOM\s0\fR is used to indicate the \fIsignctx()\fR method of an \fB\s-1EVP_PKEY_METHOD\s0\fR is always called by the \s-1EVP\s0 framework while doing a digest signing operation by calling \fIEVP_DigestSignFinal\fR\|(3). .PP \&\fIEVP_PKEY_meth_free()\fR frees an existing \fB\s-1EVP_PKEY_METHOD\s0\fR pointed by \&\fBpmeth\fR. .PP \&\fIEVP_PKEY_meth_copy()\fR copies an \fB\s-1EVP_PKEY_METHOD\s0\fR object from \fBsrc\fR to \fBdst\fR. .PP \&\fIEVP_PKEY_meth_find()\fR finds an \fB\s-1EVP_PKEY_METHOD\s0\fR object with the \fBid\fR. This function first searches through the user-defined method objects and then the built-in objects. .PP \&\fIEVP_PKEY_meth_add0()\fR adds \fBpmeth\fR to the user defined stack of methods. .PP The EVP_PKEY_meth_set functions set the corresponding fields of \&\fB\s-1EVP_PKEY_METHOD\s0\fR structure with the arguments passed. .PP The EVP_PKEY_meth_get functions get the corresponding fields of \&\fB\s-1EVP_PKEY_METHOD\s0\fR structure to the arguments provided. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIEVP_PKEY_meth_new()\fR returns a pointer to a new \fB\s-1EVP_PKEY_METHOD\s0\fR object or returns \s-1NULL\s0 on error. .PP \&\fIEVP_PKEY_meth_free()\fR and \fIEVP_PKEY_meth_copy()\fR do not return values. .PP \&\fIEVP_PKEY_meth_find()\fR returns a pointer to the found \fB\s-1EVP_PKEY_METHOD\s0\fR object or returns \s-1NULL\s0 if not found. .PP \&\fIEVP_PKEY_meth_add0()\fR returns 1 if method is added successfully or 0 if an error occurred. .PP All EVP_PKEY_meth_set and EVP_PKEY_meth_get functions have no return values. For the 'get' functions, function pointers are returned by arguments. .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. .PP Licensed under the OpenSSL license (the \*(L"License\*(R"). You may not use this file except in compliance with the License. You can obtain a copy in the file \s-1LICENSE\s0 in the source distribution or at . man3/BIO_f_ssl.3000064400000036165147210533270007304 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BIO_f_ssl 3" .TH BIO_f_ssl 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BIO_f_ssl, BIO_set_ssl, BIO_get_ssl, BIO_set_ssl_mode, BIO_set_ssl_renegotiate_bytes, BIO_get_num_renegotiates, BIO_set_ssl_renegotiate_timeout, BIO_new_ssl, BIO_new_ssl_connect, BIO_new_buffer_ssl_connect, BIO_ssl_copy_session_id, BIO_ssl_shutdown \- SSL BIO .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& #include \& #include \& \& BIO_METHOD *BIO_f_ssl(void); \& \& #define BIO_set_ssl(b,ssl,c) BIO_ctrl(b,BIO_C_SET_SSL,c,(char *)ssl) \& #define BIO_get_ssl(b,sslp) BIO_ctrl(b,BIO_C_GET_SSL,0,(char *)sslp) \& #define BIO_set_ssl_mode(b,client) BIO_ctrl(b,BIO_C_SSL_MODE,client,NULL) \& #define BIO_set_ssl_renegotiate_bytes(b,num) \e \& BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_BYTES,num,NULL); \& #define BIO_set_ssl_renegotiate_timeout(b,seconds) \e \& BIO_ctrl(b,BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT,seconds,NULL); \& #define BIO_get_num_renegotiates(b) \e \& BIO_ctrl(b,BIO_C_SET_SSL_NUM_RENEGOTIATES,0,NULL); \& \& BIO *BIO_new_ssl(SSL_CTX *ctx,int client); \& BIO *BIO_new_ssl_connect(SSL_CTX *ctx); \& BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx); \& int BIO_ssl_copy_session_id(BIO *to,BIO *from); \& void BIO_ssl_shutdown(BIO *bio); \& \& #define BIO_do_handshake(b) BIO_ctrl(b,BIO_C_DO_STATE_MACHINE,0,NULL) .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBIO_f_ssl()\fR returns the \s-1SSL BIO\s0 method. This is a filter \s-1BIO\s0 which is a wrapper round the OpenSSL \s-1SSL\s0 routines adding a \s-1BIO \s0\*(L"flavour\*(R" to \&\s-1SSL I/O. \s0 .PP I/O performed on an \s-1SSL BIO\s0 communicates using the \s-1SSL\s0 protocol with the SSLs read and write BIOs. If an \s-1SSL\s0 connection is not established then an attempt is made to establish one on the first I/O call. .PP If a \s-1BIO\s0 is appended to an \s-1SSL BIO\s0 using \fIBIO_push()\fR it is automatically used as the \s-1SSL\s0 BIOs read and write BIOs. .PP Calling \fIBIO_reset()\fR on an \s-1SSL BIO\s0 closes down any current \s-1SSL\s0 connection by calling \fISSL_shutdown()\fR. \fIBIO_reset()\fR is then sent to the next \s-1BIO\s0 in the chain: this will typically disconnect the underlying transport. The \s-1SSL BIO\s0 is then reset to the initial accept or connect state. .PP If the close flag is set when an \s-1SSL BIO\s0 is freed then the internal \&\s-1SSL\s0 structure is also freed using \fISSL_free()\fR. .PP \&\fIBIO_set_ssl()\fR sets the internal \s-1SSL\s0 pointer of \s-1BIO \s0\fBb\fR to \fBssl\fR using the close flag \fBc\fR. .PP \&\fIBIO_get_ssl()\fR retrieves the \s-1SSL\s0 pointer of \s-1BIO \s0\fBb\fR, it can then be manipulated using the standard \s-1SSL\s0 library functions. .PP \&\fIBIO_set_ssl_mode()\fR sets the \s-1SSL BIO\s0 mode to \fBclient\fR. If \fBclient\fR is 1 client mode is set. If \fBclient\fR is 0 server mode is set. .PP \&\fIBIO_set_ssl_renegotiate_bytes()\fR sets the renegotiate byte count to \fBnum\fR. When set after every \fBnum\fR bytes of I/O (read and write) the \s-1SSL\s0 session is automatically renegotiated. \fBnum\fR must be at least 512 bytes. .PP \&\fIBIO_set_ssl_renegotiate_timeout()\fR sets the renegotiate timeout to \&\fBseconds\fR. When the renegotiate timeout elapses the session is automatically renegotiated. .PP \&\fIBIO_get_num_renegotiates()\fR returns the total number of session renegotiations due to I/O or timeout. .PP \&\fIBIO_new_ssl()\fR allocates an \s-1SSL BIO\s0 using \s-1SSL_CTX \s0\fBctx\fR and using client mode if \fBclient\fR is non zero. .PP \&\fIBIO_new_ssl_connect()\fR creates a new \s-1BIO\s0 chain consisting of an \&\s-1SSL BIO \s0(using \fBctx\fR) followed by a connect \s-1BIO.\s0 .PP \&\fIBIO_new_buffer_ssl_connect()\fR creates a new \s-1BIO\s0 chain consisting of a buffering \s-1BIO,\s0 an \s-1SSL BIO \s0(using \fBctx\fR) and a connect \&\s-1BIO.\s0 .PP \&\fIBIO_ssl_copy_session_id()\fR copies an \s-1SSL\s0 session id between \&\s-1BIO\s0 chains \fBfrom\fR and \fBto\fR. It does this by locating the \&\s-1SSL\s0 BIOs in each chain and calling \fISSL_copy_session_id()\fR on the internal \s-1SSL\s0 pointer. .PP \&\fIBIO_ssl_shutdown()\fR closes down an \s-1SSL\s0 connection on \s-1BIO\s0 chain \fBbio\fR. It does this by locating the \s-1SSL BIO\s0 in the chain and calling \fISSL_shutdown()\fR on its internal \s-1SSL\s0 pointer. .PP \&\fIBIO_do_handshake()\fR attempts to complete an \s-1SSL\s0 handshake on the supplied \s-1BIO\s0 and establish the \s-1SSL\s0 connection. It returns 1 if the connection was established successfully. A zero or negative value is returned if the connection could not be established, the call \fIBIO_should_retry()\fR should be used for non blocking connect BIOs to determine if the call should be retried. If an \s-1SSL\s0 connection has already been established this call has no effect. .SH "NOTES" .IX Header "NOTES" \&\s-1SSL\s0 BIOs are exceptional in that if the underlying transport is non blocking they can still request a retry in exceptional circumstances. Specifically this will happen if a session renegotiation takes place during a \fIBIO_read()\fR operation, one case where this happens is when step up occurs. .PP In OpenSSL 0.9.6 and later the \s-1SSL\s0 flag \s-1SSL_AUTO_RETRY\s0 can be set to disable this behaviour. That is when this flag is set an \s-1SSL BIO\s0 using a blocking transport will never request a retry. .PP Since unknown \fIBIO_ctrl()\fR operations are sent through filter BIOs the servers name and port can be set using \fIBIO_set_host()\fR on the \s-1BIO\s0 returned by \fIBIO_new_ssl_connect()\fR without having to locate the connect \s-1BIO\s0 first. .PP Applications do not have to call \fIBIO_do_handshake()\fR but may wish to do so to separate the handshake process from other I/O processing. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\s-1TBA\s0 .SH "EXAMPLE" .IX Header "EXAMPLE" This \s-1SSL/TLS\s0 client example, attempts to retrieve a page from an \&\s-1SSL/TLS\s0 web server. The I/O routines are identical to those of the unencrypted example in \fIBIO_s_connect\fR\|(3). .PP .Vb 5 \& BIO *sbio, *out; \& int len; \& char tmpbuf[1024]; \& SSL_CTX *ctx; \& SSL *ssl; \& \& ERR_load_crypto_strings(); \& ERR_load_SSL_strings(); \& OpenSSL_add_all_algorithms(); \& \& /* We would seed the PRNG here if the platform didn\*(Aqt \& * do it automatically \& */ \& \& ctx = SSL_CTX_new(SSLv23_client_method()); \& \& /* We\*(Aqd normally set some stuff like the verify paths and \& * mode here because as things stand this will connect to \& * any server whose certificate is signed by any CA. \& */ \& \& sbio = BIO_new_ssl_connect(ctx); \& \& BIO_get_ssl(sbio, &ssl); \& \& if(!ssl) { \& fprintf(stderr, "Can\*(Aqt locate SSL pointer\en"); \& /* whatever ... */ \& } \& \& /* Don\*(Aqt want any retries */ \& SSL_set_mode(ssl, SSL_MODE_AUTO_RETRY); \& \& /* We might want to do other things with ssl here */ \& \& BIO_set_conn_hostname(sbio, "localhost:https"); \& \& out = BIO_new_fp(stdout, BIO_NOCLOSE); \& if(BIO_do_connect(sbio) <= 0) { \& fprintf(stderr, "Error connecting to server\en"); \& ERR_print_errors_fp(stderr); \& /* whatever ... */ \& } \& \& if(BIO_do_handshake(sbio) <= 0) { \& fprintf(stderr, "Error establishing SSL connection\en"); \& ERR_print_errors_fp(stderr); \& /* whatever ... */ \& } \& \& /* Could examine ssl here to get connection info */ \& \& BIO_puts(sbio, "GET / HTTP/1.0\en\en"); \& for(;;) { \& len = BIO_read(sbio, tmpbuf, 1024); \& if(len <= 0) break; \& BIO_write(out, tmpbuf, len); \& } \& BIO_free_all(sbio); \& BIO_free(out); .Ve .PP Here is a simple server example. It makes use of a buffering \&\s-1BIO\s0 to allow lines to be read from the \s-1SSL BIO\s0 using BIO_gets. It creates a pseudo web page containing the actual request from a client and also echoes the request to standard output. .PP .Vb 5 \& BIO *sbio, *bbio, *acpt, *out; \& int len; \& char tmpbuf[1024]; \& SSL_CTX *ctx; \& SSL *ssl; \& \& ERR_load_crypto_strings(); \& ERR_load_SSL_strings(); \& OpenSSL_add_all_algorithms(); \& \& /* Might seed PRNG here */ \& \& ctx = SSL_CTX_new(SSLv23_server_method()); \& \& if (!SSL_CTX_use_certificate_file(ctx,"server.pem",SSL_FILETYPE_PEM) \& || !SSL_CTX_use_PrivateKey_file(ctx,"server.pem",SSL_FILETYPE_PEM) \& || !SSL_CTX_check_private_key(ctx)) { \& \& fprintf(stderr, "Error setting up SSL_CTX\en"); \& ERR_print_errors_fp(stderr); \& return 0; \& } \& \& /* Might do other things here like setting verify locations and \& * DH and/or RSA temporary key callbacks \& */ \& \& /* New SSL BIO setup as server */ \& sbio=BIO_new_ssl(ctx,0); \& \& BIO_get_ssl(sbio, &ssl); \& \& if(!ssl) { \& fprintf(stderr, "Can\*(Aqt locate SSL pointer\en"); \& /* whatever ... */ \& } \& \& /* Don\*(Aqt want any retries */ \& SSL_set_mode(ssl, SSL_MODE_AUTO_RETRY); \& \& /* Create the buffering BIO */ \& \& bbio = BIO_new(BIO_f_buffer()); \& \& /* Add to chain */ \& sbio = BIO_push(bbio, sbio); \& \& acpt=BIO_new_accept("4433"); \& \& /* By doing this when a new connection is established \& * we automatically have sbio inserted into it. The \& * BIO chain is now \*(Aqswallowed\*(Aq by the accept BIO and \& * will be freed when the accept BIO is freed. \& */ \& \& BIO_set_accept_bios(acpt,sbio); \& \& out = BIO_new_fp(stdout, BIO_NOCLOSE); \& \& /* Setup accept BIO */ \& if(BIO_do_accept(acpt) <= 0) { \& fprintf(stderr, "Error setting up accept BIO\en"); \& ERR_print_errors_fp(stderr); \& return 0; \& } \& \& /* Now wait for incoming connection */ \& if(BIO_do_accept(acpt) <= 0) { \& fprintf(stderr, "Error in connection\en"); \& ERR_print_errors_fp(stderr); \& return 0; \& } \& \& /* We only want one connection so remove and free \& * accept BIO \& */ \& \& sbio = BIO_pop(acpt); \& \& BIO_free_all(acpt); \& \& if(BIO_do_handshake(sbio) <= 0) { \& fprintf(stderr, "Error in SSL handshake\en"); \& ERR_print_errors_fp(stderr); \& return 0; \& } \& \& BIO_puts(sbio, "HTTP/1.0 200 OK\er\enContent\-type: text/plain\er\en\er\en"); \& BIO_puts(sbio, "\er\enConnection Established\er\enRequest headers:\er\en"); \& BIO_puts(sbio, "\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\er\en"); \& \& for(;;) { \& len = BIO_gets(sbio, tmpbuf, 1024); \& if(len <= 0) break; \& BIO_write(sbio, tmpbuf, len); \& BIO_write(out, tmpbuf, len); \& /* Look for blank line signifying end of headers*/ \& if((tmpbuf[0] == \*(Aq\er\*(Aq) || (tmpbuf[0] == \*(Aq\en\*(Aq)) break; \& } \& \& BIO_puts(sbio, "\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\er\en"); \& BIO_puts(sbio, "\er\en"); \& \& /* Since there is a buffering BIO present we had better flush it */ \& BIO_flush(sbio); \& \& BIO_free_all(sbio); .Ve .SH "BUGS" .IX Header "BUGS" In OpenSSL versions before 1.0.0 the \fIBIO_pop()\fR call was handled incorrectly, the I/O \s-1BIO\s0 reference count was incorrectly incremented (instead of decremented) and dissociated with the \s-1SSL BIO\s0 even if the \s-1SSL BIO\s0 was not explicitly being popped (e.g. a pop higher up the chain). Applications which included workarounds for this bug (e.g. freeing BIOs more than once) should be modified to handle this fix or they may free up an already freed \s-1BIO.\s0 .SH "SEE ALSO" .IX Header "SEE ALSO" \&\s-1TBA\s0 man3/ssl.3000064400000140060147210533270006274 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ssl 3" .TH ssl 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL \- OpenSSL SSL/TLS library .SH "SYNOPSIS" .IX Header "SYNOPSIS" .SH "DESCRIPTION" .IX Header "DESCRIPTION" The OpenSSL \fBssl\fR library implements the Secure Sockets Layer (\s-1SSL\s0 v2/v3) and Transport Layer Security (\s-1TLS\s0 v1) protocols. It provides a rich \s-1API\s0 which is documented here. .PP At first the library must be initialized; see \&\fISSL_library_init\fR\|(3). .PP Then an \fB\s-1SSL_CTX\s0\fR object is created as a framework to establish \&\s-1TLS/SSL\s0 enabled connections (see \fISSL_CTX_new\fR\|(3)). Various options regarding certificates, algorithms etc. can be set in this object. .PP When a network connection has been created, it can be assigned to an \&\fB\s-1SSL\s0\fR object. After the \fB\s-1SSL\s0\fR object has been created using \&\fISSL_new\fR\|(3), \fISSL_set_fd\fR\|(3) or \&\fISSL_set_bio\fR\|(3) can be used to associate the network connection with the object. .PP Then the \s-1TLS/SSL\s0 handshake is performed using \&\fISSL_accept\fR\|(3) or \fISSL_connect\fR\|(3) respectively. \&\fISSL_read\fR\|(3) and \fISSL_write\fR\|(3) are used to read and write data on the \s-1TLS/SSL\s0 connection. \&\fISSL_shutdown\fR\|(3) can be used to shut down the \&\s-1TLS/SSL\s0 connection. .SH "DATA STRUCTURES" .IX Header "DATA STRUCTURES" Currently the OpenSSL \fBssl\fR library functions deals with the following data structures: .IP "\fB\s-1SSL_METHOD\s0\fR (\s-1SSL\s0 Method)" 4 .IX Item "SSL_METHOD (SSL Method)" That's a dispatch structure describing the internal \fBssl\fR library methods/functions which implement the various protocol versions (SSLv1, SSLv2 and TLSv1). It's needed to create an \fB\s-1SSL_CTX\s0\fR. .IP "\fB\s-1SSL_CIPHER\s0\fR (\s-1SSL\s0 Cipher)" 4 .IX Item "SSL_CIPHER (SSL Cipher)" This structure holds the algorithm information for a particular cipher which are a core part of the \s-1SSL/TLS\s0 protocol. The available ciphers are configured on a \fB\s-1SSL_CTX\s0\fR basis and the actually used ones are then part of the \&\fB\s-1SSL_SESSION\s0\fR. .IP "\fB\s-1SSL_CTX\s0\fR (\s-1SSL\s0 Context)" 4 .IX Item "SSL_CTX (SSL Context)" That's the global context structure which is created by a server or client once per program life-time and which holds mainly default values for the \&\fB\s-1SSL\s0\fR structures which are later created for the connections. .IP "\fB\s-1SSL_SESSION\s0\fR (\s-1SSL\s0 Session)" 4 .IX Item "SSL_SESSION (SSL Session)" This is a structure containing the current \s-1TLS/SSL\s0 session details for a connection: \fB\s-1SSL_CIPHER\s0\fRs, client and server certificates, keys, etc. .IP "\fB\s-1SSL\s0\fR (\s-1SSL\s0 Connection)" 4 .IX Item "SSL (SSL Connection)" That's the main \s-1SSL/TLS\s0 structure which is created by a server or client per established connection. This actually is the core structure in the \s-1SSL API.\s0 Under run-time the application usually deals with this structure which has links to mostly all other structures. .SH "HEADER FILES" .IX Header "HEADER FILES" Currently the OpenSSL \fBssl\fR library provides the following C header files containing the prototypes for the data structures and and functions: .IP "\fBssl.h\fR" 4 .IX Item "ssl.h" That's the common header file for the \s-1SSL/TLS API. \s0 Include it into your program to make the \s-1API\s0 of the \fBssl\fR library available. It internally includes both more private \s-1SSL\s0 headers and headers from the \fBcrypto\fR library. Whenever you need hard-core details on the internals of the \s-1SSL API,\s0 look inside this header file. .IP "\fBssl2.h\fR" 4 .IX Item "ssl2.h" That's the sub header file dealing with the SSLv2 protocol only. \&\fIUsually you don't have to include it explicitly because it's already included by ssl.h\fR. .IP "\fBssl3.h\fR" 4 .IX Item "ssl3.h" That's the sub header file dealing with the SSLv3 protocol only. \&\fIUsually you don't have to include it explicitly because it's already included by ssl.h\fR. .IP "\fBssl23.h\fR" 4 .IX Item "ssl23.h" That's the sub header file dealing with the combined use of the SSLv2 and SSLv3 protocols. \&\fIUsually you don't have to include it explicitly because it's already included by ssl.h\fR. .IP "\fBtls1.h\fR" 4 .IX Item "tls1.h" That's the sub header file dealing with the TLSv1 protocol only. \&\fIUsually you don't have to include it explicitly because it's already included by ssl.h\fR. .SH "API FUNCTIONS" .IX Header "API FUNCTIONS" Currently the OpenSSL \fBssl\fR library exports 214 \s-1API\s0 functions. They are documented in the following: .SS "\s-1DEALING WITH PROTOCOL METHODS\s0" .IX Subsection "DEALING WITH PROTOCOL METHODS" Here we document the various \s-1API\s0 functions which deal with the \s-1SSL/TLS\s0 protocol methods defined in \fB\s-1SSL_METHOD\s0\fR structures. .IP "const \s-1SSL_METHOD\s0 *\fBSSLv23_method\fR(void);" 4 .IX Item "const SSL_METHOD *SSLv23_method(void);" Constructor for the \fIversion-flexible\fR \s-1SSL_METHOD\s0 structure for clients, servers or both. See \fISSL_CTX_new\fR\|(3) for details. .IP "const \s-1SSL_METHOD\s0 *\fBSSLv23_client_method\fR(void);" 4 .IX Item "const SSL_METHOD *SSLv23_client_method(void);" Constructor for the \fIversion-flexible\fR \s-1SSL_METHOD\s0 structure for clients. .IP "const \s-1SSL_METHOD\s0 *\fBSSLv23_client_method\fR(void);" 4 .IX Item "const SSL_METHOD *SSLv23_client_method(void);" Constructor for the \fIversion-flexible\fR \s-1SSL_METHOD\s0 structure for servers. .IP "const \s-1SSL_METHOD\s0 *\fBTLSv1_2_method\fR(void);" 4 .IX Item "const SSL_METHOD *TLSv1_2_method(void);" Constructor for the TLSv1.2 \s-1SSL_METHOD\s0 structure for clients, servers or both. .IP "const \s-1SSL_METHOD\s0 *\fBTLSv1_2_client_method\fR(void);" 4 .IX Item "const SSL_METHOD *TLSv1_2_client_method(void);" Constructor for the TLSv1.2 \s-1SSL_METHOD\s0 structure for clients. .IP "const \s-1SSL_METHOD\s0 *\fBTLSv1_2_server_method\fR(void);" 4 .IX Item "const SSL_METHOD *TLSv1_2_server_method(void);" Constructor for the TLSv1.2 \s-1SSL_METHOD\s0 structure for servers. .IP "const \s-1SSL_METHOD\s0 *\fBTLSv1_1_method\fR(void);" 4 .IX Item "const SSL_METHOD *TLSv1_1_method(void);" Constructor for the TLSv1.1 \s-1SSL_METHOD\s0 structure for clients, servers or both. .IP "const \s-1SSL_METHOD\s0 *\fBTLSv1_1_client_method\fR(void);" 4 .IX Item "const SSL_METHOD *TLSv1_1_client_method(void);" Constructor for the TLSv1.1 \s-1SSL_METHOD\s0 structure for clients. .IP "const \s-1SSL_METHOD\s0 *\fBTLSv1_1_server_method\fR(void);" 4 .IX Item "const SSL_METHOD *TLSv1_1_server_method(void);" Constructor for the TLSv1.1 \s-1SSL_METHOD\s0 structure for servers. .IP "const \s-1SSL_METHOD\s0 *\fBTLSv1_method\fR(void);" 4 .IX Item "const SSL_METHOD *TLSv1_method(void);" Constructor for the TLSv1 \s-1SSL_METHOD\s0 structure for clients, servers or both. .IP "const \s-1SSL_METHOD\s0 *\fBTLSv1_client_method\fR(void);" 4 .IX Item "const SSL_METHOD *TLSv1_client_method(void);" Constructor for the TLSv1 \s-1SSL_METHOD\s0 structure for clients. .IP "const \s-1SSL_METHOD\s0 *\fBTLSv1_server_method\fR(void);" 4 .IX Item "const SSL_METHOD *TLSv1_server_method(void);" Constructor for the TLSv1 \s-1SSL_METHOD\s0 structure for servers. .IP "const \s-1SSL_METHOD\s0 *\fBSSLv3_method\fR(void);" 4 .IX Item "const SSL_METHOD *SSLv3_method(void);" Constructor for the SSLv3 \s-1SSL_METHOD\s0 structure for clients, servers or both. .IP "const \s-1SSL_METHOD\s0 *\fBSSLv3_client_method\fR(void);" 4 .IX Item "const SSL_METHOD *SSLv3_client_method(void);" Constructor for the SSLv3 \s-1SSL_METHOD\s0 structure for clients. .IP "const \s-1SSL_METHOD\s0 *\fBSSLv3_server_method\fR(void);" 4 .IX Item "const SSL_METHOD *SSLv3_server_method(void);" Constructor for the SSLv3 \s-1SSL_METHOD\s0 structure for servers. .IP "const \s-1SSL_METHOD\s0 *\fBSSLv2_method\fR(void);" 4 .IX Item "const SSL_METHOD *SSLv2_method(void);" Constructor for the SSLv2 \s-1SSL_METHOD\s0 structure for clients, servers or both. .IP "const \s-1SSL_METHOD\s0 *\fBSSLv2_client_method\fR(void);" 4 .IX Item "const SSL_METHOD *SSLv2_client_method(void);" Constructor for the SSLv2 \s-1SSL_METHOD\s0 structure for clients. .IP "const \s-1SSL_METHOD\s0 *\fBSSLv2_server_method\fR(void);" 4 .IX Item "const SSL_METHOD *SSLv2_server_method(void);" Constructor for the SSLv2 \s-1SSL_METHOD\s0 structure for servers. .SS "\s-1DEALING WITH CIPHERS\s0" .IX Subsection "DEALING WITH CIPHERS" Here we document the various \s-1API\s0 functions which deal with the \s-1SSL/TLS\s0 ciphers defined in \fB\s-1SSL_CIPHER\s0\fR structures. .IP "char *\fBSSL_CIPHER_description\fR(\s-1SSL_CIPHER\s0 *cipher, char *buf, int len);" 4 .IX Item "char *SSL_CIPHER_description(SSL_CIPHER *cipher, char *buf, int len);" Write a string to \fIbuf\fR (with a maximum size of \fIlen\fR) containing a human readable description of \fIcipher\fR. Returns \fIbuf\fR. .IP "int \fBSSL_CIPHER_get_bits\fR(\s-1SSL_CIPHER\s0 *cipher, int *alg_bits);" 4 .IX Item "int SSL_CIPHER_get_bits(SSL_CIPHER *cipher, int *alg_bits);" Determine the number of bits in \fIcipher\fR. Because of export crippled ciphers there are two bits: The bits the algorithm supports in general (stored to \&\fIalg_bits\fR) and the bits which are actually used (the return value). .IP "const char *\fBSSL_CIPHER_get_name\fR(\s-1SSL_CIPHER\s0 *cipher);" 4 .IX Item "const char *SSL_CIPHER_get_name(SSL_CIPHER *cipher);" Return the internal name of \fIcipher\fR as a string. These are the various strings defined by the \fISSL2_TXT_xxx\fR, \fISSL3_TXT_xxx\fR and \fITLS1_TXT_xxx\fR definitions in the header files. .IP "char *\fBSSL_CIPHER_get_version\fR(\s-1SSL_CIPHER\s0 *cipher);" 4 .IX Item "char *SSL_CIPHER_get_version(SSL_CIPHER *cipher);" Returns a string like "\f(CW\*(C`TLSv1/SSLv3\*(C'\fR\*(L" or \*(R"\f(CW\*(C`SSLv2\*(C'\fR" which indicates the \&\s-1SSL/TLS\s0 protocol version to which \fIcipher\fR belongs (i.e. where it was defined in the specification the first time). .SS "\s-1DEALING WITH PROTOCOL CONTEXTS\s0" .IX Subsection "DEALING WITH PROTOCOL CONTEXTS" Here we document the various \s-1API\s0 functions which deal with the \s-1SSL/TLS\s0 protocol context defined in the \fB\s-1SSL_CTX\s0\fR structure. .IP "int \fBSSL_CTX_add_client_CA\fR(\s-1SSL_CTX\s0 *ctx, X509 *x);" 4 .IX Item "int SSL_CTX_add_client_CA(SSL_CTX *ctx, X509 *x);" .PD 0 .IP "long \fBSSL_CTX_add_extra_chain_cert\fR(\s-1SSL_CTX\s0 *ctx, X509 *x509);" 4 .IX Item "long SSL_CTX_add_extra_chain_cert(SSL_CTX *ctx, X509 *x509);" .IP "int \fBSSL_CTX_add_session\fR(\s-1SSL_CTX\s0 *ctx, \s-1SSL_SESSION\s0 *c);" 4 .IX Item "int SSL_CTX_add_session(SSL_CTX *ctx, SSL_SESSION *c);" .IP "int \fBSSL_CTX_check_private_key\fR(const \s-1SSL_CTX\s0 *ctx);" 4 .IX Item "int SSL_CTX_check_private_key(const SSL_CTX *ctx);" .IP "long \fBSSL_CTX_ctrl\fR(\s-1SSL_CTX\s0 *ctx, int cmd, long larg, char *parg);" 4 .IX Item "long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, char *parg);" .IP "void \fBSSL_CTX_flush_sessions\fR(\s-1SSL_CTX\s0 *s, long t);" 4 .IX Item "void SSL_CTX_flush_sessions(SSL_CTX *s, long t);" .IP "void \fBSSL_CTX_free\fR(\s-1SSL_CTX\s0 *a);" 4 .IX Item "void SSL_CTX_free(SSL_CTX *a);" .IP "char *\fBSSL_CTX_get_app_data\fR(\s-1SSL_CTX\s0 *ctx);" 4 .IX Item "char *SSL_CTX_get_app_data(SSL_CTX *ctx);" .IP "X509_STORE *\fBSSL_CTX_get_cert_store\fR(\s-1SSL_CTX\s0 *ctx);" 4 .IX Item "X509_STORE *SSL_CTX_get_cert_store(SSL_CTX *ctx);" .IP "\s-1STACK\s0 *\fBSSL_CTX_get_client_CA_list\fR(const \s-1SSL_CTX\s0 *ctx);" 4 .IX Item "STACK *SSL_CTX_get_client_CA_list(const SSL_CTX *ctx);" .IP "int (*\fBSSL_CTX_get_client_cert_cb\fR(\s-1SSL_CTX\s0 *ctx))(\s-1SSL\s0 *ssl, X509 **x509, \s-1EVP_PKEY\s0 **pkey);" 4 .IX Item "int (*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx))(SSL *ssl, X509 **x509, EVP_PKEY **pkey);" .IP "void \fBSSL_CTX_get_default_read_ahead\fR(\s-1SSL_CTX\s0 *ctx);" 4 .IX Item "void SSL_CTX_get_default_read_ahead(SSL_CTX *ctx);" .IP "char *\fBSSL_CTX_get_ex_data\fR(const \s-1SSL_CTX\s0 *s, int idx);" 4 .IX Item "char *SSL_CTX_get_ex_data(const SSL_CTX *s, int idx);" .IP "int \fBSSL_CTX_get_ex_new_index\fR(long argl, char *argp, int (*new_func);(void), int (*dup_func)(void), void (*free_func)(void))" 4 .IX Item "int SSL_CTX_get_ex_new_index(long argl, char *argp, int (*new_func);(void), int (*dup_func)(void), void (*free_func)(void))" .IP "void (*\fBSSL_CTX_get_info_callback\fR(\s-1SSL_CTX\s0 *ctx))(\s-1SSL\s0 *ssl, int cb, int ret);" 4 .IX Item "void (*SSL_CTX_get_info_callback(SSL_CTX *ctx))(SSL *ssl, int cb, int ret);" .IP "int \fBSSL_CTX_get_quiet_shutdown\fR(const \s-1SSL_CTX\s0 *ctx);" 4 .IX Item "int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx);" .IP "void \fBSSL_CTX_get_read_ahead\fR(\s-1SSL_CTX\s0 *ctx);" 4 .IX Item "void SSL_CTX_get_read_ahead(SSL_CTX *ctx);" .IP "int \fBSSL_CTX_get_session_cache_mode\fR(\s-1SSL_CTX\s0 *ctx);" 4 .IX Item "int SSL_CTX_get_session_cache_mode(SSL_CTX *ctx);" .IP "long \fBSSL_CTX_get_timeout\fR(const \s-1SSL_CTX\s0 *ctx);" 4 .IX Item "long SSL_CTX_get_timeout(const SSL_CTX *ctx);" .IP "int (*\fBSSL_CTX_get_verify_callback\fR(const \s-1SSL_CTX\s0 *ctx))(int ok, X509_STORE_CTX *ctx);" 4 .IX Item "int (*SSL_CTX_get_verify_callback(const SSL_CTX *ctx))(int ok, X509_STORE_CTX *ctx);" .IP "int \fBSSL_CTX_get_verify_mode\fR(\s-1SSL_CTX\s0 *ctx);" 4 .IX Item "int SSL_CTX_get_verify_mode(SSL_CTX *ctx);" .IP "int \fBSSL_CTX_load_verify_locations\fR(\s-1SSL_CTX\s0 *ctx, char *CAfile, char *CApath);" 4 .IX Item "int SSL_CTX_load_verify_locations(SSL_CTX *ctx, char *CAfile, char *CApath);" .IP "long \fBSSL_CTX_need_tmp_RSA\fR(\s-1SSL_CTX\s0 *ctx);" 4 .IX Item "long SSL_CTX_need_tmp_RSA(SSL_CTX *ctx);" .IP "\s-1SSL_CTX\s0 *\fBSSL_CTX_new\fR(const \s-1SSL_METHOD\s0 *meth);" 4 .IX Item "SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth);" .IP "int \fBSSL_CTX_remove_session\fR(\s-1SSL_CTX\s0 *ctx, \s-1SSL_SESSION\s0 *c);" 4 .IX Item "int SSL_CTX_remove_session(SSL_CTX *ctx, SSL_SESSION *c);" .IP "int \fBSSL_CTX_sess_accept\fR(\s-1SSL_CTX\s0 *ctx);" 4 .IX Item "int SSL_CTX_sess_accept(SSL_CTX *ctx);" .IP "int \fBSSL_CTX_sess_accept_good\fR(\s-1SSL_CTX\s0 *ctx);" 4 .IX Item "int SSL_CTX_sess_accept_good(SSL_CTX *ctx);" .IP "int \fBSSL_CTX_sess_accept_renegotiate\fR(\s-1SSL_CTX\s0 *ctx);" 4 .IX Item "int SSL_CTX_sess_accept_renegotiate(SSL_CTX *ctx);" .IP "int \fBSSL_CTX_sess_cache_full\fR(\s-1SSL_CTX\s0 *ctx);" 4 .IX Item "int SSL_CTX_sess_cache_full(SSL_CTX *ctx);" .IP "int \fBSSL_CTX_sess_cb_hits\fR(\s-1SSL_CTX\s0 *ctx);" 4 .IX Item "int SSL_CTX_sess_cb_hits(SSL_CTX *ctx);" .IP "int \fBSSL_CTX_sess_connect\fR(\s-1SSL_CTX\s0 *ctx);" 4 .IX Item "int SSL_CTX_sess_connect(SSL_CTX *ctx);" .IP "int \fBSSL_CTX_sess_connect_good\fR(\s-1SSL_CTX\s0 *ctx);" 4 .IX Item "int SSL_CTX_sess_connect_good(SSL_CTX *ctx);" .IP "int \fBSSL_CTX_sess_connect_renegotiate\fR(\s-1SSL_CTX\s0 *ctx);" 4 .IX Item "int SSL_CTX_sess_connect_renegotiate(SSL_CTX *ctx);" .IP "int \fBSSL_CTX_sess_get_cache_size\fR(\s-1SSL_CTX\s0 *ctx);" 4 .IX Item "int SSL_CTX_sess_get_cache_size(SSL_CTX *ctx);" .IP "\s-1SSL_SESSION\s0 *(*\fBSSL_CTX_sess_get_get_cb\fR(\s-1SSL_CTX\s0 *ctx))(\s-1SSL\s0 *ssl, unsigned char *data, int len, int *copy);" 4 .IX Item "SSL_SESSION *(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx))(SSL *ssl, unsigned char *data, int len, int *copy);" .IP "int (*\fBSSL_CTX_sess_get_new_cb\fR(\s-1SSL_CTX\s0 *ctx)(\s-1SSL\s0 *ssl, \s-1SSL_SESSION\s0 *sess);" 4 .IX Item "int (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx)(SSL *ssl, SSL_SESSION *sess);" .IP "void (*\fBSSL_CTX_sess_get_remove_cb\fR(\s-1SSL_CTX\s0 *ctx)(\s-1SSL_CTX\s0 *ctx, \s-1SSL_SESSION\s0 *sess);" 4 .IX Item "void (*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx)(SSL_CTX *ctx, SSL_SESSION *sess);" .IP "int \fBSSL_CTX_sess_hits\fR(\s-1SSL_CTX\s0 *ctx);" 4 .IX Item "int SSL_CTX_sess_hits(SSL_CTX *ctx);" .IP "int \fBSSL_CTX_sess_misses\fR(\s-1SSL_CTX\s0 *ctx);" 4 .IX Item "int SSL_CTX_sess_misses(SSL_CTX *ctx);" .IP "int \fBSSL_CTX_sess_number\fR(\s-1SSL_CTX\s0 *ctx);" 4 .IX Item "int SSL_CTX_sess_number(SSL_CTX *ctx);" .IP "void \fBSSL_CTX_sess_set_cache_size\fR(\s-1SSL_CTX\s0 *ctx,t);" 4 .IX Item "void SSL_CTX_sess_set_cache_size(SSL_CTX *ctx,t);" .IP "void \fBSSL_CTX_sess_set_get_cb\fR(\s-1SSL_CTX\s0 *ctx, \s-1SSL_SESSION\s0 *(*cb)(\s-1SSL\s0 *ssl, unsigned char *data, int len, int *copy));" 4 .IX Item "void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx, SSL_SESSION *(*cb)(SSL *ssl, unsigned char *data, int len, int *copy));" .IP "void \fBSSL_CTX_sess_set_new_cb\fR(\s-1SSL_CTX\s0 *ctx, int (*cb)(\s-1SSL\s0 *ssl, \s-1SSL_SESSION\s0 *sess));" 4 .IX Item "void SSL_CTX_sess_set_new_cb(SSL_CTX *ctx, int (*cb)(SSL *ssl, SSL_SESSION *sess));" .IP "void \fBSSL_CTX_sess_set_remove_cb\fR(\s-1SSL_CTX\s0 *ctx, void (*cb)(\s-1SSL_CTX\s0 *ctx, \s-1SSL_SESSION\s0 *sess));" 4 .IX Item "void SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx, void (*cb)(SSL_CTX *ctx, SSL_SESSION *sess));" .IP "int \fBSSL_CTX_sess_timeouts\fR(\s-1SSL_CTX\s0 *ctx);" 4 .IX Item "int SSL_CTX_sess_timeouts(SSL_CTX *ctx);" .IP "\s-1LHASH\s0 *\fBSSL_CTX_sessions\fR(\s-1SSL_CTX\s0 *ctx);" 4 .IX Item "LHASH *SSL_CTX_sessions(SSL_CTX *ctx);" .IP "void \fBSSL_CTX_set_app_data\fR(\s-1SSL_CTX\s0 *ctx, void *arg);" 4 .IX Item "void SSL_CTX_set_app_data(SSL_CTX *ctx, void *arg);" .IP "void \fBSSL_CTX_set_cert_store\fR(\s-1SSL_CTX\s0 *ctx, X509_STORE *cs);" 4 .IX Item "void SSL_CTX_set_cert_store(SSL_CTX *ctx, X509_STORE *cs);" .IP "void \fBSSL_CTX_set_cert_verify_cb\fR(\s-1SSL_CTX\s0 *ctx, int (*cb)(), char *arg)" 4 .IX Item "void SSL_CTX_set_cert_verify_cb(SSL_CTX *ctx, int (*cb)(), char *arg)" .IP "int \fBSSL_CTX_set_cipher_list\fR(\s-1SSL_CTX\s0 *ctx, char *str);" 4 .IX Item "int SSL_CTX_set_cipher_list(SSL_CTX *ctx, char *str);" .IP "void \fBSSL_CTX_set_client_CA_list\fR(\s-1SSL_CTX\s0 *ctx, \s-1STACK\s0 *list);" 4 .IX Item "void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK *list);" .IP "void \fBSSL_CTX_set_client_cert_cb\fR(\s-1SSL_CTX\s0 *ctx, int (*cb)(\s-1SSL\s0 *ssl, X509 **x509, \s-1EVP_PKEY\s0 **pkey));" 4 .IX Item "void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx, int (*cb)(SSL *ssl, X509 **x509, EVP_PKEY **pkey));" .IP "void \fBSSL_CTX_set_default_passwd_cb\fR(\s-1SSL_CTX\s0 *ctx, int (*cb);(void))" 4 .IX Item "void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, int (*cb);(void))" .IP "void \fBSSL_CTX_set_default_read_ahead\fR(\s-1SSL_CTX\s0 *ctx, int m);" 4 .IX Item "void SSL_CTX_set_default_read_ahead(SSL_CTX *ctx, int m);" .IP "int \fBSSL_CTX_set_default_verify_paths\fR(\s-1SSL_CTX\s0 *ctx);" 4 .IX Item "int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx);" .IP "int \fBSSL_CTX_set_ex_data\fR(\s-1SSL_CTX\s0 *s, int idx, char *arg);" 4 .IX Item "int SSL_CTX_set_ex_data(SSL_CTX *s, int idx, char *arg);" .IP "void \fBSSL_CTX_set_info_callback\fR(\s-1SSL_CTX\s0 *ctx, void (*cb)(\s-1SSL\s0 *ssl, int cb, int ret));" 4 .IX Item "void SSL_CTX_set_info_callback(SSL_CTX *ctx, void (*cb)(SSL *ssl, int cb, int ret));" .IP "void \fBSSL_CTX_set_msg_callback\fR(\s-1SSL_CTX\s0 *ctx, void (*cb)(int write_p, int version, int content_type, const void *buf, size_t len, \s-1SSL\s0 *ssl, void *arg));" 4 .IX Item "void SSL_CTX_set_msg_callback(SSL_CTX *ctx, void (*cb)(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg));" .IP "void \fBSSL_CTX_set_msg_callback_arg\fR(\s-1SSL_CTX\s0 *ctx, void *arg);" 4 .IX Item "void SSL_CTX_set_msg_callback_arg(SSL_CTX *ctx, void *arg);" .IP "void \fBSSL_CTX_set_options\fR(\s-1SSL_CTX\s0 *ctx, unsigned long op);" 4 .IX Item "void SSL_CTX_set_options(SSL_CTX *ctx, unsigned long op);" .IP "void \fBSSL_CTX_set_quiet_shutdown\fR(\s-1SSL_CTX\s0 *ctx, int mode);" 4 .IX Item "void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx, int mode);" .IP "void \fBSSL_CTX_set_read_ahead\fR(\s-1SSL_CTX\s0 *ctx, int m);" 4 .IX Item "void SSL_CTX_set_read_ahead(SSL_CTX *ctx, int m);" .IP "void \fBSSL_CTX_set_session_cache_mode\fR(\s-1SSL_CTX\s0 *ctx, int mode);" 4 .IX Item "void SSL_CTX_set_session_cache_mode(SSL_CTX *ctx, int mode);" .IP "int \fBSSL_CTX_set_ssl_version\fR(\s-1SSL_CTX\s0 *ctx, const \s-1SSL_METHOD\s0 *meth);" 4 .IX Item "int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *meth);" .IP "void \fBSSL_CTX_set_timeout\fR(\s-1SSL_CTX\s0 *ctx, long t);" 4 .IX Item "void SSL_CTX_set_timeout(SSL_CTX *ctx, long t);" .IP "long \fBSSL_CTX_set_tmp_dh\fR(SSL_CTX* ctx, \s-1DH\s0 *dh);" 4 .IX Item "long SSL_CTX_set_tmp_dh(SSL_CTX* ctx, DH *dh);" .IP "long \fBSSL_CTX_set_tmp_dh_callback\fR(\s-1SSL_CTX\s0 *ctx, \s-1DH\s0 *(*cb)(void));" 4 .IX Item "long SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx, DH *(*cb)(void));" .IP "long \fBSSL_CTX_set_tmp_rsa\fR(\s-1SSL_CTX\s0 *ctx, \s-1RSA\s0 *rsa);" 4 .IX Item "long SSL_CTX_set_tmp_rsa(SSL_CTX *ctx, RSA *rsa);" .IP "SSL_CTX_set_tmp_rsa_callback" 4 .IX Item "SSL_CTX_set_tmp_rsa_callback" .PD \&\f(CW\*(C`long \f(CBSSL_CTX_set_tmp_rsa_callback\f(CW(SSL_CTX *\f(CBctx\f(CW, RSA *(*\f(CBcb\f(CW)(SSL *\f(CBssl\f(CW, int \f(CBexport\f(CW, int \f(CBkeylength\f(CW));\*(C'\fR .Sp Sets the callback which will be called when a temporary private key is required. The \fB\f(CB\*(C`export\*(C'\fB\fR flag will be set if the reason for needing a temp key is that an export ciphersuite is in use, in which case, \&\fB\f(CB\*(C`keylength\*(C'\fB\fR will contain the required keylength in bits. Generate a key of appropriate size (using ???) and return it. .IP "SSL_set_tmp_rsa_callback" 4 .IX Item "SSL_set_tmp_rsa_callback" long \fBSSL_set_tmp_rsa_callback\fR(\s-1SSL\s0 *ssl, \s-1RSA\s0 *(*cb)(\s-1SSL\s0 *ssl, int export, int keylength)); .Sp The same as \fBSSL_CTX_set_tmp_rsa_callback\fR, except it operates on an \s-1SSL\s0 session instead of a context. .IP "void \fBSSL_CTX_set_verify\fR(\s-1SSL_CTX\s0 *ctx, int mode, int (*cb);(void))" 4 .IX Item "void SSL_CTX_set_verify(SSL_CTX *ctx, int mode, int (*cb);(void))" .PD 0 .IP "int \fBSSL_CTX_use_PrivateKey\fR(\s-1SSL_CTX\s0 *ctx, \s-1EVP_PKEY\s0 *pkey);" 4 .IX Item "int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey);" .IP "int \fBSSL_CTX_use_PrivateKey_ASN1\fR(int type, \s-1SSL_CTX\s0 *ctx, unsigned char *d, long len);" 4 .IX Item "int SSL_CTX_use_PrivateKey_ASN1(int type, SSL_CTX *ctx, unsigned char *d, long len);" .IP "int \fBSSL_CTX_use_PrivateKey_file\fR(\s-1SSL_CTX\s0 *ctx, char *file, int type);" 4 .IX Item "int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, char *file, int type);" .IP "int \fBSSL_CTX_use_RSAPrivateKey\fR(\s-1SSL_CTX\s0 *ctx, \s-1RSA\s0 *rsa);" 4 .IX Item "int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa);" .IP "int \fBSSL_CTX_use_RSAPrivateKey_ASN1\fR(\s-1SSL_CTX\s0 *ctx, unsigned char *d, long len);" 4 .IX Item "int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, unsigned char *d, long len);" .IP "int \fBSSL_CTX_use_RSAPrivateKey_file\fR(\s-1SSL_CTX\s0 *ctx, char *file, int type);" 4 .IX Item "int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, char *file, int type);" .IP "int \fBSSL_CTX_use_certificate\fR(\s-1SSL_CTX\s0 *ctx, X509 *x);" 4 .IX Item "int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x);" .IP "int \fBSSL_CTX_use_certificate_ASN1\fR(\s-1SSL_CTX\s0 *ctx, int len, unsigned char *d);" 4 .IX Item "int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len, unsigned char *d);" .IP "int \fBSSL_CTX_use_certificate_file\fR(\s-1SSL_CTX\s0 *ctx, char *file, int type);" 4 .IX Item "int SSL_CTX_use_certificate_file(SSL_CTX *ctx, char *file, int type);" .IP "X509 *\fBSSL_CTX_get0_certificate\fR(const \s-1SSL_CTX\s0 *ctx);" 4 .IX Item "X509 *SSL_CTX_get0_certificate(const SSL_CTX *ctx);" .IP "\s-1EVP_PKEY\s0 *\fBSSL_CTX_get0_privatekey\fR(const \s-1SSL_CTX\s0 *ctx);" 4 .IX Item "EVP_PKEY *SSL_CTX_get0_privatekey(const SSL_CTX *ctx);" .IP "void \fBSSL_CTX_set_psk_client_callback\fR(\s-1SSL_CTX\s0 *ctx, unsigned int (*callback)(\s-1SSL\s0 *ssl, const char *hint, char *identity, unsigned int max_identity_len, unsigned char *psk, unsigned int max_psk_len));" 4 .IX Item "void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx, unsigned int (*callback)(SSL *ssl, const char *hint, char *identity, unsigned int max_identity_len, unsigned char *psk, unsigned int max_psk_len));" .IP "int \fBSSL_CTX_use_psk_identity_hint\fR(\s-1SSL_CTX\s0 *ctx, const char *hint);" 4 .IX Item "int SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *hint);" .IP "void \fBSSL_CTX_set_psk_server_callback\fR(\s-1SSL_CTX\s0 *ctx, unsigned int (*callback)(\s-1SSL\s0 *ssl, const char *identity, unsigned char *psk, int max_psk_len));" 4 .IX Item "void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx, unsigned int (*callback)(SSL *ssl, const char *identity, unsigned char *psk, int max_psk_len));" .PD .SS "\s-1DEALING WITH SESSIONS\s0" .IX Subsection "DEALING WITH SESSIONS" Here we document the various \s-1API\s0 functions which deal with the \s-1SSL/TLS\s0 sessions defined in the \fB\s-1SSL_SESSION\s0\fR structures. .IP "int \fBSSL_SESSION_cmp\fR(const \s-1SSL_SESSION\s0 *a, const \s-1SSL_SESSION\s0 *b);" 4 .IX Item "int SSL_SESSION_cmp(const SSL_SESSION *a, const SSL_SESSION *b);" .PD 0 .IP "void \fBSSL_SESSION_free\fR(\s-1SSL_SESSION\s0 *ss);" 4 .IX Item "void SSL_SESSION_free(SSL_SESSION *ss);" .IP "char *\fBSSL_SESSION_get_app_data\fR(\s-1SSL_SESSION\s0 *s);" 4 .IX Item "char *SSL_SESSION_get_app_data(SSL_SESSION *s);" .IP "char *\fBSSL_SESSION_get_ex_data\fR(const \s-1SSL_SESSION\s0 *s, int idx);" 4 .IX Item "char *SSL_SESSION_get_ex_data(const SSL_SESSION *s, int idx);" .IP "int \fBSSL_SESSION_get_ex_new_index\fR(long argl, char *argp, int (*new_func);(void), int (*dup_func)(void), void (*free_func)(void))" 4 .IX Item "int SSL_SESSION_get_ex_new_index(long argl, char *argp, int (*new_func);(void), int (*dup_func)(void), void (*free_func)(void))" .IP "long \fBSSL_SESSION_get_time\fR(const \s-1SSL_SESSION\s0 *s);" 4 .IX Item "long SSL_SESSION_get_time(const SSL_SESSION *s);" .IP "long \fBSSL_SESSION_get_timeout\fR(const \s-1SSL_SESSION\s0 *s);" 4 .IX Item "long SSL_SESSION_get_timeout(const SSL_SESSION *s);" .IP "unsigned long \fBSSL_SESSION_hash\fR(const \s-1SSL_SESSION\s0 *a);" 4 .IX Item "unsigned long SSL_SESSION_hash(const SSL_SESSION *a);" .IP "\s-1SSL_SESSION\s0 *\fBSSL_SESSION_new\fR(void);" 4 .IX Item "SSL_SESSION *SSL_SESSION_new(void);" .IP "int \fBSSL_SESSION_print\fR(\s-1BIO\s0 *bp, const \s-1SSL_SESSION\s0 *x);" 4 .IX Item "int SSL_SESSION_print(BIO *bp, const SSL_SESSION *x);" .IP "int \fBSSL_SESSION_print_fp\fR(\s-1FILE\s0 *fp, const \s-1SSL_SESSION\s0 *x);" 4 .IX Item "int SSL_SESSION_print_fp(FILE *fp, const SSL_SESSION *x);" .IP "void \fBSSL_SESSION_set_app_data\fR(\s-1SSL_SESSION\s0 *s, char *a);" 4 .IX Item "void SSL_SESSION_set_app_data(SSL_SESSION *s, char *a);" .IP "int \fBSSL_SESSION_set_ex_data\fR(\s-1SSL_SESSION\s0 *s, int idx, char *arg);" 4 .IX Item "int SSL_SESSION_set_ex_data(SSL_SESSION *s, int idx, char *arg);" .IP "long \fBSSL_SESSION_set_time\fR(\s-1SSL_SESSION\s0 *s, long t);" 4 .IX Item "long SSL_SESSION_set_time(SSL_SESSION *s, long t);" .IP "long \fBSSL_SESSION_set_timeout\fR(\s-1SSL_SESSION\s0 *s, long t);" 4 .IX Item "long SSL_SESSION_set_timeout(SSL_SESSION *s, long t);" .PD .SS "\s-1DEALING WITH CONNECTIONS\s0" .IX Subsection "DEALING WITH CONNECTIONS" Here we document the various \s-1API\s0 functions which deal with the \s-1SSL/TLS\s0 connection defined in the \fB\s-1SSL\s0\fR structure. .IP "int \fBSSL_accept\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "int SSL_accept(SSL *ssl);" .PD 0 .IP "int \fBSSL_add_dir_cert_subjects_to_stack\fR(\s-1STACK\s0 *stack, const char *dir);" 4 .IX Item "int SSL_add_dir_cert_subjects_to_stack(STACK *stack, const char *dir);" .IP "int \fBSSL_add_file_cert_subjects_to_stack\fR(\s-1STACK\s0 *stack, const char *file);" 4 .IX Item "int SSL_add_file_cert_subjects_to_stack(STACK *stack, const char *file);" .IP "int \fBSSL_add_client_CA\fR(\s-1SSL\s0 *ssl, X509 *x);" 4 .IX Item "int SSL_add_client_CA(SSL *ssl, X509 *x);" .IP "char *\fBSSL_alert_desc_string\fR(int value);" 4 .IX Item "char *SSL_alert_desc_string(int value);" .IP "char *\fBSSL_alert_desc_string_long\fR(int value);" 4 .IX Item "char *SSL_alert_desc_string_long(int value);" .IP "char *\fBSSL_alert_type_string\fR(int value);" 4 .IX Item "char *SSL_alert_type_string(int value);" .IP "char *\fBSSL_alert_type_string_long\fR(int value);" 4 .IX Item "char *SSL_alert_type_string_long(int value);" .IP "int \fBSSL_check_private_key\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "int SSL_check_private_key(const SSL *ssl);" .IP "void \fBSSL_clear\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "void SSL_clear(SSL *ssl);" .IP "long \fBSSL_clear_num_renegotiations\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "long SSL_clear_num_renegotiations(SSL *ssl);" .IP "int \fBSSL_connect\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "int SSL_connect(SSL *ssl);" .IP "void \fBSSL_copy_session_id\fR(\s-1SSL\s0 *t, const \s-1SSL\s0 *f);" 4 .IX Item "void SSL_copy_session_id(SSL *t, const SSL *f);" .IP "long \fBSSL_ctrl\fR(\s-1SSL\s0 *ssl, int cmd, long larg, char *parg);" 4 .IX Item "long SSL_ctrl(SSL *ssl, int cmd, long larg, char *parg);" .IP "int \fBSSL_do_handshake\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "int SSL_do_handshake(SSL *ssl);" .IP "\s-1SSL\s0 *\fBSSL_dup\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "SSL *SSL_dup(SSL *ssl);" .IP "\s-1STACK\s0 *\fBSSL_dup_CA_list\fR(\s-1STACK\s0 *sk);" 4 .IX Item "STACK *SSL_dup_CA_list(STACK *sk);" .IP "void \fBSSL_free\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "void SSL_free(SSL *ssl);" .IP "\s-1SSL_CTX\s0 *\fBSSL_get_SSL_CTX\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl);" .IP "char *\fBSSL_get_app_data\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "char *SSL_get_app_data(SSL *ssl);" .IP "X509 *\fBSSL_get_certificate\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "X509 *SSL_get_certificate(const SSL *ssl);" .IP "const char *\fBSSL_get_cipher\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "const char *SSL_get_cipher(const SSL *ssl);" .IP "int \fBSSL_get_cipher_bits\fR(const \s-1SSL\s0 *ssl, int *alg_bits);" 4 .IX Item "int SSL_get_cipher_bits(const SSL *ssl, int *alg_bits);" .IP "char *\fBSSL_get_cipher_list\fR(const \s-1SSL\s0 *ssl, int n);" 4 .IX Item "char *SSL_get_cipher_list(const SSL *ssl, int n);" .IP "char *\fBSSL_get_cipher_name\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "char *SSL_get_cipher_name(const SSL *ssl);" .IP "char *\fBSSL_get_cipher_version\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "char *SSL_get_cipher_version(const SSL *ssl);" .IP "\s-1STACK\s0 *\fBSSL_get_ciphers\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "STACK *SSL_get_ciphers(const SSL *ssl);" .IP "\s-1STACK\s0 *\fBSSL_get_client_CA_list\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "STACK *SSL_get_client_CA_list(const SSL *ssl);" .IP "\s-1SSL_CIPHER\s0 *\fBSSL_get_current_cipher\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "SSL_CIPHER *SSL_get_current_cipher(SSL *ssl);" .IP "long \fBSSL_get_default_timeout\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "long SSL_get_default_timeout(const SSL *ssl);" .IP "int \fBSSL_get_error\fR(const \s-1SSL\s0 *ssl, int i);" 4 .IX Item "int SSL_get_error(const SSL *ssl, int i);" .IP "char *\fBSSL_get_ex_data\fR(const \s-1SSL\s0 *ssl, int idx);" 4 .IX Item "char *SSL_get_ex_data(const SSL *ssl, int idx);" .IP "int \fBSSL_get_ex_data_X509_STORE_CTX_idx\fR(void);" 4 .IX Item "int SSL_get_ex_data_X509_STORE_CTX_idx(void);" .IP "int \fBSSL_get_ex_new_index\fR(long argl, char *argp, int (*new_func);(void), int (*dup_func)(void), void (*free_func)(void))" 4 .IX Item "int SSL_get_ex_new_index(long argl, char *argp, int (*new_func);(void), int (*dup_func)(void), void (*free_func)(void))" .IP "int \fBSSL_get_fd\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "int SSL_get_fd(const SSL *ssl);" .IP "void (*\fBSSL_get_info_callback\fR(const \s-1SSL\s0 *ssl);)()" 4 .IX Item "void (*SSL_get_info_callback(const SSL *ssl);)()" .IP "\s-1STACK\s0 *\fBSSL_get_peer_cert_chain\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "STACK *SSL_get_peer_cert_chain(const SSL *ssl);" .IP "X509 *\fBSSL_get_peer_certificate\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "X509 *SSL_get_peer_certificate(const SSL *ssl);" .IP "\s-1EVP_PKEY\s0 *\fBSSL_get_privatekey\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "EVP_PKEY *SSL_get_privatekey(const SSL *ssl);" .IP "int \fBSSL_get_quiet_shutdown\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "int SSL_get_quiet_shutdown(const SSL *ssl);" .IP "\s-1BIO\s0 *\fBSSL_get_rbio\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "BIO *SSL_get_rbio(const SSL *ssl);" .IP "int \fBSSL_get_read_ahead\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "int SSL_get_read_ahead(const SSL *ssl);" .IP "\s-1SSL_SESSION\s0 *\fBSSL_get_session\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "SSL_SESSION *SSL_get_session(const SSL *ssl);" .IP "char *\fBSSL_get_shared_ciphers\fR(const \s-1SSL\s0 *ssl, char *buf, int size);" 4 .IX Item "char *SSL_get_shared_ciphers(const SSL *ssl, char *buf, int size);" .IP "int \fBSSL_get_shutdown\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "int SSL_get_shutdown(const SSL *ssl);" .IP "const \s-1SSL_METHOD\s0 *\fBSSL_get_ssl_method\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "const SSL_METHOD *SSL_get_ssl_method(SSL *ssl);" .IP "int \fBSSL_get_state\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "int SSL_get_state(const SSL *ssl);" .IP "long \fBSSL_get_time\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "long SSL_get_time(const SSL *ssl);" .IP "long \fBSSL_get_timeout\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "long SSL_get_timeout(const SSL *ssl);" .IP "int (*\fBSSL_get_verify_callback\fR(const \s-1SSL\s0 *ssl))(int,X509_STORE_CTX *)" 4 .IX Item "int (*SSL_get_verify_callback(const SSL *ssl))(int,X509_STORE_CTX *)" .IP "int \fBSSL_get_verify_mode\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "int SSL_get_verify_mode(const SSL *ssl);" .IP "long \fBSSL_get_verify_result\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "long SSL_get_verify_result(const SSL *ssl);" .IP "char *\fBSSL_get_version\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "char *SSL_get_version(const SSL *ssl);" .IP "\s-1BIO\s0 *\fBSSL_get_wbio\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "BIO *SSL_get_wbio(const SSL *ssl);" .IP "int \fBSSL_in_accept_init\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "int SSL_in_accept_init(SSL *ssl);" .IP "int \fBSSL_in_before\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "int SSL_in_before(SSL *ssl);" .IP "int \fBSSL_in_connect_init\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "int SSL_in_connect_init(SSL *ssl);" .IP "int \fBSSL_in_init\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "int SSL_in_init(SSL *ssl);" .IP "int \fBSSL_is_init_finished\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "int SSL_is_init_finished(SSL *ssl);" .IP "\s-1STACK\s0 *\fBSSL_load_client_CA_file\fR(char *file);" 4 .IX Item "STACK *SSL_load_client_CA_file(char *file);" .IP "void \fBSSL_load_error_strings\fR(void);" 4 .IX Item "void SSL_load_error_strings(void);" .IP "\s-1SSL\s0 *\fBSSL_new\fR(\s-1SSL_CTX\s0 *ctx);" 4 .IX Item "SSL *SSL_new(SSL_CTX *ctx);" .IP "long \fBSSL_num_renegotiations\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "long SSL_num_renegotiations(SSL *ssl);" .IP "int \fBSSL_peek\fR(\s-1SSL\s0 *ssl, void *buf, int num);" 4 .IX Item "int SSL_peek(SSL *ssl, void *buf, int num);" .IP "int \fBSSL_pending\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "int SSL_pending(const SSL *ssl);" .IP "int \fBSSL_read\fR(\s-1SSL\s0 *ssl, void *buf, int num);" 4 .IX Item "int SSL_read(SSL *ssl, void *buf, int num);" .IP "int \fBSSL_renegotiate\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "int SSL_renegotiate(SSL *ssl);" .IP "char *\fBSSL_rstate_string\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "char *SSL_rstate_string(SSL *ssl);" .IP "char *\fBSSL_rstate_string_long\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "char *SSL_rstate_string_long(SSL *ssl);" .IP "long \fBSSL_session_reused\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "long SSL_session_reused(SSL *ssl);" .IP "void \fBSSL_set_accept_state\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "void SSL_set_accept_state(SSL *ssl);" .IP "void \fBSSL_set_app_data\fR(\s-1SSL\s0 *ssl, char *arg);" 4 .IX Item "void SSL_set_app_data(SSL *ssl, char *arg);" .IP "void \fBSSL_set_bio\fR(\s-1SSL\s0 *ssl, \s-1BIO\s0 *rbio, \s-1BIO\s0 *wbio);" 4 .IX Item "void SSL_set_bio(SSL *ssl, BIO *rbio, BIO *wbio);" .IP "int \fBSSL_set_cipher_list\fR(\s-1SSL\s0 *ssl, char *str);" 4 .IX Item "int SSL_set_cipher_list(SSL *ssl, char *str);" .IP "void \fBSSL_set_client_CA_list\fR(\s-1SSL\s0 *ssl, \s-1STACK\s0 *list);" 4 .IX Item "void SSL_set_client_CA_list(SSL *ssl, STACK *list);" .IP "void \fBSSL_set_connect_state\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "void SSL_set_connect_state(SSL *ssl);" .IP "int \fBSSL_set_ex_data\fR(\s-1SSL\s0 *ssl, int idx, char *arg);" 4 .IX Item "int SSL_set_ex_data(SSL *ssl, int idx, char *arg);" .IP "int \fBSSL_set_fd\fR(\s-1SSL\s0 *ssl, int fd);" 4 .IX Item "int SSL_set_fd(SSL *ssl, int fd);" .IP "void \fBSSL_set_info_callback\fR(\s-1SSL\s0 *ssl, void (*cb);(void))" 4 .IX Item "void SSL_set_info_callback(SSL *ssl, void (*cb);(void))" .IP "void \fBSSL_set_msg_callback\fR(\s-1SSL\s0 *ctx, void (*cb)(int write_p, int version, int content_type, const void *buf, size_t len, \s-1SSL\s0 *ssl, void *arg));" 4 .IX Item "void SSL_set_msg_callback(SSL *ctx, void (*cb)(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg));" .IP "void \fBSSL_set_msg_callback_arg\fR(\s-1SSL\s0 *ctx, void *arg);" 4 .IX Item "void SSL_set_msg_callback_arg(SSL *ctx, void *arg);" .IP "void \fBSSL_set_options\fR(\s-1SSL\s0 *ssl, unsigned long op);" 4 .IX Item "void SSL_set_options(SSL *ssl, unsigned long op);" .IP "void \fBSSL_set_quiet_shutdown\fR(\s-1SSL\s0 *ssl, int mode);" 4 .IX Item "void SSL_set_quiet_shutdown(SSL *ssl, int mode);" .IP "void \fBSSL_set_read_ahead\fR(\s-1SSL\s0 *ssl, int yes);" 4 .IX Item "void SSL_set_read_ahead(SSL *ssl, int yes);" .IP "int \fBSSL_set_rfd\fR(\s-1SSL\s0 *ssl, int fd);" 4 .IX Item "int SSL_set_rfd(SSL *ssl, int fd);" .IP "int \fBSSL_set_session\fR(\s-1SSL\s0 *ssl, \s-1SSL_SESSION\s0 *session);" 4 .IX Item "int SSL_set_session(SSL *ssl, SSL_SESSION *session);" .IP "void \fBSSL_set_shutdown\fR(\s-1SSL\s0 *ssl, int mode);" 4 .IX Item "void SSL_set_shutdown(SSL *ssl, int mode);" .IP "int \fBSSL_set_ssl_method\fR(\s-1SSL\s0 *ssl, const \s-1SSL_METHOD\s0 *meth);" 4 .IX Item "int SSL_set_ssl_method(SSL *ssl, const SSL_METHOD *meth);" .IP "void \fBSSL_set_time\fR(\s-1SSL\s0 *ssl, long t);" 4 .IX Item "void SSL_set_time(SSL *ssl, long t);" .IP "void \fBSSL_set_timeout\fR(\s-1SSL\s0 *ssl, long t);" 4 .IX Item "void SSL_set_timeout(SSL *ssl, long t);" .IP "void \fBSSL_set_verify\fR(\s-1SSL\s0 *ssl, int mode, int (*callback);(void))" 4 .IX Item "void SSL_set_verify(SSL *ssl, int mode, int (*callback);(void))" .IP "void \fBSSL_set_verify_result\fR(\s-1SSL\s0 *ssl, long arg);" 4 .IX Item "void SSL_set_verify_result(SSL *ssl, long arg);" .IP "int \fBSSL_set_wfd\fR(\s-1SSL\s0 *ssl, int fd);" 4 .IX Item "int SSL_set_wfd(SSL *ssl, int fd);" .IP "int \fBSSL_shutdown\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "int SSL_shutdown(SSL *ssl);" .IP "int \fBSSL_state\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "int SSL_state(const SSL *ssl);" .IP "char *\fBSSL_state_string\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "char *SSL_state_string(const SSL *ssl);" .IP "char *\fBSSL_state_string_long\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "char *SSL_state_string_long(const SSL *ssl);" .IP "long \fBSSL_total_renegotiations\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "long SSL_total_renegotiations(SSL *ssl);" .IP "int \fBSSL_use_PrivateKey\fR(\s-1SSL\s0 *ssl, \s-1EVP_PKEY\s0 *pkey);" 4 .IX Item "int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey);" .IP "int \fBSSL_use_PrivateKey_ASN1\fR(int type, \s-1SSL\s0 *ssl, unsigned char *d, long len);" 4 .IX Item "int SSL_use_PrivateKey_ASN1(int type, SSL *ssl, unsigned char *d, long len);" .IP "int \fBSSL_use_PrivateKey_file\fR(\s-1SSL\s0 *ssl, char *file, int type);" 4 .IX Item "int SSL_use_PrivateKey_file(SSL *ssl, char *file, int type);" .IP "int \fBSSL_use_RSAPrivateKey\fR(\s-1SSL\s0 *ssl, \s-1RSA\s0 *rsa);" 4 .IX Item "int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa);" .IP "int \fBSSL_use_RSAPrivateKey_ASN1\fR(\s-1SSL\s0 *ssl, unsigned char *d, long len);" 4 .IX Item "int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, unsigned char *d, long len);" .IP "int \fBSSL_use_RSAPrivateKey_file\fR(\s-1SSL\s0 *ssl, char *file, int type);" 4 .IX Item "int SSL_use_RSAPrivateKey_file(SSL *ssl, char *file, int type);" .IP "int \fBSSL_use_certificate\fR(\s-1SSL\s0 *ssl, X509 *x);" 4 .IX Item "int SSL_use_certificate(SSL *ssl, X509 *x);" .IP "int \fBSSL_use_certificate_ASN1\fR(\s-1SSL\s0 *ssl, int len, unsigned char *d);" 4 .IX Item "int SSL_use_certificate_ASN1(SSL *ssl, int len, unsigned char *d);" .IP "int \fBSSL_use_certificate_file\fR(\s-1SSL\s0 *ssl, char *file, int type);" 4 .IX Item "int SSL_use_certificate_file(SSL *ssl, char *file, int type);" .IP "int \fBSSL_version\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "int SSL_version(const SSL *ssl);" .IP "int \fBSSL_want\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "int SSL_want(const SSL *ssl);" .IP "int \fBSSL_want_nothing\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "int SSL_want_nothing(const SSL *ssl);" .IP "int \fBSSL_want_read\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "int SSL_want_read(const SSL *ssl);" .IP "int \fBSSL_want_write\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "int SSL_want_write(const SSL *ssl);" .IP "int \fBSSL_want_x509_lookup\fR(const \s-1SSL\s0 *ssl);" 4 .IX Item "int SSL_want_x509_lookup(const SSL *ssl);" .IP "int \fBSSL_write\fR(\s-1SSL\s0 *ssl, const void *buf, int num);" 4 .IX Item "int SSL_write(SSL *ssl, const void *buf, int num);" .IP "void \fBSSL_set_psk_client_callback\fR(\s-1SSL\s0 *ssl, unsigned int (*callback)(\s-1SSL\s0 *ssl, const char *hint, char *identity, unsigned int max_identity_len, unsigned char *psk, unsigned int max_psk_len));" 4 .IX Item "void SSL_set_psk_client_callback(SSL *ssl, unsigned int (*callback)(SSL *ssl, const char *hint, char *identity, unsigned int max_identity_len, unsigned char *psk, unsigned int max_psk_len));" .IP "int \fBSSL_use_psk_identity_hint\fR(\s-1SSL\s0 *ssl, const char *hint);" 4 .IX Item "int SSL_use_psk_identity_hint(SSL *ssl, const char *hint);" .IP "void \fBSSL_set_psk_server_callback\fR(\s-1SSL\s0 *ssl, unsigned int (*callback)(\s-1SSL\s0 *ssl, const char *identity, unsigned char *psk, int max_psk_len));" 4 .IX Item "void SSL_set_psk_server_callback(SSL *ssl, unsigned int (*callback)(SSL *ssl, const char *identity, unsigned char *psk, int max_psk_len));" .IP "const char *\fBSSL_get_psk_identity_hint\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "const char *SSL_get_psk_identity_hint(SSL *ssl);" .IP "const char *\fBSSL_get_psk_identity\fR(\s-1SSL\s0 *ssl);" 4 .IX Item "const char *SSL_get_psk_identity(SSL *ssl);" .PD .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIopenssl\fR\|(1), \fIcrypto\fR\|(3), \&\fISSL_accept\fR\|(3), \fISSL_clear\fR\|(3), \&\fISSL_connect\fR\|(3), \&\fISSL_CIPHER_get_name\fR\|(3), \&\fISSL_COMP_add_compression_method\fR\|(3), \&\fISSL_CTX_add_extra_chain_cert\fR\|(3), \&\fISSL_CTX_add_session\fR\|(3), \&\fISSL_CTX_ctrl\fR\|(3), \&\fISSL_CTX_flush_sessions\fR\|(3), \&\fISSL_CTX_get_ex_new_index\fR\|(3), \&\fISSL_CTX_get_verify_mode\fR\|(3), \&\fISSL_CTX_load_verify_locations\fR\|(3) \&\fISSL_CTX_new\fR\|(3), \&\fISSL_CTX_sess_number\fR\|(3), \&\fISSL_CTX_sess_set_cache_size\fR\|(3), \&\fISSL_CTX_sess_set_get_cb\fR\|(3), \&\fISSL_CTX_sessions\fR\|(3), \&\fISSL_CTX_set_cert_store\fR\|(3), \&\fISSL_CTX_set_cert_verify_callback\fR\|(3), \&\fISSL_CTX_set_cipher_list\fR\|(3), \&\fISSL_CTX_set_client_CA_list\fR\|(3), \&\fISSL_CTX_set_client_cert_cb\fR\|(3), \&\fISSL_CTX_set_default_passwd_cb\fR\|(3), \&\fISSL_CTX_set_generate_session_id\fR\|(3), \&\fISSL_CTX_set_info_callback\fR\|(3), \&\fISSL_CTX_set_max_cert_list\fR\|(3), \&\fISSL_CTX_set_mode\fR\|(3), \&\fISSL_CTX_set_msg_callback\fR\|(3), \&\fISSL_CTX_set_options\fR\|(3), \&\fISSL_CTX_set_quiet_shutdown\fR\|(3), \&\fISSL_CTX_set_read_ahead\fR\|(3), \&\fISSL_CTX_set_session_cache_mode\fR\|(3), \&\fISSL_CTX_set_session_id_context\fR\|(3), \&\fISSL_CTX_set_ssl_version\fR\|(3), \&\fISSL_CTX_set_timeout\fR\|(3), \&\fISSL_CTX_set_tmp_rsa_callback\fR\|(3), \&\fISSL_CTX_set_tmp_dh_callback\fR\|(3), \&\fISSL_CTX_set_verify\fR\|(3), \&\fISSL_CTX_use_certificate\fR\|(3), \&\fISSL_alert_type_string\fR\|(3), \&\fISSL_do_handshake\fR\|(3), \&\fISSL_get_SSL_CTX\fR\|(3), \&\fISSL_get_ciphers\fR\|(3), \&\fISSL_get_client_CA_list\fR\|(3), \&\fISSL_get_default_timeout\fR\|(3), \&\fISSL_get_error\fR\|(3), \&\fISSL_get_ex_data_X509_STORE_CTX_idx\fR\|(3), \&\fISSL_get_ex_new_index\fR\|(3), \&\fISSL_get_fd\fR\|(3), \&\fISSL_get_peer_cert_chain\fR\|(3), \&\fISSL_get_rbio\fR\|(3), \&\fISSL_get_session\fR\|(3), \&\fISSL_get_verify_result\fR\|(3), \&\fISSL_get_version\fR\|(3), \&\fISSL_library_init\fR\|(3), \&\fISSL_load_client_CA_file\fR\|(3), \&\fISSL_new\fR\|(3), \&\fISSL_pending\fR\|(3), \&\fISSL_read\fR\|(3), \&\fISSL_rstate_string\fR\|(3), \&\fISSL_session_reused\fR\|(3), \&\fISSL_set_bio\fR\|(3), \&\fISSL_set_connect_state\fR\|(3), \&\fISSL_set_fd\fR\|(3), \&\fISSL_set_session\fR\|(3), \&\fISSL_set_shutdown\fR\|(3), \&\fISSL_shutdown\fR\|(3), \&\fISSL_state_string\fR\|(3), \&\fISSL_want\fR\|(3), \&\fISSL_write\fR\|(3), \&\fISSL_SESSION_free\fR\|(3), \&\fISSL_SESSION_get_ex_new_index\fR\|(3), \&\fISSL_SESSION_get_time\fR\|(3), \&\fId2i_SSL_SESSION\fR\|(3), \&\fISSL_CTX_set_psk_client_callback\fR\|(3), \&\fISSL_CTX_use_psk_identity_hint\fR\|(3), \&\fISSL_get_psk_identity\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" The \fIssl\fR\|(3) document appeared in OpenSSL 0.9.2 man3/EVP_EncryptInit.3000064400000101711147210533270010455 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EVP_EncryptInit 3" .TH EVP_EncryptInit 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EVP_CIPHER_CTX_init, EVP_EncryptInit_ex, EVP_EncryptUpdate, EVP_EncryptFinal_ex, EVP_DecryptInit_ex, EVP_DecryptUpdate, EVP_DecryptFinal_ex, EVP_CipherInit_ex, EVP_CipherUpdate, EVP_CipherFinal_ex, EVP_CIPHER_CTX_set_key_length, EVP_CIPHER_CTX_ctrl, EVP_CIPHER_CTX_cleanup, EVP_EncryptInit, EVP_EncryptFinal, EVP_DecryptInit, EVP_DecryptFinal, EVP_CipherInit, EVP_CipherFinal, EVP_get_cipherbyname, EVP_get_cipherbynid, EVP_get_cipherbyobj, EVP_CIPHER_nid, EVP_CIPHER_block_size, EVP_CIPHER_key_length, EVP_CIPHER_iv_length, EVP_CIPHER_flags, EVP_CIPHER_mode, EVP_CIPHER_type, EVP_CIPHER_CTX_cipher, EVP_CIPHER_CTX_nid, EVP_CIPHER_CTX_block_size, EVP_CIPHER_CTX_key_length, EVP_CIPHER_CTX_iv_length, EVP_CIPHER_CTX_get_app_data, EVP_CIPHER_CTX_set_app_data, EVP_CIPHER_CTX_type, EVP_CIPHER_CTX_flags, EVP_CIPHER_CTX_mode, EVP_CIPHER_param_to_asn1, EVP_CIPHER_asn1_to_param, EVP_CIPHER_CTX_set_padding, EVP_enc_null, EVP_des_cbc, EVP_des_ecb, EVP_des_cfb, EVP_des_ofb, EVP_des_ede_cbc, EVP_des_ede, EVP_des_ede_ofb, EVP_des_ede_cfb, EVP_des_ede3_cbc, EVP_des_ede3, EVP_des_ede3_ofb, EVP_des_ede3_cfb, EVP_desx_cbc, EVP_rc4, EVP_rc4_40, EVP_rc4_hmac_md5, EVP_idea_cbc, EVP_idea_ecb, EVP_idea_cfb, EVP_idea_ofb, EVP_rc2_cbc, EVP_rc2_ecb, EVP_rc2_cfb, EVP_rc2_ofb, EVP_rc2_40_cbc, EVP_rc2_64_cbc, EVP_bf_cbc, EVP_bf_ecb, EVP_bf_cfb, EVP_bf_ofb, EVP_cast5_cbc, EVP_cast5_ecb, EVP_cast5_cfb, EVP_cast5_ofb, EVP_rc5_32_12_16_cbc, EVP_rc5_32_12_16_ecb, EVP_rc5_32_12_16_cfb, EVP_rc5_32_12_16_ofb, EVP_aes_128_gcm, EVP_aes_192_gcm, EVP_aes_256_gcm, EVP_aes_128_ccm, EVP_aes_192_ccm, EVP_aes_256_ccm, EVP_aes_128_cbc_hmac_sha1, EVP_aes_256_cbc_hmac_sha1, EVP_aes_128_cbc_hmac_sha256, EVP_aes_256_cbc_hmac_sha256 \&\- EVP cipher routines .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *a); \& \& int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, \& ENGINE *impl, const unsigned char *key, const unsigned char *iv); \& int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, \& int *outl, const unsigned char *in, int inl); \& int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, \& int *outl); \& \& int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, \& ENGINE *impl, const unsigned char *key, const unsigned char *iv); \& int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, \& int *outl, const unsigned char *in, int inl); \& int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, \& int *outl); \& \& int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, \& ENGINE *impl, const unsigned char *key, const unsigned char *iv, int enc); \& int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, \& int *outl, const unsigned char *in, int inl); \& int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, \& int *outl); \& \& int EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, \& const unsigned char *key, const unsigned char *iv); \& int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, \& int *outl); \& \& int EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, \& const unsigned char *key, const unsigned char *iv); \& int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, \& int *outl); \& \& int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, \& const unsigned char *key, const unsigned char *iv, int enc); \& int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, \& int *outl); \& \& int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *x, int padding); \& int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen); \& int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr); \& int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *a); \& \& const EVP_CIPHER *EVP_get_cipherbyname(const char *name); \& #define EVP_get_cipherbynid(a) EVP_get_cipherbyname(OBJ_nid2sn(a)) \& #define EVP_get_cipherbyobj(a) EVP_get_cipherbynid(OBJ_obj2nid(a)) \& \& #define EVP_CIPHER_nid(e) ((e)\->nid) \& #define EVP_CIPHER_block_size(e) ((e)\->block_size) \& #define EVP_CIPHER_key_length(e) ((e)\->key_len) \& #define EVP_CIPHER_iv_length(e) ((e)\->iv_len) \& #define EVP_CIPHER_flags(e) ((e)\->flags) \& #define EVP_CIPHER_mode(e) ((e)\->flags) & EVP_CIPH_MODE) \& int EVP_CIPHER_type(const EVP_CIPHER *ctx); \& \& #define EVP_CIPHER_CTX_cipher(e) ((e)\->cipher) \& #define EVP_CIPHER_CTX_nid(e) ((e)\->cipher\->nid) \& #define EVP_CIPHER_CTX_block_size(e) ((e)\->cipher\->block_size) \& #define EVP_CIPHER_CTX_key_length(e) ((e)\->key_len) \& #define EVP_CIPHER_CTX_iv_length(e) ((e)\->cipher\->iv_len) \& #define EVP_CIPHER_CTX_get_app_data(e) ((e)\->app_data) \& #define EVP_CIPHER_CTX_set_app_data(e,d) ((e)\->app_data=(char *)(d)) \& #define EVP_CIPHER_CTX_type(c) EVP_CIPHER_type(EVP_CIPHER_CTX_cipher(c)) \& #define EVP_CIPHER_CTX_flags(e) ((e)\->cipher\->flags) \& #define EVP_CIPHER_CTX_mode(e) ((e)\->cipher\->flags & EVP_CIPH_MODE) \& \& int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type); \& int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \s-1EVP\s0 cipher routines are a high level interface to certain symmetric ciphers. .PP \&\fIEVP_CIPHER_CTX_init()\fR initializes cipher contex \fBctx\fR. .PP \&\fIEVP_EncryptInit_ex()\fR sets up cipher context \fBctx\fR for encryption with cipher \fBtype\fR from \s-1ENGINE \s0\fBimpl\fR. \fBctx\fR must be initialized before calling this function. \fBtype\fR is normally supplied by a function such as \fIEVP_aes_256_cbc()\fR. If \fBimpl\fR is \s-1NULL\s0 then the default implementation is used. \fBkey\fR is the symmetric key to use and \fBiv\fR is the \s-1IV\s0 to use (if necessary), the actual number of bytes used for the key and \s-1IV\s0 depends on the cipher. It is possible to set all parameters to \s-1NULL\s0 except \fBtype\fR in an initial call and supply the remaining parameters in subsequent calls, all of which have \fBtype\fR set to \s-1NULL.\s0 This is done when the default cipher parameters are not appropriate. .PP \&\fIEVP_EncryptUpdate()\fR encrypts \fBinl\fR bytes from the buffer \fBin\fR and writes the encrypted version to \fBout\fR. This function can be called multiple times to encrypt successive blocks of data. The amount of data written depends on the block alignment of the encrypted data: as a result the amount of data written may be anything from zero bytes to (inl + cipher_block_size \- 1) so \fBout\fR should contain sufficient room. The actual number of bytes written is placed in \fBoutl\fR. .PP If padding is enabled (the default) then \fIEVP_EncryptFinal_ex()\fR encrypts the \*(L"final\*(R" data, that is any data that remains in a partial block. It uses standard block padding (aka \s-1PKCS\s0 padding). The encrypted final data is written to \fBout\fR which should have sufficient space for one cipher block. The number of bytes written is placed in \fBoutl\fR. After this function is called the encryption operation is finished and no further calls to \fIEVP_EncryptUpdate()\fR should be made. .PP If padding is disabled then \fIEVP_EncryptFinal_ex()\fR will not encrypt any more data and it will return an error if any data remains in a partial block: that is if the total data length is not a multiple of the block size. .PP \&\fIEVP_DecryptInit_ex()\fR, \fIEVP_DecryptUpdate()\fR and \fIEVP_DecryptFinal_ex()\fR are the corresponding decryption operations. \fIEVP_DecryptFinal()\fR will return an error code if padding is enabled and the final block is not correctly formatted. The parameters and restrictions are identical to the encryption operations except that if padding is enabled the decrypted data buffer \fBout\fR passed to \fIEVP_DecryptUpdate()\fR should have sufficient room for (\fBinl\fR + cipher_block_size) bytes unless the cipher block size is 1 in which case \fBinl\fR bytes is sufficient. .PP \&\fIEVP_CipherInit_ex()\fR, \fIEVP_CipherUpdate()\fR and \fIEVP_CipherFinal_ex()\fR are functions that can be used for decryption or encryption. The operation performed depends on the value of the \fBenc\fR parameter. It should be set to 1 for encryption, 0 for decryption and \-1 to leave the value unchanged (the actual value of 'enc' being supplied in a previous call). .PP \&\fIEVP_CIPHER_CTX_cleanup()\fR clears all information from a cipher context and free up any allocated memory associate with it. It should be called after all operations using a cipher are complete so sensitive information does not remain in memory. .PP \&\fIEVP_EncryptInit()\fR, \fIEVP_DecryptInit()\fR and \fIEVP_CipherInit()\fR behave in a similar way to \fIEVP_EncryptInit_ex()\fR, EVP_DecryptInit_ex and \&\fIEVP_CipherInit_ex()\fR except the \fBctx\fR parameter does not need to be initialized and they always use the default cipher implementation. .PP \&\fIEVP_EncryptFinal()\fR, \fIEVP_DecryptFinal()\fR and \fIEVP_CipherFinal()\fR are identical to \fIEVP_EncryptFinal_ex()\fR, \fIEVP_DecryptFinal_ex()\fR and \&\fIEVP_CipherFinal_ex()\fR. In previous releases they also cleaned up the \fBctx\fR, but this is no longer done and \fIEVP_CIPHER_CTX_clean()\fR must be called to free any context resources. .PP \&\fIEVP_get_cipherbyname()\fR, \fIEVP_get_cipherbynid()\fR and \fIEVP_get_cipherbyobj()\fR return an \s-1EVP_CIPHER\s0 structure when passed a cipher name, a \s-1NID\s0 or an \&\s-1ASN1_OBJECT\s0 structure. .PP \&\fIEVP_CIPHER_nid()\fR and \fIEVP_CIPHER_CTX_nid()\fR return the \s-1NID\s0 of a cipher when passed an \fB\s-1EVP_CIPHER\s0\fR or \fB\s-1EVP_CIPHER_CTX\s0\fR structure. The actual \s-1NID\s0 value is an internal value which may not have a corresponding \s-1OBJECT IDENTIFIER.\s0 .PP \&\fIEVP_CIPHER_CTX_set_padding()\fR enables or disables padding. By default encryption operations are padded using standard block padding and the padding is checked and removed when decrypting. If the \fBpad\fR parameter is zero then no padding is performed, the total amount of data encrypted or decrypted must then be a multiple of the block size or an error will occur. .PP \&\fIEVP_CIPHER_key_length()\fR and \fIEVP_CIPHER_CTX_key_length()\fR return the key length of a cipher when passed an \fB\s-1EVP_CIPHER\s0\fR or \fB\s-1EVP_CIPHER_CTX\s0\fR structure. The constant \fB\s-1EVP_MAX_KEY_LENGTH\s0\fR is the maximum key length for all ciphers. Note: although \fIEVP_CIPHER_key_length()\fR is fixed for a given cipher, the value of \fIEVP_CIPHER_CTX_key_length()\fR may be different for variable key length ciphers. .PP \&\fIEVP_CIPHER_CTX_set_key_length()\fR sets the key length of the cipher ctx. If the cipher is a fixed length cipher then attempting to set the key length to any value other than the fixed value is an error. .PP \&\fIEVP_CIPHER_iv_length()\fR and \fIEVP_CIPHER_CTX_iv_length()\fR return the \s-1IV\s0 length of a cipher when passed an \fB\s-1EVP_CIPHER\s0\fR or \fB\s-1EVP_CIPHER_CTX\s0\fR. It will return zero if the cipher does not use an \s-1IV. \s0 The constant \&\fB\s-1EVP_MAX_IV_LENGTH\s0\fR is the maximum \s-1IV\s0 length for all ciphers. .PP \&\fIEVP_CIPHER_block_size()\fR and \fIEVP_CIPHER_CTX_block_size()\fR return the block size of a cipher when passed an \fB\s-1EVP_CIPHER\s0\fR or \fB\s-1EVP_CIPHER_CTX\s0\fR structure. The constant \fB\s-1EVP_MAX_IV_LENGTH\s0\fR is also the maximum block length for all ciphers. .PP \&\fIEVP_CIPHER_type()\fR and \fIEVP_CIPHER_CTX_type()\fR return the type of the passed cipher or context. This \*(L"type\*(R" is the actual \s-1NID\s0 of the cipher \s-1OBJECT IDENTIFIER\s0 as such it ignores the cipher parameters and 40 bit \s-1RC2\s0 and 128 bit \s-1RC2\s0 have the same \s-1NID.\s0 If the cipher does not have an object identifier or does not have \s-1ASN1\s0 support this function will return \&\fBNID_undef\fR. .PP \&\fIEVP_CIPHER_CTX_cipher()\fR returns the \fB\s-1EVP_CIPHER\s0\fR structure when passed an \fB\s-1EVP_CIPHER_CTX\s0\fR structure. .PP \&\fIEVP_CIPHER_mode()\fR and \fIEVP_CIPHER_CTX_mode()\fR return the block cipher mode: \&\s-1EVP_CIPH_ECB_MODE, EVP_CIPH_CBC_MODE, EVP_CIPH_CFB_MODE\s0 or \&\s-1EVP_CIPH_OFB_MODE.\s0 If the cipher is a stream cipher then \&\s-1EVP_CIPH_STREAM_CIPHER\s0 is returned. .PP \&\fIEVP_CIPHER_param_to_asn1()\fR sets the AlgorithmIdentifier \*(L"parameter\*(R" based on the passed cipher. This will typically include any parameters and an \&\s-1IV.\s0 The cipher \s-1IV \s0(if any) must be set when this call is made. This call should be made before the cipher is actually \*(L"used\*(R" (before any \&\fIEVP_EncryptUpdate()\fR, \fIEVP_DecryptUpdate()\fR calls for example). This function may fail if the cipher does not have any \s-1ASN1\s0 support. .PP \&\fIEVP_CIPHER_asn1_to_param()\fR sets the cipher parameters based on an \s-1ASN1\s0 AlgorithmIdentifier \*(L"parameter\*(R". The precise effect depends on the cipher In the case of \s-1RC2,\s0 for example, it will set the \s-1IV\s0 and effective key length. This function should be called after the base cipher type is set but before the key is set. For example \fIEVP_CipherInit()\fR will be called with the \s-1IV\s0 and key set to \s-1NULL,\s0 \fIEVP_CIPHER_asn1_to_param()\fR will be called and finally \&\fIEVP_CipherInit()\fR again with all parameters except the key set to \s-1NULL.\s0 It is possible for this function to fail if the cipher does not have any \s-1ASN1\s0 support or the parameters cannot be set (for example the \s-1RC2\s0 effective key length is not supported. .PP \&\fIEVP_CIPHER_CTX_ctrl()\fR allows various cipher specific parameters to be determined and set. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIEVP_EncryptInit_ex()\fR, \fIEVP_EncryptUpdate()\fR and \fIEVP_EncryptFinal_ex()\fR return 1 for success and 0 for failure. .PP \&\fIEVP_DecryptInit_ex()\fR and \fIEVP_DecryptUpdate()\fR return 1 for success and 0 for failure. \&\fIEVP_DecryptFinal_ex()\fR returns 0 if the decrypt failed or 1 for success. .PP \&\fIEVP_CipherInit_ex()\fR and \fIEVP_CipherUpdate()\fR return 1 for success and 0 for failure. \&\fIEVP_CipherFinal_ex()\fR returns 0 for a decryption failure or 1 for success. .PP \&\fIEVP_CIPHER_CTX_cleanup()\fR returns 1 for success and 0 for failure. .PP \&\fIEVP_get_cipherbyname()\fR, \fIEVP_get_cipherbynid()\fR and \fIEVP_get_cipherbyobj()\fR return an \fB\s-1EVP_CIPHER\s0\fR structure or \s-1NULL\s0 on error. .PP \&\fIEVP_CIPHER_nid()\fR and \fIEVP_CIPHER_CTX_nid()\fR return a \s-1NID.\s0 .PP \&\fIEVP_CIPHER_block_size()\fR and \fIEVP_CIPHER_CTX_block_size()\fR return the block size. .PP \&\fIEVP_CIPHER_key_length()\fR and \fIEVP_CIPHER_CTX_key_length()\fR return the key length. .PP \&\fIEVP_CIPHER_CTX_set_padding()\fR always returns 1. .PP \&\fIEVP_CIPHER_iv_length()\fR and \fIEVP_CIPHER_CTX_iv_length()\fR return the \s-1IV\s0 length or zero if the cipher does not use an \s-1IV.\s0 .PP \&\fIEVP_CIPHER_type()\fR and \fIEVP_CIPHER_CTX_type()\fR return the \s-1NID\s0 of the cipher's \&\s-1OBJECT IDENTIFIER\s0 or NID_undef if it has no defined \s-1OBJECT IDENTIFIER.\s0 .PP \&\fIEVP_CIPHER_CTX_cipher()\fR returns an \fB\s-1EVP_CIPHER\s0\fR structure. .PP \&\fIEVP_CIPHER_param_to_asn1()\fR and \fIEVP_CIPHER_asn1_to_param()\fR return 1 for success or zero for failure. .SH "CIPHER LISTING" .IX Header "CIPHER LISTING" All algorithms have a fixed key length unless otherwise stated. .IP "\fIEVP_enc_null()\fR" 4 .IX Item "EVP_enc_null()" Null cipher: does nothing. .IP "EVP_des_cbc(void), EVP_des_ecb(void), EVP_des_cfb(void), EVP_des_ofb(void)" 4 .IX Item "EVP_des_cbc(void), EVP_des_ecb(void), EVP_des_cfb(void), EVP_des_ofb(void)" \&\s-1DES\s0 in \s-1CBC, ECB, CFB\s0 and \s-1OFB\s0 modes respectively. .IP "EVP_des_ede_cbc(void), \fIEVP_des_ede()\fR, EVP_des_ede_ofb(void), EVP_des_ede_cfb(void)" 4 .IX Item "EVP_des_ede_cbc(void), EVP_des_ede(), EVP_des_ede_ofb(void), EVP_des_ede_cfb(void)" Two key triple \s-1DES\s0 in \s-1CBC, ECB, CFB\s0 and \s-1OFB\s0 modes respectively. .IP "EVP_des_ede3_cbc(void), \fIEVP_des_ede3()\fR, EVP_des_ede3_ofb(void), EVP_des_ede3_cfb(void)" 4 .IX Item "EVP_des_ede3_cbc(void), EVP_des_ede3(), EVP_des_ede3_ofb(void), EVP_des_ede3_cfb(void)" Three key triple \s-1DES\s0 in \s-1CBC, ECB, CFB\s0 and \s-1OFB\s0 modes respectively. .IP "EVP_desx_cbc(void)" 4 .IX Item "EVP_desx_cbc(void)" \&\s-1DESX\s0 algorithm in \s-1CBC\s0 mode. .IP "EVP_rc4(void)" 4 .IX Item "EVP_rc4(void)" \&\s-1RC4\s0 stream cipher. This is a variable key length cipher with default key length 128 bits. .IP "EVP_rc4_40(void)" 4 .IX Item "EVP_rc4_40(void)" \&\s-1RC4\s0 stream cipher with 40 bit key length. This is obsolete and new code should use \fIEVP_rc4()\fR and the \fIEVP_CIPHER_CTX_set_key_length()\fR function. .IP "\fIEVP_idea_cbc()\fR EVP_idea_ecb(void), EVP_idea_cfb(void), EVP_idea_ofb(void), EVP_idea_cbc(void)" 4 .IX Item "EVP_idea_cbc() EVP_idea_ecb(void), EVP_idea_cfb(void), EVP_idea_ofb(void), EVP_idea_cbc(void)" \&\s-1IDEA\s0 encryption algorithm in \s-1CBC, ECB, CFB\s0 and \s-1OFB\s0 modes respectively. .IP "EVP_rc2_cbc(void), EVP_rc2_ecb(void), EVP_rc2_cfb(void), EVP_rc2_ofb(void)" 4 .IX Item "EVP_rc2_cbc(void), EVP_rc2_ecb(void), EVP_rc2_cfb(void), EVP_rc2_ofb(void)" \&\s-1RC2\s0 encryption algorithm in \s-1CBC, ECB, CFB\s0 and \s-1OFB\s0 modes respectively. This is a variable key length cipher with an additional parameter called \*(L"effective key bits\*(R" or \*(L"effective key length\*(R". By default both are set to 128 bits. .IP "EVP_rc2_40_cbc(void), EVP_rc2_64_cbc(void)" 4 .IX Item "EVP_rc2_40_cbc(void), EVP_rc2_64_cbc(void)" \&\s-1RC2\s0 algorithm in \s-1CBC\s0 mode with a default key length and effective key length of 40 and 64 bits. These are obsolete and new code should use \fIEVP_rc2_cbc()\fR, \fIEVP_CIPHER_CTX_set_key_length()\fR and \&\fIEVP_CIPHER_CTX_ctrl()\fR to set the key length and effective key length. .IP "EVP_bf_cbc(void), EVP_bf_ecb(void), EVP_bf_cfb(void), EVP_bf_ofb(void);" 4 .IX Item "EVP_bf_cbc(void), EVP_bf_ecb(void), EVP_bf_cfb(void), EVP_bf_ofb(void);" Blowfish encryption algorithm in \s-1CBC, ECB, CFB\s0 and \s-1OFB\s0 modes respectively. This is a variable key length cipher. .IP "EVP_cast5_cbc(void), EVP_cast5_ecb(void), EVP_cast5_cfb(void), EVP_cast5_ofb(void)" 4 .IX Item "EVP_cast5_cbc(void), EVP_cast5_ecb(void), EVP_cast5_cfb(void), EVP_cast5_ofb(void)" \&\s-1CAST\s0 encryption algorithm in \s-1CBC, ECB, CFB\s0 and \s-1OFB\s0 modes respectively. This is a variable key length cipher. .IP "EVP_rc5_32_12_16_cbc(void), EVP_rc5_32_12_16_ecb(void), EVP_rc5_32_12_16_cfb(void), EVP_rc5_32_12_16_ofb(void)" 4 .IX Item "EVP_rc5_32_12_16_cbc(void), EVP_rc5_32_12_16_ecb(void), EVP_rc5_32_12_16_cfb(void), EVP_rc5_32_12_16_ofb(void)" \&\s-1RC5\s0 encryption algorithm in \s-1CBC, ECB, CFB\s0 and \s-1OFB\s0 modes respectively. This is a variable key length cipher with an additional \*(L"number of rounds\*(R" parameter. By default the key length is set to 128 bits and 12 rounds. .IP "EVP_aes_128_gcm(void), EVP_aes_192_gcm(void), EVP_aes_256_gcm(void)" 4 .IX Item "EVP_aes_128_gcm(void), EVP_aes_192_gcm(void), EVP_aes_256_gcm(void)" \&\s-1AES\s0 Galois Counter Mode (\s-1GCM\s0) for 128, 192 and 256 bit keys respectively. These ciphers require additional control operations to function correctly: see \&\*(L"\s-1GCM\s0 mode\*(R" section below for details. .IP "EVP_aes_128_ccm(void), EVP_aes_192_ccm(void), EVP_aes_256_ccm(void)" 4 .IX Item "EVP_aes_128_ccm(void), EVP_aes_192_ccm(void), EVP_aes_256_ccm(void)" \&\s-1AES\s0 Counter with CBC-MAC Mode (\s-1CCM\s0) for 128, 192 and 256 bit keys respectively. These ciphers require additional control operations to function correctly: see \&\s-1CCM\s0 mode section below for details. .SH "GCM Mode" .IX Header "GCM Mode" For \s-1GCM\s0 mode ciphers the behaviour of the \s-1EVP\s0 interface is subtly altered and several \s-1GCM\s0 specific ctrl operations are supported. .PP To specify any additional authenticated data (\s-1AAD\s0) a call to \fIEVP_CipherUpdate()\fR, \&\fIEVP_EncryptUpdate()\fR or \fIEVP_DecryptUpdate()\fR should be made with the output parameter \fBout\fR set to \fB\s-1NULL\s0\fR. .PP When decrypting the return value of \fIEVP_DecryptFinal()\fR or \fIEVP_CipherFinal()\fR indicates if the operation was successful. If it does not indicate success the authentication operation has failed and any output data \fB\s-1MUST NOT\s0\fR be used as it is corrupted. .PP The following ctrls are supported in \s-1GCM\s0 mode: .PP .Vb 1 \& EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_GCM_SET_IVLEN, ivlen, NULL); .Ve .PP Sets the \s-1GCM IV\s0 length: this call can only be made before specifying an \s-1IV.\s0 If not called a default \s-1IV\s0 length is used (96 bits for \s-1AES\s0). .PP .Vb 1 \& EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_GCM_GET_TAG, taglen, tag); .Ve .PP Writes \fBtaglen\fR bytes of the tag value to the buffer indicated by \fBtag\fR. This call can only be made when encrypting data and \fBafter\fR all data has been processed (e.g. after an \fIEVP_EncryptFinal()\fR call). .PP .Vb 1 \& EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_GCM_SET_TAG, taglen, tag); .Ve .PP Sets the expected tag to \fBtaglen\fR bytes from \fBtag\fR. This call is only legal when decrypting data. .SH "CCM Mode" .IX Header "CCM Mode" The behaviour of \s-1CCM\s0 mode ciphers is similar to \s-1CCM\s0 mode but with a few additional requirements and different ctrl values. .PP Like \s-1GCM\s0 mode any additional authenticated data (\s-1AAD\s0) is passed by calling \&\fIEVP_CipherUpdate()\fR, \fIEVP_EncryptUpdate()\fR or \fIEVP_DecryptUpdate()\fR with the output parameter \fBout\fR set to \fB\s-1NULL\s0\fR. Additionally the total plaintext or ciphertext length \fB\s-1MUST\s0\fR be passed to \fIEVP_CipherUpdate()\fR, \fIEVP_EncryptUpdate()\fR or \&\fIEVP_DecryptUpdate()\fR with the output and input parameters (\fBin\fR and \fBout\fR) set to \fB\s-1NULL\s0\fR and the length passed in the \fBinl\fR parameter. .PP The following ctrls are supported in \s-1CCM\s0 mode: .PP .Vb 1 \& EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_CCM_SET_TAG, taglen, tag); .Ve .PP This call is made to set the expected \fB\s-1CCM\s0\fR tag value when decrypting or the length of the tag (with the \fBtag\fR parameter set to \s-1NULL\s0) when encrypting. The tag length is often referred to as \fBM\fR. If not set a default value is used (12 for \s-1AES\s0). .PP .Vb 1 \& EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_CCM_SET_L, ivlen, NULL); .Ve .PP Sets the \s-1CCM \s0\fBL\fR value. If not set a default is used (8 for \s-1AES\s0). .PP .Vb 1 \& EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_CCM_SET_IVLEN, ivlen, NULL); .Ve .PP Sets the \s-1CCM\s0 nonce (\s-1IV\s0) length: this call can only be made before specifying an nonce value. The nonce length is given by \fB15 \- L\fR so it is 7 by default for \s-1AES.\s0 .SH "NOTES" .IX Header "NOTES" Where possible the \fB\s-1EVP\s0\fR interface to symmetric ciphers should be used in preference to the low level interfaces. This is because the code then becomes transparent to the cipher used and much more flexible. Additionally, the \&\fB\s-1EVP\s0\fR interface will ensure the use of platform specific cryptographic acceleration such as AES-NI (the low level interfaces do not provide the guarantee). .PP \&\s-1PKCS\s0 padding works by adding \fBn\fR padding bytes of value \fBn\fR to make the total length of the encrypted data a multiple of the block size. Padding is always added so if the data is already a multiple of the block size \fBn\fR will equal the block size. For example if the block size is 8 and 11 bytes are to be encrypted then 5 padding bytes of value 5 will be added. .PP When decrypting the final block is checked to see if it has the correct form. .PP Although the decryption operation can produce an error if padding is enabled, it is not a strong test that the input data or key is correct. A random block has better than 1 in 256 chance of being of the correct format and problems with the input data earlier on will not produce a final decrypt error. .PP If padding is disabled then the decryption operation will always succeed if the total amount of data decrypted is a multiple of the block size. .PP The functions \fIEVP_EncryptInit()\fR, \fIEVP_EncryptFinal()\fR, \fIEVP_DecryptInit()\fR, \&\fIEVP_CipherInit()\fR and \fIEVP_CipherFinal()\fR are obsolete but are retained for compatibility with existing code. New code should use \fIEVP_EncryptInit_ex()\fR, \&\fIEVP_EncryptFinal_ex()\fR, \fIEVP_DecryptInit_ex()\fR, \fIEVP_DecryptFinal_ex()\fR, \&\fIEVP_CipherInit_ex()\fR and \fIEVP_CipherFinal_ex()\fR because they can reuse an existing context without allocating and freeing it up on each call. .SH "BUGS" .IX Header "BUGS" For \s-1RC5\s0 the number of rounds can currently only be set to 8, 12 or 16. This is a limitation of the current \s-1RC5\s0 code rather than the \s-1EVP\s0 interface. .PP \&\s-1EVP_MAX_KEY_LENGTH\s0 and \s-1EVP_MAX_IV_LENGTH\s0 only refer to the internal ciphers with default key lengths. If custom ciphers exceed these values the results are unpredictable. This is because it has become standard practice to define a generic key as a fixed unsigned char array containing \s-1EVP_MAX_KEY_LENGTH\s0 bytes. .PP The \s-1ASN1\s0 code is incomplete (and sometimes inaccurate) it has only been tested for certain common S/MIME ciphers (\s-1RC2, DES,\s0 triple \s-1DES\s0) in \s-1CBC\s0 mode. .SH "EXAMPLES" .IX Header "EXAMPLES" Encrypt a string using \s-1IDEA:\s0 .PP .Vb 12 \& int do_crypt(char *outfile) \& { \& unsigned char outbuf[1024]; \& int outlen, tmplen; \& /* Bogus key and IV: we\*(Aqd normally set these from \& * another source. \& */ \& unsigned char key[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; \& unsigned char iv[] = {1,2,3,4,5,6,7,8}; \& char intext[] = "Some Crypto Text"; \& EVP_CIPHER_CTX ctx; \& FILE *out; \& \& EVP_CIPHER_CTX_init(&ctx); \& EVP_EncryptInit_ex(&ctx, EVP_idea_cbc(), NULL, key, iv); \& \& if(!EVP_EncryptUpdate(&ctx, outbuf, &outlen, intext, strlen(intext))) \& { \& /* Error */ \& return 0; \& } \& /* Buffer passed to EVP_EncryptFinal() must be after data just \& * encrypted to avoid overwriting it. \& */ \& if(!EVP_EncryptFinal_ex(&ctx, outbuf + outlen, &tmplen)) \& { \& /* Error */ \& return 0; \& } \& outlen += tmplen; \& EVP_CIPHER_CTX_cleanup(&ctx); \& /* Need binary mode for fopen because encrypted data is \& * binary data. Also cannot use strlen() on it because \& * it wont be null terminated and may contain embedded \& * nulls. \& */ \& out = fopen(outfile, "wb"); \& fwrite(outbuf, 1, outlen, out); \& fclose(out); \& return 1; \& } .Ve .PP The ciphertext from the above example can be decrypted using the \fBopenssl\fR utility with the command line (shown on two lines for clarity): .PP .Vb 2 \& openssl idea \-d . .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "buffer 3" .TH buffer 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BUF_MEM_new, BUF_MEM_new_ex, BUF_MEM_free, BUF_MEM_grow \- simple character array structure .PP BUF_strdup, BUF_strndup, BUF_memdup, BUF_strlcpy, BUF_strlcat \- standard C library equivalents .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& BUF_MEM *BUF_MEM_new(void); \& \& void BUF_MEM_free(BUF_MEM *a); \& \& int BUF_MEM_grow(BUF_MEM *str, int len); \& \& char *BUF_strdup(const char *str); \& \& char *BUF_strndup(const char *str, size_t siz); \& \& void *BUF_memdup(const void *data, size_t siz); \& \& size_t BUF_strlcpy(char *dst, const char *src, size_t size); \& \& size_t BUF_strlcat(char *dst, const char *src, size_t size); \& \& size_t BUF_strnlen(const char *str, size_t maxlen); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The buffer library handles simple character arrays. Buffers are used for various purposes in the library, most notably memory BIOs. .PP \&\fIBUF_MEM_new()\fR allocates a new buffer of zero size. .PP \&\fIBUF_MEM_free()\fR frees up an already existing buffer. The data is zeroed before freeing up in case the buffer contains sensitive data. .PP \&\fIBUF_MEM_grow()\fR changes the size of an already existing buffer to \&\fBlen\fR. Any data already in the buffer is preserved if it increases in size. .PP \&\fIBUF_strdup()\fR, \fIBUF_strndup()\fR, \fIBUF_memdup()\fR, \fIBUF_strlcpy()\fR, \&\fIBUF_strlcat()\fR and BUF_strnlen are equivalents of the standard C library functions. The \fIdup()\fR functions use \fIOPENSSL_malloc()\fR underneath and so should be used in preference to the standard library for memory leak checking or replacing the \fImalloc()\fR function. .PP Memory allocated from these functions should be freed up using the \&\fIOPENSSL_free()\fR function. .PP BUF_strndup makes the explicit guarantee that it will never read past the first \fBsiz\fR bytes of \fBstr\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBUF_MEM_new()\fR returns the buffer or \s-1NULL\s0 on error. .PP \&\fIBUF_MEM_free()\fR has no return value. .PP \&\fIBUF_MEM_grow()\fR returns zero on error or the new size (i.e. \fBlen\fR). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIbio\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIBUF_MEM_new()\fR, \fIBUF_MEM_free()\fR and \fIBUF_MEM_grow()\fR are available in all versions of SSLeay and OpenSSL. \fIBUF_strdup()\fR was added in SSLeay 0.8. man3/ERR_error_string.3000064400000014733147210533270010731 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ERR_error_string 3" .TH ERR_error_string 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ERR_error_string, ERR_error_string_n, ERR_lib_error_string, ERR_func_error_string, ERR_reason_error_string \- obtain human\-readable error message .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& char *ERR_error_string(unsigned long e, char *buf); \& void ERR_error_string_n(unsigned long e, char *buf, size_t len); \& \& const char *ERR_lib_error_string(unsigned long e); \& const char *ERR_func_error_string(unsigned long e); \& const char *ERR_reason_error_string(unsigned long e); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIERR_error_string()\fR generates a human-readable string representing the error code \fIe\fR, and places it at \fIbuf\fR. \fIbuf\fR must be at least 120 bytes long. If \fIbuf\fR is \fB\s-1NULL\s0\fR, the error string is placed in a static buffer. \&\fIERR_error_string_n()\fR is a variant of \fIERR_error_string()\fR that writes at most \fIlen\fR characters (including the terminating 0) and truncates the string if necessary. For \fIERR_error_string_n()\fR, \fIbuf\fR may not be \fB\s-1NULL\s0\fR. .PP The string will have the following format: .PP .Vb 1 \& error:[error code]:[library name]:[function name]:[reason string] .Ve .PP \&\fIerror code\fR is an 8 digit hexadecimal number, \fIlibrary name\fR, \&\fIfunction name\fR and \fIreason string\fR are \s-1ASCII\s0 text. .PP \&\fIERR_lib_error_string()\fR, \fIERR_func_error_string()\fR and \&\fIERR_reason_error_string()\fR return the library name, function name and reason string respectively. .PP The OpenSSL error strings should be loaded by calling \&\fIERR_load_crypto_strings\fR\|(3) or, for \s-1SSL\s0 applications, \fISSL_load_error_strings\fR\|(3) first. If there is no text string registered for the given error code, the error string will contain the numeric code. .PP \&\fIERR_print_errors\fR\|(3) can be used to print all error codes currently in the queue. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIERR_error_string()\fR returns a pointer to a static buffer containing the string if \fIbuf\fR \fB== \s-1NULL\s0\fR, \fIbuf\fR otherwise. .PP \&\fIERR_lib_error_string()\fR, \fIERR_func_error_string()\fR and \&\fIERR_reason_error_string()\fR return the strings, and \fB\s-1NULL\s0\fR if none is registered for the error code. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIerr\fR\|(3), \fIERR_get_error\fR\|(3), \&\fIERR_load_crypto_strings\fR\|(3), \&\fISSL_load_error_strings\fR\|(3) \&\fIERR_print_errors\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIERR_error_string()\fR is available in all versions of SSLeay and OpenSSL. \&\fIERR_error_string_n()\fR was added in OpenSSL 0.9.6. man3/ERR_get_error.3000064400000015661147210533270010203 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ERR_get_error 3" .TH ERR_get_error 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ERR_get_error, ERR_peek_error, ERR_peek_last_error, ERR_get_error_line, ERR_peek_error_line, ERR_peek_last_error_line, ERR_get_error_line_data, ERR_peek_error_line_data, ERR_peek_last_error_line_data \- obtain error code and data .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& unsigned long ERR_get_error(void); \& unsigned long ERR_peek_error(void); \& unsigned long ERR_peek_last_error(void); \& \& unsigned long ERR_get_error_line(const char **file, int *line); \& unsigned long ERR_peek_error_line(const char **file, int *line); \& unsigned long ERR_peek_last_error_line(const char **file, int *line); \& \& unsigned long ERR_get_error_line_data(const char **file, int *line, \& const char **data, int *flags); \& unsigned long ERR_peek_error_line_data(const char **file, int *line, \& const char **data, int *flags); \& unsigned long ERR_peek_last_error_line_data(const char **file, int *line, \& const char **data, int *flags); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIERR_get_error()\fR returns the earliest error code from the thread's error queue and removes the entry. This function can be called repeatedly until there are no more error codes to return. .PP \&\fIERR_peek_error()\fR returns the earliest error code from the thread's error queue without modifying it. .PP \&\fIERR_peek_last_error()\fR returns the latest error code from the thread's error queue without modifying it. .PP See \s-1\fIERR_GET_LIB\s0\fR\|(3) for obtaining information about location and reason of the error, and \&\fIERR_error_string\fR\|(3) for human-readable error messages. .PP \&\fIERR_get_error_line()\fR, \fIERR_peek_error_line()\fR and \&\fIERR_peek_last_error_line()\fR are the same as the above, but they additionally store the file name and line number where the error occurred in *\fBfile\fR and *\fBline\fR, unless these are \fB\s-1NULL\s0\fR. .PP \&\fIERR_get_error_line_data()\fR, \fIERR_peek_error_line_data()\fR and \&\fIERR_peek_last_error_line_data()\fR store additional data and flags associated with the error code in *\fBdata\fR and *\fBflags\fR, unless these are \fB\s-1NULL\s0\fR. *\fBdata\fR contains a string if *\fBflags\fR&\fB\s-1ERR_TXT_STRING\s0\fR is true. .PP An application \fB\s-1MUST NOT\s0\fR free the *\fBdata\fR pointer (or any other pointers returned by these functions) with \fIOPENSSL_free()\fR as freeing is handled automatically by the error library. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The error code, or 0 if there is no error in the queue. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIerr\fR\|(3), \fIERR_error_string\fR\|(3), \&\s-1\fIERR_GET_LIB\s0\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIERR_get_error()\fR, \fIERR_peek_error()\fR, \fIERR_get_error_line()\fR and \&\fIERR_peek_error_line()\fR are available in all versions of SSLeay and OpenSSL. \fIERR_get_error_line_data()\fR and \fIERR_peek_error_line_data()\fR were added in SSLeay 0.9.0. \&\fIERR_peek_last_error()\fR, \fIERR_peek_last_error_line()\fR and \&\fIERR_peek_last_error_line_data()\fR were added in OpenSSL 0.9.7. man3/lh_stats.3000064400000013656147210533270007326 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "lh_stats 3" .TH lh_stats 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" lh_stats, lh_node_stats, lh_node_usage_stats, lh_stats_bio, lh_node_stats_bio, lh_node_usage_stats_bio \- LHASH statistics .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void lh_stats(LHASH *table, FILE *out); \& void lh_node_stats(LHASH *table, FILE *out); \& void lh_node_usage_stats(LHASH *table, FILE *out); \& \& void lh_stats_bio(LHASH *table, BIO *out); \& void lh_node_stats_bio(LHASH *table, BIO *out); \& void lh_node_usage_stats_bio(LHASH *table, BIO *out); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fB\s-1LHASH\s0\fR structure records statistics about most aspects of accessing the hash table. This is mostly a legacy of Eric Young writing this library for the reasons of implementing what looked like a nice algorithm rather than for a particular software product. .PP \&\fIlh_stats()\fR prints out statistics on the size of the hash table, how many entries are in it, and the number and result of calls to the routines in this library. .PP \&\fIlh_node_stats()\fR prints the number of entries for each 'bucket' in the hash table. .PP \&\fIlh_node_usage_stats()\fR prints out a short summary of the state of the hash table. It prints the 'load' and the 'actual load'. The load is the average number of data items per 'bucket' in the hash table. The \&'actual load' is the average number of items per 'bucket', but only for buckets which contain entries. So the 'actual load' is the average number of searches that will need to find an item in the hash table, while the 'load' is the average number that will be done to record a miss. .PP \&\fIlh_stats_bio()\fR, \fIlh_node_stats_bio()\fR and \fIlh_node_usage_stats_bio()\fR are the same as the above, except that the output goes to a \fB\s-1BIO\s0\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" These functions do not return values. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIbio\fR\|(3), \fIlhash\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" These functions are available in all versions of SSLeay and OpenSSL. .PP This manpage is derived from the SSLeay documentation. man3/PKCS12_parse.3000064400000013377147210533270007602 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PKCS12_parse 3" .TH PKCS12_parse 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" PKCS12_parse \- parse a PKCS#12 structure .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, \& STACK_OF(X509) **ca); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIPKCS12_parse()\fR parses a \s-1PKCS12\s0 structure. .PP \&\fBp12\fR is the \fB\s-1PKCS12\s0\fR structure to parse. \fBpass\fR is the passphrase to use. If successful the private key will be written to \fB*pkey\fR, the corresponding certificate to \fB*cert\fR and any additional certificates to \fB*ca\fR. .SH "NOTES" .IX Header "NOTES" The parameters \fBpkey\fR and \fBcert\fR cannot be \fB\s-1NULL\s0\fR. \fBca\fR can be <\s-1NULL\s0> in which case additional certificates will be discarded. \fB*ca\fR can also be a valid \s-1STACK\s0 in which case additional certificates are appended to \fB*ca\fR. If \&\fB*ca\fR is \fB\s-1NULL\s0\fR a new \s-1STACK\s0 will be allocated. .PP The \fBfriendlyName\fR and \fBlocalKeyID\fR attributes (if present) on each certificate will be stored in the \fBalias\fR and \fBkeyid\fR attributes of the \&\fBX509\fR structure. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIPKCS12_parse()\fR returns 1 for success and zero if an error occurred. .PP The error can be obtained from \fIERR_get_error\fR\|(3) .SH "BUGS" .IX Header "BUGS" Only a single private key and corresponding certificate is returned by this function. More complex PKCS#12 files with multiple private keys will only return the first match. .PP Only \fBfriendlyName\fR and \fBlocalKeyID\fR attributes are currently stored in certificates. Other attributes are discarded. .PP Attributes currently cannot be stored in the private key \fB\s-1EVP_PKEY\s0\fR structure. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fId2i_PKCS12\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" PKCS12_parse was added in OpenSSL 0.9.3 man3/RSA_print.3000064400000012443147210533270007337 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RSA_print 3" .TH RSA_print 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" RSA_print, RSA_print_fp, DSAparams_print, DSAparams_print_fp, DSA_print, DSA_print_fp, DHparams_print, DHparams_print_fp \- print cryptographic parameters .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int RSA_print(BIO *bp, RSA *x, int offset); \& int RSA_print_fp(FILE *fp, RSA *x, int offset); \& \& #include \& \& int DSAparams_print(BIO *bp, DSA *x); \& int DSAparams_print_fp(FILE *fp, DSA *x); \& int DSA_print(BIO *bp, DSA *x, int offset); \& int DSA_print_fp(FILE *fp, DSA *x, int offset); \& \& #include \& \& int DHparams_print(BIO *bp, DH *x); \& int DHparams_print_fp(FILE *fp, DH *x); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" A human-readable hexadecimal output of the components of the \s-1RSA\s0 key, \s-1DSA\s0 parameters or key or \s-1DH\s0 parameters is printed to \fBbp\fR or \fBfp\fR. .PP The output lines are indented by \fBoffset\fR spaces. .SH "RETURN VALUES" .IX Header "RETURN VALUES" These functions return 1 on success, 0 on error. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdh\fR\|(3), \fIdsa\fR\|(3), \fIrsa\fR\|(3), \fIBN_bn2bin\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIRSA_print()\fR, \fIRSA_print_fp()\fR, \fIDSA_print()\fR, \fIDSA_print_fp()\fR, \fIDH_print()\fR, \&\fIDH_print_fp()\fR are available in all versions of SSLeay and OpenSSL. \&\fIDSAparams_print()\fR and \fIDSAparams_print_fp()\fR were added in SSLeay 0.8. man3/OPENSSL_load_builtin_modules.3000064400000012635147210533270013101 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "OPENSSL_load_builtin_modules 3" .TH OPENSSL_load_builtin_modules 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" OPENSSL_load_builtin_modules, ASN1_add_oid_module, ENGINE_add_conf_module \- add standard configuration modules .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void OPENSSL_load_builtin_modules(void); \& void ASN1_add_oid_module(void); \& ENGINE_add_conf_module(); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The function \fIOPENSSL_load_builtin_modules()\fR adds all the standard OpenSSL configuration modules to the internal list. They can then be used by the OpenSSL configuration code. .PP \&\fIASN1_add_oid_module()\fR adds just the \s-1ASN1 OBJECT\s0 module. .PP \&\fIENGINE_add_conf_module()\fR adds just the \s-1ENGINE\s0 configuration module. .SH "NOTES" .IX Header "NOTES" If the simple configuration function \fIOPENSSL_config()\fR is called then \&\fIOPENSSL_load_builtin_modules()\fR is called automatically. .PP Applications which use the configuration functions directly will need to call \fIOPENSSL_load_builtin_modules()\fR themselves \fIbefore\fR any other configuration code. .PP Applications should call \fIOPENSSL_load_builtin_modules()\fR to load all configuration modules instead of adding modules selectively: otherwise functionality may be missing from the application if an when new modules are added. .SH "RETURN VALUE" .IX Header "RETURN VALUE" None of the functions return a value. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIconf\fR\|(3), \fIOPENSSL_config\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" These functions first appeared in OpenSSL 0.9.7. man3/EC_KEY_new.3000064400000026114147210533270007346 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EC_KEY_new 3" .TH EC_KEY_new 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EC_KEY_new, EC_KEY_get_flags, EC_KEY_set_flags, EC_KEY_clear_flags, EC_KEY_new_by_curve_name, EC_KEY_free, EC_KEY_copy, EC_KEY_dup, EC_KEY_up_ref, EC_KEY_get0_group, EC_KEY_set_group, EC_KEY_get0_private_key, EC_KEY_set_private_key, EC_KEY_get0_public_key, EC_KEY_set_public_key, EC_KEY_get_enc_flags, EC_KEY_set_enc_flags, EC_KEY_get_conv_form, EC_KEY_set_conv_form, EC_KEY_get_key_method_data, EC_KEY_insert_key_method_data, EC_KEY_set_asn1_flag, EC_KEY_precompute_mult, EC_KEY_generate_key, EC_KEY_check_key, EC_KEY_set_public_key_affine_coordinates \- Functions for creating, destroying and manipulating EC_KEY objects. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& #include \& #include \& \& EC_KEY *EC_KEY_new(void); \& int EC_KEY_get_flags(const EC_KEY *key); \& void EC_KEY_set_flags(EC_KEY *key, int flags); \& void EC_KEY_clear_flags(EC_KEY *key, int flags); \& EC_KEY *EC_KEY_new_by_curve_name(int nid); \& void EC_KEY_free(EC_KEY *key); \& EC_KEY *EC_KEY_copy(EC_KEY *dst, const EC_KEY *src); \& EC_KEY *EC_KEY_dup(const EC_KEY *src); \& int EC_KEY_up_ref(EC_KEY *key); \& const EC_GROUP *EC_KEY_get0_group(const EC_KEY *key); \& int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group); \& const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key); \& int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *prv); \& const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key); \& int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub); \& point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key); \& void EC_KEY_set_conv_form(EC_KEY *eckey, point_conversion_form_t cform); \& void *EC_KEY_get_key_method_data(EC_KEY *key, \& void *(*dup_func)(void *), void (*free_func)(void *), void (*clear_free_func)(void *)); \& void EC_KEY_insert_key_method_data(EC_KEY *key, void *data, \& void *(*dup_func)(void *), void (*free_func)(void *), void (*clear_free_func)(void *)); \& void EC_KEY_set_asn1_flag(EC_KEY *eckey, int asn1_flag); \& int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx); \& int EC_KEY_generate_key(EC_KEY *key); \& int EC_KEY_check_key(const EC_KEY *key); \& int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x, BIGNUM *y); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" An \s-1EC_KEY\s0 represents a public key and (optionaly) an associated private key. A new \s-1EC_KEY \s0(with no associated curve) can be constructed by calling EC_KEY_new. The reference count for the newly created \s-1EC_KEY\s0 is initially set to 1. A curve can be associated with the \s-1EC_KEY\s0 by calling EC_KEY_set_group. .PP Alternatively a new \s-1EC_KEY\s0 can be constructed by calling EC_KEY_new_by_curve_name and supplying the nid of the associated curve. Refer to \fIEC_GROUP_new\fR\|(3) for a description of curve names. This function simply wraps calls to EC_KEY_new and EC_GROUP_new_by_curve_name. .PP Calling EC_KEY_free decrements the reference count for the \s-1EC_KEY\s0 object, and if it has dropped to zero then frees the memory associated with it. .PP EC_KEY_copy copies the contents of the \s-1EC_KEY\s0 in \fBsrc\fR into \fBdest\fR. .PP EC_KEY_dup creates a new \s-1EC_KEY\s0 object and copies \fBec_key\fR into it. .PP EC_KEY_up_ref increments the reference count associated with the \s-1EC_KEY\s0 object. .PP EC_KEY_generate_key generates a new public and private key for the supplied \fBeckey\fR object. \fBeckey\fR must have an \s-1EC_GROUP\s0 object associated with it before calling this function. The private key is a random integer (0 < priv_key < order, where order is the order of the \s-1EC_GROUP\s0 object). The public key is an \s-1EC_POINT\s0 on the curve calculated by multiplying the generator for the curve by the private key. .PP EC_KEY_check_key performs various sanity checks on the \s-1EC_KEY\s0 object to confirm that it is valid. .PP EC_KEY_set_public_key_affine_coordinates sets the public key for \fBkey\fR based on its affine co-ordinates, i.e. it constructs an \s-1EC_POINT\s0 object based on the supplied \fBx\fR and \fBy\fR values and sets the public key to be this \s-1EC_POINT.\s0 It will also performs certain sanity checks on the key to confirm that it is valid. .PP The functions EC_KEY_get0_group, EC_KEY_set_group, EC_KEY_get0_private_key, EC_KEY_set_private_key, EC_KEY_get0_public_key, and EC_KEY_set_public_key get and set the \s-1EC_GROUP\s0 object, the private key and the \s-1EC_POINT\s0 public key for the \fBkey\fR respectively. .PP The functions EC_KEY_get_conv_form and EC_KEY_set_conv_form get and set the point_conversion_form for the \fBkey\fR. For a description of point_conversion_forms please refer to \fIEC_POINT_new\fR\|(3). .PP EC_KEY_insert_key_method_data and EC_KEY_get_key_method_data enable the caller to associate arbitrary additional data specific to the elliptic curve scheme being used with the \s-1EC_KEY\s0 object. This data is treated as a \*(L"black box\*(R" by the ec library. The data to be stored by EC_KEY_insert_key_method_data is provided in the \fBdata\fR parameter, which must have associated functions for duplicating, freeing and \*(L"clear_freeing\*(R" the data item. If a subsequent EC_KEY_get_key_method_data call is issued, the functions for duplicating, freeing and \*(L"clear_freeing\*(R" the data item must be provided again, and they must be the same as they were when the data item was inserted. .PP EC_KEY_set_flags sets the flags in the \fBflags\fR parameter on the \s-1EC_KEY\s0 object. Any flags that are already set are left set. The currently defined standard flags are \s-1EC_FLAG_NON_FIPS_ALLOW\s0 and \s-1EC_FLAG_FIPS_CHECKED.\s0 In addition there is the flag \s-1EC_FLAG_COFACTOR_ECDH\s0 which is specific to \s-1ECDH\s0 and is defined in ecdh.h. EC_KEY_get_flags returns the current flags that are set for this \s-1EC_KEY.\s0 EC_KEY_clear_flags clears the flags indicated by the \fBflags\fR parameter. All other flags are left in their existing state. .PP EC_KEY_set_asn1_flag sets the asn1_flag on the underlying \s-1EC_GROUP\s0 object (if set). Refer to \fIEC_GROUP_copy\fR\|(3) for further information on the asn1_flag. .PP EC_KEY_precompute_mult stores multiples of the underlying \s-1EC_GROUP\s0 generator for faster point multiplication. See also \fIEC_POINT_add\fR\|(3). .SH "RETURN VALUES" .IX Header "RETURN VALUES" EC_KEY_new, EC_KEY_new_by_curve_name and EC_KEY_dup return a pointer to the newly created \s-1EC_KEY\s0 object, or \s-1NULL\s0 on error. .PP EC_KEY_get_flags returns the flags associated with the \s-1EC_KEY\s0 object as an integer. .PP EC_KEY_copy returns a pointer to the destination key, or \s-1NULL\s0 on error. .PP EC_KEY_up_ref, EC_KEY_set_group, EC_KEY_set_private_key, EC_KEY_set_public_key, EC_KEY_precompute_mult, EC_KEY_generate_key, EC_KEY_check_key and EC_KEY_set_public_key_affine_coordinates return 1 on success or 0 on error. .PP EC_KEY_get0_group returns the \s-1EC_GROUP\s0 associated with the \s-1EC_KEY.\s0 .PP EC_KEY_get0_private_key returns the private key associated with the \s-1EC_KEY.\s0 .PP EC_KEY_get_conv_form return the point_conversion_form for the \s-1EC_KEY.\s0 .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIcrypto\fR\|(3), \fIec\fR\|(3), \fIEC_GROUP_new\fR\|(3), \&\fIEC_GROUP_copy\fR\|(3), \fIEC_POINT_new\fR\|(3), \&\fIEC_POINT_add\fR\|(3), \&\fIEC_GFp_simple_method\fR\|(3), \&\fId2i_ECPKParameters\fR\|(3) man3/CMS_add1_signer.3000064400000020440147210533270010354 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CMS_add1_signer 3" .TH CMS_add1_signer 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" .Vb 1 \& CMS_add1_signer, CMS_SignerInfo_sign \- add a signer to a CMS_ContentInfo signed data structure. .Ve .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& CMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms, X509 *signcert, EVP_PKEY *pkey, const EVP_MD *md, unsigned int flags); \& \& int CMS_SignerInfo_sign(CMS_SignerInfo *si); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fICMS_add1_signer()\fR adds a signer with certificate \fBsigncert\fR and private key \fBpkey\fR using message digest \fBmd\fR to CMS_ContentInfo SignedData structure \fBcms\fR. .PP The CMS_ContentInfo structure should be obtained from an initial call to \&\fICMS_sign()\fR with the flag \fB\s-1CMS_PARTIAL\s0\fR set or in the case or re-signing a valid CMS_ContentInfo SignedData structure. .PP If the \fBmd\fR parameter is \fB\s-1NULL\s0\fR then the default digest for the public key algorithm will be used. .PP Unless the \fB\s-1CMS_REUSE_DIGEST\s0\fR flag is set the returned CMS_ContentInfo structure is not complete and must be finalized either by streaming (if applicable) or a call to \fICMS_final()\fR. .PP The \fICMS_SignerInfo_sign()\fR function will explicitly sign a CMS_SignerInfo structure, its main use is when \fB\s-1CMS_REUSE_DIGEST\s0\fR and \fB\s-1CMS_PARTIAL\s0\fR flags are both set. .SH "NOTES" .IX Header "NOTES" The main purpose of \fICMS_add1_signer()\fR is to provide finer control over a \s-1CMS\s0 signed data structure where the simpler \fICMS_sign()\fR function defaults are not appropriate. For example if multiple signers or non default digest algorithms are needed. New attributes can also be added using the returned CMS_SignerInfo structure and the \s-1CMS\s0 attribute utility functions or the \&\s-1CMS\s0 signed receipt request functions. .PP Any of the following flags (ored together) can be passed in the \fBflags\fR parameter. .PP If \fB\s-1CMS_REUSE_DIGEST\s0\fR is set then an attempt is made to copy the content digest value from the CMS_ContentInfo structure: to add a signer to an existing structure. An error occurs if a matching digest value cannot be found to copy. The returned CMS_ContentInfo structure will be valid and finalized when this flag is set. .PP If \fB\s-1CMS_PARTIAL\s0\fR is set in addition to \fB\s-1CMS_REUSE_DIGEST\s0\fR then the CMS_SignerInfo structure will not be finalized so additional attributes can be added. In this case an explicit call to \fICMS_SignerInfo_sign()\fR is needed to finalize it. .PP If \fB\s-1CMS_NOCERTS\s0\fR is set the signer's certificate will not be included in the CMS_ContentInfo structure, the signer's certificate must still be supplied in the \fBsigncert\fR parameter though. This can reduce the size of the signature if the signers certificate can be obtained by other means: for example a previously signed message. .PP The SignedData structure includes several \s-1CMS\s0 signedAttributes including the signing time, the \s-1CMS\s0 content type and the supported list of ciphers in an SMIMECapabilities attribute. If \fB\s-1CMS_NOATTR\s0\fR is set then no signedAttributes will be used. If \fB\s-1CMS_NOSMIMECAP\s0\fR is set then just the SMIMECapabilities are omitted. .PP OpenSSL will by default identify signing certificates using issuer name and serial number. If \fB\s-1CMS_USE_KEYID\s0\fR is set it will use the subject key identifier value instead. An error occurs if the signing certificate does not have a subject key identifier extension. .PP If present the SMIMECapabilities attribute indicates support for the following algorithms in preference order: 256 bit \s-1AES,\s0 Gost R3411\-94, Gost 28147\-89, 192 bit \s-1AES, 128\s0 bit \s-1AES,\s0 triple \s-1DES, 128\s0 bit \s-1RC2, 64\s0 bit \s-1RC2, DES\s0 and 40 bit \s-1RC2.\s0 If any of these algorithms is not available then it will not be included: for example the \s-1GOST\s0 algorithms will not be included if the \s-1GOST ENGINE\s0 is not loaded. .PP \&\fICMS_add1_signer()\fR returns an internal pointer to the CMS_SignerInfo structure just added, this can be used to set additional attributes before it is finalized. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fICMS_add1_signer()\fR returns an internal pointer to the CMS_SignerInfo structure just added or \s-1NULL\s0 if an error occurs. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fICMS_sign\fR\|(3), \&\fICMS_final\fR\|(3), .SH "HISTORY" .IX Header "HISTORY" \&\fICMS_add1_signer()\fR was added to OpenSSL 0.9.8 man3/pem.3000064400000060315147210533270006260 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "pem 3" .TH pem 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" PEM, PEM_read_bio_PrivateKey, PEM_read_PrivateKey, PEM_write_bio_PrivateKey, PEM_write_PrivateKey, PEM_write_bio_PKCS8PrivateKey, PEM_write_PKCS8PrivateKey, PEM_write_bio_PKCS8PrivateKey_nid, PEM_write_PKCS8PrivateKey_nid, PEM_read_bio_PUBKEY, PEM_read_PUBKEY, PEM_write_bio_PUBKEY, PEM_write_PUBKEY, PEM_read_bio_RSAPrivateKey, PEM_read_RSAPrivateKey, PEM_write_bio_RSAPrivateKey, PEM_write_RSAPrivateKey, PEM_read_bio_RSAPublicKey, PEM_read_RSAPublicKey, PEM_write_bio_RSAPublicKey, PEM_write_RSAPublicKey, PEM_read_bio_RSA_PUBKEY, PEM_read_RSA_PUBKEY, PEM_write_bio_RSA_PUBKEY, PEM_write_RSA_PUBKEY, PEM_read_bio_DSAPrivateKey, PEM_read_DSAPrivateKey, PEM_write_bio_DSAPrivateKey, PEM_write_DSAPrivateKey, PEM_read_bio_DSA_PUBKEY, PEM_read_DSA_PUBKEY, PEM_write_bio_DSA_PUBKEY, PEM_write_DSA_PUBKEY, PEM_read_bio_DSAparams, PEM_read_DSAparams, PEM_write_bio_DSAparams, PEM_write_DSAparams, PEM_read_bio_DHparams, PEM_read_DHparams, PEM_write_bio_DHparams, PEM_write_DHparams, PEM_read_bio_X509, PEM_read_X509, PEM_write_bio_X509, PEM_write_X509, PEM_read_bio_X509_AUX, PEM_read_X509_AUX, PEM_write_bio_X509_AUX, PEM_write_X509_AUX, PEM_read_bio_X509_REQ, PEM_read_X509_REQ, PEM_write_bio_X509_REQ, PEM_write_X509_REQ, PEM_write_bio_X509_REQ_NEW, PEM_write_X509_REQ_NEW, PEM_read_bio_X509_CRL, PEM_read_X509_CRL, PEM_write_bio_X509_CRL, PEM_write_X509_CRL, PEM_read_bio_PKCS7, PEM_read_PKCS7, PEM_write_bio_PKCS7, PEM_write_PKCS7, PEM_read_bio_NETSCAPE_CERT_SEQUENCE, PEM_read_NETSCAPE_CERT_SEQUENCE, PEM_write_bio_NETSCAPE_CERT_SEQUENCE, PEM_write_NETSCAPE_CERT_SEQUENCE \- PEM routines .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& EVP_PKEY *PEM_read_bio_PrivateKey(BIO *bp, EVP_PKEY **x, \& pem_password_cb *cb, void *u); \& \& EVP_PKEY *PEM_read_PrivateKey(FILE *fp, EVP_PKEY **x, \& pem_password_cb *cb, void *u); \& \& int PEM_write_bio_PrivateKey(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc, \& unsigned char *kstr, int klen, \& pem_password_cb *cb, void *u); \& \& int PEM_write_PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, \& unsigned char *kstr, int klen, \& pem_password_cb *cb, void *u); \& \& int PEM_write_bio_PKCS8PrivateKey(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc, \& char *kstr, int klen, \& pem_password_cb *cb, void *u); \& \& int PEM_write_PKCS8PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, \& char *kstr, int klen, \& pem_password_cb *cb, void *u); \& \& int PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, EVP_PKEY *x, int nid, \& char *kstr, int klen, \& pem_password_cb *cb, void *u); \& \& int PEM_write_PKCS8PrivateKey_nid(FILE *fp, EVP_PKEY *x, int nid, \& char *kstr, int klen, \& pem_password_cb *cb, void *u); \& \& EVP_PKEY *PEM_read_bio_PUBKEY(BIO *bp, EVP_PKEY **x, \& pem_password_cb *cb, void *u); \& \& EVP_PKEY *PEM_read_PUBKEY(FILE *fp, EVP_PKEY **x, \& pem_password_cb *cb, void *u); \& \& int PEM_write_bio_PUBKEY(BIO *bp, EVP_PKEY *x); \& int PEM_write_PUBKEY(FILE *fp, EVP_PKEY *x); \& \& RSA *PEM_read_bio_RSAPrivateKey(BIO *bp, RSA **x, \& pem_password_cb *cb, void *u); \& \& RSA *PEM_read_RSAPrivateKey(FILE *fp, RSA **x, \& pem_password_cb *cb, void *u); \& \& int PEM_write_bio_RSAPrivateKey(BIO *bp, RSA *x, const EVP_CIPHER *enc, \& unsigned char *kstr, int klen, \& pem_password_cb *cb, void *u); \& \& int PEM_write_RSAPrivateKey(FILE *fp, RSA *x, const EVP_CIPHER *enc, \& unsigned char *kstr, int klen, \& pem_password_cb *cb, void *u); \& \& RSA *PEM_read_bio_RSAPublicKey(BIO *bp, RSA **x, \& pem_password_cb *cb, void *u); \& \& RSA *PEM_read_RSAPublicKey(FILE *fp, RSA **x, \& pem_password_cb *cb, void *u); \& \& int PEM_write_bio_RSAPublicKey(BIO *bp, RSA *x); \& \& int PEM_write_RSAPublicKey(FILE *fp, RSA *x); \& \& RSA *PEM_read_bio_RSA_PUBKEY(BIO *bp, RSA **x, \& pem_password_cb *cb, void *u); \& \& RSA *PEM_read_RSA_PUBKEY(FILE *fp, RSA **x, \& pem_password_cb *cb, void *u); \& \& int PEM_write_bio_RSA_PUBKEY(BIO *bp, RSA *x); \& \& int PEM_write_RSA_PUBKEY(FILE *fp, RSA *x); \& \& DSA *PEM_read_bio_DSAPrivateKey(BIO *bp, DSA **x, \& pem_password_cb *cb, void *u); \& \& DSA *PEM_read_DSAPrivateKey(FILE *fp, DSA **x, \& pem_password_cb *cb, void *u); \& \& int PEM_write_bio_DSAPrivateKey(BIO *bp, DSA *x, const EVP_CIPHER *enc, \& unsigned char *kstr, int klen, \& pem_password_cb *cb, void *u); \& \& int PEM_write_DSAPrivateKey(FILE *fp, DSA *x, const EVP_CIPHER *enc, \& unsigned char *kstr, int klen, \& pem_password_cb *cb, void *u); \& \& DSA *PEM_read_bio_DSA_PUBKEY(BIO *bp, DSA **x, \& pem_password_cb *cb, void *u); \& \& DSA *PEM_read_DSA_PUBKEY(FILE *fp, DSA **x, \& pem_password_cb *cb, void *u); \& \& int PEM_write_bio_DSA_PUBKEY(BIO *bp, DSA *x); \& \& int PEM_write_DSA_PUBKEY(FILE *fp, DSA *x); \& \& DSA *PEM_read_bio_DSAparams(BIO *bp, DSA **x, pem_password_cb *cb, void *u); \& \& DSA *PEM_read_DSAparams(FILE *fp, DSA **x, pem_password_cb *cb, void *u); \& \& int PEM_write_bio_DSAparams(BIO *bp, DSA *x); \& \& int PEM_write_DSAparams(FILE *fp, DSA *x); \& \& DH *PEM_read_bio_DHparams(BIO *bp, DH **x, pem_password_cb *cb, void *u); \& \& DH *PEM_read_DHparams(FILE *fp, DH **x, pem_password_cb *cb, void *u); \& \& int PEM_write_bio_DHparams(BIO *bp, DH *x); \& \& int PEM_write_DHparams(FILE *fp, DH *x); \& \& X509 *PEM_read_bio_X509(BIO *bp, X509 **x, pem_password_cb *cb, void *u); \& \& X509 *PEM_read_X509(FILE *fp, X509 **x, pem_password_cb *cb, void *u); \& \& int PEM_write_bio_X509(BIO *bp, X509 *x); \& \& int PEM_write_X509(FILE *fp, X509 *x); \& \& X509 *PEM_read_bio_X509_AUX(BIO *bp, X509 **x, pem_password_cb *cb, void *u); \& \& X509 *PEM_read_X509_AUX(FILE *fp, X509 **x, pem_password_cb *cb, void *u); \& \& int PEM_write_bio_X509_AUX(BIO *bp, X509 *x); \& \& int PEM_write_X509_AUX(FILE *fp, X509 *x); \& \& X509_REQ *PEM_read_bio_X509_REQ(BIO *bp, X509_REQ **x, \& pem_password_cb *cb, void *u); \& \& X509_REQ *PEM_read_X509_REQ(FILE *fp, X509_REQ **x, \& pem_password_cb *cb, void *u); \& \& int PEM_write_bio_X509_REQ(BIO *bp, X509_REQ *x); \& \& int PEM_write_X509_REQ(FILE *fp, X509_REQ *x); \& \& int PEM_write_bio_X509_REQ_NEW(BIO *bp, X509_REQ *x); \& \& int PEM_write_X509_REQ_NEW(FILE *fp, X509_REQ *x); \& \& X509_CRL *PEM_read_bio_X509_CRL(BIO *bp, X509_CRL **x, \& pem_password_cb *cb, void *u); \& X509_CRL *PEM_read_X509_CRL(FILE *fp, X509_CRL **x, \& pem_password_cb *cb, void *u); \& int PEM_write_bio_X509_CRL(BIO *bp, X509_CRL *x); \& int PEM_write_X509_CRL(FILE *fp, X509_CRL *x); \& \& PKCS7 *PEM_read_bio_PKCS7(BIO *bp, PKCS7 **x, pem_password_cb *cb, void *u); \& \& PKCS7 *PEM_read_PKCS7(FILE *fp, PKCS7 **x, pem_password_cb *cb, void *u); \& \& int PEM_write_bio_PKCS7(BIO *bp, PKCS7 *x); \& \& int PEM_write_PKCS7(FILE *fp, PKCS7 *x); \& \& NETSCAPE_CERT_SEQUENCE *PEM_read_bio_NETSCAPE_CERT_SEQUENCE(BIO *bp, \& NETSCAPE_CERT_SEQUENCE **x, \& pem_password_cb *cb, void *u); \& \& NETSCAPE_CERT_SEQUENCE *PEM_read_NETSCAPE_CERT_SEQUENCE(FILE *fp, \& NETSCAPE_CERT_SEQUENCE **x, \& pem_password_cb *cb, void *u); \& \& int PEM_write_bio_NETSCAPE_CERT_SEQUENCE(BIO *bp, NETSCAPE_CERT_SEQUENCE *x); \& \& int PEM_write_NETSCAPE_CERT_SEQUENCE(FILE *fp, NETSCAPE_CERT_SEQUENCE *x); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \s-1PEM\s0 functions read or write structures in \s-1PEM\s0 format. In this sense \s-1PEM\s0 format is simply base64 encoded data surrounded by header lines. .PP For more details about the meaning of arguments see the \&\fB\s-1PEM FUNCTION ARGUMENTS\s0\fR section. .PP Each operation has four functions associated with it. For clarity the term "\fBfoobar\fR functions" will be used to collectively refer to the \fIPEM_read_bio_foobar()\fR, \fIPEM_read_foobar()\fR, \&\fIPEM_write_bio_foobar()\fR and \fIPEM_write_foobar()\fR functions. .PP The \fBPrivateKey\fR functions read or write a private key in \&\s-1PEM\s0 format using an \s-1EVP_PKEY\s0 structure. The write routines use \&\*(L"traditional\*(R" private key format and can handle both \s-1RSA\s0 and \s-1DSA\s0 private keys. The read functions can additionally transparently handle PKCS#8 format encrypted and unencrypted keys too. .PP \&\fIPEM_write_bio_PKCS8PrivateKey()\fR and \fIPEM_write_PKCS8PrivateKey()\fR write a private key in an \s-1EVP_PKEY\s0 structure in PKCS#8 EncryptedPrivateKeyInfo format using PKCS#5 v2.0 password based encryption algorithms. The \fBcipher\fR argument specifies the encryption algorithm to use: unlike all other \s-1PEM\s0 routines the encryption is applied at the PKCS#8 level and not in the \s-1PEM\s0 headers. If \fBcipher\fR is \s-1NULL\s0 then no encryption is used and a PKCS#8 PrivateKeyInfo structure is used instead. .PP \&\fIPEM_write_bio_PKCS8PrivateKey_nid()\fR and \fIPEM_write_PKCS8PrivateKey_nid()\fR also write out a private key as a PKCS#8 EncryptedPrivateKeyInfo however it uses PKCS#5 v1.5 or PKCS#12 encryption algorithms instead. The algorithm to use is specified in the \fBnid\fR parameter and should be the \s-1NID\s0 of the corresponding \s-1OBJECT IDENTIFIER \s0(see \s-1NOTES\s0 section). .PP The \fB\s-1PUBKEY\s0\fR functions process a public key using an \s-1EVP_PKEY\s0 structure. The public key is encoded as a SubjectPublicKeyInfo structure. .PP The \fBRSAPrivateKey\fR functions process an \s-1RSA\s0 private key using an \&\s-1RSA\s0 structure. It handles the same formats as the \fBPrivateKey\fR functions but an error occurs if the private key is not \s-1RSA.\s0 .PP The \fBRSAPublicKey\fR functions process an \s-1RSA\s0 public key using an \&\s-1RSA\s0 structure. The public key is encoded using a PKCS#1 RSAPublicKey structure. .PP The \fB\s-1RSA_PUBKEY\s0\fR functions also process an \s-1RSA\s0 public key using an \s-1RSA\s0 structure. However the public key is encoded using a SubjectPublicKeyInfo structure and an error occurs if the public key is not \s-1RSA.\s0 .PP The \fBDSAPrivateKey\fR functions process a \s-1DSA\s0 private key using a \&\s-1DSA\s0 structure. It handles the same formats as the \fBPrivateKey\fR functions but an error occurs if the private key is not \s-1DSA.\s0 .PP The \fB\s-1DSA_PUBKEY\s0\fR functions process a \s-1DSA\s0 public key using a \s-1DSA\s0 structure. The public key is encoded using a SubjectPublicKeyInfo structure and an error occurs if the public key is not \s-1DSA.\s0 .PP The \fBDSAparams\fR functions process \s-1DSA\s0 parameters using a \s-1DSA\s0 structure. The parameters are encoded using a Dss-Parms structure as defined in \s-1RFC2459.\s0 .PP The \fBDHparams\fR functions process \s-1DH\s0 parameters using a \s-1DH\s0 structure. The parameters are encoded using a PKCS#3 DHparameter structure. .PP The \fBX509\fR functions process an X509 certificate using an X509 structure. They will also process a trusted X509 certificate but any trust settings are discarded. .PP The \fBX509_AUX\fR functions process a trusted X509 certificate using an X509 structure. .PP The \fBX509_REQ\fR and \fBX509_REQ_NEW\fR functions process a PKCS#10 certificate request using an X509_REQ structure. The \fBX509_REQ\fR write functions use \fB\s-1CERTIFICATE REQUEST\s0\fR in the header whereas the \fBX509_REQ_NEW\fR functions use \fB\s-1NEW CERTIFICATE REQUEST\s0\fR (as required by some CAs). The \fBX509_REQ\fR read functions will handle either form so there are no \fBX509_REQ_NEW\fR read functions. .PP The \fBX509_CRL\fR functions process an X509 \s-1CRL\s0 using an X509_CRL structure. .PP The \fB\s-1PKCS7\s0\fR functions process a PKCS#7 ContentInfo using a \s-1PKCS7\s0 structure. .PP The \fB\s-1NETSCAPE_CERT_SEQUENCE\s0\fR functions process a Netscape Certificate Sequence using a \s-1NETSCAPE_CERT_SEQUENCE\s0 structure. .SH "PEM FUNCTION ARGUMENTS" .IX Header "PEM FUNCTION ARGUMENTS" The \s-1PEM\s0 functions have many common arguments. .PP The \fBbp\fR \s-1BIO\s0 parameter (if present) specifies the \s-1BIO\s0 to read from or write to. .PP The \fBfp\fR \s-1FILE\s0 parameter (if present) specifies the \s-1FILE\s0 pointer to read from or write to. .PP The \s-1PEM\s0 read functions all take an argument \fB\s-1TYPE\s0 **x\fR and return a \fB\s-1TYPE\s0 *\fR pointer. Where \fB\s-1TYPE\s0\fR is whatever structure the function uses. If \fBx\fR is \s-1NULL\s0 then the parameter is ignored. If \fBx\fR is not \&\s-1NULL\s0 but \fB*x\fR is \s-1NULL\s0 then the structure returned will be written to \fB*x\fR. If neither \fBx\fR nor \fB*x\fR is \s-1NULL\s0 then an attempt is made to reuse the structure at \fB*x\fR (but see \s-1BUGS\s0 and \s-1EXAMPLES\s0 sections). Irrespective of the value of \fBx\fR a pointer to the structure is always returned (or \s-1NULL\s0 if an error occurred). .PP The \s-1PEM\s0 functions which write private keys take an \fBenc\fR parameter which specifies the encryption algorithm to use, encryption is done at the \s-1PEM\s0 level. If this parameter is set to \s-1NULL\s0 then the private key is written in unencrypted form. .PP The \fBcb\fR argument is the callback to use when querying for the pass phrase used for encrypted \s-1PEM\s0 structures (normally only private keys). .PP For the \s-1PEM\s0 write routines if the \fBkstr\fR parameter is not \s-1NULL\s0 then \&\fBklen\fR bytes at \fBkstr\fR are used as the passphrase and \fBcb\fR is ignored. .PP If the \fBcb\fR parameters is set to \s-1NULL\s0 and the \fBu\fR parameter is not \&\s-1NULL\s0 then the \fBu\fR parameter is interpreted as a null terminated string to use as the passphrase. If both \fBcb\fR and \fBu\fR are \s-1NULL\s0 then the default callback routine is used which will typically prompt for the passphrase on the current terminal with echoing turned off. .PP The default passphrase callback is sometimes inappropriate (for example in a \s-1GUI\s0 application) so an alternative can be supplied. The callback routine has the following form: .PP .Vb 1 \& int cb(char *buf, int size, int rwflag, void *u); .Ve .PP \&\fBbuf\fR is the buffer to write the passphrase to. \fBsize\fR is the maximum length of the passphrase (i.e. the size of buf). \fBrwflag\fR is a flag which is set to 0 when reading and 1 when writing. A typical routine will ask the user to verify the passphrase (for example by prompting for it twice) if \fBrwflag\fR is 1. The \fBu\fR parameter has the same value as the \fBu\fR parameter passed to the \s-1PEM\s0 routine. It allows arbitrary data to be passed to the callback by the application (for example a window handle in a \s-1GUI\s0 application). The callback \&\fBmust\fR return the number of characters in the passphrase or \-1 if an error occurred. .SH "EXAMPLES" .IX Header "EXAMPLES" Although the \s-1PEM\s0 routines take several arguments in almost all applications most of them are set to 0 or \s-1NULL.\s0 .PP Read a certificate in \s-1PEM\s0 format from a \s-1BIO:\s0 .PP .Vb 5 \& X509 *x; \& x = PEM_read_bio_X509(bp, NULL, 0, NULL); \& if (x == NULL) { \& /* Error */ \& } .Ve .PP Alternative method: .PP .Vb 4 \& X509 *x = NULL; \& if (!PEM_read_bio_X509(bp, &x, 0, NULL)) { \& /* Error */ \& } .Ve .PP Write a certificate to a \s-1BIO:\s0 .PP .Vb 3 \& if (!PEM_write_bio_X509(bp, x)) { \& /* Error */ \& } .Ve .PP Write an unencrypted private key to a \s-1FILE\s0 pointer: .PP .Vb 3 \& if (!PEM_write_PrivateKey(fp, key, NULL, NULL, 0, 0, NULL)) { \& /* Error */ \& } .Ve .PP Write a private key (using traditional format) to a \s-1BIO\s0 using triple \s-1DES\s0 encryption, the pass phrase is prompted for: .PP .Vb 3 \& if (!PEM_write_bio_PrivateKey(bp, key, EVP_des_ede3_cbc(), NULL, 0, 0, NULL)) { \& /* Error */ \& } .Ve .PP Write a private key (using PKCS#8 format) to a \s-1BIO\s0 using triple \&\s-1DES\s0 encryption, using the pass phrase \*(L"hello\*(R": .PP .Vb 3 \& if (!PEM_write_bio_PKCS8PrivateKey(bp, key, EVP_des_ede3_cbc(), NULL, 0, 0, "hello")) { \& /* Error */ \& } .Ve .PP Read a private key from a \s-1BIO\s0 using the pass phrase \*(L"hello\*(R": .PP .Vb 4 \& key = PEM_read_bio_PrivateKey(bp, NULL, 0, "hello"); \& if (key == NULL) { \& /* Error */ \& } .Ve .PP Read a private key from a \s-1BIO\s0 using a pass phrase callback: .PP .Vb 4 \& key = PEM_read_bio_PrivateKey(bp, NULL, pass_cb, "My Private Key"); \& if (key == NULL) { \& /* Error */ \& } .Ve .PP Skeleton pass phrase callback: .PP .Vb 2 \& int pass_cb(char *buf, int size, int rwflag, void *u) \& { \& \& /* We\*(Aqd probably do something else if \*(Aqrwflag\*(Aq is 1 */ \& printf("Enter pass phrase for \e"%s\e"\en", u); \& \& /* get pass phrase, length \*(Aqlen\*(Aq into \*(Aqtmp\*(Aq */ \& char *tmp = "hello"; \& if (tmp == NULL) /* An error occurred */ \& return \-1; \& \& size_t len = strlen(tmp); \& \& if (len > size) \& len = size; \& memcpy(buf, tmp, len); \& return len; \& } .Ve .SH "NOTES" .IX Header "NOTES" The old \fBPrivateKey\fR write routines are retained for compatibility. New applications should write private keys using the \&\fIPEM_write_bio_PKCS8PrivateKey()\fR or \fIPEM_write_PKCS8PrivateKey()\fR routines because they are more secure (they use an iteration count of 2048 whereas the traditional routines use a count of 1) unless compatibility with older versions of OpenSSL is important. .PP The \fBPrivateKey\fR read routines can be used in all applications because they handle all formats transparently. .PP A frequent cause of problems is attempting to use the \s-1PEM\s0 routines like this: .PP .Vb 2 \& X509 *x; \& PEM_read_bio_X509(bp, &x, 0, NULL); .Ve .PP this is a bug because an attempt will be made to reuse the data at \fBx\fR which is an uninitialised pointer. .SH "PEM ENCRYPTION FORMAT" .IX Header "PEM ENCRYPTION FORMAT" This old \fBPrivateKey\fR routines use a non standard technique for encryption. .PP The private key (or other data) takes the following form: .PP .Vb 3 \& \-\-\-\-\-BEGIN RSA PRIVATE KEY\-\-\-\-\- \& Proc\-Type: 4,ENCRYPTED \& DEK\-Info: DES\-EDE3\-CBC,3F17F5316E2BAC89 \& \& ...base64 encoded data... \& \-\-\-\-\-END RSA PRIVATE KEY\-\-\-\-\- .Ve .PP The line beginning DEK-Info contains two comma separated pieces of information: the encryption algorithm name as used by \fIEVP_get_cipherbyname()\fR and an 8 byte \fBsalt\fR encoded as a set of hexadecimal digits. .PP After this is the base64 encoded encrypted data. .PP The encryption key is determined using \fIEVP_BytesToKey()\fR, using \fBsalt\fR and an iteration count of 1. The \s-1IV\s0 used is the value of \fBsalt\fR and *not* the \s-1IV\s0 returned by \fIEVP_BytesToKey()\fR. .SH "BUGS" .IX Header "BUGS" The \s-1PEM\s0 read routines in some versions of OpenSSL will not correctly reuse an existing structure. Therefore the following: .PP .Vb 1 \& PEM_read_bio_X509(bp, &x, 0, NULL); .Ve .PP where \fBx\fR already contains a valid certificate, may not work, whereas: .PP .Vb 2 \& X509_free(x); \& x = PEM_read_bio_X509(bp, NULL, 0, NULL); .Ve .PP is guaranteed to work. .SH "RETURN CODES" .IX Header "RETURN CODES" The read routines return either a pointer to the structure read or \s-1NULL\s0 if an error occurred. .PP The write routines return 1 for success or 0 for failure. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIEVP_get_cipherbyname\fR\|(3), \fIEVP_BytesToKey\fR\|(3) man3/SSL_CTX_get_verify_mode.3000064400000013356147210533270012110 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_get_verify_mode 3" .TH SSL_CTX_get_verify_mode 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_get_verify_mode, SSL_get_verify_mode, SSL_CTX_get_verify_depth, SSL_get_verify_depth, SSL_get_verify_callback, SSL_CTX_get_verify_callback \- get currently set verification parameters .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_CTX_get_verify_mode(const SSL_CTX *ctx); \& int SSL_get_verify_mode(const SSL *ssl); \& int SSL_CTX_get_verify_depth(const SSL_CTX *ctx); \& int SSL_get_verify_depth(const SSL *ssl); \& int (*SSL_CTX_get_verify_callback(const SSL_CTX *ctx))(int, X509_STORE_CTX *); \& int (*SSL_get_verify_callback(const SSL *ssl))(int, X509_STORE_CTX *); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_get_verify_mode()\fR returns the verification mode currently set in \&\fBctx\fR. .PP \&\fISSL_get_verify_mode()\fR returns the verification mode currently set in \&\fBssl\fR. .PP \&\fISSL_CTX_get_verify_depth()\fR returns the verification depth limit currently set in \fBctx\fR. If no limit has been explicitly set, \-1 is returned and the default value will be used. .PP \&\fISSL_get_verify_depth()\fR returns the verification depth limit currently set in \fBssl\fR. If no limit has been explicitly set, \-1 is returned and the default value will be used. .PP \&\fISSL_CTX_get_verify_callback()\fR returns a function pointer to the verification callback currently set in \fBctx\fR. If no callback was explicitly set, the \&\s-1NULL\s0 pointer is returned and the default callback will be used. .PP \&\fISSL_get_verify_callback()\fR returns a function pointer to the verification callback currently set in \fBssl\fR. If no callback was explicitly set, the \&\s-1NULL\s0 pointer is returned and the default callback will be used. .SH "RETURN VALUES" .IX Header "RETURN VALUES" See \s-1DESCRIPTION\s0 .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_CTX_set_verify\fR\|(3) man3/BN_mod_mul_reciprocal.3000064400000015275147210533270011722 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BN_mod_mul_reciprocal 3" .TH BN_mod_mul_reciprocal 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BN_mod_mul_reciprocal, BN_div_recp, BN_RECP_CTX_new, BN_RECP_CTX_init, BN_RECP_CTX_free, BN_RECP_CTX_set \- modular multiplication using reciprocal .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& BN_RECP_CTX *BN_RECP_CTX_new(void); \& void BN_RECP_CTX_init(BN_RECP_CTX *recp); \& void BN_RECP_CTX_free(BN_RECP_CTX *recp); \& \& int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *m, BN_CTX *ctx); \& \& int BN_div_recp(BIGNUM *dv, BIGNUM *rem, BIGNUM *a, BN_RECP_CTX *recp, \& BN_CTX *ctx); \& \& int BN_mod_mul_reciprocal(BIGNUM *r, BIGNUM *a, BIGNUM *b, \& BN_RECP_CTX *recp, BN_CTX *ctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBN_mod_mul_reciprocal()\fR can be used to perform an efficient \&\fIBN_mod_mul\fR\|(3) operation when the operation will be performed repeatedly with the same modulus. It computes \fBr\fR=(\fBa\fR*\fBb\fR)%\fBm\fR using \fBrecp\fR=1/\fBm\fR, which is set as described below. \fBctx\fR is a previously allocated \fB\s-1BN_CTX\s0\fR used for temporary variables. .PP \&\fIBN_RECP_CTX_new()\fR allocates and initializes a \fB\s-1BN_RECP\s0\fR structure. \&\fIBN_RECP_CTX_init()\fR initializes an existing uninitialized \fB\s-1BN_RECP\s0\fR. .PP \&\fIBN_RECP_CTX_free()\fR frees the components of the \fB\s-1BN_RECP\s0\fR, and, if it was created by \fIBN_RECP_CTX_new()\fR, also the structure itself. .PP \&\fIBN_RECP_CTX_set()\fR stores \fBm\fR in \fBrecp\fR and sets it up for computing 1/\fBm\fR and shifting it left by BN_num_bits(\fBm\fR)+1 to make it an integer. The result and the number of bits it was shifted left will later be stored in \fBrecp\fR. .PP \&\fIBN_div_recp()\fR divides \fBa\fR by \fBm\fR using \fBrecp\fR. It places the quotient in \fBdv\fR and the remainder in \fBrem\fR. .PP The \fB\s-1BN_RECP_CTX\s0\fR structure is defined as follows: .PP .Vb 8 \& typedef struct bn_recp_ctx_st \& { \& BIGNUM N; /* the divisor */ \& BIGNUM Nr; /* the reciprocal */ \& int num_bits; \& int shift; \& int flags; \& } BN_RECP_CTX; .Ve .PP It cannot be shared between threads. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBN_RECP_CTX_new()\fR returns the newly allocated \fB\s-1BN_RECP_CTX\s0\fR, and \s-1NULL\s0 on error. .PP \&\fIBN_RECP_CTX_init()\fR and \fIBN_RECP_CTX_free()\fR have no return values. .PP For the other functions, 1 is returned for success, 0 on error. The error codes can be obtained by \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIbn\fR\|(3), \fIERR_get_error\fR\|(3), \fIBN_add\fR\|(3), \&\fIBN_CTX_new\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fB\s-1BN_RECP_CTX\s0\fR was added in SSLeay 0.9.0. Before that, the function \&\fIBN_reciprocal()\fR was used instead, and the \fIBN_mod_mul_reciprocal()\fR arguments were different. man3/SSL_set_shutdown.3000064400000014137147210533270010747 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_set_shutdown 3" .TH SSL_set_shutdown 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_set_shutdown, SSL_get_shutdown \- manipulate shutdown state of an SSL connection .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void SSL_set_shutdown(SSL *ssl, int mode); \& \& int SSL_get_shutdown(const SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_set_shutdown()\fR sets the shutdown state of \fBssl\fR to \fBmode\fR. .PP \&\fISSL_get_shutdown()\fR returns the shutdown mode of \fBssl\fR. .SH "NOTES" .IX Header "NOTES" The shutdown state of an ssl connection is a bitmask of: .IP "0" 4 No shutdown setting, yet. .IP "\s-1SSL_SENT_SHUTDOWN\s0" 4 .IX Item "SSL_SENT_SHUTDOWN" A \*(L"close notify\*(R" shutdown alert was sent to the peer, the connection is being considered closed and the session is closed and correct. .IP "\s-1SSL_RECEIVED_SHUTDOWN\s0" 4 .IX Item "SSL_RECEIVED_SHUTDOWN" A shutdown alert was received form the peer, either a normal \*(L"close notify\*(R" or a fatal error. .PP \&\s-1SSL_SENT_SHUTDOWN\s0 and \s-1SSL_RECEIVED_SHUTDOWN\s0 can be set at the same time. .PP The shutdown state of the connection is used to determine the state of the ssl session. If the session is still open, when \&\fISSL_clear\fR\|(3) or \fISSL_free\fR\|(3) is called, it is considered bad and removed according to \s-1RFC2246.\s0 The actual condition for a correctly closed session is \s-1SSL_SENT_SHUTDOWN \&\s0(according to the \s-1TLS RFC,\s0 it is acceptable to only send the \*(L"close notify\*(R" alert but to not wait for the peer's answer, when the underlying connection is closed). \&\fISSL_set_shutdown()\fR can be used to set this state without sending a close alert to the peer (see \fISSL_shutdown\fR\|(3)). .PP If a \*(L"close notify\*(R" was received, \s-1SSL_RECEIVED_SHUTDOWN\s0 will be set, for setting \s-1SSL_SENT_SHUTDOWN\s0 the application must however still call \&\fISSL_shutdown\fR\|(3) or \fISSL_set_shutdown()\fR itself. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_set_shutdown()\fR does not return diagnostic information. .PP \&\fISSL_get_shutdown()\fR returns the current setting. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_shutdown\fR\|(3), \&\fISSL_CTX_set_quiet_shutdown\fR\|(3), \&\fISSL_clear\fR\|(3), \fISSL_free\fR\|(3) man3/BN_BLINDING_new.3000064400000022140147210533270010107 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BN_BLINDING_new 3" .TH BN_BLINDING_new 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BN_BLINDING_new, BN_BLINDING_free, BN_BLINDING_update, BN_BLINDING_convert, BN_BLINDING_invert, BN_BLINDING_convert_ex, BN_BLINDING_invert_ex, BN_BLINDING_get_thread_id, BN_BLINDING_set_thread_id, BN_BLINDING_thread_id, BN_BLINDING_get_flags, BN_BLINDING_set_flags, BN_BLINDING_create_param \- blinding related BIGNUM functions. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, \& BIGNUM *mod); \& void BN_BLINDING_free(BN_BLINDING *b); \& int BN_BLINDING_update(BN_BLINDING *b,BN_CTX *ctx); \& int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); \& int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); \& int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, \& BN_CTX *ctx); \& int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b, \& BN_CTX *ctx); \& #ifndef OPENSSL_NO_DEPRECATED \& unsigned long BN_BLINDING_get_thread_id(const BN_BLINDING *); \& void BN_BLINDING_set_thread_id(BN_BLINDING *, unsigned long); \& #endif \& CRYPTO_THREADID *BN_BLINDING_thread_id(BN_BLINDING *); \& unsigned long BN_BLINDING_get_flags(const BN_BLINDING *); \& void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long); \& BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, \& const BIGNUM *e, BIGNUM *m, BN_CTX *ctx, \& int (*bn_mod_exp)(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, \& const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx), \& BN_MONT_CTX *m_ctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBN_BLINDING_new()\fR allocates a new \fB\s-1BN_BLINDING\s0\fR structure and copies the \fBA\fR and \fBAi\fR values into the newly created \fB\s-1BN_BLINDING\s0\fR object. .PP \&\fIBN_BLINDING_free()\fR frees the \fB\s-1BN_BLINDING\s0\fR structure. .PP \&\fIBN_BLINDING_update()\fR updates the \fB\s-1BN_BLINDING\s0\fR parameters by squaring the \fBA\fR and \fBAi\fR or, after specific number of uses and if the necessary parameters are set, by re-creating the blinding parameters. .PP \&\fIBN_BLINDING_convert_ex()\fR multiplies \fBn\fR with the blinding factor \fBA\fR. If \fBr\fR is not \s-1NULL\s0 a copy the inverse blinding factor \fBAi\fR will be returned in \fBr\fR (this is useful if a \fB\s-1RSA\s0\fR object is shared among several threads). \fIBN_BLINDING_invert_ex()\fR multiplies \fBn\fR with the inverse blinding factor \fBAi\fR. If \fBr\fR is not \s-1NULL\s0 it will be used as the inverse blinding. .PP \&\fIBN_BLINDING_convert()\fR and \fIBN_BLINDING_invert()\fR are wrapper functions for \fIBN_BLINDING_convert_ex()\fR and \fIBN_BLINDING_invert_ex()\fR with \fBr\fR set to \s-1NULL.\s0 .PP \&\fIBN_BLINDING_thread_id()\fR provides access to the \fB\s-1CRYPTO_THREADID\s0\fR object within the \fB\s-1BN_BLINDING\s0\fR structure. This is to help users provide proper locking if needed for multi-threaded use. The \*(L"thread id\*(R" object of a newly allocated \fB\s-1BN_BLINDING\s0\fR structure is initialised to the thread id in which \fIBN_BLINDING_new()\fR was called. .PP \&\fIBN_BLINDING_get_flags()\fR returns the \s-1BN_BLINDING\s0 flags. Currently there are two supported flags: \fB\s-1BN_BLINDING_NO_UPDATE\s0\fR and \&\fB\s-1BN_BLINDING_NO_RECREATE\s0\fR. \fB\s-1BN_BLINDING_NO_UPDATE\s0\fR inhibits the automatic update of the \fB\s-1BN_BLINDING\s0\fR parameters after each use and \fB\s-1BN_BLINDING_NO_RECREATE\s0\fR inhibits the automatic re-creation of the \fB\s-1BN_BLINDING\s0\fR parameters after a fixed number of uses (currently 32). In newly allocated \fB\s-1BN_BLINDING\s0\fR objects no flags are set. \&\fIBN_BLINDING_set_flags()\fR sets the \fB\s-1BN_BLINDING\s0\fR parameters flags. .PP \&\fIBN_BLINDING_create_param()\fR creates new \fB\s-1BN_BLINDING\s0\fR parameters using the exponent \fBe\fR and the modulus \fBm\fR. \fBbn_mod_exp\fR and \&\fBm_ctx\fR can be used to pass special functions for exponentiation (normally \fIBN_mod_exp_mont()\fR and \fB\s-1BN_MONT_CTX\s0\fR). .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBN_BLINDING_new()\fR returns the newly allocated \fB\s-1BN_BLINDING\s0\fR structure or \s-1NULL\s0 in case of an error. .PP \&\fIBN_BLINDING_update()\fR, \fIBN_BLINDING_convert()\fR, \fIBN_BLINDING_invert()\fR, \&\fIBN_BLINDING_convert_ex()\fR and \fIBN_BLINDING_invert_ex()\fR return 1 on success and 0 if an error occurred. .PP \&\fIBN_BLINDING_thread_id()\fR returns a pointer to the thread id object within a \fB\s-1BN_BLINDING\s0\fR object. .PP \&\fIBN_BLINDING_get_flags()\fR returns the currently set \fB\s-1BN_BLINDING\s0\fR flags (a \fBunsigned long\fR value). .PP \&\fIBN_BLINDING_create_param()\fR returns the newly created \fB\s-1BN_BLINDING\s0\fR parameters or \s-1NULL\s0 on error. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIbn\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" BN_BLINDING_thread_id was first introduced in OpenSSL 1.0.0, and it deprecates BN_BLINDING_set_thread_id and BN_BLINDING_get_thread_id. .PP BN_BLINDING_convert_ex, BN_BLINDIND_invert_ex, BN_BLINDING_get_thread_id, BN_BLINDING_set_thread_id, BN_BLINDING_set_flags, BN_BLINDING_get_flags and BN_BLINDING_create_param were first introduced in OpenSSL 0.9.8 .SH "AUTHOR" .IX Header "AUTHOR" Nils Larsch for the OpenSSL project (http://www.openssl.org). man3/EC_GROUP_copy.3000064400000034236147210533270007777 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EC_GROUP_copy 3" .TH EC_GROUP_copy 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EC_GROUP_copy, EC_GROUP_dup, EC_GROUP_method_of, EC_GROUP_set_generator, EC_GROUP_get0_generator, EC_GROUP_get_order, EC_GROUP_get_cofactor, EC_GROUP_set_curve_name, EC_GROUP_get_curve_name, EC_GROUP_set_asn1_flag, EC_GROUP_get_asn1_flag, EC_GROUP_set_point_conversion_form, EC_GROUP_get_point_conversion_form, EC_GROUP_get0_seed, EC_GROUP_get_seed_len, EC_GROUP_set_seed, EC_GROUP_get_degree, EC_GROUP_check, EC_GROUP_check_discriminant, EC_GROUP_cmp, EC_GROUP_get_basis_type, EC_GROUP_get_trinomial_basis, EC_GROUP_get_pentanomial_basis \- Functions for manipulating EC_GROUP objects. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& #include \& #include \& \& int EC_GROUP_copy(EC_GROUP *dst, const EC_GROUP *src); \& EC_GROUP *EC_GROUP_dup(const EC_GROUP *src); \& \& const EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group); \& \& int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator, const BIGNUM *order, const BIGNUM *cofactor); \& const EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group); \& \& int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx); \& int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor, BN_CTX *ctx); \& \& void EC_GROUP_set_curve_name(EC_GROUP *group, int nid); \& int EC_GROUP_get_curve_name(const EC_GROUP *group); \& \& void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag); \& int EC_GROUP_get_asn1_flag(const EC_GROUP *group); \& \& void EC_GROUP_set_point_conversion_form(EC_GROUP *group, point_conversion_form_t form); \& point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP *); \& \& unsigned char *EC_GROUP_get0_seed(const EC_GROUP *x); \& size_t EC_GROUP_get_seed_len(const EC_GROUP *); \& size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len); \& \& int EC_GROUP_get_degree(const EC_GROUP *group); \& \& int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx); \& \& int EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx); \& \& int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx); \& \& int EC_GROUP_get_basis_type(const EC_GROUP *); \& int EC_GROUP_get_trinomial_basis(const EC_GROUP *, unsigned int *k); \& int EC_GROUP_get_pentanomial_basis(const EC_GROUP *, unsigned int *k1, \& unsigned int *k2, unsigned int *k3); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" EC_GROUP_copy copies the curve \fBsrc\fR into \fBdst\fR. Both \fBsrc\fR and \fBdst\fR must use the same \s-1EC_METHOD.\s0 .PP EC_GROUP_dup creates a new \s-1EC_GROUP\s0 object and copies the content from \fBsrc\fR to the newly created \&\s-1EC_GROUP\s0 object. .PP EC_GROUP_method_of obtains the \s-1EC_METHOD\s0 of \fBgroup\fR. .PP EC_GROUP_set_generator sets curve paramaters that must be agreed by all participants using the curve. These paramaters include the \fBgenerator\fR, the \fBorder\fR and the \fBcofactor\fR. The \fBgenerator\fR is a well defined point on the curve chosen for cryptographic operations. Integers used for point multiplications will be between 0 and n\-1 where n is the \fBorder\fR. The \fBorder\fR multipied by the \fBcofactor\fR gives the number of points on the curve. .PP EC_GROUP_get0_generator returns the generator for the identified \fBgroup\fR. .PP The functions EC_GROUP_get_order and EC_GROUP_get_cofactor populate the provided \fBorder\fR and \fBcofactor\fR parameters with the respective order and cofactors for the \fBgroup\fR. .PP The functions EC_GROUP_set_curve_name and EC_GROUP_get_curve_name, set and get the \s-1NID\s0 for the curve respectively (see \fIEC_GROUP_new\fR\|(3)). If a curve does not have a \s-1NID\s0 associated with it, then EC_GROUP_get_curve_name will return 0. .PP The asn1_flag value on a curve is used to determine whether there is a specific \s-1ASN1 OID\s0 to describe the curve or not. If the asn1_flag is 1 then this is a named curve with an associated \s-1ASN1 OID.\s0 If not then asn1_flag is 0. The functions EC_GROUP_get_asn1_flag and EC_GROUP_set_asn1_flag get and set the status of the asn1_flag for the curve. If set then the curve_name must also be set. .PP The point_coversion_form for a curve controls how \s-1EC_POINT\s0 data is encoded as \s-1ASN1\s0 as defined in X9.62 (\s-1ECDSA\s0). point_conversion_form_t is an enum defined as follows: .PP .Vb 10 \& typedef enum { \& /** the point is encoded as z||x, where the octet z specifies \& * which solution of the quadratic equation y is */ \& POINT_CONVERSION_COMPRESSED = 2, \& /** the point is encoded as z||x||y, where z is the octet 0x02 */ \& POINT_CONVERSION_UNCOMPRESSED = 4, \& /** the point is encoded as z||x||y, where the octet z specifies \& * which solution of the quadratic equation y is */ \& POINT_CONVERSION_HYBRID = 6 \& } point_conversion_form_t; .Ve .PP For \s-1POINT_CONVERSION_UNCOMPRESSED\s0 the point is encoded as an octet signifying the \s-1UNCOMPRESSED\s0 form has been used followed by the octets for x, followed by the octets for y. .PP For any given x co-ordinate for a point on a curve it is possible to derive two possible y values. For \&\s-1POINT_CONVERSION_COMPRESSED\s0 the point is encoded as an octet signifying that the \s-1COMPRESSED\s0 form has been used \s-1AND\s0 which of the two possible solutions for y has been used, followed by the octets for x. .PP For \s-1POINT_CONVERSION_HYBRID\s0 the point is encoded as an octet signifying the \s-1HYBRID\s0 form has been used \s-1AND\s0 which of the two possible solutions for y has been used, followed by the octets for x, followed by the octets for y. .PP The functions EC_GROUP_set_point_conversion_form and EC_GROUP_get_point_conversion_form set and get the point_conversion_form for the curve respectively. .PP \&\s-1ANSI X9.62 \s0(\s-1ECDSA\s0 standard) defines a method of generating the curve parameter b from a random number. This provides advantages in that a parameter obtained in this way is highly unlikely to be susceptible to special purpose attacks, or have any trapdoors in it. If the seed is present for a curve then the b parameter was generated in a verifiable fashion using that seed. The OpenSSL \s-1EC\s0 library does not use this seed value but does enable you to inspect it using EC_GROUP_get0_seed. This returns a pointer to a memory block containing the seed that was used. The length of the memory block can be obtained using EC_GROUP_get_seed_len. A number of the builtin curves within the library provide seed values that can be obtained. It is also possible to set a custom seed using EC_GROUP_set_seed and passing a pointer to a memory block, along with the length of the seed. Again, the \s-1EC\s0 library will not use this seed value, although it will be preserved in any \s-1ASN1\s0 based communications. .PP EC_GROUP_get_degree gets the degree of the field. For Fp fields this will be the number of bits in p. For F2^m fields this will be the value m. .PP The function EC_GROUP_check_discriminant calculates the discriminant for the curve and verifies that it is valid. For a curve defined over Fp the discriminant is given by the formula 4*a^3 + 27*b^2 whilst for F2^m curves the discriminant is simply b. In either case for the curve to be valid the discriminant must be non zero. .PP The function EC_GROUP_check performs a number of checks on a curve to verify that it is valid. Checks performed include verifying that the discriminant is non zero; that a generator has been defined; that the generator is on the curve and has the correct order. .PP EC_GROUP_cmp compares \fBa\fR and \fBb\fR to determine whether they represent the same curve or not. .PP The functions EC_GROUP_get_basis_type, EC_GROUP_get_trinomial_basis and EC_GROUP_get_pentanomial_basis should only be called for curves defined over an F2^m field. Addition and multiplication operations within an F2^m field are performed using an irreducible polynomial function f(x). This function is either a trinomial of the form: .PP f(x) = x^m + x^k + 1 with m > k >= 1 .PP or a pentanomial of the form: .PP f(x) = x^m + x^k3 + x^k2 + x^k1 + 1 with m > k3 > k2 > k1 >= 1 .PP The function EC_GROUP_get_basis_type returns a \s-1NID\s0 identifying whether a trinomial or pentanomial is in use for the field. The function EC_GROUP_get_trinomial_basis must only be called where f(x) is of the trinomial form, and returns the value of \fBk\fR. Similary the function EC_GROUP_get_pentanomial_basis must only be called where f(x) is of the pentanomial form, and returns the values of \fBk1\fR, \&\fBk2\fR and \fBk3\fR respectively. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following functions return 1 on success or 0 on error: EC_GROUP_copy, EC_GROUP_set_generator, EC_GROUP_check, EC_GROUP_check_discriminant, EC_GROUP_get_trinomial_basis and EC_GROUP_get_pentanomial_basis. .PP EC_GROUP_dup returns a pointer to the duplicated curve, or \s-1NULL\s0 on error. .PP EC_GROUP_method_of returns the \s-1EC_METHOD\s0 implementation in use for the given curve or \s-1NULL\s0 on error. .PP EC_GROUP_get0_generator returns the generator for the given curve or \s-1NULL\s0 on error. .PP EC_GROUP_get_order, EC_GROUP_get_cofactor, EC_GROUP_get_curve_name, EC_GROUP_get_asn1_flag, EC_GROUP_get_point_conversion_form and EC_GROUP_get_degree return the order, cofactor, curve name (\s-1NID\s0), \s-1ASN1\s0 flag, point_conversion_form and degree for the specified curve respectively. If there is no curve name associated with a curve then EC_GROUP_get_curve_name will return 0. .PP EC_GROUP_get0_seed returns a pointer to the seed that was used to generate the parameter b, or \s-1NULL\s0 if the seed is not specified. EC_GROUP_get_seed_len returns the length of the seed or 0 if the seed is not specified. .PP EC_GROUP_set_seed returns the length of the seed that has been set. If the supplied seed is \s-1NULL,\s0 or the supplied seed length is 0, the return value will be 1. On error 0 is returned. .PP EC_GROUP_cmp returns 0 if the curves are equal, 1 if they are not equal, or \-1 on error. .PP EC_GROUP_get_basis_type returns the values NID_X9_62_tpBasis or NID_X9_62_ppBasis (as defined in ) for a trinomial or pentanomial respectively. Alternatively in the event of an error a 0 is returned. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIcrypto\fR\|(3), \fIec\fR\|(3), \fIEC_GROUP_new\fR\|(3), \&\fIEC_POINT_new\fR\|(3), \fIEC_POINT_add\fR\|(3), \fIEC_KEY_new\fR\|(3), \&\fIEC_GFp_simple_method\fR\|(3), \fId2i_ECPKParameters\fR\|(3) man3/BN_rand.3000064400000014434147210533270007003 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BN_rand 3" .TH BN_rand 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BN_rand, BN_pseudo_rand, BN_rand_range, BN_pseudo_rand_range \- generate pseudo\-random number .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int BN_rand(BIGNUM *rnd, int bits, int top, int bottom); \& \& int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom); \& \& int BN_rand_range(BIGNUM *rnd, BIGNUM *range); \& \& int BN_pseudo_rand_range(BIGNUM *rnd, BIGNUM *range); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBN_rand()\fR generates a cryptographically strong pseudo-random number of \&\fBbits\fR in length and stores it in \fBrnd\fR. If \fBbits\fR is less than zero, or too small to accomodate the requirements specified by the \fBtop\fR and \fBbottom\fR parameters, an error is returned. If \fBtop\fR is \-1, the most significant bit of the random number can be zero. If \fBtop\fR is 0, it is set to 1, and if \fBtop\fR is 1, the two most significant bits of the number will be set to 1, so that the product of two such random numbers will always have 2*\fBbits\fR length. If \fBbottom\fR is true, the number will be odd. The value of \fBbits\fR must be zero or greater. If \fBbits\fR is 1 then \fBtop\fR cannot also be 1. .PP \&\fIBN_pseudo_rand()\fR does the same, but pseudo-random numbers generated by this function are not necessarily unpredictable. They can be used for non-cryptographic purposes and for certain purposes in cryptographic protocols, but usually not for key generation etc. .PP \&\fIBN_rand_range()\fR generates a cryptographically strong pseudo-random number \fBrnd\fR in the range 0 <= \fBrnd\fR < \fBrange\fR. \&\fIBN_pseudo_rand_range()\fR does the same, but is based on \fIBN_pseudo_rand()\fR, and hence numbers generated by it are not necessarily unpredictable. .PP The \s-1PRNG\s0 must be seeded prior to calling \fIBN_rand()\fR or \fIBN_rand_range()\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The functions return 1 on success, 0 on error. The error codes can be obtained by \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIbn\fR\|(3), \fIERR_get_error\fR\|(3), \fIrand\fR\|(3), \&\fIRAND_add\fR\|(3), \fIRAND_bytes\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIBN_rand()\fR is available in all versions of SSLeay and OpenSSL. \&\fIBN_pseudo_rand()\fR was added in OpenSSL 0.9.5. The \fBtop\fR == \-1 case and the function \fIBN_rand_range()\fR were added in OpenSSL 0.9.6a. \&\fIBN_pseudo_rand_range()\fR was added in OpenSSL 0.9.6c. man3/ERR_set_mark.3000064400000011467147210533270010020 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ERR_set_mark 3" .TH ERR_set_mark 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ERR_set_mark, ERR_pop_to_mark \- set marks and pop errors until mark .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int ERR_set_mark(void); \& \& int ERR_pop_to_mark(void); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIERR_set_mark()\fR sets a mark on the current topmost error record if there is one. .PP \&\fIERR_pop_to_mark()\fR will pop the top of the error stack until a mark is found. The mark is then removed. If there is no mark, the whole stack is removed. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIERR_set_mark()\fR returns 0 if the error stack is empty, otherwise 1. .PP \&\fIERR_pop_to_mark()\fR returns 0 if there was no mark in the error stack, which implies that the stack became empty, otherwise 1. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIerr\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIERR_set_mark()\fR and \fIERR_pop_to_mark()\fR were added in OpenSSL 0.9.8. man3/RSA_generate_key.3000064400000014405147210533270010645 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RSA_generate_key 3" .TH RSA_generate_key 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" RSA_generate_key_ex, RSA_generate_key \- generate RSA key pair .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); .Ve .PP Deprecated: .PP .Vb 2 \& RSA *RSA_generate_key(int num, unsigned long e, \& void (*callback)(int,int,void *), void *cb_arg); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIRSA_generate_key_ex()\fR generates a key pair and stores it in the \fB\s-1RSA\s0\fR structure provided in \fBrsa\fR. The pseudo-random number generator must be seeded prior to calling \fIRSA_generate_key_ex()\fR. .PP The modulus size will be of length \fBbits\fR, and the public exponent will be \&\fBe\fR. Key sizes with \fBnum\fR < 1024 should be considered insecure. The exponent is an odd number, typically 3, 17 or 65537. .PP A callback function may be used to provide feedback about the progress of the key generation. If \fBcb\fR is not \fB\s-1NULL\s0\fR, it will be called as follows using the \fIBN_GENCB_call()\fR function described on the \fIBN_generate_prime\fR\|(3) page. .IP "\(bu" 4 While a random prime number is generated, it is called as described in \fIBN_generate_prime\fR\|(3). .IP "\(bu" 4 When the n\-th randomly generated prime is rejected as not suitable for the key, \fBBN_GENCB_call(cb, 2, n)\fR is called. .IP "\(bu" 4 When a random p has been found with p\-1 relatively prime to \fBe\fR, it is called as \fBBN_GENCB_call(cb, 3, 0)\fR. .PP The process is then repeated for prime q with \fBBN_GENCB_call(cb, 3, 1)\fR. .PP RSA_generate_key is deprecated (new applications should use RSA_generate_key_ex instead). RSA_generate_key works in the same way as RSA_generate_key_ex except it uses \*(L"old style\*(R" call backs. See \&\fIBN_generate_prime\fR\|(3) for further details. .SH "RETURN VALUE" .IX Header "RETURN VALUE" If key generation fails, \fIRSA_generate_key()\fR returns \fB\s-1NULL\s0\fR. .PP The error codes can be obtained by \fIERR_get_error\fR\|(3). .SH "BUGS" .IX Header "BUGS" \&\fBBN_GENCB_call(cb, 2, x)\fR is used with two different meanings. .PP \&\fIRSA_generate_key()\fR goes into an infinite loop for illegal input values. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fIrand\fR\|(3), \fIrsa\fR\|(3), \&\fIRSA_free\fR\|(3), \fIBN_generate_prime\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" The \fBcb_arg\fR argument was added in SSLeay 0.9.0. man3/SSL_CTX_set_max_cert_list.3000064400000015575147210533270012456 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_max_cert_list 3" .TH SSL_CTX_set_max_cert_list 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_max_cert_list, SSL_CTX_get_max_cert_list, SSL_set_max_cert_list, SSL_get_max_cert_list, \- manipulate allowed for the peer's certificate chain .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& long SSL_CTX_set_max_cert_list(SSL_CTX *ctx, long size); \& long SSL_CTX_get_max_cert_list(SSL_CTX *ctx); \& \& long SSL_set_max_cert_list(SSL *ssl, long size); \& long SSL_get_max_cert_list(SSL *ctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set_max_cert_list()\fR sets the maximum size allowed for the peer's certificate chain for all \s-1SSL\s0 objects created from \fBctx\fR to be bytes. The \s-1SSL\s0 objects inherit the setting valid for \fBctx\fR at the time \&\fISSL_new\fR\|(3) is being called. .PP \&\fISSL_CTX_get_max_cert_list()\fR returns the currently set maximum size for \fBctx\fR. .PP \&\fISSL_set_max_cert_list()\fR sets the maximum size allowed for the peer's certificate chain for \fBssl\fR to be bytes. This setting stays valid until a new value is set. .PP \&\fISSL_get_max_cert_list()\fR returns the currently set maximum size for \fBssl\fR. .SH "NOTES" .IX Header "NOTES" During the handshake process, the peer may send a certificate chain. The \s-1TLS/SSL\s0 standard does not give any maximum size of the certificate chain. The OpenSSL library handles incoming data by a dynamically allocated buffer. In order to prevent this buffer from growing without bounds due to data received from a faulty or malicious peer, a maximum size for the certificate chain is set. .PP The default value for the maximum certificate chain size is 100kB (30kB on the 16bit \s-1DOS\s0 platform). This should be sufficient for usual certificate chains (OpenSSL's default maximum chain length is 10, see \&\fISSL_CTX_set_verify\fR\|(3), and certificates without special extensions have a typical size of 1\-2kB). .PP For special applications it can be necessary to extend the maximum certificate chain size allowed to be sent by the peer, see e.g. the work on \&\*(L"Internet X.509 Public Key Infrastructure Proxy Certificate Profile\*(R" and \*(L"\s-1TLS\s0 Delegation Protocol\*(R" at http://www.ietf.org/ and http://www.globus.org/ . .PP Under normal conditions it should never be necessary to set a value smaller than the default, as the buffer is handled dynamically and only uses the memory actually required by the data sent by the peer. .PP If the maximum certificate chain size allowed is exceeded, the handshake will fail with a \s-1SSL_R_EXCESSIVE_MESSAGE_SIZE\s0 error. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CTX_set_max_cert_list()\fR and \fISSL_set_max_cert_list()\fR return the previously set value. .PP \&\fISSL_CTX_get_max_cert_list()\fR and \fISSL_get_max_cert_list()\fR return the currently set value. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_new\fR\|(3), \&\fISSL_CTX_set_verify\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" SSL*_set/\fIget_max_cert_list()\fR have been introduced in OpenSSL 0.9.7. man3/d2i_PrivateKey.3000064400000014264147210533270010322 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "d2i_PrivateKey 3" .TH d2i_PrivateKey 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" d2i_Private_key, d2i_AutoPrivateKey, i2d_PrivateKey \- decode and encode functions for reading and saving EVP_PKEY structures. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp, \& long length); \& EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp, \& long length); \& int i2d_PrivateKey(EVP_PKEY *a, unsigned char **pp); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fId2i_PrivateKey()\fR decodes a private key using algorithm \fBtype\fR. It attempts to use any key specific format or PKCS#8 unencrypted PrivateKeyInfo format. The \&\fBtype\fR parameter should be a public key algorithm constant such as \&\fB\s-1EVP_PKEY_RSA\s0\fR. An error occurs if the decoded key does not match \fBtype\fR. .PP \&\fId2i_AutoPrivateKey()\fR is similar to \fId2i_PrivateKey()\fR except it attempts to automatically detect the private key format. .PP \&\fIi2d_PrivateKey()\fR encodes \fBkey\fR. It uses a key specific format or, if none is defined for that key type, PKCS#8 unencrypted PrivateKeyInfo format. .PP These functions are similar to the \fId2i_X509()\fR functions, and you should refer to that page for a detailed description (see \fId2i_X509\fR\|(3)). .SH "NOTES" .IX Header "NOTES" All these functions use \s-1DER\s0 format and unencrypted keys. Applications wishing to encrypt or decrypt private keys should use other functions such as \&\fId2i_PKC8PrivateKey()\fR instead. .PP If the \fB*a\fR is not \s-1NULL\s0 when calling \fId2i_PrivateKey()\fR or \fId2i_AutoPrivateKey()\fR (i.e. an existing structure is being reused) and the key format is PKCS#8 then \fB*a\fR will be freed and replaced on a successful call. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fId2i_PrivateKey()\fR and \fId2i_AutoPrivateKey()\fR return a valid \fB\s-1EVP_KEY\s0\fR structure or \fB\s-1NULL\s0\fR if an error occurs. The error code can be obtained by calling \&\fIERR_get_error\fR\|(3). .PP \&\fIi2d_PrivateKey()\fR returns the number of bytes successfully encoded or a negative value if an error occurs. The error code can be obtained by calling \&\fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIcrypto\fR\|(3), \&\fId2i_PKCS8PrivateKey\fR\|(3) man3/SSL_CTX_add_session.3000064400000014571147210533270011234 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_add_session 3" .TH SSL_CTX_add_session 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_add_session, SSL_add_session, SSL_CTX_remove_session, SSL_remove_session \- manipulate session cache .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_CTX_add_session(SSL_CTX *ctx, SSL_SESSION *c); \& int SSL_add_session(SSL_CTX *ctx, SSL_SESSION *c); \& \& int SSL_CTX_remove_session(SSL_CTX *ctx, SSL_SESSION *c); \& int SSL_remove_session(SSL_CTX *ctx, SSL_SESSION *c); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_add_session()\fR adds the session \fBc\fR to the context \fBctx\fR. The reference count for session \fBc\fR is incremented by 1. If a session with the same session id already exists, the old session is removed by calling \&\fISSL_SESSION_free\fR\|(3). .PP \&\fISSL_CTX_remove_session()\fR removes the session \fBc\fR from the context \fBctx\fR. \&\fISSL_SESSION_free\fR\|(3) is called once for \fBc\fR. .PP \&\fISSL_add_session()\fR and \fISSL_remove_session()\fR are synonyms for their SSL_CTX_*() counterparts. .SH "NOTES" .IX Header "NOTES" When adding a new session to the internal session cache, it is examined whether a session with the same session id already exists. In this case it is assumed that both sessions are identical. If the same session is stored in a different \s-1SSL_SESSION\s0 object, The old session is removed and replaced by the new session. If the session is actually identical (the \s-1SSL_SESSION\s0 object is identical), \fISSL_CTX_add_session()\fR is a no-op, and the return value is 0. .PP If a server \s-1SSL_CTX\s0 is configured with the \s-1SSL_SESS_CACHE_NO_INTERNAL_STORE\s0 flag then the internal cache will not be populated automatically by new sessions negotiated by the \s-1SSL/TLS\s0 implementation, even though the internal cache will be searched automatically for session-resume requests (the latter can be suppressed by \s-1SSL_SESS_CACHE_NO_INTERNAL_LOOKUP\s0). So the application can use \fISSL_CTX_add_session()\fR directly to have full control over the sessions that can be resumed if desired. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following values are returned by all functions: .IP "0" 4 .Vb 3 \& The operation failed. In case of the add operation, it was tried to add \& the same (identical) session twice. In case of the remove operation, the \& session was not found in the cache. .Ve .IP "1" 4 .IX Item "1" .Vb 1 \& The operation succeeded. .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \&\fISSL_CTX_set_session_cache_mode\fR\|(3), \&\fISSL_SESSION_free\fR\|(3) man3/BIO_s_connect.3000064400000026740147210533270010147 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BIO_s_connect 3" .TH BIO_s_connect 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BIO_s_connect, BIO_new_connect, BIO_set_conn_hostname, BIO_set_conn_port, BIO_set_conn_ip, BIO_set_conn_int_port, BIO_get_conn_hostname, BIO_get_conn_port, BIO_get_conn_ip, BIO_get_conn_int_port, BIO_set_nbio, BIO_do_connect \- connect BIO .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& BIO_METHOD * BIO_s_connect(void); \& \& BIO *BIO_new_connect(char *name); \& \& long BIO_set_conn_hostname(BIO *b, char *name); \& long BIO_set_conn_port(BIO *b, char *port); \& long BIO_set_conn_ip(BIO *b, char *ip); \& long BIO_set_conn_int_port(BIO *b, char *port); \& char *BIO_get_conn_hostname(BIO *b); \& char *BIO_get_conn_port(BIO *b); \& char *BIO_get_conn_ip(BIO *b); \& long BIO_get_conn_int_port(BIO *b); \& \& long BIO_set_nbio(BIO *b, long n); \& \& int BIO_do_connect(BIO *b); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBIO_s_connect()\fR returns the connect \s-1BIO\s0 method. This is a wrapper round the platform's \s-1TCP/IP\s0 socket connection routines. .PP Using connect BIOs, \s-1TCP/IP\s0 connections can be made and data transferred using only \s-1BIO\s0 routines. In this way any platform specific operations are hidden by the \s-1BIO\s0 abstraction. .PP Read and write operations on a connect \s-1BIO\s0 will perform I/O on the underlying connection. If no connection is established and the port and hostname (see below) is set up properly then a connection is established first. .PP Connect BIOs support \fIBIO_puts()\fR but not \fIBIO_gets()\fR. .PP If the close flag is set on a connect \s-1BIO\s0 then any active connection is shutdown and the socket closed when the \s-1BIO\s0 is freed. .PP Calling \fIBIO_reset()\fR on a connect \s-1BIO\s0 will close any active connection and reset the \s-1BIO\s0 into a state where it can connect to the same host again. .PP \&\fIBIO_get_fd()\fR places the underlying socket in \fBc\fR if it is not \s-1NULL,\s0 it also returns the socket . If \fBc\fR is not \s-1NULL\s0 it should be of type (int *). .PP \&\fIBIO_set_conn_hostname()\fR uses the string \fBname\fR to set the hostname. The hostname can be an \s-1IP\s0 address. The hostname can also include the port in the form hostname:port . It is also acceptable to use the form \*(L"hostname/any/other/path\*(R" or \*(L"hostname:port/any/other/path\*(R". .PP \&\fIBIO_set_conn_port()\fR sets the port to \fBport\fR. \fBport\fR can be the numerical form or a string such as \*(L"http\*(R". A string will be looked up first using \fIgetservbyname()\fR on the host platform but if that fails a standard table of port names will be used. Currently the list is http, telnet, socks, https, ssl, ftp, gopher and wais. .PP \&\fIBIO_set_conn_ip()\fR sets the \s-1IP\s0 address to \fBip\fR using binary form, that is four bytes specifying the \s-1IP\s0 address in big-endian form. .PP \&\fIBIO_set_conn_int_port()\fR sets the port using \fBport\fR. \fBport\fR should be of type (int *). .PP \&\fIBIO_get_conn_hostname()\fR returns the hostname of the connect \s-1BIO\s0 or \&\s-1NULL\s0 if the \s-1BIO\s0 is initialized but no hostname is set. This return value is an internal pointer which should not be modified. .PP \&\fIBIO_get_conn_port()\fR returns the port as a string. .PP \&\fIBIO_get_conn_ip()\fR returns the \s-1IP\s0 address in binary form. .PP \&\fIBIO_get_conn_int_port()\fR returns the port as an int. .PP \&\fIBIO_set_nbio()\fR sets the non blocking I/O flag to \fBn\fR. If \fBn\fR is zero then blocking I/O is set. If \fBn\fR is 1 then non blocking I/O is set. Blocking I/O is the default. The call to \fIBIO_set_nbio()\fR should be made before the connection is established because non blocking I/O is set during the connect process. .PP \&\fIBIO_new_connect()\fR combines \fIBIO_new()\fR and \fIBIO_set_conn_hostname()\fR into a single call: that is it creates a new connect \s-1BIO\s0 with \fBname\fR. .PP \&\fIBIO_do_connect()\fR attempts to connect the supplied \s-1BIO.\s0 It returns 1 if the connection was established successfully. A zero or negative value is returned if the connection could not be established, the call \fIBIO_should_retry()\fR should be used for non blocking connect BIOs to determine if the call should be retried. .SH "NOTES" .IX Header "NOTES" If blocking I/O is set then a non positive return value from any I/O call is caused by an error condition, although a zero return will normally mean that the connection was closed. .PP If the port name is supplied as part of the host name then this will override any value set with \fIBIO_set_conn_port()\fR. This may be undesirable if the application does not wish to allow connection to arbitrary ports. This can be avoided by checking for the presence of the ':' character in the passed hostname and either indicating an error or truncating the string at that point. .PP The values returned by \fIBIO_get_conn_hostname()\fR, \fIBIO_get_conn_port()\fR, \&\fIBIO_get_conn_ip()\fR and \fIBIO_get_conn_int_port()\fR are updated when a connection attempt is made. Before any connection attempt the values returned are those set by the application itself. .PP Applications do not have to call \fIBIO_do_connect()\fR but may wish to do so to separate the connection process from other I/O processing. .PP If non blocking I/O is set then retries will be requested as appropriate. .PP It addition to \fIBIO_should_read()\fR and \fIBIO_should_write()\fR it is also possible for \fIBIO_should_io_special()\fR to be true during the initial connection process with the reason \s-1BIO_RR_CONNECT.\s0 If this is returned then this is an indication that a connection attempt would block, the application should then take appropriate action to wait until the underlying socket has connected and retry the call. .PP \&\fIBIO_set_conn_hostname()\fR, \fIBIO_set_conn_port()\fR, \fIBIO_set_conn_ip()\fR, \&\fIBIO_set_conn_int_port()\fR, \fIBIO_get_conn_hostname()\fR, \fIBIO_get_conn_port()\fR, \&\fIBIO_get_conn_ip()\fR, \fIBIO_get_conn_int_port()\fR, \fIBIO_set_nbio()\fR and \&\fIBIO_do_connect()\fR are macros. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBIO_s_connect()\fR returns the connect \s-1BIO\s0 method. .PP \&\fIBIO_get_fd()\fR returns the socket or \-1 if the \s-1BIO\s0 has not been initialized. .PP \&\fIBIO_set_conn_hostname()\fR, \fIBIO_set_conn_port()\fR, \fIBIO_set_conn_ip()\fR and \&\fIBIO_set_conn_int_port()\fR always return 1. .PP \&\fIBIO_get_conn_hostname()\fR returns the connected hostname or \s-1NULL\s0 is none was set. .PP \&\fIBIO_get_conn_port()\fR returns a string representing the connected port or \s-1NULL\s0 if not set. .PP \&\fIBIO_get_conn_ip()\fR returns a pointer to the connected \s-1IP\s0 address in binary form or all zeros if not set. .PP \&\fIBIO_get_conn_int_port()\fR returns the connected port or 0 if none was set. .PP \&\fIBIO_set_nbio()\fR always returns 1. .PP \&\fIBIO_do_connect()\fR returns 1 if the connection was successfully established and 0 or \-1 if the connection failed. .SH "EXAMPLE" .IX Header "EXAMPLE" This is example connects to a webserver on the local host and attempts to retrieve a page and copy the result to standard output. .PP .Vb 10 \& BIO *cbio, *out; \& int len; \& char tmpbuf[1024]; \& ERR_load_crypto_strings(); \& cbio = BIO_new_connect("localhost:http"); \& out = BIO_new_fp(stdout, BIO_NOCLOSE); \& if(BIO_do_connect(cbio) <= 0) { \& fprintf(stderr, "Error connecting to server\en"); \& ERR_print_errors_fp(stderr); \& /* whatever ... */ \& } \& BIO_puts(cbio, "GET / HTTP/1.0\en\en"); \& for(;;) { \& len = BIO_read(cbio, tmpbuf, 1024); \& if(len <= 0) break; \& BIO_write(out, tmpbuf, len); \& } \& BIO_free(cbio); \& BIO_free(out); .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\s-1TBA\s0 man3/CMS_add1_recipient_cert.3000064400000014755147210533270012100 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CMS_add1_recipient_cert 3" .TH CMS_add1_recipient_cert 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" .Vb 1 \& CMS_add1_recipient_cert, CMS_add0_recipient_key \- add recipients to a CMS enveloped data structure .Ve .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, X509 *recip, unsigned int flags); \& \& CMS_RecipientInfo *CMS_add0_recipient_key(CMS_ContentInfo *cms, int nid, unsigned char *key, size_t keylen, unsigned char *id, size_t idlen, ASN1_GENERALIZEDTIME *date, ASN1_OBJECT *otherTypeId, ASN1_TYPE *otherType); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fICMS_add1_recipient_cert()\fR adds recipient \fBrecip\fR to CMS_ContentInfo enveloped data structure \fBcms\fR as a KeyTransRecipientInfo structure. .PP \&\fICMS_add0_recipient_key()\fR adds symmetric key \fBkey\fR of length \fBkeylen\fR using wrapping algorithm \fBnid\fR, identifier \fBid\fR of length \fBidlen\fR and optional values \fBdate\fR, \fBotherTypeId\fR and \fBotherType\fR to CMS_ContentInfo enveloped data structure \fBcms\fR as a KEKRecipientInfo structure. .PP The CMS_ContentInfo structure should be obtained from an initial call to \&\fICMS_encrypt()\fR with the flag \fB\s-1CMS_PARTIAL\s0\fR set. .SH "NOTES" .IX Header "NOTES" The main purpose of this function is to provide finer control over a \s-1CMS\s0 enveloped data structure where the simpler \fICMS_encrypt()\fR function defaults are not appropriate. For example if one or more KEKRecipientInfo structures need to be added. New attributes can also be added using the returned CMS_RecipientInfo structure and the \s-1CMS\s0 attribute utility functions. .PP OpenSSL will by default identify recipient certificates using issuer name and serial number. If \fB\s-1CMS_USE_KEYID\s0\fR is set it will use the subject key identifier value instead. An error occurs if all recipient certificates do not have a subject key identifier extension. .PP Currently only \s-1AES\s0 based key wrapping algorithms are supported for \fBnid\fR, specifically: NID_id_aes128_wrap, NID_id_aes192_wrap and NID_id_aes256_wrap. If \fBnid\fR is set to \fBNID_undef\fR then an \s-1AES\s0 wrap algorithm will be used consistent with \fBkeylen\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fICMS_add1_recipient_cert()\fR and \fICMS_add0_recipient_key()\fR return an internal pointer to the CMS_RecipientInfo structure just added or \s-1NULL\s0 if an error occurs. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fICMS_decrypt\fR\|(3), \&\fICMS_final\fR\|(3), .SH "HISTORY" .IX Header "HISTORY" \&\fICMS_add1_recipient_cert()\fR and \fICMS_add0_recipient_key()\fR were added to OpenSSL 0.9.8 man3/BIO_s_fd.3000064400000015702147210533270007103 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BIO_s_fd 3" .TH BIO_s_fd 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BIO_s_fd, BIO_set_fd, BIO_get_fd, BIO_new_fd \- file descriptor BIO .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& BIO_METHOD * BIO_s_fd(void); \& \& #define BIO_set_fd(b,fd,c) BIO_int_ctrl(b,BIO_C_SET_FD,c,fd) \& #define BIO_get_fd(b,c) BIO_ctrl(b,BIO_C_GET_FD,0,(char *)c) \& \& BIO *BIO_new_fd(int fd, int close_flag); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBIO_s_fd()\fR returns the file descriptor \s-1BIO\s0 method. This is a wrapper round the platforms file descriptor routines such as \fIread()\fR and \fIwrite()\fR. .PP \&\fIBIO_read()\fR and \fIBIO_write()\fR read or write the underlying descriptor. \&\fIBIO_puts()\fR is supported but \fIBIO_gets()\fR is not. .PP If the close flag is set then then \fIclose()\fR is called on the underlying file descriptor when the \s-1BIO\s0 is freed. .PP \&\fIBIO_reset()\fR attempts to change the file pointer to the start of file using lseek(fd, 0, 0). .PP \&\fIBIO_seek()\fR sets the file pointer to position \fBofs\fR from start of file using lseek(fd, ofs, 0). .PP \&\fIBIO_tell()\fR returns the current file position by calling lseek(fd, 0, 1). .PP \&\fIBIO_set_fd()\fR sets the file descriptor of \s-1BIO \s0\fBb\fR to \fBfd\fR and the close flag to \fBc\fR. .PP \&\fIBIO_get_fd()\fR places the file descriptor in \fBc\fR if it is not \s-1NULL,\s0 it also returns the file descriptor. If \fBc\fR is not \s-1NULL\s0 it should be of type (int *). .PP \&\fIBIO_new_fd()\fR returns a file descriptor \s-1BIO\s0 using \fBfd\fR and \fBclose_flag\fR. .SH "NOTES" .IX Header "NOTES" The behaviour of \fIBIO_read()\fR and \fIBIO_write()\fR depends on the behavior of the platforms \fIread()\fR and \fIwrite()\fR calls on the descriptor. If the underlying file descriptor is in a non blocking mode then the \s-1BIO\s0 will behave in the manner described in the \fIBIO_read\fR\|(3) and \fIBIO_should_retry\fR\|(3) manual pages. .PP File descriptor BIOs should not be used for socket I/O. Use socket BIOs instead. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBIO_s_fd()\fR returns the file descriptor \s-1BIO\s0 method. .PP \&\fIBIO_reset()\fR returns zero for success and \-1 if an error occurred. \&\fIBIO_seek()\fR and \fIBIO_tell()\fR return the current file position or \-1 if an error occurred. These values reflect the underlying \fIlseek()\fR behaviour. .PP \&\fIBIO_set_fd()\fR always returns 1. .PP \&\fIBIO_get_fd()\fR returns the file descriptor or \-1 if the \s-1BIO\s0 has not been initialized. .PP \&\fIBIO_new_fd()\fR returns the newly allocated \s-1BIO\s0 or \s-1NULL\s0 is an error occurred. .SH "EXAMPLE" .IX Header "EXAMPLE" This is a file descriptor \s-1BIO\s0 version of \*(L"Hello World\*(R": .PP .Vb 4 \& BIO *out; \& out = BIO_new_fd(fileno(stdout), BIO_NOCLOSE); \& BIO_printf(out, "Hello World\en"); \& BIO_free(out); .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIBIO_seek\fR\|(3), \fIBIO_tell\fR\|(3), \&\fIBIO_reset\fR\|(3), \fIBIO_read\fR\|(3), \&\fIBIO_write\fR\|(3), \fIBIO_puts\fR\|(3), \&\fIBIO_gets\fR\|(3), \fIBIO_printf\fR\|(3), \&\fIBIO_set_close\fR\|(3), \fIBIO_get_close\fR\|(3) man3/SSL_CTX_add1_chain_cert.3000064400000026043147210533270011726 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_add1_chain_cert 3" .TH SSL_CTX_add1_chain_cert 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set0_chain, SSL_CTX_set1_chain, SSL_CTX_add0_chain_cert, SSL_CTX_add1_chain_cert, SSL_CTX_get0_chain_certs, SSL_CTX_clear_chain_certs, SSL_set0_chain, SSL_set1_chain, SSL_add0_chain_cert, SSL_add1_chain_cert, SSL_get0_chain_certs, SSL_clear_chain_certs, SSL_CTX_build_cert_chain, SSL_build_cert_chain, SSL_CTX_select_current_cert, SSL_select_current_cert, SSL_CTX_set_current_cert, SSL_set_current_cert \- extra chain certificate processing .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_CTX_set0_chain(SSL_CTX *ctx, STACK_OF(X509) *sk); \& int SSL_CTX_set1_chain(SSL_CTX *ctx, STACK_OF(X509) *sk); \& int SSL_CTX_add0_chain_cert(SSL_CTX *ctx, X509 *x509); \& int SSL_CTX_add1_chain_cert(SSL_CTX *ctx, X509 *x509); \& int SSL_CTX_get0_chain_certs(SSL_CTX *ctx, STACK_OF(X509) **sk); \& int SSL_CTX_clear_chain_certs(SSL_CTX *ctx); \& \& int SSL_set0_chain(SSL *ssl, STACK_OF(X509) *sk); \& int SSL_set1_chain(SSL *ssl, STACK_OF(X509) *sk); \& int SSL_add0_chain_cert(SSL *ssl, X509 *x509); \& int SSL_add1_chain_cert(SSL *ssl, X509 *x509); \& int SSL_get0_chain_certs(SSL *ssl, STACK_OF(X509) **sk); \& int SSL_clear_chain_certs(SSL *ssl); \& \& int SSL_CTX_build_cert_chain(SSL_CTX *ctx, flags); \& int SSL_build_cert_chain(SSL *ssl, flags); \& \& int SSL_CTX_select_current_cert(SSL_CTX *ctx, X509 *x509); \& int SSL_select_current_cert(SSL *ssl, X509 *x509); \& int SSL_CTX_set_current_cert(SSL_CTX *ctx, long op); \& int SSL_set_current_cert(SSL *ssl, long op); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set0_chain()\fR and \fISSL_CTX_set1_chain()\fR set the certificate chain associated with the current certificate of \fBctx\fR to \fBsk\fR. .PP \&\fISSL_CTX_add0_chain_cert()\fR and \fISSL_CTX_add1_chain_cert()\fR append the single certificate \fBx509\fR to the chain associated with the current certificate of \&\fBctx\fR. .PP \&\fISSL_CTX_get0_chain_certs()\fR retrieves the chain associated with the current certificate of \fBctx\fR. .PP \&\fISSL_CTX_clear_chain_certs()\fR clears any existing chain associated with the current certificate of \fBctx\fR. (This is implemented by calling \&\fISSL_CTX_set0_chain()\fR with \fBsk\fR set to \fB\s-1NULL\s0\fR). .PP \&\fISSL_CTX_build_cert_chain()\fR builds the certificate chain for \fBctx\fR normally this uses the chain store or the verify store if the chain store is not set. If the function is successful the built chain will replace any existing chain. The \fBflags\fR parameter can be set to \fB\s-1SSL_BUILD_CHAIN_FLAG_UNTRUSTED\s0\fR to use existing chain certificates as untrusted CAs, \fB\s-1SSL_BUILD_CHAIN_FLAG_NO_ROOT\s0\fR to omit the root \s-1CA\s0 from the built chain, \fB\s-1SSL_BUILD_CHAIN_FLAG_CHECK\s0\fR to use all existing chain certificates only to build the chain (effectively sanity checking and rearranging them if necessary), the flag \&\fB\s-1SSL_BUILD_CHAIN_FLAG_IGNORE_ERROR\s0\fR ignores any errors during verification: if flag \fB\s-1SSL_BUILD_CHAIN_FLAG_CLEAR_ERROR\s0\fR is also set verification errors are cleared from the error queue. .PP Each of these functions operates on the \fIcurrent\fR end entity (i.e. server or client) certificate. This is the last certificate loaded or selected on the corresponding \fBctx\fR structure. .PP \&\fISSL_CTX_select_current_cert()\fR selects \fBx509\fR as the current end entity certificate, but only if \fBx509\fR has already been loaded into \fBctx\fR using a function such as \fISSL_CTX_use_certificate()\fR. .PP \&\fISSL_set0_chain()\fR, \fISSL_set1_chain()\fR, \fISSL_add0_chain_cert()\fR, \&\fISSL_add1_chain_cert()\fR, \fISSL_get0_chain_certs()\fR, \fISSL_clear_chain_certs()\fR, \&\fISSL_build_cert_chain()\fR, \fISSL_select_current_cert()\fR and \fISSL_set_current_cert()\fR are similar except they apply to \s-1SSL\s0 structure \fBssl\fR. .PP \&\fISSL_CTX_set_current_cert()\fR changes the current certificate to a value based on the \fBop\fR argument. Currently \fBop\fR can be \fB\s-1SSL_CERT_SET_FIRST\s0\fR to use the first valid certificate or \fB\s-1SSL_CERT_SET_NEXT\s0\fR to set the next valid certificate after the current certificate. These two operations can be used to iterate over all certificates in an \fB\s-1SSL_CTX\s0\fR structure. .PP \&\fISSL_set_current_cert()\fR also supports the option \fB\s-1SSL_CERT_SET_SERVER\s0\fR. If \fBssl\fR is a server and has sent a certificate to a connected client this option sets that certificate to the current certificate and returns 1. If the negotiated ciphersuite is anonymous (and thus no certificate will be sent) 2 is returned and the current certificate is unchanged. If \fBssl\fR is not a server or a certificate has not been sent 0 is returned and the current certificate is unchanged. .PP All these functions are implemented as macros. Those containing a \fB1\fR increment the reference count of the supplied certificate or chain so it must be freed at some point after the operation. Those containing a \fB0\fR do not increment reference counts and the supplied certificate or chain \&\fB\s-1MUST NOT\s0\fR be freed after the operation. .SH "NOTES" .IX Header "NOTES" The chains associate with an \s-1SSL_CTX\s0 structure are copied to any \s-1SSL\s0 structures when \fISSL_new()\fR is called. \s-1SSL\s0 structures will not be affected by any chains subsequently changed in the parent \s-1SSL_CTX.\s0 .PP One chain can be set for each key type supported by a server. So, for example, an \s-1RSA\s0 and a \s-1DSA\s0 certificate can (and often will) have different chains. .PP The functions \fISSL_CTX_build_cert_chain()\fR and \fISSL_build_cert_chain()\fR can be used to check application configuration and to ensure any necessary subordinate CAs are sent in the correct order. Misconfigured applications sending incorrect certificate chains often cause problems with peers. .PP For example an application can add any set of certificates using \&\fISSL_CTX_use_certificate_chain_file()\fR then call \fISSL_CTX_build_cert_chain()\fR with the option \fB\s-1SSL_BUILD_CHAIN_FLAG_CHECK\s0\fR to check and reorder them. .PP Applications can issue non fatal warnings when checking chains by setting the flag \fB\s-1SSL_BUILD_CHAIN_FLAG_IGNORE_ERRORS\s0\fR and checking the return value. .PP Calling \fISSL_CTX_build_cert_chain()\fR or \fISSL_build_cert_chain()\fR is more efficient than the automatic chain building as it is only performed once. Automatic chain building is performed on each new session. .PP If any certificates are added using these functions no certificates added using \fISSL_CTX_add_extra_chain_cert()\fR will be used. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_set_current_cert()\fR with \fB\s-1SSL_CERT_SET_SERVER\s0\fR return 1 for success, 2 if no server certificate is used because the ciphersuites is anonymous and 0 for failure. .PP \&\fISSL_CTX_build_cert_chain()\fR and \fISSL_build_cert_chain()\fR return 1 for success and 0 for failure. If the flag \fB\s-1SSL_BUILD_CHAIN_FLAG_IGNORE_ERROR\s0\fR and a verification error occurs then 2 is returned. .PP All other functions return 1 for success and 0 for failure. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_CTX_add_extra_chain_cert\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" These functions were first added to OpenSSL 1.0.2. man3/BIO_s_file.3000064400000022075147210533270007432 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BIO_s_file 3" .TH BIO_s_file 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BIO_s_file, BIO_new_file, BIO_new_fp, BIO_set_fp, BIO_get_fp, BIO_read_filename, BIO_write_filename, BIO_append_filename, BIO_rw_filename \- FILE bio .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& BIO_METHOD * BIO_s_file(void); \& BIO *BIO_new_file(const char *filename, const char *mode); \& BIO *BIO_new_fp(FILE *stream, int flags); \& \& BIO_set_fp(BIO *b,FILE *fp, int flags); \& BIO_get_fp(BIO *b,FILE **fpp); \& \& int BIO_read_filename(BIO *b, char *name) \& int BIO_write_filename(BIO *b, char *name) \& int BIO_append_filename(BIO *b, char *name) \& int BIO_rw_filename(BIO *b, char *name) .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBIO_s_file()\fR returns the \s-1BIO\s0 file method. As its name implies it is a wrapper round the stdio \s-1FILE\s0 structure and it is a source/sink \s-1BIO.\s0 .PP Calls to \fIBIO_read()\fR and \fIBIO_write()\fR read and write data to the underlying stream. \fIBIO_gets()\fR and \fIBIO_puts()\fR are supported on file BIOs. .PP \&\fIBIO_flush()\fR on a file \s-1BIO\s0 calls the \fIfflush()\fR function on the wrapped stream. .PP \&\fIBIO_reset()\fR attempts to change the file pointer to the start of file using fseek(stream, 0, 0). .PP \&\fIBIO_seek()\fR sets the file pointer to position \fBofs\fR from start of file using fseek(stream, ofs, 0). .PP \&\fIBIO_eof()\fR calls \fIfeof()\fR. .PP Setting the \s-1BIO_CLOSE\s0 flag calls \fIfclose()\fR on the stream when the \s-1BIO\s0 is freed. .PP \&\fIBIO_new_file()\fR creates a new file \s-1BIO\s0 with mode \fBmode\fR the meaning of \fBmode\fR is the same as the stdio function \fIfopen()\fR. The \s-1BIO_CLOSE\s0 flag is set on the returned \s-1BIO.\s0 .PP \&\fIBIO_new_fp()\fR creates a file \s-1BIO\s0 wrapping \fBstream\fR. Flags can be: \&\s-1BIO_CLOSE, BIO_NOCLOSE \s0(the close flag) \s-1BIO_FP_TEXT \s0(sets the underlying stream to text mode, default is binary: this only has any effect under Win32). .PP \&\fIBIO_set_fp()\fR set the fp of a file \s-1BIO\s0 to \fBfp\fR. \fBflags\fR has the same meaning as in \fIBIO_new_fp()\fR, it is a macro. .PP \&\fIBIO_get_fp()\fR retrieves the fp of a file \s-1BIO,\s0 it is a macro. .PP \&\fIBIO_seek()\fR is a macro that sets the position pointer to \fBoffset\fR bytes from the start of file. .PP \&\fIBIO_tell()\fR returns the value of the position pointer. .PP \&\fIBIO_read_filename()\fR, \fIBIO_write_filename()\fR, \fIBIO_append_filename()\fR and \&\fIBIO_rw_filename()\fR set the file \s-1BIO \s0\fBb\fR to use file \fBname\fR for reading, writing, append or read write respectively. .SH "NOTES" .IX Header "NOTES" When wrapping stdout, stdin or stderr the underlying stream should not normally be closed so the \s-1BIO_NOCLOSE\s0 flag should be set. .PP Because the file \s-1BIO\s0 calls the underlying stdio functions any quirks in stdio behaviour will be mirrored by the corresponding \s-1BIO.\s0 .PP On Windows BIO_new_files reserves for the filename argument to be \&\s-1UTF\-8\s0 encoded. In other words if you have to make it work in multi\- lingual environment, encode file names in \s-1UTF\-8.\s0 .SH "EXAMPLES" .IX Header "EXAMPLES" File \s-1BIO \s0\*(L"hello world\*(R": .PP .Vb 3 \& BIO *bio_out; \& bio_out = BIO_new_fp(stdout, BIO_NOCLOSE); \& BIO_printf(bio_out, "Hello World\en"); .Ve .PP Alternative technique: .PP .Vb 5 \& BIO *bio_out; \& bio_out = BIO_new(BIO_s_file()); \& if(bio_out == NULL) /* Error ... */ \& if(!BIO_set_fp(bio_out, stdout, BIO_NOCLOSE)) /* Error ... */ \& BIO_printf(bio_out, "Hello World\en"); .Ve .PP Write to a file: .PP .Vb 5 \& BIO *out; \& out = BIO_new_file("filename.txt", "w"); \& if(!out) /* Error occurred */ \& BIO_printf(out, "Hello World\en"); \& BIO_free(out); .Ve .PP Alternative technique: .PP .Vb 6 \& BIO *out; \& out = BIO_new(BIO_s_file()); \& if(out == NULL) /* Error ... */ \& if(!BIO_write_filename(out, "filename.txt")) /* Error ... */ \& BIO_printf(out, "Hello World\en"); \& BIO_free(out); .Ve .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBIO_s_file()\fR returns the file \s-1BIO\s0 method. .PP \&\fIBIO_new_file()\fR and \fIBIO_new_fp()\fR return a file \s-1BIO\s0 or \s-1NULL\s0 if an error occurred. .PP \&\fIBIO_set_fp()\fR and \fIBIO_get_fp()\fR return 1 for success or 0 for failure (although the current implementation never return 0). .PP \&\fIBIO_seek()\fR returns the same value as the underlying \fIfseek()\fR function: 0 for success or \-1 for failure. .PP \&\fIBIO_tell()\fR returns the current file position. .PP \&\fIBIO_read_filename()\fR, \fIBIO_write_filename()\fR, \fIBIO_append_filename()\fR and \&\fIBIO_rw_filename()\fR return 1 for success or 0 for failure. .SH "BUGS" .IX Header "BUGS" \&\fIBIO_reset()\fR and \fIBIO_seek()\fR are implemented using \fIfseek()\fR on the underlying stream. The return value for \fIfseek()\fR is 0 for success or \-1 if an error occurred this differs from other types of \s-1BIO\s0 which will typically return 1 for success and a non positive value if an error occurred. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIBIO_seek\fR\|(3), \fIBIO_tell\fR\|(3), \&\fIBIO_reset\fR\|(3), \fIBIO_flush\fR\|(3), \&\fIBIO_read\fR\|(3), \&\fIBIO_write\fR\|(3), \fIBIO_puts\fR\|(3), \&\fIBIO_gets\fR\|(3), \fIBIO_printf\fR\|(3), \&\fIBIO_set_close\fR\|(3), \fIBIO_get_close\fR\|(3) man3/SSL_CTX_sess_number.3000064400000015636147210533270011271 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_sess_number 3" .TH SSL_CTX_sess_number 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_sess_number, SSL_CTX_sess_connect, SSL_CTX_sess_connect_good, SSL_CTX_sess_connect_renegotiate, SSL_CTX_sess_accept, SSL_CTX_sess_accept_good, SSL_CTX_sess_accept_renegotiate, SSL_CTX_sess_hits, SSL_CTX_sess_cb_hits, SSL_CTX_sess_misses, SSL_CTX_sess_timeouts, SSL_CTX_sess_cache_full \- obtain session cache statistics .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& long SSL_CTX_sess_number(SSL_CTX *ctx); \& long SSL_CTX_sess_connect(SSL_CTX *ctx); \& long SSL_CTX_sess_connect_good(SSL_CTX *ctx); \& long SSL_CTX_sess_connect_renegotiate(SSL_CTX *ctx); \& long SSL_CTX_sess_accept(SSL_CTX *ctx); \& long SSL_CTX_sess_accept_good(SSL_CTX *ctx); \& long SSL_CTX_sess_accept_renegotiate(SSL_CTX *ctx); \& long SSL_CTX_sess_hits(SSL_CTX *ctx); \& long SSL_CTX_sess_cb_hits(SSL_CTX *ctx); \& long SSL_CTX_sess_misses(SSL_CTX *ctx); \& long SSL_CTX_sess_timeouts(SSL_CTX *ctx); \& long SSL_CTX_sess_cache_full(SSL_CTX *ctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_sess_number()\fR returns the current number of sessions in the internal session cache. .PP \&\fISSL_CTX_sess_connect()\fR returns the number of started \s-1SSL/TLS\s0 handshakes in client mode. .PP \&\fISSL_CTX_sess_connect_good()\fR returns the number of successfully established \&\s-1SSL/TLS\s0 sessions in client mode. .PP \&\fISSL_CTX_sess_connect_renegotiate()\fR returns the number of start renegotiations in client mode. .PP \&\fISSL_CTX_sess_accept()\fR returns the number of started \s-1SSL/TLS\s0 handshakes in server mode. .PP \&\fISSL_CTX_sess_accept_good()\fR returns the number of successfully established \&\s-1SSL/TLS\s0 sessions in server mode. .PP \&\fISSL_CTX_sess_accept_renegotiate()\fR returns the number of start renegotiations in server mode. .PP \&\fISSL_CTX_sess_hits()\fR returns the number of successfully reused sessions. In client mode a session set with \fISSL_set_session\fR\|(3) successfully reused is counted as a hit. In server mode a session successfully retrieved from internal or external cache is counted as a hit. .PP \&\fISSL_CTX_sess_cb_hits()\fR returns the number of successfully retrieved sessions from the external session cache in server mode. .PP \&\fISSL_CTX_sess_misses()\fR returns the number of sessions proposed by clients that were not found in the internal session cache in server mode. .PP \&\fISSL_CTX_sess_timeouts()\fR returns the number of sessions proposed by clients and either found in the internal or external session cache in server mode, but that were invalid due to timeout. These sessions are not included in the \fISSL_CTX_sess_hits()\fR count. .PP \&\fISSL_CTX_sess_cache_full()\fR returns the number of sessions that were removed because the maximum session cache size was exceeded. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The functions return the values indicated in the \s-1DESCRIPTION\s0 section. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_set_session\fR\|(3), \&\fISSL_CTX_set_session_cache_mode\fR\|(3) \&\fISSL_CTX_sess_set_cache_size\fR\|(3) man3/CMS_sign_receipt.3000064400000012624147210533270010654 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CMS_sign_receipt 3" .TH CMS_sign_receipt 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" .Vb 1 \& CMS_sign_receipt \- create a CMS signed receipt .Ve .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, unsigned int flags); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fICMS_sign_receipt()\fR creates and returns a \s-1CMS\s0 signed receipt structure. \fBsi\fR is the \fBCMS_SignerInfo\fR structure containing the signed receipt request. \&\fBsigncert\fR is the certificate to sign with, \fBpkey\fR is the corresponding private key. \fBcerts\fR is an optional additional set of certificates to include in the \s-1CMS\s0 structure (for example any intermediate CAs in the chain). .PP \&\fBflags\fR is an optional set of flags. .SH "NOTES" .IX Header "NOTES" This functions behaves in a similar way to \fICMS_sign()\fR except the flag values \&\fB\s-1CMS_DETACHED\s0\fR, \fB\s-1CMS_BINARY\s0\fR, \fB\s-1CMS_NOATTR\s0\fR, \fB\s-1CMS_TEXT\s0\fR and \fB\s-1CMS_STREAM\s0\fR are not supported since they do not make sense in the context of signed receipts. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fICMS_sign_receipt()\fR returns either a valid CMS_ContentInfo structure or \s-1NULL\s0 if an error occurred. The error can be obtained from \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \&\fICMS_verify_receipt\fR\|(3), \&\fICMS_sign\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fICMS_sign_receipt()\fR was added to OpenSSL 0.9.8 man3/RAND_cleanup.3000064400000010614147210533270007727 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RAND_cleanup 3" .TH RAND_cleanup 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" RAND_cleanup \- erase the PRNG state .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void RAND_cleanup(void); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIRAND_cleanup()\fR erases the memory used by the \s-1PRNG.\s0 .SH "RETURN VALUE" .IX Header "RETURN VALUE" \&\fIRAND_cleanup()\fR returns no value. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIrand\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIRAND_cleanup()\fR is available in all versions of SSLeay and OpenSSL. man3/des.3000064400000052457147210533270006262 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "des 3" .TH des 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" DES_random_key, DES_set_key, DES_key_sched, DES_set_key_checked, DES_set_key_unchecked, DES_set_odd_parity, DES_is_weak_key, DES_ecb_encrypt, DES_ecb2_encrypt, DES_ecb3_encrypt, DES_ncbc_encrypt, DES_cfb_encrypt, DES_ofb_encrypt, DES_pcbc_encrypt, DES_cfb64_encrypt, DES_ofb64_encrypt, DES_xcbc_encrypt, DES_ede2_cbc_encrypt, DES_ede2_cfb64_encrypt, DES_ede2_ofb64_encrypt, DES_ede3_cbc_encrypt, DES_ede3_cbcm_encrypt, DES_ede3_cfb64_encrypt, DES_ede3_ofb64_encrypt, DES_cbc_cksum, DES_quad_cksum, DES_string_to_key, DES_string_to_2keys, DES_fcrypt, DES_crypt, DES_enc_read, DES_enc_write \- DES encryption .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void DES_random_key(DES_cblock *ret); \& \& int DES_set_key(const_DES_cblock *key, DES_key_schedule *schedule); \& int DES_key_sched(const_DES_cblock *key, DES_key_schedule *schedule); \& int DES_set_key_checked(const_DES_cblock *key, \& DES_key_schedule *schedule); \& void DES_set_key_unchecked(const_DES_cblock *key, \& DES_key_schedule *schedule); \& \& void DES_set_odd_parity(DES_cblock *key); \& int DES_is_weak_key(const_DES_cblock *key); \& \& void DES_ecb_encrypt(const_DES_cblock *input, DES_cblock *output, \& DES_key_schedule *ks, int enc); \& void DES_ecb2_encrypt(const_DES_cblock *input, DES_cblock *output, \& DES_key_schedule *ks1, DES_key_schedule *ks2, int enc); \& void DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output, \& DES_key_schedule *ks1, DES_key_schedule *ks2, \& DES_key_schedule *ks3, int enc); \& \& void DES_ncbc_encrypt(const unsigned char *input, unsigned char *output, \& long length, DES_key_schedule *schedule, DES_cblock *ivec, \& int enc); \& void DES_cfb_encrypt(const unsigned char *in, unsigned char *out, \& int numbits, long length, DES_key_schedule *schedule, \& DES_cblock *ivec, int enc); \& void DES_ofb_encrypt(const unsigned char *in, unsigned char *out, \& int numbits, long length, DES_key_schedule *schedule, \& DES_cblock *ivec); \& void DES_pcbc_encrypt(const unsigned char *input, unsigned char *output, \& long length, DES_key_schedule *schedule, DES_cblock *ivec, \& int enc); \& void DES_cfb64_encrypt(const unsigned char *in, unsigned char *out, \& long length, DES_key_schedule *schedule, DES_cblock *ivec, \& int *num, int enc); \& void DES_ofb64_encrypt(const unsigned char *in, unsigned char *out, \& long length, DES_key_schedule *schedule, DES_cblock *ivec, \& int *num); \& \& void DES_xcbc_encrypt(const unsigned char *input, unsigned char *output, \& long length, DES_key_schedule *schedule, DES_cblock *ivec, \& const_DES_cblock *inw, const_DES_cblock *outw, int enc); \& \& void DES_ede2_cbc_encrypt(const unsigned char *input, \& unsigned char *output, long length, DES_key_schedule *ks1, \& DES_key_schedule *ks2, DES_cblock *ivec, int enc); \& void DES_ede2_cfb64_encrypt(const unsigned char *in, \& unsigned char *out, long length, DES_key_schedule *ks1, \& DES_key_schedule *ks2, DES_cblock *ivec, int *num, int enc); \& void DES_ede2_ofb64_encrypt(const unsigned char *in, \& unsigned char *out, long length, DES_key_schedule *ks1, \& DES_key_schedule *ks2, DES_cblock *ivec, int *num); \& \& void DES_ede3_cbc_encrypt(const unsigned char *input, \& unsigned char *output, long length, DES_key_schedule *ks1, \& DES_key_schedule *ks2, DES_key_schedule *ks3, DES_cblock *ivec, \& int enc); \& void DES_ede3_cbcm_encrypt(const unsigned char *in, unsigned char *out, \& long length, DES_key_schedule *ks1, DES_key_schedule *ks2, \& DES_key_schedule *ks3, DES_cblock *ivec1, DES_cblock *ivec2, \& int enc); \& void DES_ede3_cfb64_encrypt(const unsigned char *in, unsigned char *out, \& long length, DES_key_schedule *ks1, DES_key_schedule *ks2, \& DES_key_schedule *ks3, DES_cblock *ivec, int *num, int enc); \& void DES_ede3_ofb64_encrypt(const unsigned char *in, unsigned char *out, \& long length, DES_key_schedule *ks1, \& DES_key_schedule *ks2, DES_key_schedule *ks3, \& DES_cblock *ivec, int *num); \& \& DES_LONG DES_cbc_cksum(const unsigned char *input, DES_cblock *output, \& long length, DES_key_schedule *schedule, \& const_DES_cblock *ivec); \& DES_LONG DES_quad_cksum(const unsigned char *input, DES_cblock output[], \& long length, int out_count, DES_cblock *seed); \& void DES_string_to_key(const char *str, DES_cblock *key); \& void DES_string_to_2keys(const char *str, DES_cblock *key1, \& DES_cblock *key2); \& \& char *DES_fcrypt(const char *buf, const char *salt, char *ret); \& char *DES_crypt(const char *buf, const char *salt); \& \& int DES_enc_read(int fd, void *buf, int len, DES_key_schedule *sched, \& DES_cblock *iv); \& int DES_enc_write(int fd, const void *buf, int len, \& DES_key_schedule *sched, DES_cblock *iv); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This library contains a fast implementation of the \s-1DES\s0 encryption algorithm. .PP There are two phases to the use of \s-1DES\s0 encryption. The first is the generation of a \fIDES_key_schedule\fR from a key, the second is the actual encryption. A \s-1DES\s0 key is of type \fIDES_cblock\fR. This type is consists of 8 bytes with odd parity. The least significant bit in each byte is the parity bit. The key schedule is an expanded form of the key; it is used to speed the encryption process. .PP \&\fIDES_random_key()\fR generates a random key. The \s-1PRNG\s0 must be seeded prior to using this function (see \fIrand\fR\|(3)). If the \s-1PRNG\s0 could not generate a secure key, 0 is returned. .PP Before a \s-1DES\s0 key can be used, it must be converted into the architecture dependent \fIDES_key_schedule\fR via the \&\fIDES_set_key_checked()\fR or \fIDES_set_key_unchecked()\fR function. .PP \&\fIDES_set_key_checked()\fR will check that the key passed is of odd parity and is not a weak or semi-weak key. If the parity is wrong, then \-1 is returned. If the key is a weak key, then \-2 is returned. If an error is returned, the key schedule is not generated. .PP \&\fIDES_set_key()\fR works like \&\fIDES_set_key_checked()\fR if the \fIDES_check_key\fR flag is non-zero, otherwise like \fIDES_set_key_unchecked()\fR. These functions are available for compatibility; it is recommended to use a function that does not depend on a global variable. .PP \&\fIDES_set_odd_parity()\fR sets the parity of the passed \fIkey\fR to odd. .PP \&\fIDES_is_weak_key()\fR returns 1 if the passed key is a weak key, 0 if it is ok. .PP The following routines mostly operate on an input and output stream of \&\fIDES_cblock\fRs. .PP \&\fIDES_ecb_encrypt()\fR is the basic \s-1DES\s0 encryption routine that encrypts or decrypts a single 8\-byte \fIDES_cblock\fR in \fIelectronic code book\fR (\s-1ECB\s0) mode. It always transforms the input data, pointed to by \&\fIinput\fR, into the output data, pointed to by the \fIoutput\fR argument. If the \fIencrypt\fR argument is non-zero (\s-1DES_ENCRYPT\s0), the \fIinput\fR (cleartext) is encrypted in to the \fIoutput\fR (ciphertext) using the key_schedule specified by the \fIschedule\fR argument, previously set via \&\fIDES_set_key\fR. If \fIencrypt\fR is zero (\s-1DES_DECRYPT\s0), the \fIinput\fR (now ciphertext) is decrypted into the \fIoutput\fR (now cleartext). Input and output may overlap. \fIDES_ecb_encrypt()\fR does not return a value. .PP \&\fIDES_ecb3_encrypt()\fR encrypts/decrypts the \fIinput\fR block by using three-key Triple-DES encryption in \s-1ECB\s0 mode. This involves encrypting the input with \fIks1\fR, decrypting with the key schedule \fIks2\fR, and then encrypting with \fIks3\fR. This routine greatly reduces the chances of brute force breaking of \s-1DES\s0 and has the advantage of if \fIks1\fR, \&\fIks2\fR and \fIks3\fR are the same, it is equivalent to just encryption using \s-1ECB\s0 mode and \fIks1\fR as the key. .PP The macro \fIDES_ecb2_encrypt()\fR is provided to perform two-key Triple-DES encryption by using \fIks1\fR for the final encryption. .PP \&\fIDES_ncbc_encrypt()\fR encrypts/decrypts using the \fIcipher-block-chaining\fR (\s-1CBC\s0) mode of \s-1DES. \s0 If the \fIencrypt\fR argument is non-zero, the routine cipher-block-chain encrypts the cleartext data pointed to by the \fIinput\fR argument into the ciphertext pointed to by the \fIoutput\fR argument, using the key schedule provided by the \fIschedule\fR argument, and initialization vector provided by the \fIivec\fR argument. If the \&\fIlength\fR argument is not an integral multiple of eight bytes, the last block is copied to a temporary area and zero filled. The output is always an integral multiple of eight bytes. .PP \&\fIDES_xcbc_encrypt()\fR is \s-1RSA\s0's \s-1DESX\s0 mode of \s-1DES. \s0 It uses \fIinw\fR and \&\fIoutw\fR to 'whiten' the encryption. \fIinw\fR and \fIoutw\fR are secret (unlike the iv) and are as such, part of the key. So the key is sort of 24 bytes. This is much better than \s-1CBC DES.\s0 .PP \&\fIDES_ede3_cbc_encrypt()\fR implements outer triple \s-1CBC DES\s0 encryption with three keys. This means that each \s-1DES\s0 operation inside the \s-1CBC\s0 mode is an \f(CW\*(C`C=E(ks3,D(ks2,E(ks1,M)))\*(C'\fR. This mode is used by \s-1SSL.\s0 .PP The \fIDES_ede2_cbc_encrypt()\fR macro implements two-key Triple-DES by reusing \fIks1\fR for the final encryption. \f(CW\*(C`C=E(ks1,D(ks2,E(ks1,M)))\*(C'\fR. This form of Triple-DES is used by the \s-1RSAREF\s0 library. .PP \&\fIDES_pcbc_encrypt()\fR encrypt/decrypts using the propagating cipher block chaining mode used by Kerberos v4. Its parameters are the same as \&\fIDES_ncbc_encrypt()\fR. .PP \&\fIDES_cfb_encrypt()\fR encrypt/decrypts using cipher feedback mode. This method takes an array of characters as input and outputs and array of characters. It does not require any padding to 8 character groups. Note: the \fIivec\fR variable is changed and the new changed value needs to be passed to the next call to this function. Since this function runs a complete \s-1DES ECB\s0 encryption per \fInumbits\fR, this function is only suggested for use when sending small numbers of characters. .PP \&\fIDES_cfb64_encrypt()\fR implements \s-1CFB\s0 mode of \s-1DES\s0 with 64bit feedback. Why is this useful you ask? Because this routine will allow you to encrypt an arbitrary number of bytes, no 8 byte padding. Each call to this routine will encrypt the input bytes to output and then update ivec and num. num contains 'how far' we are though ivec. If this does not make much sense, read more about cfb mode of \s-1DES :\-\s0). .PP \&\fIDES_ede3_cfb64_encrypt()\fR and \fIDES_ede2_cfb64_encrypt()\fR is the same as \&\fIDES_cfb64_encrypt()\fR except that Triple-DES is used. .PP \&\fIDES_ofb_encrypt()\fR encrypts using output feedback mode. This method takes an array of characters as input and outputs and array of characters. It does not require any padding to 8 character groups. Note: the \fIivec\fR variable is changed and the new changed value needs to be passed to the next call to this function. Since this function runs a complete \s-1DES ECB\s0 encryption per numbits, this function is only suggested for use when sending small numbers of characters. .PP \&\fIDES_ofb64_encrypt()\fR is the same as \fIDES_cfb64_encrypt()\fR using Output Feed Back mode. .PP \&\fIDES_ede3_ofb64_encrypt()\fR and \fIDES_ede2_ofb64_encrypt()\fR is the same as \&\fIDES_ofb64_encrypt()\fR, using Triple-DES. .PP The following functions are included in the \s-1DES\s0 library for compatibility with the \s-1MIT\s0 Kerberos library. .PP \&\fIDES_cbc_cksum()\fR produces an 8 byte checksum based on the input stream (via \s-1CBC\s0 encryption). The last 4 bytes of the checksum are returned and the complete 8 bytes are placed in \fIoutput\fR. This function is used by Kerberos v4. Other applications should use \&\fIEVP_DigestInit\fR\|(3) etc. instead. .PP \&\fIDES_quad_cksum()\fR is a Kerberos v4 function. It returns a 4 byte checksum from the input bytes. The algorithm can be iterated over the input, depending on \fIout_count\fR, 1, 2, 3 or 4 times. If \fIoutput\fR is non-NULL, the 8 bytes generated by each pass are written into \&\fIoutput\fR. .PP The following are DES-based transformations: .PP \&\fIDES_fcrypt()\fR is a fast version of the Unix \fIcrypt\fR\|(3) function. This version takes only a small amount of space relative to other fast \&\fIcrypt()\fR implementations. This is different to the normal crypt in that the third parameter is the buffer that the return value is written into. It needs to be at least 14 bytes long. This function is thread safe, unlike the normal crypt. .PP \&\fIDES_crypt()\fR is a faster replacement for the normal system \fIcrypt()\fR. This function calls \fIDES_fcrypt()\fR with a static array passed as the third parameter. This emulates the normal non-thread safe semantics of \fIcrypt\fR\|(3). .PP \&\fIDES_enc_write()\fR writes \fIlen\fR bytes to file descriptor \fIfd\fR from buffer \fIbuf\fR. The data is encrypted via \fIpcbc_encrypt\fR (default) using \fIsched\fR for the key and \fIiv\fR as a starting vector. The actual data send down \fIfd\fR consists of 4 bytes (in network byte order) containing the length of the following encrypted data. The encrypted data then follows, padded with random data out to a multiple of 8 bytes. .PP \&\fIDES_enc_read()\fR is used to read \fIlen\fR bytes from file descriptor \&\fIfd\fR into buffer \fIbuf\fR. The data being read from \fIfd\fR is assumed to have come from \fIDES_enc_write()\fR and is decrypted using \fIsched\fR for the key schedule and \fIiv\fR for the initial vector. .PP \&\fBWarning:\fR The data format used by \fIDES_enc_write()\fR and \fIDES_enc_read()\fR has a cryptographic weakness: When asked to write more than \s-1MAXWRITE\s0 bytes, \fIDES_enc_write()\fR will split the data into several chunks that are all encrypted using the same \s-1IV. \s0 So don't use these functions unless you are sure you know what you do (in which case you might not want to use them anyway). They cannot handle non-blocking sockets. \&\fIDES_enc_read()\fR uses an internal state and thus cannot be used on multiple files. .PP \&\fIDES_rw_mode\fR is used to specify the encryption mode to use with \&\fIDES_enc_read()\fR and \fIDES_end_write()\fR. If set to \fI\s-1DES_PCBC_MODE\s0\fR (the default), DES_pcbc_encrypt is used. If set to \fI\s-1DES_CBC_MODE\s0\fR DES_cbc_encrypt is used. .SH "NOTES" .IX Header "NOTES" Single-key \s-1DES\s0 is insecure due to its short key size. \s-1ECB\s0 mode is not suitable for most applications; see \fIdes_modes\fR\|(7). .PP The \fIevp\fR\|(3) library provides higher-level encryption functions. .SH "BUGS" .IX Header "BUGS" \&\fIDES_3cbc_encrypt()\fR is flawed and must not be used in applications. .PP \&\fIDES_cbc_encrypt()\fR does not modify \fBivec\fR; use \fIDES_ncbc_encrypt()\fR instead. .PP \&\fIDES_cfb_encrypt()\fR and \fIDES_ofb_encrypt()\fR operates on input of 8 bits. What this means is that if you set numbits to 12, and length to 2, the first 12 bits will come from the 1st input byte and the low half of the second input byte. The second 12 bits will have the low 8 bits taken from the 3rd input byte and the top 4 bits taken from the 4th input byte. The same holds for output. This function has been implemented this way because most people will be using a multiple of 8 and because once you get into pulling bytes input bytes apart things get ugly! .PP \&\fIDES_string_to_key()\fR is available for backward compatibility with the \&\s-1MIT\s0 library. New applications should use a cryptographic hash function. The same applies for \fIDES_string_to_2key()\fR. .SH "CONFORMING TO" .IX Header "CONFORMING TO" \&\s-1ANSI X3.106\s0 .PP The \fBdes\fR library was written to be source code compatible with the \s-1MIT\s0 Kerberos library. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIcrypt\fR\|(3), \fIdes_modes\fR\|(7), \fIevp\fR\|(3), \fIrand\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" In OpenSSL 0.9.7, all des_ functions were renamed to \s-1DES_\s0 to avoid clashes with older versions of libdes. Compatibility des_ functions are provided for a short while, as well as \fIcrypt()\fR. Declarations for these are in . There is no \s-1DES_\s0 variant for \fIdes_random_seed()\fR. This will happen to other functions as well if they are deemed redundant (\fIdes_random_seed()\fR just calls \&\fIRAND_seed()\fR and is present for backward compatibility only), buggy or already scheduled for removal. .PP \&\fIdes_cbc_cksum()\fR, \fIdes_cbc_encrypt()\fR, \fIdes_ecb_encrypt()\fR, \&\fIdes_is_weak_key()\fR, \fIdes_key_sched()\fR, \fIdes_pcbc_encrypt()\fR, \&\fIdes_quad_cksum()\fR, \fIdes_random_key()\fR and \fIdes_string_to_key()\fR are available in the \s-1MIT\s0 Kerberos library; \&\fIdes_check_key_parity()\fR, \fIdes_fixup_key_parity()\fR and \fIdes_is_weak_key()\fR are available in newer versions of that library. .PP \&\fIdes_set_key_checked()\fR and \fIdes_set_key_unchecked()\fR were added in OpenSSL 0.9.5. .PP \&\fIdes_generate_random_block()\fR, \fIdes_init_random_number_generator()\fR, \&\fIdes_new_random_key()\fR, \fIdes_set_random_generator_seed()\fR and \&\fIdes_set_sequence_number()\fR and \fIdes_rand_data()\fR are used in newer versions of Kerberos but are not implemented here. .PP \&\fIdes_random_key()\fR generated cryptographically weak random data in SSLeay and in OpenSSL prior version 0.9.5, as well as in the original \&\s-1MIT\s0 library. .SH "AUTHOR" .IX Header "AUTHOR" Eric Young (eay@cryptsoft.com). Modified for the OpenSSL project (http://www.openssl.org). man3/md5.3000064400000016545147210533270006172 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "md5 3" .TH md5 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" MD2, MD4, MD5, MD2_Init, MD2_Update, MD2_Final, MD4_Init, MD4_Update, MD4_Final, MD5_Init, MD5_Update, MD5_Final \- MD2, MD4, and MD5 hash functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& unsigned char *MD2(const unsigned char *d, unsigned long n, \& unsigned char *md); \& \& int MD2_Init(MD2_CTX *c); \& int MD2_Update(MD2_CTX *c, const unsigned char *data, \& unsigned long len); \& int MD2_Final(unsigned char *md, MD2_CTX *c); \& \& \& #include \& \& unsigned char *MD4(const unsigned char *d, unsigned long n, \& unsigned char *md); \& \& int MD4_Init(MD4_CTX *c); \& int MD4_Update(MD4_CTX *c, const void *data, \& unsigned long len); \& int MD4_Final(unsigned char *md, MD4_CTX *c); \& \& \& #include \& \& unsigned char *MD5(const unsigned char *d, unsigned long n, \& unsigned char *md); \& \& int MD5_Init(MD5_CTX *c); \& int MD5_Update(MD5_CTX *c, const void *data, \& unsigned long len); \& int MD5_Final(unsigned char *md, MD5_CTX *c); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\s-1MD2, MD4,\s0 and \s-1MD5\s0 are cryptographic hash functions with a 128 bit output. .PP \&\s-1\fIMD2\s0()\fR, \s-1\fIMD4\s0()\fR, and \s-1\fIMD5\s0()\fR compute the \s-1MD2, MD4,\s0 and \s-1MD5\s0 message digest of the \fBn\fR bytes at \fBd\fR and place it in \fBmd\fR (which must have space for \s-1MD2_DIGEST_LENGTH\s0 == \s-1MD4_DIGEST_LENGTH\s0 == \s-1MD5_DIGEST_LENGTH\s0 == 16 bytes of output). If \fBmd\fR is \s-1NULL,\s0 the digest is placed in a static array. .PP The following functions may be used if the message is not completely stored in memory: .PP \&\fIMD2_Init()\fR initializes a \fB\s-1MD2_CTX\s0\fR structure. .PP \&\fIMD2_Update()\fR can be called repeatedly with chunks of the message to be hashed (\fBlen\fR bytes at \fBdata\fR). .PP \&\fIMD2_Final()\fR places the message digest in \fBmd\fR, which must have space for \s-1MD2_DIGEST_LENGTH\s0 == 16 bytes of output, and erases the \fB\s-1MD2_CTX\s0\fR. .PP \&\fIMD4_Init()\fR, \fIMD4_Update()\fR, \fIMD4_Final()\fR, \fIMD5_Init()\fR, \fIMD5_Update()\fR, and \&\fIMD5_Final()\fR are analogous using an \fB\s-1MD4_CTX\s0\fR and \fB\s-1MD5_CTX\s0\fR structure. .PP Applications should use the higher level functions \&\fIEVP_DigestInit\fR\|(3) etc. instead of calling the hash functions directly. .SH "NOTE" .IX Header "NOTE" \&\s-1MD2, MD4,\s0 and \s-1MD5\s0 are recommended only for compatibility with existing applications. In new applications, \s-1SHA\-1\s0 or \s-1RIPEMD\-160\s0 should be preferred. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\s-1\fIMD2\s0()\fR, \s-1\fIMD4\s0()\fR, and \s-1\fIMD5\s0()\fR return pointers to the hash value. .PP \&\fIMD2_Init()\fR, \fIMD2_Update()\fR, \fIMD2_Final()\fR, \fIMD4_Init()\fR, \fIMD4_Update()\fR, \&\fIMD4_Final()\fR, \fIMD5_Init()\fR, \fIMD5_Update()\fR, and \fIMD5_Final()\fR return 1 for success, 0 otherwise. .SH "CONFORMING TO" .IX Header "CONFORMING TO" \&\s-1RFC 1319, RFC 1320, RFC 1321\s0 .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIsha\fR\|(3), \fIripemd\fR\|(3), \fIEVP_DigestInit\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1\fIMD2\s0()\fR, \fIMD2_Init()\fR, \fIMD2_Update()\fR \fIMD2_Final()\fR, \s-1\fIMD5\s0()\fR, \fIMD5_Init()\fR, \&\fIMD5_Update()\fR and \fIMD5_Final()\fR are available in all versions of SSLeay and OpenSSL. .PP \&\s-1\fIMD4\s0()\fR, \fIMD4_Init()\fR, and \fIMD4_Update()\fR are available in OpenSSL 0.9.6 and above. man3/SSL_CTX_set_msg_callback.3000064400000017412147210533270012213 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_msg_callback 3" .TH SSL_CTX_set_msg_callback 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_msg_callback, SSL_CTX_set_msg_callback_arg, SSL_set_msg_callback, SSL_get_msg_callback_arg \- install callback for observing protocol messages .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void SSL_CTX_set_msg_callback(SSL_CTX *ctx, void (*cb)(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg)); \& void SSL_CTX_set_msg_callback_arg(SSL_CTX *ctx, void *arg); \& \& void SSL_set_msg_callback(SSL *ssl, void (*cb)(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg)); \& void SSL_set_msg_callback_arg(SSL *ssl, void *arg); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set_msg_callback()\fR or \fISSL_set_msg_callback()\fR can be used to define a message callback function \fIcb\fR for observing all \s-1SSL/TLS\s0 protocol messages (such as handshake messages) that are received or sent. \fISSL_CTX_set_msg_callback_arg()\fR and \fISSL_set_msg_callback_arg()\fR can be used to set argument \fIarg\fR to the callback function, which is available for arbitrary application use. .PP \&\fISSL_CTX_set_msg_callback()\fR and \fISSL_CTX_set_msg_callback_arg()\fR specify default settings that will be copied to new \fB\s-1SSL\s0\fR objects by \&\fISSL_new\fR\|(3). \fISSL_set_msg_callback()\fR and \&\fISSL_set_msg_callback_arg()\fR modify the actual settings of an \fB\s-1SSL\s0\fR object. Using a \fB0\fR pointer for \fIcb\fR disables the message callback. .PP When \fIcb\fR is called by the \s-1SSL/TLS\s0 library for a protocol message, the function arguments have the following meaning: .IP "\fIwrite_p\fR" 4 .IX Item "write_p" This flag is \fB0\fR when a protocol message has been received and \fB1\fR when a protocol message has been sent. .IP "\fIversion\fR" 4 .IX Item "version" The protocol version according to which the protocol message is interpreted by the library. Currently, this is one of \&\fB\s-1SSL2_VERSION\s0\fR, \fB\s-1SSL3_VERSION\s0\fR and \fB\s-1TLS1_VERSION\s0\fR (for \s-1SSL 2.0, SSL 3.0\s0 and \s-1TLS 1.0,\s0 respectively). .IP "\fIcontent_type\fR" 4 .IX Item "content_type" In the case of \s-1SSL 2.0,\s0 this is always \fB0\fR. In the case of \s-1SSL 3.0\s0 or \s-1TLS 1.0,\s0 this is one of the \fBContentType\fR values defined in the protocol specification (\fBchange_cipher_spec(20)\fR, \fBalert(21)\fR, \&\fBhandshake(22)\fR; but never \fBapplication_data(23)\fR because the callback will only be called for protocol messages). .IP "\fIbuf\fR, \fIlen\fR" 4 .IX Item "buf, len" \&\fIbuf\fR points to a buffer containing the protocol message, which consists of \fIlen\fR bytes. The buffer is no longer valid after the callback function has returned. .IP "\fIssl\fR" 4 .IX Item "ssl" The \fB\s-1SSL\s0\fR object that received or sent the message. .IP "\fIarg\fR" 4 .IX Item "arg" The user-defined argument optionally defined by \&\fISSL_CTX_set_msg_callback_arg()\fR or \fISSL_set_msg_callback_arg()\fR. .SH "NOTES" .IX Header "NOTES" Protocol messages are passed to the callback function after decryption and fragment collection where applicable. (Thus record boundaries are not visible.) .PP If processing a received protocol message results in an error, the callback function may not be called. For example, the callback function will never see messages that are considered too large to be processed. .PP Due to automatic protocol version negotiation, \fIversion\fR is not necessarily the protocol version used by the sender of the message: If a \s-1TLS 1.0\s0 ClientHello message is received by an \s-1SSL 3\s0.0\-only server, \&\fIversion\fR will be \fB\s-1SSL3_VERSION\s0\fR. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_new\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fISSL_CTX_set_msg_callback()\fR, \fISSL_CTX_set_msg_callback_arg()\fR, \&\fISSL_set_msg_callback()\fR and \fISSL_get_msg_callback_arg()\fR were added in OpenSSL 0.9.7. man3/SSL_CTX_set_cert_store.3000064400000014401147210533270011755 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_cert_store 3" .TH SSL_CTX_set_cert_store 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_cert_store, SSL_CTX_get_cert_store \- manipulate X509 certificate verification storage .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void SSL_CTX_set_cert_store(SSL_CTX *ctx, X509_STORE *store); \& X509_STORE *SSL_CTX_get_cert_store(const SSL_CTX *ctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set_cert_store()\fR sets/replaces the certificate verification storage of \fBctx\fR to/with \fBstore\fR. If another X509_STORE object is currently set in \fBctx\fR, it will be \fIX509_STORE_free()\fRed. .PP \&\fISSL_CTX_get_cert_store()\fR returns a pointer to the current certificate verification storage. .SH "NOTES" .IX Header "NOTES" In order to verify the certificates presented by the peer, trusted \s-1CA\s0 certificates must be accessed. These \s-1CA\s0 certificates are made available via lookup methods, handled inside the X509_STORE. From the X509_STORE the X509_STORE_CTX used when verifying certificates is created. .PP Typically the trusted certificate store is handled indirectly via using \&\fISSL_CTX_load_verify_locations\fR\|(3). Using the \fISSL_CTX_set_cert_store()\fR and \fISSL_CTX_get_cert_store()\fR functions it is possible to manipulate the X509_STORE object beyond the \&\fISSL_CTX_load_verify_locations\fR\|(3) call. .PP Currently no detailed documentation on how to use the X509_STORE object is available. Not all members of the X509_STORE are used when the verification takes place. So will e.g. the \fIverify_callback()\fR be overridden with the \fIverify_callback()\fR set via the \&\fISSL_CTX_set_verify\fR\|(3) family of functions. This document must therefore be updated when documentation about the X509_STORE object and its handling becomes available. .SH "RESTRICTIONS" .IX Header "RESTRICTIONS" The X509_STORE structure used by an \s-1SSL_CTX\s0 is used for verifying peer certificates and building certificate chains, it is also shared by every child \s-1SSL\s0 structure. Applications wanting finer control can use functions such as \fISSL_CTX_set1_verify_cert_store()\fR instead. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CTX_set_cert_store()\fR does not return diagnostic output. .PP \&\fISSL_CTX_get_cert_store()\fR returns the current setting. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \&\fISSL_CTX_load_verify_locations\fR\|(3), \&\fISSL_CTX_set_verify\fR\|(3) man3/SSL_CTX_sess_set_cache_size.3000064400000013166147210533270012745 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_sess_set_cache_size 3" .TH SSL_CTX_sess_set_cache_size 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_sess_set_cache_size, SSL_CTX_sess_get_cache_size \- manipulate session cache size .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& long SSL_CTX_sess_set_cache_size(SSL_CTX *ctx, long t); \& long SSL_CTX_sess_get_cache_size(SSL_CTX *ctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_sess_set_cache_size()\fR sets the size of the internal session cache of context \fBctx\fR to \fBt\fR. This value is a hint and not an absolute; see the notes below. .PP \&\fISSL_CTX_sess_get_cache_size()\fR returns the currently valid session cache size. .SH "NOTES" .IX Header "NOTES" The internal session cache size is \s-1SSL_SESSION_CACHE_MAX_SIZE_DEFAULT,\s0 currently 1024*20, so that up to 20000 sessions can be held. This size can be modified using the \fISSL_CTX_sess_set_cache_size()\fR call. A special case is the size 0, which is used for unlimited size. .PP If adding the session makes the cache exceed its size, then unused sessions are dropped from the end of the cache. Cache space may also be reclaimed by calling \&\fISSL_CTX_flush_sessions\fR\|(3) to remove expired sessions. .PP If the size of the session cache is reduced and more sessions are already in the session cache, old session will be removed at the next time a session shall be added. This removal is not synchronized with the expiration of sessions. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CTX_sess_set_cache_size()\fR returns the previously valid size. .PP \&\fISSL_CTX_sess_get_cache_size()\fR returns the currently valid size. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \&\fISSL_CTX_set_session_cache_mode\fR\|(3), \&\fISSL_CTX_sess_number\fR\|(3), \&\fISSL_CTX_flush_sessions\fR\|(3) man3/DH_get_ex_new_index.3000064400000011567147210533270011372 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DH_get_ex_new_index 3" .TH DH_get_ex_new_index 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" DH_get_ex_new_index, DH_set_ex_data, DH_get_ex_data \- add application specific data to DH structures .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int DH_get_ex_new_index(long argl, void *argp, \& CRYPTO_EX_new *new_func, \& CRYPTO_EX_dup *dup_func, \& CRYPTO_EX_free *free_func); \& \& int DH_set_ex_data(DH *d, int idx, void *arg); \& \& char *DH_get_ex_data(DH *d, int idx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions handle application specific data in \s-1DH\s0 structures. Their usage is identical to that of \&\fIRSA_get_ex_new_index()\fR, \fIRSA_set_ex_data()\fR and \fIRSA_get_ex_data()\fR as described in \fIRSA_get_ex_new_index\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIRSA_get_ex_new_index\fR\|(3), \fIdh\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIDH_get_ex_new_index()\fR, \fIDH_set_ex_data()\fR and \fIDH_get_ex_data()\fR are available since OpenSSL 0.9.5. man3/RSA_check_key.3000064400000014703147210533270010131 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RSA_check_key 3" .TH RSA_check_key 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" RSA_check_key \- validate private RSA keys .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int RSA_check_key(RSA *rsa); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This function validates \s-1RSA\s0 keys. It checks that \fBp\fR and \fBq\fR are in fact prime, and that \fBn = p*q\fR. .PP It also checks that \fBd*e = 1 mod (p\-1*q\-1)\fR, and that \fBdmp1\fR, \fBdmq1\fR and \fBiqmp\fR are set correctly or are \fB\s-1NULL\s0\fR. .PP As such, this function can not be used with any arbitrary \s-1RSA\s0 key object, even if it is otherwise fit for regular \s-1RSA\s0 operation. See \fB\s-1NOTES\s0\fR for more information. .SH "RETURN VALUE" .IX Header "RETURN VALUE" \&\fIRSA_check_key()\fR returns 1 if \fBrsa\fR is a valid \s-1RSA\s0 key, and 0 otherwise. \&\-1 is returned if an error occurs while checking the key. .PP If the key is invalid or an error occurred, the reason code can be obtained using \fIERR_get_error\fR\|(3). .SH "NOTES" .IX Header "NOTES" This function does not work on \s-1RSA\s0 public keys that have only the modulus and public exponent elements populated. It performs integrity checks on all the \s-1RSA\s0 key material, so the \s-1RSA\s0 key structure must contain all the private key data too. .PP Unlike most other \s-1RSA\s0 functions, this function does \fBnot\fR work transparently with any underlying \s-1ENGINE\s0 implementation because it uses the key data in the \s-1RSA\s0 structure directly. An \s-1ENGINE\s0 implementation can override the way key data is stored and handled, and can even provide support for \s-1HSM\s0 keys \- in which case the \s-1RSA\s0 structure may contain \fBno\fR key data at all! If the \s-1ENGINE\s0 in question is only being used for acceleration or analysis purposes, then in all likelihood the \s-1RSA\s0 key data is complete and untouched, but this can't be assumed in the general case. .SH "BUGS" .IX Header "BUGS" A method of verifying the \s-1RSA\s0 key using opaque \s-1RSA API\s0 functions might need to be considered. Right now \fIRSA_check_key()\fR simply uses the \s-1RSA\s0 structure elements directly, bypassing the \s-1RSA_METHOD\s0 table altogether (and completely violating encapsulation and object-orientation in the process). The best fix will probably be to introduce a \*(L"\fIcheck_key()\fR\*(R" handler to the \&\s-1RSA_METHOD\s0 function table so that alternative implementations can also provide their own verifiers. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIrsa\fR\|(3), \fIERR_get_error\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIRSA_check_key()\fR appeared in OpenSSL 0.9.4. man3/X509_VERIFY_PARAM_set_flags.3000064400000042335147210533270012201 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "X509_VERIFY_PARAM_set_flags 3" .TH X509_VERIFY_PARAM_set_flags 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" X509_VERIFY_PARAM_set_flags, X509_VERIFY_PARAM_clear_flags, X509_VERIFY_PARAM_get_flags, X509_VERIFY_PARAM_set_purpose, X509_VERIFY_PARAM_set_trust, X509_VERIFY_PARAM_set_depth, X509_VERIFY_PARAM_get_depth, X509_VERIFY_PARAM_set_time, X509_VERIFY_PARAM_add0_policy, X509_VERIFY_PARAM_set1_policies, X509_VERIFY_PARAM_set1_host, X509_VERIFY_PARAM_add1_host, X509_VERIFY_PARAM_set_hostflags, X509_VERIFY_PARAM_get0_peername, X509_VERIFY_PARAM_set1_email, X509_VERIFY_PARAM_set1_ip, X509_VERIFY_PARAM_set1_ip_asc \- X509 verification parameters .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, unsigned long flags); \& int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, \& unsigned long flags); \& unsigned long X509_VERIFY_PARAM_get_flags(X509_VERIFY_PARAM *param); \& \& int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); \& int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); \& \& void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t); \& \& int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param, \& ASN1_OBJECT *policy); \& int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param, \& STACK_OF(ASN1_OBJECT) *policies); \& \& void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); \& int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param); \& \& int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param, \& const char *name, size_t namelen); \& int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param, \& const char *name, size_t namelen); \& void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param, \& unsigned int flags); \& char *X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *param); \& int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param, \& const char *email, size_t emaillen); \& int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param, \& const unsigned char *ip, size_t iplen); \& int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, const char *ipasc); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions manipulate the \fBX509_VERIFY_PARAM\fR structure associated with a certificate verification operation. .PP The \fIX509_VERIFY_PARAM_set_flags()\fR function sets the flags in \fBparam\fR by oring it with \fBflags\fR. See the \fB\s-1VERIFICATION FLAGS\s0\fR section for a complete description of values the \fBflags\fR parameter can take. .PP \&\fIX509_VERIFY_PARAM_get_flags()\fR returns the flags in \fBparam\fR. .PP \&\fIX509_VERIFY_PARAM_clear_flags()\fR clears the flags \fBflags\fR in \fBparam\fR. .PP \&\fIX509_VERIFY_PARAM_set_purpose()\fR sets the verification purpose in \fBparam\fR to \fBpurpose\fR. This determines the acceptable purpose of the certificate chain, for example \s-1SSL\s0 client or \s-1SSL\s0 server. .PP \&\fIX509_VERIFY_PARAM_set_trust()\fR sets the trust setting in \fBparam\fR to \&\fBtrust\fR. .PP \&\fIX509_VERIFY_PARAM_set_time()\fR sets the verification time in \fBparam\fR to \&\fBt\fR. Normally the current time is used. .PP \&\fIX509_VERIFY_PARAM_add0_policy()\fR enables policy checking (it is disabled by default) and adds \fBpolicy\fR to the acceptable policy set. .PP \&\fIX509_VERIFY_PARAM_set1_policies()\fR enables policy checking (it is disabled by default) and sets the acceptable policy set to \fBpolicies\fR. Any existing policy set is cleared. The \fBpolicies\fR parameter can be \fB\s-1NULL\s0\fR to clear an existing policy set. .PP \&\fIX509_VERIFY_PARAM_set_depth()\fR sets the maximum verification depth to \fBdepth\fR. That is the maximum number of untrusted \s-1CA\s0 certificates that can appear in a chain. .PP \&\fIX509_VERIFY_PARAM_set1_host()\fR sets the expected \s-1DNS\s0 hostname to \&\fBname\fR clearing any previously specified host name or names. If \&\fBname\fR is \s-1NULL,\s0 or empty the list of hostnames is cleared, and name checks are not performed on the peer certificate. If \fBname\fR is NUL-terminated, \fBnamelen\fR may be zero, otherwise \fBnamelen\fR must be set to the length of \fBname\fR. When a hostname is specified, certificate verification automatically invokes \fIX509_check_host\fR\|(3) with flags equal to the \fBflags\fR argument given to \&\fB\f(BIX509_VERIFY_PARAM_set_hostflags()\fB\fR (default zero). Applications are strongly advised to use this interface in preference to explicitly calling \fIX509_check_host\fR\|(3), hostname checks are out of scope with the \s-1\fIDANE\-EE\s0\fR\|(3) certificate usage, and the internal check will be suppressed as appropriate when \s-1DANE\s0 support is added to OpenSSL. .PP \&\fIX509_VERIFY_PARAM_add1_host()\fR adds \fBname\fR as an additional reference identifer that can match the peer's certificate. Any previous names set via \fIX509_VERIFY_PARAM_set1_host()\fR or \fIX509_VERIFY_PARAM_add1_host()\fR are retained, no change is made if \fBname\fR is \s-1NULL\s0 or empty. When multiple names are configured, the peer is considered verified when any name matches. .PP \&\fIX509_VERIFY_PARAM_get0_peername()\fR returns the \s-1DNS\s0 hostname or subject CommonName from the peer certificate that matched one of the reference identifiers. When wildcard matching is not disabled, or when a reference identifier specifies a parent domain (starts with \*(L".\*(R") rather than a hostname, the peer name may be a wildcard name or a sub-domain of the reference identifier respectively. The return string is allocated by the library and is no longer valid once the associated \fBparam\fR argument is freed. Applications must not free the return value. .PP \&\fIX509_VERIFY_PARAM_set1_email()\fR sets the expected \s-1RFC822\s0 email address to \&\fBemail\fR. If \fBemail\fR is NUL-terminated, \fBemaillen\fR may be zero, otherwise \&\fBemaillen\fR must be set to the length of \fBemail\fR. When an email address is specified, certificate verification automatically invokes \&\fIX509_check_email\fR\|(3). .PP \&\fIX509_VERIFY_PARAM_set1_ip()\fR sets the expected \s-1IP\s0 address to \fBip\fR. The \fBip\fR argument is in binary format, in network byte-order and \&\fBiplen\fR must be set to 4 for IPv4 and 16 for IPv6. When an \s-1IP\s0 address is specified, certificate verification automatically invokes \&\fIX509_check_ip\fR\|(3). .PP \&\fIX509_VERIFY_PARAM_set1_ip_asc()\fR sets the expected \s-1IP\s0 address to \&\fBipasc\fR. The \fBipasc\fR argument is a NUL-terminal \s-1ASCII\s0 string: dotted decimal quad for IPv4 and colon-separated hexadecimal for IPv6. The condensed \*(L"::\*(R" notation is supported for IPv6 addresses. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIX509_VERIFY_PARAM_set_flags()\fR, \fIX509_VERIFY_PARAM_clear_flags()\fR, \&\fIX509_VERIFY_PARAM_set_purpose()\fR, \fIX509_VERIFY_PARAM_set_trust()\fR, \&\fIX509_VERIFY_PARAM_add0_policy()\fR \fIX509_VERIFY_PARAM_set1_policies()\fR, \&\fIX509_VERIFY_PARAM_set1_host()\fR, \fIX509_VERIFY_PARAM_set_hostflags()\fR, \&\fIX509_VERIFY_PARAM_set1_email()\fR, \fIX509_VERIFY_PARAM_set1_ip()\fR and \&\fIX509_VERIFY_PARAM_set1_ip_asc()\fR return 1 for success and 0 for failure. .PP \&\fIX509_VERIFY_PARAM_get_flags()\fR returns the current verification flags. .PP \&\fIX509_VERIFY_PARAM_set_time()\fR and \fIX509_VERIFY_PARAM_set_depth()\fR do not return values. .PP \&\fIX509_VERIFY_PARAM_get_depth()\fR returns the current verification depth. .SH "VERIFICATION FLAGS" .IX Header "VERIFICATION FLAGS" The verification flags consists of zero or more of the following flags ored together. .PP \&\fBX509_V_FLAG_CRL_CHECK\fR enables \s-1CRL\s0 checking for the certificate chain leaf certificate. An error occurs if a suitable \s-1CRL\s0 cannot be found. .PP \&\fBX509_V_FLAG_CRL_CHECK_ALL\fR enables \s-1CRL\s0 checking for the entire certificate chain. .PP \&\fBX509_V_FLAG_IGNORE_CRITICAL\fR disabled critical extension checking. By default any unhandled critical extensions in certificates or (if checked) CRLs results in a fatal error. If this flag is set unhandled critical extensions are ignored. \fB\s-1WARNING\s0\fR setting this option for anything other than debugging purposes can be a security risk. Finer control over which extensions are supported can be performed in the verification callback. .PP THe \fBX509_V_FLAG_X509_STRICT\fR flag disables workarounds for some broken certificates and makes the verification strictly apply \fBX509\fR rules. .PP \&\fBX509_V_FLAG_ALLOW_PROXY_CERTS\fR enables proxy certificate verification. .PP \&\fBX509_V_FLAG_POLICY_CHECK\fR enables certificate policy checking, by default no policy checking is peformed. Additional information is sent to the verification callback relating to policy checking. .PP \&\fBX509_V_FLAG_EXPLICIT_POLICY\fR, \fBX509_V_FLAG_INHIBIT_ANY\fR and \&\fBX509_V_FLAG_INHIBIT_MAP\fR set the \fBrequire explicit policy\fR, \fBinhibit any policy\fR and \fBinhibit policy mapping\fR flags respectively as defined in \&\fB\s-1RFC3280\s0\fR. Policy checking is automatically enabled if any of these flags are set. .PP If \fBX509_V_FLAG_NOTIFY_POLICY\fR is set and the policy checking is successful a special status code is set to the verification callback. This permits it to examine the valid policy tree and perform additional checks or simply log it for debugging purposes. .PP By default some additional features such as indirect CRLs and CRLs signed by different keys are disabled. If \fBX509_V_FLAG_EXTENDED_CRL_SUPPORT\fR is set they are enabled. .PP If \fBX509_V_FLAG_USE_DELTAS\fR ise set delta CRLs (if present) are used to determine certificate status. If not set deltas are ignored. .PP \&\fBX509_V_FLAG_CHECK_SS_SIGNATURE\fR enables checking of the root \s-1CA\s0 self signed cerificate signature. By default this check is disabled because it doesn't add any additional security but in some cases applications might want to check the signature anyway. A side effect of not checking the root \s-1CA\s0 signature is that disabled or unsupported message digests on the root \s-1CA\s0 are not treated as fatal errors. .PP The \fBX509_V_FLAG_CB_ISSUER_CHECK\fR flag enables debugging of certificate issuer checks. It is \fBnot\fR needed unless you are logging certificate verification. If this flag is set then additional status codes will be sent to the verification callback and it \fBmust\fR be prepared to handle such cases without assuming they are hard errors. .PP The \fBX509_V_FLAG_NO_ALT_CHAINS\fR flag suppresses checking for alternative chains. By default, when building a certificate chain, if the first certificate chain found is not trusted, then OpenSSL will continue to check to see if an alternative chain can be found that is trusted. With this flag set the behaviour will match that of OpenSSL versions prior to 1.0.2b. .PP The \fBX509_V_FLAG_TRUSTED_FIRST\fR flag causes chain construction to look for issuers in the trust store before looking at the untrusted certificates provided as part of the the peer chain. Though it is not on by default in OpenSSL 1.0.2, applications should generally set this flag. Local issuer certificates are often more likely to satisfy local security requirements and lead to a locally trusted root. This is especially important When some certificates in the trust store have explicit trust settings (see \*(L"\s-1TRUST SETTINGS\*(R"\s0 in \fIx509\fR\|(1)). .PP The \fBX509_V_FLAG_PARTIAL_CHAIN\fR flag causes intermediate certificates in the trust store to be treated as trust-anchors, in the same way as the self-signed root \s-1CA\s0 certificates. This makes it possible to trust certificates issued by an intermediate \s-1CA\s0 without having to trust its ancestor root \s-1CA.\s0 With OpenSSL 1.0.2, chain construction continues as long as there are additional trusted issuers in the trust store, and the last trusted issuer becomes the trust-anchor. Thus, even when an intermediate certificate is found in the trust store, the verified chain passed to callbacks may still be anchored by a root \s-1CA.\s0 .SH "NOTES" .IX Header "NOTES" The above functions should be used to manipulate verification parameters instead of legacy functions which work in specific structures such as \&\fIX509_STORE_CTX_set_flags()\fR. .SH "BUGS" .IX Header "BUGS" Delta \s-1CRL\s0 checking is currently primitive. Only a single delta can be used and (partly due to limitations of \fBX509_STORE\fR) constructed CRLs are not maintained. .PP If CRLs checking is enable CRLs are expected to be available in the corresponding \fBX509_STORE\fR structure. No attempt is made to download CRLs from the \s-1CRL\s0 distribution points extension. .SH "EXAMPLE" .IX Header "EXAMPLE" Enable \s-1CRL\s0 checking when performing certificate verification during \s-1SSL \s0 connections associated with an \fB\s-1SSL_CTX\s0\fR structure \fBctx\fR: .PP .Vb 5 \& X509_VERIFY_PARAM *param; \& param = X509_VERIFY_PARAM_new(); \& X509_VERIFY_PARAM_set_flags(param, X509_V_FLAG_CRL_CHECK); \& SSL_CTX_set1_param(ctx, param); \& X509_VERIFY_PARAM_free(param); .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIX509_verify_cert\fR\|(3), \&\fIX509_check_host\fR\|(3), \&\fIX509_check_email\fR\|(3), \&\fIX509_check_ip\fR\|(3), \&\fIx509\fR\|(1) .SH "HISTORY" .IX Header "HISTORY" The \fBX509_V_FLAG_NO_ALT_CHAINS\fR flag was added in OpenSSL 1.0.2b man3/EVP_PKEY_derive.3000064400000015371147210533270010321 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EVP_PKEY_derive 3" .TH EVP_PKEY_derive 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EVP_PKEY_derive_init, EVP_PKEY_derive_set_peer, EVP_PKEY_derive \- derive public key algorithm shared secret. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx); \& int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer); \& int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fIEVP_PKEY_derive_init()\fR function initializes a public key algorithm context using key \fBpkey\fR for shared secret derivation. .PP The \fIEVP_PKEY_derive_set_peer()\fR function sets the peer key: this will normally be a public key. .PP The \fIEVP_PKEY_derive()\fR derives a shared secret using \fBctx\fR. If \fBkey\fR is \fB\s-1NULL\s0\fR then the maximum size of the output buffer is written to the \fBkeylen\fR parameter. If \fBkey\fR is not \fB\s-1NULL\s0\fR then before the call the \&\fBkeylen\fR parameter should contain the length of the \fBkey\fR buffer, if the call is successful the shared secret is written to \fBkey\fR and the amount of data written to \fBkeylen\fR. .SH "NOTES" .IX Header "NOTES" After the call to \fIEVP_PKEY_derive_init()\fR algorithm specific control operations can be performed to set any appropriate parameters for the operation. .PP The function \fIEVP_PKEY_derive()\fR can be called more than once on the same context if several operations are performed using the same parameters. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIEVP_PKEY_derive_init()\fR and \fIEVP_PKEY_derive()\fR return 1 for success and 0 or a negative value for failure. In particular a return value of \-2 indicates the operation is not supported by the public key algorithm. .SH "EXAMPLE" .IX Header "EXAMPLE" Derive shared secret (for example \s-1DH\s0 or \s-1EC\s0 keys): .PP .Vb 2 \& #include \& #include \& \& EVP_PKEY_CTX *ctx; \& unsigned char *skey; \& size_t skeylen; \& EVP_PKEY *pkey, *peerkey; \& /* NB: assumes pkey, peerkey have been already set up */ \& \& ctx = EVP_PKEY_CTX_new(pkey); \& if (!ctx) \& /* Error occurred */ \& if (EVP_PKEY_derive_init(ctx) <= 0) \& /* Error */ \& if (EVP_PKEY_derive_set_peer(ctx, peerkey) <= 0) \& /* Error */ \& \& /* Determine buffer length */ \& if (EVP_PKEY_derive(ctx, NULL, &skeylen) <= 0) \& /* Error */ \& \& skey = OPENSSL_malloc(skeylen); \& \& if (!skey) \& /* malloc failure */ \& \& if (EVP_PKEY_derive(ctx, skey, &skeylen) <= 0) \& /* Error */ \& \& /* Shared secret is skey bytes written to buffer skey */ .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIEVP_PKEY_CTX_new\fR\|(3), \&\fIEVP_PKEY_encrypt\fR\|(3), \&\fIEVP_PKEY_decrypt\fR\|(3), \&\fIEVP_PKEY_sign\fR\|(3), \&\fIEVP_PKEY_verify\fR\|(3), \&\fIEVP_PKEY_verify_recover\fR\|(3), .SH "HISTORY" .IX Header "HISTORY" These functions were first added to OpenSSL 1.0.0. man3/RSA_set_method.3000064400000032077147210533270010343 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RSA_set_method 3" .TH RSA_set_method 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" RSA_set_default_method, RSA_get_default_method, RSA_set_method, RSA_get_method, RSA_PKCS1_SSLeay, RSA_null_method, RSA_flags, RSA_new_method \- select RSA method .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void RSA_set_default_method(const RSA_METHOD *meth); \& \& RSA_METHOD *RSA_get_default_method(void); \& \& int RSA_set_method(RSA *rsa, const RSA_METHOD *meth); \& \& RSA_METHOD *RSA_get_method(const RSA *rsa); \& \& RSA_METHOD *RSA_PKCS1_SSLeay(void); \& \& RSA_METHOD *RSA_null_method(void); \& \& int RSA_flags(const RSA *rsa); \& \& RSA *RSA_new_method(RSA_METHOD *method); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" An \fB\s-1RSA_METHOD\s0\fR specifies the functions that OpenSSL uses for \s-1RSA\s0 operations. By modifying the method, alternative implementations such as hardware accelerators may be used. \s-1IMPORTANT:\s0 See the \s-1NOTES\s0 section for important information about how these \s-1RSA API\s0 functions are affected by the use of \fB\s-1ENGINE\s0\fR \s-1API\s0 calls. .PP Initially, the default \s-1RSA_METHOD\s0 is the OpenSSL internal implementation, as returned by \fIRSA_PKCS1_SSLeay()\fR. .PP \&\fIRSA_set_default_method()\fR makes \fBmeth\fR the default method for all \s-1RSA\s0 structures created later. \fB\s-1NB\s0\fR: This is true only whilst no \s-1ENGINE\s0 has been set as a default for \s-1RSA,\s0 so this function is no longer recommended. .PP \&\fIRSA_get_default_method()\fR returns a pointer to the current default \&\s-1RSA_METHOD.\s0 However, the meaningfulness of this result is dependent on whether the \s-1ENGINE API\s0 is being used, so this function is no longer recommended. .PP \&\fIRSA_set_method()\fR selects \fBmeth\fR to perform all operations using the key \&\fBrsa\fR. This will replace the \s-1RSA_METHOD\s0 used by the \s-1RSA\s0 key and if the previous method was supplied by an \s-1ENGINE,\s0 the handle to that \s-1ENGINE\s0 will be released during the change. It is possible to have \s-1RSA\s0 keys that only work with certain \s-1RSA_METHOD\s0 implementations (eg. from an \s-1ENGINE\s0 module that supports embedded hardware-protected keys), and in such cases attempting to change the \s-1RSA_METHOD\s0 for the key can have unexpected results. .PP \&\fIRSA_get_method()\fR returns a pointer to the \s-1RSA_METHOD\s0 being used by \fBrsa\fR. This method may or may not be supplied by an \s-1ENGINE\s0 implementation, but if it is, the return value can only be guaranteed to be valid as long as the \&\s-1RSA\s0 key itself is valid and does not have its implementation changed by \&\fIRSA_set_method()\fR. .PP \&\fIRSA_flags()\fR returns the \fBflags\fR that are set for \fBrsa\fR's current \&\s-1RSA_METHOD.\s0 See the \s-1BUGS\s0 section. .PP \&\fIRSA_new_method()\fR allocates and initializes an \s-1RSA\s0 structure so that \&\fBengine\fR will be used for the \s-1RSA\s0 operations. If \fBengine\fR is \s-1NULL,\s0 the default \s-1ENGINE\s0 for \s-1RSA\s0 operations is used, and if no default \s-1ENGINE\s0 is set, the \s-1RSA_METHOD\s0 controlled by \fIRSA_set_default_method()\fR is used. .PP \&\fIRSA_flags()\fR returns the \fBflags\fR that are set for \fBrsa\fR's current method. .PP \&\fIRSA_new_method()\fR allocates and initializes an \fB\s-1RSA\s0\fR structure so that \&\fBmethod\fR will be used for the \s-1RSA\s0 operations. If \fBmethod\fR is \fB\s-1NULL\s0\fR, the default method is used. .SH "THE RSA_METHOD STRUCTURE" .IX Header "THE RSA_METHOD STRUCTURE" .Vb 4 \& typedef struct rsa_meth_st \& { \& /* name of the implementation */ \& const char *name; \& \& /* encrypt */ \& int (*rsa_pub_enc)(int flen, unsigned char *from, \& unsigned char *to, RSA *rsa, int padding); \& \& /* verify arbitrary data */ \& int (*rsa_pub_dec)(int flen, unsigned char *from, \& unsigned char *to, RSA *rsa, int padding); \& \& /* sign arbitrary data */ \& int (*rsa_priv_enc)(int flen, unsigned char *from, \& unsigned char *to, RSA *rsa, int padding); \& \& /* decrypt */ \& int (*rsa_priv_dec)(int flen, unsigned char *from, \& unsigned char *to, RSA *rsa, int padding); \& \& /* compute r0 = r0 ^ I mod rsa\->n (May be NULL for some \& implementations) */ \& int (*rsa_mod_exp)(BIGNUM *r0, BIGNUM *I, RSA *rsa); \& \& /* compute r = a ^ p mod m (May be NULL for some implementations) */ \& int (*bn_mod_exp)(BIGNUM *r, BIGNUM *a, const BIGNUM *p, \& const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); \& \& /* called at RSA_new */ \& int (*init)(RSA *rsa); \& \& /* called at RSA_free */ \& int (*finish)(RSA *rsa); \& \& /* RSA_FLAG_EXT_PKEY \- rsa_mod_exp is called for private key \& * operations, even if p,q,dmp1,dmq1,iqmp \& * are NULL \& * RSA_FLAG_SIGN_VER \- enable rsa_sign and rsa_verify \& * RSA_METHOD_FLAG_NO_CHECK \- don\*(Aqt check pub/private match \& */ \& int flags; \& \& char *app_data; /* ?? */ \& \& /* sign. For backward compatibility, this is used only \& * if (flags & RSA_FLAG_SIGN_VER) \& */ \& int (*rsa_sign)(int type, \& const unsigned char *m, unsigned int m_length, \& unsigned char *sigret, unsigned int *siglen, const RSA *rsa); \& /* verify. For backward compatibility, this is used only \& * if (flags & RSA_FLAG_SIGN_VER) \& */ \& int (*rsa_verify)(int dtype, \& const unsigned char *m, unsigned int m_length, \& const unsigned char *sigbuf, unsigned int siglen, \& const RSA *rsa); \& /* keygen. If NULL builtin RSA key generation will be used */ \& int (*rsa_keygen)(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); \& \& } RSA_METHOD; .Ve .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIRSA_PKCS1_SSLeay()\fR, \fIRSA_PKCS1_null_method()\fR, \fIRSA_get_default_method()\fR and \fIRSA_get_method()\fR return pointers to the respective RSA_METHODs. .PP \&\fIRSA_set_default_method()\fR returns no value. .PP \&\fIRSA_set_method()\fR returns a pointer to the old \s-1RSA_METHOD\s0 implementation that was replaced. However, this return value should probably be ignored because if it was supplied by an \s-1ENGINE,\s0 the pointer could be invalidated at any time if the \s-1ENGINE\s0 is unloaded (in fact it could be unloaded as a result of the \fIRSA_set_method()\fR function releasing its handle to the \&\s-1ENGINE\s0). For this reason, the return type may be replaced with a \fBvoid\fR declaration in a future release. .PP \&\fIRSA_new_method()\fR returns \s-1NULL\s0 and sets an error code that can be obtained by \fIERR_get_error\fR\|(3) if the allocation fails. Otherwise it returns a pointer to the newly allocated structure. .SH "NOTES" .IX Header "NOTES" As of version 0.9.7, \s-1RSA_METHOD\s0 implementations are grouped together with other algorithmic APIs (eg. \s-1DSA_METHOD, EVP_CIPHER,\s0 etc) into \fB\s-1ENGINE\s0\fR modules. If a default \s-1ENGINE\s0 is specified for \s-1RSA\s0 functionality using an \&\s-1ENGINE API\s0 function, that will override any \s-1RSA\s0 defaults set using the \s-1RSA API \s0(ie. \fIRSA_set_default_method()\fR). For this reason, the \s-1ENGINE API\s0 is the recommended way to control default implementations for use in \s-1RSA\s0 and other cryptographic algorithms. .SH "BUGS" .IX Header "BUGS" The behaviour of \fIRSA_flags()\fR is a mis-feature that is left as-is for now to avoid creating compatibility problems. \s-1RSA\s0 functionality, such as the encryption functions, are controlled by the \fBflags\fR value in the \s-1RSA\s0 key itself, not by the \fBflags\fR value in the \s-1RSA_METHOD\s0 attached to the \s-1RSA\s0 key (which is what this function returns). If the flags element of an \s-1RSA\s0 key is changed, the changes will be honoured by \s-1RSA\s0 functionality but will not be reflected in the return value of the \fIRSA_flags()\fR function \- in effect \&\fIRSA_flags()\fR behaves more like an \fIRSA_default_flags()\fR function (which does not currently exist). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIrsa\fR\|(3), \fIRSA_new\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIRSA_new_method()\fR and \fIRSA_set_default_method()\fR appeared in SSLeay 0.8. \&\fIRSA_get_default_method()\fR, \fIRSA_set_method()\fR and \fIRSA_get_method()\fR as well as the rsa_sign and rsa_verify components of \s-1RSA_METHOD\s0 were added in OpenSSL 0.9.4. .PP \&\fIRSA_set_default_openssl_method()\fR and \fIRSA_get_default_openssl_method()\fR replaced \fIRSA_set_default_method()\fR and \fIRSA_get_default_method()\fR respectively, and \fIRSA_set_method()\fR and \fIRSA_new_method()\fR were altered to use \&\fB\s-1ENGINE\s0\fRs rather than \fB\s-1RSA_METHOD\s0\fRs during development of the engine version of OpenSSL 0.9.6. For 0.9.7, the handling of defaults in the \s-1ENGINE API\s0 was restructured so that this change was reversed, and behaviour of the other functions resembled more closely the previous behaviour. The behaviour of defaults in the \s-1ENGINE API\s0 now transparently overrides the behaviour of defaults in the \s-1RSA API\s0 without requiring changing these function prototypes. man3/ASN1_TIME_set.3000064400000022253147210533270007671 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ASN1_TIME_set 3" .TH ASN1_TIME_set 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ASN1_TIME_set, ASN1_TIME_adj, ASN1_TIME_check, ASN1_TIME_set_string, ASN1_TIME_print, ASN1_TIME_diff \- ASN.1 Time functions. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 6 \& ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t); \& ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t, \& int offset_day, long offset_sec); \& int ASN1_TIME_set_string(ASN1_TIME *s, const char *str); \& int ASN1_TIME_check(const ASN1_TIME *t); \& int ASN1_TIME_print(BIO *b, const ASN1_TIME *s); \& \& int ASN1_TIME_diff(int *pday, int *psec, \& const ASN1_TIME *from, const ASN1_TIME *to); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The function \fIASN1_TIME_set()\fR sets the \s-1ASN1_TIME\s0 structure \fBs\fR to the time represented by the time_t value \fBt\fR. If \fBs\fR is \s-1NULL\s0 a new \s-1ASN1_TIME\s0 structure is allocated and returned. .PP \&\fIASN1_TIME_adj()\fR sets the \s-1ASN1_TIME\s0 structure \fBs\fR to the time represented by the time \fBoffset_day\fR and \fBoffset_sec\fR after the time_t value \fBt\fR. The values of \fBoffset_day\fR or \fBoffset_sec\fR can be negative to set a time before \fBt\fR. The \fBoffset_sec\fR value can also exceed the number of seconds in a day. If \fBs\fR is \s-1NULL\s0 a new \s-1ASN1_TIME\s0 structure is allocated and returned. .PP \&\fIASN1_TIME_set_string()\fR sets \s-1ASN1_TIME\s0 structure \fBs\fR to the time represented by string \fBstr\fR which must be in appropriate \s-1ASN.1\s0 time format (for example \s-1YYMMDDHHMMSSZ\s0 or \s-1YYYYMMDDHHMMSSZ\s0). .PP \&\fIASN1_TIME_check()\fR checks the syntax of \s-1ASN1_TIME\s0 structure \fBs\fR. .PP \&\fIASN1_TIME_print()\fR prints out the time \fBs\fR to \s-1BIO \s0\fBb\fR in human readable format. It will be of the format \s-1MMM DD HH:MM:SS YYYY\s0 [\s-1GMT\s0], for example \&\*(L"Feb 3 00:55:52 2015 \s-1GMT\*(R"\s0 it does not include a newline. If the time structure has invalid format it prints out \*(L"Bad time value\*(R" and returns an error. .PP \&\fIASN1_TIME_diff()\fR sets \fB*pday\fR and \fB*psec\fR to the time difference between \&\fBfrom\fR and \fBto\fR. If \fBto\fR represents a time later than \fBfrom\fR then one or both (depending on the time difference) of \fB*pday\fR and \fB*psec\fR will be positive. If \fBto\fR represents a time earlier than \fBfrom\fR then one or both of \fB*pday\fR and \fB*psec\fR will be negative. If \fBto\fR and \fBfrom\fR represent the same time then \fB*pday\fR and \fB*psec\fR will both be zero. If both \fB*pday\fR and \fB*psec\fR are non-zero they will always have the same sign. The value of \fB*psec\fR will always be less than the number of seconds in a day. If \fBfrom\fR or \fBto\fR is \s-1NULL\s0 the current time is used. .SH "NOTES" .IX Header "NOTES" The \s-1ASN1_TIME\s0 structure corresponds to the \s-1ASN.1\s0 structure \fBTime\fR defined in \s-1RFC5280\s0 et al. The time setting functions obey the rules outlined in \s-1RFC5280:\s0 if the date can be represented by UTCTime it is used, else GeneralizedTime is used. .PP The \s-1ASN1_TIME\s0 structure is represented as an \s-1ASN1_STRING\s0 internally and can be freed up using \fIASN1_STRING_free()\fR. .PP The \s-1ASN1_TIME\s0 structure can represent years from 0000 to 9999 but no attempt is made to correct ancient calendar changes (for example from Julian to Gregorian calendars). .PP Some applications add offset times directly to a time_t value and pass the results to \fIASN1_TIME_set()\fR (or equivalent). This can cause problems as the time_t value can overflow on some systems resulting in unexpected results. New applications should use \fIASN1_TIME_adj()\fR instead and pass the offset value in the \fBoffset_sec\fR and \fBoffset_day\fR parameters instead of directly manipulating a time_t value. .SH "BUGS" .IX Header "BUGS" \&\fIASN1_TIME_print()\fR currently does not print out the time zone: it either prints out \*(L"\s-1GMT\*(R"\s0 or nothing. But all certificates complying with \s-1RFC5280\s0 et al use \s-1GMT\s0 anyway. .SH "EXAMPLES" .IX Header "EXAMPLES" Set a time structure to one hour after the current time and print it out: .PP .Vb 11 \& #include \& #include \& ASN1_TIME *tm; \& time_t t; \& BIO *b; \& t = time(NULL); \& tm = ASN1_TIME_adj(NULL, t, 0, 60 * 60); \& b = BIO_new_fp(stdout, BIO_NOCLOSE); \& ASN1_TIME_print(b, tm); \& ASN1_STRING_free(tm); \& BIO_free(b); .Ve .PP Determine if one time is later or sooner than the current time: .PP .Vb 1 \& int day, sec; \& \& if (!ASN1_TIME_diff(&day, &sec, NULL, to)) \& /* Invalid time format */ \& \& if (day > 0 || sec > 0) \& printf("Later\en"); \& else if (day < 0 || sec < 0) \& printf("Sooner\en"); \& else \& printf("Same\en"); .Ve .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIASN1_TIME_set()\fR and \fIASN1_TIME_adj()\fR return a pointer to an \s-1ASN1_TIME\s0 structure or \s-1NULL\s0 if an error occurred. .PP \&\fIASN1_TIME_set_string()\fR returns 1 if the time value is successfully set and 0 otherwise. .PP \&\fIASN1_TIME_check()\fR returns 1 if the structure is syntactically correct and 0 otherwise. .PP \&\fIASN1_TIME_print()\fR returns 1 if the time is successfully printed out and 0 if an error occurred (I/O error or invalid time format). .PP \&\fIASN1_TIME_diff()\fR returns 1 for sucess and 0 for failure. It can fail if the pass \s-1ASN1_TIME\s0 structure has invalid syntax for example. man3/sha.3000064400000020144147210533270006246 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "sha 3" .TH sha 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SHA1, SHA1_Init, SHA1_Update, SHA1_Final, SHA224, SHA224_Init, SHA224_Update, SHA224_Final, SHA256, SHA256_Init, SHA256_Update, SHA256_Final, SHA384, SHA384_Init, SHA384_Update, SHA384_Final, SHA512, SHA512_Init, SHA512_Update, SHA512_Final \- Secure Hash Algorithm .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SHA1_Init(SHA_CTX *c); \& int SHA1_Update(SHA_CTX *c, const void *data, size_t len); \& int SHA1_Final(unsigned char *md, SHA_CTX *c); \& unsigned char *SHA1(const unsigned char *d, size_t n, \& unsigned char *md); \& \& int SHA224_Init(SHA256_CTX *c); \& int SHA224_Update(SHA256_CTX *c, const void *data, size_t len); \& int SHA224_Final(unsigned char *md, SHA256_CTX *c); \& unsigned char *SHA224(const unsigned char *d, size_t n, \& unsigned char *md); \& \& int SHA256_Init(SHA256_CTX *c); \& int SHA256_Update(SHA256_CTX *c, const void *data, size_t len); \& int SHA256_Final(unsigned char *md, SHA256_CTX *c); \& unsigned char *SHA256(const unsigned char *d, size_t n, \& unsigned char *md); \& \& int SHA384_Init(SHA512_CTX *c); \& int SHA384_Update(SHA512_CTX *c, const void *data, size_t len); \& int SHA384_Final(unsigned char *md, SHA512_CTX *c); \& unsigned char *SHA384(const unsigned char *d, size_t n, \& unsigned char *md); \& \& int SHA512_Init(SHA512_CTX *c); \& int SHA512_Update(SHA512_CTX *c, const void *data, size_t len); \& int SHA512_Final(unsigned char *md, SHA512_CTX *c); \& unsigned char *SHA512(const unsigned char *d, size_t n, \& unsigned char *md); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Applications should use the higher level functions \&\fIEVP_DigestInit\fR\|(3) etc. instead of calling the hash functions directly. .PP \&\s-1SHA\-1 \s0(Secure Hash Algorithm) is a cryptographic hash function with a 160 bit output. .PP \&\s-1\fISHA1\s0()\fR computes the \s-1SHA\-1\s0 message digest of the \fBn\fR bytes at \fBd\fR and places it in \fBmd\fR (which must have space for \&\s-1SHA_DIGEST_LENGTH\s0 == 20 bytes of output). If \fBmd\fR is \s-1NULL,\s0 the digest is placed in a static array. Note: setting \fBmd\fR to \s-1NULL\s0 is \fBnot thread safe\fR. .PP The following functions may be used if the message is not completely stored in memory: .PP \&\fISHA1_Init()\fR initializes a \fB\s-1SHA_CTX\s0\fR structure. .PP \&\fISHA1_Update()\fR can be called repeatedly with chunks of the message to be hashed (\fBlen\fR bytes at \fBdata\fR). .PP \&\fISHA1_Final()\fR places the message digest in \fBmd\fR, which must have space for \s-1SHA_DIGEST_LENGTH\s0 == 20 bytes of output, and erases the \fB\s-1SHA_CTX\s0\fR. .PP The \s-1SHA224, SHA256, SHA384\s0 and \s-1SHA512\s0 families of functions operate in the same way as for the \s-1SHA1\s0 functions. Note that \s-1SHA224\s0 and \s-1SHA256\s0 use a \&\fB\s-1SHA256_CTX\s0\fR object instead of \fB\s-1SHA_CTX\s0\fR. \s-1SHA384\s0 and \s-1SHA512\s0 use \fB\s-1SHA512_CTX\s0\fR. The buffer \fBmd\fR must have space for the output from the \s-1SHA\s0 variant being used (defined by \s-1SHA224_DIGEST_LENGTH, SHA256_DIGEST_LENGTH, SHA384_DIGEST_LENGTH\s0 and \&\s-1SHA512_DIGEST_LENGTH\s0). Also note that, as for the \s-1\fISHA1\s0()\fR function above, the \&\s-1\fISHA224\s0()\fR, \s-1\fISHA256\s0()\fR, \s-1\fISHA384\s0()\fR and \s-1\fISHA512\s0()\fR functions are not thread safe if \&\fBmd\fR is \s-1NULL.\s0 .PP The predecessor of \s-1SHA\-1, SHA,\s0 is also implemented, but it should be used only when backward compatibility is required. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\s-1\fISHA1\s0()\fR, \s-1\fISHA224\s0()\fR, \s-1\fISHA256\s0()\fR, \s-1\fISHA384\s0()\fR and \s-1\fISHA512\s0()\fR return a pointer to the hash value. .PP \&\fISHA1_Init()\fR, \fISHA1_Update()\fR and \fISHA1_Final()\fR and equivalent \s-1SHA224, SHA256, SHA384\s0 and \s-1SHA512\s0 functions return 1 for success, 0 otherwise. .SH "CONFORMING TO" .IX Header "CONFORMING TO" \&\s-1US\s0 Federal Information Processing Standard \s-1FIPS PUB 180\-4 \s0(Secure Hash Standard), \&\s-1ANSI X9.30\s0 .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIripemd\fR\|(3), \fIhmac\fR\|(3), \fIEVP_DigestInit\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1\fISHA1\s0()\fR, \fISHA1_Init()\fR, \fISHA1_Update()\fR and \fISHA1_Final()\fR are available in all versions of SSLeay and OpenSSL. man3/SSL_CTX_set_alpn_select_cb.3000064400000022356147210533270012551 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_alpn_select_cb 3" .TH SSL_CTX_set_alpn_select_cb 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_alpn_protos, SSL_set_alpn_protos, SSL_CTX_set_alpn_select_cb, SSL_select_next_proto, SSL_get0_alpn_selected \- handle application layer protocol negotiation (ALPN) .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_CTX_set_alpn_protos(SSL_CTX *ctx, const unsigned char *protos, \& unsigned protos_len); \& int SSL_set_alpn_protos(SSL *ssl, const unsigned char *protos, \& unsigned protos_len); \& void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx, \& int (*cb) (SSL *ssl, \& const unsigned char **out, \& unsigned char *outlen, \& const unsigned char *in, \& unsigned int inlen, \& void *arg), void *arg); \& int SSL_select_next_proto(unsigned char **out, unsigned char *outlen, \& const unsigned char *server, \& unsigned int server_len, \& const unsigned char *client, \& unsigned int client_len) \& void SSL_get0_alpn_selected(const SSL *ssl, const unsigned char **data, \& unsigned int *len); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set_alpn_protos()\fR and \fISSL_set_alpn_protos()\fR are used by the client to set the list of protocols available to be negotiated. The \fBprotos\fR must be in protocol-list format, described below. The length of \fBprotos\fR is specified in \&\fBprotos_len\fR. .PP \&\fISSL_CTX_set_alpn_select_cb()\fR sets the application callback \fBcb\fR used by a server to select which protocol to use for the incoming connection. When \fBcb\fR is \s-1NULL, ALPN\s0 is not used. The \fBarg\fR value is a pointer which is passed to the application callback. .PP \&\fBcb\fR is the application defined callback. The \fBin\fR, \fBinlen\fR parameters are a vector in protocol-list format. The value of the \fBout\fR, \fBoutlen\fR vector should be set to the value of a single protocol selected from the \fBin\fR, \&\fBinlen\fR vector. The \fBarg\fR parameter is the pointer set via \&\fISSL_CTX_set_alpn_select_cb()\fR. .PP \&\fISSL_select_next_proto()\fR is a helper function used to select protocols. It implements the standard protocol selection. It is expected that this function is called from the application callback \fBcb\fR. The protocol data in \fBserver\fR, \&\fBserver_len\fR and \fBclient\fR, \fBclient_len\fR must be in the protocol-list format described below. The first item in the \fBserver\fR, \fBserver_len\fR list that matches an item in the \fBclient\fR, \fBclient_len\fR list is selected, and returned in \fBout\fR, \fBoutlen\fR. The \fBout\fR value will point into either \fBserver\fR or \&\fBclient\fR, so it should be copied immediately. If no match is found, the first item in \fBclient\fR, \fBclient_len\fR is returned in \fBout\fR, \fBoutlen\fR. This function can also be used in the \s-1NPN\s0 callback. .PP \&\fISSL_get0_alpn_selected()\fR returns a pointer to the selected protocol in \fBdata\fR with length \fBlen\fR. It is not NUL-terminated. \fBdata\fR is set to \s-1NULL\s0 and \fBlen\fR is set to 0 if no protocol has been selected. \fBdata\fR must not be freed. .SH "NOTES" .IX Header "NOTES" The protocol-lists must be in wire-format, which is defined as a vector of non-empty, 8\-bit length-prefixed, byte strings. The length-prefix byte is not included in the length. Each string is limited to 255 bytes. A byte-string length of 0 is invalid. A truncated byte-string is invalid. The length of the vector is not in the vector itself, but in a separate variable. .PP Example: .PP .Vb 5 \& unsigned char vector[] = { \& 6, \*(Aqs\*(Aq, \*(Aqp\*(Aq, \*(Aqd\*(Aq, \*(Aqy\*(Aq, \*(Aq/\*(Aq, \*(Aq1\*(Aq, \& 8, \*(Aqh\*(Aq, \*(Aqt\*(Aq, \*(Aqt\*(Aq, \*(Aqp\*(Aq, \*(Aq/\*(Aq, \*(Aq1\*(Aq, \*(Aq.\*(Aq, \*(Aq1\*(Aq \& }; \& unsigned int length = sizeof(vector); .Ve .PP The \s-1ALPN\s0 callback is executed after the servername callback; as that servername callback may update the \s-1SSL_CTX,\s0 and subsequently, the \s-1ALPN\s0 callback. .PP If there is no \s-1ALPN\s0 proposed in the ClientHello, the \s-1ALPN\s0 callback is not invoked. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CTX_set_alpn_protos()\fR and \fISSL_set_alpn_protos()\fR return 0 on success, and non\-0 on failure. \s-1WARNING:\s0 these functions reverse the return value convention. .PP \&\fISSL_select_next_proto()\fR returns one of the following: .IP "\s-1OPENSSL_NPN_NEGOTIATED\s0" 4 .IX Item "OPENSSL_NPN_NEGOTIATED" A match was found and is returned in \fBout\fR, \fBoutlen\fR. .IP "\s-1OPENSSL_NPN_NO_OVERLAP\s0" 4 .IX Item "OPENSSL_NPN_NO_OVERLAP" No match was found. The first item in \fBclient\fR, \fBclient_len\fR is returned in \&\fBout\fR, \fBoutlen\fR. .PP The \s-1ALPN\s0 select callback \fBcb\fR, must return one of the following: .IP "\s-1SSL_TLSEXT_ERR_OK\s0" 4 .IX Item "SSL_TLSEXT_ERR_OK" \&\s-1ALPN\s0 protocol selected. .IP "\s-1SSL_TLSEXT_ERR_NOACK\s0" 4 .IX Item "SSL_TLSEXT_ERR_NOACK" \&\s-1ALPN\s0 protocol not selected. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_CTX_set_tlsext_servername_callback\fR\|(3), \&\fISSL_CTX_set_tlsext_servername_arg\fR\|(3) man3/SSL_CTX_new.3000064400000027244147210533270007533 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_new 3" .TH SSL_CTX_new 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_new, SSLv23_method, SSLv23_server_method, SSLv23_client_method, TLSv1_2_method, TLSv1_2_server_method, TLSv1_2_client_method, TLSv1_1_method, TLSv1_1_server_method, TLSv1_1_client_method, TLSv1_method, TLSv1_server_method, TLSv1_client_method, SSLv3_method, SSLv3_server_method, SSLv3_client_method, SSLv2_method, SSLv2_server_method, SSLv2_client_method, DTLS_method, DTLS_server_method, DTLS_client_method, DTLSv1_2_method, DTLSv1_2_server_method, DTLSv1_2_client_method, DTLSv1_method, DTLSv1_server_method, DTLSv1_client_method \- create a new SSL_CTX object as framework for TLS/SSL enabled functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& SSL_CTX *SSL_CTX_new(const SSL_METHOD *method); \& const SSL_METHOD *SSLv23_method(void); \& const SSL_METHOD *SSLv23_server_method(void); \& const SSL_METHOD *SSLv23_client_method(void); \& const SSL_METHOD *TLSv1_2_method(void); \& const SSL_METHOD *TLSv1_2_server_method(void); \& const SSL_METHOD *TLSv1_2_client_method(void); \& const SSL_METHOD *TLSv1_1_method(void); \& const SSL_METHOD *TLSv1_1_server_method(void); \& const SSL_METHOD *TLSv1_1_client_method(void); \& const SSL_METHOD *TLSv1_method(void); \& const SSL_METHOD *TLSv1_server_method(void); \& const SSL_METHOD *TLSv1_client_method(void); \& #ifndef OPENSSL_NO_SSL3_METHOD \& const SSL_METHOD *SSLv3_method(void); \& const SSL_METHOD *SSLv3_server_method(void); \& const SSL_METHOD *SSLv3_client_method(void); \& #endif \& #ifndef OPENSSL_NO_SSL2 \& const SSL_METHOD *SSLv2_method(void); \& const SSL_METHOD *SSLv2_server_method(void); \& const SSL_METHOD *SSLv2_client_method(void); \& #endif \& \& const SSL_METHOD *DTLS_method(void); \& const SSL_METHOD *DTLS_server_method(void); \& const SSL_METHOD *DTLS_client_method(void); \& const SSL_METHOD *DTLSv1_2_method(void); \& const SSL_METHOD *DTLSv1_2_server_method(void); \& const SSL_METHOD *DTLSv1_2_client_method(void); \& const SSL_METHOD *DTLSv1_method(void); \& const SSL_METHOD *DTLSv1_server_method(void); \& const SSL_METHOD *DTLSv1_client_method(void); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_new()\fR creates a new \fB\s-1SSL_CTX\s0\fR object as framework to establish \&\s-1TLS/SSL\s0 enabled connections. .SH "NOTES" .IX Header "NOTES" The \s-1SSL_CTX\s0 object uses \fBmethod\fR as connection method. The methods exist in a generic type (for client and server use), a server only type, and a client only type. \fBmethod\fR can be of the following types: .IP "\fISSLv23_method()\fR, \fISSLv23_server_method()\fR, \fISSLv23_client_method()\fR" 4 .IX Item "SSLv23_method(), SSLv23_server_method(), SSLv23_client_method()" These are the general-purpose \fIversion-flexible\fR \s-1SSL/TLS\s0 methods. The actual protocol version used will be negotiated to the highest version mutually supported by the client and the server. The supported protocols are SSLv2, SSLv3, TLSv1, TLSv1.1 and TLSv1.2. Most applications should use these method, and avoid the version specific methods described below. .Sp The list of protocols available can be further limited using the \&\fBSSL_OP_NO_SSLv2\fR, \fBSSL_OP_NO_SSLv3\fR, \fBSSL_OP_NO_TLSv1\fR, \&\fBSSL_OP_NO_TLSv1_1\fR and \fBSSL_OP_NO_TLSv1_2\fR options of the \&\fISSL_CTX_set_options\fR\|(3) or \fISSL_set_options\fR\|(3) functions. Clients should avoid creating \*(L"holes\*(R" in the set of protocols they support, when disabling a protocol, make sure that you also disable either all previous or all subsequent protocol versions. In clients, when a protocol version is disabled without disabling \fIall\fR previous protocol versions, the effect is to also disable all subsequent protocol versions. .Sp The SSLv2 and SSLv3 protocols are deprecated and should generally not be used. Applications should typically use \fISSL_CTX_set_options\fR\|(3) in combination with the \fBSSL_OP_NO_SSLv3\fR flag to disable negotiation of SSLv3 via the above \&\fIversion-flexible\fR \s-1SSL/TLS\s0 methods. The \fBSSL_OP_NO_SSLv2\fR option is set by default, and would need to be cleared via \fISSL_CTX_clear_options\fR\|(3) in order to enable negotiation of SSLv2. .IP "\fITLSv1_2_method()\fR, \fITLSv1_2_server_method()\fR, \fITLSv1_2_client_method()\fR" 4 .IX Item "TLSv1_2_method(), TLSv1_2_server_method(), TLSv1_2_client_method()" A \s-1TLS/SSL\s0 connection established with these methods will only understand the TLSv1.2 protocol. A client will send out TLSv1.2 client hello messages and will also indicate that it only understand TLSv1.2. A server will only understand TLSv1.2 client hello messages. .IP "\fITLSv1_1_method()\fR, \fITLSv1_1_server_method()\fR, \fITLSv1_1_client_method()\fR" 4 .IX Item "TLSv1_1_method(), TLSv1_1_server_method(), TLSv1_1_client_method()" A \s-1TLS/SSL\s0 connection established with these methods will only understand the TLSv1.1 protocol. A client will send out TLSv1.1 client hello messages and will also indicate that it only understand TLSv1.1. A server will only understand TLSv1.1 client hello messages. .IP "\fITLSv1_method()\fR, \fITLSv1_server_method()\fR, \fITLSv1_client_method()\fR" 4 .IX Item "TLSv1_method(), TLSv1_server_method(), TLSv1_client_method()" A \s-1TLS/SSL\s0 connection established with these methods will only understand the TLSv1 protocol. A client will send out TLSv1 client hello messages and will indicate that it only understands TLSv1. A server will only understand TLSv1 client hello messages. .IP "\fISSLv3_method()\fR, \fISSLv3_server_method()\fR, \fISSLv3_client_method()\fR" 4 .IX Item "SSLv3_method(), SSLv3_server_method(), SSLv3_client_method()" A \s-1TLS/SSL\s0 connection established with these methods will only understand the SSLv3 protocol. A client will send out SSLv3 client hello messages and will indicate that it only understands SSLv3. A server will only understand SSLv3 client hello messages. The SSLv3 protocol is deprecated and should not be used. .IP "\fISSLv2_method()\fR, \fISSLv2_server_method()\fR, \fISSLv2_client_method()\fR" 4 .IX Item "SSLv2_method(), SSLv2_server_method(), SSLv2_client_method()" A \s-1TLS/SSL\s0 connection established with these methods will only understand the SSLv2 protocol. A client will send out SSLv2 client hello messages and will also indicate that it only understand SSLv2. A server will only understand SSLv2 client hello messages. The SSLv2 protocol offers little to no security and should not be used. As of OpenSSL 1.0.2g, \s-1EXPORT\s0 ciphers and 56\-bit \s-1DES\s0 are no longer available with SSLv2. .IP "\fIDTLS_method()\fR, \fIDTLS_server_method()\fR, \fIDTLS_client_method()\fR" 4 .IX Item "DTLS_method(), DTLS_server_method(), DTLS_client_method()" These are the version-flexible \s-1DTLS\s0 methods. .IP "\fIDTLSv1_2_method()\fR, \fIDTLSv1_2_server_method()\fR, \fIDTLSv1_2_client_method()\fR" 4 .IX Item "DTLSv1_2_method(), DTLSv1_2_server_method(), DTLSv1_2_client_method()" These are the version-specific methods for DTLSv1.2. .IP "\fIDTLSv1_method()\fR, \fIDTLSv1_server_method()\fR, \fIDTLSv1_client_method()\fR" 4 .IX Item "DTLSv1_method(), DTLSv1_server_method(), DTLSv1_client_method()" These are the version-specific methods for DTLSv1. .PP \&\fISSL_CTX_new()\fR initializes the list of ciphers, the session cache setting, the callbacks, the keys and certificates and the options to its default values. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following return values can occur: .IP "\s-1NULL\s0" 4 .IX Item "NULL" The creation of a new \s-1SSL_CTX\s0 object failed. Check the error stack to find out the reason. .IP "Pointer to an \s-1SSL_CTX\s0 object" 4 .IX Item "Pointer to an SSL_CTX object" The return value points to an allocated \s-1SSL_CTX\s0 object. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_CTX_set_options\fR\|(3), \fISSL_CTX_clear_options\fR\|(3), \fISSL_set_options\fR\|(3), \&\fISSL_CTX_free\fR\|(3), \fISSL_accept\fR\|(3), \&\fIssl\fR\|(3), \fISSL_set_connect_state\fR\|(3) man3/DSA_generate_parameters.3000064400000020125147210533270012176 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DSA_generate_parameters 3" .TH DSA_generate_parameters 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" DSA_generate_parameters_ex, DSA_generate_parameters \- generate DSA parameters .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int DSA_generate_parameters_ex(DSA *dsa, int bits, \& const unsigned char *seed,int seed_len, \& int *counter_ret, unsigned long *h_ret, BN_GENCB *cb); .Ve .PP Deprecated: .PP .Vb 3 \& DSA *DSA_generate_parameters(int bits, unsigned char *seed, \& int seed_len, int *counter_ret, unsigned long *h_ret, \& void (*callback)(int, int, void *), void *cb_arg); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIDSA_generate_parameters_ex()\fR generates primes p and q and a generator g for use in the \s-1DSA\s0 and stores the result in \fBdsa\fR. .PP \&\fBbits\fR is the length of the prime to be generated; the \s-1DSS\s0 allows a maximum of 1024 bits. .PP If \fBseed\fR is \fB\s-1NULL\s0\fR or \fBseed_len\fR < 20, the primes will be generated at random. Otherwise, the seed is used to generate them. If the given seed does not yield a prime q, a new random seed is chosen. .PP \&\fIDSA_generate_parameters_ex()\fR places the iteration count in *\fBcounter_ret\fR and a counter used for finding a generator in *\fBh_ret\fR, unless these are \fB\s-1NULL\s0\fR. .PP A callback function may be used to provide feedback about the progress of the key generation. If \fBcb\fR is not \fB\s-1NULL\s0\fR, it will be called as shown below. For information on the \s-1BN_GENCB\s0 structure and the BN_GENCB_call function discussed below, refer to \&\fIBN_generate_prime\fR\|(3). .IP "\(bu" 4 When a candidate for q is generated, \fBBN_GENCB_call(cb, 0, m++)\fR is called (m is 0 for the first candidate). .IP "\(bu" 4 When a candidate for q has passed a test by trial division, \&\fBBN_GENCB_call(cb, 1, \-1)\fR is called. While a candidate for q is tested by Miller-Rabin primality tests, \&\fBBN_GENCB_call(cb, 1, i)\fR is called in the outer loop (once for each witness that confirms that the candidate may be prime); i is the loop counter (starting at 0). .IP "\(bu" 4 When a prime q has been found, \fBBN_GENCB_call(cb, 2, 0)\fR and \&\fBBN_GENCB_call(cb, 3, 0)\fR are called. .IP "\(bu" 4 Before a candidate for p (other than the first) is generated and tested, \&\fBBN_GENCB_call(cb, 0, counter)\fR is called. .IP "\(bu" 4 When a candidate for p has passed the test by trial division, \&\fBBN_GENCB_call(cb, 1, \-1)\fR is called. While it is tested by the Miller-Rabin primality test, \&\fBBN_GENCB_call(cb, 1, i)\fR is called in the outer loop (once for each witness that confirms that the candidate may be prime). i is the loop counter (starting at 0). .IP "\(bu" 4 When p has been found, \fBBN_GENCB_call(cb, 2, 1)\fR is called. .IP "\(bu" 4 When the generator has been found, \fBBN_GENCB_call(cb, 3, 1)\fR is called. .PP \&\fIDSA_generate_parameters()\fR (deprecated) works in much the same way as for DSA_generate_parameters_ex, except that no \fBdsa\fR parameter is passed and instead a newly allocated \fB\s-1DSA\s0\fR structure is returned. Additionally \*(L"old style\*(R" callbacks are used instead of the newer \s-1BN_GENCB\s0 based approach. Refer to \fIBN_generate_prime\fR\|(3) for further information. .SH "RETURN VALUE" .IX Header "RETURN VALUE" \&\fIDSA_generate_parameters_ex()\fR returns a 1 on success, or 0 otherwise. .PP \&\fIDSA_generate_parameters()\fR returns a pointer to the \s-1DSA\s0 structure, or \&\fB\s-1NULL\s0\fR if the parameter generation fails. .PP The error codes can be obtained by \fIERR_get_error\fR\|(3). .SH "BUGS" .IX Header "BUGS" Seed lengths > 20 are not supported. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdsa\fR\|(3), \fIERR_get_error\fR\|(3), \fIrand\fR\|(3), \&\fIDSA_free\fR\|(3), \fIBN_generate_prime\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIDSA_generate_parameters()\fR appeared in SSLeay 0.8. The \fBcb_arg\fR argument was added in SSLeay 0.9.0. In versions up to OpenSSL 0.9.4, \fBcallback(1, ...)\fR was called in the inner loop of the Miller-Rabin test whenever it reached the squaring step (the parameters to \fBcallback\fR did not reveal how many witnesses had been tested); since OpenSSL 0.9.5, \fBcallback(1, ...)\fR is called as in \fIBN_is_prime\fR\|(3), i.e. once for each witness. man3/ASN1_generate_nconf.3000064400000032666147210533270011246 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ASN1_generate_nconf 3" .TH ASN1_generate_nconf 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ASN1_generate_nconf, ASN1_generate_v3 \- ASN1 generation functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& ASN1_TYPE *ASN1_generate_nconf(char *str, CONF *nconf); \& ASN1_TYPE *ASN1_generate_v3(char *str, X509V3_CTX *cnf); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions generate the \s-1ASN1\s0 encoding of a string in an \fB\s-1ASN1_TYPE\s0\fR structure. .PP \&\fBstr\fR contains the string to encode \fBnconf\fR or \fBcnf\fR contains the optional configuration information where additional strings will be read from. \fBnconf\fR will typically come from a config file wherease \fBcnf\fR is obtained from an \fBX509V3_CTX\fR structure which will typically be used by X509 v3 certificate extension functions. \fBcnf\fR or \fBnconf\fR can be set to \fB\s-1NULL\s0\fR if no additional configuration will be used. .SH "GENERATION STRING FORMAT" .IX Header "GENERATION STRING FORMAT" The actual data encoded is determined by the string \fBstr\fR and the configuration information. The general format of the string is: .IP "\fB[modifier,]type[:value]\fR" 2 .IX Item "[modifier,]type[:value]" .PP That is zero or more comma separated modifiers followed by a type followed by an optional colon and a value. The formats of \fBtype\fR, \&\fBvalue\fR and \fBmodifier\fR are explained below. .SS "\s-1SUPPORTED TYPES\s0" .IX Subsection "SUPPORTED TYPES" The supported types are listed below. Unless otherwise specified only the \fB\s-1ASCII\s0\fR format is permissible. .IP "\fB\s-1BOOLEAN\s0\fR, \fB\s-1BOOL\s0\fR" 2 .IX Item "BOOLEAN, BOOL" This encodes a boolean type. The \fBvalue\fR string is mandatory and should be \fB\s-1TRUE\s0\fR or \fB\s-1FALSE\s0\fR. Additionally \fB\s-1TRUE\s0\fR, \fBtrue\fR, \fBY\fR, \&\fBy\fR, \fB\s-1YES\s0\fR, \fByes\fR, \fB\s-1FALSE\s0\fR, \fBfalse\fR, \fBN\fR, \fBn\fR, \fB\s-1NO\s0\fR and \fBno\fR are acceptable. .IP "\fB\s-1NULL\s0\fR" 2 .IX Item "NULL" Encode the \fB\s-1NULL\s0\fR type, the \fBvalue\fR string must not be present. .IP "\fB\s-1INTEGER\s0\fR, \fB\s-1INT\s0\fR" 2 .IX Item "INTEGER, INT" Encodes an \s-1ASN1 \s0\fB\s-1INTEGER\s0\fR type. The \fBvalue\fR string represents the value of the integer, it can be prefaced by a minus sign and is normally interpreted as a decimal value unless the prefix \fB0x\fR is included. .IP "\fB\s-1ENUMERATED\s0\fR, \fB\s-1ENUM\s0\fR" 2 .IX Item "ENUMERATED, ENUM" Encodes the \s-1ASN1 \s0\fB\s-1ENUMERATED\s0\fR type, it is otherwise identical to \&\fB\s-1INTEGER\s0\fR. .IP "\fB\s-1OBJECT\s0\fR, \fB\s-1OID\s0\fR" 2 .IX Item "OBJECT, OID" Encodes an \s-1ASN1 \s0\fB\s-1OBJECT IDENTIFIER\s0\fR, the \fBvalue\fR string can be a short name, a long name or numerical format. .IP "\fB\s-1UTCTIME\s0\fR, \fB\s-1UTC\s0\fR" 2 .IX Item "UTCTIME, UTC" Encodes an \s-1ASN1 \s0\fBUTCTime\fR structure, the value should be in the format \fB\s-1YYMMDDHHMMSSZ\s0\fR. .IP "\fB\s-1GENERALIZEDTIME\s0\fR, \fB\s-1GENTIME\s0\fR" 2 .IX Item "GENERALIZEDTIME, GENTIME" Encodes an \s-1ASN1 \s0\fBGeneralizedTime\fR structure, the value should be in the format \fB\s-1YYYYMMDDHHMMSSZ\s0\fR. .IP "\fB\s-1OCTETSTRING\s0\fR, \fB\s-1OCT\s0\fR" 2 .IX Item "OCTETSTRING, OCT" Encodes an \s-1ASN1 \s0\fB\s-1OCTET STRING\s0\fR. \fBvalue\fR represents the contents of this structure, the format strings \fB\s-1ASCII\s0\fR and \fB\s-1HEX\s0\fR can be used to specify the format of \fBvalue\fR. .IP "\fB\s-1BITSTRING\s0\fR, \fB\s-1BITSTR\s0\fR" 2 .IX Item "BITSTRING, BITSTR" Encodes an \s-1ASN1 \s0\fB\s-1BIT STRING\s0\fR. \fBvalue\fR represents the contents of this structure, the format strings \fB\s-1ASCII\s0\fR, \fB\s-1HEX\s0\fR and \fB\s-1BITLIST\s0\fR can be used to specify the format of \fBvalue\fR. .Sp If the format is anything other than \fB\s-1BITLIST\s0\fR the number of unused bits is set to zero. .IP "\fB\s-1UNIVERSALSTRING\s0\fR, \fB\s-1UNIV\s0\fR, \fB\s-1IA5\s0\fR, \fB\s-1IA5STRING\s0\fR, \fB\s-1UTF8\s0\fR, \fBUTF8String\fR, \fB\s-1BMP\s0\fR, \fB\s-1BMPSTRING\s0\fR, \fB\s-1VISIBLESTRING\s0\fR, \fB\s-1VISIBLE\s0\fR, \fB\s-1PRINTABLESTRING\s0\fR, \fB\s-1PRINTABLE\s0\fR, \fBT61\fR, \fBT61STRING\fR, \fB\s-1TELETEXSTRING\s0\fR, \fBGeneralString\fR, \fB\s-1NUMERICSTRING\s0\fR, \fB\s-1NUMERIC\s0\fR" 2 .IX Item "UNIVERSALSTRING, UNIV, IA5, IA5STRING, UTF8, UTF8String, BMP, BMPSTRING, VISIBLESTRING, VISIBLE, PRINTABLESTRING, PRINTABLE, T61, T61STRING, TELETEXSTRING, GeneralString, NUMERICSTRING, NUMERIC" These encode the corresponding string types. \fBvalue\fR represents the contents of this structure. The format can be \fB\s-1ASCII\s0\fR or \fB\s-1UTF8\s0\fR. .IP "\fB\s-1SEQUENCE\s0\fR, \fB\s-1SEQ\s0\fR, \fB\s-1SET\s0\fR" 2 .IX Item "SEQUENCE, SEQ, SET" Formats the result as an \s-1ASN1 \s0\fB\s-1SEQUENCE\s0\fR or \fB\s-1SET\s0\fR type. \fBvalue\fR should be a section name which will contain the contents. The field names in the section are ignored and the values are in the generated string format. If \fBvalue\fR is absent then an empty \s-1SEQUENCE\s0 will be encoded. .SS "\s-1MODIFIERS\s0" .IX Subsection "MODIFIERS" Modifiers affect the following structure, they can be used to add \s-1EXPLICIT\s0 or \s-1IMPLICIT\s0 tagging, add wrappers or to change the string format of the final type and value. The supported formats are documented below. .IP "\fB\s-1EXPLICIT\s0\fR, \fB\s-1EXP\s0\fR" 2 .IX Item "EXPLICIT, EXP" Add an explicit tag to the following structure. This string should be followed by a colon and the tag value to use as a decimal value. .Sp By following the number with \fBU\fR, \fBA\fR, \fBP\fR or \fBC\fR \s-1UNIVERSAL, APPLICATION, PRIVATE\s0 or \s-1CONTEXT SPECIFIC\s0 tagging can be used, the default is \s-1CONTEXT SPECIFIC.\s0 .IP "\fB\s-1IMPLICIT\s0\fR, \fB\s-1IMP\s0\fR" 2 .IX Item "IMPLICIT, IMP" This is the same as \fB\s-1EXPLICIT\s0\fR except \s-1IMPLICIT\s0 tagging is used instead. .IP "\fB\s-1OCTWRAP\s0\fR, \fB\s-1SEQWRAP\s0\fR, \fB\s-1SETWRAP\s0\fR, \fB\s-1BITWRAP\s0\fR" 2 .IX Item "OCTWRAP, SEQWRAP, SETWRAP, BITWRAP" The following structure is surrounded by an \s-1OCTET STRING,\s0 a \s-1SEQUENCE,\s0 a \s-1SET\s0 or a \s-1BIT STRING\s0 respectively. For a \s-1BIT STRING\s0 the number of unused bits is set to zero. .IP "\fB\s-1FORMAT\s0\fR" 2 .IX Item "FORMAT" This specifies the format of the ultimate value. It should be followed by a colon and one of the strings \fB\s-1ASCII\s0\fR, \fB\s-1UTF8\s0\fR, \fB\s-1HEX\s0\fR or \fB\s-1BITLIST\s0\fR. .Sp If no format specifier is included then \fB\s-1ASCII\s0\fR is used. If \fB\s-1UTF8\s0\fR is specified then the value string must be a valid \fB\s-1UTF8\s0\fR string. For \fB\s-1HEX\s0\fR the output must be a set of hex digits. \fB\s-1BITLIST\s0\fR (which is only valid for a \s-1BIT STRING\s0) is a comma separated list of the indices of the set bits, all other bits are zero. .SH "EXAMPLES" .IX Header "EXAMPLES" A simple IA5String: .PP .Vb 1 \& IA5STRING:Hello World .Ve .PP An IA5String explicitly tagged: .PP .Vb 1 \& EXPLICIT:0,IA5STRING:Hello World .Ve .PP An IA5String explicitly tagged using \s-1APPLICATION\s0 tagging: .PP .Vb 1 \& EXPLICIT:0A,IA5STRING:Hello World .Ve .PP A \s-1BITSTRING\s0 with bits 1 and 5 set and all others zero: .PP .Vb 1 \& FORMAT:BITLIST,BITSTRING:1,5 .Ve .PP A more complex example using a config file to produce a \&\s-1SEQUENCE\s0 consiting of a \s-1BOOL\s0 an \s-1OID\s0 and a UTF8String: .PP .Vb 1 \& asn1 = SEQUENCE:seq_section \& \& [seq_section] \& \& field1 = BOOLEAN:TRUE \& field2 = OID:commonName \& field3 = UTF8:Third field .Ve .PP This example produces an RSAPrivateKey structure, this is the key contained in the file client.pem in all OpenSSL distributions (note: the field names such as 'coeff' are ignored and are present just for clarity): .PP .Vb 3 \& asn1=SEQUENCE:private_key \& [private_key] \& version=INTEGER:0 \& \& n=INTEGER:0xBB6FE79432CC6EA2D8F970675A5A87BFBE1AFF0BE63E879F2AFFB93644\e \& D4D2C6D000430DEC66ABF47829E74B8C5108623A1C0EE8BE217B3AD8D36D5EB4FCA1D9 \& \& e=INTEGER:0x010001 \& \& d=INTEGER:0x6F05EAD2F27FFAEC84BEC360C4B928FD5F3A9865D0FCAAD291E2A52F4A\e \& F810DC6373278C006A0ABBA27DC8C63BF97F7E666E27C5284D7D3B1FFFE16B7A87B51D \& \& p=INTEGER:0xF3929B9435608F8A22C208D86795271D54EBDFB09DDEF539AB083DA912\e \& D4BD57 \& \& q=INTEGER:0xC50016F89DFF2561347ED1186A46E150E28BF2D0F539A1594BBD7FE467\e \& 46EC4F \& \& exp1=INTEGER:0x9E7D4326C924AFC1DEA40B45650134966D6F9DFA3A7F9D698CD4ABEA\e \& 9C0A39B9 \& \& exp2=INTEGER:0xBA84003BB95355AFB7C50DF140C60513D0BA51D637272E355E397779\e \& E7B2458F \& \& coeff=INTEGER:0x30B9E4F2AFA5AC679F920FC83F1F2DF1BAF1779CF989447FABC2F5\e \& 628657053A .Ve .PP This example is the corresponding public key in a SubjectPublicKeyInfo structure: .PP .Vb 2 \& # Start with a SEQUENCE \& asn1=SEQUENCE:pubkeyinfo \& \& # pubkeyinfo contains an algorithm identifier and the public key wrapped \& # in a BIT STRING \& [pubkeyinfo] \& algorithm=SEQUENCE:rsa_alg \& pubkey=BITWRAP,SEQUENCE:rsapubkey \& \& # algorithm ID for RSA is just an OID and a NULL \& [rsa_alg] \& algorithm=OID:rsaEncryption \& parameter=NULL \& \& # Actual public key: modulus and exponent \& [rsapubkey] \& n=INTEGER:0xBB6FE79432CC6EA2D8F970675A5A87BFBE1AFF0BE63E879F2AFFB93644\e \& D4D2C6D000430DEC66ABF47829E74B8C5108623A1C0EE8BE217B3AD8D36D5EB4FCA1D9 \& \& e=INTEGER:0x010001 .Ve .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIASN1_generate_nconf()\fR and \fIASN1_generate_v3()\fR return the encoded data as an \fB\s-1ASN1_TYPE\s0\fR structure or \fB\s-1NULL\s0\fR if an error occurred. .PP The error codes that can be obtained by \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIASN1_generate_nconf()\fR and \fIASN1_generate_v3()\fR were added to OpenSSL 0.9.8 man3/SSL_CTX_add_extra_chain_cert.3000064400000014514147210533270013050 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_add_extra_chain_cert 3" .TH SSL_CTX_add_extra_chain_cert 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_add_extra_chain_cert, SSL_CTX_clear_extra_chain_certs \- add or clear extra chain certificates .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& long SSL_CTX_add_extra_chain_cert(SSL_CTX *ctx, X509 *x509); \& long SSL_CTX_clear_extra_chain_certs(SSL_CTX *ctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_add_extra_chain_cert()\fR adds the certificate \fBx509\fR to the extra chain certificates associated with \fBctx\fR. Several certificates can be added one after another. .PP \&\fISSL_CTX_clear_extra_chain_certs()\fR clears all extra chain certificates associated with \fBctx\fR. .PP These functions are implemented as macros. .SH "NOTES" .IX Header "NOTES" When sending a certificate chain, extra chain certificates are sent in order following the end entity certificate. .PP If no chain is specified, the library will try to complete the chain from the available \s-1CA\s0 certificates in the trusted \s-1CA\s0 storage, see \&\fISSL_CTX_load_verify_locations\fR\|(3). .PP The \fBx509\fR certificate provided to \fISSL_CTX_add_extra_chain_cert()\fR will be freed by the library when the \fB\s-1SSL_CTX\s0\fR is destroyed. An application \&\fBshould not\fR free the \fBx509\fR object. .SH "RESTRICTIONS" .IX Header "RESTRICTIONS" Only one set of extra chain certificates can be specified per \s-1SSL_CTX\s0 structure. Different chains for different certificates (for example if both \&\s-1RSA\s0 and \s-1DSA\s0 certificates are specified by the same server) or different \s-1SSL\s0 structures with the same parent \s-1SSL_CTX\s0 cannot be specified using this function. For more flexibility functions such as \fISSL_add1_chain_cert()\fR should be used instead. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CTX_add_extra_chain_cert()\fR and \fISSL_CTX_clear_extra_chain_certs()\fR return 1 on success and 0 for failure. Check out the error stack to find out the reason for failure. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \&\fISSL_CTX_use_certificate\fR\|(3), \&\fISSL_CTX_set_client_cert_cb\fR\|(3), \&\fISSL_CTX_load_verify_locations\fR\|(3) \&\fISSL_CTX_set0_chain\fR\|(3) \&\fISSL_CTX_set1_chain\fR\|(3) \&\fISSL_CTX_add0_chain_cert\fR\|(3) \&\fISSL_CTX_add1_chain_cert\fR\|(3) \&\fISSL_set0_chain\fR\|(3) \&\fISSL_set1_chain\fR\|(3) \&\fISSL_add0_chain_cert\fR\|(3) \&\fISSL_add1_chain_cert\fR\|(3) \&\fISSL_CTX_build_cert_chain\fR\|(3) \&\fISSL_build_cert_chain\fR\|(3) man3/engine.3000064400000105715147210533270006750 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "engine 3" .TH engine 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" engine \- ENGINE cryptographic module support .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& ENGINE *ENGINE_get_first(void); \& ENGINE *ENGINE_get_last(void); \& ENGINE *ENGINE_get_next(ENGINE *e); \& ENGINE *ENGINE_get_prev(ENGINE *e); \& \& int ENGINE_add(ENGINE *e); \& int ENGINE_remove(ENGINE *e); \& \& ENGINE *ENGINE_by_id(const char *id); \& \& int ENGINE_init(ENGINE *e); \& int ENGINE_finish(ENGINE *e); \& \& void ENGINE_load_openssl(void); \& void ENGINE_load_dynamic(void); \& #ifndef OPENSSL_NO_STATIC_ENGINE \& void ENGINE_load_4758cca(void); \& void ENGINE_load_aep(void); \& void ENGINE_load_atalla(void); \& void ENGINE_load_chil(void); \& void ENGINE_load_cswift(void); \& void ENGINE_load_gmp(void); \& void ENGINE_load_nuron(void); \& void ENGINE_load_sureware(void); \& void ENGINE_load_ubsec(void); \& #endif \& void ENGINE_load_cryptodev(void); \& void ENGINE_load_builtin_engines(void); \& \& void ENGINE_cleanup(void); \& \& ENGINE *ENGINE_get_default_RSA(void); \& ENGINE *ENGINE_get_default_DSA(void); \& ENGINE *ENGINE_get_default_ECDH(void); \& ENGINE *ENGINE_get_default_ECDSA(void); \& ENGINE *ENGINE_get_default_DH(void); \& ENGINE *ENGINE_get_default_RAND(void); \& ENGINE *ENGINE_get_cipher_engine(int nid); \& ENGINE *ENGINE_get_digest_engine(int nid); \& \& int ENGINE_set_default_RSA(ENGINE *e); \& int ENGINE_set_default_DSA(ENGINE *e); \& int ENGINE_set_default_ECDH(ENGINE *e); \& int ENGINE_set_default_ECDSA(ENGINE *e); \& int ENGINE_set_default_DH(ENGINE *e); \& int ENGINE_set_default_RAND(ENGINE *e); \& int ENGINE_set_default_ciphers(ENGINE *e); \& int ENGINE_set_default_digests(ENGINE *e); \& int ENGINE_set_default_string(ENGINE *e, const char *list); \& \& int ENGINE_set_default(ENGINE *e, unsigned int flags); \& \& unsigned int ENGINE_get_table_flags(void); \& void ENGINE_set_table_flags(unsigned int flags); \& \& int ENGINE_register_RSA(ENGINE *e); \& void ENGINE_unregister_RSA(ENGINE *e); \& void ENGINE_register_all_RSA(void); \& int ENGINE_register_DSA(ENGINE *e); \& void ENGINE_unregister_DSA(ENGINE *e); \& void ENGINE_register_all_DSA(void); \& int ENGINE_register_ECDH(ENGINE *e); \& void ENGINE_unregister_ECDH(ENGINE *e); \& void ENGINE_register_all_ECDH(void); \& int ENGINE_register_ECDSA(ENGINE *e); \& void ENGINE_unregister_ECDSA(ENGINE *e); \& void ENGINE_register_all_ECDSA(void); \& int ENGINE_register_DH(ENGINE *e); \& void ENGINE_unregister_DH(ENGINE *e); \& void ENGINE_register_all_DH(void); \& int ENGINE_register_RAND(ENGINE *e); \& void ENGINE_unregister_RAND(ENGINE *e); \& void ENGINE_register_all_RAND(void); \& int ENGINE_register_STORE(ENGINE *e); \& void ENGINE_unregister_STORE(ENGINE *e); \& void ENGINE_register_all_STORE(void); \& int ENGINE_register_ciphers(ENGINE *e); \& void ENGINE_unregister_ciphers(ENGINE *e); \& void ENGINE_register_all_ciphers(void); \& int ENGINE_register_digests(ENGINE *e); \& void ENGINE_unregister_digests(ENGINE *e); \& void ENGINE_register_all_digests(void); \& int ENGINE_register_complete(ENGINE *e); \& int ENGINE_register_all_complete(void); \& \& int ENGINE_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f)(void)); \& int ENGINE_cmd_is_executable(ENGINE *e, int cmd); \& int ENGINE_ctrl_cmd(ENGINE *e, const char *cmd_name, \& long i, void *p, void (*f)(void), int cmd_optional); \& int ENGINE_ctrl_cmd_string(ENGINE *e, const char *cmd_name, const char *arg, \& int cmd_optional); \& \& int ENGINE_set_ex_data(ENGINE *e, int idx, void *arg); \& void *ENGINE_get_ex_data(const ENGINE *e, int idx); \& \& int ENGINE_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, \& CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); \& \& ENGINE *ENGINE_new(void); \& int ENGINE_free(ENGINE *e); \& int ENGINE_up_ref(ENGINE *e); \& \& int ENGINE_set_id(ENGINE *e, const char *id); \& int ENGINE_set_name(ENGINE *e, const char *name); \& int ENGINE_set_RSA(ENGINE *e, const RSA_METHOD *rsa_meth); \& int ENGINE_set_DSA(ENGINE *e, const DSA_METHOD *dsa_meth); \& int ENGINE_set_ECDH(ENGINE *e, const ECDH_METHOD *dh_meth); \& int ENGINE_set_ECDSA(ENGINE *e, const ECDSA_METHOD *dh_meth); \& int ENGINE_set_DH(ENGINE *e, const DH_METHOD *dh_meth); \& int ENGINE_set_RAND(ENGINE *e, const RAND_METHOD *rand_meth); \& int ENGINE_set_STORE(ENGINE *e, const STORE_METHOD *rand_meth); \& int ENGINE_set_destroy_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR destroy_f); \& int ENGINE_set_init_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR init_f); \& int ENGINE_set_finish_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR finish_f); \& int ENGINE_set_ctrl_function(ENGINE *e, ENGINE_CTRL_FUNC_PTR ctrl_f); \& int ENGINE_set_load_privkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpriv_f); \& int ENGINE_set_load_pubkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpub_f); \& int ENGINE_set_ciphers(ENGINE *e, ENGINE_CIPHERS_PTR f); \& int ENGINE_set_digests(ENGINE *e, ENGINE_DIGESTS_PTR f); \& int ENGINE_set_flags(ENGINE *e, int flags); \& int ENGINE_set_cmd_defns(ENGINE *e, const ENGINE_CMD_DEFN *defns); \& \& const char *ENGINE_get_id(const ENGINE *e); \& const char *ENGINE_get_name(const ENGINE *e); \& const RSA_METHOD *ENGINE_get_RSA(const ENGINE *e); \& const DSA_METHOD *ENGINE_get_DSA(const ENGINE *e); \& const ECDH_METHOD *ENGINE_get_ECDH(const ENGINE *e); \& const ECDSA_METHOD *ENGINE_get_ECDSA(const ENGINE *e); \& const DH_METHOD *ENGINE_get_DH(const ENGINE *e); \& const RAND_METHOD *ENGINE_get_RAND(const ENGINE *e); \& const STORE_METHOD *ENGINE_get_STORE(const ENGINE *e); \& ENGINE_GEN_INT_FUNC_PTR ENGINE_get_destroy_function(const ENGINE *e); \& ENGINE_GEN_INT_FUNC_PTR ENGINE_get_init_function(const ENGINE *e); \& ENGINE_GEN_INT_FUNC_PTR ENGINE_get_finish_function(const ENGINE *e); \& ENGINE_CTRL_FUNC_PTR ENGINE_get_ctrl_function(const ENGINE *e); \& ENGINE_LOAD_KEY_PTR ENGINE_get_load_privkey_function(const ENGINE *e); \& ENGINE_LOAD_KEY_PTR ENGINE_get_load_pubkey_function(const ENGINE *e); \& ENGINE_CIPHERS_PTR ENGINE_get_ciphers(const ENGINE *e); \& ENGINE_DIGESTS_PTR ENGINE_get_digests(const ENGINE *e); \& const EVP_CIPHER *ENGINE_get_cipher(ENGINE *e, int nid); \& const EVP_MD *ENGINE_get_digest(ENGINE *e, int nid); \& int ENGINE_get_flags(const ENGINE *e); \& const ENGINE_CMD_DEFN *ENGINE_get_cmd_defns(const ENGINE *e); \& \& EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id, \& UI_METHOD *ui_method, void *callback_data); \& EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id, \& UI_METHOD *ui_method, void *callback_data); \& \& void ENGINE_add_conf_module(void); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions create, manipulate, and use cryptographic modules in the form of \fB\s-1ENGINE\s0\fR objects. These objects act as containers for implementations of cryptographic algorithms, and support a reference-counted mechanism to allow them to be dynamically loaded in and out of the running application. .PP The cryptographic functionality that can be provided by an \fB\s-1ENGINE\s0\fR implementation includes the following abstractions; .PP .Vb 6 \& RSA_METHOD \- for providing alternative RSA implementations \& DSA_METHOD, DH_METHOD, RAND_METHOD, ECDH_METHOD, ECDSA_METHOD, \& STORE_METHOD \- similarly for other OpenSSL APIs \& EVP_CIPHER \- potentially multiple cipher algorithms (indexed by \*(Aqnid\*(Aq) \& EVP_DIGEST \- potentially multiple hash algorithms (indexed by \*(Aqnid\*(Aq) \& key\-loading \- loading public and/or private EVP_PKEY keys .Ve .SS "Reference counting and handles" .IX Subsection "Reference counting and handles" Due to the modular nature of the \s-1ENGINE API,\s0 pointers to ENGINEs need to be treated as handles \- ie. not only as pointers, but also as references to the underlying \s-1ENGINE\s0 object. Ie. one should obtain a new reference when making copies of an \s-1ENGINE\s0 pointer if the copies will be used (and released) independently. .PP \&\s-1ENGINE\s0 objects have two levels of reference-counting to match the way in which the objects are used. At the most basic level, each \s-1ENGINE\s0 pointer is inherently a \fBstructural\fR reference \- a structural reference is required to use the pointer value at all, as this kind of reference is a guarantee that the structure can not be deallocated until the reference is released. .PP However, a structural reference provides no guarantee that the \s-1ENGINE\s0 is initialised and able to use any of its cryptographic implementations. Indeed it's quite possible that most ENGINEs will not initialise at all in typical environments, as ENGINEs are typically used to support specialised hardware. To use an \s-1ENGINE\s0's functionality, you need a \&\fBfunctional\fR reference. This kind of reference can be considered a specialised form of structural reference, because each functional reference implicitly contains a structural reference as well \- however to avoid difficult-to-find programming bugs, it is recommended to treat the two kinds of reference independently. If you have a functional reference to an \&\s-1ENGINE,\s0 you have a guarantee that the \s-1ENGINE\s0 has been initialised and is ready to perform cryptographic operations, and will remain initialised until after you have released your reference. .PP \&\fIStructural references\fR .PP This basic type of reference is used for instantiating new ENGINEs, iterating across OpenSSL's internal linked-list of loaded ENGINEs, reading information about an \s-1ENGINE,\s0 etc. Essentially a structural reference is sufficient if you only need to query or manipulate the data of an \s-1ENGINE\s0 implementation rather than use its functionality. .PP The \fIENGINE_new()\fR function returns a structural reference to a new (empty) \&\s-1ENGINE\s0 object. There are other \s-1ENGINE API\s0 functions that return structural references such as; \fIENGINE_by_id()\fR, \fIENGINE_get_first()\fR, \fIENGINE_get_last()\fR, \&\fIENGINE_get_next()\fR, \fIENGINE_get_prev()\fR. All structural references should be released by a corresponding to call to the \fIENGINE_free()\fR function \- the \&\s-1ENGINE\s0 object itself will only actually be cleaned up and deallocated when the last structural reference is released. .PP It should also be noted that many \s-1ENGINE API\s0 function calls that accept a structural reference will internally obtain another reference \- typically this happens whenever the supplied \s-1ENGINE\s0 will be needed by OpenSSL after the function has returned. Eg. the function to add a new \s-1ENGINE\s0 to OpenSSL's internal list is \fIENGINE_add()\fR \- if this function returns success, then OpenSSL will have stored a new structural reference internally so the caller is still responsible for freeing their own reference with \&\fIENGINE_free()\fR when they are finished with it. In a similar way, some functions will automatically release the structural reference passed to it if part of the function's job is to do so. Eg. the \fIENGINE_get_next()\fR and \&\fIENGINE_get_prev()\fR functions are used for iterating across the internal \&\s-1ENGINE\s0 list \- they will return a new structural reference to the next (or previous) \s-1ENGINE\s0 in the list or \s-1NULL\s0 if at the end (or beginning) of the list, but in either case the structural reference passed to the function is released on behalf of the caller. .PP To clarify a particular function's handling of references, one should always consult that function's documentation \*(L"man\*(R" page, or failing that the openssl/engine.h header file includes some hints. .PP \&\fIFunctional references\fR .PP As mentioned, functional references exist when the cryptographic functionality of an \s-1ENGINE\s0 is required to be available. A functional reference can be obtained in one of two ways; from an existing structural reference to the required \s-1ENGINE,\s0 or by asking OpenSSL for the default operational \s-1ENGINE\s0 for a given cryptographic purpose. .PP To obtain a functional reference from an existing structural reference, call the \fIENGINE_init()\fR function. This returns zero if the \s-1ENGINE\s0 was not already operational and couldn't be successfully initialised (eg. lack of system drivers, no special hardware attached, etc), otherwise it will return non-zero to indicate that the \s-1ENGINE\s0 is now operational and will have allocated a new \fBfunctional\fR reference to the \s-1ENGINE.\s0 All functional references are released by calling \fIENGINE_finish()\fR (which removes the implicit structural reference as well). .PP The second way to get a functional reference is by asking OpenSSL for a default implementation for a given task, eg. by \fIENGINE_get_default_RSA()\fR, \&\fIENGINE_get_default_cipher_engine()\fR, etc. These are discussed in the next section, though they are not usually required by application programmers as they are used automatically when creating and using the relevant algorithm-specific types in OpenSSL, such as \s-1RSA, DSA, EVP_CIPHER_CTX,\s0 etc. .SS "Default implementations" .IX Subsection "Default implementations" For each supported abstraction, the \s-1ENGINE\s0 code maintains an internal table of state to control which implementations are available for a given abstraction and which should be used by default. These implementations are registered in the tables and indexed by an 'nid' value, because abstractions like \s-1EVP_CIPHER\s0 and \s-1EVP_DIGEST\s0 support many distinct algorithms and modes, and ENGINEs can support arbitrarily many of them. In the case of other abstractions like \s-1RSA, DSA,\s0 etc, there is only one \&\*(L"algorithm\*(R" so all implementations implicitly register using the same 'nid' index. .PP When a default \s-1ENGINE\s0 is requested for a given abstraction/algorithm/mode, (eg. when calling RSA_new_method(\s-1NULL\s0)), a \*(L"get_default\*(R" call will be made to the \&\s-1ENGINE\s0 subsystem to process the corresponding state table and return a functional reference to an initialised \s-1ENGINE\s0 whose implementation should be used. If no \s-1ENGINE\s0 should (or can) be used, it will return \s-1NULL\s0 and the caller will operate with a \s-1NULL ENGINE\s0 handle \- this usually equates to using the conventional software implementation. In the latter case, OpenSSL will from then on behave the way it used to before the \s-1ENGINE API\s0 existed. .PP Each state table has a flag to note whether it has processed this \&\*(L"get_default\*(R" query since the table was last modified, because to process this question it must iterate across all the registered ENGINEs in the table trying to initialise each of them in turn, in case one of them is operational. If it returns a functional reference to an \s-1ENGINE,\s0 it will also cache another reference to speed up processing future queries (without needing to iterate across the table). Likewise, it will cache a \s-1NULL\s0 response if no \s-1ENGINE\s0 was available so that future queries won't repeat the same iteration unless the state table changes. This behaviour can also be changed; if the \s-1ENGINE_TABLE_FLAG_NOINIT\s0 flag is set (using \&\fIENGINE_set_table_flags()\fR), no attempted initialisations will take place, instead the only way for the state table to return a non-NULL \s-1ENGINE\s0 to the \&\*(L"get_default\*(R" query will be if one is expressly set in the table. Eg. \&\fIENGINE_set_default_RSA()\fR does the same job as \fIENGINE_register_RSA()\fR except that it also sets the state table's cached response for the \*(L"get_default\*(R" query. In the case of abstractions like \s-1EVP_CIPHER,\s0 where implementations are indexed by 'nid', these flags and cached-responses are distinct for each 'nid' value. .SS "Application requirements" .IX Subsection "Application requirements" This section will explain the basic things an application programmer should support to make the most useful elements of the \s-1ENGINE\s0 functionality available to the user. The first thing to consider is whether the programmer wishes to make alternative \s-1ENGINE\s0 modules available to the application and user. OpenSSL maintains an internal linked list of \&\*(L"visible\*(R" ENGINEs from which it has to operate \- at start-up, this list is empty and in fact if an application does not call any \s-1ENGINE API\s0 calls and it uses static linking against openssl, then the resulting application binary will not contain any alternative \s-1ENGINE\s0 code at all. So the first consideration is whether any/all available \s-1ENGINE\s0 implementations should be made visible to OpenSSL \- this is controlled by calling the various \*(L"load\*(R" functions, eg. .PP .Vb 9 \& /* Make the "dynamic" ENGINE available */ \& void ENGINE_load_dynamic(void); \& /* Make the CryptoSwift hardware acceleration support available */ \& void ENGINE_load_cswift(void); \& /* Make support for nCipher\*(Aqs "CHIL" hardware available */ \& void ENGINE_load_chil(void); \& ... \& /* Make ALL ENGINE implementations bundled with OpenSSL available */ \& void ENGINE_load_builtin_engines(void); .Ve .PP Having called any of these functions, \s-1ENGINE\s0 objects would have been dynamically allocated and populated with these implementations and linked into OpenSSL's internal linked list. At this point it is important to mention an important \s-1API\s0 function; .PP .Vb 1 \& void ENGINE_cleanup(void); .Ve .PP If no \s-1ENGINE API\s0 functions are called at all in an application, then there are no inherent memory leaks to worry about from the \s-1ENGINE\s0 functionality, however if any ENGINEs are loaded, even if they are never registered or used, it is necessary to use the \fIENGINE_cleanup()\fR function to correspondingly cleanup before program exit, if the caller wishes to avoid memory leaks. This mechanism uses an internal callback registration table so that any \s-1ENGINE API\s0 functionality that knows it requires cleanup can register its cleanup details to be called during \fIENGINE_cleanup()\fR. This approach allows \fIENGINE_cleanup()\fR to clean up after any \s-1ENGINE\s0 functionality at all that your program uses, yet doesn't automatically create linker dependencies to all possible \s-1ENGINE\s0 functionality \- only the cleanup callbacks required by the functionality you do use will be required by the linker. .PP The fact that ENGINEs are made visible to OpenSSL (and thus are linked into the program and loaded into memory at run-time) does not mean they are \&\*(L"registered\*(R" or called into use by OpenSSL automatically \- that behaviour is something for the application to control. Some applications will want to allow the user to specify exactly which \s-1ENGINE\s0 they want used if any is to be used at all. Others may prefer to load all support and have OpenSSL automatically use at run-time any \s-1ENGINE\s0 that is able to successfully initialise \- ie. to assume that this corresponds to acceleration hardware attached to the machine or some such thing. There are probably numerous other ways in which applications may prefer to handle things, so we will simply illustrate the consequences as they apply to a couple of simple cases and leave developers to consider these and the source code to openssl's builtin utilities as guides. .PP \&\fIUsing a specific \s-1ENGINE\s0 implementation\fR .PP Here we'll assume an application has been configured by its user or admin to want to use the \*(L"\s-1ACME\*(R" ENGINE\s0 if it is available in the version of OpenSSL the application was compiled with. If it is available, it should be used by default for all \s-1RSA, DSA,\s0 and symmetric cipher operations, otherwise OpenSSL should use its builtin software as per usual. The following code illustrates how to approach this; .PP .Vb 10 \& ENGINE *e; \& const char *engine_id = "ACME"; \& ENGINE_load_builtin_engines(); \& e = ENGINE_by_id(engine_id); \& if(!e) \& /* the engine isn\*(Aqt available */ \& return; \& if(!ENGINE_init(e)) { \& /* the engine couldn\*(Aqt initialise, release \*(Aqe\*(Aq */ \& ENGINE_free(e); \& return; \& } \& if(!ENGINE_set_default_RSA(e)) \& /* This should only happen when \*(Aqe\*(Aq can\*(Aqt initialise, but the previous \& * statement suggests it did. */ \& abort(); \& ENGINE_set_default_DSA(e); \& ENGINE_set_default_ciphers(e); \& /* Release the functional reference from ENGINE_init() */ \& ENGINE_finish(e); \& /* Release the structural reference from ENGINE_by_id() */ \& ENGINE_free(e); .Ve .PP \&\fIAutomatically using builtin \s-1ENGINE\s0 implementations\fR .PP Here we'll assume we want to load and register all \s-1ENGINE\s0 implementations bundled with OpenSSL, such that for any cryptographic algorithm required by OpenSSL \- if there is an \s-1ENGINE\s0 that implements it and can be initialised, it should be used. The following code illustrates how this can work; .PP .Vb 4 \& /* Load all bundled ENGINEs into memory and make them visible */ \& ENGINE_load_builtin_engines(); \& /* Register all of them for every algorithm they collectively implement */ \& ENGINE_register_all_complete(); .Ve .PP That's all that's required. Eg. the next time OpenSSL tries to set up an \&\s-1RSA\s0 key, any bundled ENGINEs that implement \s-1RSA_METHOD\s0 will be passed to \&\fIENGINE_init()\fR and if any of those succeed, that \s-1ENGINE\s0 will be set as the default for \s-1RSA\s0 use from then on. .SS "Advanced configuration support" .IX Subsection "Advanced configuration support" There is a mechanism supported by the \s-1ENGINE\s0 framework that allows each \&\s-1ENGINE\s0 implementation to define an arbitrary set of configuration \&\*(L"commands\*(R" and expose them to OpenSSL and any applications based on OpenSSL. This mechanism is entirely based on the use of name-value pairs and assumes \s-1ASCII\s0 input (no unicode or \s-1UTF\s0 for now!), so it is ideal if applications want to provide a transparent way for users to provide arbitrary configuration \*(L"directives\*(R" directly to such ENGINEs. It is also possible for the application to dynamically interrogate the loaded \s-1ENGINE\s0 implementations for the names, descriptions, and input flags of their available \*(L"control commands\*(R", providing a more flexible configuration scheme. However, if the user is expected to know which \s-1ENGINE\s0 device he/she is using (in the case of specialised hardware, this goes without saying) then applications may not need to concern themselves with discovering the supported control commands and simply prefer to pass settings into ENGINEs exactly as they are provided by the user. .PP Before illustrating how control commands work, it is worth mentioning what they are typically used for. Broadly speaking there are two uses for control commands; the first is to provide the necessary details to the implementation (which may know nothing at all specific to the host system) so that it can be initialised for use. This could include the path to any driver or config files it needs to load, required network addresses, smart-card identifiers, passwords to initialise protected devices, logging information, etc etc. This class of commands typically needs to be passed to an \s-1ENGINE \s0\fBbefore\fR attempting to initialise it, ie. before calling \fIENGINE_init()\fR. The other class of commands consist of settings or operations that tweak certain behaviour or cause certain operations to take place, and these commands may work either before or after \fIENGINE_init()\fR, or in some cases both. \s-1ENGINE\s0 implementations should provide indications of this in the descriptions attached to builtin control commands and/or in external product documentation. .PP \&\fIIssuing control commands to an \s-1ENGINE\s0\fR .PP Let's illustrate by example; a function for which the caller supplies the name of the \s-1ENGINE\s0 it wishes to use, a table of string-pairs for use before initialisation, and another table for use after initialisation. Note that the string-pairs used for control commands consist of a command \*(L"name\*(R" followed by the command \*(L"parameter\*(R" \- the parameter could be \s-1NULL\s0 in some cases but the name can not. This function should initialise the \s-1ENGINE \&\s0(issuing the \*(L"pre\*(R" commands beforehand and the \*(L"post\*(R" commands afterwards) and set it as the default for everything except \s-1RAND\s0 and then return a boolean success or failure. .PP .Vb 10 \& int generic_load_engine_fn(const char *engine_id, \& const char **pre_cmds, int pre_num, \& const char **post_cmds, int post_num) \& { \& ENGINE *e = ENGINE_by_id(engine_id); \& if(!e) return 0; \& while(pre_num\-\-) { \& if(!ENGINE_ctrl_cmd_string(e, pre_cmds[0], pre_cmds[1], 0)) { \& fprintf(stderr, "Failed command (%s \- %s:%s)\en", engine_id, \& pre_cmds[0], pre_cmds[1] ? pre_cmds[1] : "(NULL)"); \& ENGINE_free(e); \& return 0; \& } \& pre_cmds += 2; \& } \& if(!ENGINE_init(e)) { \& fprintf(stderr, "Failed initialisation\en"); \& ENGINE_free(e); \& return 0; \& } \& /* ENGINE_init() returned a functional reference, so free the structural \& * reference from ENGINE_by_id(). */ \& ENGINE_free(e); \& while(post_num\-\-) { \& if(!ENGINE_ctrl_cmd_string(e, post_cmds[0], post_cmds[1], 0)) { \& fprintf(stderr, "Failed command (%s \- %s:%s)\en", engine_id, \& post_cmds[0], post_cmds[1] ? post_cmds[1] : "(NULL)"); \& ENGINE_finish(e); \& return 0; \& } \& post_cmds += 2; \& } \& ENGINE_set_default(e, ENGINE_METHOD_ALL & ~ENGINE_METHOD_RAND); \& /* Success */ \& return 1; \& } .Ve .PP Note that \fIENGINE_ctrl_cmd_string()\fR accepts a boolean argument that can relax the semantics of the function \- if set non-zero it will only return failure if the \s-1ENGINE\s0 supported the given command name but failed while executing it, if the \s-1ENGINE\s0 doesn't support the command name it will simply return success without doing anything. In this case we assume the user is only supplying commands specific to the given \s-1ENGINE\s0 so we set this to \&\s-1FALSE.\s0 .PP \&\fIDiscovering supported control commands\fR .PP It is possible to discover at run-time the names, numerical-ids, descriptions and input parameters of the control commands supported by an \s-1ENGINE\s0 using a structural reference. Note that some control commands are defined by OpenSSL itself and it will intercept and handle these control commands on behalf of the \&\s-1ENGINE,\s0 ie. the \s-1ENGINE\s0's \fIctrl()\fR handler is not used for the control command. openssl/engine.h defines an index, \s-1ENGINE_CMD_BASE,\s0 that all control commands implemented by ENGINEs should be numbered from. Any command value lower than this symbol is considered a \*(L"generic\*(R" command is handled directly by the OpenSSL core routines. .PP It is using these \*(L"core\*(R" control commands that one can discover the the control commands implemented by a given \s-1ENGINE,\s0 specifically the commands; .PP .Vb 9 \& #define ENGINE_HAS_CTRL_FUNCTION 10 \& #define ENGINE_CTRL_GET_FIRST_CMD_TYPE 11 \& #define ENGINE_CTRL_GET_NEXT_CMD_TYPE 12 \& #define ENGINE_CTRL_GET_CMD_FROM_NAME 13 \& #define ENGINE_CTRL_GET_NAME_LEN_FROM_CMD 14 \& #define ENGINE_CTRL_GET_NAME_FROM_CMD 15 \& #define ENGINE_CTRL_GET_DESC_LEN_FROM_CMD 16 \& #define ENGINE_CTRL_GET_DESC_FROM_CMD 17 \& #define ENGINE_CTRL_GET_CMD_FLAGS 18 .Ve .PP Whilst these commands are automatically processed by the OpenSSL framework code, they use various properties exposed by each \s-1ENGINE\s0 to process these queries. An \s-1ENGINE\s0 has 3 properties it exposes that can affect how this behaves; it can supply a \fIctrl()\fR handler, it can specify \s-1ENGINE_FLAGS_MANUAL_CMD_CTRL\s0 in the \s-1ENGINE\s0's flags, and it can expose an array of control command descriptions. If an \s-1ENGINE\s0 specifies the \s-1ENGINE_FLAGS_MANUAL_CMD_CTRL\s0 flag, then it will simply pass all these \*(L"core\*(R" control commands directly to the \s-1ENGINE\s0's \fIctrl()\fR handler (and thus, it must have supplied one), so it is up to the \s-1ENGINE\s0 to reply to these \*(L"discovery\*(R" commands itself. If that flag is not set, then the OpenSSL framework code will work with the following rules; .PP .Vb 9 \& if no ctrl() handler supplied; \& ENGINE_HAS_CTRL_FUNCTION returns FALSE (zero), \& all other commands fail. \& if a ctrl() handler was supplied but no array of control commands; \& ENGINE_HAS_CTRL_FUNCTION returns TRUE, \& all other commands fail. \& if a ctrl() handler and array of control commands was supplied; \& ENGINE_HAS_CTRL_FUNCTION returns TRUE, \& all other commands proceed processing ... .Ve .PP If the \s-1ENGINE\s0's array of control commands is empty then all other commands will fail, otherwise; \s-1ENGINE_CTRL_GET_FIRST_CMD_TYPE\s0 returns the identifier of the first command supported by the \s-1ENGINE, ENGINE_GET_NEXT_CMD_TYPE\s0 takes the identifier of a command supported by the \s-1ENGINE\s0 and returns the next command identifier or fails if there are no more, \s-1ENGINE_CMD_FROM_NAME\s0 takes a string name for a command and returns the corresponding identifier or fails if no such command name exists, and the remaining commands take a command identifier and return properties of the corresponding commands. All except \&\s-1ENGINE_CTRL_GET_FLAGS\s0 return the string length of a command name or description, or populate a supplied character buffer with a copy of the command name or description. \s-1ENGINE_CTRL_GET_FLAGS\s0 returns a bitwise-OR'd mask of the following possible values; .PP .Vb 4 \& #define ENGINE_CMD_FLAG_NUMERIC (unsigned int)0x0001 \& #define ENGINE_CMD_FLAG_STRING (unsigned int)0x0002 \& #define ENGINE_CMD_FLAG_NO_INPUT (unsigned int)0x0004 \& #define ENGINE_CMD_FLAG_INTERNAL (unsigned int)0x0008 .Ve .PP If the \s-1ENGINE_CMD_FLAG_INTERNAL\s0 flag is set, then any other flags are purely informational to the caller \- this flag will prevent the command being usable for any higher-level \s-1ENGINE\s0 functions such as \fIENGINE_ctrl_cmd_string()\fR. \&\*(L"\s-1INTERNAL\*(R"\s0 commands are not intended to be exposed to text-based configuration by applications, administrations, users, etc. These can support arbitrary operations via \fIENGINE_ctrl()\fR, including passing to and/or from the control commands data of any arbitrary type. These commands are supported in the discovery mechanisms simply to allow applications determinie if an \s-1ENGINE\s0 supports certain specific commands it might want to use (eg. application \*(L"foo\*(R" might query various ENGINEs to see if they implement \*(L"\s-1FOO_GET_VENDOR_LOGO_GIF\*(R" \-\s0 and \s-1ENGINE\s0 could therefore decide whether or not to support this \*(L"foo\*(R"\-specific extension). .SS "Future developments" .IX Subsection "Future developments" The \s-1ENGINE API\s0 and internal architecture is currently being reviewed. Slated for possible release in 0.9.8 is support for transparent loading of \*(L"dynamic\*(R" ENGINEs (built as self-contained shared-libraries). This would allow \s-1ENGINE\s0 implementations to be provided independently of OpenSSL libraries and/or OpenSSL-based applications, and would also remove any requirement for applications to explicitly use the \*(L"dynamic\*(R" \s-1ENGINE\s0 to bind to shared-library implementations. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIrsa\fR\|(3), \fIdsa\fR\|(3), \fIdh\fR\|(3), \fIrand\fR\|(3) man3/OPENSSL_config.3000064400000014414147210533270010146 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "OPENSSL_config 3" .TH OPENSSL_config 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" OPENSSL_config, OPENSSL_no_config \- simple OpenSSL configuration functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void OPENSSL_config(const char *appname); \& void OPENSSL_no_config(void); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIOPENSSL_config()\fR configures OpenSSL using the standard \fBopenssl.cnf\fR and reads from the application section \fBappname\fR. If \fBappname\fR is \s-1NULL\s0 then the default section, \fBopenssl_conf\fR, will be used. Errors are silently ignored. Multiple calls have no effect. .PP \&\fIOPENSSL_no_config()\fR disables configuration. If called before \fIOPENSSL_config()\fR no configuration takes place. .SH "NOTES" .IX Header "NOTES" The \fIOPENSSL_config()\fR function is designed to be a very simple \*(L"call it and forget it\*(R" function. It is however \fBmuch\fR better than nothing. Applications which need finer control over their configuration functionality should use the configuration functions such as \fICONF_modules_load()\fR directly. This function is deprecated and its use should be avoided. Applications should instead call \fICONF_modules_load()\fR during initialization (that is before starting any threads). .PP There are several reasons why calling the OpenSSL configuration routines is advisable. For example new \s-1ENGINE\s0 functionality was added to OpenSSL 0.9.7. In OpenSSL 0.9.7 control functions can be supported by ENGINEs, this can be used (among other things) to load dynamic ENGINEs from shared libraries (DSOs). However very few applications currently support the control interface and so very few can load and use dynamic ENGINEs. Equally in future more sophisticated ENGINEs will require certain control operations to customize them. If an application calls \fIOPENSSL_config()\fR it doesn't need to know or care about \&\s-1ENGINE\s0 control operations because they can be performed by editing a configuration file. .PP Applications should free up configuration at application closedown by calling \&\fICONF_modules_free()\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" Neither \fIOPENSSL_config()\fR nor \fIOPENSSL_no_config()\fR return a value. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIconf\fR\|(5), \fICONF_load_modules_file\fR\|(3), \&\fICONF_modules_free\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIOPENSSL_config()\fR and \fIOPENSSL_no_config()\fR first appeared in OpenSSL 0.9.7 man3/BN_zero.3000064400000013360147210533270007033 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BN_zero 3" .TH BN_zero 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BN_zero, BN_one, BN_value_one, BN_set_word, BN_get_word \- BIGNUM assignment operations .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int BN_zero(BIGNUM *a); \& int BN_one(BIGNUM *a); \& \& const BIGNUM *BN_value_one(void); \& \& int BN_set_word(BIGNUM *a, BN_ULONG w); \& BN_ULONG BN_get_word(BIGNUM *a); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fB\s-1BN_ULONG\s0\fR is a macro that will be an unsigned integral type optimied for the most efficient implementation on the local platform. .PP \&\fIBN_zero()\fR, \fIBN_one()\fR and \fIBN_set_word()\fR set \fBa\fR to the values 0, 1 and \&\fBw\fR respectively. \fIBN_zero()\fR and \fIBN_one()\fR are macros. .PP \&\fIBN_value_one()\fR returns a \fB\s-1BIGNUM\s0\fR constant of value 1. This constant is useful for use in comparisons and assignment. .PP \&\fIBN_get_word()\fR returns \fBa\fR, if it can be represented as a \fB\s-1BN_ULONG\s0\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBN_get_word()\fR returns the value \fBa\fR, or all-bits-set if \fBa\fR cannot be represented as a \fB\s-1BN_ULONG\s0\fR. .PP \&\fIBN_zero()\fR, \fIBN_one()\fR and \fIBN_set_word()\fR return 1 on success, 0 otherwise. \&\fIBN_value_one()\fR returns the constant. .SH "BUGS" .IX Header "BUGS" If a \fB\s-1BIGNUM\s0\fR is equal to the value of all-bits-set, it will collide with the error condition returned by \fIBN_get_word()\fR which uses that as an error value. .PP \&\fB\s-1BN_ULONG\s0\fR should probably be a typedef. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIbn\fR\|(3), \fIBN_bn2bin\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIBN_zero()\fR, \fIBN_one()\fR and \fIBN_set_word()\fR are available in all versions of SSLeay and OpenSSL. \fIBN_value_one()\fR and \fIBN_get_word()\fR were added in SSLeay 0.8. .PP \&\fIBN_value_one()\fR was changed to return a true const \s-1BIGNUM\s0 * in OpenSSL 0.9.7. man3/EVP_PKEY_keygen.3000064400000023305147210533270010321 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EVP_PKEY_keygen 3" .TH EVP_PKEY_keygen 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EVP_PKEY_keygen_init, EVP_PKEY_keygen, EVP_PKEY_paramgen_init, EVP_PKEY_paramgen, EVP_PKEY_CTX_set_cb, EVP_PKEY_CTX_get_cb, EVP_PKEY_CTX_get_keygen_info, EVP_PKEVP_PKEY_CTX_set_app_data, EVP_PKEY_CTX_get_app_data \- key and parameter generation functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx); \& int EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); \& int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx); \& int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **ppkey); \& \& typedef int EVP_PKEY_gen_cb(EVP_PKEY_CTX *ctx); \& \& void EVP_PKEY_CTX_set_cb(EVP_PKEY_CTX *ctx, EVP_PKEY_gen_cb *cb); \& EVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(EVP_PKEY_CTX *ctx); \& \& int EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx); \& \& void EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data); \& void *EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fIEVP_PKEY_keygen_init()\fR function initializes a public key algorithm context using key \fBpkey\fR for a key genration operation. .PP The \fIEVP_PKEY_keygen()\fR function performs a key generation operation, the generated key is written to \fBppkey\fR. .PP The functions \fIEVP_PKEY_paramgen_init()\fR and \fIEVP_PKEY_paramgen()\fR are similar except parameters are generated. .PP The function \fIEVP_PKEY_set_cb()\fR sets the key or parameter generation callback to \fBcb\fR. The function \fIEVP_PKEY_CTX_get_cb()\fR returns the key or parameter generation callback. .PP The function \fIEVP_PKEY_CTX_get_keygen_info()\fR returns parameters associated with the generation operation. If \fBidx\fR is \-1 the total number of parameters available is returned. Any non negative value returns the value of that parameter. \fIEVP_PKEY_CTX_gen_keygen_info()\fR with a non-negative value for \&\fBidx\fR should only be called within the generation callback. .PP If the callback returns 0 then the key genration operation is aborted and an error occurs. This might occur during a time consuming operation where a user clicks on a \*(L"cancel\*(R" button. .PP The functions \fIEVP_PKEY_CTX_set_app_data()\fR and \fIEVP_PKEY_CTX_get_app_data()\fR set and retrieve an opaque pointer. This can be used to set some application defined value which can be retrieved in the callback: for example a handle which is used to update a \*(L"progress dialog\*(R". .SH "NOTES" .IX Header "NOTES" After the call to \fIEVP_PKEY_keygen_init()\fR or \fIEVP_PKEY_paramgen_init()\fR algorithm specific control operations can be performed to set any appropriate parameters for the operation. .PP The functions \fIEVP_PKEY_keygen()\fR and \fIEVP_PKEY_paramgen()\fR can be called more than once on the same context if several operations are performed using the same parameters. .PP The meaning of the parameters passed to the callback will depend on the algorithm and the specifiic implementation of the algorithm. Some might not give any useful information at all during key or parameter generation. Others might not even call the callback. .PP The operation performed by key or parameter generation depends on the algorithm used. In some cases (e.g. \s-1EC\s0 with a supplied named curve) the \*(L"generation\*(R" option merely sets the appropriate fields in an \s-1EVP_PKEY\s0 structure. .PP In OpenSSL an \s-1EVP_PKEY\s0 structure containing a private key also contains the public key components and parameters (if any). An OpenSSL private key is equivalent to what some libraries call a \*(L"key pair\*(R". A private key can be used in functions which require the use of a public key or parameters. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIEVP_PKEY_keygen_init()\fR, \fIEVP_PKEY_paramgen_init()\fR, \fIEVP_PKEY_keygen()\fR and \&\fIEVP_PKEY_paramgen()\fR return 1 for success and 0 or a negative value for failure. In particular a return value of \-2 indicates the operation is not supported by the public key algorithm. .SH "EXAMPLES" .IX Header "EXAMPLES" Generate a 2048 bit \s-1RSA\s0 key: .PP .Vb 2 \& #include \& #include \& \& EVP_PKEY_CTX *ctx; \& EVP_PKEY *pkey = NULL; \& ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_RSA, NULL); \& if (!ctx) \& /* Error occurred */ \& if (EVP_PKEY_keygen_init(ctx) <= 0) \& /* Error */ \& if (EVP_PKEY_CTX_set_rsa_keygen_bits(ctx, 2048) <= 0) \& /* Error */ \& \& /* Generate key */ \& if (EVP_PKEY_keygen(ctx, &pkey) <= 0) \& /* Error */ .Ve .PP Generate a key from a set of parameters: .PP .Vb 2 \& #include \& #include \& \& EVP_PKEY_CTX *ctx; \& EVP_PKEY *pkey = NULL, *param; \& /* Assumed param is set up already */ \& ctx = EVP_PKEY_CTX_new(param); \& if (!ctx) \& /* Error occurred */ \& if (EVP_PKEY_keygen_init(ctx) <= 0) \& /* Error */ \& \& /* Generate key */ \& if (EVP_PKEY_keygen(ctx, &pkey) <= 0) \& /* Error */ .Ve .PP Example of generation callback for OpenSSL public key implementations: .PP .Vb 1 \& /* Application data is a BIO to output status to */ \& \& EVP_PKEY_CTX_set_app_data(ctx, status_bio); \& \& static int genpkey_cb(EVP_PKEY_CTX *ctx) \& { \& char c=\*(Aq*\*(Aq; \& BIO *b = EVP_PKEY_CTX_get_app_data(ctx); \& int p; \& p = EVP_PKEY_CTX_get_keygen_info(ctx, 0); \& if (p == 0) c=\*(Aq.\*(Aq; \& if (p == 1) c=\*(Aq+\*(Aq; \& if (p == 2) c=\*(Aq*\*(Aq; \& if (p == 3) c=\*(Aq\en\*(Aq; \& BIO_write(b,&c,1); \& (void)BIO_flush(b); \& return 1; \& } .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIEVP_PKEY_CTX_new\fR\|(3), \&\fIEVP_PKEY_encrypt\fR\|(3), \&\fIEVP_PKEY_decrypt\fR\|(3), \&\fIEVP_PKEY_sign\fR\|(3), \&\fIEVP_PKEY_verify\fR\|(3), \&\fIEVP_PKEY_verify_recover\fR\|(3), \&\fIEVP_PKEY_derive\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" These functions were first added to OpenSSL 1.0.0. man3/EVP_SealInit.3000064400000016344147210533270007724 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EVP_SealInit 3" .TH EVP_SealInit 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EVP_SealInit, EVP_SealUpdate, EVP_SealFinal \- EVP envelope encryption .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, \& unsigned char **ek, int *ekl, unsigned char *iv, \& EVP_PKEY **pubk, int npubk); \& int EVP_SealUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, \& int *outl, unsigned char *in, int inl); \& int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, \& int *outl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \s-1EVP\s0 envelope routines are a high level interface to envelope encryption. They generate a random key and \s-1IV \s0(if required) then \&\*(L"envelope\*(R" it by using public key encryption. Data can then be encrypted using this key. .PP \&\fIEVP_SealInit()\fR initializes a cipher context \fBctx\fR for encryption with cipher \fBtype\fR using a random secret key and \s-1IV. \s0\fBtype\fR is normally supplied by a function such as \fIEVP_aes_256_cbc()\fR. The secret key is encrypted using one or more public keys, this allows the same encrypted data to be decrypted using any of the corresponding private keys. \fBek\fR is an array of buffers where the public key encrypted secret key will be written, each buffer must contain enough room for the corresponding encrypted key: that is \&\fBek[i]\fR must have room for \fBEVP_PKEY_size(pubk[i])\fR bytes. The actual size of each encrypted secret key is written to the array \fBekl\fR. \fBpubk\fR is an array of \fBnpubk\fR public keys. .PP The \fBiv\fR parameter is a buffer where the generated \s-1IV\s0 is written to. It must contain enough room for the corresponding cipher's \s-1IV,\s0 as determined by (for example) EVP_CIPHER_iv_length(type). .PP If the cipher does not require an \s-1IV\s0 then the \fBiv\fR parameter is ignored and can be \fB\s-1NULL\s0\fR. .PP \&\fIEVP_SealUpdate()\fR and \fIEVP_SealFinal()\fR have exactly the same properties as the \fIEVP_EncryptUpdate()\fR and \fIEVP_EncryptFinal()\fR routines, as documented on the \fIEVP_EncryptInit\fR\|(3) manual page. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIEVP_SealInit()\fR returns 0 on error or \fBnpubk\fR if successful. .PP \&\fIEVP_SealUpdate()\fR and \fIEVP_SealFinal()\fR return 1 for success and 0 for failure. .SH "NOTES" .IX Header "NOTES" Because a random secret key is generated the random number generator must be seeded before calling \fIEVP_SealInit()\fR. .PP The public key must be \s-1RSA\s0 because it is the only OpenSSL public key algorithm that supports key transport. .PP Envelope encryption is the usual method of using public key encryption on large amounts of data, this is because public key encryption is slow but symmetric encryption is fast. So symmetric encryption is used for bulk encryption and the small random symmetric key used is transferred using public key encryption. .PP It is possible to call \fIEVP_SealInit()\fR twice in the same way as \&\fIEVP_EncryptInit()\fR. The first call should have \fBnpubk\fR set to 0 and (after setting any cipher parameters) it should be called again with \fBtype\fR set to \s-1NULL.\s0 .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIevp\fR\|(3), \fIrand\fR\|(3), \&\fIEVP_EncryptInit\fR\|(3), \&\fIEVP_OpenInit\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIEVP_SealFinal()\fR did not return a value before OpenSSL 0.9.7. man3/BIO_ctrl.3000064400000022664147210533270007141 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BIO_ctrl 3" .TH BIO_ctrl 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BIO_ctrl, BIO_callback_ctrl, BIO_ptr_ctrl, BIO_int_ctrl, BIO_reset, BIO_seek, BIO_tell, BIO_flush, BIO_eof, BIO_set_close, BIO_get_close, BIO_pending, BIO_wpending, BIO_ctrl_pending, BIO_ctrl_wpending, BIO_get_info_callback, BIO_set_info_callback \- BIO control operations .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& long BIO_ctrl(BIO *bp,int cmd,long larg,void *parg); \& long BIO_callback_ctrl(BIO *b, int cmd, void (*fp)(struct bio_st *, int, const char *, int, long, long)); \& char * BIO_ptr_ctrl(BIO *bp,int cmd,long larg); \& long BIO_int_ctrl(BIO *bp,int cmd,long larg,int iarg); \& \& int BIO_reset(BIO *b); \& int BIO_seek(BIO *b, int ofs); \& int BIO_tell(BIO *b); \& int BIO_flush(BIO *b); \& int BIO_eof(BIO *b); \& int BIO_set_close(BIO *b,long flag); \& int BIO_get_close(BIO *b); \& int BIO_pending(BIO *b); \& int BIO_wpending(BIO *b); \& size_t BIO_ctrl_pending(BIO *b); \& size_t BIO_ctrl_wpending(BIO *b); \& \& int BIO_get_info_callback(BIO *b,bio_info_cb **cbp); \& int BIO_set_info_callback(BIO *b,bio_info_cb *cb); \& \& typedef void bio_info_cb(BIO *b, int oper, const char *ptr, int arg1, long arg2, long arg3); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBIO_ctrl()\fR, \fIBIO_callback_ctrl()\fR, \fIBIO_ptr_ctrl()\fR and \fIBIO_int_ctrl()\fR are \s-1BIO \s0\*(L"control\*(R" operations taking arguments of various types. These functions are not normally called directly, various macros are used instead. The standard macros are described below, macros specific to a particular type of \s-1BIO\s0 are described in the specific BIOs manual page as well as any special features of the standard calls. .PP \&\fIBIO_reset()\fR typically resets a \s-1BIO\s0 to some initial state, in the case of file related BIOs for example it rewinds the file pointer to the start of the file. .PP \&\fIBIO_seek()\fR resets a file related \s-1BIO\s0's (that is file descriptor and \&\s-1FILE\s0 BIOs) file position pointer to \fBofs\fR bytes from start of file. .PP \&\fIBIO_tell()\fR returns the current file position of a file related \s-1BIO.\s0 .PP \&\fIBIO_flush()\fR normally writes out any internally buffered data, in some cases it is used to signal \s-1EOF\s0 and that no more data will be written. .PP \&\fIBIO_eof()\fR returns 1 if the \s-1BIO\s0 has read \s-1EOF,\s0 the precise meaning of \&\*(L"\s-1EOF\*(R"\s0 varies according to the \s-1BIO\s0 type. .PP \&\fIBIO_set_close()\fR sets the \s-1BIO \s0\fBb\fR close flag to \fBflag\fR. \fBflag\fR can take the value \s-1BIO_CLOSE\s0 or \s-1BIO_NOCLOSE.\s0 Typically \s-1BIO_CLOSE\s0 is used in a source/sink \s-1BIO\s0 to indicate that the underlying I/O stream should be closed when the \s-1BIO\s0 is freed. .PP \&\fIBIO_get_close()\fR returns the BIOs close flag. .PP \&\fIBIO_pending()\fR, \fIBIO_ctrl_pending()\fR, \fIBIO_wpending()\fR and \fIBIO_ctrl_wpending()\fR return the number of pending characters in the BIOs read and write buffers. Not all BIOs support these calls. \fIBIO_ctrl_pending()\fR and \fIBIO_ctrl_wpending()\fR return a size_t type and are functions, \fIBIO_pending()\fR and \fIBIO_wpending()\fR are macros which call \fIBIO_ctrl()\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBIO_reset()\fR normally returns 1 for success and 0 or \-1 for failure. File BIOs are an exception, they return 0 for success and \-1 for failure. .PP \&\fIBIO_seek()\fR and \fIBIO_tell()\fR both return the current file position on success and \-1 for failure, except file BIOs which for \fIBIO_seek()\fR always return 0 for success and \-1 for failure. .PP \&\fIBIO_flush()\fR returns 1 for success and 0 or \-1 for failure. .PP \&\fIBIO_eof()\fR returns 1 if \s-1EOF\s0 has been reached 0 otherwise. .PP \&\fIBIO_set_close()\fR always returns 1. .PP \&\fIBIO_get_close()\fR returns the close flag value: \s-1BIO_CLOSE\s0 or \s-1BIO_NOCLOSE.\s0 .PP \&\fIBIO_pending()\fR, \fIBIO_ctrl_pending()\fR, \fIBIO_wpending()\fR and \fIBIO_ctrl_wpending()\fR return the amount of pending data. .SH "NOTES" .IX Header "NOTES" \&\fIBIO_flush()\fR, because it can write data may return 0 or \-1 indicating that the call should be retried later in a similar manner to \fIBIO_write()\fR. The \fIBIO_should_retry()\fR call should be used and appropriate action taken is the call fails. .PP The return values of \fIBIO_pending()\fR and \fIBIO_wpending()\fR may not reliably determine the amount of pending data in all cases. For example in the case of a file \s-1BIO\s0 some data may be available in the \s-1FILE\s0 structures internal buffers but it is not possible to determine this in a portably way. For other types of \s-1BIO\s0 they may not be supported. .PP Filter BIOs if they do not internally handle a particular \fIBIO_ctrl()\fR operation usually pass the operation to the next \s-1BIO\s0 in the chain. This often means there is no need to locate the required \s-1BIO\s0 for a particular operation, it can be called on a chain and it will be automatically passed to the relevant \s-1BIO.\s0 However this can cause unexpected results: for example no current filter BIOs implement \&\fIBIO_seek()\fR, but this may still succeed if the chain ends in a \s-1FILE\s0 or file descriptor \s-1BIO.\s0 .PP Source/sink BIOs return an 0 if they do not recognize the \fIBIO_ctrl()\fR operation. .SH "BUGS" .IX Header "BUGS" Some of the return values are ambiguous and care should be taken. In particular a return value of 0 can be returned if an operation is not supported, if an error occurred, if \s-1EOF\s0 has not been reached and in the case of \fIBIO_seek()\fR on a file \s-1BIO\s0 for a successful operation. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\s-1TBA\s0 man3/SSL_CTX_get_ex_new_index.3000064400000013333147210533270012247 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_get_ex_new_index 3" .TH SSL_CTX_get_ex_new_index 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_get_ex_new_index, SSL_CTX_set_ex_data, SSL_CTX_get_ex_data \- internal application specific data functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_CTX_get_ex_new_index(long argl, void *argp, \& CRYPTO_EX_new *new_func, \& CRYPTO_EX_dup *dup_func, \& CRYPTO_EX_free *free_func); \& \& int SSL_CTX_set_ex_data(SSL_CTX *ctx, int idx, void *arg); \& \& void *SSL_CTX_get_ex_data(const SSL_CTX *ctx, int idx); \& \& typedef int new_func(void *parent, void *ptr, CRYPTO_EX_DATA *ad, \& int idx, long argl, void *argp); \& typedef void free_func(void *parent, void *ptr, CRYPTO_EX_DATA *ad, \& int idx, long argl, void *argp); \& typedef int dup_func(CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from, void *from_d, \& int idx, long argl, void *argp); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Several OpenSSL structures can have application specific data attached to them. These functions are used internally by OpenSSL to manipulate application specific data attached to a specific structure. .PP \&\fISSL_CTX_get_ex_new_index()\fR is used to register a new index for application specific data. .PP \&\fISSL_CTX_set_ex_data()\fR is used to store application data at \fBarg\fR for \fBidx\fR into the \fBctx\fR object. .PP \&\fISSL_CTX_get_ex_data()\fR is used to retrieve the information for \fBidx\fR from \&\fBctx\fR. .PP A detailed description for the \fB*\f(BI_get_ex_new_index()\fB\fR functionality can be found in \fIRSA_get_ex_new_index\fR\|(3). The \fB*\f(BI_get_ex_data()\fB\fR and \fB*\f(BI_set_ex_data()\fB\fR functionality is described in \&\fICRYPTO_set_ex_data\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \&\fIRSA_get_ex_new_index\fR\|(3), \&\fICRYPTO_set_ex_data\fR\|(3) man3/ecdsa.3000064400000027240147210533270006556 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ecdsa 3" .TH ecdsa 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ECDSA_SIG_new, ECDSA_SIG_free, i2d_ECDSA_SIG, d2i_ECDSA_SIG, ECDSA_size, ECDSA_sign_setup, ECDSA_sign, ECDSA_sign_ex, ECDSA_verify, ECDSA_do_sign, ECDSA_do_sign_ex, ECDSA_do_verify \- Elliptic Curve Digital Signature Algorithm .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& ECDSA_SIG* ECDSA_SIG_new(void); \& void ECDSA_SIG_free(ECDSA_SIG *sig); \& int i2d_ECDSA_SIG(const ECDSA_SIG *sig, unsigned char **pp); \& ECDSA_SIG* d2i_ECDSA_SIG(ECDSA_SIG **sig, const unsigned char **pp, \& long len); \& \& ECDSA_SIG* ECDSA_do_sign(const unsigned char *dgst, int dgst_len, \& EC_KEY *eckey); \& ECDSA_SIG* ECDSA_do_sign_ex(const unsigned char *dgst, int dgstlen, \& const BIGNUM *kinv, const BIGNUM *rp, \& EC_KEY *eckey); \& int ECDSA_do_verify(const unsigned char *dgst, int dgst_len, \& const ECDSA_SIG *sig, EC_KEY* eckey); \& int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx, \& BIGNUM **kinv, BIGNUM **rp); \& int ECDSA_sign(int type, const unsigned char *dgst, \& int dgstlen, unsigned char *sig, \& unsigned int *siglen, EC_KEY *eckey); \& int ECDSA_sign_ex(int type, const unsigned char *dgst, \& int dgstlen, unsigned char *sig, \& unsigned int *siglen, const BIGNUM *kinv, \& const BIGNUM *rp, EC_KEY *eckey); \& int ECDSA_verify(int type, const unsigned char *dgst, \& int dgstlen, const unsigned char *sig, \& int siglen, EC_KEY *eckey); \& int ECDSA_size(const EC_KEY *eckey); \& \& const ECDSA_METHOD* ECDSA_OpenSSL(void); \& void ECDSA_set_default_method(const ECDSA_METHOD *meth); \& const ECDSA_METHOD* ECDSA_get_default_method(void); \& int ECDSA_set_method(EC_KEY *eckey,const ECDSA_METHOD *meth); \& \& int ECDSA_get_ex_new_index(long argl, void *argp, \& CRYPTO_EX_new *new_func, \& CRYPTO_EX_dup *dup_func, \& CRYPTO_EX_free *free_func); \& int ECDSA_set_ex_data(EC_KEY *d, int idx, void *arg); \& void* ECDSA_get_ex_data(EC_KEY *d, int idx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fB\s-1ECDSA_SIG\s0\fR structure consists of two BIGNUMs for the r and s value of a \s-1ECDSA\s0 signature (see X9.62 or \s-1FIPS 186\-2\s0). .PP .Vb 5 \& struct \& { \& BIGNUM *r; \& BIGNUM *s; \& } ECDSA_SIG; .Ve .PP \&\fIECDSA_SIG_new()\fR allocates a new \fB\s-1ECDSA_SIG\s0\fR structure (note: this function also allocates the BIGNUMs) and initialize it. .PP \&\fIECDSA_SIG_free()\fR frees the \fB\s-1ECDSA_SIG\s0\fR structure \fBsig\fR. .PP \&\fIi2d_ECDSA_SIG()\fR creates the \s-1DER\s0 encoding of the \s-1ECDSA\s0 signature \&\fBsig\fR and writes the encoded signature to \fB*pp\fR (note: if \fBpp\fR is \s-1NULL \s0\fBi2d_ECDSA_SIG\fR returns the expected length in bytes of the \s-1DER\s0 encoded signature). \fBi2d_ECDSA_SIG\fR returns the length of the \s-1DER\s0 encoded signature (or 0 on error). .PP \&\fId2i_ECDSA_SIG()\fR decodes a \s-1DER\s0 encoded \s-1ECDSA\s0 signature and returns the decoded signature in a newly allocated \fB\s-1ECDSA_SIG\s0\fR structure. \&\fB*sig\fR points to the buffer containing the \s-1DER\s0 encoded signature of size \fBlen\fR. .PP \&\fIECDSA_size()\fR returns the maximum length of a \s-1DER\s0 encoded \&\s-1ECDSA\s0 signature created with the private \s-1EC\s0 key \fBeckey\fR. .PP \&\fIECDSA_sign_setup()\fR may be used to precompute parts of the signing operation. \fBeckey\fR is the private \s-1EC\s0 key and \fBctx\fR is a pointer to \fB\s-1BN_CTX\s0\fR structure (or \s-1NULL\s0). The precomputed values or returned in \fBkinv\fR and \fBrp\fR and can be used in a later call to \fBECDSA_sign_ex\fR or \fBECDSA_do_sign_ex\fR. .PP \&\fIECDSA_sign()\fR is wrapper function for ECDSA_sign_ex with \fBkinv\fR and \fBrp\fR set to \s-1NULL.\s0 .PP \&\fIECDSA_sign_ex()\fR computes a digital signature of the \fBdgstlen\fR bytes hash value \fBdgst\fR using the private \s-1EC\s0 key \fBeckey\fR and the optional pre-computed values \fBkinv\fR and \fBrp\fR. The \s-1DER\s0 encoded signatures is stored in \fBsig\fR and it's length is returned in \fBsig_len\fR. Note: \fBsig\fR must point to \fBECDSA_size\fR bytes of memory. The parameter \fBtype\fR is ignored. .PP \&\fIECDSA_verify()\fR verifies that the signature in \fBsig\fR of size \&\fBsiglen\fR is a valid \s-1ECDSA\s0 signature of the hash value \&\fBdgst\fR of size \fBdgstlen\fR using the public key \fBeckey\fR. The parameter \fBtype\fR is ignored. .PP \&\fIECDSA_do_sign()\fR is wrapper function for ECDSA_do_sign_ex with \fBkinv\fR and \fBrp\fR set to \s-1NULL.\s0 .PP \&\fIECDSA_do_sign_ex()\fR computes a digital signature of the \fBdgst_len\fR bytes hash value \fBdgst\fR using the private key \fBeckey\fR and the optional pre-computed values \fBkinv\fR and \fBrp\fR. The signature is returned in a newly allocated \fB\s-1ECDSA_SIG\s0\fR structure (or \s-1NULL\s0 on error). .PP \&\fIECDSA_do_verify()\fR verifies that the signature \fBsig\fR is a valid \&\s-1ECDSA\s0 signature of the hash value \fBdgst\fR of size \fBdgst_len\fR using the public key \fBeckey\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIECDSA_SIG_new()\fR returns \s-1NULL\s0 if the allocation fails. .PP \&\fIECDSA_size()\fR returns the maximum length signature or 0 on error. .PP \&\fIECDSA_sign_setup()\fR and \fIECDSA_sign()\fR return 1 if successful or 0 on error. .PP \&\fIECDSA_verify()\fR and \fIECDSA_do_verify()\fR return 1 for a valid signature, 0 for an invalid signature and \-1 on error. The error codes can be obtained by \fIERR_get_error\fR\|(3). .SH "EXAMPLES" .IX Header "EXAMPLES" Creating a \s-1ECDSA\s0 signature of given \s-1SHA\-1\s0 hash value using the named curve secp192k1. .PP First step: create a \s-1EC_KEY\s0 object (note: this part is \fBnot\fR \s-1ECDSA\s0 specific) .PP .Vb 12 \& int ret; \& ECDSA_SIG *sig; \& EC_KEY *eckey; \& eckey = EC_KEY_new_by_curve_name(NID_secp192k1); \& if (eckey == NULL) \& { \& /* error */ \& } \& if (!EC_KEY_generate_key(eckey)) \& { \& /* error */ \& } .Ve .PP Second step: compute the \s-1ECDSA\s0 signature of a \s-1SHA\-1\s0 hash value using \fBECDSA_do_sign\fR .PP .Vb 5 \& sig = ECDSA_do_sign(digest, 20, eckey); \& if (sig == NULL) \& { \& /* error */ \& } .Ve .PP or using \fBECDSA_sign\fR .PP .Vb 9 \& unsigned char *buffer, *pp; \& int buf_len; \& buf_len = ECDSA_size(eckey); \& buffer = OPENSSL_malloc(buf_len); \& pp = buffer; \& if (!ECDSA_sign(0, dgst, dgstlen, pp, &buf_len, eckey); \& { \& /* error */ \& } .Ve .PP Third step: verify the created \s-1ECDSA\s0 signature using \fBECDSA_do_verify\fR .PP .Vb 1 \& ret = ECDSA_do_verify(digest, 20, sig, eckey); .Ve .PP or using \fBECDSA_verify\fR .PP .Vb 1 \& ret = ECDSA_verify(0, digest, 20, buffer, buf_len, eckey); .Ve .PP and finally evaluate the return value: .PP .Vb 12 \& if (ret == \-1) \& { \& /* error */ \& } \& else if (ret == 0) \& { \& /* incorrect signature */ \& } \& else /* ret == 1 */ \& { \& /* signature ok */ \& } .Ve .SH "CONFORMING TO" .IX Header "CONFORMING TO" \&\s-1ANSI X9.62, US\s0 Federal Information Processing Standard \s-1FIPS 186\-2 \&\s0(Digital Signature Standard, \s-1DSS\s0) .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdsa\fR\|(3), \fIrsa\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" The ecdsa implementation was first introduced in OpenSSL 0.9.8 .SH "AUTHOR" .IX Header "AUTHOR" Nils Larsch for the OpenSSL project (http://www.openssl.org). man3/OBJ_nid2obj.3000064400000024773147210533270007530 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "OBJ_nid2obj 3" .TH OBJ_nid2obj 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" OBJ_nid2obj, OBJ_nid2ln, OBJ_nid2sn, OBJ_obj2nid, OBJ_txt2nid, OBJ_ln2nid, OBJ_sn2nid, OBJ_cmp, OBJ_dup, OBJ_txt2obj, OBJ_obj2txt, OBJ_create, OBJ_cleanup \- ASN1 object utility functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& ASN1_OBJECT * OBJ_nid2obj(int n); \& const char * OBJ_nid2ln(int n); \& const char * OBJ_nid2sn(int n); \& \& int OBJ_obj2nid(const ASN1_OBJECT *o); \& int OBJ_ln2nid(const char *ln); \& int OBJ_sn2nid(const char *sn); \& \& int OBJ_txt2nid(const char *s); \& \& ASN1_OBJECT * OBJ_txt2obj(const char *s, int no_name); \& int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name); \& \& int OBJ_cmp(const ASN1_OBJECT *a,const ASN1_OBJECT *b); \& ASN1_OBJECT * OBJ_dup(const ASN1_OBJECT *o); \& \& int OBJ_create(const char *oid,const char *sn,const char *ln); \& void OBJ_cleanup(void); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \s-1ASN1\s0 object utility functions process \s-1ASN1_OBJECT\s0 structures which are a representation of the \s-1ASN1 OBJECT IDENTIFIER \s0(\s-1OID\s0) type. For convenience, OIDs are usually represented in source code as numeric identifiers, or \fB\s-1NID\s0\fRs. OpenSSL has an internal table of OIDs that are generated when the library is built, and their corresponding NIDs are available as defined constants. For the functions below, application code should treat all returned values \*(-- OIDs, NIDs, or names \*(-- as constants. .PP \&\fIOBJ_nid2obj()\fR, \fIOBJ_nid2ln()\fR and \fIOBJ_nid2sn()\fR convert the \s-1NID \s0\fBn\fR to an \s-1ASN1_OBJECT\s0 structure, its long name and its short name respectively, or \fB\s-1NULL\s0\fR if an error occurred. .PP \&\fIOBJ_obj2nid()\fR, \fIOBJ_ln2nid()\fR, \fIOBJ_sn2nid()\fR return the corresponding \s-1NID\s0 for the object \fBo\fR, the long name or the short name respectively or NID_undef if an error occurred. .PP \&\fIOBJ_txt2nid()\fR returns \s-1NID\s0 corresponding to text string . \fBs\fR can be a long name, a short name or the numerical respresentation of an object. .PP \&\fIOBJ_txt2obj()\fR converts the text string \fBs\fR into an \s-1ASN1_OBJECT\s0 structure. If \fBno_name\fR is 0 then long names and short names will be interpreted as well as numerical forms. If \fBno_name\fR is 1 only the numerical form is acceptable. .PP \&\fIOBJ_obj2txt()\fR converts the \fB\s-1ASN1_OBJECT\s0\fR \fBa\fR into a textual representation. The representation is written as a null terminated string to \fBbuf\fR at most \fBbuf_len\fR bytes are written, truncating the result if necessary. The total amount of space required is returned. If \fBno_name\fR is 0 then if the object has a long or short name then that will be used, otherwise the numerical form will be used. If \fBno_name\fR is 1 then the numerical form will always be used. .PP \&\fIOBJ_cmp()\fR compares \fBa\fR to \fBb\fR. If the two are identical 0 is returned. .PP \&\fIOBJ_dup()\fR returns a copy of \fBo\fR. .PP \&\fIOBJ_create()\fR adds a new object to the internal table. \fBoid\fR is the numerical form of the object, \fBsn\fR the short name and \fBln\fR the long name. A new \s-1NID\s0 is returned for the created object. .PP \&\fIOBJ_cleanup()\fR cleans up OpenSSLs internal object table: this should be called before an application exits if any new objects were added using \fIOBJ_create()\fR. .SH "NOTES" .IX Header "NOTES" Objects in OpenSSL can have a short name, a long name and a numerical identifier (\s-1NID\s0) associated with them. A standard set of objects is represented in an internal table. The appropriate values are defined in the header file \fBobjects.h\fR. .PP For example the \s-1OID\s0 for commonName has the following definitions: .PP .Vb 3 \& #define SN_commonName "CN" \& #define LN_commonName "commonName" \& #define NID_commonName 13 .Ve .PP New objects can be added by calling \fIOBJ_create()\fR. .PP Table objects have certain advantages over other objects: for example their NIDs can be used in a C language switch statement. They are also static constant structures which are shared: that is there is only a single constant structure for each table object. .PP Objects which are not in the table have the \s-1NID\s0 value NID_undef. .PP Objects do not need to be in the internal tables to be processed, the functions \fIOBJ_txt2obj()\fR and \fIOBJ_obj2txt()\fR can process the numerical form of an \s-1OID.\s0 .PP Some objects are used to represent algorithms which do not have a corresponding \s-1ASN.1 OBJECT IDENTIFIER\s0 encoding (for example no \s-1OID\s0 currently exists for a particular algorithm). As a result they \fBcannot\fR be encoded or decoded as part of \s-1ASN.1\s0 structures. Applications can determine if there is a corresponding \s-1OBJECT IDENTIFIER\s0 by checking \fIOBJ_length()\fR is not zero. .PP These functions cannot return \fBconst\fR because an \fB\s-1ASN1_OBJECT\s0\fR can represent both an internal, constant, \s-1OID\s0 and a dynamically-created one. The latter cannot be constant because it needs to be freed after use. .SH "EXAMPLES" .IX Header "EXAMPLES" Create an object for \fBcommonName\fR: .PP .Vb 2 \& ASN1_OBJECT *o; \& o = OBJ_nid2obj(NID_commonName); .Ve .PP Check if an object is \fBcommonName\fR .PP .Vb 2 \& if (OBJ_obj2nid(obj) == NID_commonName) \& /* Do something */ .Ve .PP Create a new \s-1NID\s0 and initialize an object from it: .PP .Vb 2 \& int new_nid; \& ASN1_OBJECT *obj; \& \& new_nid = OBJ_create("1.2.3.4", "NewOID", "New Object Identifier"); \& \& obj = OBJ_nid2obj(new_nid); .Ve .PP Create a new object directly: .PP .Vb 1 \& obj = OBJ_txt2obj("1.2.3.4", 1); .Ve .SH "BUGS" .IX Header "BUGS" \&\fIOBJ_obj2txt()\fR is awkward and messy to use: it doesn't follow the convention of other OpenSSL functions where the buffer can be set to \fB\s-1NULL\s0\fR to determine the amount of data that should be written. Instead \fBbuf\fR must point to a valid buffer and \fBbuf_len\fR should be set to a positive value. A buffer length of 80 should be more than enough to handle any \s-1OID\s0 encountered in practice. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIOBJ_nid2obj()\fR returns an \fB\s-1ASN1_OBJECT\s0\fR structure or \fB\s-1NULL\s0\fR is an error occurred. It returns a pointer to an internal table and does not allocate memory; \fIASN1_OBJECT_free()\fR will have no effect. .PP \&\fIOBJ_nid2ln()\fR and \fIOBJ_nid2sn()\fR returns a valid string or \fB\s-1NULL\s0\fR on error. .PP \&\fIOBJ_obj2nid()\fR, \fIOBJ_ln2nid()\fR, \fIOBJ_sn2nid()\fR and \fIOBJ_txt2nid()\fR return a \s-1NID\s0 or \fBNID_undef\fR on error. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1TBA\s0 man3/EVP_VerifyInit.3000064400000016742147210533270010306 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EVP_VerifyInit 3" .TH EVP_VerifyInit 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EVP_VerifyInit, EVP_VerifyUpdate, EVP_VerifyFinal \- EVP signature verification functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int EVP_VerifyInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl); \& int EVP_VerifyUpdate(EVP_MD_CTX *ctx, const void *d, unsigned int cnt); \& int EVP_VerifyFinal(EVP_MD_CTX *ctx,unsigned char *sigbuf, unsigned int siglen,EVP_PKEY *pkey); \& \& int EVP_VerifyInit(EVP_MD_CTX *ctx, const EVP_MD *type); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \s-1EVP\s0 signature verification routines are a high level interface to digital signatures. .PP \&\fIEVP_VerifyInit_ex()\fR sets up verification context \fBctx\fR to use digest \&\fBtype\fR from \s-1ENGINE \s0\fBimpl\fR. \fBctx\fR must be initialized by calling \&\fIEVP_MD_CTX_init()\fR before calling this function. .PP \&\fIEVP_VerifyUpdate()\fR hashes \fBcnt\fR bytes of data at \fBd\fR into the verification context \fBctx\fR. This function can be called several times on the same \fBctx\fR to include additional data. .PP \&\fIEVP_VerifyFinal()\fR verifies the data in \fBctx\fR using the public key \fBpkey\fR and against the \fBsiglen\fR bytes at \fBsigbuf\fR. .PP \&\fIEVP_VerifyInit()\fR initializes verification context \fBctx\fR to use the default implementation of digest \fBtype\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIEVP_VerifyInit_ex()\fR and \fIEVP_VerifyUpdate()\fR return 1 for success and 0 for failure. .PP \&\fIEVP_VerifyFinal()\fR returns 1 for a correct signature, 0 for failure and \-1 if some other error occurred. .PP The error codes can be obtained by \fIERR_get_error\fR\|(3). .SH "NOTES" .IX Header "NOTES" The \fB\s-1EVP\s0\fR interface to digital signatures should almost always be used in preference to the low level interfaces. This is because the code then becomes transparent to the algorithm used and much more flexible. .PP Due to the link between message digests and public key algorithms the correct digest algorithm must be used with the correct public key type. A list of algorithms and associated public key algorithms appears in \&\fIEVP_DigestInit\fR\|(3). .PP The call to \fIEVP_VerifyFinal()\fR internally finalizes a copy of the digest context. This means that calls to \fIEVP_VerifyUpdate()\fR and \fIEVP_VerifyFinal()\fR can be called later to digest and verify additional data. .PP Since only a copy of the digest context is ever finalized the context must be cleaned up after use by calling \fIEVP_MD_CTX_cleanup()\fR or a memory leak will occur. .SH "BUGS" .IX Header "BUGS" Older versions of this documentation wrongly stated that calls to \&\fIEVP_VerifyUpdate()\fR could not be made after calling \fIEVP_VerifyFinal()\fR. .PP Since the public key is passed in the call to \fIEVP_SignFinal()\fR any error relating to the private key (for example an unsuitable key and digest combination) will not be indicated until after potentially large amounts of data have been passed through \fIEVP_SignUpdate()\fR. .PP It is not possible to change the signing parameters using these function. .PP The previous two bugs are fixed in the newer EVP_VerifyDigest*() function. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIevp\fR\|(3), \&\fIEVP_SignInit\fR\|(3), \&\fIEVP_DigestInit\fR\|(3), \fIerr\fR\|(3), \&\fIevp\fR\|(3), \fIhmac\fR\|(3), \fImd2\fR\|(3), \&\fImd5\fR\|(3), \fImdc2\fR\|(3), \fIripemd\fR\|(3), \&\fIsha\fR\|(3), \fIdgst\fR\|(1) .SH "HISTORY" .IX Header "HISTORY" \&\fIEVP_VerifyInit()\fR, \fIEVP_VerifyUpdate()\fR and \fIEVP_VerifyFinal()\fR are available in all versions of SSLeay and OpenSSL. .PP \&\fIEVP_VerifyInit_ex()\fR was added in OpenSSL 0.9.7 man3/SSL_CTX_ctrl.3000064400000011670147210533270007702 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_ctrl 3" .TH SSL_CTX_ctrl 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_ctrl, SSL_CTX_callback_ctrl, SSL_ctrl, SSL_callback_ctrl \- internal handling functions for SSL_CTX and SSL objects .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& long SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg); \& long SSL_CTX_callback_ctrl(SSL_CTX *, int cmd, void (*fp)()); \& \& long SSL_ctrl(SSL *ssl, int cmd, long larg, void *parg); \& long SSL_callback_ctrl(SSL *, int cmd, void (*fp)()); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The SSL_*\fI_ctrl()\fR family of functions is used to manipulate settings of the \s-1SSL_CTX\s0 and \s-1SSL\s0 objects. Depending on the command \fBcmd\fR the arguments \&\fBlarg\fR, \fBparg\fR, or \fBfp\fR are evaluated. These functions should never be called directly. All functionalities needed are made available via other functions or macros. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The return values of the SSL*\fI_ctrl()\fR functions depend on the command supplied via the \fBcmd\fR parameter. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3) man3/lhash.3000064400000044544147210533270006604 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "lhash 3" .TH lhash 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" lh_new, lh_free, lh_insert, lh_delete, lh_retrieve, lh_doall, lh_doall_arg, lh_error \- dynamic hash table .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& DECLARE_LHASH_OF(); \& \& LHASH *lh__new(); \& void lh__free(LHASH_OF( *table); \& \& *lh__insert(LHASH_OF( *table, *data); \& *lh__delete(LHASH_OF( *table, *data); \& *lh_retrieve(LHASH_OF *table, *data); \& \& void lh__doall(LHASH_OF( *table, LHASH_DOALL_FN_TYPE func); \& void lh__doall_arg(LHASH_OF( *table, LHASH_DOALL_ARG_FN_TYPE func, \& , *arg); \& \& int lh__error(LHASH_OF( *table); \& \& typedef int (*LHASH_COMP_FN_TYPE)(const void *, const void *); \& typedef unsigned long (*LHASH_HASH_FN_TYPE)(const void *); \& typedef void (*LHASH_DOALL_FN_TYPE)(const void *); \& typedef void (*LHASH_DOALL_ARG_FN_TYPE)(const void *, const void *); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This library implements type-checked dynamic hash tables. The hash table entries can be arbitrary structures. Usually they consist of key and value fields. .PP lh_\fI_new()\fR creates a new \fB\s-1LHASH_OF\s0( structure to store arbitrary data entries, and provides the 'hash' and 'compare' callbacks to be used in organising the table's entries. The \fBhash\fR callback takes a pointer to a table entry as its argument and returns an unsigned long hash value for its key field. The hash value is normally truncated to a power of 2, so make sure that your hash function returns well mixed low order bits. The \fBcompare\fR callback takes two arguments (pointers to two hash table entries), and returns 0 if their keys are equal, non-zero otherwise. If your hash table will contain items of some particular type and the \fBhash\fR and \&\fBcompare\fR callbacks hash/compare these types, then the \&\fB\s-1DECLARE_LHASH_HASH_FN\s0\fR and \fB\s-1IMPLEMENT_LHASH_COMP_FN\s0\fR macros can be used to create callback wrappers of the prototypes required by lh_\fI_new()\fR. These provide per-variable casts before calling the type-specific callbacks written by the application author. These macros, as well as those used for the \*(L"doall\*(R" callbacks, are defined as; .PP .Vb 7 \& #define DECLARE_LHASH_HASH_FN(name, o_type) \e \& unsigned long name##_LHASH_HASH(const void *); \& #define IMPLEMENT_LHASH_HASH_FN(name, o_type) \e \& unsigned long name##_LHASH_HASH(const void *arg) { \e \& const o_type *a = arg; \e \& return name##_hash(a); } \& #define LHASH_HASH_FN(name) name##_LHASH_HASH \& \& #define DECLARE_LHASH_COMP_FN(name, o_type) \e \& int name##_LHASH_COMP(const void *, const void *); \& #define IMPLEMENT_LHASH_COMP_FN(name, o_type) \e \& int name##_LHASH_COMP(const void *arg1, const void *arg2) { \e \& const o_type *a = arg1; \e \& const o_type *b = arg2; \e \& return name##_cmp(a,b); } \& #define LHASH_COMP_FN(name) name##_LHASH_COMP \& \& #define DECLARE_LHASH_DOALL_FN(name, o_type) \e \& void name##_LHASH_DOALL(void *); \& #define IMPLEMENT_LHASH_DOALL_FN(name, o_type) \e \& void name##_LHASH_DOALL(void *arg) { \e \& o_type *a = arg; \e \& name##_doall(a); } \& #define LHASH_DOALL_FN(name) name##_LHASH_DOALL \& \& #define DECLARE_LHASH_DOALL_ARG_FN(name, o_type, a_type) \e \& void name##_LHASH_DOALL_ARG(void *, void *); \& #define IMPLEMENT_LHASH_DOALL_ARG_FN(name, o_type, a_type) \e \& void name##_LHASH_DOALL_ARG(void *arg1, void *arg2) { \e \& o_type *a = arg1; \e \& a_type *b = arg2; \e \& name##_doall_arg(a, b); } \& #define LHASH_DOALL_ARG_FN(name) name##_LHASH_DOALL_ARG \& \& An example of a hash table storing (pointers to) structures of type \*(AqSTUFF\*(Aq \& could be defined as follows; \& \& /* Calculates the hash value of \*(Aqtohash\*(Aq (implemented elsewhere) */ \& unsigned long STUFF_hash(const STUFF *tohash); \& /* Orders \*(Aqarg1\*(Aq and \*(Aqarg2\*(Aq (implemented elsewhere) */ \& int stuff_cmp(const STUFF *arg1, const STUFF *arg2); \& /* Create the type\-safe wrapper functions for use in the LHASH internals */ \& static IMPLEMENT_LHASH_HASH_FN(stuff, STUFF); \& static IMPLEMENT_LHASH_COMP_FN(stuff, STUFF); \& /* ... */ \& int main(int argc, char *argv[]) { \& /* Create the new hash table using the hash/compare wrappers */ \& LHASH_OF(STUFF) *hashtable = lh_STUFF_new(LHASH_HASH_FN(STUFF_hash), \& LHASH_COMP_FN(STUFF_cmp)); \& /* ... */ \& } .Ve .PP lh_\fI_free()\fR frees the \fB\s-1LHASH_OF\s0( structure \&\fBtable\fR. Allocated hash table entries will not be freed; consider using lh_\fI_doall()\fR to deallocate any remaining entries in the hash table (see below). .PP lh_\fI_insert()\fR inserts the structure pointed to by \fBdata\fR into \&\fBtable\fR. If there already is an entry with the same key, the old value is replaced. Note that lh_\fI_insert()\fR stores pointers, the data are not copied. .PP lh_\fI_delete()\fR deletes an entry from \fBtable\fR. .PP lh_\fI_retrieve()\fR looks up an entry in \fBtable\fR. Normally, \fBdata\fR is a structure with the key field(s) set; the function will return a pointer to a fully populated structure. .PP lh_\fI_doall()\fR will, for every entry in the hash table, call \&\fBfunc\fR with the data item as its parameter. For lh_\fI_doall()\fR and lh_\fI_doall_arg()\fR, function pointer casting should be avoided in the callbacks (see \fB\s-1NOTE\s0\fR) \- instead use the declare/implement macros to create type-checked wrappers that cast variables prior to calling your type-specific callbacks. An example of this is illustrated here where the callback is used to cleanup resources for items in the hash table prior to the hashtable itself being deallocated: .PP .Vb 9 \& /* Cleans up resources belonging to \*(Aqa\*(Aq (this is implemented elsewhere) */ \& void STUFF_cleanup_doall(STUFF *a); \& /* Implement a prototype\-compatible wrapper for "STUFF_cleanup" */ \& IMPLEMENT_LHASH_DOALL_FN(STUFF_cleanup, STUFF) \& /* ... then later in the code ... */ \& /* So to run "STUFF_cleanup" against all items in a hash table ... */ \& lh_STUFF_doall(hashtable, LHASH_DOALL_FN(STUFF_cleanup)); \& /* Then the hash table itself can be deallocated */ \& lh_STUFF_free(hashtable); .Ve .PP When doing this, be careful if you delete entries from the hash table in your callbacks: the table may decrease in size, moving the item that you are currently on down lower in the hash table \- this could cause some entries to be skipped during the iteration. The second best solution to this problem is to set hash\->down_load=0 before you start (which will stop the hash table ever decreasing in size). The best solution is probably to avoid deleting items from the hash table inside a \*(L"doall\*(R" callback! .PP lh_\fI_doall_arg()\fR is the same as lh_\fI_doall()\fR except that \&\fBfunc\fR will be called with \fBarg\fR as the second argument and \fBfunc\fR should be of type \fB\s-1LHASH_DOALL_ARG_FN_TYPE\s0\fR (a callback prototype that is passed both the table entry and an extra argument). As with \&\fIlh_doall()\fR, you can instead choose to declare your callback with a prototype matching the types you are dealing with and use the declare/implement macros to create compatible wrappers that cast variables before calling your type-specific callbacks. An example of this is demonstrated here (printing all hash table entries to a \s-1BIO\s0 that is provided by the caller): .PP .Vb 8 \& /* Prints item \*(Aqa\*(Aq to \*(Aqoutput_bio\*(Aq (this is implemented elsewhere) */ \& void STUFF_print_doall_arg(const STUFF *a, BIO *output_bio); \& /* Implement a prototype\-compatible wrapper for "STUFF_print" */ \& static IMPLEMENT_LHASH_DOALL_ARG_FN(STUFF, const STUFF, BIO) \& /* ... then later in the code ... */ \& /* Print out the entire hashtable to a particular BIO */ \& lh_STUFF_doall_arg(hashtable, LHASH_DOALL_ARG_FN(STUFF_print), BIO, \& logging_bio); .Ve .PP lh_\fI_error()\fR can be used to determine if an error occurred in the last operation. lh_\fI_error()\fR is a macro. .SH "RETURN VALUES" .IX Header "RETURN VALUES" lh_\fI_new()\fR returns \fB\s-1NULL\s0\fR on error, otherwise a pointer to the new \&\fB\s-1LHASH\s0\fR structure. .PP When a hash table entry is replaced, lh_\fI_insert()\fR returns the value being replaced. \fB\s-1NULL\s0\fR is returned on normal operation and on error. .PP lh_\fI_delete()\fR returns the entry being deleted. \fB\s-1NULL\s0\fR is returned if there is no such value in the hash table. .PP lh_\fI_retrieve()\fR returns the hash table entry if it has been found, \&\fB\s-1NULL\s0\fR otherwise. .PP lh_\fI_error()\fR returns 1 if an error occurred in the last operation, 0 otherwise. .PP lh_\fI_free()\fR, lh_\fI_doall()\fR and lh_\fI_doall_arg()\fR return no values. .SH "NOTE" .IX Header "NOTE" The various \s-1LHASH\s0 macros and callback types exist to make it possible to write type-checked code without resorting to function-prototype casting \- an evil that makes application code much harder to audit/verify and also opens the window of opportunity for stack corruption and other hard-to-find bugs. It also, apparently, violates ANSI-C. .PP The \s-1LHASH\s0 code regards table entries as constant data. As such, it internally represents \fIlh_insert()\fR'd items with a \*(L"const void *\*(R" pointer type. This is why callbacks such as those used by \fIlh_doall()\fR and \fIlh_doall_arg()\fR declare their prototypes with \*(L"const\*(R", even for the parameters that pass back the table items' data pointers \- for consistency, user-provided data is \*(L"const\*(R" at all times as far as the \&\s-1LHASH\s0 code is concerned. However, as callers are themselves providing these pointers, they can choose whether they too should be treating all such parameters as constant. .PP As an example, a hash table may be maintained by code that, for reasons of encapsulation, has only \*(L"const\*(R" access to the data being indexed in the hash table (ie. it is returned as \*(L"const\*(R" from elsewhere in their code) \- in this case the \s-1LHASH\s0 prototypes are appropriate as-is. Conversely, if the caller is responsible for the life-time of the data in question, then they may well wish to make modifications to table item passed back in the \fIlh_doall()\fR or \&\fIlh_doall_arg()\fR callbacks (see the \*(L"STUFF_cleanup\*(R" example above). If so, the caller can either cast the \*(L"const\*(R" away (if they're providing the raw callbacks themselves) or use the macros to declare/implement the wrapper functions without \*(L"const\*(R" types. .PP Callers that only have \*(L"const\*(R" access to data they're indexing in a table, yet declare callbacks without constant types (or cast the \&\*(L"const\*(R" away themselves), are therefore creating their own risks/bugs without being encouraged to do so by the \s-1API. \s0 On a related note, those auditing code should pay special attention to any instances of DECLARE/IMPLEMENT_LHASH_DOALL_[\s-1ARG_\s0]_FN macros that provide types without any \*(L"const\*(R" qualifiers. .SH "BUGS" .IX Header "BUGS" lh_\fI_insert()\fR returns \fB\s-1NULL\s0\fR both for success and error. .SH "INTERNALS" .IX Header "INTERNALS" The following description is based on the SSLeay documentation: .PP The \fBlhash\fR library implements a hash table described in the \&\fICommunications of the \s-1ACM\s0\fR in 1991. What makes this hash table different is that as the table fills, the hash table is increased (or decreased) in size via \fIOPENSSL_realloc()\fR. When a 'resize' is done, instead of all hashes being redistributed over twice as many 'buckets', one bucket is split. So when an 'expand' is done, there is only a minimal cost to redistribute some values. Subsequent inserts will cause more single 'bucket' redistributions but there will never be a sudden large cost due to redistributing all the 'buckets'. .PP The state for a particular hash table is kept in the \fB\s-1LHASH\s0\fR structure. The decision to increase or decrease the hash table size is made depending on the 'load' of the hash table. The load is the number of items in the hash table divided by the size of the hash table. The default values are as follows. If (hash\->up_load < load) => expand. if (hash\->down_load > load) => contract. The \&\fBup_load\fR has a default value of 1 and \fBdown_load\fR has a default value of 2. These numbers can be modified by the application by just playing with the \fBup_load\fR and \fBdown_load\fR variables. The 'load' is kept in a form which is multiplied by 256. So hash\->up_load=8*256; will cause a load of 8 to be set. .PP If you are interested in performance the field to watch is num_comp_calls. The hash library keeps track of the 'hash' value for each item so when a lookup is done, the 'hashes' are compared, if there is a match, then a full compare is done, and hash\->num_comp_calls is incremented. If num_comp_calls is not equal to num_delete plus num_retrieve it means that your hash function is generating hashes that are the same for different values. It is probably worth changing your hash function if this is the case because even if your hash table has 10 items in a 'bucket', it can be searched with 10 \fBunsigned long\fR compares and 10 linked list traverses. This will be much less expensive that 10 calls to your compare function. .PP \&\fIlh_strhash()\fR is a demo string hashing function: .PP .Vb 1 \& unsigned long lh_strhash(const char *c); .Ve .PP Since the \fB\s-1LHASH\s0\fR routines would normally be passed structures, this routine would not normally be passed to lh_\fI_new()\fR, rather it would be used in the function passed to lh_\fI_new()\fR. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIlh_stats\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" The \fBlhash\fR library is available in all versions of SSLeay and OpenSSL. \&\fIlh_error()\fR was added in SSLeay 0.9.1b. .PP This manpage is derived from the SSLeay documentation. .PP In OpenSSL 0.9.7, all lhash functions that were passed function pointers were changed for better type safety, and the function types \s-1LHASH_COMP_FN_TYPE, LHASH_HASH_FN_TYPE, LHASH_DOALL_FN_TYPE\s0 and \s-1LHASH_DOALL_ARG_FN_TYPE \s0 became available. .PP In OpenSSL 1.0.0, the lhash interface was revamped for even better type checking. man3/SSL_CTX_set_read_ahead.3000064400000013337147210533270011650 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_read_ahead 3" .TH SSL_CTX_set_read_ahead 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_read_ahead, SSL_CTX_set_default_read_ahead, SSL_CTX_get_read_ahead, SSL_CTX_get_default_read_ahead, SSL_set_read_ahead, SSL_get_read_ahead \&\- manage whether to read as many input bytes as possible .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_get_read_ahead(const SSL *s); \& void SSL_set_read_ahead(SSL *s, int yes); \& \& #define SSL_CTX_get_default_read_ahead(ctx) \& #define SSL_CTX_set_default_read_ahead(ctx,m) \& #define SSL_CTX_get_read_ahead(ctx) \& #define SSL_CTX_set_read_ahead(ctx,m) .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set_read_ahead()\fR and \fISSL_set_read_ahead()\fR set whether we should read as many input bytes as possible (for non-blocking reads) or not. For example if \&\fBx\fR bytes are currently required by OpenSSL, but \fBy\fR bytes are available from the underlying \s-1BIO \s0(where \fBy\fR > \fBx\fR), then OpenSSL will read all \fBy\fR bytes into its buffer (providing that the buffer is large enough) if reading ahead is on, or \fBx\fR bytes otherwise. The parameter \fByes\fR or \fBm\fR should be 0 to ensure reading ahead is off, or non zero otherwise. .PP SSL_CTX_set_default_read_ahead is a synonym for SSL_CTX_set_read_ahead, and SSL_CTX_get_default_read_ahead is a synonym for SSL_CTX_get_read_ahead. .PP \&\fISSL_CTX_get_read_ahead()\fR and \fISSL_get_read_ahead()\fR indicate whether reading ahead has been set or not. .SH "NOTES" .IX Header "NOTES" These functions have no impact when used with \s-1DTLS.\s0 The return values for \&\fISSL_CTX_get_read_head()\fR and \fISSL_get_read_ahead()\fR are undefined for \s-1DTLS.\s0 .SH "RETURN VALUES" .IX Header "RETURN VALUES" SSL_get_read_ahead and SSL_CTX_get_read_ahead return 0 if reading ahead is off, and non zero otherwise. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3) man3/EVP_PKEY_CTX_ctrl.3000064400000024420147210533270010520 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EVP_PKEY_CTX_ctrl 3" .TH EVP_PKEY_CTX_ctrl 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EVP_PKEY_CTX_ctrl, EVP_PKEY_CTX_ctrl_str, EVP_PKEY_get_default_digest_nid, EVP_PKEY_CTX_set_signature_md, EVP_PKEY_CTX_set_rsa_padding, EVP_PKEY_CTX_set_rsa_pss_saltlen, EVP_PKEY_CTX_set_rsa_rsa_keygen_bits, EVP_PKEY_CTX_set_rsa_keygen_pubexp, EVP_PKEY_CTX_set_dsa_paramgen_bits, EVP_PKEY_CTX_set_dh_paramgen_prime_len, EVP_PKEY_CTX_set_dh_paramgen_generator, EVP_PKEY_CTX_set_ec_paramgen_curve_nid \- algorithm specific control operations .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype, \& int cmd, int p1, void *p2); \& int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *type, \& const char *value); \& \& int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid); \& \& #include \& \& int EVP_PKEY_CTX_set_signature_md(EVP_PKEY_CTX *ctx, const EVP_MD *md); \& \& int EVP_PKEY_CTX_set_rsa_padding(EVP_PKEY_CTX *ctx, int pad); \& int EVP_PKEY_CTX_set_rsa_pss_saltlen(EVP_PKEY_CTX *ctx, int len); \& int EVP_PKEY_CTX_set_rsa_rsa_keygen_bits(EVP_PKEY_CTX *ctx, int mbits); \& int EVP_PKEY_CTX_set_rsa_keygen_pubexp(EVP_PKEY_CTX *ctx, BIGNUM *pubexp); \& \& #include \& int EVP_PKEY_CTX_set_dsa_paramgen_bits(EVP_PKEY_CTX *ctx, int nbits); \& \& #include \& int EVP_PKEY_CTX_set_dh_paramgen_prime_len(EVP_PKEY_CTX *ctx, int len); \& int EVP_PKEY_CTX_set_dh_paramgen_generator(EVP_PKEY_CTX *ctx, int gen); \& \& #include \& int EVP_PKEY_CTX_set_ec_paramgen_curve_nid(EVP_PKEY_CTX *ctx, int nid); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The function \fIEVP_PKEY_CTX_ctrl()\fR sends a control operation to the context \&\fBctx\fR. The key type used must match \fBkeytype\fR if it is not \-1. The parameter \&\fBoptype\fR is a mask indicating which operations the control can be applied to. The control command is indicated in \fBcmd\fR and any additional arguments in \&\fBp1\fR and \fBp2\fR. .PP Applications will not normally call \fIEVP_PKEY_CTX_ctrl()\fR directly but will instead call one of the algorithm specific macros below. .PP The function \fIEVP_PKEY_CTX_ctrl_str()\fR allows an application to send an algorithm specific control operation to a context \fBctx\fR in string form. This is intended to be used for options specified on the command line or in text files. The commands supported are documented in the openssl utility command line pages for the option \fB\-pkeyopt\fR which is supported by the \&\fBpkeyutl\fR, \fBgenpkey\fR and \fBreq\fR commands. .PP All the remaining \*(L"functions\*(R" are implemented as macros. .PP The \fIEVP_PKEY_CTX_set_signature_md()\fR macro sets the message digest type used in a signature. It can be used with any public key algorithm supporting signature operations. .PP The macro \fIEVP_PKEY_CTX_set_rsa_padding()\fR sets the \s-1RSA\s0 padding mode for \fBctx\fR. The \fBpad\fR parameter can take the value \s-1RSA_PKCS1_PADDING\s0 for PKCS#1 padding, \&\s-1RSA_SSLV23_PADDING\s0 for SSLv23 padding, \s-1RSA_NO_PADDING\s0 for no padding, \&\s-1RSA_PKCS1_OAEP_PADDING\s0 for \s-1OAEP\s0 padding (encrypt and decrypt only), \&\s-1RSA_X931_PADDING\s0 for X9.31 padding (signature operations only) and \&\s-1RSA_PKCS1_PSS_PADDING \s0(sign and verify only). .PP Two \s-1RSA\s0 padding modes behave differently if \fIEVP_PKEY_CTX_set_signature_md()\fR is used. If this macro is called for PKCS#1 padding the plaintext buffer is an actual digest value and is encapsulated in a DigestInfo structure according to PKCS#1 when signing and this structure is expected (and stripped off) when verifying. If this control is not used with \s-1RSA\s0 and PKCS#1 padding then the supplied data is used directly and not encapsulated. In the case of X9.31 padding for \s-1RSA\s0 the algorithm identifier byte is added or checked and removed if this control is called. If it is not called then the first byte of the plaintext buffer is expected to be the algorithm identifier byte. .PP The \fIEVP_PKEY_CTX_set_rsa_pss_saltlen()\fR macro sets the \s-1RSA PSS\s0 salt length to \&\fBlen\fR as its name implies it is only supported for \s-1PSS\s0 padding. Two special values are supported: \-1 sets the salt length to the digest length. When signing \-2 sets the salt length to the maximum permissible value. When verifying \-2 causes the salt length to be automatically determined based on the \&\fB\s-1PSS\s0\fR block structure. If this macro is not called a salt length value of \-2 is used by default. .PP The \fIEVP_PKEY_CTX_set_rsa_rsa_keygen_bits()\fR macro sets the \s-1RSA\s0 key length for \&\s-1RSA\s0 key genration to \fBbits\fR. If not specified 1024 bits is used. .PP The \fIEVP_PKEY_CTX_set_rsa_keygen_pubexp()\fR macro sets the public exponent value for \s-1RSA\s0 key generation to \fBpubexp\fR currently it should be an odd integer. The \&\fBpubexp\fR pointer is used internally by this function so it should not be modified or free after the call. If this macro is not called then 65537 is used. .PP The macro \fIEVP_PKEY_CTX_set_dsa_paramgen_bits()\fR sets the number of bits used for \s-1DSA\s0 parameter generation to \fBbits\fR. If not specified 1024 is used. .PP The macro \fIEVP_PKEY_CTX_set_dh_paramgen_prime_len()\fR sets the length of the \s-1DH\s0 prime parameter \fBp\fR for \s-1DH\s0 parameter generation. If this macro is not called then 1024 is used. .PP The \fIEVP_PKEY_CTX_set_dh_paramgen_generator()\fR macro sets \s-1DH\s0 generator to \fBgen\fR for \s-1DH\s0 parameter generation. If not specified 2 is used. .PP The \fIEVP_PKEY_CTX_set_ec_paramgen_curve_nid()\fR sets the \s-1EC\s0 curve for \s-1EC\s0 parameter generation to \fBnid\fR. For \s-1EC\s0 parameter generation this macro must be called or an error occurs because there is no default curve. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIEVP_PKEY_CTX_ctrl()\fR and its macros return a positive value for success and 0 or a negative value for failure. In particular a return value of \-2 indicates the operation is not supported by the public key algorithm. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIEVP_PKEY_CTX_new\fR\|(3), \&\fIEVP_PKEY_encrypt\fR\|(3), \&\fIEVP_PKEY_decrypt\fR\|(3), \&\fIEVP_PKEY_sign\fR\|(3), \&\fIEVP_PKEY_verify\fR\|(3), \&\fIEVP_PKEY_verify_recover\fR\|(3), \&\fIEVP_PKEY_derive\fR\|(3) \&\fIEVP_PKEY_keygen\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" These functions were first added to OpenSSL 1.0.0. man3/OPENSSL_VERSION_NUMBER.3000064400000013341147210533270011074 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSLeay_version 3" .TH SSLeay_version 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSLeay_version \- retrieve version/build information about OpenSSL library .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& const char *SSLeay_version(int type); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSLeay_version()\fR returns a pointer to a constant string describing the version of the OpenSSL library or giving information about the library build. .PP The following \fBtype\fR values are supported: .IP "\s-1SSLEAY_VERSION\s0" 4 .IX Item "SSLEAY_VERSION" The version of the OpenSSL library including the release date. .IP "\s-1SSLEAY_CFLAGS\s0" 4 .IX Item "SSLEAY_CFLAGS" The compiler flags set for the compilation process in the form \&\*(L"compiler: ...\*(R" if available or \*(L"compiler: information not available\*(R" otherwise. .IP "\s-1SSLEAY_BUILT_ON\s0" 4 .IX Item "SSLEAY_BUILT_ON" The date of the build process in the form \*(L"built on: ...\*(R" if available or \*(L"built on: date not available\*(R" otherwise. .IP "\s-1SSLEAY_PLATFORM\s0" 4 .IX Item "SSLEAY_PLATFORM" The \*(L"Configure\*(R" target of the library build in the form \*(L"platform: ...\*(R" if available or \*(L"platform: information not available\*(R" otherwise. .IP "\s-1SSLEAY_DIR\s0" 4 .IX Item "SSLEAY_DIR" The \*(L"\s-1OPENSSLDIR\*(R"\s0 setting of the library build in the form \*(L"\s-1OPENSSLDIR: \*(R"..."\*(L"\s0 if available or \*(R"\s-1OPENSSLDIR: N/A"\s0 otherwise. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following return values can occur: .ie n .IP """not available""" 4 .el .IP "``not available''" 4 .IX Item "not available" An invalid value for \fBtype\fR was given. .IP "Pointer to constant string" 4 .IX Item "Pointer to constant string" Textual description. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIcrypto\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fB\s-1SSLEAY_DIR\s0\fR was added in OpenSSL 0.9.7. man3/BN_mod_mul_montgomery.3000064400000017003147210533270011766 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BN_mod_mul_montgomery 3" .TH BN_mod_mul_montgomery 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BN_mod_mul_montgomery, BN_MONT_CTX_new, BN_MONT_CTX_init, BN_MONT_CTX_free, BN_MONT_CTX_set, BN_MONT_CTX_copy, BN_from_montgomery, BN_to_montgomery \- Montgomery multiplication .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& BN_MONT_CTX *BN_MONT_CTX_new(void); \& void BN_MONT_CTX_init(BN_MONT_CTX *ctx); \& void BN_MONT_CTX_free(BN_MONT_CTX *mont); \& \& int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *m, BN_CTX *ctx); \& BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to, BN_MONT_CTX *from); \& \& int BN_mod_mul_montgomery(BIGNUM *r, BIGNUM *a, BIGNUM *b, \& BN_MONT_CTX *mont, BN_CTX *ctx); \& \& int BN_from_montgomery(BIGNUM *r, BIGNUM *a, BN_MONT_CTX *mont, \& BN_CTX *ctx); \& \& int BN_to_montgomery(BIGNUM *r, BIGNUM *a, BN_MONT_CTX *mont, \& BN_CTX *ctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions implement Montgomery multiplication. They are used automatically when \fIBN_mod_exp\fR\|(3) is called with suitable input, but they may be useful when several operations are to be performed using the same modulus. .PP \&\fIBN_MONT_CTX_new()\fR allocates and initializes a \fB\s-1BN_MONT_CTX\s0\fR structure. \&\fIBN_MONT_CTX_init()\fR initializes an existing uninitialized \fB\s-1BN_MONT_CTX\s0\fR. .PP \&\fIBN_MONT_CTX_set()\fR sets up the \fImont\fR structure from the modulus \fIm\fR by precomputing its inverse and a value R. .PP \&\fIBN_MONT_CTX_copy()\fR copies the \fB\s-1BN_MONT_CTX\s0\fR \fIfrom\fR to \fIto\fR. .PP \&\fIBN_MONT_CTX_free()\fR frees the components of the \fB\s-1BN_MONT_CTX\s0\fR, and, if it was created by \fIBN_MONT_CTX_new()\fR, also the structure itself. .PP \&\fIBN_mod_mul_montgomery()\fR computes Mont(\fIa\fR,\fIb\fR):=\fIa\fR*\fIb\fR*R^\-1 and places the result in \fIr\fR. .PP \&\fIBN_from_montgomery()\fR performs the Montgomery reduction \fIr\fR = \fIa\fR*R^\-1. .PP \&\fIBN_to_montgomery()\fR computes Mont(\fIa\fR,R^2), i.e. \fIa\fR*R. Note that \fIa\fR must be non-negative and smaller than the modulus. .PP For all functions, \fIctx\fR is a previously allocated \fB\s-1BN_CTX\s0\fR used for temporary variables. .PP The \fB\s-1BN_MONT_CTX\s0\fR structure is defined as follows: .PP .Vb 10 \& typedef struct bn_mont_ctx_st \& { \& int ri; /* number of bits in R */ \& BIGNUM RR; /* R^2 (used to convert to Montgomery form) */ \& BIGNUM N; /* The modulus */ \& BIGNUM Ni; /* R*(1/R mod N) \- N*Ni = 1 \& * (Ni is only stored for bignum algorithm) */ \& BN_ULONG n0; /* least significant word of Ni */ \& int flags; \& } BN_MONT_CTX; .Ve .PP \&\fIBN_to_montgomery()\fR is a macro. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBN_MONT_CTX_new()\fR returns the newly allocated \fB\s-1BN_MONT_CTX\s0\fR, and \s-1NULL\s0 on error. .PP \&\fIBN_MONT_CTX_init()\fR and \fIBN_MONT_CTX_free()\fR have no return values. .PP For the other functions, 1 is returned for success, 0 on error. The error codes can be obtained by \fIERR_get_error\fR\|(3). .SH "WARNING" .IX Header "WARNING" The inputs must be reduced modulo \fBm\fR, otherwise the result will be outside the expected range. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIbn\fR\|(3), \fIERR_get_error\fR\|(3), \fIBN_add\fR\|(3), \&\fIBN_CTX_new\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIBN_MONT_CTX_new()\fR, \fIBN_MONT_CTX_free()\fR, \fIBN_MONT_CTX_set()\fR, \&\fIBN_mod_mul_montgomery()\fR, \fIBN_from_montgomery()\fR and \fIBN_to_montgomery()\fR are available in all versions of SSLeay and OpenSSL. .PP \&\fIBN_MONT_CTX_init()\fR and \fIBN_MONT_CTX_copy()\fR were added in SSLeay 0.9.1b. man3/X509_NAME_add_entry_by_txt.3000064400000020765147210533270012373 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "X509_NAME_add_entry_by_txt 3" .TH X509_NAME_add_entry_by_txt 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" X509_NAME_add_entry_by_txt, X509_NAME_add_entry_by_OBJ, X509_NAME_add_entry_by_NID, X509_NAME_add_entry, X509_NAME_delete_entry \- X509_NAME modification functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type, const unsigned char *bytes, int len, int loc, int set); \& \& int X509_NAME_add_entry_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, int type, unsigned char *bytes, int len, int loc, int set); \& \& int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type, unsigned char *bytes, int len, int loc, int set); \& \& int X509_NAME_add_entry(X509_NAME *name,X509_NAME_ENTRY *ne, int loc, int set); \& \& X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIX509_NAME_add_entry_by_txt()\fR, \fIX509_NAME_add_entry_by_OBJ()\fR and \&\fIX509_NAME_add_entry_by_NID()\fR add a field whose name is defined by a string \fBfield\fR, an object \fBobj\fR or a \s-1NID \s0\fBnid\fR respectively. The field value to be added is in \fBbytes\fR of length \fBlen\fR. If \&\fBlen\fR is \-1 then the field length is calculated internally using strlen(bytes). .PP The type of field is determined by \fBtype\fR which can either be a definition of the type of \fBbytes\fR (such as \fB\s-1MBSTRING_ASC\s0\fR) or a standard \s-1ASN1\s0 type (such as \fBV_ASN1_IA5STRING\fR). The new entry is added to a position determined by \fBloc\fR and \fBset\fR. .PP \&\fIX509_NAME_add_entry()\fR adds a copy of \fBX509_NAME_ENTRY\fR structure \fBne\fR to \fBname\fR. The new entry is added to a position determined by \fBloc\fR and \fBset\fR. Since a copy of \fBne\fR is added \fBne\fR must be freed up after the call. .PP \&\fIX509_NAME_delete_entry()\fR deletes an entry from \fBname\fR at position \&\fBloc\fR. The deleted entry is returned and must be freed up. .SH "NOTES" .IX Header "NOTES" The use of string types such as \fB\s-1MBSTRING_ASC\s0\fR or \fB\s-1MBSTRING_UTF8\s0\fR is strongly recommended for the \fBtype\fR parameter. This allows the internal code to correctly determine the type of the field and to apply length checks according to the relevant standards. This is done using \fIASN1_STRING_set_by_NID()\fR. .PP If instead an \s-1ASN1\s0 type is used no checks are performed and the supplied data in \fBbytes\fR is used directly. .PP In \fIX509_NAME_add_entry_by_txt()\fR the \fBfield\fR string represents the field name using OBJ_txt2obj(field, 0). .PP The \fBloc\fR and \fBset\fR parameters determine where a new entry should be added. For almost all applications \fBloc\fR can be set to \-1 and \fBset\fR to 0. This adds a new entry to the end of \fBname\fR as a single valued RelativeDistinguishedName (\s-1RDN\s0). .PP \&\fBloc\fR actually determines the index where the new entry is inserted: if it is \-1 it is appended. .PP \&\fBset\fR determines how the new type is added. If it is zero a new \s-1RDN\s0 is created. .PP If \fBset\fR is \-1 or 1 it is added to the previous or next \s-1RDN\s0 structure respectively. This will then be a multivalued \s-1RDN:\s0 since multivalues RDNs are very seldom used \fBset\fR is almost always set to zero. .SH "EXAMPLES" .IX Header "EXAMPLES" Create an \fBX509_NAME\fR structure: .PP \&\*(L"C=UK, O=Disorganized Organization, CN=Joe Bloggs\*(R" .PP .Vb 10 \& X509_NAME *nm; \& nm = X509_NAME_new(); \& if (nm == NULL) \& /* Some error */ \& if (!X509_NAME_add_entry_by_txt(nm, "C", MBSTRING_ASC, \& "UK", \-1, \-1, 0)) \& /* Error */ \& if (!X509_NAME_add_entry_by_txt(nm, "O", MBSTRING_ASC, \& "Disorganized Organization", \-1, \-1, 0)) \& /* Error */ \& if (!X509_NAME_add_entry_by_txt(nm, "CN", MBSTRING_ASC, \& "Joe Bloggs", \-1, \-1, 0)) \& /* Error */ .Ve .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIX509_NAME_add_entry_by_txt()\fR, \fIX509_NAME_add_entry_by_OBJ()\fR, \&\fIX509_NAME_add_entry_by_NID()\fR and \fIX509_NAME_add_entry()\fR return 1 for success of 0 if an error occurred. .PP \&\fIX509_NAME_delete_entry()\fR returns either the deleted \fBX509_NAME_ENTRY\fR structure of \fB\s-1NULL\s0\fR if an error occurred. .SH "BUGS" .IX Header "BUGS" \&\fBtype\fR can still be set to \fBV_ASN1_APP_CHOOSE\fR to use a different algorithm to determine field types. Since this form does not understand multicharacter types, performs no length checks and can result in invalid field types its use is strongly discouraged. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fId2i_X509_NAME\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" man3/SSL_CTX_set_options.3000064400000044052147210533270011304 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_options 3" .TH SSL_CTX_set_options 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_options, SSL_set_options, SSL_CTX_clear_options, SSL_clear_options, SSL_CTX_get_options, SSL_get_options, SSL_get_secure_renegotiation_support \- manipulate SSL options .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& long SSL_CTX_set_options(SSL_CTX *ctx, long options); \& long SSL_set_options(SSL *ssl, long options); \& \& long SSL_CTX_clear_options(SSL_CTX *ctx, long options); \& long SSL_clear_options(SSL *ssl, long options); \& \& long SSL_CTX_get_options(SSL_CTX *ctx); \& long SSL_get_options(SSL *ssl); \& \& long SSL_get_secure_renegotiation_support(SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Note: all these functions are implemented using macros. .PP \&\fISSL_CTX_set_options()\fR adds the options set via bitmask in \fBoptions\fR to \fBctx\fR. Options already set before are not cleared! .PP \&\fISSL_set_options()\fR adds the options set via bitmask in \fBoptions\fR to \fBssl\fR. Options already set before are not cleared! .PP \&\fISSL_CTX_clear_options()\fR clears the options set via bitmask in \fBoptions\fR to \fBctx\fR. .PP \&\fISSL_clear_options()\fR clears the options set via bitmask in \fBoptions\fR to \fBssl\fR. .PP \&\fISSL_CTX_get_options()\fR returns the options set for \fBctx\fR. .PP \&\fISSL_get_options()\fR returns the options set for \fBssl\fR. .PP \&\fISSL_get_secure_renegotiation_support()\fR indicates whether the peer supports secure renegotiation. .SH "NOTES" .IX Header "NOTES" The behaviour of the \s-1SSL\s0 library can be changed by setting several options. The options are coded as bitmasks and can be combined by a logical \fBor\fR operation (|). .PP \&\fISSL_CTX_set_options()\fR and \fISSL_set_options()\fR affect the (external) protocol behaviour of the \s-1SSL\s0 library. The (internal) behaviour of the \s-1API\s0 can be changed by using the similar \&\fISSL_CTX_set_mode\fR\|(3) and \fISSL_set_mode()\fR functions. .PP During a handshake, the option settings of the \s-1SSL\s0 object are used. When a new \s-1SSL\s0 object is created from a context using \fISSL_new()\fR, the current option setting is copied. Changes to \fBctx\fR do not affect already created \&\s-1SSL\s0 objects. \fISSL_clear()\fR does not affect the settings. .PP The following \fBbug workaround\fR options are available: .IP "\s-1SSL_OP_MICROSOFT_SESS_ID_BUG\s0" 4 .IX Item "SSL_OP_MICROSOFT_SESS_ID_BUG" www.microsoft.com \- when talking SSLv2, if session-id reuse is performed, the session-id passed back in the server-finished message is different from the one decided upon. .IP "\s-1SSL_OP_NETSCAPE_CHALLENGE_BUG\s0" 4 .IX Item "SSL_OP_NETSCAPE_CHALLENGE_BUG" Netscape\-Commerce/1.12, when talking SSLv2, accepts a 32 byte challenge but then appears to only use 16 bytes when generating the encryption keys. Using 16 bytes is ok but it should be ok to use 32. According to the SSLv3 spec, one should use 32 bytes for the challenge when operating in SSLv2/v3 compatibility mode, but as mentioned above, this breaks this server so 16 bytes is the way to go. .IP "\s-1SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG\s0" 4 .IX Item "SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG" As of OpenSSL 0.9.8q and 1.0.0c, this option has no effect. .IP "\s-1SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG\s0" 4 .IX Item "SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG" \&... .IP "\s-1SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER\s0" 4 .IX Item "SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER" \&... .IP "\s-1SSL_OP_SAFARI_ECDHE_ECDSA_BUG\s0" 4 .IX Item "SSL_OP_SAFARI_ECDHE_ECDSA_BUG" Don't prefer ECDHE-ECDSA ciphers when the client appears to be Safari on \s-1OS X. OS X 10.8..10.8.3\s0 has broken support for ECDHE-ECDSA ciphers. .IP "\s-1SSL_OP_SSLEAY_080_CLIENT_DH_BUG\s0" 4 .IX Item "SSL_OP_SSLEAY_080_CLIENT_DH_BUG" \&... .IP "\s-1SSL_OP_TLS_D5_BUG\s0" 4 .IX Item "SSL_OP_TLS_D5_BUG" \&... .IP "\s-1SSL_OP_TLS_BLOCK_PADDING_BUG\s0" 4 .IX Item "SSL_OP_TLS_BLOCK_PADDING_BUG" \&... .IP "\s-1SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS\s0" 4 .IX Item "SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS" Disables a countermeasure against a \s-1SSL 3.0/TLS 1.0\s0 protocol vulnerability affecting \s-1CBC\s0 ciphers, which cannot be handled by some broken \s-1SSL\s0 implementations. This option has no effect for connections using other ciphers. .IP "\s-1SSL_OP_TLSEXT_PADDING\s0" 4 .IX Item "SSL_OP_TLSEXT_PADDING" Adds a padding extension to ensure the ClientHello size is never between 256 and 511 bytes in length. This is needed as a workaround for some implementations. .IP "\s-1SSL_OP_ALL\s0" 4 .IX Item "SSL_OP_ALL" All of the above bug workarounds. .PP It is usually safe to use \fB\s-1SSL_OP_ALL\s0\fR to enable the bug workaround options if compatibility with somewhat broken implementations is desired. .PP The following \fBmodifying\fR options are available: .IP "\s-1SSL_OP_TLS_ROLLBACK_BUG\s0" 4 .IX Item "SSL_OP_TLS_ROLLBACK_BUG" Disable version rollback attack detection. .Sp During the client key exchange, the client must send the same information about acceptable \s-1SSL/TLS\s0 protocol levels as during the first hello. Some clients violate this rule by adapting to the server's answer. (Example: the client sends a SSLv2 hello and accepts up to SSLv3.1=TLSv1, the server only understands up to SSLv3. In this case the client must still use the same SSLv3.1=TLSv1 announcement. Some clients step down to SSLv3 with respect to the server's answer and violate the version rollback protection.) .IP "\s-1SSL_OP_SINGLE_DH_USE\s0" 4 .IX Item "SSL_OP_SINGLE_DH_USE" Always create a new key when using temporary/ephemeral \s-1DH\s0 parameters (see \fISSL_CTX_set_tmp_dh_callback\fR\|(3)). This option must be used to prevent small subgroup attacks, when the \s-1DH\s0 parameters were not generated using \*(L"strong\*(R" primes (e.g. when using DSA-parameters, see \fIdhparam\fR\|(1)). If \*(L"strong\*(R" primes were used, it is not strictly necessary to generate a new \s-1DH\s0 key during each handshake but it is also recommended. \&\fB\s-1SSL_OP_SINGLE_DH_USE\s0\fR should therefore be enabled whenever temporary/ephemeral \s-1DH\s0 parameters are used. .IP "\s-1SSL_OP_EPHEMERAL_RSA\s0" 4 .IX Item "SSL_OP_EPHEMERAL_RSA" This option is no longer implemented and is treated as no op. .IP "\s-1SSL_OP_CIPHER_SERVER_PREFERENCE\s0" 4 .IX Item "SSL_OP_CIPHER_SERVER_PREFERENCE" When choosing a cipher, use the server's preferences instead of the client preferences. When not set, the \s-1SSL\s0 server will always follow the clients preferences. When set, the SSLv3/TLSv1 server will choose following its own preferences. Because of the different protocol, for SSLv2 the server will send its list of preferences to the client and the client chooses. .IP "\s-1SSL_OP_PKCS1_CHECK_1\s0" 4 .IX Item "SSL_OP_PKCS1_CHECK_1" \&... .IP "\s-1SSL_OP_PKCS1_CHECK_2\s0" 4 .IX Item "SSL_OP_PKCS1_CHECK_2" \&... .IP "\s-1SSL_OP_NETSCAPE_CA_DN_BUG\s0" 4 .IX Item "SSL_OP_NETSCAPE_CA_DN_BUG" If we accept a netscape connection, demand a client cert, have a non-self-signed \s-1CA\s0 which does not have its \s-1CA\s0 in netscape, and the browser has a cert, it will crash/hang. Works for 3.x and 4.xbeta .IP "\s-1SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG\s0" 4 .IX Item "SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG" \&... .IP "SSL_OP_NO_SSLv2" 4 .IX Item "SSL_OP_NO_SSLv2" Do not use the SSLv2 protocol. As of OpenSSL 1.0.2g the \fBSSL_OP_NO_SSLv2\fR option is set by default. .IP "SSL_OP_NO_SSLv3" 4 .IX Item "SSL_OP_NO_SSLv3" Do not use the SSLv3 protocol. It is recommended that applications should set this option. .IP "SSL_OP_NO_TLSv1" 4 .IX Item "SSL_OP_NO_TLSv1" Do not use the TLSv1 protocol. .IP "SSL_OP_NO_TLSv1_1" 4 .IX Item "SSL_OP_NO_TLSv1_1" Do not use the TLSv1.1 protocol. .IP "SSL_OP_NO_TLSv1_2" 4 .IX Item "SSL_OP_NO_TLSv1_2" Do not use the TLSv1.2 protocol. .IP "\s-1SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION\s0" 4 .IX Item "SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION" When performing renegotiation as a server, always start a new session (i.e., session resumption requests are only accepted in the initial handshake). This option is not needed for clients. .IP "\s-1SSL_OP_NO_TICKET\s0" 4 .IX Item "SSL_OP_NO_TICKET" Normally clients and servers will, where possible, transparently make use of RFC4507bis tickets for stateless session resumption. .Sp If this option is set this functionality is disabled and tickets will not be used by clients or servers. .IP "\s-1SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION\s0" 4 .IX Item "SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION" Allow legacy insecure renegotiation between OpenSSL and unpatched clients or servers. See the \fB\s-1SECURE RENEGOTIATION\s0\fR section for more details. .IP "\s-1SSL_OP_LEGACY_SERVER_CONNECT\s0" 4 .IX Item "SSL_OP_LEGACY_SERVER_CONNECT" Allow legacy insecure renegotiation between OpenSSL and unpatched servers \&\fBonly\fR: this option is currently set by default. See the \&\fB\s-1SECURE RENEGOTIATION\s0\fR section for more details. .SH "SECURE RENEGOTIATION" .IX Header "SECURE RENEGOTIATION" OpenSSL 0.9.8m and later always attempts to use secure renegotiation as described in \s-1RFC5746.\s0 This counters the prefix attack described in \&\s-1CVE\-2009\-3555\s0 and elsewhere. .PP The deprecated and highly broken SSLv2 protocol does not support renegotiation at all: its use is \fBstrongly\fR discouraged. .PP This attack has far reaching consequences which application writers should be aware of. In the description below an implementation supporting secure renegotiation is referred to as \fIpatched\fR. A server not supporting secure renegotiation is referred to as \fIunpatched\fR. .PP The following sections describe the operations permitted by OpenSSL's secure renegotiation implementation. .SS "Patched client and server" .IX Subsection "Patched client and server" Connections and renegotiation are always permitted by OpenSSL implementations. .SS "Unpatched client and patched OpenSSL server" .IX Subsection "Unpatched client and patched OpenSSL server" The initial connection succeeds but client renegotiation is denied by the server with a \fBno_renegotiation\fR warning alert if \s-1TLS\s0 v1.0 is used or a fatal \&\fBhandshake_failure\fR alert in \s-1SSL\s0 v3.0. .PP If the patched OpenSSL server attempts to renegotiate a fatal \&\fBhandshake_failure\fR alert is sent. This is because the server code may be unaware of the unpatched nature of the client. .PP If the option \fB\s-1SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION\s0\fR is set then renegotiation \fBalways\fR succeeds. .PP \&\fB\s-1NB:\s0\fR a bug in OpenSSL clients earlier than 0.9.8m (all of which are unpatched) will result in the connection hanging if it receives a \&\fBno_renegotiation\fR alert. OpenSSL versions 0.9.8m and later will regard a \fBno_renegotiation\fR alert as fatal and respond with a fatal \&\fBhandshake_failure\fR alert. This is because the OpenSSL \s-1API\s0 currently has no provision to indicate to an application that a renegotiation attempt was refused. .SS "Patched OpenSSL client and unpatched server." .IX Subsection "Patched OpenSSL client and unpatched server." If the option \fB\s-1SSL_OP_LEGACY_SERVER_CONNECT\s0\fR or \&\fB\s-1SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION\s0\fR is set then initial connections and renegotiation between patched OpenSSL clients and unpatched servers succeeds. If neither option is set then initial connections to unpatched servers will fail. .PP The option \fB\s-1SSL_OP_LEGACY_SERVER_CONNECT\s0\fR is currently set by default even though it has security implications: otherwise it would be impossible to connect to unpatched servers (i.e. all of them initially) and this is clearly not acceptable. Renegotiation is permitted because this does not add any additional security issues: during an attack clients do not see any renegotiations anyway. .PP As more servers become patched the option \fB\s-1SSL_OP_LEGACY_SERVER_CONNECT\s0\fR will \&\fBnot\fR be set by default in a future version of OpenSSL. .PP OpenSSL client applications wishing to ensure they can connect to unpatched servers should always \fBset\fR \fB\s-1SSL_OP_LEGACY_SERVER_CONNECT\s0\fR .PP OpenSSL client applications that want to ensure they can \fBnot\fR connect to unpatched servers (and thus avoid any security issues) should always \fBclear\fR \&\fB\s-1SSL_OP_LEGACY_SERVER_CONNECT\s0\fR using \fISSL_CTX_clear_options()\fR or \&\fISSL_clear_options()\fR. .PP The difference between the \fB\s-1SSL_OP_LEGACY_SERVER_CONNECT\s0\fR and \&\fB\s-1SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION\s0\fR options is that \&\fB\s-1SSL_OP_LEGACY_SERVER_CONNECT\s0\fR enables initial connections and secure renegotiation between OpenSSL clients and unpatched servers \fBonly\fR, while \&\fB\s-1SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION\s0\fR allows initial connections and renegotiation between OpenSSL and unpatched clients or servers. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CTX_set_options()\fR and \fISSL_set_options()\fR return the new options bitmask after adding \fBoptions\fR. .PP \&\fISSL_CTX_clear_options()\fR and \fISSL_clear_options()\fR return the new options bitmask after clearing \fBoptions\fR. .PP \&\fISSL_CTX_get_options()\fR and \fISSL_get_options()\fR return the current bitmask. .PP \&\fISSL_get_secure_renegotiation_support()\fR returns 1 is the peer supports secure renegotiation and 0 if it does not. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_new\fR\|(3), \fISSL_clear\fR\|(3), \&\fISSL_CTX_set_tmp_dh_callback\fR\|(3), \&\fISSL_CTX_set_tmp_rsa_callback\fR\|(3), \&\fIdhparam\fR\|(1) .SH "HISTORY" .IX Header "HISTORY" \&\fB\s-1SSL_OP_CIPHER_SERVER_PREFERENCE\s0\fR and \&\fB\s-1SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION\s0\fR have been added in OpenSSL 0.9.7. .PP \&\fB\s-1SSL_OP_TLS_ROLLBACK_BUG\s0\fR has been added in OpenSSL 0.9.6 and was automatically enabled with \fB\s-1SSL_OP_ALL\s0\fR. As of 0.9.7, it is no longer included in \fB\s-1SSL_OP_ALL\s0\fR and must be explicitly set. .PP \&\fB\s-1SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS\s0\fR has been added in OpenSSL 0.9.6e. Versions up to OpenSSL 0.9.6c do not include the countermeasure that can be disabled with this option (in OpenSSL 0.9.6d, it was always enabled). .PP \&\fISSL_CTX_clear_options()\fR and \fISSL_clear_options()\fR were first added in OpenSSL 0.9.8m. .PP \&\fB\s-1SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION\s0\fR, \fB\s-1SSL_OP_LEGACY_SERVER_CONNECT\s0\fR and the function \fISSL_get_secure_renegotiation_support()\fR were first added in OpenSSL 0.9.8m. man3/BIO_should_retry.3000064400000022165147210533270010714 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BIO_should_retry 3" .TH BIO_should_retry 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BIO_should_retry, BIO_should_read, BIO_should_write, BIO_should_io_special, BIO_retry_type, BIO_should_retry, BIO_get_retry_BIO, BIO_get_retry_reason \- BIO retry functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& #define BIO_should_read(a) ((a)\->flags & BIO_FLAGS_READ) \& #define BIO_should_write(a) ((a)\->flags & BIO_FLAGS_WRITE) \& #define BIO_should_io_special(a) ((a)\->flags & BIO_FLAGS_IO_SPECIAL) \& #define BIO_retry_type(a) ((a)\->flags & BIO_FLAGS_RWS) \& #define BIO_should_retry(a) ((a)\->flags & BIO_FLAGS_SHOULD_RETRY) \& \& #define BIO_FLAGS_READ 0x01 \& #define BIO_FLAGS_WRITE 0x02 \& #define BIO_FLAGS_IO_SPECIAL 0x04 \& #define BIO_FLAGS_RWS (BIO_FLAGS_READ|BIO_FLAGS_WRITE|BIO_FLAGS_IO_SPECIAL) \& #define BIO_FLAGS_SHOULD_RETRY 0x08 \& \& BIO * BIO_get_retry_BIO(BIO *bio, int *reason); \& int BIO_get_retry_reason(BIO *bio); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions determine why a \s-1BIO\s0 is not able to read or write data. They will typically be called after a failed \fIBIO_read()\fR or \fIBIO_write()\fR call. .PP \&\fIBIO_should_retry()\fR is true if the call that produced this condition should then be retried at a later time. .PP If \fIBIO_should_retry()\fR is false then the cause is an error condition. .PP \&\fIBIO_should_read()\fR is true if the cause of the condition is that a \s-1BIO\s0 needs to read data. .PP \&\fIBIO_should_write()\fR is true if the cause of the condition is that a \s-1BIO\s0 needs to read data. .PP \&\fIBIO_should_io_special()\fR is true if some \*(L"special\*(R" condition, that is a reason other than reading or writing is the cause of the condition. .PP \&\fIBIO_retry_type()\fR returns a mask of the cause of a retry condition consisting of the values \fB\s-1BIO_FLAGS_READ\s0\fR, \fB\s-1BIO_FLAGS_WRITE\s0\fR, \&\fB\s-1BIO_FLAGS_IO_SPECIAL\s0\fR though current \s-1BIO\s0 types will only set one of these. .PP \&\fIBIO_get_retry_BIO()\fR determines the precise reason for the special condition, it returns the \s-1BIO\s0 that caused this condition and if \&\fBreason\fR is not \s-1NULL\s0 it contains the reason code. The meaning of the reason code and the action that should be taken depends on the type of \s-1BIO\s0 that resulted in this condition. .PP \&\fIBIO_get_retry_reason()\fR returns the reason for a special condition if passed the relevant \s-1BIO,\s0 for example as returned by \fIBIO_get_retry_BIO()\fR. .SH "NOTES" .IX Header "NOTES" If \fIBIO_should_retry()\fR returns false then the precise \*(L"error condition\*(R" depends on the \s-1BIO\s0 type that caused it and the return code of the \s-1BIO\s0 operation. For example if a call to \fIBIO_read()\fR on a socket \s-1BIO\s0 returns 0 and \fIBIO_should_retry()\fR is false then the cause will be that the connection closed. A similar condition on a file \s-1BIO\s0 will mean that it has reached \s-1EOF.\s0 Some \s-1BIO\s0 types may place additional information on the error queue. For more details see the individual \s-1BIO\s0 type manual pages. .PP If the underlying I/O structure is in a blocking mode almost all current \&\s-1BIO\s0 types will not request a retry, because the underlying I/O calls will not. If the application knows that the \s-1BIO\s0 type will never signal a retry then it need not call \fIBIO_should_retry()\fR after a failed \&\s-1BIO I/O\s0 call. This is typically done with file BIOs. .PP \&\s-1SSL\s0 BIOs are the only current exception to this rule: they can request a retry even if the underlying I/O structure is blocking, if a handshake occurs during a call to \fIBIO_read()\fR. An application can retry the failed call immediately or avoid this situation by setting \s-1SSL_MODE_AUTO_RETRY\s0 on the underlying \s-1SSL\s0 structure. .PP While an application may retry a failed non blocking call immediately this is likely to be very inefficient because the call will fail repeatedly until data can be processed or is available. An application will normally wait until the necessary condition is satisfied. How this is done depends on the underlying I/O structure. .PP For example if the cause is ultimately a socket and \fIBIO_should_read()\fR is true then a call to \fIselect()\fR may be made to wait until data is available and then retry the \s-1BIO\s0 operation. By combining the retry conditions of several non blocking BIOs in a single \fIselect()\fR call it is possible to service several BIOs in a single thread, though the performance may be poor if \s-1SSL\s0 BIOs are present because long delays can occur during the initial handshake process. .PP It is possible for a \s-1BIO\s0 to block indefinitely if the underlying I/O structure cannot process or return any data. This depends on the behaviour of the platforms I/O functions. This is often not desirable: one solution is to use non blocking I/O and use a timeout on the \fIselect()\fR (or equivalent) call. .SH "BUGS" .IX Header "BUGS" The OpenSSL \s-1ASN1\s0 functions cannot gracefully deal with non blocking I/O: that is they cannot retry after a partial read or write. This is usually worked around by only passing the relevant data to \s-1ASN1\s0 functions when the entire structure can be read or written. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\s-1TBA\s0 man3/EC_POINT_new.3000064400000027443147210533270007615 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EC_POINT_new 3" .TH EC_POINT_new 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EC_POINT_new, EC_POINT_free, EC_POINT_clear_free, EC_POINT_copy, EC_POINT_dup, EC_POINT_method_of, EC_POINT_set_to_infinity, EC_POINT_set_Jprojective_coordinates, EC_POINT_get_Jprojective_coordinates_GFp, EC_POINT_set_affine_coordinates_GFp, EC_POINT_get_affine_coordinates_GFp, EC_POINT_set_compressed_coordinates_GFp, EC_POINT_set_affine_coordinates_GF2m, EC_POINT_get_affine_coordinates_GF2m, EC_POINT_set_compressed_coordinates_GF2m, EC_POINT_point2oct, EC_POINT_oct2point, EC_POINT_point2bn, EC_POINT_bn2point, EC_POINT_point2hex, EC_POINT_hex2point \- Functions for creating, destroying and manipulating EC_POINT objects. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& #include \& #include \& \& EC_POINT *EC_POINT_new(const EC_GROUP *group); \& void EC_POINT_free(EC_POINT *point); \& void EC_POINT_clear_free(EC_POINT *point); \& int EC_POINT_copy(EC_POINT *dst, const EC_POINT *src); \& EC_POINT *EC_POINT_dup(const EC_POINT *src, const EC_GROUP *group); \& const EC_METHOD *EC_POINT_method_of(const EC_POINT *point); \& int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point); \& int EC_POINT_set_Jprojective_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, \& const BIGNUM *x, const BIGNUM *y, const BIGNUM *z, BN_CTX *ctx); \& int EC_POINT_get_Jprojective_coordinates_GFp(const EC_GROUP *group, \& const EC_POINT *p, BIGNUM *x, BIGNUM *y, BIGNUM *z, BN_CTX *ctx); \& int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, \& const BIGNUM *x, const BIGNUM *y, BN_CTX *ctx); \& int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group, \& const EC_POINT *p, BIGNUM *x, BIGNUM *y, BN_CTX *ctx); \& int EC_POINT_set_compressed_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, \& const BIGNUM *x, int y_bit, BN_CTX *ctx); \& int EC_POINT_set_affine_coordinates_GF2m(const EC_GROUP *group, EC_POINT *p, \& const BIGNUM *x, const BIGNUM *y, BN_CTX *ctx); \& int EC_POINT_get_affine_coordinates_GF2m(const EC_GROUP *group, \& const EC_POINT *p, BIGNUM *x, BIGNUM *y, BN_CTX *ctx); \& int EC_POINT_set_compressed_coordinates_GF2m(const EC_GROUP *group, EC_POINT *p, \& const BIGNUM *x, int y_bit, BN_CTX *ctx); \& size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *p, \& point_conversion_form_t form, \& unsigned char *buf, size_t len, BN_CTX *ctx); \& int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *p, \& const unsigned char *buf, size_t len, BN_CTX *ctx); \& BIGNUM *EC_POINT_point2bn(const EC_GROUP *, const EC_POINT *, \& point_conversion_form_t form, BIGNUM *, BN_CTX *); \& EC_POINT *EC_POINT_bn2point(const EC_GROUP *, const BIGNUM *, \& EC_POINT *, BN_CTX *); \& char *EC_POINT_point2hex(const EC_GROUP *, const EC_POINT *, \& point_conversion_form_t form, BN_CTX *); \& EC_POINT *EC_POINT_hex2point(const EC_GROUP *, const char *, \& EC_POINT *, BN_CTX *); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" An \s-1EC_POINT\s0 represents a point on a curve. A new point is constructed by calling the function EC_POINT_new and providing the \fBgroup\fR object that the point relates to. .PP EC_POINT_free frees the memory associated with the \s-1EC_POINT.\s0 .PP EC_POINT_clear_free destroys any sensitive data held within the \s-1EC_POINT\s0 and then frees its memory. .PP EC_POINT_copy copies the point \fBsrc\fR into \fBdst\fR. Both \fBsrc\fR and \fBdst\fR must use the same \s-1EC_METHOD.\s0 .PP EC_POINT_dup creates a new \s-1EC_POINT\s0 object and copies the content from \fBsrc\fR to the newly created \&\s-1EC_POINT\s0 object. .PP EC_POINT_method_of obtains the \s-1EC_METHOD\s0 associated with \fBpoint\fR. .PP A valid point on a curve is the special point at infinity. A point is set to be at infinity by calling EC_POINT_set_to_infinity. .PP The affine co-ordinates for a point describe a point in terms of its x and y position. The functions EC_POINT_set_affine_coordinates_GFp and EC_POINT_set_affine_coordinates_GF2m set the \fBx\fR and \fBy\fR co-ordinates for the point \&\fBp\fR defined over the curve given in \fBgroup\fR. .PP As well as the affine co-ordinates, a point can alternatively be described in terms of its Jacobian projective co-ordinates (for Fp curves only). Jacobian projective co-ordinates are expressed as three values x, y and z. Working in this co-ordinate system provides more efficient point multiplication operations. A mapping exists between Jacobian projective co-ordinates and affine co-ordinates. A Jacobian projective co-ordinate (x, y, z) can be written as an affine co-ordinate as (x/(z^2), y/(z^3)). Conversion to Jacobian projective to affine co-ordinates is simple. The co-ordinate (x, y) is mapped to (x, y, 1). To set or get the projective co-ordinates use EC_POINT_set_Jprojective_coordinates_GFp and EC_POINT_get_Jprojective_coordinates_GFp respectively. .PP Points can also be described in terms of their compressed co-ordinates. For a point (x, y), for any given value for x such that the point is on the curve there will only ever be two possible values for y. Therefore a point can be set using the EC_POINT_set_compressed_coordinates_GFp and EC_POINT_set_compressed_coordinates_GF2m functions where \fBx\fR is the x co-ordinate and \fBy_bit\fR is a value 0 or 1 to identify which of the two possible values for y should be used. .PP In addition EC_POINTs can be converted to and from various external representations. Supported representations are octet strings, BIGNUMs and hexadecimal. Octet strings are stored in a buffer along with an associated buffer length. A point held in a \s-1BIGNUM\s0 is calculated by converting the point to an octet string and then converting that octet string into a \s-1BIGNUM\s0 integer. Points in hexadecimal format are stored in a \s-1NULL\s0 terminated character string where each character is one of the printable values 0\-9 or A\-F (or a\-f). .PP The functions EC_POINT_point2oct, EC_POINT_oct2point, EC_POINT_point2bn, EC_POINT_bn2point, EC_POINT_point2hex and EC_POINT_hex2point convert from and to EC_POINTs for the formats: octet string, \s-1BIGNUM\s0 and hexadecimal respectively. .PP The function EC_POINT_point2oct must be supplied with a buffer long enough to store the octet string. The return value provides the number of octets stored. Calling the function with a \s-1NULL\s0 buffer will not perform the conversion but will still return the required buffer length. .PP The function EC_POINT_point2hex will allocate sufficient memory to store the hexadecimal string. It is the caller's responsibility to free this memory with a subsequent call to \fIOPENSSL_free()\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" EC_POINT_new and EC_POINT_dup return the newly allocated \s-1EC_POINT\s0 or \s-1NULL\s0 on error. .PP The following functions return 1 on success or 0 on error: EC_POINT_copy, EC_POINT_set_to_infinity, EC_POINT_set_Jprojective_coordinates_GFp, EC_POINT_get_Jprojective_coordinates_GFp, EC_POINT_set_affine_coordinates_GFp, EC_POINT_get_affine_coordinates_GFp, EC_POINT_set_compressed_coordinates_GFp, EC_POINT_set_affine_coordinates_GF2m, EC_POINT_get_affine_coordinates_GF2m, EC_POINT_set_compressed_coordinates_GF2m and EC_POINT_oct2point. .PP EC_POINT_method_of returns the \s-1EC_METHOD\s0 associated with the supplied \s-1EC_POINT.\s0 .PP EC_POINT_point2oct returns the length of the required buffer, or 0 on error. .PP EC_POINT_point2bn returns the pointer to the \s-1BIGNUM\s0 supplied, or \s-1NULL\s0 on error. .PP EC_POINT_bn2point returns the pointer to the \s-1EC_POINT\s0 supplied, or \s-1NULL\s0 on error. .PP EC_POINT_point2hex returns a pointer to the hex string, or \s-1NULL\s0 on error. .PP EC_POINT_hex2point returns the pointer to the \s-1EC_POINT\s0 supplied, or \s-1NULL\s0 on error. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIcrypto\fR\|(3), \fIec\fR\|(3), \fIEC_GROUP_new\fR\|(3), \fIEC_GROUP_copy\fR\|(3), \&\fIEC_POINT_add\fR\|(3), \fIEC_KEY_new\fR\|(3), \&\fIEC_GFp_simple_method\fR\|(3), \fId2i_ECPKParameters\fR\|(3) man3/d2i_X509.3000064400000032462147210533270006704 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "d2i_X509 3" .TH d2i_X509 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" d2i_X509, i2d_X509, d2i_X509_bio, d2i_X509_fp, i2d_X509_bio, i2d_X509_fp \- X509 encode and decode functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& X509 *d2i_X509(X509 **px, const unsigned char **in, long len); \& X509 *d2i_X509_AUX(X509 **px, const unsigned char **in, long len); \& int i2d_X509(X509 *x, unsigned char **out); \& int i2d_X509_AUX(X509 *x, unsigned char **out); \& \& X509 *d2i_X509_bio(BIO *bp, X509 **x); \& X509 *d2i_X509_fp(FILE *fp, X509 **x); \& \& int i2d_X509_bio(BIO *bp, X509 *x); \& int i2d_X509_fp(FILE *fp, X509 *x); \& \& int i2d_re_X509_tbs(X509 *x, unsigned char **out); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The X509 encode and decode routines encode and parse an \&\fBX509\fR structure, which represents an X509 certificate. .PP \&\fId2i_X509()\fR attempts to decode \fBlen\fR bytes at \fB*in\fR. If successful a pointer to the \fBX509\fR structure is returned. If an error occurred then \fB\s-1NULL\s0\fR is returned. If \fBpx\fR is not \fB\s-1NULL\s0\fR then the returned structure is written to \fB*px\fR. If \fB*px\fR is not \fB\s-1NULL\s0\fR then it is assumed that \fB*px\fR contains a valid \fBX509\fR structure and an attempt is made to reuse it. This \*(L"reuse\*(R" capability is present for historical compatibility but its use is \fBstrongly discouraged\fR (see \s-1BUGS\s0 below, and the discussion in the \s-1RETURN VALUES\s0 section). .PP If the call is successful \fB*in\fR is incremented to the byte following the parsed data. .PP \&\fId2i_X509_AUX()\fR is similar to \fId2i_X509()\fR but the input is expected to consist of an X509 certificate followed by auxiliary trust information. This is used by the \s-1PEM\s0 routines to read \*(L"\s-1TRUSTED CERTIFICATE\*(R"\s0 objects. This function should not be called on untrusted input. .PP \&\fIi2d_X509()\fR encodes the structure pointed to by \fBx\fR into \s-1DER\s0 format. If \fBout\fR is not \fB\s-1NULL\s0\fR is writes the \s-1DER\s0 encoded data to the buffer at \fB*out\fR, and increments it to point after the data just written. If the return value is negative an error occurred, otherwise it returns the length of the encoded data. .PP For OpenSSL 0.9.7 and later if \fB*out\fR is \fB\s-1NULL\s0\fR memory will be allocated for a buffer and the encoded data written to it. In this case \fB*out\fR is not incremented and it points to the start of the data just written. .PP \&\fIi2d_X509_AUX()\fR is similar to \fIi2d_X509()\fR, but the encoded output contains both the certificate and any auxiliary trust information. This is used by the \s-1PEM\s0 routines to write \*(L"\s-1TRUSTED CERTIFICATE\*(R"\s0 objects. Note, this is a non-standard OpenSSL-specific data format. .PP \&\fId2i_X509_bio()\fR is similar to \fId2i_X509()\fR except it attempts to parse data from \s-1BIO \s0\fBbp\fR. .PP \&\fId2i_X509_fp()\fR is similar to \fId2i_X509()\fR except it attempts to parse data from \s-1FILE\s0 pointer \fBfp\fR. .PP \&\fIi2d_X509_bio()\fR is similar to \fIi2d_X509()\fR except it writes the encoding of the structure \fBx\fR to \s-1BIO \s0\fBbp\fR and it returns 1 for success and 0 for failure. .PP \&\fIi2d_X509_fp()\fR is similar to \fIi2d_X509()\fR except it writes the encoding of the structure \fBx\fR to \s-1BIO \s0\fBbp\fR and it returns 1 for success and 0 for failure. .PP \&\fIi2d_re_X509_tbs()\fR is similar to \fIi2d_X509()\fR except it encodes only the TBSCertificate portion of the certificate. .SH "NOTES" .IX Header "NOTES" The letters \fBi\fR and \fBd\fR in for example \fBi2d_X509\fR stand for \&\*(L"internal\*(R" (that is an internal C structure) and \*(L"\s-1DER\*(R".\s0 So \&\fBi2d_X509\fR converts from internal to \s-1DER.\s0 The \*(L"re\*(R" in \&\fBi2d_re_X509_tbs\fR stands for \*(L"re-encode\*(R", and ensures that a fresh encoding is generated in case the object has been modified after creation (see the \s-1BUGS\s0 section). .PP The functions can also understand \fB\s-1BER\s0\fR forms. .PP The actual X509 structure passed to \fIi2d_X509()\fR must be a valid populated \fBX509\fR structure it can \fBnot\fR simply be fed with an empty structure such as that returned by \fIX509_new()\fR. .PP The encoded data is in binary form and may contain embedded zeroes. Therefore any \s-1FILE\s0 pointers or BIOs should be opened in binary mode. Functions such as \fB\f(BIstrlen()\fB\fR will \fBnot\fR return the correct length of the encoded structure. .PP The ways that \fB*in\fR and \fB*out\fR are incremented after the operation can trap the unwary. See the \fB\s-1WARNINGS\s0\fR section for some common errors. .PP The reason for the auto increment behaviour is to reflect a typical usage of \s-1ASN1\s0 functions: after one structure is encoded or decoded another will processed after it. .SH "EXAMPLES" .IX Header "EXAMPLES" Allocate and encode the \s-1DER\s0 encoding of an X509 structure: .PP .Vb 2 \& int len; \& unsigned char *buf, *p; \& \& len = i2d_X509(x, NULL); \& \& buf = OPENSSL_malloc(len); \& \& if (buf == NULL) \& /* error */ \& \& p = buf; \& \& i2d_X509(x, &p); .Ve .PP If you are using OpenSSL 0.9.7 or later then this can be simplified to: .PP .Vb 2 \& int len; \& unsigned char *buf; \& \& buf = NULL; \& \& len = i2d_X509(x, &buf); \& \& if (len < 0) \& /* error */ .Ve .PP Attempt to decode a buffer: .PP .Vb 1 \& X509 *x; \& \& unsigned char *buf, *p; \& \& int len; \& \& /* Something to setup buf and len */ \& \& p = buf; \& \& x = d2i_X509(NULL, &p, len); \& \& if (x == NULL) \& /* Some error */ .Ve .PP Alternative technique: .PP .Vb 1 \& X509 *x; \& \& unsigned char *buf, *p; \& \& int len; \& \& /* Something to setup buf and len */ \& \& p = buf; \& \& x = NULL; \& \& if(!d2i_X509(&x, &p, len)) \& /* Some error */ .Ve .SH "WARNINGS" .IX Header "WARNINGS" The use of temporary variable is mandatory. A common mistake is to attempt to use a buffer directly as follows: .PP .Vb 2 \& int len; \& unsigned char *buf; \& \& len = i2d_X509(x, NULL); \& \& buf = OPENSSL_malloc(len); \& \& if (buf == NULL) \& /* error */ \& \& i2d_X509(x, &buf); \& \& /* Other stuff ... */ \& \& OPENSSL_free(buf); .Ve .PP This code will result in \fBbuf\fR apparently containing garbage because it was incremented after the call to point after the data just written. Also \fBbuf\fR will no longer contain the pointer allocated by \fB\f(BIOPENSSL_malloc()\fB\fR and the subsequent call to \fB\f(BIOPENSSL_free()\fB\fR may well crash. .PP The auto allocation feature (setting buf to \s-1NULL\s0) only works on OpenSSL 0.9.7 and later. Attempts to use it on earlier versions will typically cause a segmentation violation. .PP Another trap to avoid is misuse of the \fBxp\fR argument to \fB\f(BId2i_X509()\fB\fR: .PP .Vb 1 \& X509 *x; \& \& if (!d2i_X509(&x, &p, len)) \& /* Some error */ .Ve .PP This will probably crash somewhere in \fB\f(BId2i_X509()\fB\fR. The reason for this is that the variable \fBx\fR is uninitialized and an attempt will be made to interpret its (invalid) value as an \fBX509\fR structure, typically causing a segmentation violation. If \fBx\fR is set to \s-1NULL\s0 first then this will not happen. .SH "BUGS" .IX Header "BUGS" In some versions of OpenSSL the \*(L"reuse\*(R" behaviour of \fId2i_X509()\fR when \&\fB*px\fR is valid is broken and some parts of the reused structure may persist if they are not present in the new one. As a result the use of this \*(L"reuse\*(R" behaviour is strongly discouraged. .PP \&\fIi2d_X509()\fR will not return an error in many versions of OpenSSL, if mandatory fields are not initialized due to a programming error then the encoded structure may contain invalid data or omit the fields entirely and will not be parsed by \fId2i_X509()\fR. This may be fixed in future so code should not assume that \fIi2d_X509()\fR will always succeed. .PP The encoding of the TBSCertificate portion of a certificate is cached in the \fBX509\fR structure internally to improve encoding performance and to ensure certificate signatures are verified correctly in some certificates with broken (non-DER) encodings. .PP Any function which encodes an X509 structure such as \fIi2d_X509()\fR, \&\fIi2d_X509_fp()\fR or \fIi2d_X509_bio()\fR may return a stale encoding if the \&\fBX509\fR structure has been modified after deserialization or previous serialization. .PP If, after modification, the \fBX509\fR object is re-signed with \fIX509_sign()\fR, the encoding is automatically renewed. Otherwise, the encoding of the TBSCertificate portion of the \fBX509\fR can be manually renewed by calling \&\fIi2d_re_X509_tbs()\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fId2i_X509()\fR, \fId2i_X509_bio()\fR and \fId2i_X509_fp()\fR return a valid \fBX509\fR structure or \fB\s-1NULL\s0\fR if an error occurs. The error code that can be obtained by \&\fIERR_get_error\fR\|(3). If the \*(L"reuse\*(R" capability has been used with a valid X509 structure being passed in via \fBpx\fR then the object is not freed in the event of error but may be in a potentially invalid or inconsistent state. .PP \&\fIi2d_X509()\fR returns the number of bytes successfully encoded or a negative value if an error occurs. The error code can be obtained by \&\fIERR_get_error\fR\|(3). .PP \&\fIi2d_X509_bio()\fR and \fIi2d_X509_fp()\fR return 1 for success and 0 if an error occurs The error code can be obtained by \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" d2i_X509, i2d_X509, d2i_X509_bio, d2i_X509_fp, i2d_X509_bio and i2d_X509_fp are available in all versions of SSLeay and OpenSSL. man3/EVP_PKEY_set1_RSA.3000064400000015643147210533270010426 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EVP_PKEY_set1_RSA 3" .TH EVP_PKEY_set1_RSA 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EVP_PKEY_set1_RSA, EVP_PKEY_set1_DSA, EVP_PKEY_set1_DH, EVP_PKEY_set1_EC_KEY, EVP_PKEY_get1_RSA, EVP_PKEY_get1_DSA, EVP_PKEY_get1_DH, EVP_PKEY_get1_EC_KEY, EVP_PKEY_assign_RSA, EVP_PKEY_assign_DSA, EVP_PKEY_assign_DH, EVP_PKEY_assign_EC_KEY, EVP_PKEY_type \- EVP_PKEY assignment functions. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int EVP_PKEY_set1_RSA(EVP_PKEY *pkey,RSA *key); \& int EVP_PKEY_set1_DSA(EVP_PKEY *pkey,DSA *key); \& int EVP_PKEY_set1_DH(EVP_PKEY *pkey,DH *key); \& int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey,EC_KEY *key); \& \& RSA *EVP_PKEY_get1_RSA(EVP_PKEY *pkey); \& DSA *EVP_PKEY_get1_DSA(EVP_PKEY *pkey); \& DH *EVP_PKEY_get1_DH(EVP_PKEY *pkey); \& EC_KEY *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey); \& \& int EVP_PKEY_assign_RSA(EVP_PKEY *pkey,RSA *key); \& int EVP_PKEY_assign_DSA(EVP_PKEY *pkey,DSA *key); \& int EVP_PKEY_assign_DH(EVP_PKEY *pkey,DH *key); \& int EVP_PKEY_assign_EC_KEY(EVP_PKEY *pkey,EC_KEY *key); \& \& int EVP_PKEY_type(int type); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIEVP_PKEY_set1_RSA()\fR, \fIEVP_PKEY_set1_DSA()\fR, \fIEVP_PKEY_set1_DH()\fR and \&\fIEVP_PKEY_set1_EC_KEY()\fR set the key referenced by \fBpkey\fR to \fBkey\fR. .PP \&\fIEVP_PKEY_get1_RSA()\fR, \fIEVP_PKEY_get1_DSA()\fR, \fIEVP_PKEY_get1_DH()\fR and \&\fIEVP_PKEY_get1_EC_KEY()\fR return the referenced key in \fBpkey\fR or \&\fB\s-1NULL\s0\fR if the key is not of the correct type. .PP \&\fIEVP_PKEY_assign_RSA()\fR, \fIEVP_PKEY_assign_DSA()\fR, \fIEVP_PKEY_assign_DH()\fR and \fIEVP_PKEY_assign_EC_KEY()\fR also set the referenced key to \fBkey\fR however these use the supplied \fBkey\fR internally and so \fBkey\fR will be freed when the parent \fBpkey\fR is freed. .PP \&\fIEVP_PKEY_type()\fR returns the type of key corresponding to the value \&\fBtype\fR. The type of a key can be obtained with EVP_PKEY_type(pkey\->type). The return value will be \s-1EVP_PKEY_RSA, EVP_PKEY_DSA, EVP_PKEY_DH\s0 or \s-1EVP_PKEY_EC\s0 for the corresponding key types or NID_undef if the key type is unassigned. .SH "NOTES" .IX Header "NOTES" In accordance with the OpenSSL naming convention the key obtained from or assigned to the \fBpkey\fR using the \fB1\fR functions must be freed as well as \fBpkey\fR. .PP \&\fIEVP_PKEY_assign_RSA()\fR, \fIEVP_PKEY_assign_DSA()\fR, \fIEVP_PKEY_assign_DH()\fR and \fIEVP_PKEY_assign_EC_KEY()\fR are implemented as macros. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIEVP_PKEY_set1_RSA()\fR, \fIEVP_PKEY_set1_DSA()\fR, \fIEVP_PKEY_set1_DH()\fR and \&\fIEVP_PKEY_set1_EC_KEY()\fR return 1 for success or 0 for failure. .PP \&\fIEVP_PKEY_get1_RSA()\fR, \fIEVP_PKEY_get1_DSA()\fR, \fIEVP_PKEY_get1_DH()\fR and \&\fIEVP_PKEY_get1_EC_KEY()\fR return the referenced key or \fB\s-1NULL\s0\fR if an error occurred. .PP \&\fIEVP_PKEY_assign_RSA()\fR, \fIEVP_PKEY_assign_DSA()\fR, \fIEVP_PKEY_assign_DH()\fR and \fIEVP_PKEY_assign_EC_KEY()\fR return 1 for success and 0 for failure. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIEVP_PKEY_new\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1TBA\s0 man3/X509_check_host.3000064400000024306147210533270010336 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "X509_check_host 3" .TH X509_check_host 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" X509_check_host, X509_check_email, X509_check_ip, X509_check_ip_asc \- X.509 certificate matching .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int X509_check_host(X509 *, const char *name, size_t namelen, \& unsigned int flags, char **peername); \& int X509_check_email(X509 *, const char *address, size_t addresslen, \& unsigned int flags); \& int X509_check_ip(X509 *, const unsigned char *address, size_t addresslen, \& unsigned int flags); \& int X509_check_ip_asc(X509 *, const char *address, unsigned int flags); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The certificate matching functions are used to check whether a certificate matches a given host name, email address, or \s-1IP\s0 address. The validity of the certificate and its trust level has to be checked by other means. .PP \&\fIX509_check_host()\fR checks if the certificate Subject Alternative Name (\s-1SAN\s0) or Subject CommonName (\s-1CN\s0) matches the specified host name, which must be encoded in the preferred name syntax described in section 3.5 of \s-1RFC 1034. \s0 By default, wildcards are supported and they match only in the left-most label; but they may match part of that label with an explicit prefix or suffix. For example, by default, the host \fBname\fR \*(L"www.example.com\*(R" would match a certificate with a \s-1SAN\s0 or \s-1CN\s0 value of \*(L"*.example.com\*(R", \*(L"w*.example.com\*(R" or \*(L"*w.example.com\*(R". .PP Per section 6.4.2 of \s-1RFC 6125, \s0\fBname\fR values representing international domain names must be given in A\-label form. The \fBnamelen\fR argument must be the number of characters in the name string or zero in which case the length is calculated with strlen(\fBname\fR). When \fBname\fR starts with a dot (e.g \*(L".example.com\*(R"), it will be matched by a certificate valid for any sub-domain of \fBname\fR, (see also \&\fBX509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS\fR below). .PP When the certificate is matched, and \fBpeername\fR is not \s-1NULL,\s0 a pointer to a copy of the matching \s-1SAN\s0 or \s-1CN\s0 from the peer certificate is stored at the address passed in \fBpeername\fR. The application is responsible for freeing the peername via \fIOPENSSL_free()\fR when it is no longer needed. .PP \&\fIX509_check_email()\fR checks if the certificate matches the specified email \fBaddress\fR. Only the mailbox syntax of \s-1RFC 822\s0 is supported, comments are not allowed, and no attempt is made to normalize quoted characters. The \fBaddresslen\fR argument must be the number of characters in the address string or zero in which case the length is calculated with strlen(\fBaddress\fR). .PP \&\fIX509_check_ip()\fR checks if the certificate matches a specified IPv4 or IPv6 address. The \fBaddress\fR array is in binary format, in network byte order. The length is either 4 (IPv4) or 16 (IPv6). Only explicitly marked addresses in the certificates are considered; \s-1IP\s0 addresses stored in \s-1DNS\s0 names and Common Names are ignored. .PP \&\fIX509_check_ip_asc()\fR is similar, except that the NUL-terminated string \fBaddress\fR is first converted to the internal representation. .PP The \fBflags\fR argument is usually 0. It can be the bitwise \s-1OR\s0 of the flags: .IP "\fBX509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT\fR," 4 .IX Item "X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT," .PD 0 .IP "\fBX509_CHECK_FLAG_NO_WILDCARDS\fR," 4 .IX Item "X509_CHECK_FLAG_NO_WILDCARDS," .IP "\fBX509_CHECK_FLAG_NO_PARTIAL_WILDCARDS\fR," 4 .IX Item "X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS," .IP "\fBX509_CHECK_FLAG_MULTI_LABEL_WILDCARDS\fR." 4 .IX Item "X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS." .IP "\fBX509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS\fR." 4 .IX Item "X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS." .PD .PP The \fBX509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT\fR flag causes the function to consider the subject \s-1DN\s0 even if the certificate contains at least one subject alternative name of the right type (\s-1DNS\s0 name or email address as appropriate); the default is to ignore the subject \s-1DN\s0 when at least one corresponding subject alternative names is present. .PP If set, \fBX509_CHECK_FLAG_NO_WILDCARDS\fR disables wildcard expansion; this only applies to \fBX509_check_host\fR. .PP If set, \fBX509_CHECK_FLAG_NO_PARTIAL_WILDCARDS\fR suppresses support for \*(L"*\*(R" as wildcard pattern in labels that have a prefix or suffix, such as: \*(L"www*\*(R" or \*(L"*www\*(R"; this only aplies to \fBX509_check_host\fR. .PP If set, \fBX509_CHECK_FLAG_MULTI_LABEL_WILDCARDS\fR allows a \*(L"*\*(R" that constitutes the complete label of a \s-1DNS\s0 name (e.g. \*(L"*.example.com\*(R") to match more than one label in \fBname\fR; this flag only applies to \fBX509_check_host\fR. .PP If set, \fBX509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS\fR restricts \fBname\fR values which start with \*(L".\*(R", that would otherwise match any sub-domain in the peer certificate, to only match direct child sub-domains. Thus, for instance, with this flag set a \fBname\fR of \*(L".example.com\*(R" would match a peer certificate with a \s-1DNS\s0 name of \*(L"www.example.com\*(R", but would not match a peer certificate with a \s-1DNS\s0 name of \&\*(L"www.sub.example.com\*(R"; this flag only applies to \fBX509_check_host\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The functions return 1 for a successful match, 0 for a failed match and \-1 for an internal error: typically a memory allocation failure or an \s-1ASN.1\s0 decoding error. .PP All functions can also return \-2 if the input is malformed. For example, \&\fIX509_check_host()\fR returns \-2 if the provided \fBname\fR contains embedded NULs. .SH "NOTES" .IX Header "NOTES" Applications are encouraged to use \fIX509_VERIFY_PARAM_set1_host()\fR rather than explicitly calling \fIX509_check_host\fR\|(3). Host name checks are out of scope with the \s-1\fIDANE\-EE\s0\fR\|(3) certificate usage, and the internal checks will be suppressed as appropriate when \&\s-1DANE\s0 support is added to OpenSSL. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_get_verify_result\fR\|(3), \&\fIX509_VERIFY_PARAM_set1_host\fR\|(3), \&\fIX509_VERIFY_PARAM_add1_host\fR\|(3), \&\fIX509_VERIFY_PARAM_set1_email\fR\|(3), \&\fIX509_VERIFY_PARAM_set1_ip\fR\|(3), \&\fIX509_VERIFY_PARAM_set1_ipasc\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" These functions were added in OpenSSL 1.0.2. man3/SSL_SESSION_get_time.3000064400000014111147210533270011211 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_SESSION_get_time 3" .TH SSL_SESSION_get_time 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_SESSION_get_time, SSL_SESSION_set_time, SSL_SESSION_get_timeout, SSL_SESSION_set_timeout \- retrieve and manipulate session time and timeout settings .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& long SSL_SESSION_get_time(const SSL_SESSION *s); \& long SSL_SESSION_set_time(SSL_SESSION *s, long tm); \& long SSL_SESSION_get_timeout(const SSL_SESSION *s); \& long SSL_SESSION_set_timeout(SSL_SESSION *s, long tm); \& \& long SSL_get_time(const SSL_SESSION *s); \& long SSL_set_time(SSL_SESSION *s, long tm); \& long SSL_get_timeout(const SSL_SESSION *s); \& long SSL_set_timeout(SSL_SESSION *s, long tm); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_SESSION_get_time()\fR returns the time at which the session \fBs\fR was established. The time is given in seconds since the Epoch and therefore compatible to the time delivered by the \fItime()\fR call. .PP \&\fISSL_SESSION_set_time()\fR replaces the creation time of the session \fBs\fR with the chosen value \fBtm\fR. .PP \&\fISSL_SESSION_get_timeout()\fR returns the timeout value set for session \fBs\fR in seconds. .PP \&\fISSL_SESSION_set_timeout()\fR sets the timeout value for session \fBs\fR in seconds to \fBtm\fR. .PP The \fISSL_get_time()\fR, \fISSL_set_time()\fR, \fISSL_get_timeout()\fR, and \fISSL_set_timeout()\fR functions are synonyms for the SSL_SESSION_*() counterparts. .SH "NOTES" .IX Header "NOTES" Sessions are expired by examining the creation time and the timeout value. Both are set at creation time of the session to the actual time and the default timeout value at creation, respectively, as set by \&\fISSL_CTX_set_timeout\fR\|(3). Using these functions it is possible to extend or shorten the lifetime of the session. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_SESSION_get_time()\fR and \fISSL_SESSION_get_timeout()\fR return the currently valid values. .PP \&\fISSL_SESSION_set_time()\fR and \fISSL_SESSION_set_timeout()\fR return 1 on success. .PP If any of the function is passed the \s-1NULL\s0 pointer for the session \fBs\fR, 0 is returned. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \&\fISSL_CTX_set_timeout\fR\|(3), \&\fISSL_get_default_timeout\fR\|(3) man3/RAND_load_file.3000064400000013225147210533270010217 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RAND_load_file 3" .TH RAND_load_file 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" RAND_load_file, RAND_write_file, RAND_file_name \- PRNG seed file .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& const char *RAND_file_name(char *buf, size_t num); \& \& int RAND_load_file(const char *filename, long max_bytes); \& \& int RAND_write_file(const char *filename); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIRAND_file_name()\fR generates a default path for the random seed file. \fBbuf\fR points to a buffer of size \fBnum\fR in which to store the filename. The seed file is \f(CW$RANDFILE\fR if that environment variable is set, \f(CW$HOME\fR/.rnd otherwise. If \f(CW$HOME\fR is not set either, or \fBnum\fR is too small for the path name, an error occurs. .PP \&\fIRAND_load_file()\fR reads a number of bytes from file \fBfilename\fR and adds them to the \s-1PRNG.\s0 If \fBmax_bytes\fR is non-negative, up to to \fBmax_bytes\fR are read; starting with OpenSSL 0.9.5, if \fBmax_bytes\fR is \-1, the complete file is read. .PP \&\fIRAND_write_file()\fR writes a number of random bytes (currently 1024) to file \fBfilename\fR which can be used to initialize the \s-1PRNG\s0 by calling \&\fIRAND_load_file()\fR in a later session. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIRAND_load_file()\fR returns the number of bytes read. .PP \&\fIRAND_write_file()\fR returns the number of bytes written, and \-1 if the bytes written were generated without appropriate seed. .PP \&\fIRAND_file_name()\fR returns a pointer to \fBbuf\fR on success, and \s-1NULL\s0 on error. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIrand\fR\|(3), \fIRAND_add\fR\|(3), \fIRAND_cleanup\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIRAND_load_file()\fR, \fIRAND_write_file()\fR and \fIRAND_file_name()\fR are available in all versions of SSLeay and OpenSSL. man3/BIO_s_bio.3000064400000030647147210533270007270 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BIO_s_bio 3" .TH BIO_s_bio 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BIO_s_bio, BIO_make_bio_pair, BIO_destroy_bio_pair, BIO_shutdown_wr, BIO_set_write_buf_size, BIO_get_write_buf_size, BIO_new_bio_pair, BIO_get_write_guarantee, BIO_ctrl_get_write_guarantee, BIO_get_read_request, BIO_ctrl_get_read_request, BIO_ctrl_reset_read_request \- BIO pair BIO .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& BIO_METHOD *BIO_s_bio(void); \& \& #define BIO_make_bio_pair(b1,b2) (int)BIO_ctrl(b1,BIO_C_MAKE_BIO_PAIR,0,b2) \& #define BIO_destroy_bio_pair(b) (int)BIO_ctrl(b,BIO_C_DESTROY_BIO_PAIR,0,NULL) \& \& #define BIO_shutdown_wr(b) (int)BIO_ctrl(b, BIO_C_SHUTDOWN_WR, 0, NULL) \& \& #define BIO_set_write_buf_size(b,size) (int)BIO_ctrl(b,BIO_C_SET_WRITE_BUF_SIZE,size,NULL) \& #define BIO_get_write_buf_size(b,size) (size_t)BIO_ctrl(b,BIO_C_GET_WRITE_BUF_SIZE,size,NULL) \& \& int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, BIO **bio2, size_t writebuf2); \& \& #define BIO_get_write_guarantee(b) (int)BIO_ctrl(b,BIO_C_GET_WRITE_GUARANTEE,0,NULL) \& size_t BIO_ctrl_get_write_guarantee(BIO *b); \& \& #define BIO_get_read_request(b) (int)BIO_ctrl(b,BIO_C_GET_READ_REQUEST,0,NULL) \& size_t BIO_ctrl_get_read_request(BIO *b); \& \& int BIO_ctrl_reset_read_request(BIO *b); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBIO_s_bio()\fR returns the method for a \s-1BIO\s0 pair. A \s-1BIO\s0 pair is a pair of source/sink BIOs where data written to either half of the pair is buffered and can be read from the other half. Both halves must usually by handled by the same application thread since no locking is done on the internal data structures. .PP Since \s-1BIO\s0 chains typically end in a source/sink \s-1BIO\s0 it is possible to make this one half of a \s-1BIO\s0 pair and have all the data processed by the chain under application control. .PP One typical use of \s-1BIO\s0 pairs is to place \s-1TLS/SSL I/O\s0 under application control, this can be used when the application wishes to use a non standard transport for \&\s-1TLS/SSL\s0 or the normal socket routines are inappropriate. .PP Calls to \fIBIO_read()\fR will read data from the buffer or request a retry if no data is available. .PP Calls to \fIBIO_write()\fR will place data in the buffer or request a retry if the buffer is full. .PP The standard calls \fIBIO_ctrl_pending()\fR and \fIBIO_ctrl_wpending()\fR can be used to determine the amount of pending data in the read or write buffer. .PP \&\fIBIO_reset()\fR clears any data in the write buffer. .PP \&\fIBIO_make_bio_pair()\fR joins two separate BIOs into a connected pair. .PP \&\fIBIO_destroy_pair()\fR destroys the association between two connected BIOs. Freeing up any half of the pair will automatically destroy the association. .PP \&\fIBIO_shutdown_wr()\fR is used to close down a \s-1BIO \s0\fBb\fR. After this call no further writes on \s-1BIO \s0\fBb\fR are allowed (they will return an error). Reads on the other half of the pair will return any pending data or \s-1EOF\s0 when all pending data has been read. .PP \&\fIBIO_set_write_buf_size()\fR sets the write buffer size of \s-1BIO \s0\fBb\fR to \fBsize\fR. If the size is not initialized a default value is used. This is currently 17K, sufficient for a maximum size \s-1TLS\s0 record. .PP \&\fIBIO_get_write_buf_size()\fR returns the size of the write buffer. .PP \&\fIBIO_new_bio_pair()\fR combines the calls to \fIBIO_new()\fR, \fIBIO_make_bio_pair()\fR and \&\fIBIO_set_write_buf_size()\fR to create a connected pair of BIOs \fBbio1\fR, \fBbio2\fR with write buffer sizes \fBwritebuf1\fR and \fBwritebuf2\fR. If either size is zero then the default size is used. \fIBIO_new_bio_pair()\fR does not check whether \&\fBbio1\fR or \fBbio2\fR do point to some other \s-1BIO,\s0 the values are overwritten, \&\fIBIO_free()\fR is not called. .PP \&\fIBIO_get_write_guarantee()\fR and \fIBIO_ctrl_get_write_guarantee()\fR return the maximum length of data that can be currently written to the \s-1BIO.\s0 Writes larger than this value will return a value from \fIBIO_write()\fR less than the amount requested or if the buffer is full request a retry. \fIBIO_ctrl_get_write_guarantee()\fR is a function whereas \fIBIO_get_write_guarantee()\fR is a macro. .PP \&\fIBIO_get_read_request()\fR and \fIBIO_ctrl_get_read_request()\fR return the amount of data requested, or the buffer size if it is less, if the last read attempt at the other half of the \s-1BIO\s0 pair failed due to an empty buffer. This can be used to determine how much data should be written to the \s-1BIO\s0 so the next read will succeed: this is most useful in \s-1TLS/SSL\s0 applications where the amount of data read is usually meaningful rather than just a buffer size. After a successful read this call will return zero. It also will return zero once new data has been written satisfying the read request or part of it. Note that \fIBIO_get_read_request()\fR never returns an amount larger than that returned by \fIBIO_get_write_guarantee()\fR. .PP \&\fIBIO_ctrl_reset_read_request()\fR can also be used to reset the value returned by \&\fIBIO_get_read_request()\fR to zero. .SH "NOTES" .IX Header "NOTES" Both halves of a \s-1BIO\s0 pair should be freed. That is even if one half is implicit freed due to a \fIBIO_free_all()\fR or \fISSL_free()\fR call the other half needs to be freed. .PP When used in bidirectional applications (such as \s-1TLS/SSL\s0) care should be taken to flush any data in the write buffer. This can be done by calling \fIBIO_pending()\fR on the other half of the pair and, if any data is pending, reading it and sending it to the underlying transport. This must be done before any normal processing (such as calling \fIselect()\fR ) due to a request and \fIBIO_should_read()\fR being true. .PP To see why this is important consider a case where a request is sent using \&\fIBIO_write()\fR and a response read with \fIBIO_read()\fR, this can occur during an \&\s-1TLS/SSL\s0 handshake for example. \fIBIO_write()\fR will succeed and place data in the write buffer. \fIBIO_read()\fR will initially fail and \fIBIO_should_read()\fR will be true. If the application then waits for data to be available on the underlying transport before flushing the write buffer it will never succeed because the request was never sent! .PP \&\fIBIO_eof()\fR is true if no data is in the peer \s-1BIO\s0 and the peer \s-1BIO\s0 has been shutdown. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBIO_new_bio_pair()\fR returns 1 on success, with the new BIOs available in \&\fBbio1\fR and \fBbio2\fR, or 0 on failure, with \s-1NULL\s0 pointers stored into the locations for \fBbio1\fR and \fBbio2\fR. Check the error stack for more information. .PP [\s-1XXXXX:\s0 More return values need to be added here] .SH "EXAMPLE" .IX Header "EXAMPLE" The \s-1BIO\s0 pair can be used to have full control over the network access of an application. The application can call \fIselect()\fR on the socket as required without having to go through the SSL-interface. .PP .Vb 6 \& BIO *internal_bio, *network_bio; \& ... \& BIO_new_bio_pair(internal_bio, 0, network_bio, 0); \& SSL_set_bio(ssl, internal_bio, internal_bio); \& SSL_operations(); \& ... \& \& application | TLS\-engine \& | | \& +\-\-\-\-\-\-\-\-\-\-> SSL_operations() \& | /\e || \& | || \e/ \& | BIO\-pair (internal_bio) \& +\-\-\-\-\-\-\-\-\-\-< BIO\-pair (network_bio) \& | | \& socket | \& \& ... \& SSL_free(ssl); /* implicitly frees internal_bio */ \& BIO_free(network_bio); \& ... .Ve .PP As the \s-1BIO\s0 pair will only buffer the data and never directly access the connection, it behaves non-blocking and will return as soon as the write buffer is full or the read buffer is drained. Then the application has to flush the write buffer and/or fill the read buffer. .PP Use the \fIBIO_ctrl_pending()\fR, to find out whether data is buffered in the \s-1BIO\s0 and must be transfered to the network. Use \fIBIO_ctrl_get_read_request()\fR to find out, how many bytes must be written into the buffer before the \&\fISSL_operation()\fR can successfully be continued. .SH "WARNING" .IX Header "WARNING" As the data is buffered, \fISSL_operation()\fR may return with a \s-1ERROR_SSL_WANT_READ\s0 condition, but there is still data in the write buffer. An application must not rely on the error value of \fISSL_operation()\fR but must assure that the write buffer is always flushed first. Otherwise a deadlock may occur as the peer might be waiting for the data before being able to continue. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_set_bio\fR\|(3), \fIssl\fR\|(3), \fIbio\fR\|(3), \&\fIBIO_should_retry\fR\|(3), \fIBIO_read\fR\|(3) man3/hmac.3000064400000020546147210533270006411 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "hmac 3" .TH hmac 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" HMAC, HMAC_CTX_init, HMAC_Init, HMAC_Init_ex, HMAC_Update, HMAC_Final, HMAC_CTX_cleanup, HMAC_cleanup \- HMAC message authentication code .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& unsigned char *HMAC(const EVP_MD *evp_md, const void *key, \& int key_len, const unsigned char *d, int n, \& unsigned char *md, unsigned int *md_len); \& \& void HMAC_CTX_init(HMAC_CTX *ctx); \& \& int HMAC_Init(HMAC_CTX *ctx, const void *key, int key_len, \& const EVP_MD *md); \& int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int key_len, \& const EVP_MD *md, ENGINE *impl); \& int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, int len); \& int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len); \& \& void HMAC_CTX_cleanup(HMAC_CTX *ctx); \& void HMAC_cleanup(HMAC_CTX *ctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\s-1HMAC\s0 is a \s-1MAC \s0(message authentication code), i.e. a keyed hash function used for message authentication, which is based on a hash function. .PP \&\s-1\fIHMAC\s0()\fR computes the message authentication code of the \fBn\fR bytes at \&\fBd\fR using the hash function \fBevp_md\fR and the key \fBkey\fR which is \&\fBkey_len\fR bytes long. .PP It places the result in \fBmd\fR (which must have space for the output of the hash function, which is no more than \fB\s-1EVP_MAX_MD_SIZE\s0\fR bytes). If \fBmd\fR is \s-1NULL,\s0 the digest is placed in a static array. The size of the output is placed in \fBmd_len\fR, unless it is \fB\s-1NULL\s0\fR. Note: passing a \s-1NULL\s0 value for \fBmd\fR to use the static array is not thread safe. .PP \&\fBevp_md\fR can be \fIEVP_sha1()\fR, \fIEVP_ripemd160()\fR etc. .PP \&\fIHMAC_CTX_init()\fR initialises a \fB\s-1HMAC_CTX\s0\fR before first use. It must be called. .PP \&\fIHMAC_CTX_cleanup()\fR erases the key and other data from the \fB\s-1HMAC_CTX\s0\fR and releases any associated resources. It must be called when an \&\fB\s-1HMAC_CTX\s0\fR is no longer required. .PP \&\fIHMAC_cleanup()\fR is an alias for \fIHMAC_CTX_cleanup()\fR included for back compatibility with 0.9.6b, it is deprecated. .PP The following functions may be used if the message is not completely stored in memory: .PP \&\fIHMAC_Init()\fR initializes a \fB\s-1HMAC_CTX\s0\fR structure to use the hash function \fBevp_md\fR and the key \fBkey\fR which is \fBkey_len\fR bytes long. It is deprecated and only included for backward compatibility with OpenSSL 0.9.6b. .PP \&\fIHMAC_Init_ex()\fR initializes or reuses a \fB\s-1HMAC_CTX\s0\fR structure to use the hash function \fBevp_md\fR and key \fBkey\fR. If both are \s-1NULL \s0(or \fBevp_md\fR is the same as the previous digest used by \fBctx\fR and \fBkey\fR is \s-1NULL\s0) the existing key is reused. \fBctx\fR must have been created with \fIHMAC_CTX_new()\fR before the first use of an \fB\s-1HMAC_CTX\s0\fR in this function. \fBN.B. \f(BIHMAC_Init()\fB had this undocumented behaviour in previous versions of OpenSSL \- failure to switch to \f(BIHMAC_Init_ex()\fB in programs that expect it will cause them to stop working\fR. .PP \&\fB\s-1NB:\s0 if \f(BIHMAC_Init_ex()\fB is called with \fBkey\fB \s-1NULL\s0 and \fBevp_md\fB is not the same as the previous digest used by \fBctx\fB then an error is returned because reuse of an existing key with a different digest is not supported.\fR .PP \&\fIHMAC_Update()\fR can be called repeatedly with chunks of the message to be authenticated (\fBlen\fR bytes at \fBdata\fR). .PP \&\fIHMAC_Final()\fR places the message authentication code in \fBmd\fR, which must have space for the hash function output. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\s-1\fIHMAC\s0()\fR returns a pointer to the message authentication code or \s-1NULL\s0 if an error occurred. .PP \&\fIHMAC_Init_ex()\fR, \fIHMAC_Update()\fR and \fIHMAC_Final()\fR return 1 for success or 0 if an error occurred. .PP \&\fIHMAC_CTX_init()\fR and \fIHMAC_CTX_cleanup()\fR do not return values. .SH "CONFORMING TO" .IX Header "CONFORMING TO" \&\s-1RFC 2104\s0 .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIsha\fR\|(3), \fIevp\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1\fIHMAC\s0()\fR, \fIHMAC_Init()\fR, \fIHMAC_Update()\fR, \fIHMAC_Final()\fR and \fIHMAC_cleanup()\fR are available since SSLeay 0.9.0. .PP \&\fIHMAC_CTX_init()\fR, \fIHMAC_Init_ex()\fR and \fIHMAC_CTX_cleanup()\fR are available since OpenSSL 0.9.7. .PP \&\fIHMAC_Init_ex()\fR, \fIHMAC_Update()\fR and \fIHMAC_Final()\fR did not return values in versions of OpenSSL before 1.0.0. man3/DSA_do_sign.3000064400000012430147210533270007603 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DSA_do_sign 3" .TH DSA_do_sign 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" DSA_do_sign, DSA_do_verify \- raw DSA signature operations .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& DSA_SIG *DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa); \& \& int DSA_do_verify(const unsigned char *dgst, int dgst_len, \& DSA_SIG *sig, DSA *dsa); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIDSA_do_sign()\fR computes a digital signature on the \fBlen\fR byte message digest \fBdgst\fR using the private key \fBdsa\fR and returns it in a newly allocated \fB\s-1DSA_SIG\s0\fR structure. .PP \&\fIDSA_sign_setup\fR\|(3) may be used to precompute part of the signing operation for each signature in case signature generation is time-critical. .PP \&\fIDSA_do_verify()\fR verifies that the signature \fBsig\fR matches a given message digest \fBdgst\fR of size \fBlen\fR. \fBdsa\fR is the signer's public key. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIDSA_do_sign()\fR returns the signature, \s-1NULL\s0 on error. \fIDSA_do_verify()\fR returns 1 for a valid signature, 0 for an incorrect signature and \-1 on error. The error codes can be obtained by \&\fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdsa\fR\|(3), \fIERR_get_error\fR\|(3), \fIrand\fR\|(3), \&\fIDSA_SIG_new\fR\|(3), \&\fIDSA_sign\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIDSA_do_sign()\fR and \fIDSA_do_verify()\fR were added in OpenSSL 0.9.3. man3/SSL_CTX_set1_curves.3000064400000020104147210533270011171 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set1_curves 3" .TH SSL_CTX_set1_curves 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set1_curves, SSL_CTX_set1_curves_list, SSL_set1_curves, SSL_set1_curves_list, SSL_get1_curves, SSL_get_shared_curve, SSL_CTX_set_ecdh_auto, SSL_set_ecdh_auto \- EC supported curve functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_CTX_set1_curves(SSL_CTX *ctx, int *clist, int clistlen); \& int SSL_CTX_set1_curves_list(SSL_CTX *ctx, char *list); \& \& int SSL_set1_curves(SSL *ssl, int *clist, int clistlen); \& int SSL_set1_curves_list(SSL *ssl, char *list); \& \& int SSL_get1_curves(SSL *ssl, int *curves); \& int SSL_get_shared_curve(SSL *s, int n); \& \& int SSL_CTX_set_ecdh_auto(SSL_CTX *ctx, int onoff); \& int SSL_set_ecdh_auto(SSL *s, int onoff); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set1_curves()\fR sets the supported curves for \fBctx\fR to \fBclistlen\fR curves in the array \fBclist\fR. The array consist of all NIDs of curves in preference order. For a \s-1TLS\s0 client the curves are used directly in the supported curves extension. For a \s-1TLS\s0 server the curves are used to determine the set of shared curves. .PP \&\fISSL_CTX_set1_curves_list()\fR sets the supported curves for \fBctx\fR to string \fBlist\fR. The string is a colon separated list of curve NIDs or names, for example \*(L"P\-521:P\-384:P\-256\*(R". .PP \&\fISSL_set1_curves()\fR and \fISSL_set1_curves_list()\fR are similar except they set supported curves for the \s-1SSL\s0 structure \fBssl\fR. .PP \&\fISSL_get1_curves()\fR returns the set of supported curves sent by a client in the supported curves extension. It returns the total number of supported curves. The \fBcurves\fR parameter can be \fB\s-1NULL\s0\fR to simply return the number of curves for memory allocation purposes. The \&\fBcurves\fR array is in the form of a set of curve NIDs in preference order. It can return zero if the client did not send a supported curves extension. .PP \&\fISSL_get_shared_curve()\fR returns shared curve \fBn\fR for a server-side \&\s-1SSL \s0\fBssl\fR. If \fBn\fR is \-1 then the total number of shared curves is returned, which may be zero. Other than for diagnostic purposes, most applications will only be interested in the first shared curve so \fBn\fR is normally set to zero. If the value \fBn\fR is out of range, NID_undef is returned. .PP \&\fISSL_CTX_set_ecdh_auto()\fR and \fISSL_set_ecdh_auto()\fR set automatic curve selection for server \fBctx\fR or \fBssl\fR to \fBonoff\fR. If \fBonoff\fR is 1 then the highest preference curve is automatically used for \s-1ECDH\s0 temporary keys used during key exchange. .PP All these functions are implemented as macros. .SH "NOTES" .IX Header "NOTES" If an application wishes to make use of several of these functions for configuration purposes either on a command line or in a file it should consider using the \s-1SSL_CONF\s0 interface instead of manually parsing options. .PP The functions \fISSL_CTX_set_ecdh_auto()\fR and \fISSL_set_ecdh_auto()\fR can be used to make a server always choose the most appropriate curve for a client. If set it will override any temporary \s-1ECDH\s0 parameters set by a server. Previous versions of OpenSSL could effectively only use a single \s-1ECDH\s0 curve set using a function such as \fISSL_CTX_set_ecdh_tmp()\fR. Newer applications should just call: .PP .Vb 1 \& SSL_CTX_set_ecdh_auto(ctx, 1); .Ve .PP and they will automatically support \s-1ECDH\s0 using the most appropriate shared curve. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CTX_set1_curves()\fR, \fISSL_CTX_set1_curves_list()\fR, \fISSL_set1_curves()\fR, \&\fISSL_set1_curves_list()\fR, \fISSL_CTX_set_ecdh_auto()\fR and \fISSL_set_ecdh_auto()\fR return 1 for success and 0 for failure. .PP \&\fISSL_get1_curves()\fR returns the number of curves, which may be zero. .PP \&\fISSL_get_shared_curve()\fR returns the \s-1NID\s0 of shared curve \fBn\fR or NID_undef if there is no shared curve \fBn\fR; or the total number of shared curves if \fBn\fR is \-1. .PP When called on a client \fBssl\fR, \fISSL_get_shared_curve()\fR has no meaning and returns \-1. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_CTX_add_extra_chain_cert\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" These functions were first added to OpenSSL 1.0.2. man3/SSL_CTX_set_psk_client_callback.3000064400000013525147210533270013561 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_psk_client_callback 3" .TH SSL_CTX_set_psk_client_callback 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_psk_client_callback, SSL_set_psk_client_callback \- set PSK client callback .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx, \& unsigned int (*callback)(SSL *ssl, const char *hint, \& char *identity, unsigned int max_identity_len, \& unsigned char *psk, unsigned int max_psk_len)); \& void SSL_set_psk_client_callback(SSL *ssl, \& unsigned int (*callback)(SSL *ssl, const char *hint, \& char *identity, unsigned int max_identity_len, \& unsigned char *psk, unsigned int max_psk_len)); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" A client application must provide a callback function which is called when the client is sending the ClientKeyExchange message to the server. .PP The purpose of the callback function is to select the \s-1PSK\s0 identity and the pre-shared key to use during the connection setup phase. .PP The callback is set using functions \fISSL_CTX_set_psk_client_callback()\fR or \fISSL_set_psk_client_callback()\fR. The callback function is given the connection in parameter \fBssl\fR, a \fB\s-1NULL\s0\fR\-terminated \s-1PSK\s0 identity hint sent by the server in parameter \fBhint\fR, a buffer \fBidentity\fR of length \fBmax_identity_len\fR bytes where the the resulting \&\fB\s-1NULL\s0\fR\-terminated identity is to be stored, and a buffer \fBpsk\fR of length \fBmax_psk_len\fR bytes where the resulting pre-shared key is to be stored. .SH "NOTES" .IX Header "NOTES" Note that parameter \fBhint\fR given to the callback may be \fB\s-1NULL\s0\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" Return values from the client callback are interpreted as follows: .PP On success (callback found a \s-1PSK\s0 identity and a pre-shared key to use) the length (> 0) of \fBpsk\fR in bytes is returned. .PP Otherwise or on errors callback should return 0. In this case the connection setup fails. man3/SSL_set_fd.3000064400000012603147210533270007461 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_set_fd 3" .TH SSL_set_fd 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_set_fd \- connect the SSL object with a file descriptor .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_set_fd(SSL *ssl, int fd); \& int SSL_set_rfd(SSL *ssl, int fd); \& int SSL_set_wfd(SSL *ssl, int fd); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_set_fd()\fR sets the file descriptor \fBfd\fR as the input/output facility for the \s-1TLS/SSL \s0(encrypted) side of \fBssl\fR. \fBfd\fR will typically be the socket file descriptor of a network connection. .PP When performing the operation, a \fBsocket \s-1BIO\s0\fR is automatically created to interface between the \fBssl\fR and \fBfd\fR. The \s-1BIO\s0 and hence the \s-1SSL\s0 engine inherit the behaviour of \fBfd\fR. If \fBfd\fR is non-blocking, the \fBssl\fR will also have non-blocking behaviour. .PP If there was already a \s-1BIO\s0 connected to \fBssl\fR, \fIBIO_free()\fR will be called (for both the reading and writing side, if different). .PP \&\fISSL_set_rfd()\fR and \fISSL_set_wfd()\fR perform the respective action, but only for the read channel or the write channel, which can be set independently. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following return values can occur: .IP "0" 4 The operation failed. Check the error stack to find out why. .IP "1" 4 .IX Item "1" The operation succeeded. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_get_fd\fR\|(3), \fISSL_set_bio\fR\|(3), \&\fISSL_connect\fR\|(3), \fISSL_accept\fR\|(3), \&\fISSL_shutdown\fR\|(3), \fIssl\fR\|(3) , \fIbio\fR\|(3) man3/SSL_shutdown.3000064400000027215147210533270010075 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_shutdown 3" .TH SSL_shutdown 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_shutdown \- shut down a TLS/SSL connection .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_shutdown(SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_shutdown()\fR shuts down an active \s-1TLS/SSL\s0 connection. It sends the \&\*(L"close notify\*(R" shutdown alert to the peer. .SH "NOTES" .IX Header "NOTES" \&\fISSL_shutdown()\fR tries to send the \*(L"close notify\*(R" shutdown alert to the peer. Whether the operation succeeds or not, the \s-1SSL_SENT_SHUTDOWN\s0 flag is set and a currently open session is considered closed and good and will be kept in the session cache for further reuse. .PP Note that \fISSL_shutdown()\fR must not be called if a previous fatal error has occurred on a connection i.e. if \fISSL_get_error()\fR has returned \s-1SSL_ERROR_SYSCALL\s0 or \s-1SSL_ERROR_SSL.\s0 .PP The shutdown procedure consists of 2 steps: the sending of the \*(L"close notify\*(R" shutdown alert and the reception of the peer's \*(L"close notify\*(R" shutdown alert. According to the \s-1TLS\s0 standard, it is acceptable for an application to only send its shutdown alert and then close the underlying connection without waiting for the peer's response (this way resources can be saved, as the process can already terminate or serve another connection). When the underlying connection shall be used for more communications, the complete shutdown procedure (bidirectional \*(L"close notify\*(R" alerts) must be performed, so that the peers stay synchronized. .PP \&\fISSL_shutdown()\fR supports both uni\- and bidirectional shutdown by its 2 step behaviour. .ie n .IP "When the application is the first party to send the ""close notify"" alert, \fISSL_shutdown()\fR will only send the alert and then set the \s-1SSL_SENT_SHUTDOWN\s0 flag (so that the session is considered good and will be kept in cache). \fISSL_shutdown()\fR will then return with 0. If a unidirectional shutdown is enough (the underlying connection shall be closed anyway), this first call to \fISSL_shutdown()\fR is sufficient. In order to complete the bidirectional shutdown handshake, \fISSL_shutdown()\fR must be called again. The second call will make \fISSL_shutdown()\fR wait for the peer's ""close notify"" shutdown alert. On success, the second call to \fISSL_shutdown()\fR will return with 1." 4 .el .IP "When the application is the first party to send the ``close notify'' alert, \fISSL_shutdown()\fR will only send the alert and then set the \s-1SSL_SENT_SHUTDOWN\s0 flag (so that the session is considered good and will be kept in cache). \fISSL_shutdown()\fR will then return with 0. If a unidirectional shutdown is enough (the underlying connection shall be closed anyway), this first call to \fISSL_shutdown()\fR is sufficient. In order to complete the bidirectional shutdown handshake, \fISSL_shutdown()\fR must be called again. The second call will make \fISSL_shutdown()\fR wait for the peer's ``close notify'' shutdown alert. On success, the second call to \fISSL_shutdown()\fR will return with 1." 4 .IX Item "When the application is the first party to send the close notify alert, SSL_shutdown() will only send the alert and then set the SSL_SENT_SHUTDOWN flag (so that the session is considered good and will be kept in cache). SSL_shutdown() will then return with 0. If a unidirectional shutdown is enough (the underlying connection shall be closed anyway), this first call to SSL_shutdown() is sufficient. In order to complete the bidirectional shutdown handshake, SSL_shutdown() must be called again. The second call will make SSL_shutdown() wait for the peer's close notify shutdown alert. On success, the second call to SSL_shutdown() will return with 1." .PD 0 .ie n .IP "If the peer already sent the ""close notify"" alert \fBand\fR it was already processed implicitly inside another function (\fISSL_read\fR\|(3)), the \s-1SSL_RECEIVED_SHUTDOWN\s0 flag is set. \fISSL_shutdown()\fR will send the ""close notify"" alert, set the \s-1SSL_SENT_SHUTDOWN\s0 flag and will immediately return with 1. Whether \s-1SSL_RECEIVED_SHUTDOWN\s0 is already set can be checked using the \fISSL_get_shutdown()\fR (see also \fISSL_set_shutdown\fR\|(3) call." 4 .el .IP "If the peer already sent the ``close notify'' alert \fBand\fR it was already processed implicitly inside another function (\fISSL_read\fR\|(3)), the \s-1SSL_RECEIVED_SHUTDOWN\s0 flag is set. \fISSL_shutdown()\fR will send the ``close notify'' alert, set the \s-1SSL_SENT_SHUTDOWN\s0 flag and will immediately return with 1. Whether \s-1SSL_RECEIVED_SHUTDOWN\s0 is already set can be checked using the \fISSL_get_shutdown()\fR (see also \fISSL_set_shutdown\fR\|(3) call." 4 .IX Item "If the peer already sent the close notify alert and it was already processed implicitly inside another function (SSL_read), the SSL_RECEIVED_SHUTDOWN flag is set. SSL_shutdown() will send the close notify alert, set the SSL_SENT_SHUTDOWN flag and will immediately return with 1. Whether SSL_RECEIVED_SHUTDOWN is already set can be checked using the SSL_get_shutdown() (see also SSL_set_shutdown call." .PD .PP It is therefore recommended, to check the return value of \fISSL_shutdown()\fR and call \fISSL_shutdown()\fR again, if the bidirectional shutdown is not yet complete (return value of the first call is 0). As the shutdown is not specially handled in the SSLv2 protocol, \fISSL_shutdown()\fR will succeed on the first call. .PP The behaviour of \fISSL_shutdown()\fR additionally depends on the underlying \s-1BIO. \s0 .PP If the underlying \s-1BIO\s0 is \fBblocking\fR, \fISSL_shutdown()\fR will only return once the handshake step has been finished or an error occurred. .PP If the underlying \s-1BIO\s0 is \fBnon-blocking\fR, \fISSL_shutdown()\fR will also return when the underlying \s-1BIO\s0 could not satisfy the needs of \fISSL_shutdown()\fR to continue the handshake. In this case a call to \fISSL_get_error()\fR with the return value of \fISSL_shutdown()\fR will yield \fB\s-1SSL_ERROR_WANT_READ\s0\fR or \&\fB\s-1SSL_ERROR_WANT_WRITE\s0\fR. The calling process then must repeat the call after taking appropriate action to satisfy the needs of \fISSL_shutdown()\fR. The action depends on the underlying \s-1BIO.\s0 When using a non-blocking socket, nothing is to be done, but \fIselect()\fR can be used to check for the required condition. When using a buffering \s-1BIO,\s0 like a \s-1BIO\s0 pair, data must be written into or retrieved out of the \s-1BIO\s0 before being able to continue. .PP \&\fISSL_shutdown()\fR can be modified to only set the connection to \*(L"shutdown\*(R" state but not actually send the \*(L"close notify\*(R" alert messages, see \fISSL_CTX_set_quiet_shutdown\fR\|(3). When \*(L"quiet shutdown\*(R" is enabled, \fISSL_shutdown()\fR will always succeed and return 1. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following return values can occur: .IP "0" 4 The shutdown is not yet finished. Call \fISSL_shutdown()\fR for a second time, if a bidirectional shutdown shall be performed. The output of \fISSL_get_error\fR\|(3) may be misleading, as an erroneous \s-1SSL_ERROR_SYSCALL\s0 may be flagged even though no error occurred. .IP "1" 4 .IX Item "1" The shutdown was successfully completed. The \*(L"close notify\*(R" alert was sent and the peer's \*(L"close notify\*(R" alert was received. .IP "<0" 4 .IX Item "<0" The shutdown was not successful because a fatal error occurred either at the protocol level or a connection failure occurred. It can also occur if action is need to continue the operation for non-blocking BIOs. Call \fISSL_get_error\fR\|(3) with the return value \fBret\fR to find out the reason. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_get_error\fR\|(3), \fISSL_connect\fR\|(3), \&\fISSL_accept\fR\|(3), \fISSL_set_shutdown\fR\|(3), \&\fISSL_CTX_set_quiet_shutdown\fR\|(3), \&\fISSL_clear\fR\|(3), \fISSL_free\fR\|(3), \&\fIssl\fR\|(3), \fIbio\fR\|(3) man3/RAND_bytes.3000064400000013062147210533270007426 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RAND_bytes 3" .TH RAND_bytes 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" RAND_bytes, RAND_pseudo_bytes \- generate random data .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int RAND_bytes(unsigned char *buf, int num); \& \& int RAND_pseudo_bytes(unsigned char *buf, int num); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIRAND_bytes()\fR puts \fBnum\fR cryptographically strong pseudo-random bytes into \fBbuf\fR. An error occurs if the \s-1PRNG\s0 has not been seeded with enough randomness to ensure an unpredictable byte sequence. .PP \&\fIRAND_pseudo_bytes()\fR puts \fBnum\fR pseudo-random bytes into \fBbuf\fR. Pseudo-random byte sequences generated by \fIRAND_pseudo_bytes()\fR will be unique if they are of sufficient length, but are not necessarily unpredictable. They can be used for non-cryptographic purposes and for certain purposes in cryptographic protocols, but usually not for key generation etc. .PP The contents of \fBbuf\fR is mixed into the entropy pool before retrieving the new pseudo-random bytes unless disabled at compile time (see \s-1FAQ\s0). .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIRAND_bytes()\fR returns 1 on success, 0 otherwise. The error code can be obtained by \fIERR_get_error\fR\|(3). \fIRAND_pseudo_bytes()\fR returns 1 if the bytes generated are cryptographically strong, 0 otherwise. Both functions return \-1 if they are not supported by the current \s-1RAND\s0 method. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIrand\fR\|(3), \fIERR_get_error\fR\|(3), \&\fIRAND_add\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIRAND_bytes()\fR is available in all versions of SSLeay and OpenSSL. It has a return value since OpenSSL 0.9.5. \fIRAND_pseudo_bytes()\fR was added in OpenSSL 0.9.5. man3/SSL_library_init.3000064400000013135147210533270010705 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_library_init 3" .TH SSL_library_init 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_library_init, OpenSSL_add_ssl_algorithms, SSLeay_add_ssl_algorithms \&\- initialize SSL library by registering algorithms .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_library_init(void); \& #define OpenSSL_add_ssl_algorithms() SSL_library_init() \& #define SSLeay_add_ssl_algorithms() SSL_library_init() .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_library_init()\fR registers the available \s-1SSL/TLS\s0 ciphers and digests. .PP \&\fIOpenSSL_add_ssl_algorithms()\fR and \fISSLeay_add_ssl_algorithms()\fR are synonyms for \fISSL_library_init()\fR. .SH "NOTES" .IX Header "NOTES" \&\fISSL_library_init()\fR must be called before any other action takes place. \&\fISSL_library_init()\fR is not reentrant. .SH "WARNING" .IX Header "WARNING" \&\fISSL_library_init()\fR adds ciphers and digests used directly and indirectly by \&\s-1SSL/TLS.\s0 .SH "EXAMPLES" .IX Header "EXAMPLES" A typical \s-1TLS/SSL\s0 application will start with the library initialization, and provide readable error messages. .PP .Vb 2 \& SSL_load_error_strings(); /* readable error messages */ \& SSL_library_init(); /* initialize library */ .Ve .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_library_init()\fR always returns \*(L"1\*(R", so it is safe to discard the return value. .SH "NOTES" .IX Header "NOTES" OpenSSL 0.9.8o and 1.0.0a and later added \s-1SHA2\s0 algorithms to \fISSL_library_init()\fR. Applications which need to use \s-1SHA2\s0 in earlier versions of OpenSSL should call \&\fIOpenSSL_add_all_algorithms()\fR as well. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_load_error_strings\fR\|(3), \&\fIRAND_add\fR\|(3) man3/EVP_SignInit.3000064400000020022147210533270007724 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EVP_SignInit 3" .TH EVP_SignInit 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EVP_SignInit, EVP_SignInit_ex, EVP_SignUpdate, EVP_SignFinal \- EVP signing functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int EVP_SignInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl); \& int EVP_SignUpdate(EVP_MD_CTX *ctx, const void *d, unsigned int cnt); \& int EVP_SignFinal(EVP_MD_CTX *ctx,unsigned char *sig,unsigned int *s, EVP_PKEY *pkey); \& \& void EVP_SignInit(EVP_MD_CTX *ctx, const EVP_MD *type); \& \& int EVP_PKEY_size(EVP_PKEY *pkey); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \s-1EVP\s0 signature routines are a high level interface to digital signatures. .PP \&\fIEVP_SignInit_ex()\fR sets up signing context \fBctx\fR to use digest \&\fBtype\fR from \s-1ENGINE \s0\fBimpl\fR. \fBctx\fR must be initialized with \&\fIEVP_MD_CTX_init()\fR before calling this function. .PP \&\fIEVP_SignUpdate()\fR hashes \fBcnt\fR bytes of data at \fBd\fR into the signature context \fBctx\fR. This function can be called several times on the same \fBctx\fR to include additional data. .PP \&\fIEVP_SignFinal()\fR signs the data in \fBctx\fR using the private key \fBpkey\fR and places the signature in \fBsig\fR. \fBsig\fR must be at least EVP_PKEY_size(pkey) bytes in size. \fBs\fR is an \s-1OUT\s0 paramter, and not used as an \s-1IN\s0 parameter. The number of bytes of data written (i.e. the length of the signature) will be written to the integer at \fBs\fR, at most EVP_PKEY_size(pkey) bytes will be written. .PP \&\fIEVP_SignInit()\fR initializes a signing context \fBctx\fR to use the default implementation of digest \fBtype\fR. .PP \&\fIEVP_PKEY_size()\fR returns the maximum size of a signature in bytes. The actual signature returned by \fIEVP_SignFinal()\fR may be smaller. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIEVP_SignInit_ex()\fR, \fIEVP_SignUpdate()\fR and \fIEVP_SignFinal()\fR return 1 for success and 0 for failure. .PP \&\fIEVP_PKEY_size()\fR returns the maximum size of a signature in bytes. .PP The error codes can be obtained by \fIERR_get_error\fR\|(3). .SH "NOTES" .IX Header "NOTES" The \fB\s-1EVP\s0\fR interface to digital signatures should almost always be used in preference to the low level interfaces. This is because the code then becomes transparent to the algorithm used and much more flexible. .PP Due to the link between message digests and public key algorithms the correct digest algorithm must be used with the correct public key type. A list of algorithms and associated public key algorithms appears in \&\fIEVP_DigestInit\fR\|(3). .PP When signing with \s-1DSA\s0 private keys the random number generator must be seeded or the operation will fail. The random number generator does not need to be seeded for \s-1RSA\s0 signatures. .PP The call to \fIEVP_SignFinal()\fR internally finalizes a copy of the digest context. This means that calls to \fIEVP_SignUpdate()\fR and \fIEVP_SignFinal()\fR can be called later to digest and sign additional data. .PP Since only a copy of the digest context is ever finalized the context must be cleaned up after use by calling \fIEVP_MD_CTX_cleanup()\fR or a memory leak will occur. .SH "BUGS" .IX Header "BUGS" Older versions of this documentation wrongly stated that calls to \&\fIEVP_SignUpdate()\fR could not be made after calling \fIEVP_SignFinal()\fR. .PP Since the private key is passed in the call to \fIEVP_SignFinal()\fR any error relating to the private key (for example an unsuitable key and digest combination) will not be indicated until after potentially large amounts of data have been passed through \fIEVP_SignUpdate()\fR. .PP It is not possible to change the signing parameters using these function. .PP The previous two bugs are fixed in the newer EVP_SignDigest*() function. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIEVP_VerifyInit\fR\|(3), \&\fIEVP_DigestInit\fR\|(3), \fIerr\fR\|(3), \&\fIevp\fR\|(3), \fIhmac\fR\|(3), \fImd2\fR\|(3), \&\fImd5\fR\|(3), \fImdc2\fR\|(3), \fIripemd\fR\|(3), \&\fIsha\fR\|(3), \fIdgst\fR\|(1) .SH "HISTORY" .IX Header "HISTORY" \&\fIEVP_SignInit()\fR, \fIEVP_SignUpdate()\fR and \fIEVP_SignFinal()\fR are available in all versions of SSLeay and OpenSSL. .PP \&\fIEVP_SignInit_ex()\fR was added in OpenSSL 0.9.7. man3/X509_STORE_CTX_new.3000064400000022551147210533270010507 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "X509_STORE_CTX_new 3" .TH X509_STORE_CTX_new 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" X509_STORE_CTX_new, X509_STORE_CTX_cleanup, X509_STORE_CTX_free, X509_STORE_CTX_init, X509_STORE_CTX_trusted_stack, X509_STORE_CTX_set_cert, X509_STORE_CTX_set_chain, X509_STORE_CTX_set0_crls, X509_STORE_CTX_get0_param, X509_STORE_CTX_set0_param, X509_STORE_CTX_set_default \- X509_STORE_CTX initialisation .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& X509_STORE_CTX *X509_STORE_CTX_new(void); \& void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); \& void X509_STORE_CTX_free(X509_STORE_CTX *ctx); \& \& int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, \& X509 *x509, STACK_OF(X509) *chain); \& \& void X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); \& \& void X509_STORE_CTX_set_cert(X509_STORE_CTX *ctx,X509 *x); \& void X509_STORE_CTX_set_chain(X509_STORE_CTX *ctx,STACK_OF(X509) *sk); \& void X509_STORE_CTX_set0_crls(X509_STORE_CTX *ctx, STACK_OF(X509_CRL) *sk); \& \& X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(X509_STORE_CTX *ctx); \& void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param); \& int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions initialise an \fBX509_STORE_CTX\fR structure for subsequent use by \fIX509_verify_cert()\fR. .PP \&\fIX509_STORE_CTX_new()\fR returns a newly initialised \fBX509_STORE_CTX\fR structure. .PP \&\fIX509_STORE_CTX_cleanup()\fR internally cleans up an \fBX509_STORE_CTX\fR structure. The context can then be reused with an new call to \fIX509_STORE_CTX_init()\fR. .PP \&\fIX509_STORE_CTX_free()\fR completely frees up \fBctx\fR. After this call \fBctx\fR is no longer valid. .PP \&\fIX509_STORE_CTX_init()\fR sets up \fBctx\fR for a subsequent verification operation. It must be called before each call to \fIX509_verify_cert()\fR, i.e. a \fBctx\fR is only good for one call to \fIX509_verify_cert()\fR; if you want to verify a second certificate with the same \fBctx\fR then you must call \fIX509_STORE_CTX_cleanup()\fR and then \fIX509_STORE_CTX_init()\fR again before the second call to \&\fIX509_verify_cert()\fR. The trusted certificate store is set to \fBstore\fR, the end entity certificate to be verified is set to \fBx509\fR and a set of additional certificates (which will be untrusted but may be used to build the chain) in \&\fBchain\fR. Any or all of the \fBstore\fR, \fBx509\fR and \fBchain\fR parameters can be \&\fB\s-1NULL\s0\fR. .PP \&\fIX509_STORE_CTX_trusted_stack()\fR sets the set of trusted certificates of \fBctx\fR to \fBsk\fR. This is an alternative way of specifying trusted certificates instead of using an \fBX509_STORE\fR. .PP \&\fIX509_STORE_CTX_set_cert()\fR sets the certificate to be vertified in \fBctx\fR to \&\fBx\fR. .PP \&\fIX509_STORE_CTX_set_chain()\fR sets the additional certificate chain used by \fBctx\fR to \fBsk\fR. .PP \&\fIX509_STORE_CTX_set0_crls()\fR sets a set of CRLs to use to aid certificate verification to \fBsk\fR. These CRLs will only be used if \s-1CRL\s0 verification is enabled in the associated \fBX509_VERIFY_PARAM\fR structure. This might be used where additional \*(L"useful\*(R" CRLs are supplied as part of a protocol, for example in a PKCS#7 structure. .PP X509_VERIFY_PARAM *\fIX509_STORE_CTX_get0_param()\fR retrieves an intenal pointer to the verification parameters associated with \fBctx\fR. .PP \&\fIX509_STORE_CTX_set0_param()\fR sets the intenal verification parameter pointer to \fBparam\fR. After this call \fBparam\fR should not be used. .PP \&\fIX509_STORE_CTX_set_default()\fR looks up and sets the default verification method to \fBname\fR. This uses the function \fIX509_VERIFY_PARAM_lookup()\fR to find an appropriate set of parameters from \fBname\fR. .SH "NOTES" .IX Header "NOTES" The certificates and CRLs in a store are used internally and should \fBnot\fR be freed up until after the associated \fBX509_STORE_CTX\fR is freed. Legacy applications might implicitly use an \fBX509_STORE_CTX\fR like this: .PP .Vb 2 \& X509_STORE_CTX ctx; \& X509_STORE_CTX_init(&ctx, store, cert, chain); .Ve .PP this is \fBnot\fR recommended in new applications they should instead do: .PP .Vb 5 \& X509_STORE_CTX *ctx; \& ctx = X509_STORE_CTX_new(); \& if (ctx == NULL) \& /* Bad error */ \& X509_STORE_CTX_init(ctx, store, cert, chain); .Ve .SH "BUGS" .IX Header "BUGS" The certificates and CRLs in a context are used internally and should \fBnot\fR be freed up until after the associated \fBX509_STORE_CTX\fR is freed. Copies should be made or reference counts increased instead. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIX509_STORE_CTX_new()\fR returns an newly allocates context or \fB\s-1NULL\s0\fR is an error occurred. .PP \&\fIX509_STORE_CTX_init()\fR returns 1 for success or 0 if an error occurred. .PP \&\fIX509_STORE_CTX_get0_param()\fR returns a pointer to an \fBX509_VERIFY_PARAM\fR structure or \fB\s-1NULL\s0\fR if an error occurred. .PP \&\fIX509_STORE_CTX_cleanup()\fR, \fIX509_STORE_CTX_free()\fR, \fIX509_STORE_CTX_trusted_stack()\fR, \&\fIX509_STORE_CTX_set_cert()\fR, \fIX509_STORE_CTX_set_chain()\fR, \&\fIX509_STORE_CTX_set0_crls()\fR and \fIX509_STORE_CTX_set0_param()\fR do not return values. .PP \&\fIX509_STORE_CTX_set_default()\fR returns 1 for success or 0 if an error occurred. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIX509_verify_cert\fR\|(3) \&\fIX509_VERIFY_PARAM_set_flags\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIX509_STORE_CTX_set0_crls()\fR was first added to OpenSSL 1.0.0 man3/SSL_want.3000064400000014566147210533270007200 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_want 3" .TH SSL_want 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_want, SSL_want_nothing, SSL_want_read, SSL_want_write, SSL_want_x509_lookup \- obtain state information TLS/SSL I/O operation .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_want(const SSL *ssl); \& int SSL_want_nothing(const SSL *ssl); \& int SSL_want_read(const SSL *ssl); \& int SSL_want_write(const SSL *ssl); \& int SSL_want_x509_lookup(const SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_want()\fR returns state information for the \s-1SSL\s0 object \fBssl\fR. .PP The other SSL_want_*() calls are shortcuts for the possible states returned by \fISSL_want()\fR. .SH "NOTES" .IX Header "NOTES" \&\fISSL_want()\fR examines the internal state information of the \s-1SSL\s0 object. Its return values are similar to that of \fISSL_get_error\fR\|(3). Unlike \fISSL_get_error\fR\|(3), which also evaluates the error queue, the results are obtained by examining an internal state flag only. The information must therefore only be used for normal operation under non-blocking I/O. Error conditions are not handled and must be treated using \fISSL_get_error\fR\|(3). .PP The result returned by \fISSL_want()\fR should always be consistent with the result of \fISSL_get_error\fR\|(3). .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following return values can currently occur for \fISSL_want()\fR: .IP "\s-1SSL_NOTHING\s0" 4 .IX Item "SSL_NOTHING" There is no data to be written or to be read. .IP "\s-1SSL_WRITING\s0" 4 .IX Item "SSL_WRITING" There are data in the \s-1SSL\s0 buffer that must be written to the underlying \&\fB\s-1BIO\s0\fR layer in order to complete the actual SSL_*() operation. A call to \fISSL_get_error\fR\|(3) should return \&\s-1SSL_ERROR_WANT_WRITE.\s0 .IP "\s-1SSL_READING\s0" 4 .IX Item "SSL_READING" More data must be read from the underlying \fB\s-1BIO\s0\fR layer in order to complete the actual SSL_*() operation. A call to \fISSL_get_error\fR\|(3) should return \&\s-1SSL_ERROR_WANT_READ.\s0 .IP "\s-1SSL_X509_LOOKUP\s0" 4 .IX Item "SSL_X509_LOOKUP" The operation did not complete because an application callback set by \&\fISSL_CTX_set_client_cert_cb()\fR has asked to be called again. A call to \fISSL_get_error\fR\|(3) should return \&\s-1SSL_ERROR_WANT_X509_LOOKUP.\s0 .PP \&\fISSL_want_nothing()\fR, \fISSL_want_read()\fR, \fISSL_want_write()\fR, \fISSL_want_x509_lookup()\fR return 1, when the corresponding condition is true or 0 otherwise. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fIerr\fR\|(3), \fISSL_get_error\fR\|(3) man3/EVP_PKEY_encrypt.3000064400000016155147210533270010530 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EVP_PKEY_encrypt 3" .TH EVP_PKEY_encrypt 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EVP_PKEY_encrypt_init, EVP_PKEY_encrypt \- encrypt using a public key algorithm .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx); \& int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, \& unsigned char *out, size_t *outlen, \& const unsigned char *in, size_t inlen); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fIEVP_PKEY_encrypt_init()\fR function initializes a public key algorithm context using key \fBpkey\fR for an encryption operation. .PP The \fIEVP_PKEY_encrypt()\fR function performs a public key encryption operation using \fBctx\fR. The data to be encrypted is specified using the \fBin\fR and \&\fBinlen\fR parameters. If \fBout\fR is \fB\s-1NULL\s0\fR then the maximum size of the output buffer is written to the \fBoutlen\fR parameter. If \fBout\fR is not \fB\s-1NULL\s0\fR then before the call the \fBoutlen\fR parameter should contain the length of the \&\fBout\fR buffer, if the call is successful the encrypted data is written to \&\fBout\fR and the amount of data written to \fBoutlen\fR. .SH "NOTES" .IX Header "NOTES" After the call to \fIEVP_PKEY_encrypt_init()\fR algorithm specific control operations can be performed to set any appropriate parameters for the operation. .PP The function \fIEVP_PKEY_encrypt()\fR can be called more than once on the same context if several operations are performed using the same parameters. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIEVP_PKEY_encrypt_init()\fR and \fIEVP_PKEY_encrypt()\fR return 1 for success and 0 or a negative value for failure. In particular a return value of \-2 indicates the operation is not supported by the public key algorithm. .SH "EXAMPLE" .IX Header "EXAMPLE" Encrypt data using \s-1OAEP \s0(for \s-1RSA\s0 keys). See also \fIPEM_read_PUBKEY\fR\|(3) or \&\fId2i_X509\fR\|(3) for means to load a public key. You may also simply set 'eng = \s-1NULL\s0;' to start with the default OpenSSL \s-1RSA\s0 implementation: .PP .Vb 3 \& #include \& #include \& #include \& \& EVP_PKEY_CTX *ctx; \& ENGINE *eng; \& unsigned char *out, *in; \& size_t outlen, inlen; \& EVP_PKEY *key; \& /* NB: assumes eng, key, in, inlen are already set up, \& * and that key is an RSA public key \& */ \& ctx = EVP_PKEY_CTX_new(key,eng); \& if (!ctx) \& /* Error occurred */ \& if (EVP_PKEY_encrypt_init(ctx) <= 0) \& /* Error */ \& if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_OAEP_PADDING) <= 0) \& /* Error */ \& \& /* Determine buffer length */ \& if (EVP_PKEY_encrypt(ctx, NULL, &outlen, in, inlen) <= 0) \& /* Error */ \& \& out = OPENSSL_malloc(outlen); \& \& if (!out) \& /* malloc failure */ \& \& if (EVP_PKEY_encrypt(ctx, out, &outlen, in, inlen) <= 0) \& /* Error */ \& \& /* Encrypted data is outlen bytes written to buffer out */ .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fId2i_X509\fR\|(3), \&\fIengine\fR\|(3), \&\fIEVP_PKEY_CTX_new\fR\|(3), \&\fIEVP_PKEY_decrypt\fR\|(3), \&\fIEVP_PKEY_sign\fR\|(3), \&\fIEVP_PKEY_verify\fR\|(3), \&\fIEVP_PKEY_verify_recover\fR\|(3), \&\fIEVP_PKEY_derive\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" These functions were first added to OpenSSL 1.0.0. man3/SSL_CTX_set_tlsext_servername_callback.3000064400000014316147210533270015177 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_tlsext_servername_callback 3" .TH SSL_CTX_set_tlsext_servername_callback 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_tlsext_servername_callback, SSL_CTX_set_tlsext_servername_arg, SSL_get_servername_type, SSL_get_servername \- handle server name indication (SNI) .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& long SSL_CTX_set_tlsext_servername_callback(SSL_CTX *ctx, \& int (*cb)(SSL *, int *, void *)); \& long SSL_CTX_set_tlsext_servername_arg(SSL_CTX *ctx, void *arg); \& \& const char *SSL_get_servername(const SSL *s, const int type); \& int SSL_get_servername_type(const SSL *s); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set_tlsext_servername_callback()\fR sets the application callback \fBcb\fR used by a server to perform any actions or configuration required based on the servername extension received in the incoming connection. When \fBcb\fR is \s-1NULL, SNI\s0 is not used. The \fBarg\fR value is a pointer which is passed to the application callback. .PP \&\fISSL_CTX_set_tlsext_servername_arg()\fR sets a context-specific argument to be passed into the callback for this \fB\s-1SSL_CTX\s0\fR. .PP \&\fISSL_get_servername()\fR returns a servername extension value of the specified type if provided in the Client Hello or \s-1NULL.\s0 .PP \&\fISSL_get_servername_type()\fR returns the servername type or \-1 if no servername is present. Currently the only supported type (defined in \s-1RFC3546\s0) is \&\fBTLSEXT_NAMETYPE_host_name\fR. .SH "NOTES" .IX Header "NOTES" The \s-1ALPN\s0 and \s-1SNI\s0 callbacks are both executed during Client Hello processing. The servername callback is executed first, followed by the \s-1ALPN\s0 callback. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CTX_set_tlsext_servername_callback()\fR and \&\fISSL_CTX_set_tlsext_servername_arg()\fR both always return 1 indicating success. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(7), \fISSL_CTX_set_alpn_select_cb\fR\|(3), \&\fISSL_get0_alpn_selected\fR\|(3) .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. .PP Licensed under the OpenSSL license (the \*(L"License\*(R"). You may not use this file except in compliance with the License. You can obtain a copy in the file \s-1LICENSE\s0 in the source distribution or at . man3/EVP_EncodeInit.3000064400000026007147210533270010232 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EVP_EncodeInit 3" .TH EVP_EncodeInit 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EVP_EncodeInit, EVP_EncodeUpdate, EVP_EncodeFinal, EVP_EncodeBlock, EVP_DecodeInit, EVP_DecodeUpdate, EVP_DecodeFinal, EVP_DecodeBlock \- EVP base 64 encode/decode routines .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void EVP_EncodeInit(EVP_ENCODE_CTX *ctx); \& void EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, \& const unsigned char *in, int inl); \& void EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl); \& int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int n); \& \& void EVP_DecodeInit(EVP_ENCODE_CTX *ctx); \& int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, \& const unsigned char *in, int inl); \& int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned \& char *out, int *outl); \& int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \s-1EVP\s0 encode routines provide a high level interface to base 64 encoding and decoding. Base 64 encoding converts binary data into a printable form that uses the characters A\-Z, a\-z, 0\-9, \*(L"+\*(R" and \*(L"/\*(R" to represent the data. For every 3 bytes of binary data provided 4 bytes of base 64 encoded data will be produced plus some occasional newlines (see below). If the input data length is not a multiple of 3 then the output data will be padded at the end using the \*(L"=\*(R" character. .PP Encoding of binary data is performed in blocks of 48 input bytes (or less for the final block). For each 48 byte input block encoded 64 bytes of base 64 data is output plus an additional newline character (i.e. 65 bytes in total). The final block (which may be less than 48 bytes) will output 4 bytes for every 3 bytes of input. If the data length is not divisible by 3 then a full 4 bytes is still output for the final 1 or 2 bytes of input. Similarly a newline character will also be output. .PP \&\fIEVP_EncodeInit()\fR initialises \fBctx\fR for the start of a new encoding operation. .PP \&\fIEVP_EncodeUpdate()\fR encode \fBinl\fR bytes of data found in the buffer pointed to by \&\fBin\fR. The output is stored in the buffer \fBout\fR and the number of bytes output is stored in \fB*outl\fR. It is the caller's responsibility to ensure that the buffer at \fBout\fR is sufficiently large to accommodate the output data. Only full blocks of data (48 bytes) will be immediately processed and output by this function. Any remainder is held in the \fBctx\fR object and will be processed by a subsequent call to \fIEVP_EncodeUpdate()\fR or \fIEVP_EncodeFinal()\fR. To calculate the required size of the output buffer add together the value of \fBinl\fR with the amount of unprocessed data held in \fBctx\fR and divide the result by 48 (ignore any remainder). This gives the number of blocks of data that will be processed. Ensure the output buffer contains 65 bytes of storage for each block, plus an additional byte for a \s-1NUL\s0 terminator. \fIEVP_EncodeUpdate()\fR may be called repeatedly to process large amounts of input data. In the event of an error \&\fIEVP_EncodeUpdate()\fR will set \fB*outl\fR to 0. .PP \&\fIEVP_EncodeFinal()\fR must be called at the end of an encoding operation. It will process any partial block of data remaining in the \fBctx\fR object. The output data will be stored in \fBout\fR and the length of the data written will be stored in \fB*outl\fR. It is the caller's responsibility to ensure that \fBout\fR is sufficiently large to accommodate the output data which will never be more than 65 bytes plus an additional \s-1NUL\s0 terminator (i.e. 66 bytes in total). .PP \&\fIEVP_EncodeBlock()\fR encodes a full block of input data in \fBf\fR and of length \&\fBdlen\fR and stores it in \fBt\fR. For every 3 bytes of input provided 4 bytes of output data will be produced. If \fBdlen\fR is not divisible by 3 then the block is encoded as a final block of data and the output is padded such that it is always divisible by 4. Additionally a \s-1NUL\s0 terminator character will be added. For example if 16 bytes of input data is provided then 24 bytes of encoded data is created plus 1 byte for a \s-1NUL\s0 terminator (i.e. 25 bytes in total). The length of the data generated \fIwithout\fR the \s-1NUL\s0 terminator is returned from the function. .PP \&\fIEVP_DecodeInit()\fR initialises \fBctx\fR for the start of a new decoding operation. .PP \&\fIEVP_DecodeUpdate()\fR decodes \fBinl\fR characters of data found in the buffer pointed to by \fBin\fR. The output is stored in the buffer \fBout\fR and the number of bytes output is stored in \fB*outl\fR. It is the caller's responsibility to ensure that the buffer at \fBout\fR is sufficiently large to accommodate the output data. This function will attempt to decode as much data as possible in 4 byte chunks. Any whitespace, newline or carriage return characters are ignored. Any partial chunk of unprocessed data (1, 2 or 3 bytes) that remains at the end will be held in the \fBctx\fR object and processed by a subsequent call to \fIEVP_DecodeUpdate()\fR. If any illegal base 64 characters are encountered or if the base 64 padding character \*(L"=\*(R" is encountered in the middle of the data then the function returns \&\-1 to indicate an error. A return value of 0 or 1 indicates successful processing of the data. A return value of 0 additionally indicates that the last input data characters processed included the base 64 padding character \*(L"=\*(R" and therefore no more non-padding character data is expected to be processed. For every 4 valid base 64 bytes processed (ignoring whitespace, carriage returns and line feeds), 3 bytes of binary output data will be produced (or less at the end of the data where the padding character \*(L"=\*(R" has been used). .PP \&\fIEVP_DecodeFinal()\fR must be called at the end of a decoding operation. If there is any unprocessed data still in \fBctx\fR then the input data must not have been a multiple of 4 and therefore an error has occurred. The function will return \-1 in this case. Otherwise the function returns 1 on success. .PP \&\fIEVP_DecodeBlock()\fR will decode the block of \fBn\fR characters of base 64 data contained in \fBf\fR and store the result in \fBt\fR. Any leading whitespace will be trimmed as will any trailing whitespace, newlines, carriage returns or \s-1EOF\s0 characters. After such trimming the length of the data in \fBf\fR must be divisbile by 4. For every 4 input bytes exactly 3 output bytes will be produced. The output will be padded with 0 bits if necessary to ensure that the output is always 3 bytes for every 4 input bytes. This function will return the length of the data decoded or \-1 on error. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIEVP_EncodeBlock()\fR returns the number of bytes encoded excluding the \s-1NUL\s0 terminator. .PP \&\fIEVP_DecodeUpdate()\fR returns \-1 on error and 0 or 1 on success. If 0 is returned then no more non-padding base 64 characters are expected. .PP \&\fIEVP_DecodeFinal()\fR returns \-1 on error or 1 on success. .PP \&\fIEVP_DecodeBlock()\fR returns the length of the data decoded or \-1 on error. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIevp\fR\|(3) man3/CMS_verify.3000064400000022030147210533270007475 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CMS_verify 3" .TH CMS_verify 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" CMS_verify, CMS_get0_signers \- verify a CMS SignedData structure .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int CMS_verify(CMS_ContentInfo *cms, STACK_OF(X509) *certs, X509_STORE *store, BIO *indata, BIO *out, unsigned int flags); \& \& STACK_OF(X509) *CMS_get0_signers(CMS_ContentInfo *cms); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fICMS_verify()\fR verifies a \s-1CMS\s0 SignedData structure. \fBcms\fR is the CMS_ContentInfo structure to verify. \fBcerts\fR is a set of certificates in which to search for the signing certificate(s). \fBstore\fR is a trusted certificate store used for chain verification. \fBindata\fR is the detached content if the content is not present in \fBcms\fR. The content is written to \fBout\fR if it is not \s-1NULL.\s0 .PP \&\fBflags\fR is an optional set of flags, which can be used to modify the verify operation. .PP \&\fICMS_get0_signers()\fR retrieves the signing certificate(s) from \fBcms\fR, it must be called after a successful \fICMS_verify()\fR operation. .SH "VERIFY PROCESS" .IX Header "VERIFY PROCESS" Normally the verify process proceeds as follows. .PP Initially some sanity checks are performed on \fBcms\fR. The type of \fBcms\fR must be SignedData. There must be at least one signature on the data and if the content is detached \fBindata\fR cannot be \fB\s-1NULL\s0\fR. .PP An attempt is made to locate all the signing certificate(s), first looking in the \fBcerts\fR parameter (if it is not \s-1NULL\s0) and then looking in any certificates contained in the \fBcms\fR structure itself. If any signing certificate cannot be located the operation fails. .PP Each signing certificate is chain verified using the \fBsmimesign\fR purpose and the supplied trusted certificate store. Any internal certificates in the message are used as untrusted CAs. If \s-1CRL\s0 checking is enabled in \fBstore\fR any internal CRLs are used in addition to attempting to look them up in \fBstore\fR. If any chain verify fails an error code is returned. .PP Finally the signed content is read (and written to \fBout\fR is it is not \s-1NULL\s0) and the signature's checked. .PP If all signature's verify correctly then the function is successful. .PP Any of the following flags (ored together) can be passed in the \fBflags\fR parameter to change the default verify behaviour. .PP If \fB\s-1CMS_NOINTERN\s0\fR is set the certificates in the message itself are not searched when locating the signing certificate(s). This means that all the signing certificates must be in the \fBcerts\fR parameter. .PP If \fB\s-1CMS_NOCRL\s0\fR is set and \s-1CRL\s0 checking is enabled in \fBstore\fR then any CRLs in the message itself are ignored. .PP If the \fB\s-1CMS_TEXT\s0\fR flag is set \s-1MIME\s0 headers for type \fBtext/plain\fR are deleted from the content. If the content is not of type \fBtext/plain\fR then an error is returned. .PP If \fB\s-1CMS_NO_SIGNER_CERT_VERIFY\s0\fR is set the signing certificates are not verified. .PP If \fB\s-1CMS_NO_ATTR_VERIFY\s0\fR is set the signed attributes signature is not verified. .PP If \fB\s-1CMS_NO_CONTENT_VERIFY\s0\fR is set then the content digest is not checked. .SH "NOTES" .IX Header "NOTES" One application of \fB\s-1CMS_NOINTERN\s0\fR is to only accept messages signed by a small number of certificates. The acceptable certificates would be passed in the \fBcerts\fR parameter. In this case if the signer is not one of the certificates supplied in \fBcerts\fR then the verify will fail because the signer cannot be found. .PP In some cases the standard techniques for looking up and validating certificates are not appropriate: for example an application may wish to lookup certificates in a database or perform customised verification. This can be achieved by setting and verifying the signers certificates manually using the signed data utility functions. .PP Care should be taken when modifying the default verify behaviour, for example setting \fB\s-1CMS_NO_CONTENT_VERIFY\s0\fR will totally disable all content verification and any modified content will be considered valid. This combination is however useful if one merely wishes to write the content to \fBout\fR and its validity is not considered important. .PP Chain verification should arguably be performed using the signing time rather than the current time. However since the signing time is supplied by the signer it cannot be trusted without additional evidence (such as a trusted timestamp). .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fICMS_verify()\fR returns 1 for a successful verification and zero if an error occurred. .PP \&\fICMS_get0_signers()\fR returns all signers or \s-1NULL\s0 if an error occurred. .PP The error can be obtained from \fIERR_get_error\fR\|(3) .SH "BUGS" .IX Header "BUGS" The trusted certificate store is not searched for the signing certificate, this is primarily due to the inadequacies of the current \fBX509_STORE\fR functionality. .PP The lack of single pass processing means that the signed content must all be held in memory if it is not detached. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fICMS_sign\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fICMS_verify()\fR was added to OpenSSL 0.9.8 man3/SSL_CTX_set_client_CA_list.3000064400000016303147210533270012463 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_client_CA_list 3" .TH SSL_CTX_set_client_CA_list 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_client_CA_list, SSL_set_client_CA_list, SSL_CTX_add_client_CA, SSL_add_client_CA \- set list of CAs sent to the client when requesting a client certificate .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *list); \& void SSL_set_client_CA_list(SSL *s, STACK_OF(X509_NAME) *list); \& int SSL_CTX_add_client_CA(SSL_CTX *ctx, X509 *cacert); \& int SSL_add_client_CA(SSL *ssl, X509 *cacert); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set_client_CA_list()\fR sets the \fBlist\fR of CAs sent to the client when requesting a client certificate for \fBctx\fR. .PP \&\fISSL_set_client_CA_list()\fR sets the \fBlist\fR of CAs sent to the client when requesting a client certificate for the chosen \fBssl\fR, overriding the setting valid for \fBssl\fR's \s-1SSL_CTX\s0 object. .PP \&\fISSL_CTX_add_client_CA()\fR adds the \s-1CA\s0 name extracted from \fBcacert\fR to the list of CAs sent to the client when requesting a client certificate for \&\fBctx\fR. .PP \&\fISSL_add_client_CA()\fR adds the \s-1CA\s0 name extracted from \fBcacert\fR to the list of CAs sent to the client when requesting a client certificate for the chosen \fBssl\fR, overriding the setting valid for \fBssl\fR's \s-1SSL_CTX\s0 object. .SH "NOTES" .IX Header "NOTES" When a \s-1TLS/SSL\s0 server requests a client certificate (see \&\fB\f(BISSL_CTX_set_verify\fB\|(3)\fR), it sends a list of CAs, for which it will accept certificates, to the client. .PP This list must explicitly be set using \fISSL_CTX_set_client_CA_list()\fR for \&\fBctx\fR and \fISSL_set_client_CA_list()\fR for the specific \fBssl\fR. The list specified overrides the previous setting. The CAs listed do not become trusted (\fBlist\fR only contains the names, not the complete certificates); use \&\fISSL_CTX_load_verify_locations\fR\|(3) to additionally load them for verification. .PP If the list of acceptable CAs is compiled in a file, the \&\fISSL_load_client_CA_file\fR\|(3) function can be used to help importing the necessary data. .PP \&\fISSL_CTX_add_client_CA()\fR and \fISSL_add_client_CA()\fR can be used to add additional items the list of client CAs. If no list was specified before using \&\fISSL_CTX_set_client_CA_list()\fR or \fISSL_set_client_CA_list()\fR, a new client \&\s-1CA\s0 list for \fBctx\fR or \fBssl\fR (as appropriate) is opened. .PP These functions are only useful for \s-1TLS/SSL\s0 servers. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CTX_set_client_CA_list()\fR and \fISSL_set_client_CA_list()\fR do not return diagnostic information. .PP \&\fISSL_CTX_add_client_CA()\fR and \fISSL_add_client_CA()\fR have the following return values: .IP "0" 4 A failure while manipulating the \s-1STACK_OF\s0(X509_NAME) object occurred or the X509_NAME could not be extracted from \fBcacert\fR. Check the error stack to find out the reason. .IP "1" 4 .IX Item "1" The operation succeeded. .SH "EXAMPLES" .IX Header "EXAMPLES" Scan all certificates in \fBCAfile\fR and list them as acceptable CAs: .PP .Vb 1 \& SSL_CTX_set_client_CA_list(ctx,SSL_load_client_CA_file(CAfile)); .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \&\fISSL_get_client_CA_list\fR\|(3), \&\fISSL_load_client_CA_file\fR\|(3), \&\fISSL_CTX_load_verify_locations\fR\|(3) man3/CONF_modules_load_file.3000064400000022305147210533270011747 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CONF_modules_load_file 3" .TH CONF_modules_load_file 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" .Vb 1 \& CONF_modules_load_file, CONF_modules_load \- OpenSSL configuration functions .Ve .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int CONF_modules_load_file(const char *filename, const char *appname, \& unsigned long flags); \& int CONF_modules_load(const CONF *cnf, const char *appname, \& unsigned long flags); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The function \fICONF_modules_load_file()\fR configures OpenSSL using file \&\fBfilename\fR and application name \fBappname\fR. If \fBfilename\fR is \s-1NULL\s0 the standard OpenSSL configuration file is used. If \fBappname\fR is \&\s-1NULL\s0 the standard OpenSSL application name \fBopenssl_conf\fR is used. The behaviour can be cutomized using \fBflags\fR. .PP \&\fICONF_modules_load()\fR is idential to \fICONF_modules_load_file()\fR except it reads configuration information from \fBcnf\fR. .SH "NOTES" .IX Header "NOTES" The following \fBflags\fR are currently recognized: .PP \&\fB\s-1CONF_MFLAGS_IGNORE_ERRORS\s0\fR if set errors returned by individual configuration modules are ignored. If not set the first module error is considered fatal and no further modules are loaded. .PP Normally any modules errors will add error information to the error queue. If \&\fB\s-1CONF_MFLAGS_SILENT\s0\fR is set no error information is added. .PP If \fB\s-1CONF_MFLAGS_NO_DSO\s0\fR is set configuration module loading from DSOs is disabled. .PP \&\fB\s-1CONF_MFLAGS_IGNORE_MISSING_FILE\s0\fR if set will make \fICONF_load_modules_file()\fR ignore missing configuration files. Normally a missing configuration file return an error. .PP \&\fB\s-1CONF_MFLAGS_DEFAULT_SECTION\s0\fR if set and \fBappname\fR is not \s-1NULL\s0 will use the default section pointed to by \fBopenssl_conf\fR if \fBappname\fR does not exist. .PP Applications should call these functions after loading builtin modules using \&\fIOPENSSL_load_builtin_modules()\fR, any ENGINEs for example using \&\fIENGINE_load_builtin_engines()\fR, any algorithms for example \&\fIOPENSSL_add_all_algorithms()\fR and (if the application uses libssl) \&\fISSL_library_init()\fR. .PP By using \fICONF_modules_load_file()\fR with appropriate flags an application can customise application configuration to best suit its needs. In some cases the use of a configuration file is optional and its absence is not an error: in this case \fB\s-1CONF_MFLAGS_IGNORE_MISSING_FILE\s0\fR would be set. .PP Errors during configuration may also be handled differently by different applications. For example in some cases an error may simply print out a warning message and the application continue. In other cases an application might consider a configuration file error as fatal and exit immediately. .PP Applications can use the \fICONF_modules_load()\fR function if they wish to load a configuration file themselves and have finer control over how errors are treated. .SH "EXAMPLES" .IX Header "EXAMPLES" Load a configuration file and print out any errors and exit (missing file considered fatal): .PP .Vb 5 \& if (CONF_modules_load_file(NULL, NULL, 0) <= 0) { \& fprintf(stderr, "FATAL: error loading configuration file\en"); \& ERR_print_errors_fp(stderr); \& exit(1); \& } .Ve .PP Load default configuration file using the section indicated by \*(L"myapp\*(R", tolerate missing files, but exit on other errors: .PP .Vb 6 \& if (CONF_modules_load_file(NULL, "myapp", \& CONF_MFLAGS_IGNORE_MISSING_FILE) <= 0) { \& fprintf(stderr, "FATAL: error loading configuration file\en"); \& ERR_print_errors_fp(stderr); \& exit(1); \& } .Ve .PP Load custom configuration file and section, only print warnings on error, missing configuration file ignored: .PP .Vb 5 \& if (CONF_modules_load_file("/something/app.cnf", "myapp", \& CONF_MFLAGS_IGNORE_MISSING_FILE) <= 0) { \& fprintf(stderr, "WARNING: error loading configuration file\en"); \& ERR_print_errors_fp(stderr); \& } .Ve .PP Load and parse configuration file manually, custom error handling: .PP .Vb 10 \& FILE *fp; \& CONF *cnf = NULL; \& long eline; \& fp = fopen("/somepath/app.cnf", "r"); \& if (fp == NULL) { \& fprintf(stderr, "Error opening configuration file\en"); \& /* Other missing configuration file behaviour */ \& } else { \& cnf = NCONF_new(NULL); \& if (NCONF_load_fp(cnf, fp, &eline) == 0) { \& fprintf(stderr, "Error on line %ld of configuration file\en", eline); \& ERR_print_errors_fp(stderr); \& /* Other malformed configuration file behaviour */ \& } else if (CONF_modules_load(cnf, "appname", 0) <= 0) { \& fprintf(stderr, "Error configuring application\en"); \& ERR_print_errors_fp(stderr); \& /* Other configuration error behaviour */ \& } \& fclose(fp); \& NCONF_free(cnf); \& } .Ve .SH "RETURN VALUES" .IX Header "RETURN VALUES" These functions return 1 for success and a zero or negative value for failure. If module errors are not ignored the return code will reflect the return value of the failing module (this will always be zero or negative). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIconf\fR\|(5), \fIOPENSSL_config\fR\|(3), \&\fICONF_free\fR\|(3), \fIerr\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" CONF_modules_load_file and CONF_modules_load first appeared in OpenSSL 0.9.7. man3/SSL_CTX_free.3000064400000012245147210533270007656 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_free 3" .TH SSL_CTX_free 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_free \- free an allocated SSL_CTX object .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void SSL_CTX_free(SSL_CTX *ctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_free()\fR decrements the reference count of \fBctx\fR, and removes the \&\s-1SSL_CTX\s0 object pointed to by \fBctx\fR and frees up the allocated memory if the the reference count has reached 0. .PP It also calls the \fIfree()\fRing procedures for indirectly affected items, if applicable: the session cache, the list of ciphers, the list of Client CAs, the certificates and keys. .SH "WARNINGS" .IX Header "WARNINGS" If a session-remove callback is set (\fISSL_CTX_sess_set_remove_cb()\fR), this callback will be called for each session being freed from \fBctx\fR's session cache. This implies, that all corresponding sessions from an external session cache are removed as well. If this is not desired, the user should explicitly unset the callback by calling SSL_CTX_sess_set_remove_cb(\fBctx\fR, \s-1NULL\s0) prior to calling \fISSL_CTX_free()\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CTX_free()\fR does not provide diagnostic information. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_CTX_new\fR\|(3), \fIssl\fR\|(3), \&\fISSL_CTX_sess_set_get_cb\fR\|(3) man3/BIO_find_type.3000064400000016270147210533270010152 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BIO_find_type 3" .TH BIO_find_type 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BIO_find_type, BIO_next, BIO_method_type \- BIO chain traversal .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& BIO * BIO_find_type(BIO *b,int bio_type); \& BIO * BIO_next(BIO *b); \& \& #define BIO_method_type(b) ((b)\->method\->type) \& \& #define BIO_TYPE_NONE 0 \& #define BIO_TYPE_MEM (1|0x0400) \& #define BIO_TYPE_FILE (2|0x0400) \& \& #define BIO_TYPE_FD (4|0x0400|0x0100) \& #define BIO_TYPE_SOCKET (5|0x0400|0x0100) \& #define BIO_TYPE_NULL (6|0x0400) \& #define BIO_TYPE_SSL (7|0x0200) \& #define BIO_TYPE_MD (8|0x0200) \& #define BIO_TYPE_BUFFER (9|0x0200) \& #define BIO_TYPE_CIPHER (10|0x0200) \& #define BIO_TYPE_BASE64 (11|0x0200) \& #define BIO_TYPE_CONNECT (12|0x0400|0x0100) \& #define BIO_TYPE_ACCEPT (13|0x0400|0x0100) \& #define BIO_TYPE_PROXY_CLIENT (14|0x0200) \& #define BIO_TYPE_PROXY_SERVER (15|0x0200) \& #define BIO_TYPE_NBIO_TEST (16|0x0200) \& #define BIO_TYPE_NULL_FILTER (17|0x0200) \& #define BIO_TYPE_BER (18|0x0200) \& #define BIO_TYPE_BIO (19|0x0400) \& \& #define BIO_TYPE_DESCRIPTOR 0x0100 \& #define BIO_TYPE_FILTER 0x0200 \& #define BIO_TYPE_SOURCE_SINK 0x0400 .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fIBIO_find_type()\fR searches for a \s-1BIO\s0 of a given type in a chain, starting at \s-1BIO \s0\fBb\fR. If \fBtype\fR is a specific type (such as \s-1BIO_TYPE_MEM\s0) then a search is made for a \s-1BIO\s0 of that type. If \fBtype\fR is a general type (such as \&\fB\s-1BIO_TYPE_SOURCE_SINK\s0\fR) then the next matching \s-1BIO\s0 of the given general type is searched for. \fIBIO_find_type()\fR returns the next matching \s-1BIO\s0 or \s-1NULL\s0 if none is found. .PP Note: not all the \fBBIO_TYPE_*\fR types above have corresponding \s-1BIO\s0 implementations. .PP \&\fIBIO_next()\fR returns the next \s-1BIO\s0 in a chain. It can be used to traverse all BIOs in a chain or used in conjunction with \fIBIO_find_type()\fR to find all BIOs of a certain type. .PP \&\fIBIO_method_type()\fR returns the type of a \s-1BIO.\s0 .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBIO_find_type()\fR returns a matching \s-1BIO\s0 or \s-1NULL\s0 for no match. .PP \&\fIBIO_next()\fR returns the next \s-1BIO\s0 in a chain. .PP \&\fIBIO_method_type()\fR returns the type of the \s-1BIO \s0\fBb\fR. .SH "NOTES" .IX Header "NOTES" \&\fIBIO_next()\fR was added to OpenSSL 0.9.6 to provide a 'clean' way to traverse a \s-1BIO\s0 chain or find multiple matches using \fIBIO_find_type()\fR. Previous versions had to use: .PP .Vb 1 \& next = bio\->next_bio; .Ve .SH "BUGS" .IX Header "BUGS" \&\fIBIO_find_type()\fR in OpenSSL 0.9.5a and earlier could not be safely passed a \&\s-1NULL\s0 pointer for the \fBb\fR argument. .SH "EXAMPLE" .IX Header "EXAMPLE" Traverse a chain looking for digest BIOs: .PP .Vb 2 \& BIO *btmp; \& btmp = in_bio; /* in_bio is chain to search through */ \& \& do { \& btmp = BIO_find_type(btmp, BIO_TYPE_MD); \& if(btmp == NULL) break; /* Not found */ \& /* btmp is a digest BIO, do something with it ...*/ \& ... \& \& btmp = BIO_next(btmp); \& } while(btmp); .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\s-1TBA\s0 man3/SSL_CTX_use_psk_identity_hint.3000064400000015426147210533270013345 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_use_psk_identity_hint 3" .TH SSL_CTX_use_psk_identity_hint 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_use_psk_identity_hint, SSL_use_psk_identity_hint, SSL_CTX_set_psk_server_callback, SSL_set_psk_server_callback \- set PSK identity hint to use .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_CTX_use_psk_identity_hint(SSL_CTX *ctx, const char *hint); \& int SSL_use_psk_identity_hint(SSL *ssl, const char *hint); \& \& void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx, \& unsigned int (*callback)(SSL *ssl, const char *identity, \& unsigned char *psk, int max_psk_len)); \& void SSL_set_psk_server_callback(SSL *ssl, \& unsigned int (*callback)(SSL *ssl, const char *identity, \& unsigned char *psk, int max_psk_len)); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_use_psk_identity_hint()\fR sets the given \fB\s-1NULL\s0\fR\-terminated \s-1PSK\s0 identity hint \fBhint\fR to \s-1SSL\s0 context object \&\fBctx\fR. \fISSL_use_psk_identity_hint()\fR sets the given \fB\s-1NULL\s0\fR\-terminated \&\s-1PSK\s0 identity hint \fBhint\fR to \s-1SSL\s0 connection object \fBssl\fR. If \fBhint\fR is \fB\s-1NULL\s0\fR the current hint from \fBctx\fR or \fBssl\fR is deleted. .PP In the case where \s-1PSK\s0 identity hint is \fB\s-1NULL\s0\fR, the server does not send the ServerKeyExchange message to the client. .PP A server application must provide a callback function which is called when the server receives the ClientKeyExchange message from the client. The purpose of the callback function is to validate the received \s-1PSK\s0 identity and to fetch the pre-shared key used during the connection setup phase. The callback is set using functions \&\fISSL_CTX_set_psk_server_callback()\fR or \&\fISSL_set_psk_server_callback()\fR. The callback function is given the connection in parameter \fBssl\fR, \fB\s-1NULL\s0\fR\-terminated \s-1PSK\s0 identity sent by the client in parameter \fBidentity\fR, and a buffer \fBpsk\fR of length \&\fBmax_psk_len\fR bytes where the pre-shared key is to be stored. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CTX_use_psk_identity_hint()\fR and \fISSL_use_psk_identity_hint()\fR return 1 on success, 0 otherwise. .PP Return values from the server callback are interpreted as follows: .IP "0" 4 \&\s-1PSK\s0 identity was not found. An \*(L"unknown_psk_identity\*(R" alert message will be sent and the connection setup fails. .IP ">0" 4 .IX Item ">0" \&\s-1PSK\s0 identity was found and the server callback has provided the \s-1PSK\s0 successfully in parameter \fBpsk\fR. Return value is the length of \&\fBpsk\fR in bytes. It is an error to return a value greater than \&\fBmax_psk_len\fR. .Sp If the \s-1PSK\s0 identity was not found but the callback instructs the protocol to continue anyway, the callback must provide some random data to \fBpsk\fR and return the length of the random data, so the connection will fail with decryption_error before it will be finished completely. man3/bn.3000064400000026246147210533270006103 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "bn 3" .TH bn 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" bn \- multiprecision integer arithmetics .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& BIGNUM *BN_new(void); \& void BN_free(BIGNUM *a); \& void BN_init(BIGNUM *); \& void BN_clear(BIGNUM *a); \& void BN_clear_free(BIGNUM *a); \& \& BN_CTX *BN_CTX_new(void); \& void BN_CTX_init(BN_CTX *c); \& void BN_CTX_free(BN_CTX *c); \& \& BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b); \& BIGNUM *BN_dup(const BIGNUM *a); \& \& BIGNUM *BN_swap(BIGNUM *a, BIGNUM *b); \& \& int BN_num_bytes(const BIGNUM *a); \& int BN_num_bits(const BIGNUM *a); \& int BN_num_bits_word(BN_ULONG w); \& \& void BN_set_negative(BIGNUM *a, int n); \& int BN_is_negative(const BIGNUM *a); \& \& int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); \& int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); \& int BN_mul(BIGNUM *r, BIGNUM *a, BIGNUM *b, BN_CTX *ctx); \& int BN_sqr(BIGNUM *r, BIGNUM *a, BN_CTX *ctx); \& int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *a, const BIGNUM *d, \& BN_CTX *ctx); \& int BN_mod(BIGNUM *rem, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); \& int BN_nnmod(BIGNUM *rem, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); \& int BN_mod_add(BIGNUM *ret, BIGNUM *a, BIGNUM *b, const BIGNUM *m, \& BN_CTX *ctx); \& int BN_mod_sub(BIGNUM *ret, BIGNUM *a, BIGNUM *b, const BIGNUM *m, \& BN_CTX *ctx); \& int BN_mod_mul(BIGNUM *ret, BIGNUM *a, BIGNUM *b, const BIGNUM *m, \& BN_CTX *ctx); \& int BN_mod_sqr(BIGNUM *ret, BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); \& int BN_exp(BIGNUM *r, BIGNUM *a, BIGNUM *p, BN_CTX *ctx); \& int BN_mod_exp(BIGNUM *r, BIGNUM *a, const BIGNUM *p, \& const BIGNUM *m, BN_CTX *ctx); \& int BN_gcd(BIGNUM *r, BIGNUM *a, BIGNUM *b, BN_CTX *ctx); \& \& int BN_add_word(BIGNUM *a, BN_ULONG w); \& int BN_sub_word(BIGNUM *a, BN_ULONG w); \& int BN_mul_word(BIGNUM *a, BN_ULONG w); \& BN_ULONG BN_div_word(BIGNUM *a, BN_ULONG w); \& BN_ULONG BN_mod_word(const BIGNUM *a, BN_ULONG w); \& \& int BN_cmp(BIGNUM *a, BIGNUM *b); \& int BN_ucmp(BIGNUM *a, BIGNUM *b); \& int BN_is_zero(BIGNUM *a); \& int BN_is_one(BIGNUM *a); \& int BN_is_word(BIGNUM *a, BN_ULONG w); \& int BN_is_odd(BIGNUM *a); \& \& int BN_zero(BIGNUM *a); \& int BN_one(BIGNUM *a); \& const BIGNUM *BN_value_one(void); \& int BN_set_word(BIGNUM *a, unsigned long w); \& unsigned long BN_get_word(BIGNUM *a); \& \& int BN_rand(BIGNUM *rnd, int bits, int top, int bottom); \& int BN_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom); \& int BN_rand_range(BIGNUM *rnd, BIGNUM *range); \& int BN_pseudo_rand_range(BIGNUM *rnd, BIGNUM *range); \& \& BIGNUM *BN_generate_prime(BIGNUM *ret, int bits,int safe, BIGNUM *add, \& BIGNUM *rem, void (*callback)(int, int, void *), void *cb_arg); \& int BN_is_prime(const BIGNUM *p, int nchecks, \& void (*callback)(int, int, void *), BN_CTX *ctx, void *cb_arg); \& \& int BN_set_bit(BIGNUM *a, int n); \& int BN_clear_bit(BIGNUM *a, int n); \& int BN_is_bit_set(const BIGNUM *a, int n); \& int BN_mask_bits(BIGNUM *a, int n); \& int BN_lshift(BIGNUM *r, const BIGNUM *a, int n); \& int BN_lshift1(BIGNUM *r, BIGNUM *a); \& int BN_rshift(BIGNUM *r, BIGNUM *a, int n); \& int BN_rshift1(BIGNUM *r, BIGNUM *a); \& \& int BN_bn2bin(const BIGNUM *a, unsigned char *to); \& BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret); \& char *BN_bn2hex(const BIGNUM *a); \& char *BN_bn2dec(const BIGNUM *a); \& int BN_hex2bn(BIGNUM **a, const char *str); \& int BN_dec2bn(BIGNUM **a, const char *str); \& int BN_print(BIO *fp, const BIGNUM *a); \& int BN_print_fp(FILE *fp, const BIGNUM *a); \& int BN_bn2mpi(const BIGNUM *a, unsigned char *to); \& BIGNUM *BN_mpi2bn(unsigned char *s, int len, BIGNUM *ret); \& \& BIGNUM *BN_mod_inverse(BIGNUM *r, BIGNUM *a, const BIGNUM *n, \& BN_CTX *ctx); \& \& BN_RECP_CTX *BN_RECP_CTX_new(void); \& void BN_RECP_CTX_init(BN_RECP_CTX *recp); \& void BN_RECP_CTX_free(BN_RECP_CTX *recp); \& int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *m, BN_CTX *ctx); \& int BN_mod_mul_reciprocal(BIGNUM *r, BIGNUM *a, BIGNUM *b, \& BN_RECP_CTX *recp, BN_CTX *ctx); \& \& BN_MONT_CTX *BN_MONT_CTX_new(void); \& void BN_MONT_CTX_init(BN_MONT_CTX *ctx); \& void BN_MONT_CTX_free(BN_MONT_CTX *mont); \& int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *m, BN_CTX *ctx); \& BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to, BN_MONT_CTX *from); \& int BN_mod_mul_montgomery(BIGNUM *r, BIGNUM *a, BIGNUM *b, \& BN_MONT_CTX *mont, BN_CTX *ctx); \& int BN_from_montgomery(BIGNUM *r, BIGNUM *a, BN_MONT_CTX *mont, \& BN_CTX *ctx); \& int BN_to_montgomery(BIGNUM *r, BIGNUM *a, BN_MONT_CTX *mont, \& BN_CTX *ctx); \& \& BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, \& BIGNUM *mod); \& void BN_BLINDING_free(BN_BLINDING *b); \& int BN_BLINDING_update(BN_BLINDING *b,BN_CTX *ctx); \& int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); \& int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); \& int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, \& BN_CTX *ctx); \& int BN_BLINDING_invert_ex(BIGNUM *n,const BIGNUM *r,BN_BLINDING *b, \& BN_CTX *ctx); \& unsigned long BN_BLINDING_get_thread_id(const BN_BLINDING *); \& void BN_BLINDING_set_thread_id(BN_BLINDING *, unsigned long); \& unsigned long BN_BLINDING_get_flags(const BN_BLINDING *); \& void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long); \& BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, \& const BIGNUM *e, BIGNUM *m, BN_CTX *ctx, \& int (*bn_mod_exp)(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, \& const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx), \& BN_MONT_CTX *m_ctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This library performs arithmetic operations on integers of arbitrary size. It was written for use in public key cryptography, such as \s-1RSA\s0 and Diffie-Hellman. .PP It uses dynamic memory allocation for storing its data structures. That means that there is no limit on the size of the numbers manipulated by these functions, but return values must always be checked in case a memory allocation error has occurred. .PP The basic object in this library is a \fB\s-1BIGNUM\s0\fR. It is used to hold a single large integer. This type should be considered opaque and fields should not be modified or accessed directly. .PP The creation of \fB\s-1BIGNUM\s0\fR objects is described in \fIBN_new\fR\|(3); \&\fIBN_add\fR\|(3) describes most of the arithmetic operations. Comparison is described in \fIBN_cmp\fR\|(3); \fIBN_zero\fR\|(3) describes certain assignments, \fIBN_rand\fR\|(3) the generation of random numbers, \fIBN_generate_prime\fR\|(3) deals with prime numbers and \fIBN_set_bit\fR\|(3) with bit operations. The conversion of \fB\s-1BIGNUM\s0\fRs to external formats is described in \fIBN_bn2bin\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIbn_internal\fR\|(3), \&\fIdh\fR\|(3), \fIerr\fR\|(3), \fIrand\fR\|(3), \fIrsa\fR\|(3), \&\fIBN_new\fR\|(3), \fIBN_CTX_new\fR\|(3), \&\fIBN_copy\fR\|(3), \fIBN_swap\fR\|(3), \fIBN_num_bytes\fR\|(3), \&\fIBN_add\fR\|(3), \fIBN_add_word\fR\|(3), \&\fIBN_cmp\fR\|(3), \fIBN_zero\fR\|(3), \fIBN_rand\fR\|(3), \&\fIBN_generate_prime\fR\|(3), \fIBN_set_bit\fR\|(3), \&\fIBN_bn2bin\fR\|(3), \fIBN_mod_inverse\fR\|(3), \&\fIBN_mod_mul_reciprocal\fR\|(3), \&\fIBN_mod_mul_montgomery\fR\|(3), \&\fIBN_BLINDING_new\fR\|(3) man3/X509_STORE_set_verify_cb_func.3000064400000012777147210533270013047 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "X509_STORE_set_verify_cb_func 3" .TH X509_STORE_set_verify_cb_func 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" X509_STORE_set_verify_cb_func, X509_STORE_set_verify_cb \- set verification callback .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void X509_STORE_set_verify_cb(X509_STORE *st, \& int (*verify_cb)(int ok, X509_STORE_CTX *ctx)); \& \& void X509_STORE_set_verify_cb_func(X509_STORE *st, \& int (*verify_cb)(int ok, X509_STORE_CTX *ctx)); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIX509_STORE_set_verify_cb()\fR sets the verification callback of \fBctx\fR to \&\fBverify_cb\fR overwriting any existing callback. .PP \&\fIX509_STORE_set_verify_cb_func()\fR also sets the verification callback but it is implemented as a macro. .SH "NOTES" .IX Header "NOTES" The verification callback from an \fBX509_STORE\fR is inherited by the corresponding \fBX509_STORE_CTX\fR structure when it is initialized. This can be used to set the verification callback when the \fBX509_STORE_CTX\fR is otherwise inaccessible (for example during S/MIME verification). .SH "BUGS" .IX Header "BUGS" The macro version of this function was the only one available before OpenSSL 1.0.0. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIX509_STORE_set_verify_cb()\fR and \fIX509_STORE_set_verify_cb_func()\fR do not return a value. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIX509_STORE_CTX_set_verify_cb\fR\|(3) \&\fICMS_verify\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIX509_STORE_set_verify_cb_func()\fR is available in all versions of SSLeay and OpenSSL. .PP \&\fIX509_STORE_set_verify_cb()\fR was added to OpenSSL 1.0.0. man3/CMS_get0_type.3000064400000015415147210533270010102 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CMS_get0_type 3" .TH CMS_get0_type 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" .Vb 1 \& CMS_get0_type, CMS_set1_eContentType, CMS_get0_eContentType, CMS_get0_content \- get and set CMS content types and content .Ve .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& const ASN1_OBJECT *CMS_get0_type(CMS_ContentInfo *cms); \& int CMS_set1_eContentType(CMS_ContentInfo *cms, const ASN1_OBJECT *oid); \& const ASN1_OBJECT *CMS_get0_eContentType(CMS_ContentInfo *cms); \& ASN1_OCTET_STRING **CMS_get0_content(CMS_ContentInfo *cms); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fICMS_get0_type()\fR returns the content type of a CMS_ContentInfo structure as and \s-1ASN1_OBJECT\s0 pointer. An application can then decide how to process the CMS_ContentInfo structure based on this value. .PP \&\fICMS_set1_eContentType()\fR sets the embedded content type of a CMS_ContentInfo structure. It should be called with \s-1CMS\s0 functions with the \fB\s-1CMS_PARTIAL\s0\fR flag and \fBbefore\fR the structure is finalised, otherwise the results are undefined. .PP \&\s-1ASN1_OBJECT\s0 *\fICMS_get0_eContentType()\fR returns a pointer to the embedded content type. .PP \&\fICMS_get0_content()\fR returns a pointer to the \fB\s-1ASN1_OCTET_STRING\s0\fR pointer containing the embedded content. .SH "NOTES" .IX Header "NOTES" As the \fB0\fR implies \fICMS_get0_type()\fR, \fICMS_get0_eContentType()\fR and \&\fICMS_get0_content()\fR return internal pointers which should \fBnot\fR be freed up. \&\fICMS_set1_eContentType()\fR copies the supplied \s-1OID\s0 and it \fBshould\fR be freed up after use. .PP The \fB\s-1ASN1_OBJECT\s0\fR values returned can be converted to an integer \fB\s-1NID\s0\fR value using \fIOBJ_obj2nid()\fR. For the currently supported content types the following values are returned: .PP .Vb 6 \& NID_pkcs7_data \& NID_pkcs7_signed \& NID_pkcs7_digest \& NID_id_smime_ct_compressedData: \& NID_pkcs7_encrypted \& NID_pkcs7_enveloped .Ve .PP The return value of \fICMS_get0_content()\fR is a pointer to the \fB\s-1ASN1_OCTET_STRING\s0\fR content pointer. That means that for example: .PP .Vb 1 \& ASN1_OCTET_STRING **pconf = CMS_get0_content(cms); .Ve .PP \&\fB*pconf\fR could be \s-1NULL\s0 if there is no embedded content. Applications can access, modify or create the embedded content in a \fBCMS_ContentInfo\fR structure using this function. Applications usually will not need to modify the embedded content as it is normally set by higher level functions. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fICMS_get0_type()\fR and \fICMS_get0_eContentType()\fR return and \s-1ASN1_OBJECT\s0 structure. .PP \&\fICMS_set1_eContentType()\fR returns 1 for success or 0 if an error occurred. The error can be obtained from \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fICMS_get0_type()\fR, \fICMS_set1_eContentType()\fR and \fICMS_get0_eContentType()\fR were all first added to OpenSSL 0.9.8 man3/d2i_SSL_SESSION.3000064400000016033147210533270010077 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "d2i_SSL_SESSION 3" .TH d2i_SSL_SESSION 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" d2i_SSL_SESSION, i2d_SSL_SESSION \- convert SSL_SESSION object from/to ASN1 representation .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, const unsigned char **pp, long length); \& int i2d_SSL_SESSION(SSL_SESSION *in, unsigned char **pp); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fId2i_SSL_SESSION()\fR transforms the external \s-1ASN1\s0 representation of an \s-1SSL/TLS\s0 session, stored as binary data at location \fBpp\fR with length \fBlength\fR, into an \s-1SSL_SESSION\s0 object. .PP \&\fIi2d_SSL_SESSION()\fR transforms the \s-1SSL_SESSION\s0 object \fBin\fR into the \s-1ASN1\s0 representation and stores it into the memory location pointed to by \fBpp\fR. The length of the resulting \s-1ASN1\s0 representation is returned. If \fBpp\fR is the \s-1NULL\s0 pointer, only the length is calculated and returned. .SH "NOTES" .IX Header "NOTES" The \s-1SSL_SESSION\s0 object is built from several \fImalloc()\fRed parts, it can therefore not be moved, copied or stored directly. In order to store session data on disk or into a database, it must be transformed into a binary \s-1ASN1\s0 representation. .PP When using \fId2i_SSL_SESSION()\fR, the \s-1SSL_SESSION\s0 object is automatically allocated. The reference count is 1, so that the session must be explicitly removed using \fISSL_SESSION_free\fR\|(3), unless the \s-1SSL_SESSION\s0 object is completely taken over, when being called inside the \fIget_session_cb()\fR (see \&\fISSL_CTX_sess_set_get_cb\fR\|(3)). .PP \&\s-1SSL_SESSION\s0 objects keep internal link information about the session cache list, when being inserted into one \s-1SSL_CTX\s0 object's session cache. One \s-1SSL_SESSION\s0 object, regardless of its reference count, must therefore only be used with one \s-1SSL_CTX\s0 object (and the \s-1SSL\s0 objects created from this \s-1SSL_CTX\s0 object). .PP When using \fIi2d_SSL_SESSION()\fR, the memory location pointed to by \fBpp\fR must be large enough to hold the binary representation of the session. There is no known limit on the size of the created \s-1ASN1\s0 representation, so the necessary amount of space should be obtained by first calling \fIi2d_SSL_SESSION()\fR with \&\fBpp=NULL\fR, and obtain the size needed, then allocate the memory and call \fIi2d_SSL_SESSION()\fR again. Note that this will advance the value contained in \fB*pp\fR so it is necessary to save a copy of the original allocation. For example: int i,j; char *p, *temp; i = i2d_SSL_SESSION(sess, \s-1NULL\s0); p = temp = malloc(i); j = i2d_SSL_SESSION(sess, &temp); assert(i == j); assert(p+i == temp); .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fId2i_SSL_SESSION()\fR returns a pointer to the newly allocated \s-1SSL_SESSION\s0 object. In case of failure the NULL-pointer is returned and the error message can be retrieved from the error stack. .PP \&\fIi2d_SSL_SESSION()\fR returns the size of the \s-1ASN1\s0 representation in bytes. When the session is not valid, \fB0\fR is returned and no operation is performed. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_SESSION_free\fR\|(3), \&\fISSL_CTX_sess_set_get_cb\fR\|(3) man3/EC_GROUP_new.3000064400000022041147210533270007605 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EC_GROUP_new 3" .TH EC_GROUP_new 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EC_GROUP_new, EC_GROUP_free, EC_GROUP_clear_free, EC_GROUP_new_curve_GFp, EC_GROUP_new_curve_GF2m, EC_GROUP_new_by_curve_name, EC_GROUP_set_curve_GFp, EC_GROUP_get_curve_GFp, EC_GROUP_set_curve_GF2m, EC_GROUP_get_curve_GF2m, EC_get_builtin_curves \- Functions for creating and destroying EC_GROUP objects. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& #include \& #include \& \& EC_GROUP *EC_GROUP_new(const EC_METHOD *meth); \& void EC_GROUP_free(EC_GROUP *group); \& void EC_GROUP_clear_free(EC_GROUP *group); \& \& EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); \& EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); \& EC_GROUP *EC_GROUP_new_by_curve_name(int nid); \& \& int EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); \& int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, BN_CTX *ctx); \& int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); \& int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, BN_CTX *ctx); \& \& size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Within the library there are two forms of elliptic curve that are of interest. The first form is those defined over the prime field Fp. The elements of Fp are the integers 0 to p\-1, where p is a prime number. This gives us a revised elliptic curve equation as follows: .PP y^2 mod p = x^3 +ax + b mod p .PP The second form is those defined over a binary field F2^m where the elements of the field are integers of length at most m bits. For this form the elliptic curve equation is modified to: .PP y^2 + xy = x^3 + ax^2 + b (where b != 0) .PP Operations in a binary field are performed relative to an \fBirreducible polynomial\fR. All such curves with OpenSSL use a trinomial or a pentanomial for this parameter. .PP A new curve can be constructed by calling EC_GROUP_new, using the implementation provided by \fBmeth\fR (see \&\fIEC_GFp_simple_method\fR\|(3)). It is then necessary to call either EC_GROUP_set_curve_GFp or EC_GROUP_set_curve_GF2m as appropriate to create a curve defined over Fp or over F2^m respectively. .PP EC_GROUP_set_curve_GFp sets the curve parameters \fBp\fR, \fBa\fR and \fBb\fR for a curve over Fp stored in \fBgroup\fR. EC_group_get_curve_GFp obtains the previously set curve parameters. .PP EC_GROUP_set_curve_GF2m sets the equivalent curve parameters for a curve over F2^m. In this case \fBp\fR represents the irreducible polybnomial \- each bit represents a term in the polynomial. Therefore there will either be three or five bits set dependant on whether the polynomial is a trinomial or a pentanomial. EC_group_get_curve_GF2m obtains the previously set curve parameters. .PP The functions EC_GROUP_new_curve_GFp and EC_GROUP_new_curve_GF2m are shortcuts for calling EC_GROUP_new and the appropriate EC_group_set_curve function. An appropriate default implementation method will be used. .PP Whilst the library can be used to create any curve using the functions described above, there are also a number of predefined curves that are available. In order to obtain a list of all of the predefined curves, call the function EC_get_builtin_curves. The parameter \fBr\fR should be an array of EC_builtin_curve structures of size \fBnitems\fR. The function will populate the \fBr\fR array with information about the builtin curves. If \fBnitems\fR is less than the total number of curves available, then the first \fBnitems\fR curves will be returned. Otherwise the total number of curves will be provided. The return value is the total number of curves available (whether that number has been populated in \fBr\fR or not). Passing a \s-1NULL \s0\fBr\fR, or setting \fBnitems\fR to 0 will do nothing other than return the total number of curves available. The EC_builtin_curve structure is defined as follows: .PP .Vb 4 \& typedef struct { \& int nid; \& const char *comment; \& } EC_builtin_curve; .Ve .PP Each EC_builtin_curve item has a unique integer id (\fBnid\fR), and a human readable comment string describing the curve. .PP In order to construct a builtin curve use the function EC_GROUP_new_by_curve_name and provide the \fBnid\fR of the curve to be constructed. .PP EC_GROUP_free frees the memory associated with the \s-1EC_GROUP.\s0 .PP EC_GROUP_clear_free destroys any sensitive data held within the \s-1EC_GROUP\s0 and then frees its memory. .SH "RETURN VALUES" .IX Header "RETURN VALUES" All EC_GROUP_new* functions return a pointer to the newly constructed group, or \s-1NULL\s0 on error. .PP EC_get_builtin_curves returns the number of builtin curves that are available. .PP EC_GROUP_set_curve_GFp, EC_GROUP_get_curve_GFp, EC_GROUP_set_curve_GF2m, EC_GROUP_get_curve_GF2m return 1 on success or 0 on error. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIcrypto\fR\|(3), \fIec\fR\|(3), \fIEC_GROUP_copy\fR\|(3), \&\fIEC_POINT_new\fR\|(3), \fIEC_POINT_add\fR\|(3), \fIEC_KEY_new\fR\|(3), \&\fIEC_GFp_simple_method\fR\|(3), \fId2i_ECPKParameters\fR\|(3) man3/threads.3000064400000030453147210533270007131 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "threads 3" .TH threads 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" CRYPTO_THREADID_set_callback, CRYPTO_THREADID_get_callback, CRYPTO_THREADID_current, CRYPTO_THREADID_cmp, CRYPTO_THREADID_cpy, CRYPTO_THREADID_hash, CRYPTO_set_locking_callback, CRYPTO_num_locks, CRYPTO_set_dynlock_create_callback, CRYPTO_set_dynlock_lock_callback, CRYPTO_set_dynlock_destroy_callback, CRYPTO_get_new_dynlockid, CRYPTO_destroy_dynlockid, CRYPTO_lock \- OpenSSL thread support .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& /* Don\*(Aqt use this structure directly. */ \& typedef struct crypto_threadid_st \& { \& void *ptr; \& unsigned long val; \& } CRYPTO_THREADID; \& /* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */ \& void CRYPTO_THREADID_set_numeric(CRYPTO_THREADID *id, unsigned long val); \& void CRYPTO_THREADID_set_pointer(CRYPTO_THREADID *id, void *ptr); \& int CRYPTO_THREADID_set_callback(void (*threadid_func)(CRYPTO_THREADID *)); \& void (*CRYPTO_THREADID_get_callback(void))(CRYPTO_THREADID *); \& void CRYPTO_THREADID_current(CRYPTO_THREADID *id); \& int CRYPTO_THREADID_cmp(const CRYPTO_THREADID *a, \& const CRYPTO_THREADID *b); \& void CRYPTO_THREADID_cpy(CRYPTO_THREADID *dest, \& const CRYPTO_THREADID *src); \& unsigned long CRYPTO_THREADID_hash(const CRYPTO_THREADID *id); \& \& int CRYPTO_num_locks(void); \& \& /* struct CRYPTO_dynlock_value needs to be defined by the user */ \& struct CRYPTO_dynlock_value; \& \& void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value * \& (*dyn_create_function)(char *file, int line)); \& void CRYPTO_set_dynlock_lock_callback(void (*dyn_lock_function) \& (int mode, struct CRYPTO_dynlock_value *l, \& const char *file, int line)); \& void CRYPTO_set_dynlock_destroy_callback(void (*dyn_destroy_function) \& (struct CRYPTO_dynlock_value *l, const char *file, int line)); \& \& int CRYPTO_get_new_dynlockid(void); \& \& void CRYPTO_destroy_dynlockid(int i); \& \& void CRYPTO_lock(int mode, int n, const char *file, int line); \& \& #define CRYPTO_w_lock(type) \e \& CRYPTO_lock(CRYPTO_LOCK|CRYPTO_WRITE,type,_\|_FILE_\|_,_\|_LINE_\|_) \& #define CRYPTO_w_unlock(type) \e \& CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_WRITE,type,_\|_FILE_\|_,_\|_LINE_\|_) \& #define CRYPTO_r_lock(type) \e \& CRYPTO_lock(CRYPTO_LOCK|CRYPTO_READ,type,_\|_FILE_\|_,_\|_LINE_\|_) \& #define CRYPTO_r_unlock(type) \e \& CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_READ,type,_\|_FILE_\|_,_\|_LINE_\|_) \& #define CRYPTO_add(addr,amount,type) \e \& CRYPTO_add_lock(addr,amount,type,_\|_FILE_\|_,_\|_LINE_\|_) .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" OpenSSL can generally be used safely in multi-threaded applications provided that at least two callback functions are set, the locking_function and threadid_func. Note that OpenSSL is not completely thread-safe, and unfortunately not all global resources have the necessary locks. Further, the thread-safety does not extend to things like multiple threads using the same \fB\s-1SSL\s0\fR object at the same time. .PP locking_function(int mode, int n, const char *file, int line) is needed to perform locking on shared data structures. (Note that OpenSSL uses a number of global data structures that will be implicitly shared whenever multiple threads use OpenSSL.) Multi-threaded applications will crash at random if it is not set. .PP \&\fIlocking_function()\fR must be able to handle up to \fICRYPTO_num_locks()\fR different mutex locks. It sets the \fBn\fR\-th lock if \fBmode\fR & \&\fB\s-1CRYPTO_LOCK\s0\fR, and releases it otherwise. .PP \&\fBfile\fR and \fBline\fR are the file number of the function setting the lock. They can be useful for debugging. .PP threadid_func(\s-1CRYPTO_THREADID\s0 *id) is needed to record the currently-executing thread's identifier into \fBid\fR. The implementation of this callback should not fill in \fBid\fR directly, but should use \fICRYPTO_THREADID_set_numeric()\fR if thread IDs are numeric, or \fICRYPTO_THREADID_set_pointer()\fR if they are pointer-based. If the application does not register such a callback using \&\fICRYPTO_THREADID_set_callback()\fR, then a default implementation is used \- on Windows and BeOS this uses the system's default thread identifying APIs, and on all other platforms it uses the address of \fBerrno\fR. The latter is satisfactory for thread-safety if and only if the platform has a thread-local error number facility. .PP Once \fIthreadid_func()\fR is registered, or if the built-in default implementation is to be used; .IP "\(bu" 4 \&\fICRYPTO_THREADID_current()\fR records the currently-executing thread \s-1ID\s0 into the given \fBid\fR object. .IP "\(bu" 4 \&\fICRYPTO_THREADID_cmp()\fR compares two thread IDs (returning zero for equality, ie. the same semantics as \fImemcmp()\fR). .IP "\(bu" 4 \&\fICRYPTO_THREADID_cpy()\fR duplicates a thread \s-1ID\s0 value, .IP "\(bu" 4 \&\fICRYPTO_THREADID_hash()\fR returns a numeric value usable as a hash-table key. This is usually the exact numeric or pointer-based thread \s-1ID\s0 used internally, however this also handles the unusual case where pointers are larger than 'long' variables and the platform's thread IDs are pointer-based \- in this case, mixing is done to attempt to produce a unique numeric value even though it is not as wide as the platform's true thread IDs. .PP Additionally, OpenSSL supports dynamic locks, and sometimes, some parts of OpenSSL need it for better performance. To enable this, the following is required: .IP "\(bu" 4 Three additional callback function, dyn_create_function, dyn_lock_function and dyn_destroy_function. .IP "\(bu" 4 A structure defined with the data that each lock needs to handle. .PP struct CRYPTO_dynlock_value has to be defined to contain whatever structure is needed to handle locks. .PP dyn_create_function(const char *file, int line) is needed to create a lock. Multi-threaded applications might crash at random if it is not set. .PP dyn_lock_function(int mode, CRYPTO_dynlock *l, const char *file, int line) is needed to perform locking off dynamic lock numbered n. Multi-threaded applications might crash at random if it is not set. .PP dyn_destroy_function(CRYPTO_dynlock *l, const char *file, int line) is needed to destroy the lock l. Multi-threaded applications might crash at random if it is not set. .PP \&\fICRYPTO_get_new_dynlockid()\fR is used to create locks. It will call dyn_create_function for the actual creation. .PP \&\fICRYPTO_destroy_dynlockid()\fR is used to destroy locks. It will call dyn_destroy_function for the actual destruction. .PP \&\fICRYPTO_lock()\fR is used to lock and unlock the locks. mode is a bitfield describing what should be done with the lock. n is the number of the lock as returned from \fICRYPTO_get_new_dynlockid()\fR. mode can be combined from the following values. These values are pairwise exclusive, with undefined behaviour if misused (for example, \s-1CRYPTO_READ\s0 and \s-1CRYPTO_WRITE\s0 should not be used together): .PP .Vb 4 \& CRYPTO_LOCK 0x01 \& CRYPTO_UNLOCK 0x02 \& CRYPTO_READ 0x04 \& CRYPTO_WRITE 0x08 .Ve .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fICRYPTO_num_locks()\fR returns the required number of locks. .PP \&\fICRYPTO_get_new_dynlockid()\fR returns the index to the newly created lock. .PP The other functions return no values. .SH "NOTES" .IX Header "NOTES" You can find out if OpenSSL was configured with thread support: .PP .Vb 7 \& #define OPENSSL_THREAD_DEFINES \& #include \& #if defined(OPENSSL_THREADS) \& // thread support enabled \& #else \& // no thread support \& #endif .Ve .PP Also, dynamic locks are currently not used internally by OpenSSL, but may do so in the future. .SH "EXAMPLES" .IX Header "EXAMPLES" \&\fBcrypto/threads/mttest.c\fR shows examples of the callback functions on Solaris, Irix and Win32. .SH "HISTORY" .IX Header "HISTORY" \&\fICRYPTO_set_locking_callback()\fR is available in all versions of SSLeay and OpenSSL. \&\fICRYPTO_num_locks()\fR was added in OpenSSL 0.9.4. All functions dealing with dynamic locks were added in OpenSSL 0.9.5b\-dev. \&\fB\s-1CRYPTO_THREADID\s0\fR and associated functions were introduced in OpenSSL 1.0.0 to replace (actually, deprecate) the previous \fICRYPTO_set_id_callback()\fR, \&\fICRYPTO_get_id_callback()\fR, and \fICRYPTO_thread_id()\fR functions which assumed thread IDs to always be represented by 'unsigned long'. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIcrypto\fR\|(3) man3/crypto.3000064400000015072147210533270007017 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "crypto 3" .TH crypto 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" crypto \- OpenSSL cryptographic library .SH "SYNOPSIS" .IX Header "SYNOPSIS" .SH "DESCRIPTION" .IX Header "DESCRIPTION" The OpenSSL \fBcrypto\fR library implements a wide range of cryptographic algorithms used in various Internet standards. The services provided by this library are used by the OpenSSL implementations of \s-1SSL, TLS\s0 and S/MIME, and they have also been used to implement \s-1SSH,\s0 OpenPGP, and other cryptographic standards. .SH "OVERVIEW" .IX Header "OVERVIEW" \&\fBlibcrypto\fR consists of a number of sub-libraries that implement the individual algorithms. .PP The functionality includes symmetric encryption, public key cryptography and key agreement, certificate handling, cryptographic hash functions and a cryptographic pseudo-random number generator. .IP "\s-1SYMMETRIC CIPHERS\s0" 4 .IX Item "SYMMETRIC CIPHERS" \&\fIblowfish\fR\|(3), \fIcast\fR\|(3), \fIdes\fR\|(3), \&\fIidea\fR\|(3), \fIrc2\fR\|(3), \fIrc4\fR\|(3), \fIrc5\fR\|(3) .IP "\s-1PUBLIC KEY CRYPTOGRAPHY AND KEY AGREEMENT\s0" 4 .IX Item "PUBLIC KEY CRYPTOGRAPHY AND KEY AGREEMENT" \&\fIdsa\fR\|(3), \fIdh\fR\|(3), \fIrsa\fR\|(3) .IP "\s-1CERTIFICATES\s0" 4 .IX Item "CERTIFICATES" \&\fIx509\fR\|(3), \fIx509v3\fR\|(3) .IP "\s-1AUTHENTICATION CODES, HASH FUNCTIONS\s0" 4 .IX Item "AUTHENTICATION CODES, HASH FUNCTIONS" \&\fIhmac\fR\|(3), \fImd2\fR\|(3), \fImd4\fR\|(3), \&\fImd5\fR\|(3), \fImdc2\fR\|(3), \fIripemd\fR\|(3), \&\fIsha\fR\|(3) .IP "\s-1AUXILIARY FUNCTIONS\s0" 4 .IX Item "AUXILIARY FUNCTIONS" \&\fIerr\fR\|(3), \fIthreads\fR\|(3), \fIrand\fR\|(3), \&\s-1\fIOPENSSL_VERSION_NUMBER\s0\fR\|(3) .IP "\s-1INPUT/OUTPUT, DATA ENCODING\s0" 4 .IX Item "INPUT/OUTPUT, DATA ENCODING" \&\fIasn1\fR\|(3), \fIbio\fR\|(3), \fIevp\fR\|(3), \fIpem\fR\|(3), \&\fIpkcs7\fR\|(3), \fIpkcs12\fR\|(3) .IP "\s-1INTERNAL FUNCTIONS\s0" 4 .IX Item "INTERNAL FUNCTIONS" \&\fIbn\fR\|(3), \fIbuffer\fR\|(3), \fIec\fR\|(3), \fIlhash\fR\|(3), \&\fIobjects\fR\|(3), \fIstack\fR\|(3), \&\fItxt_db\fR\|(3) .SH "NOTES" .IX Header "NOTES" Some of the newer functions follow a naming convention using the numbers \&\fB0\fR and \fB1\fR. For example the functions: .PP .Vb 2 \& int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev); \& int X509_add1_trust_object(X509 *x, ASN1_OBJECT *obj); .Ve .PP The \fB0\fR version uses the supplied structure pointer directly in the parent and it will be freed up when the parent is freed. In the above example \fBcrl\fR would be freed but \fBrev\fR would not. .PP The \fB1\fR function uses a copy of the supplied structure pointer (or in some cases increases its link count) in the parent and so both (\fBx\fR and \fBobj\fR above) should be freed up. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIopenssl\fR\|(1), \fIssl\fR\|(3) man3/SSL_get_current_cipher.3000064400000012622147210533270012071 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_get_current_cipher 3" .TH SSL_get_current_cipher 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_get_current_cipher, SSL_get_cipher, SSL_get_cipher_name, SSL_get_cipher_bits, SSL_get_cipher_version \- get SSL_CIPHER of a connection .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& SSL_CIPHER *SSL_get_current_cipher(const SSL *ssl); \& #define SSL_get_cipher(s) \e \& SSL_CIPHER_get_name(SSL_get_current_cipher(s)) \& #define SSL_get_cipher_name(s) \e \& SSL_CIPHER_get_name(SSL_get_current_cipher(s)) \& #define SSL_get_cipher_bits(s,np) \e \& SSL_CIPHER_get_bits(SSL_get_current_cipher(s),np) \& #define SSL_get_cipher_version(s) \e \& SSL_CIPHER_get_version(SSL_get_current_cipher(s)) .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_get_current_cipher()\fR returns a pointer to an \s-1SSL_CIPHER\s0 object containing the description of the actually used cipher of a connection established with the \fBssl\fR object. .PP \&\fISSL_get_cipher()\fR and \fISSL_get_cipher_name()\fR are identical macros to obtain the name of the currently used cipher. \fISSL_get_cipher_bits()\fR is a macro to obtain the number of secret/algorithm bits used and \&\fISSL_get_cipher_version()\fR returns the protocol name. See \fISSL_CIPHER_get_name\fR\|(3) for more details. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_get_current_cipher()\fR returns the cipher actually used or \s-1NULL,\s0 when no session has been established. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_CIPHER_get_name\fR\|(3) man3/X509_new.3000064400000011565147210533270007020 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "X509_new 3" .TH X509_new 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" X509_new, X509_free \- X509 certificate ASN1 allocation functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& X509 *X509_new(void); \& void X509_free(X509 *a); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The X509 \s-1ASN1\s0 allocation routines, allocate and free an X509 structure, which represents an X509 certificate. .PP \&\fIX509_new()\fR allocates and initializes a X509 structure. .PP \&\fIX509_free()\fR frees up the \fBX509\fR structure \fBa\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" If the allocation fails, \fIX509_new()\fR returns \fB\s-1NULL\s0\fR and sets an error code that can be obtained by \fIERR_get_error\fR\|(3). Otherwise it returns a pointer to the newly allocated structure. .PP \&\fIX509_free()\fR returns no value. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fId2i_X509\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIX509_new()\fR and \fIX509_free()\fR are available in all versions of SSLeay and OpenSSL. man3/BN_add.3000064400000021753147210533270006611 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BN_add 3" .TH BN_add 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BN_add, BN_sub, BN_mul, BN_sqr, BN_div, BN_mod, BN_nnmod, BN_mod_add, BN_mod_sub, BN_mod_mul, BN_mod_sqr, BN_exp, BN_mod_exp, BN_gcd \- arithmetic operations on BIGNUMs .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); \& \& int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); \& \& int BN_mul(BIGNUM *r, BIGNUM *a, BIGNUM *b, BN_CTX *ctx); \& \& int BN_sqr(BIGNUM *r, BIGNUM *a, BN_CTX *ctx); \& \& int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *a, const BIGNUM *d, \& BN_CTX *ctx); \& \& int BN_mod(BIGNUM *rem, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); \& \& int BN_nnmod(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); \& \& int BN_mod_add(BIGNUM *r, BIGNUM *a, BIGNUM *b, const BIGNUM *m, \& BN_CTX *ctx); \& \& int BN_mod_sub(BIGNUM *r, BIGNUM *a, BIGNUM *b, const BIGNUM *m, \& BN_CTX *ctx); \& \& int BN_mod_mul(BIGNUM *r, BIGNUM *a, BIGNUM *b, const BIGNUM *m, \& BN_CTX *ctx); \& \& int BN_mod_sqr(BIGNUM *r, BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); \& \& int BN_exp(BIGNUM *r, BIGNUM *a, BIGNUM *p, BN_CTX *ctx); \& \& int BN_mod_exp(BIGNUM *r, BIGNUM *a, const BIGNUM *p, \& const BIGNUM *m, BN_CTX *ctx); \& \& int BN_gcd(BIGNUM *r, BIGNUM *a, BIGNUM *b, BN_CTX *ctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBN_add()\fR adds \fIa\fR and \fIb\fR and places the result in \fIr\fR (\f(CW\*(C`r=a+b\*(C'\fR). \&\fIr\fR may be the same \fB\s-1BIGNUM\s0\fR as \fIa\fR or \fIb\fR. .PP \&\fIBN_sub()\fR subtracts \fIb\fR from \fIa\fR and places the result in \fIr\fR (\f(CW\*(C`r=a\-b\*(C'\fR). .PP \&\fIBN_mul()\fR multiplies \fIa\fR and \fIb\fR and places the result in \fIr\fR (\f(CW\*(C`r=a*b\*(C'\fR). \&\fIr\fR may be the same \fB\s-1BIGNUM\s0\fR as \fIa\fR or \fIb\fR. For multiplication by powers of 2, use \fIBN_lshift\fR\|(3). .PP \&\fIBN_sqr()\fR takes the square of \fIa\fR and places the result in \fIr\fR (\f(CW\*(C`r=a^2\*(C'\fR). \fIr\fR and \fIa\fR may be the same \fB\s-1BIGNUM\s0\fR. This function is faster than BN_mul(r,a,a). .PP \&\fIBN_div()\fR divides \fIa\fR by \fId\fR and places the result in \fIdv\fR and the remainder in \fIrem\fR (\f(CW\*(C`dv=a/d, rem=a%d\*(C'\fR). Either of \fIdv\fR and \fIrem\fR may be \fB\s-1NULL\s0\fR, in which case the respective value is not returned. The result is rounded towards zero; thus if \fIa\fR is negative, the remainder will be zero or negative. For division by powers of 2, use \fIBN_rshift\fR\|(3). .PP \&\fIBN_mod()\fR corresponds to \fIBN_div()\fR with \fIdv\fR set to \fB\s-1NULL\s0\fR. .PP \&\fIBN_nnmod()\fR reduces \fIa\fR modulo \fIm\fR and places the non-negative remainder in \fIr\fR. .PP \&\fIBN_mod_add()\fR adds \fIa\fR to \fIb\fR modulo \fIm\fR and places the non-negative result in \fIr\fR. .PP \&\fIBN_mod_sub()\fR subtracts \fIb\fR from \fIa\fR modulo \fIm\fR and places the non-negative result in \fIr\fR. .PP \&\fIBN_mod_mul()\fR multiplies \fIa\fR by \fIb\fR and finds the non-negative remainder respective to modulus \fIm\fR (\f(CW\*(C`r=(a*b) mod m\*(C'\fR). \fIr\fR may be the same \fB\s-1BIGNUM\s0\fR as \fIa\fR or \fIb\fR. For more efficient algorithms for repeated computations using the same modulus, see \&\fIBN_mod_mul_montgomery\fR\|(3) and \&\fIBN_mod_mul_reciprocal\fR\|(3). .PP \&\fIBN_mod_sqr()\fR takes the square of \fIa\fR modulo \fBm\fR and places the result in \fIr\fR. .PP \&\fIBN_exp()\fR raises \fIa\fR to the \fIp\fR\-th power and places the result in \fIr\fR (\f(CW\*(C`r=a^p\*(C'\fR). This function is faster than repeated applications of \&\fIBN_mul()\fR. .PP \&\fIBN_mod_exp()\fR computes \fIa\fR to the \fIp\fR\-th power modulo \fIm\fR (\f(CW\*(C`r=a^p % m\*(C'\fR). This function uses less time and space than \fIBN_exp()\fR. Do not call this function when \fBm\fR is even and any of the parameters have the \&\fB\s-1BN_FLG_CONSTTIME\s0\fR flag set. .PP \&\fIBN_gcd()\fR computes the greatest common divisor of \fIa\fR and \fIb\fR and places the result in \fIr\fR. \fIr\fR may be the same \fB\s-1BIGNUM\s0\fR as \fIa\fR or \&\fIb\fR. .PP For all functions, \fIctx\fR is a previously allocated \fB\s-1BN_CTX\s0\fR used for temporary variables; see \fIBN_CTX_new\fR\|(3). .PP Unless noted otherwise, the result \fB\s-1BIGNUM\s0\fR must be different from the arguments. .SH "RETURN VALUES" .IX Header "RETURN VALUES" For all functions, 1 is returned for success, 0 on error. The return value should always be checked (e.g., \f(CW\*(C`if (!BN_add(r,a,b)) goto err;\*(C'\fR). The error codes can be obtained by \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIbn\fR\|(3), \fIERR_get_error\fR\|(3), \fIBN_CTX_new\fR\|(3), \&\fIBN_add_word\fR\|(3), \fIBN_set_bit\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIBN_add()\fR, \fIBN_sub()\fR, \fIBN_sqr()\fR, \fIBN_div()\fR, \fIBN_mod()\fR, \fIBN_mod_mul()\fR, \&\fIBN_mod_exp()\fR and \fIBN_gcd()\fR are available in all versions of SSLeay and OpenSSL. The \fIctx\fR argument to \fIBN_mul()\fR was added in SSLeay 0.9.1b. \fIBN_exp()\fR appeared in SSLeay 0.9.0. \&\fIBN_nnmod()\fR, \fIBN_mod_add()\fR, \fIBN_mod_sub()\fR, and \fIBN_mod_sqr()\fR were added in OpenSSL 0.9.7. man3/EC_POINT_add.3000064400000017456147210533270007557 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EC_POINT_add 3" .TH EC_POINT_add 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EC_POINT_add, EC_POINT_dbl, EC_POINT_invert, EC_POINT_is_at_infinity, EC_POINT_is_on_curve, EC_POINT_cmp, EC_POINT_make_affine, EC_POINTs_make_affine, EC_POINTs_mul, EC_POINT_mul, EC_GROUP_precompute_mult, EC_GROUP_have_precompute_mult \- Functions for performing mathematical operations and tests on EC_POINT objects. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& #include \& #include \& \& int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, const EC_POINT *b, BN_CTX *ctx); \& int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, BN_CTX *ctx); \& int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx); \& int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *p); \& int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point, BN_CTX *ctx); \& int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, BN_CTX *ctx); \& int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx); \& int EC_POINTs_make_affine(const EC_GROUP *group, size_t num, EC_POINT *points[], BN_CTX *ctx); \& int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, size_t num, const EC_POINT *p[], const BIGNUM *m[], BN_CTX *ctx); \& int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx); \& int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx); \& int EC_GROUP_have_precompute_mult(const EC_GROUP *group); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" EC_POINT_add adds the two points \fBa\fR and \fBb\fR and places the result in \fBr\fR. Similarly EC_POINT_dbl doubles the point \fBa\fR and places the result in \fBr\fR. In both cases it is valid for \fBr\fR to be one of \fBa\fR or \fBb\fR. .PP EC_POINT_invert calculates the inverse of the supplied point \fBa\fR. The result is placed back in \fBa\fR. .PP The function EC_POINT_is_at_infinity tests whether the supplied point is at infinity or not. .PP EC_POINT_is_on_curve tests whether the supplied point is on the curve or not. .PP EC_POINT_cmp compares the two supplied points and tests whether or not they are equal. .PP The functions EC_POINT_make_affine and EC_POINTs_make_affine force the internal representation of the \s-1EC_POINT\s0(s) into the affine co-ordinate system. In the case of EC_POINTs_make_affine the value \fBnum\fR provides the number of points in the array \fBpoints\fR to be forced. .PP EC_POINT_mul calculates the value generator * \fBn\fR + \fBq\fR * \fBm\fR and stores the result in \fBr\fR. The value \fBn\fR may be \s-1NULL\s0 in which case the result is just \fBq\fR * \fBm\fR. .PP EC_POINTs_mul calculates the value generator * \fBn\fR + \fBq[0]\fR * \fBm[0]\fR + ... + \fBq[num\-1]\fR * \fBm[num\-1]\fR. As for EC_POINT_mul the value \&\fBn\fR may be \s-1NULL.\s0 .PP The function EC_GROUP_precompute_mult stores multiples of the generator for faster point multiplication, whilst EC_GROUP_have_precompute_mult tests whether precomputation has already been done. See \fIEC_GROUP_copy\fR\|(3) for information about the generator. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following functions return 1 on success or 0 on error: EC_POINT_add, EC_POINT_dbl, EC_POINT_invert, EC_POINT_make_affine, EC_POINTs_make_affine, EC_POINTs_make_affine, EC_POINT_mul, EC_POINTs_mul and EC_GROUP_precompute_mult. .PP EC_POINT_is_at_infinity returns 1 if the point is at infinity, or 0 otherwise. .PP EC_POINT_is_on_curve returns 1 if the point is on the curve, 0 if not, or \-1 on error. .PP EC_POINT_cmp returns 1 if the points are not equal, 0 if they are, or \-1 on error. .PP EC_GROUP_have_precompute_mult return 1 if a precomputation has been done, or 0 if not. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIcrypto\fR\|(3), \fIec\fR\|(3), \fIEC_GROUP_new\fR\|(3), \fIEC_GROUP_copy\fR\|(3), \&\fIEC_POINT_new\fR\|(3), \fIEC_KEY_new\fR\|(3), \&\fIEC_GFp_simple_method\fR\|(3), \fId2i_ECPKParameters\fR\|(3) man3/SSL_CTX_load_verify_locations.3000064400000020600147210533270013305 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_load_verify_locations 3" .TH SSL_CTX_load_verify_locations 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_load_verify_locations \- set default locations for trusted CA certificates .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, \& const char *CApath); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_load_verify_locations()\fR specifies the locations for \fBctx\fR, at which \s-1CA\s0 certificates for verification purposes are located. The certificates available via \fBCAfile\fR and \fBCApath\fR are trusted. .SH "NOTES" .IX Header "NOTES" If \fBCAfile\fR is not \s-1NULL,\s0 it points to a file of \s-1CA\s0 certificates in \s-1PEM\s0 format. The file can contain several \s-1CA\s0 certificates identified by .PP .Vb 3 \& \-\-\-\-\-BEGIN CERTIFICATE\-\-\-\-\- \& ... (CA certificate in base64 encoding) ... \& \-\-\-\-\-END CERTIFICATE\-\-\-\-\- .Ve .PP sequences. Before, between, and after the certificates text is allowed which can be used e.g. for descriptions of the certificates. .PP The \fBCAfile\fR is processed on execution of the \fISSL_CTX_load_verify_locations()\fR function. .PP If \fBCApath\fR is not \s-1NULL,\s0 it points to a directory containing \s-1CA\s0 certificates in \s-1PEM\s0 format. The files each contain one \s-1CA\s0 certificate. The files are looked up by the \s-1CA\s0 subject name hash value, which must hence be available. If more than one \s-1CA\s0 certificate with the same name hash value exist, the extension must be different (e.g. 9d66eef0.0, 9d66eef0.1 etc). The search is performed in the ordering of the extension number, regardless of other properties of the certificates. Use the \fBc_rehash\fR utility to create the necessary links. .PP The certificates in \fBCApath\fR are only looked up when required, e.g. when building the certificate chain or when actually performing the verification of a peer certificate. .PP When looking up \s-1CA\s0 certificates, the OpenSSL library will first search the certificates in \fBCAfile\fR, then those in \fBCApath\fR. Certificate matching is done based on the subject name, the key identifier (if present), and the serial number as taken from the certificate to be verified. If these data do not match, the next certificate will be tried. If a first certificate matching the parameters is found, the verification process will be performed; no other certificates for the same parameters will be searched in case of failure. .PP In server mode, when requesting a client certificate, the server must send the list of CAs of which it will accept client certificates. This list is not influenced by the contents of \fBCAfile\fR or \fBCApath\fR and must explicitly be set using the \&\fISSL_CTX_set_client_CA_list\fR\|(3) family of functions. .PP When building its own certificate chain, an OpenSSL client/server will try to fill in missing certificates from \fBCAfile\fR/\fBCApath\fR, if the certificate chain was not explicitly specified (see \&\fISSL_CTX_add_extra_chain_cert\fR\|(3), \&\fISSL_CTX_use_certificate\fR\|(3). .SH "WARNINGS" .IX Header "WARNINGS" If several \s-1CA\s0 certificates matching the name, key identifier, and serial number condition are available, only the first one will be examined. This may lead to unexpected results if the same \s-1CA\s0 certificate is available with different expiration dates. If a \*(L"certificate expired\*(R" verification error occurs, no other certificate will be searched. Make sure to not have expired certificates mixed with valid ones. .SH "EXAMPLES" .IX Header "EXAMPLES" Generate a \s-1CA\s0 certificate file with descriptive text from the \s-1CA\s0 certificates ca1.pem ca2.pem ca3.pem: .PP .Vb 5 \& #!/bin/sh \& rm CAfile.pem \& for i in ca1.pem ca2.pem ca3.pem ; do \& openssl x509 \-in $i \-text >> CAfile.pem \& done .Ve .PP Prepare the directory /some/where/certs containing several \s-1CA\s0 certificates for use as \fBCApath\fR: .PP .Vb 2 \& cd /some/where/certs \& c_rehash . .Ve .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following return values can occur: .IP "0" 4 The operation failed because \fBCAfile\fR and \fBCApath\fR are \s-1NULL\s0 or the processing at one of the locations specified failed. Check the error stack to find out the reason. .IP "1" 4 .IX Item "1" The operation succeeded. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \&\fISSL_CTX_set_client_CA_list\fR\|(3), \&\fISSL_get_client_CA_list\fR\|(3), \&\fISSL_CTX_use_certificate\fR\|(3), \&\fISSL_CTX_add_extra_chain_cert\fR\|(3), \&\fISSL_CTX_set_cert_store\fR\|(3) man3/DH_generate_key.3000064400000012740147210533270010513 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DH_generate_key 3" .TH DH_generate_key 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" DH_generate_key, DH_compute_key \- perform Diffie\-Hellman key exchange .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int DH_generate_key(DH *dh); \& \& int DH_compute_key(unsigned char *key, BIGNUM *pub_key, DH *dh); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIDH_generate_key()\fR performs the first step of a Diffie-Hellman key exchange by generating private and public \s-1DH\s0 values. By calling \&\fIDH_compute_key()\fR, these are combined with the other party's public value to compute the shared key. .PP \&\fIDH_generate_key()\fR expects \fBdh\fR to contain the shared parameters \&\fBdh\->p\fR and \fBdh\->g\fR. It generates a random private \s-1DH\s0 value unless \fBdh\->priv_key\fR is already set, and computes the corresponding public value \fBdh\->pub_key\fR, which can then be published. .PP \&\fIDH_compute_key()\fR computes the shared secret from the private \s-1DH\s0 value in \fBdh\fR and the other party's public value in \fBpub_key\fR and stores it in \fBkey\fR. \fBkey\fR must point to \fBDH_size(dh)\fR bytes of memory. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIDH_generate_key()\fR returns 1 on success, 0 otherwise. .PP \&\fIDH_compute_key()\fR returns the size of the shared secret on success, \-1 on error. .PP The error codes can be obtained by \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdh\fR\|(3), \fIERR_get_error\fR\|(3), \fIrand\fR\|(3), \fIDH_size\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIDH_generate_key()\fR and \fIDH_compute_key()\fR are available in all versions of SSLeay and OpenSSL. man3/ASN1_STRING_print_ex.3000064400000020140147210533270011167 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ASN1_STRING_print_ex 3" .TH ASN1_STRING_print_ex 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ASN1_STRING_print_ex, ASN1_STRING_print_ex_fp, ASN1_STRING_print \- ASN1_STRING output routines. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int ASN1_STRING_print_ex(BIO *out, ASN1_STRING *str, unsigned long flags); \& int ASN1_STRING_print_ex_fp(FILE *fp, ASN1_STRING *str, unsigned long flags); \& int ASN1_STRING_print(BIO *out, ASN1_STRING *str); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions output an \fB\s-1ASN1_STRING\s0\fR structure. \fB\s-1ASN1_STRING\s0\fR is used to represent all the \s-1ASN1\s0 string types. .PP \&\fIASN1_STRING_print_ex()\fR outputs \fBstr\fR to \fBout\fR, the format is determined by the options \fBflags\fR. \fIASN1_STRING_print_ex_fp()\fR is identical except it outputs to \fBfp\fR instead. .PP \&\fIASN1_STRING_print()\fR prints \fBstr\fR to \fBout\fR but using a different format to \&\fIASN1_STRING_print_ex()\fR. It replaces unprintable characters (other than \s-1CR, LF\s0) with '.'. .SH "NOTES" .IX Header "NOTES" \&\fIASN1_STRING_print()\fR is a legacy function which should be avoided in new applications. .PP Although there are a large number of options frequently \fB\s-1ASN1_STRFLGS_RFC2253\s0\fR is suitable, or on \s-1UTF8\s0 terminals \fB\s-1ASN1_STRFLGS_RFC2253 &\s0 ~ASN1_STRFLGS_ESC_MSB\fR. .PP The complete set of supported options for \fBflags\fR is listed below. .PP Various characters can be escaped. If \fB\s-1ASN1_STRFLGS_ESC_2253\s0\fR is set the characters determined by \s-1RFC2253\s0 are escaped. If \fB\s-1ASN1_STRFLGS_ESC_CTRL\s0\fR is set control characters are escaped. If \fB\s-1ASN1_STRFLGS_ESC_MSB\s0\fR is set characters with the \&\s-1MSB\s0 set are escaped: this option should \fBnot\fR be used if the terminal correctly interprets \s-1UTF8\s0 sequences. .PP Escaping takes several forms. .PP If the character being escaped is a 16 bit character then the form \*(L"\eUXXXX\*(R" is used using exactly four characters for the hex representation. If it is 32 bits then \&\*(L"\eWXXXXXXXX\*(R" is used using eight characters of its hex representation. These forms will only be used if \s-1UTF8\s0 conversion is not set (see below). .PP Printable characters are normally escaped using the backslash '\e' character. If \&\fB\s-1ASN1_STRFLGS_ESC_QUOTE\s0\fR is set then the whole string is instead surrounded by double quote characters: this is arguably more readable than the backslash notation. Other characters use the \*(L"\eXX\*(R" using exactly two characters of the hex representation. .PP If \fB\s-1ASN1_STRFLGS_UTF8_CONVERT\s0\fR is set then characters are converted to \s-1UTF8\s0 format first. If the terminal supports the display of \s-1UTF8\s0 sequences then this option will correctly display multi byte characters. .PP If \fB\s-1ASN1_STRFLGS_IGNORE_TYPE\s0\fR is set then the string type is not interpreted at all: everything is assumed to be one byte per character. This is primarily for debugging purposes and can result in confusing output in multi character strings. .PP If \fB\s-1ASN1_STRFLGS_SHOW_TYPE\s0\fR is set then the string type itself is printed out before its value (for example \*(L"\s-1BMPSTRING\*(R"\s0), this actually uses \fIASN1_tag2str()\fR. .PP The content of a string instead of being interpreted can be \*(L"dumped\*(R": this just outputs the value of the string using the form #XXXX using hex format for each octet. .PP If \fB\s-1ASN1_STRFLGS_DUMP_ALL\s0\fR is set then any type is dumped. .PP Normally non character string types (such as \s-1OCTET STRING\s0) are assumed to be one byte per character, if \fB\s-1ASN1_STRFLGS_DUMP_UNKNOWN\s0\fR is set then they will be dumped instead. .PP When a type is dumped normally just the content octets are printed, if \&\fB\s-1ASN1_STRFLGS_DUMP_DER\s0\fR is set then the complete encoding is dumped instead (including tag and length octets). .PP \&\fB\s-1ASN1_STRFLGS_RFC2253\s0\fR includes all the flags required by \s-1RFC2253.\s0 It is equivalent to: \s-1ASN1_STRFLGS_ESC_2253\s0 | \s-1ASN1_STRFLGS_ESC_CTRL\s0 | \s-1ASN1_STRFLGS_ESC_MSB\s0 | \s-1ASN1_STRFLGS_UTF8_CONVERT\s0 | \s-1ASN1_STRFLGS_DUMP_UNKNOWN ASN1_STRFLGS_DUMP_DER\s0 .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIX509_NAME_print_ex\fR\|(3), \&\fIASN1_tag2str\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1TBA\s0 man3/SSL_CTX_set_info_callback.3000064400000023120147210533270012351 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_info_callback 3" .TH SSL_CTX_set_info_callback 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_info_callback, SSL_CTX_get_info_callback, SSL_set_info_callback, SSL_get_info_callback \- handle information callback for SSL connections .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void SSL_CTX_set_info_callback(SSL_CTX *ctx, void (*callback)()); \& void (*SSL_CTX_get_info_callback(const SSL_CTX *ctx))(); \& \& void SSL_set_info_callback(SSL *ssl, void (*callback)()); \& void (*SSL_get_info_callback(const SSL *ssl))(); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set_info_callback()\fR sets the \fBcallback\fR function, that can be used to obtain state information for \s-1SSL\s0 objects created from \fBctx\fR during connection setup and use. The setting for \fBctx\fR is overridden from the setting for a specific \s-1SSL\s0 object, if specified. When \fBcallback\fR is \s-1NULL,\s0 not callback function is used. .PP \&\fISSL_set_info_callback()\fR sets the \fBcallback\fR function, that can be used to obtain state information for \fBssl\fR during connection setup and use. When \fBcallback\fR is \s-1NULL,\s0 the callback setting currently valid for \&\fBctx\fR is used. .PP \&\fISSL_CTX_get_info_callback()\fR returns a pointer to the currently set information callback function for \fBctx\fR. .PP \&\fISSL_get_info_callback()\fR returns a pointer to the currently set information callback function for \fBssl\fR. .SH "NOTES" .IX Header "NOTES" When setting up a connection and during use, it is possible to obtain state information from the \s-1SSL/TLS\s0 engine. When set, an information callback function is called whenever the state changes, an alert appears, or an error occurs. .PP The callback function is called as \fBcallback(\s-1SSL\s0 *ssl, int where, int ret)\fR. The \fBwhere\fR argument specifies information about where (in which context) the callback function was called. If \fBret\fR is 0, an error condition occurred. If an alert is handled, \s-1SSL_CB_ALERT\s0 is set and \fBret\fR specifies the alert information. .PP \&\fBwhere\fR is a bitmask made up of the following bits: .IP "\s-1SSL_CB_LOOP\s0" 4 .IX Item "SSL_CB_LOOP" Callback has been called to indicate state change inside a loop. .IP "\s-1SSL_CB_EXIT\s0" 4 .IX Item "SSL_CB_EXIT" Callback has been called to indicate error exit of a handshake function. (May be soft error with retry option for non-blocking setups.) .IP "\s-1SSL_CB_READ\s0" 4 .IX Item "SSL_CB_READ" Callback has been called during read operation. .IP "\s-1SSL_CB_WRITE\s0" 4 .IX Item "SSL_CB_WRITE" Callback has been called during write operation. .IP "\s-1SSL_CB_ALERT\s0" 4 .IX Item "SSL_CB_ALERT" Callback has been called due to an alert being sent or received. .IP "\s-1SSL_CB_READ_ALERT \s0(SSL_CB_ALERT|SSL_CB_READ)" 4 .IX Item "SSL_CB_READ_ALERT (SSL_CB_ALERT|SSL_CB_READ)" .PD 0 .IP "\s-1SSL_CB_WRITE_ALERT \s0(SSL_CB_ALERT|SSL_CB_WRITE)" 4 .IX Item "SSL_CB_WRITE_ALERT (SSL_CB_ALERT|SSL_CB_WRITE)" .IP "\s-1SSL_CB_ACCEPT_LOOP \s0(SSL_ST_ACCEPT|SSL_CB_LOOP)" 4 .IX Item "SSL_CB_ACCEPT_LOOP (SSL_ST_ACCEPT|SSL_CB_LOOP)" .IP "\s-1SSL_CB_ACCEPT_EXIT \s0(SSL_ST_ACCEPT|SSL_CB_EXIT)" 4 .IX Item "SSL_CB_ACCEPT_EXIT (SSL_ST_ACCEPT|SSL_CB_EXIT)" .IP "\s-1SSL_CB_CONNECT_LOOP \s0(SSL_ST_CONNECT|SSL_CB_LOOP)" 4 .IX Item "SSL_CB_CONNECT_LOOP (SSL_ST_CONNECT|SSL_CB_LOOP)" .IP "\s-1SSL_CB_CONNECT_EXIT \s0(SSL_ST_CONNECT|SSL_CB_EXIT)" 4 .IX Item "SSL_CB_CONNECT_EXIT (SSL_ST_CONNECT|SSL_CB_EXIT)" .IP "\s-1SSL_CB_HANDSHAKE_START\s0" 4 .IX Item "SSL_CB_HANDSHAKE_START" .PD Callback has been called because a new handshake is started. .IP "\s-1SSL_CB_HANDSHAKE_DONE \s0 0x20" 4 .IX Item "SSL_CB_HANDSHAKE_DONE 0x20" Callback has been called because a handshake is finished. .PP The current state information can be obtained using the \&\fISSL_state_string\fR\|(3) family of functions. .PP The \fBret\fR information can be evaluated using the \&\fISSL_alert_type_string\fR\|(3) family of functions. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_set_info_callback()\fR does not provide diagnostic information. .PP \&\fISSL_get_info_callback()\fR returns the current setting. .SH "EXAMPLES" .IX Header "EXAMPLES" The following example callback function prints state strings, information about alerts being handled and error messages to the \fBbio_err\fR \s-1BIO.\s0 .PP .Vb 4 \& void apps_ssl_info_callback(SSL *s, int where, int ret) \& { \& const char *str; \& int w; \& \& w=where& ~SSL_ST_MASK; \& \& if (w & SSL_ST_CONNECT) str="SSL_connect"; \& else if (w & SSL_ST_ACCEPT) str="SSL_accept"; \& else str="undefined"; \& \& if (where & SSL_CB_LOOP) \& { \& BIO_printf(bio_err,"%s:%s\en",str,SSL_state_string_long(s)); \& } \& else if (where & SSL_CB_ALERT) \& { \& str=(where & SSL_CB_READ)?"read":"write"; \& BIO_printf(bio_err,"SSL3 alert %s:%s:%s\en", \& str, \& SSL_alert_type_string_long(ret), \& SSL_alert_desc_string_long(ret)); \& } \& else if (where & SSL_CB_EXIT) \& { \& if (ret == 0) \& BIO_printf(bio_err,"%s:failed in %s\en", \& str,SSL_state_string_long(s)); \& else if (ret < 0) \& { \& BIO_printf(bio_err,"%s:error in %s\en", \& str,SSL_state_string_long(s)); \& } \& } \& } .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_state_string\fR\|(3), \&\fISSL_alert_type_string\fR\|(3) man3/CMS_get1_ReceiptRequest.3000064400000015657147210533270012076 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CMS_get1_ReceiptRequest 3" .TH CMS_get1_ReceiptRequest 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" .Vb 1 \& CMS_ReceiptRequest_create0, CMS_add1_ReceiptRequest, CMS_get1_ReceiptRequest, CMS_ReceiptRequest_get0_values \- CMS signed receipt request functions. .Ve .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& CMS_ReceiptRequest *CMS_ReceiptRequest_create0(unsigned char *id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) *receiptList, STACK_OF(GENERAL_NAMES) *receiptsTo); \& int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); \& int CMS_get1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest **prr); \& void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, ASN1_STRING **pcid, int *pallorfirst, STACK_OF(GENERAL_NAMES) **plist, STACK_OF(GENERAL_NAMES) **prto); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fICMS_ReceiptRequest_create0()\fR creates a signed receipt request structure. The \&\fBsignedContentIdentifier\fR field is set using \fBid\fR and \fBidlen\fR, or it is set to 32 bytes of pseudo random data if \fBid\fR is \s-1NULL.\s0 If \fBreceiptList\fR is \s-1NULL\s0 the allOrFirstTier option in \fBreceiptsFrom\fR is used and set to the value of the \fBallorfirst\fR parameter. If \fBreceiptList\fR is not \s-1NULL\s0 the \fBreceiptList\fR option in \fBreceiptsFrom\fR is used. The \fBreceiptsTo\fR parameter specifies the \&\fBreceiptsTo\fR field value. .PP The \fICMS_add1_ReceiptRequest()\fR function adds a signed receipt request \fBrr\fR to SignerInfo structure \fBsi\fR. .PP int \fICMS_get1_ReceiptRequest()\fR looks for a signed receipt request in \fBsi\fR, if any is found it is decoded and written to \fBprr\fR. .PP \&\fICMS_ReceiptRequest_get0_values()\fR retrieves the values of a receipt request. The signedContentIdentifier is copied to \fBpcid\fR. If the \fBallOrFirstTier\fR option of \fBreceiptsFrom\fR is used its value is copied to \fBpallorfirst\fR otherwise the \fBreceiptList\fR field is copied to \fBplist\fR. The \fBreceiptsTo\fR parameter is copied to \fBprto\fR. .SH "NOTES" .IX Header "NOTES" For more details of the meaning of the fields see \s-1RFC2634.\s0 .PP The contents of a signed receipt should only be considered meaningful if the corresponding CMS_ContentInfo structure can be successfully verified using \&\fICMS_verify()\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fICMS_ReceiptRequest_create0()\fR returns a signed receipt request structure or \&\s-1NULL\s0 if an error occurred. .PP \&\fICMS_add1_ReceiptRequest()\fR returns 1 for success or 0 if an error occurred. .PP \&\fICMS_get1_ReceiptRequest()\fR returns 1 is a signed receipt request is found and decoded. It returns 0 if a signed receipt request is not present and \-1 if it is present but malformed. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fICMS_sign\fR\|(3), \&\fICMS_sign_receipt\fR\|(3), \fICMS_verify\fR\|(3) \&\fICMS_verify_receipt\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fICMS_ReceiptRequest_create0()\fR, \fICMS_add1_ReceiptRequest()\fR, \&\fICMS_get1_ReceiptRequest()\fR and \fICMS_ReceiptRequest_get0_values()\fR were added to OpenSSL 0.9.8 man3/CMS_add0_cert.3000064400000014242147210533270010024 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CMS_add0_cert 3" .TH CMS_add0_cert 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" CMS_add0_cert, CMS_add1_cert, CMS_get1_certs, CMS_add0_crl, CMS_add1_crl, CMS_get1_crls, \- CMS certificate and CRL utility functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int CMS_add0_cert(CMS_ContentInfo *cms, X509 *cert); \& int CMS_add1_cert(CMS_ContentInfo *cms, X509 *cert); \& STACK_OF(X509) *CMS_get1_certs(CMS_ContentInfo *cms); \& \& int CMS_add0_crl(CMS_ContentInfo *cms, X509_CRL *crl); \& int CMS_add1_crl(CMS_ContentInfo *cms, X509_CRL *crl); \& STACK_OF(X509_CRL) *CMS_get1_crls(CMS_ContentInfo *cms); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fICMS_add0_cert()\fR and \fICMS_add1_cert()\fR add certificate \fBcert\fR to \fBcms\fR. must be of type signed data or enveloped data. .PP \&\fICMS_get1_certs()\fR returns all certificates in \fBcms\fR. .PP \&\fICMS_add0_crl()\fR and \fICMS_add1_crl()\fR add \s-1CRL \s0\fBcrl\fR to \fBcms\fR. \fICMS_get1_crls()\fR returns any CRLs in \fBcms\fR. .SH "NOTES" .IX Header "NOTES" The CMS_ContentInfo structure \fBcms\fR must be of type signed data or enveloped data or an error will be returned. .PP For signed data certificates and CRLs are added to the \fBcertificates\fR and \&\fBcrls\fR fields of SignedData structure. For enveloped data they are added to \&\fBOriginatorInfo\fR. .PP As the \fB0\fR implies \fICMS_add0_cert()\fR adds \fBcert\fR internally to \fBcms\fR and it must not be freed up after the call as opposed to \fICMS_add1_cert()\fR where \fBcert\fR must be freed up. .PP The same certificate or \s-1CRL\s0 must not be added to the same cms structure more than once. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fICMS_add0_cert()\fR, \fICMS_add1_cert()\fR and \fICMS_add0_crl()\fR and \fICMS_add1_crl()\fR return 1 for success and 0 for failure. .PP \&\fICMS_get1_certs()\fR and \fICMS_get1_crls()\fR return the \s-1STACK\s0 of certificates or CRLs or \s-1NULL\s0 if there are none or an error occurs. The only error which will occur in practice is if the \fBcms\fR type is invalid. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \&\fICMS_sign\fR\|(3), \&\fICMS_encrypt\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fICMS_add0_cert()\fR, \fICMS_add1_cert()\fR, \fICMS_get1_certs()\fR, \fICMS_add0_crl()\fR and \fICMS_get1_crls()\fR were all first added to OpenSSL 0.9.8 man3/SSL_alert_type_string.3000064400000033521147210533270011755 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_alert_type_string 3" .TH SSL_alert_type_string 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_alert_type_string, SSL_alert_type_string_long, SSL_alert_desc_string, SSL_alert_desc_string_long \- get textual description of alert information .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& const char *SSL_alert_type_string(int value); \& const char *SSL_alert_type_string_long(int value); \& \& const char *SSL_alert_desc_string(int value); \& const char *SSL_alert_desc_string_long(int value); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_alert_type_string()\fR returns a one letter string indicating the type of the alert specified by \fBvalue\fR. .PP \&\fISSL_alert_type_string_long()\fR returns a string indicating the type of the alert specified by \fBvalue\fR. .PP \&\fISSL_alert_desc_string()\fR returns a two letter string as a short form describing the reason of the alert specified by \fBvalue\fR. .PP \&\fISSL_alert_desc_string_long()\fR returns a string describing the reason of the alert specified by \fBvalue\fR. .SH "NOTES" .IX Header "NOTES" When one side of an \s-1SSL/TLS\s0 communication wants to inform the peer about a special situation, it sends an alert. The alert is sent as a special message and does not influence the normal data stream (unless its contents results in the communication being canceled). .PP A warning alert is sent, when a non-fatal error condition occurs. The \&\*(L"close notify\*(R" alert is sent as a warning alert. Other examples for non-fatal errors are certificate errors (\*(L"certificate expired\*(R", \&\*(L"unsupported certificate\*(R"), for which a warning alert may be sent. (The sending party may however decide to send a fatal error.) The receiving side may cancel the connection on reception of a warning alert on it discretion. .PP Several alert messages must be sent as fatal alert messages as specified by the \s-1TLS RFC. A\s0 fatal alert always leads to a connection abort. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following strings can occur for \fISSL_alert_type_string()\fR or \&\fISSL_alert_type_string_long()\fR: .ie n .IP """W""/""warning""" 4 .el .IP "``W''/``warning''" 4 .IX Item "W/warning" .PD 0 .ie n .IP """F""/""fatal""" 4 .el .IP "``F''/``fatal''" 4 .IX Item "F/fatal" .ie n .IP """U""/""unknown""" 4 .el .IP "``U''/``unknown''" 4 .IX Item "U/unknown" .PD This indicates that no support is available for this alert type. Probably \fBvalue\fR does not contain a correct alert message. .PP The following strings can occur for \fISSL_alert_desc_string()\fR or \&\fISSL_alert_desc_string_long()\fR: .ie n .IP """\s-1CN""/\s0""close notify""" 4 .el .IP "``\s-1CN''/\s0``close notify''" 4 .IX Item "CN/close notify" The connection shall be closed. This is a warning alert. .ie n .IP """\s-1UM""/\s0""unexpected message""" 4 .el .IP "``\s-1UM''/\s0``unexpected message''" 4 .IX Item "UM/unexpected message" An inappropriate message was received. This alert is always fatal and should never be observed in communication between proper implementations. .ie n .IP """\s-1BM""/\s0""bad record mac""" 4 .el .IP "``\s-1BM''/\s0``bad record mac''" 4 .IX Item "BM/bad record mac" This alert is returned if a record is received with an incorrect \&\s-1MAC.\s0 This message is always fatal. .ie n .IP """\s-1DF""/\s0""decompression failure""" 4 .el .IP "``\s-1DF''/\s0``decompression failure''" 4 .IX Item "DF/decompression failure" The decompression function received improper input (e.g. data that would expand to excessive length). This message is always fatal. .ie n .IP """\s-1HF""/\s0""handshake failure""" 4 .el .IP "``\s-1HF''/\s0``handshake failure''" 4 .IX Item "HF/handshake failure" Reception of a handshake_failure alert message indicates that the sender was unable to negotiate an acceptable set of security parameters given the options available. This is a fatal error. .ie n .IP """\s-1NC""/\s0""no certificate""" 4 .el .IP "``\s-1NC''/\s0``no certificate''" 4 .IX Item "NC/no certificate" A client, that was asked to send a certificate, does not send a certificate (SSLv3 only). .ie n .IP """\s-1BC""/\s0""bad certificate""" 4 .el .IP "``\s-1BC''/\s0``bad certificate''" 4 .IX Item "BC/bad certificate" A certificate was corrupt, contained signatures that did not verify correctly, etc .ie n .IP """\s-1UC""/\s0""unsupported certificate""" 4 .el .IP "``\s-1UC''/\s0``unsupported certificate''" 4 .IX Item "UC/unsupported certificate" A certificate was of an unsupported type. .ie n .IP """\s-1CR""/\s0""certificate revoked""" 4 .el .IP "``\s-1CR''/\s0``certificate revoked''" 4 .IX Item "CR/certificate revoked" A certificate was revoked by its signer. .ie n .IP """\s-1CE""/\s0""certificate expired""" 4 .el .IP "``\s-1CE''/\s0``certificate expired''" 4 .IX Item "CE/certificate expired" A certificate has expired or is not currently valid. .ie n .IP """\s-1CU""/\s0""certificate unknown""" 4 .el .IP "``\s-1CU''/\s0``certificate unknown''" 4 .IX Item "CU/certificate unknown" Some other (unspecified) issue arose in processing the certificate, rendering it unacceptable. .ie n .IP """\s-1IP""/\s0""illegal parameter""" 4 .el .IP "``\s-1IP''/\s0``illegal parameter''" 4 .IX Item "IP/illegal parameter" A field in the handshake was out of range or inconsistent with other fields. This is always fatal. .ie n .IP """\s-1DC""/\s0""decryption failed""" 4 .el .IP "``\s-1DC''/\s0``decryption failed''" 4 .IX Item "DC/decryption failed" A TLSCiphertext decrypted in an invalid way: either it wasn't an even multiple of the block length or its padding values, when checked, weren't correct. This message is always fatal. .ie n .IP """\s-1RO""/\s0""record overflow""" 4 .el .IP "``\s-1RO''/\s0``record overflow''" 4 .IX Item "RO/record overflow" A TLSCiphertext record was received which had a length more than 2^14+2048 bytes, or a record decrypted to a TLSCompressed record with more than 2^14+1024 bytes. This message is always fatal. .ie n .IP """\s-1CA""/\s0""unknown \s-1CA""\s0" 4 .el .IP "``\s-1CA''/\s0``unknown \s-1CA''\s0" 4 .IX Item "CA/unknown CA" A valid certificate chain or partial chain was received, but the certificate was not accepted because the \s-1CA\s0 certificate could not be located or couldn't be matched with a known, trusted \s-1CA. \s0 This message is always fatal. .ie n .IP """\s-1AD""/\s0""access denied""" 4 .el .IP "``\s-1AD''/\s0``access denied''" 4 .IX Item "AD/access denied" A valid certificate was received, but when access control was applied, the sender decided not to proceed with negotiation. This message is always fatal. .ie n .IP """\s-1DE""/\s0""decode error""" 4 .el .IP "``\s-1DE''/\s0``decode error''" 4 .IX Item "DE/decode error" A message could not be decoded because some field was out of the specified range or the length of the message was incorrect. This message is always fatal. .ie n .IP """\s-1CY""/\s0""decrypt error""" 4 .el .IP "``\s-1CY''/\s0``decrypt error''" 4 .IX Item "CY/decrypt error" A handshake cryptographic operation failed, including being unable to correctly verify a signature, decrypt a key exchange, or validate a finished message. .ie n .IP """\s-1ER""/\s0""export restriction""" 4 .el .IP "``\s-1ER''/\s0``export restriction''" 4 .IX Item "ER/export restriction" A negotiation not in compliance with export restrictions was detected; for example, attempting to transfer a 1024 bit ephemeral \s-1RSA\s0 key for the \s-1RSA_EXPORT\s0 handshake method. This message is always fatal. .ie n .IP """\s-1PV""/\s0""protocol version""" 4 .el .IP "``\s-1PV''/\s0``protocol version''" 4 .IX Item "PV/protocol version" The protocol version the client has attempted to negotiate is recognized, but not supported. (For example, old protocol versions might be avoided for security reasons). This message is always fatal. .ie n .IP """\s-1IS""/\s0""insufficient security""" 4 .el .IP "``\s-1IS''/\s0``insufficient security''" 4 .IX Item "IS/insufficient security" Returned instead of handshake_failure when a negotiation has failed specifically because the server requires ciphers more secure than those supported by the client. This message is always fatal. .ie n .IP """\s-1IE""/\s0""internal error""" 4 .el .IP "``\s-1IE''/\s0``internal error''" 4 .IX Item "IE/internal error" An internal error unrelated to the peer or the correctness of the protocol makes it impossible to continue (such as a memory allocation failure). This message is always fatal. .ie n .IP """\s-1US""/\s0""user canceled""" 4 .el .IP "``\s-1US''/\s0``user canceled''" 4 .IX Item "US/user canceled" This handshake is being canceled for some reason unrelated to a protocol failure. If the user cancels an operation after the handshake is complete, just closing the connection by sending a close_notify is more appropriate. This alert should be followed by a close_notify. This message is generally a warning. .ie n .IP """\s-1NR""/\s0""no renegotiation""" 4 .el .IP "``\s-1NR''/\s0``no renegotiation''" 4 .IX Item "NR/no renegotiation" Sent by the client in response to a hello request or by the server in response to a client hello after initial handshaking. Either of these would normally lead to renegotiation; when that is not appropriate, the recipient should respond with this alert; at that point, the original requester can decide whether to proceed with the connection. One case where this would be appropriate would be where a server has spawned a process to satisfy a request; the process might receive security parameters (key length, authentication, etc.) at startup and it might be difficult to communicate changes to these parameters after that point. This message is always a warning. .ie n .IP """\s-1UP""/\s0""unknown \s-1PSK\s0 identity""" 4 .el .IP "``\s-1UP''/\s0``unknown \s-1PSK\s0 identity''" 4 .IX Item "UP/unknown PSK identity" Sent by the server to indicate that it does not recognize a \s-1PSK\s0 identity or an \s-1SRP\s0 identity. .ie n .IP """\s-1UK""/\s0""unknown""" 4 .el .IP "``\s-1UK''/\s0``unknown''" 4 .IX Item "UK/unknown" This indicates that no description is available for this alert type. Probably \fBvalue\fR does not contain a correct alert message. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_CTX_set_info_callback\fR\|(3) man3/BIO_set_callback.3000064400000017627147210533270010607 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BIO_set_callback 3" .TH BIO_set_callback 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BIO_set_callback, BIO_get_callback, BIO_set_callback_arg, BIO_get_callback_arg, BIO_debug_callback \- BIO callback functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& #define BIO_set_callback(b,cb) ((b)\->callback=(cb)) \& #define BIO_get_callback(b) ((b)\->callback) \& #define BIO_set_callback_arg(b,arg) ((b)\->cb_arg=(char *)(arg)) \& #define BIO_get_callback_arg(b) ((b)\->cb_arg) \& \& long BIO_debug_callback(BIO *bio,int cmd,const char *argp,int argi, \& long argl,long ret); \& \& typedef long (*callback)(BIO *b, int oper, const char *argp, \& int argi, long argl, long retvalue); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBIO_set_callback()\fR and \fIBIO_get_callback()\fR set and retrieve the \s-1BIO\s0 callback, they are both macros. The callback is called during most high level \s-1BIO\s0 operations. It can be used for debugging purposes to trace operations on a \s-1BIO\s0 or to modify its operation. .PP \&\fIBIO_set_callback_arg()\fR and \fIBIO_get_callback_arg()\fR are macros which can be used to set and retrieve an argument for use in the callback. .PP \&\fIBIO_debug_callback()\fR is a standard debugging callback which prints out information relating to each \s-1BIO\s0 operation. If the callback argument is set if is interpreted as a \s-1BIO\s0 to send the information to, otherwise stderr is used. .PP \&\fIcallback()\fR is the callback function itself. The meaning of each argument is described below. .PP The \s-1BIO\s0 the callback is attached to is passed in \fBb\fR. .PP \&\fBoper\fR is set to the operation being performed. For some operations the callback is called twice, once before and once after the actual operation, the latter case has \fBoper\fR or'ed with \s-1BIO_CB_RETURN.\s0 .PP The meaning of the arguments \fBargp\fR, \fBargi\fR and \fBargl\fR depends on the value of \fBoper\fR, that is the operation being performed. .PP \&\fBretvalue\fR is the return value that would be returned to the application if no callback were present. The actual value returned is the return value of the callback itself. In the case of callbacks called before the actual \s-1BIO\s0 operation 1 is placed in retvalue, if the return value is not positive it will be immediately returned to the application and the \s-1BIO\s0 operation will not be performed. .PP The callback should normally simply return \fBretvalue\fR when it has finished processing, unless if specifically wishes to modify the value returned to the application. .SH "CALLBACK OPERATIONS" .IX Header "CALLBACK OPERATIONS" .IP "\fBBIO_free(b)\fR" 4 .IX Item "BIO_free(b)" callback(b, \s-1BIO_CB_FREE, NULL, 0L, 0L, 1L\s0) is called before the free operation. .IP "\fBBIO_read(b, out, outl)\fR" 4 .IX Item "BIO_read(b, out, outl)" callback(b, \s-1BIO_CB_READ,\s0 out, outl, 0L, 1L) is called before the read and callback(b, BIO_CB_READ|BIO_CB_RETURN, out, outl, 0L, retvalue) after. .IP "\fBBIO_write(b, in, inl)\fR" 4 .IX Item "BIO_write(b, in, inl)" callback(b, \s-1BIO_CB_WRITE,\s0 in, inl, 0L, 1L) is called before the write and callback(b, BIO_CB_WRITE|BIO_CB_RETURN, in, inl, 0L, retvalue) after. .IP "\fBBIO_gets(b, out, outl)\fR" 4 .IX Item "BIO_gets(b, out, outl)" callback(b, \s-1BIO_CB_GETS,\s0 out, outl, 0L, 1L) is called before the operation and callback(b, BIO_CB_GETS|BIO_CB_RETURN, out, outl, 0L, retvalue) after. .IP "\fBBIO_puts(b, in)\fR" 4 .IX Item "BIO_puts(b, in)" callback(b, \s-1BIO_CB_WRITE,\s0 in, 0, 0L, 1L) is called before the operation and callback(b, BIO_CB_WRITE|BIO_CB_RETURN, in, 0, 0L, retvalue) after. .IP "\fBBIO_ctrl(\s-1BIO\s0 *b, int cmd, long larg, void *parg)\fR" 4 .IX Item "BIO_ctrl(BIO *b, int cmd, long larg, void *parg)" callback(b,BIO_CB_CTRL,parg,cmd,larg,1L) is called before the call and callback(b,BIO_CB_CTRL|BIO_CB_RETURN,parg,cmd, larg,ret) after. .SH "EXAMPLE" .IX Header "EXAMPLE" The \fIBIO_debug_callback()\fR function is a good example, its source is in crypto/bio/bio_cb.c .SH "SEE ALSO" .IX Header "SEE ALSO" \&\s-1TBA\s0 man3/RSA_padding_add_PKCS1_type_1.3000064400000021331147210533270012577 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RSA_padding_add_PKCS1_type_1 3" .TH RSA_padding_add_PKCS1_type_1 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" RSA_padding_add_PKCS1_type_1, RSA_padding_check_PKCS1_type_1, RSA_padding_add_PKCS1_type_2, RSA_padding_check_PKCS1_type_2, RSA_padding_add_PKCS1_OAEP, RSA_padding_check_PKCS1_OAEP, RSA_padding_add_SSLv23, RSA_padding_check_SSLv23, RSA_padding_add_none, RSA_padding_check_none \- asymmetric encryption padding .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int RSA_padding_add_PKCS1_type_1(unsigned char *to, int tlen, \& unsigned char *f, int fl); \& \& int RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen, \& unsigned char *f, int fl, int rsa_len); \& \& int RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen, \& unsigned char *f, int fl); \& \& int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen, \& unsigned char *f, int fl, int rsa_len); \& \& int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen, \& unsigned char *f, int fl, unsigned char *p, int pl); \& \& int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, \& unsigned char *f, int fl, int rsa_len, unsigned char *p, int pl); \& \& int RSA_padding_add_SSLv23(unsigned char *to, int tlen, \& unsigned char *f, int fl); \& \& int RSA_padding_check_SSLv23(unsigned char *to, int tlen, \& unsigned char *f, int fl, int rsa_len); \& \& int RSA_padding_add_none(unsigned char *to, int tlen, \& unsigned char *f, int fl); \& \& int RSA_padding_check_none(unsigned char *to, int tlen, \& unsigned char *f, int fl, int rsa_len); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fIRSA_padding_xxx_xxx()\fR functions are called from the \s-1RSA\s0 encrypt, decrypt, sign and verify functions. Normally they should not be called from application programs. .PP However, they can also be called directly to implement padding for other asymmetric ciphers. \fIRSA_padding_add_PKCS1_OAEP()\fR and \&\fIRSA_padding_check_PKCS1_OAEP()\fR may be used in an application combined with \fB\s-1RSA_NO_PADDING\s0\fR in order to implement \s-1OAEP\s0 with an encoding parameter. .PP \&\fIRSA_padding_add_xxx()\fR encodes \fBfl\fR bytes from \fBf\fR so as to fit into \&\fBtlen\fR bytes and stores the result at \fBto\fR. An error occurs if \fBfl\fR does not meet the size requirements of the encoding method. .PP The following encoding methods are implemented: .IP "PKCS1_type_1" 4 .IX Item "PKCS1_type_1" \&\s-1PKCS\s0 #1 v2.0 EMSA\-PKCS1\-v1_5 (\s-1PKCS\s0 #1 v1.5 block type 1); used for signatures .IP "PKCS1_type_2" 4 .IX Item "PKCS1_type_2" \&\s-1PKCS\s0 #1 v2.0 EME\-PKCS1\-v1_5 (\s-1PKCS\s0 #1 v1.5 block type 2) .IP "\s-1PKCS1_OAEP\s0" 4 .IX Item "PKCS1_OAEP" \&\s-1PKCS\s0 #1 v2.0 EME-OAEP .IP "SSLv23" 4 .IX Item "SSLv23" \&\s-1PKCS\s0 #1 EME\-PKCS1\-v1_5 with SSL-specific modification .IP "none" 4 .IX Item "none" simply copy the data .PP The random number generator must be seeded prior to calling \&\fIRSA_padding_add_xxx()\fR. .PP \&\fIRSA_padding_check_xxx()\fR verifies that the \fBfl\fR bytes at \fBf\fR contain a valid encoding for a \fBrsa_len\fR byte \s-1RSA\s0 key in the respective encoding method and stores the recovered data of at most \fBtlen\fR bytes (for \fB\s-1RSA_NO_PADDING\s0\fR: of size \fBtlen\fR) at \fBto\fR. .PP For \fIRSA_padding_xxx_OAEP()\fR, \fBp\fR points to the encoding parameter of length \fBpl\fR. \fBp\fR may be \fB\s-1NULL\s0\fR if \fBpl\fR is 0. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The \fIRSA_padding_add_xxx()\fR functions return 1 on success, 0 on error. The \fIRSA_padding_check_xxx()\fR functions return the length of the recovered data, \-1 on error. Error codes can be obtained by calling \&\fIERR_get_error\fR\|(3). .SH "WARNING" .IX Header "WARNING" The \fIRSA_padding_check_PKCS1_type_2()\fR padding check leaks timing information which can potentially be used to mount a Bleichenbacher padding oracle attack. This is an inherent weakness in the \s-1PKCS\s0 #1 v1.5 padding design. Prefer \s-1PKCS1_OAEP\s0 padding. Otherwise it can be recommended to pass zero-padded \fBf\fR, so that \fBfl\fR equals to \&\fBrsa_len\fR, and if fixed by protocol, \fBtlen\fR being set to the expected length. In such case leakage would be minimal, it would take attacker's ability to observe memory access pattern with byte granilarity as it occurs, post-factum timing analysis won't do. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIRSA_public_encrypt\fR\|(3), \&\fIRSA_private_decrypt\fR\|(3), \&\fIRSA_sign\fR\|(3), \fIRSA_verify\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIRSA_padding_add_PKCS1_type_1()\fR, \fIRSA_padding_check_PKCS1_type_1()\fR, \&\fIRSA_padding_add_PKCS1_type_2()\fR, \fIRSA_padding_check_PKCS1_type_2()\fR, \&\fIRSA_padding_add_SSLv23()\fR, \fIRSA_padding_check_SSLv23()\fR, \&\fIRSA_padding_add_none()\fR and \fIRSA_padding_check_none()\fR appeared in SSLeay 0.9.0. .PP \&\fIRSA_padding_add_PKCS1_OAEP()\fR and \fIRSA_padding_check_PKCS1_OAEP()\fR were added in OpenSSL 0.9.2b. man3/ec.3000064400000036447147210533270006077 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ec 3" .TH ec 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ec \- Elliptic Curve functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& #include \& #include \& \& const EC_METHOD *EC_GFp_simple_method(void); \& const EC_METHOD *EC_GFp_mont_method(void); \& const EC_METHOD *EC_GFp_nist_method(void); \& const EC_METHOD *EC_GFp_nistp224_method(void); \& const EC_METHOD *EC_GFp_nistp256_method(void); \& const EC_METHOD *EC_GFp_nistp521_method(void); \& \& const EC_METHOD *EC_GF2m_simple_method(void); \& \& EC_GROUP *EC_GROUP_new(const EC_METHOD *meth); \& void EC_GROUP_free(EC_GROUP *group); \& void EC_GROUP_clear_free(EC_GROUP *group); \& int EC_GROUP_copy(EC_GROUP *dst, const EC_GROUP *src); \& EC_GROUP *EC_GROUP_dup(const EC_GROUP *src); \& const EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group); \& int EC_METHOD_get_field_type(const EC_METHOD *meth); \& int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator, const BIGNUM *order, const BIGNUM *cofactor); \& const EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group); \& int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx); \& int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor, BN_CTX *ctx); \& void EC_GROUP_set_curve_name(EC_GROUP *group, int nid); \& int EC_GROUP_get_curve_name(const EC_GROUP *group); \& void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag); \& int EC_GROUP_get_asn1_flag(const EC_GROUP *group); \& void EC_GROUP_set_point_conversion_form(EC_GROUP *group, point_conversion_form_t form); \& point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP *); \& unsigned char *EC_GROUP_get0_seed(const EC_GROUP *x); \& size_t EC_GROUP_get_seed_len(const EC_GROUP *); \& size_t EC_GROUP_set_seed(EC_GROUP *, const unsigned char *, size_t len); \& int EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); \& int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, BN_CTX *ctx); \& int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); \& int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, BIGNUM *b, BN_CTX *ctx); \& int EC_GROUP_get_degree(const EC_GROUP *group); \& int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx); \& int EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx); \& int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx); \& EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); \& EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); \& EC_GROUP *EC_GROUP_new_by_curve_name(int nid); \& \& size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems); \& \& EC_POINT *EC_POINT_new(const EC_GROUP *group); \& void EC_POINT_free(EC_POINT *point); \& void EC_POINT_clear_free(EC_POINT *point); \& int EC_POINT_copy(EC_POINT *dst, const EC_POINT *src); \& EC_POINT *EC_POINT_dup(const EC_POINT *src, const EC_GROUP *group); \& const EC_METHOD *EC_POINT_method_of(const EC_POINT *point); \& int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point); \& int EC_POINT_set_Jprojective_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, \& const BIGNUM *x, const BIGNUM *y, const BIGNUM *z, BN_CTX *ctx); \& int EC_POINT_get_Jprojective_coordinates_GFp(const EC_GROUP *group, \& const EC_POINT *p, BIGNUM *x, BIGNUM *y, BIGNUM *z, BN_CTX *ctx); \& int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, \& const BIGNUM *x, const BIGNUM *y, BN_CTX *ctx); \& int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group, \& const EC_POINT *p, BIGNUM *x, BIGNUM *y, BN_CTX *ctx); \& int EC_POINT_set_compressed_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, \& const BIGNUM *x, int y_bit, BN_CTX *ctx); \& int EC_POINT_set_affine_coordinates_GF2m(const EC_GROUP *group, EC_POINT *p, \& const BIGNUM *x, const BIGNUM *y, BN_CTX *ctx); \& int EC_POINT_get_affine_coordinates_GF2m(const EC_GROUP *group, \& const EC_POINT *p, BIGNUM *x, BIGNUM *y, BN_CTX *ctx); \& int EC_POINT_set_compressed_coordinates_GF2m(const EC_GROUP *group, EC_POINT *p, \& const BIGNUM *x, int y_bit, BN_CTX *ctx); \& size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *p, \& point_conversion_form_t form, \& unsigned char *buf, size_t len, BN_CTX *ctx); \& int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *p, \& const unsigned char *buf, size_t len, BN_CTX *ctx); \& BIGNUM *EC_POINT_point2bn(const EC_GROUP *, const EC_POINT *, \& point_conversion_form_t form, BIGNUM *, BN_CTX *); \& EC_POINT *EC_POINT_bn2point(const EC_GROUP *, const BIGNUM *, \& EC_POINT *, BN_CTX *); \& char *EC_POINT_point2hex(const EC_GROUP *, const EC_POINT *, \& point_conversion_form_t form, BN_CTX *); \& EC_POINT *EC_POINT_hex2point(const EC_GROUP *, const char *, \& EC_POINT *, BN_CTX *); \& \& int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, const EC_POINT *b, BN_CTX *ctx); \& int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, BN_CTX *ctx); \& int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx); \& int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *p); \& int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point, BN_CTX *ctx); \& int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, BN_CTX *ctx); \& int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx); \& int EC_POINTs_make_affine(const EC_GROUP *group, size_t num, EC_POINT *points[], BN_CTX *ctx); \& int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, size_t num, const EC_POINT *p[], const BIGNUM *m[], BN_CTX *ctx); \& int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx); \& int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx); \& int EC_GROUP_have_precompute_mult(const EC_GROUP *group); \& \& int EC_GROUP_get_basis_type(const EC_GROUP *); \& int EC_GROUP_get_trinomial_basis(const EC_GROUP *, unsigned int *k); \& int EC_GROUP_get_pentanomial_basis(const EC_GROUP *, unsigned int *k1, \& unsigned int *k2, unsigned int *k3); \& EC_GROUP *d2i_ECPKParameters(EC_GROUP **, const unsigned char **in, long len); \& int i2d_ECPKParameters(const EC_GROUP *, unsigned char **out); \& #define d2i_ECPKParameters_bio(bp,x) ASN1_d2i_bio_of(EC_GROUP,NULL,d2i_ECPKParameters,bp,x) \& #define i2d_ECPKParameters_bio(bp,x) ASN1_i2d_bio_of_const(EC_GROUP,i2d_ECPKParameters,bp,x) \& #define d2i_ECPKParameters_fp(fp,x) (EC_GROUP *)ASN1_d2i_fp(NULL, \e \& (char *(*)())d2i_ECPKParameters,(fp),(unsigned char **)(x)) \& #define i2d_ECPKParameters_fp(fp,x) ASN1_i2d_fp(i2d_ECPKParameters,(fp), \e \& (unsigned char *)(x)) \& int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off); \& int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off); \& \& EC_KEY *EC_KEY_new(void); \& int EC_KEY_get_flags(const EC_KEY *key); \& void EC_KEY_set_flags(EC_KEY *key, int flags); \& void EC_KEY_clear_flags(EC_KEY *key, int flags); \& EC_KEY *EC_KEY_new_by_curve_name(int nid); \& void EC_KEY_free(EC_KEY *key); \& EC_KEY *EC_KEY_copy(EC_KEY *dst, const EC_KEY *src); \& EC_KEY *EC_KEY_dup(const EC_KEY *src); \& int EC_KEY_up_ref(EC_KEY *key); \& const EC_GROUP *EC_KEY_get0_group(const EC_KEY *key); \& int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group); \& const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key); \& int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *prv); \& const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key); \& int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub); \& unsigned EC_KEY_get_enc_flags(const EC_KEY *key); \& void EC_KEY_set_enc_flags(EC_KEY *eckey, unsigned int flags); \& point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key); \& void EC_KEY_set_conv_form(EC_KEY *eckey, point_conversion_form_t cform); \& void *EC_KEY_get_key_method_data(EC_KEY *key, \& void *(*dup_func)(void *), void (*free_func)(void *), void (*clear_free_func)(void *)); \& void EC_KEY_insert_key_method_data(EC_KEY *key, void *data, \& void *(*dup_func)(void *), void (*free_func)(void *), void (*clear_free_func)(void *)); \& void EC_KEY_set_asn1_flag(EC_KEY *eckey, int asn1_flag); \& int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx); \& int EC_KEY_generate_key(EC_KEY *key); \& int EC_KEY_check_key(const EC_KEY *key); \& int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x, BIGNUM *y); \& \& EC_KEY *d2i_ECPrivateKey(EC_KEY **key, const unsigned char **in, long len); \& int i2d_ECPrivateKey(EC_KEY *key, unsigned char **out); \& \& EC_KEY *d2i_ECParameters(EC_KEY **key, const unsigned char **in, long len); \& int i2d_ECParameters(EC_KEY *key, unsigned char **out); \& \& EC_KEY *o2i_ECPublicKey(EC_KEY **key, const unsigned char **in, long len); \& int i2o_ECPublicKey(EC_KEY *key, unsigned char **out); \& int ECParameters_print(BIO *bp, const EC_KEY *key); \& int EC_KEY_print(BIO *bp, const EC_KEY *key, int off); \& int ECParameters_print_fp(FILE *fp, const EC_KEY *key); \& int EC_KEY_print_fp(FILE *fp, const EC_KEY *key, int off); \& #define ECParameters_dup(x) ASN1_dup_of(EC_KEY,i2d_ECParameters,d2i_ECParameters,x) \& #define EVP_PKEY_CTX_set_ec_paramgen_curve_nid(ctx, nid) \e \& EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, EVP_PKEY_OP_PARAMGEN, \e \& EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID, nid, NULL) .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This library provides an extensive set of functions for performing operations on elliptic curves over finite fields. In general an elliptic curve is one with an equation of the form: .PP y^2 = x^3 + ax + b .PP An \fB\s-1EC_GROUP\s0\fR structure is used to represent the definition of an elliptic curve. Points on a curve are stored using an \&\fB\s-1EC_POINT\s0\fR structure. An \fB\s-1EC_KEY\s0\fR is used to hold a private/public key pair, where a private key is simply a \s-1BIGNUM\s0 and a public key is a point on a curve (represented by an \fB\s-1EC_POINT\s0\fR). .PP The library contains a number of alternative implementations of the different functions. Each implementation is optimised for different scenarios. No matter which implementation is being used, the interface remains the same. The library handles calling the correct implementation when an interface function is invoked. An implementation is represented by an \fB\s-1EC_METHOD\s0\fR structure. .PP The creation and destruction of \fB\s-1EC_GROUP\s0\fR objects is described in \fIEC_GROUP_new\fR\|(3). Functions for manipulating \fB\s-1EC_GROUP\s0\fR objects are described in \fIEC_GROUP_copy\fR\|(3). .PP Functions for creating, destroying and manipulating \fB\s-1EC_POINT\s0\fR objects are explained in \fIEC_POINT_new\fR\|(3), whilst functions for performing mathematical operations and tests on \fBEC_POINTs\fR are coverd in \fIEC_POINT_add\fR\|(3). .PP For working with private and public keys refer to \fIEC_KEY_new\fR\|(3). Implementations are covered in \&\fIEC_GFp_simple_method\fR\|(3). .PP For information on encoding and decoding curve parameters to and from \s-1ASN1\s0 see \fId2i_ECPKParameters\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIcrypto\fR\|(3), \fIEC_GROUP_new\fR\|(3), \fIEC_GROUP_copy\fR\|(3), \&\fIEC_POINT_new\fR\|(3), \fIEC_POINT_add\fR\|(3), \fIEC_KEY_new\fR\|(3), \&\fIEC_GFp_simple_method\fR\|(3), \fId2i_ECPKParameters\fR\|(3) man3/CMS_get0_SignerInfos.3000064400000016125147210533270011346 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CMS_get0_SignerInfos 3" .TH CMS_get0_SignerInfos 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" CMS_get0_SignerInfos, CMS_SignerInfo_get0_signer_id, CMS_SignerInfo_get0_signature, CMS_SignerInfo_cert_cmp, CMS_set1_signer_cert \- CMS signedData signer functions. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& STACK_OF(CMS_SignerInfo) *CMS_get0_SignerInfos(CMS_ContentInfo *cms); \& \& int CMS_SignerInfo_get0_signer_id(CMS_SignerInfo *si, ASN1_OCTET_STRING **keyid, X509_NAME **issuer, ASN1_INTEGER **sno); \& ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); \& int CMS_SignerInfo_cert_cmp(CMS_SignerInfo *si, X509 *cert); \& void CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo *si, X509 *signer); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The function \fICMS_get0_SignerInfos()\fR returns all the CMS_SignerInfo structures associated with a \s-1CMS\s0 signedData structure. .PP \&\fICMS_SignerInfo_get0_signer_id()\fR retrieves the certificate signer identifier associated with a specific CMS_SignerInfo structure \fBsi\fR. Either the keyidentifier will be set in \fBkeyid\fR or \fBboth\fR issuer name and serial number in \fBissuer\fR and \fBsno\fR. .PP \&\fICMS_SignerInfo_get0_signature()\fR retrieves the signature associated with \&\fBsi\fR in a pointer to an \s-1ASN1_OCTET_STRING\s0 structure. This pointer returned corresponds to the internal signature value if \fBsi\fR so it may be read or modified. .PP \&\fICMS_SignerInfo_cert_cmp()\fR compares the certificate \fBcert\fR against the signer identifier \fBsi\fR. It returns zero if the comparison is successful and non zero if not. .PP \&\fICMS_SignerInfo_set1_signer_cert()\fR sets the signers certificate of \fBsi\fR to \&\fBsigner\fR. .SH "NOTES" .IX Header "NOTES" The main purpose of these functions is to enable an application to lookup signers certificates using any appropriate technique when the simpler method of \fICMS_verify()\fR is not appropriate. .PP In typical usage and application will retrieve all CMS_SignerInfo structures using \fICMS_get0_SignerInfo()\fR and retrieve the identifier information using \&\s-1CMS.\s0 It will then obtain the signer certificate by some unspecified means (or return and error if it cannot be found) and set it using \&\fICMS_SignerInfo_set1_signer_cert()\fR. .PP Once all signer certificates have been set \fICMS_verify()\fR can be used. .PP Although \fICMS_get0_SignerInfos()\fR can return \s-1NULL\s0 if an error occurs \fBor\fR if there are no signers this is not a problem in practice because the only error which can occur is if the \fBcms\fR structure is not of type signedData due to application error. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fICMS_get0_SignerInfos()\fR returns all CMS_SignerInfo structures, or \s-1NULL\s0 there are no signers or an error occurs. .PP \&\fICMS_SignerInfo_get0_signer_id()\fR returns 1 for success and 0 for failure. .PP \&\fICMS_SignerInfo_cert_cmp()\fR returns 0 for a successful comparison and non zero otherwise. .PP \&\fICMS_SignerInfo_set1_signer_cert()\fR does not return a value. .PP Any error can be obtained from \fIERR_get_error\fR\|(3) .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fICMS_verify\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" These functions were first was added to OpenSSL 0.9.8 man3/ui_compat.3000064400000014076147210533270007462 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ui_compat 3" .TH ui_compat 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" des_read_password, des_read_2passwords, des_read_pw_string, des_read_pw \- Compatibility user interface functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int des_read_password(DES_cblock *key,const char *prompt,int verify); \& int des_read_2passwords(DES_cblock *key1,DES_cblock *key2, \& const char *prompt,int verify); \& \& int des_read_pw_string(char *buf,int length,const char *prompt,int verify); \& int des_read_pw(char *buf,char *buff,int size,const char *prompt,int verify); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \s-1DES\s0 library contained a few routines to prompt for passwords. These aren't necessarely dependent on \s-1DES,\s0 and have therefore become part of the \&\s-1UI\s0 compatibility library. .PP \&\fIdes_read_pw()\fR writes the string specified by \fIprompt\fR to standard output turns echo off and reads an input string from the terminal. The string is returned in \fIbuf\fR, which must have spac for at least \fIsize\fR bytes. If \fIverify\fR is set, the user is asked for the password twice and unless the two copies match, an error is returned. The second password is stored in \fIbuff\fR, which must therefore also be at least \fIsize\fR bytes. A return code of \-1 indicates a system error, 1 failure due to use interaction, and 0 is success. All other functions described here use \fIdes_read_pw()\fR to do the work. .PP \&\fIdes_read_pw_string()\fR is a variant of \fIdes_read_pw()\fR that provides a buffer for you if \fIverify\fR is set. .PP \&\fIdes_read_password()\fR calls \fIdes_read_pw()\fR and converts the password to a \&\s-1DES\s0 key by calling \fIDES_string_to_key()\fR; \fIdes_read_2password()\fR operates in the same way as \fIdes_read_password()\fR except that it generates two keys by using the \fIDES_string_to_2key()\fR function. .SH "NOTES" .IX Header "NOTES" \&\fIdes_read_pw_string()\fR is available in the \s-1MIT\s0 Kerberos library as well, and is also available under the name \fIEVP_read_pw_string()\fR. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIui\fR\|(3), \fIui_create\fR\|(3) .SH "AUTHOR" .IX Header "AUTHOR" Richard Levitte (richard@levitte.org) for the OpenSSL project (http://www.openssl.org). man3/BN_CTX_new.3000064400000013255147210533270007366 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BN_CTX_new 3" .TH BN_CTX_new 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BN_CTX_new, BN_CTX_init, BN_CTX_free \- allocate and free BN_CTX structures .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& BN_CTX *BN_CTX_new(void); \& \& void BN_CTX_free(BN_CTX *c); .Ve .PP Deprecated: .PP .Vb 1 \& void BN_CTX_init(BN_CTX *c); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" A \fB\s-1BN_CTX\s0\fR is a structure that holds \fB\s-1BIGNUM\s0\fR temporary variables used by library functions. Since dynamic memory allocation to create \fB\s-1BIGNUM\s0\fRs is rather expensive when used in conjunction with repeated subroutine calls, the \fB\s-1BN_CTX\s0\fR structure is used. .PP \&\fIBN_CTX_new()\fR allocates and initializes a \fB\s-1BN_CTX\s0\fR structure. .PP \&\fIBN_CTX_free()\fR frees the components of the \fB\s-1BN_CTX\s0\fR, and if it was created by \fIBN_CTX_new()\fR, also the structure itself. If \fIBN_CTX_start\fR\|(3) has been used on the \fB\s-1BN_CTX\s0\fR, \&\fIBN_CTX_end\fR\|(3) must be called before the \fB\s-1BN_CTX\s0\fR may be freed by \fIBN_CTX_free()\fR. .PP \&\fIBN_CTX_init()\fR (deprecated) initializes an existing uninitialized \fB\s-1BN_CTX\s0\fR. This should not be used for new programs. Use \fIBN_CTX_new()\fR instead. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBN_CTX_new()\fR returns a pointer to the \fB\s-1BN_CTX\s0\fR. If the allocation fails, it returns \fB\s-1NULL\s0\fR and sets an error code that can be obtained by \&\fIERR_get_error\fR\|(3). .PP \&\fIBN_CTX_init()\fR and \fIBN_CTX_free()\fR have no return values. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIbn\fR\|(3), \fIERR_get_error\fR\|(3), \fIBN_add\fR\|(3), \&\fIBN_CTX_start\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIBN_CTX_new()\fR and \fIBN_CTX_free()\fR are available in all versions on SSLeay and OpenSSL. \fIBN_CTX_init()\fR was added in SSLeay 0.9.1b. man3/EVP_PKEY_verify_recover.3000064400000016673147210533270012102 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EVP_PKEY_verify_recover 3" .TH EVP_PKEY_verify_recover 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EVP_PKEY_verify_recover_init, EVP_PKEY_verify_recover \- recover signature using a public key algorithm .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx); \& int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, \& unsigned char *rout, size_t *routlen, \& const unsigned char *sig, size_t siglen); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fIEVP_PKEY_verify_recover_init()\fR function initializes a public key algorithm context using key \fBpkey\fR for a verify recover operation. .PP The \fIEVP_PKEY_verify_recover()\fR function recovers signed data using \fBctx\fR. The signature is specified using the \fBsig\fR and \&\fBsiglen\fR parameters. If \fBrout\fR is \fB\s-1NULL\s0\fR then the maximum size of the output buffer is written to the \fBroutlen\fR parameter. If \fBrout\fR is not \fB\s-1NULL\s0\fR then before the call the \fBroutlen\fR parameter should contain the length of the \&\fBrout\fR buffer, if the call is successful recovered data is written to \&\fBrout\fR and the amount of data written to \fBroutlen\fR. .SH "NOTES" .IX Header "NOTES" Normally an application is only interested in whether a signature verification operation is successful in those cases the \fIEVP_verify()\fR function should be used. .PP Sometimes however it is useful to obtain the data originally signed using a signing operation. Only certain public key algorithms can recover a signature in this way (for example \s-1RSA\s0 in \s-1PKCS\s0 padding mode). .PP After the call to \fIEVP_PKEY_verify_recover_init()\fR algorithm specific control operations can be performed to set any appropriate parameters for the operation. .PP The function \fIEVP_PKEY_verify_recover()\fR can be called more than once on the same context if several operations are performed using the same parameters. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIEVP_PKEY_verify_recover_init()\fR and \fIEVP_PKEY_verify_recover()\fR return 1 for success and 0 or a negative value for failure. In particular a return value of \-2 indicates the operation is not supported by the public key algorithm. .SH "EXAMPLE" .IX Header "EXAMPLE" Recover digest originally signed using PKCS#1 and \s-1SHA256\s0 digest: .PP .Vb 2 \& #include \& #include \& \& EVP_PKEY_CTX *ctx; \& unsigned char *rout, *sig; \& size_t routlen, siglen; \& EVP_PKEY *verify_key; \& /* NB: assumes verify_key, sig and siglen are already set up \& * and that verify_key is an RSA public key \& */ \& ctx = EVP_PKEY_CTX_new(verify_key); \& if (!ctx) \& /* Error occurred */ \& if (EVP_PKEY_verify_recover_init(ctx) <= 0) \& /* Error */ \& if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PADDING) <= 0) \& /* Error */ \& if (EVP_PKEY_CTX_set_signature_md(ctx, EVP_sha256()) <= 0) \& /* Error */ \& \& /* Determine buffer length */ \& if (EVP_PKEY_verify_recover(ctx, NULL, &routlen, sig, siglen) <= 0) \& /* Error */ \& \& rout = OPENSSL_malloc(routlen); \& \& if (!rout) \& /* malloc failure */ \& \& if (EVP_PKEY_verify_recover(ctx, rout, &routlen, sig, siglen) <= 0) \& /* Error */ \& \& /* Recovered data is routlen bytes written to buffer rout */ .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIEVP_PKEY_CTX_new\fR\|(3), \&\fIEVP_PKEY_encrypt\fR\|(3), \&\fIEVP_PKEY_decrypt\fR\|(3), \&\fIEVP_PKEY_sign\fR\|(3), \&\fIEVP_PKEY_verify\fR\|(3), \&\fIEVP_PKEY_derive\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" These functions were first added to OpenSSL 1.0.0. man3/SSL_CTX_sessions.3000064400000011470147210533270010602 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_sessions 3" .TH SSL_CTX_sessions 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_sessions \- access internal session cache .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& struct lhash_st *SSL_CTX_sessions(SSL_CTX *ctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_sessions()\fR returns a pointer to the lhash databases containing the internal session cache for \fBctx\fR. .SH "NOTES" .IX Header "NOTES" The sessions in the internal session cache are kept in an \&\fIlhash\fR\|(3) type database. It is possible to directly access this database e.g. for searching. In parallel, the sessions form a linked list which is maintained separately from the \&\fIlhash\fR\|(3) operations, so that the database must not be modified directly but by using the \&\fISSL_CTX_add_session\fR\|(3) family of functions. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fIlhash\fR\|(3), \&\fISSL_CTX_add_session\fR\|(3), \&\fISSL_CTX_set_session_cache_mode\fR\|(3) man3/EVP_BytesToKey.3000064400000014762147210533270010260 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EVP_BytesToKey 3" .TH EVP_BytesToKey 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EVP_BytesToKey \- password based encryption routine .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int EVP_BytesToKey(const EVP_CIPHER *type,const EVP_MD *md, \& const unsigned char *salt, \& const unsigned char *data, int datal, int count, \& unsigned char *key,unsigned char *iv); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIEVP_BytesToKey()\fR derives a key and \s-1IV\s0 from various parameters. \fBtype\fR is the cipher to derive the key and \s-1IV\s0 for. \fBmd\fR is the message digest to use. The \fBsalt\fR parameter is used as a salt in the derivation: it should point to an 8 byte buffer or \s-1NULL\s0 if no salt is used. \fBdata\fR is a buffer containing \&\fBdatal\fR bytes which is used to derive the keying data. \fBcount\fR is the iteration count to use. The derived key and \s-1IV\s0 will be written to \fBkey\fR and \fBiv\fR respectively. .SH "NOTES" .IX Header "NOTES" A typical application of this function is to derive keying material for an encryption algorithm from a password in the \fBdata\fR parameter. .PP Increasing the \fBcount\fR parameter slows down the algorithm which makes it harder for an attacker to peform a brute force attack using a large number of candidate passwords. .PP If the total key and \s-1IV\s0 length is less than the digest length and \&\fB\s-1MD5\s0\fR is used then the derivation algorithm is compatible with PKCS#5 v1.5 otherwise a non standard extension is used to derive the extra data. .PP Newer applications should use a more modern algorithm such as \s-1PBKDF2\s0 as defined in PKCS#5v2.1 and provided by \s-1PKCS5_PBKDF2_HMAC.\s0 .SH "KEY DERIVATION ALGORITHM" .IX Header "KEY DERIVATION ALGORITHM" The key and \s-1IV\s0 is derived by concatenating D_1, D_2, etc until enough data is available for the key and \s-1IV.\s0 D_i is defined as: .PP .Vb 1 \& D_i = HASH^count(D_(i\-1) || data || salt) .Ve .PP where || denotes concatentaion, D_0 is empty, \s-1HASH\s0 is the digest algorithm in use, HASH^1(data) is simply \s-1HASH\s0(data), HASH^2(data) is \s-1HASH\s0(\s-1HASH\s0(data)) and so on. .PP The initial bytes are used for the key and the subsequent bytes for the \s-1IV.\s0 .SH "RETURN VALUES" .IX Header "RETURN VALUES" If \fBdata\fR is \s-1NULL,\s0 then \fIEVP_BytesToKey()\fR returns the number of bytes needed to store the derived key. Otherwise, \fIEVP_BytesToKey()\fR returns the size of the derived key in bytes, or 0 on error. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIevp\fR\|(3), \fIrand\fR\|(3), \&\fIEVP_EncryptInit\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" man3/SSL_CTX_set_tmp_rsa_callback.3000064400000024764147210533270013102 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_tmp_rsa_callback 3" .TH SSL_CTX_set_tmp_rsa_callback 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_tmp_rsa_callback, SSL_CTX_set_tmp_rsa, SSL_CTX_need_tmp_rsa, SSL_set_tmp_rsa_callback, SSL_set_tmp_rsa, SSL_need_tmp_rsa \- handle RSA keys for ephemeral key exchange .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void SSL_CTX_set_tmp_rsa_callback(SSL_CTX *ctx, \& RSA *(*tmp_rsa_callback)(SSL *ssl, int is_export, int keylength)); \& long SSL_CTX_set_tmp_rsa(SSL_CTX *ctx, RSA *rsa); \& long SSL_CTX_need_tmp_rsa(SSL_CTX *ctx); \& \& void SSL_set_tmp_rsa_callback(SSL_CTX *ctx, \& RSA *(*tmp_rsa_callback)(SSL *ssl, int is_export, int keylength)); \& long SSL_set_tmp_rsa(SSL *ssl, RSA *rsa) \& long SSL_need_tmp_rsa(SSL *ssl) \& \& RSA *(*tmp_rsa_callback)(SSL *ssl, int is_export, int keylength); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set_tmp_rsa_callback()\fR sets the callback function for \fBctx\fR to be used when a temporary/ephemeral \s-1RSA\s0 key is required to \fBtmp_rsa_callback\fR. The callback is inherited by all \s-1SSL\s0 objects newly created from \fBctx\fR with <\fISSL_new\fR\|(3)|\fISSL_new\fR\|(3)>. Already created \s-1SSL\s0 objects are not affected. .PP \&\fISSL_CTX_set_tmp_rsa()\fR sets the temporary/ephemeral \s-1RSA\s0 key to be used to be \&\fBrsa\fR. The key is inherited by all \s-1SSL\s0 objects newly created from \fBctx\fR with <\fISSL_new\fR\|(3)|\fISSL_new\fR\|(3)>. Already created \s-1SSL\s0 objects are not affected. .PP \&\fISSL_CTX_need_tmp_rsa()\fR returns 1, if a temporary/ephemeral \s-1RSA\s0 key is needed for RSA-based strength-limited 'exportable' ciphersuites because a \s-1RSA\s0 key with a keysize larger than 512 bits is installed. .PP \&\fISSL_set_tmp_rsa_callback()\fR sets the callback only for \fBssl\fR. .PP \&\fISSL_set_tmp_rsa()\fR sets the key only for \fBssl\fR. .PP \&\fISSL_need_tmp_rsa()\fR returns 1, if a temporary/ephemeral \s-1RSA\s0 key is needed, for RSA-based strength-limited 'exportable' ciphersuites because a \s-1RSA\s0 key with a keysize larger than 512 bits is installed. .PP These functions apply to \s-1SSL/TLS\s0 servers only. .SH "NOTES" .IX Header "NOTES" When using a cipher with \s-1RSA\s0 authentication, an ephemeral \s-1RSA\s0 key exchange can take place. In this case the session data are negotiated using the ephemeral/temporary \s-1RSA\s0 key and the \s-1RSA\s0 key supplied and certified by the certificate chain is only used for signing. .PP Under previous export restrictions, ciphers with \s-1RSA\s0 keys shorter (512 bits) than the usual key length of 1024 bits were created. To use these ciphers with \s-1RSA\s0 keys of usual length, an ephemeral key exchange must be performed, as the normal (certified) key cannot be directly used. .PP Using ephemeral \s-1RSA\s0 key exchange yields forward secrecy, as the connection can only be decrypted, when the \s-1RSA\s0 key is known. By generating a temporary \&\s-1RSA\s0 key inside the server application that is lost when the application is left, it becomes impossible for an attacker to decrypt past sessions, even if he gets hold of the normal (certified) \s-1RSA\s0 key, as this key was used for signing only. The downside is that creating a \s-1RSA\s0 key is computationally expensive. .PP Additionally, the use of ephemeral \s-1RSA\s0 key exchange is only allowed in the \s-1TLS\s0 standard, when the \s-1RSA\s0 key can be used for signing only, that is for export ciphers. Using ephemeral \s-1RSA\s0 key exchange for other purposes violates the standard and can break interoperability with clients. It is therefore strongly recommended to not use ephemeral \s-1RSA\s0 key exchange and use \s-1DHE \s0(Ephemeral Diffie-Hellman) key exchange instead in order to achieve forward secrecy (see \&\fISSL_CTX_set_tmp_dh_callback\fR\|(3)). .PP An application may either directly specify the key or can supply the key via a callback function. The callback approach has the advantage, that the callback may generate the key only in case it is actually needed. As the generation of a \&\s-1RSA\s0 key is however costly, it will lead to a significant delay in the handshake procedure. Another advantage of the callback function is that it can supply keys of different size while the explicit setting of the key is only useful for key size of 512 bits to satisfy the export restricted ciphers and does give away key length if a longer key would be allowed. .PP The \fBtmp_rsa_callback\fR is called with the \fBkeylength\fR needed and the \fBis_export\fR information. The \fBis_export\fR flag is set, when the ephemeral \s-1RSA\s0 key exchange is performed with an export cipher. .SH "EXAMPLES" .IX Header "EXAMPLES" Generate temporary \s-1RSA\s0 keys to prepare ephemeral \s-1RSA\s0 key exchange. As the generation of a \s-1RSA\s0 key costs a lot of computer time, they saved for later reuse. For demonstration purposes, two keys for 512 bits and 1024 bits respectively are generated. .PP .Vb 4 \& ... \& /* Set up ephemeral RSA stuff */ \& RSA *rsa_512 = NULL; \& RSA *rsa_1024 = NULL; \& \& rsa_512 = RSA_generate_key(512,RSA_F4,NULL,NULL); \& if (rsa_512 == NULL) \& evaluate_error_queue(); \& \& rsa_1024 = RSA_generate_key(1024,RSA_F4,NULL,NULL); \& if (rsa_1024 == NULL) \& evaluate_error_queue(); \& \& ... \& \& RSA *tmp_rsa_callback(SSL *s, int is_export, int keylength) \& { \& RSA *rsa_tmp=NULL; \& \& switch (keylength) { \& case 512: \& if (rsa_512) \& rsa_tmp = rsa_512; \& else { /* generate on the fly, should not happen in this example */ \& rsa_tmp = RSA_generate_key(keylength,RSA_F4,NULL,NULL); \& rsa_512 = rsa_tmp; /* Remember for later reuse */ \& } \& break; \& case 1024: \& if (rsa_1024) \& rsa_tmp=rsa_1024; \& else \& should_not_happen_in_this_example(); \& break; \& default: \& /* Generating a key on the fly is very costly, so use what is there */ \& if (rsa_1024) \& rsa_tmp=rsa_1024; \& else \& rsa_tmp=rsa_512; /* Use at least a shorter key */ \& } \& return(rsa_tmp); \& } .Ve .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CTX_set_tmp_rsa_callback()\fR and \fISSL_set_tmp_rsa_callback()\fR do not return diagnostic output. .PP \&\fISSL_CTX_set_tmp_rsa()\fR and \fISSL_set_tmp_rsa()\fR do return 1 on success and 0 on failure. Check the error queue to find out the reason of failure. .PP \&\fISSL_CTX_need_tmp_rsa()\fR and \fISSL_need_tmp_rsa()\fR return 1 if a temporary \&\s-1RSA\s0 key is needed and 0 otherwise. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_CTX_set_cipher_list\fR\|(3), \&\fISSL_CTX_set_options\fR\|(3), \&\fISSL_CTX_set_tmp_dh_callback\fR\|(3), \&\fISSL_new\fR\|(3), \fIciphers\fR\|(1) man3/BN_new.3000064400000012727147210533270006653 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BN_new 3" .TH BN_new 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BN_new, BN_init, BN_clear, BN_free, BN_clear_free \- allocate and free BIGNUMs .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& BIGNUM *BN_new(void); \& \& void BN_init(BIGNUM *); \& \& void BN_clear(BIGNUM *a); \& \& void BN_free(BIGNUM *a); \& \& void BN_clear_free(BIGNUM *a); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBN_new()\fR allocates and initializes a \fB\s-1BIGNUM\s0\fR structure. \fIBN_init()\fR initializes an existing uninitialized \fB\s-1BIGNUM\s0\fR. .PP \&\fIBN_clear()\fR is used to destroy sensitive data such as keys when they are no longer needed. It erases the memory used by \fBa\fR and sets it to the value 0. .PP \&\fIBN_free()\fR frees the components of the \fB\s-1BIGNUM\s0\fR, and if it was created by \fIBN_new()\fR, also the structure itself. \fIBN_clear_free()\fR additionally overwrites the data before the memory is returned to the system. If \fBa\fR is \s-1NULL,\s0 nothing is done. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBN_new()\fR returns a pointer to the \fB\s-1BIGNUM\s0\fR initialised to the value 0. If the allocation fails, it returns \fB\s-1NULL\s0\fR and sets an error code that can be obtained by \fIERR_get_error\fR\|(3). .PP \&\fIBN_init()\fR, \fIBN_clear()\fR, \fIBN_free()\fR and \fIBN_clear_free()\fR have no return values. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIbn\fR\|(3), \fIERR_get_error\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIBN_new()\fR, \fIBN_clear()\fR, \fIBN_free()\fR and \fIBN_clear_free()\fR are available in all versions on SSLeay and OpenSSL. \fIBN_init()\fR was added in SSLeay 0.9.1b. man3/BN_generate_prime.3000064400000024327147210533270011047 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BN_generate_prime 3" .TH BN_generate_prime 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BN_generate_prime_ex, BN_is_prime_ex, BN_is_prime_fasttest_ex, BN_GENCB_call, BN_GENCB_set_old, BN_GENCB_set, BN_generate_prime, BN_is_prime, BN_is_prime_fasttest \- generate primes and test for primality .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int BN_generate_prime_ex(BIGNUM *ret,int bits,int safe, const BIGNUM *add, \& const BIGNUM *rem, BN_GENCB *cb); \& \& int BN_is_prime_ex(const BIGNUM *p,int nchecks, BN_CTX *ctx, BN_GENCB *cb); \& \& int BN_is_prime_fasttest_ex(const BIGNUM *p,int nchecks, BN_CTX *ctx, \& int do_trial_division, BN_GENCB *cb); \& \& int BN_GENCB_call(BN_GENCB *cb, int a, int b); \& \& #define BN_GENCB_set_old(gencb, callback, cb_arg) ... \& \& #define BN_GENCB_set(gencb, callback, cb_arg) ... .Ve .PP Deprecated: .PP .Vb 2 \& BIGNUM *BN_generate_prime(BIGNUM *ret, int num, int safe, BIGNUM *add, \& BIGNUM *rem, void (*callback)(int, int, void *), void *cb_arg); \& \& int BN_is_prime(const BIGNUM *a, int checks, void (*callback)(int, int, \& void *), BN_CTX *ctx, void *cb_arg); \& \& int BN_is_prime_fasttest(const BIGNUM *a, int checks, \& void (*callback)(int, int, void *), BN_CTX *ctx, void *cb_arg, \& int do_trial_division); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBN_generate_prime_ex()\fR generates a pseudo-random prime number of bit length \fBbits\fR. If \fBret\fR is not \fB\s-1NULL\s0\fR, it will be used to store the number. .PP If \fBcb\fR is not \fB\s-1NULL\s0\fR, it is used as follows: .IP "\(bu" 4 \&\fBBN_GENCB_call(cb, 0, i)\fR is called after generating the i\-th potential prime number. .IP "\(bu" 4 While the number is being tested for primality, \&\fBBN_GENCB_call(cb, 1, j)\fR is called as described below. .IP "\(bu" 4 When a prime has been found, \fBBN_GENCB_call(cb, 2, i)\fR is called. .PP The prime may have to fulfill additional requirements for use in Diffie-Hellman key exchange: .PP If \fBadd\fR is not \fB\s-1NULL\s0\fR, the prime will fulfill the condition p % \fBadd\fR == \fBrem\fR (p % \fBadd\fR == 1 if \fBrem\fR == \fB\s-1NULL\s0\fR) in order to suit a given generator. .PP If \fBsafe\fR is true, it will be a safe prime (i.e. a prime p so that (p\-1)/2 is also prime). .PP The \s-1PRNG\s0 must be seeded prior to calling \fIBN_generate_prime_ex()\fR. The prime number generation has a negligible error probability. .PP \&\fIBN_is_prime_ex()\fR and \fIBN_is_prime_fasttest_ex()\fR test if the number \fBp\fR is prime. The following tests are performed until one of them shows that \&\fBp\fR is composite; if \fBp\fR passes all these tests, it is considered prime. .PP \&\fIBN_is_prime_fasttest_ex()\fR, when called with \fBdo_trial_division == 1\fR, first attempts trial division by a number of small primes; if no divisors are found by this test and \fBcb\fR is not \fB\s-1NULL\s0\fR, \&\fBBN_GENCB_call(cb, 1, \-1)\fR is called. If \fBdo_trial_division == 0\fR, this test is skipped. .PP Both \fIBN_is_prime_ex()\fR and \fIBN_is_prime_fasttest_ex()\fR perform a Miller-Rabin probabilistic primality test with \fBnchecks\fR iterations. If \&\fBnchecks == BN_prime_checks\fR, a number of iterations is used that yields a false positive rate of at most 2^\-64 for random input. The error rate depends on the size of the prime and goes down for bigger primes. The rate is 2^\-80 starting at 308 bits, 2^\-112 at 852 bits, 2^\-128 at 1080 bits, 2^\-192 at 3747 bits and 2^\-256 at 6394 bits. .PP When the source of the prime is not random or not trusted, the number of checks needs to be much higher to reach the same level of assurance: It should equal half of the targeted security level in bits (rounded up to the next integer if necessary). For instance, to reach the 128 bit security level, \fBnchecks\fR should be set to 64. .PP If \fBcb\fR is not \fB\s-1NULL\s0\fR, \fBBN_GENCB_call(cb, 1, j)\fR is called after the j\-th iteration (j = 0, 1, ...). \fBctx\fR is a pre-allocated \fB\s-1BN_CTX\s0\fR (to save the overhead of allocating and freeing the structure in a loop), or \fB\s-1NULL\s0\fR. .PP BN_GENCB_call calls the callback function held in the \fB\s-1BN_GENCB\s0\fR structure and passes the ints \fBa\fR and \fBb\fR as arguments. There are two types of \&\fB\s-1BN_GENCB\s0\fR structure that are supported: \*(L"new\*(R" style and \*(L"old\*(R" style. New programs should prefer the \*(L"new\*(R" style, whilst the \*(L"old\*(R" style is provided for backwards compatibility purposes. .PP For \*(L"new\*(R" style callbacks a \s-1BN_GENCB\s0 structure should be initialised with a call to BN_GENCB_set, where \fBgencb\fR is a \fB\s-1BN_GENCB\s0 *\fR, \fBcallback\fR is of type \fBint (*callback)(int, int, \s-1BN_GENCB\s0 *)\fR and \fBcb_arg\fR is a \fBvoid *\fR. \&\*(L"Old\*(R" style callbacks are the same except they are initialised with a call to BN_GENCB_set_old and \fBcallback\fR is of type \&\fBvoid (*callback)(int, int, void *)\fR. .PP A callback is invoked through a call to \fBBN_GENCB_call\fR. This will check the type of the callback and will invoke \fBcallback(a, b, gencb)\fR for new style callbacks or \fBcallback(a, b, cb_arg)\fR for old style. .PP BN_generate_prime (deprecated) works in the same way as BN_generate_prime_ex but expects an old style callback function directly in the \fBcallback\fR parameter, and an argument to pass to it in the \fBcb_arg\fR. Similarly BN_is_prime and BN_is_prime_fasttest are deprecated and can be compared to BN_is_prime_ex and BN_is_prime_fasttest_ex respectively. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBN_generate_prime_ex()\fR return 1 on success or 0 on error. .PP \&\fIBN_is_prime_ex()\fR, \fIBN_is_prime_fasttest_ex()\fR, \fIBN_is_prime()\fR and \&\fIBN_is_prime_fasttest()\fR return 0 if the number is composite, 1 if it is prime with an error probability of less than 0.25^\fBnchecks\fR, and \&\-1 on error. .PP \&\fIBN_generate_prime()\fR returns the prime number on success, \fB\s-1NULL\s0\fR otherwise. .PP Callback functions should return 1 on success or 0 on error. .PP The error codes can be obtained by \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIbn\fR\|(3), \fIERR_get_error\fR\|(3), \fIrand\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" The \fBcb_arg\fR arguments to \fIBN_generate_prime()\fR and to \fIBN_is_prime()\fR were added in SSLeay 0.9.0. The \fBret\fR argument to \fIBN_generate_prime()\fR was added in SSLeay 0.9.1. \&\fIBN_is_prime_fasttest()\fR was added in OpenSSL 0.9.5. man3/evp.3000064400000022015147210533270006264 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "evp 3" .TH evp 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" evp \- high\-level cryptographic functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \s-1EVP\s0 library provides a high-level interface to cryptographic functions. .PP \&\fBEVP_Seal\fR\fI...\fR and \fBEVP_Open\fR\fI...\fR provide public key encryption and decryption to implement digital \*(L"envelopes\*(R". .PP The \fBEVP_DigestSign\fR\fI...\fR and \&\fBEVP_DigestVerify\fR\fI...\fR functions implement digital signatures and Message Authentication Codes (MACs). Also see the older \&\fBEVP_Sign\fR\fI...\fR and \fBEVP_Verify\fR\fI...\fR functions. .PP Symmetric encryption is available with the \fBEVP_Encrypt\fR\fI...\fR functions. The \fBEVP_Digest\fR\fI...\fR functions provide message digests. .PP The \fB\s-1EVP_PKEY\s0\fR\fI...\fR functions provide a high level interface to asymmetric algorithms. To create a new \s-1EVP_PKEY\s0 see \&\fIEVP_PKEY_new\fR\|(3). EVP_PKEYs can be associated with a private key of a particular algorithm by using the functions described on the \fIEVP_PKEY_set1_RSA\fR\|(3) page, or new keys can be generated using \fIEVP_PKEY_keygen\fR\|(3). EVP_PKEYs can be compared using \fIEVP_PKEY_cmp\fR\|(3), or printed using \&\fIEVP_PKEY_print_private\fR\|(3). .PP The \s-1EVP_PKEY\s0 functions support the full range of asymmetric algorithm operations: .IP "For key agreement see \fIEVP_PKEY_derive\fR\|(3)" 4 .IX Item "For key agreement see EVP_PKEY_derive" .PD 0 .IP "For signing and verifying see \fIEVP_PKEY_sign\fR\|(3), \fIEVP_PKEY_verify\fR\|(3) and \fIEVP_PKEY_verify_recover\fR\|(3). However, note that these functions do not perform a digest of the data to be signed. Therefore normally you would use the \fBEVP_DigestSign\fR\fI...\fR functions for this purpose." 4 .IX Item "For signing and verifying see EVP_PKEY_sign, EVP_PKEY_verify and EVP_PKEY_verify_recover. However, note that these functions do not perform a digest of the data to be signed. Therefore normally you would use the EVP_DigestSign... functions for this purpose." .ie n .IP "For encryption and decryption see \fIEVP_PKEY_encrypt\fR\|(3) and \fIEVP_PKEY_decrypt\fR\|(3) respectively. However, note that these functions perform encryption and decryption only. As public key encryption is an expensive operation, normally you would wrap an encrypted message in a ""digital envelope"" using the \fBEVP_Seal\fR\fI...\fR and \fBEVP_Open\fR\fI...\fR functions." 4 .el .IP "For encryption and decryption see \fIEVP_PKEY_encrypt\fR\|(3) and \fIEVP_PKEY_decrypt\fR\|(3) respectively. However, note that these functions perform encryption and decryption only. As public key encryption is an expensive operation, normally you would wrap an encrypted message in a ``digital envelope'' using the \fBEVP_Seal\fR\fI...\fR and \fBEVP_Open\fR\fI...\fR functions." 4 .IX Item "For encryption and decryption see EVP_PKEY_encrypt and EVP_PKEY_decrypt respectively. However, note that these functions perform encryption and decryption only. As public key encryption is an expensive operation, normally you would wrap an encrypted message in a digital envelope using the EVP_Seal... and EVP_Open... functions." .PD .PP The \fIEVP_BytesToKey\fR\|(3) function provides some limited support for password based encryption. Careful selection of the parameters will provide a PKCS#5 \s-1PBKDF1\s0 compatible implementation. However, new applications should not typically use this (preferring, for example, \&\s-1PBKDF2\s0 from PCKS#5). .PP The \fBEVP_Encode\fR\fI...\fR and \&\fBEVP_Decode\fR\fI...\fR functions implement base 64 encoding and decoding. .PP Algorithms are loaded with \fIOpenSSL_add_all_algorithms\fR\|(3). .PP All the symmetric algorithms (ciphers), digests and asymmetric algorithms (public key algorithms) can be replaced by \s-1ENGINE\s0 modules providing alternative implementations. If \s-1ENGINE\s0 implementations of ciphers or digests are registered as defaults, then the various \s-1EVP\s0 functions will automatically use those implementations automatically in preference to built in software implementations. For more information, consult the \fIengine\fR\|(3) man page. .PP Although low level algorithm specific functions exist for many algorithms their use is discouraged. They cannot be used with an \s-1ENGINE\s0 and \s-1ENGINE\s0 versions of new algorithms cannot be accessed using the low level functions. Also makes code harder to adapt to new algorithms and some options are not cleanly supported at the low level and some operations are more efficient using the high level interface. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIEVP_DigestInit\fR\|(3), \&\fIEVP_EncryptInit\fR\|(3), \&\fIEVP_OpenInit\fR\|(3), \&\fIEVP_SealInit\fR\|(3), \&\fIEVP_DigestSignInit\fR\|(3), \&\fIEVP_SignInit\fR\|(3), \&\fIEVP_VerifyInit\fR\|(3), \&\fIEVP_EncodeInit\fR\|(3), \&\fIEVP_PKEY_new\fR\|(3), \&\fIEVP_PKEY_set1_RSA\fR\|(3), \&\fIEVP_PKEY_keygen\fR\|(3), \&\fIEVP_PKEY_print_private\fR\|(3), \&\fIEVP_PKEY_decrypt\fR\|(3), \&\fIEVP_PKEY_encrypt\fR\|(3), \&\fIEVP_PKEY_sign\fR\|(3), \&\fIEVP_PKEY_verify\fR\|(3), \&\fIEVP_PKEY_verify_recover\fR\|(3), \&\fIEVP_PKEY_derive\fR\|(3), \&\fIEVP_BytesToKey\fR\|(3), \&\fIOpenSSL_add_all_algorithms\fR\|(3), \&\fIengine\fR\|(3) man3/BN_num_bytes.3000064400000013325147210533270010062 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BN_num_bytes 3" .TH BN_num_bytes 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BN_num_bits, BN_num_bytes, BN_num_bits_word \- get BIGNUM size .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int BN_num_bytes(const BIGNUM *a); \& \& int BN_num_bits(const BIGNUM *a); \& \& int BN_num_bits_word(BN_ULONG w); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBN_num_bytes()\fR returns the size of a \fB\s-1BIGNUM\s0\fR in bytes. .PP \&\fIBN_num_bits_word()\fR returns the number of significant bits in a word. If we take 0x00000432 as an example, it returns 11, not 16, not 32. Basically, except for a zero, it returns \fIfloor(log2(w))+1\fR. .PP \&\fIBN_num_bits()\fR returns the number of significant bits in a \fB\s-1BIGNUM\s0\fR, following the same principle as \fIBN_num_bits_word()\fR. .PP \&\fIBN_num_bytes()\fR is a macro. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The size. .SH "NOTES" .IX Header "NOTES" Some have tried using \fIBN_num_bits()\fR on individual numbers in \s-1RSA\s0 keys, \&\s-1DH\s0 keys and \s-1DSA\s0 keys, and found that they don't always come up with the number of bits they expected (something like 512, 1024, 2048, \&...). This is because generating a number with some specific number of bits doesn't always set the highest bits, thereby making the number of \fIsignificant\fR bits a little lower. If you want to know the \*(L"key size\*(R" of such a key, either use functions like \fIRSA_size()\fR, \fIDH_size()\fR and \fIDSA_size()\fR, or use \fIBN_num_bytes()\fR and multiply with 8 (although there's no real guarantee that will match the \*(L"key size\*(R", just a lot more probability). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIbn\fR\|(3), \fIDH_size\fR\|(3), \fIDSA_size\fR\|(3), \&\fIRSA_size\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIBN_num_bytes()\fR, \fIBN_num_bits()\fR and \fIBN_num_bits_word()\fR are available in all versions of SSLeay and OpenSSL. man3/SSL_CTX_set_session_cache_mode.3000064400000022576147210533270013432 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_session_cache_mode 3" .TH SSL_CTX_set_session_cache_mode 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_session_cache_mode, SSL_CTX_get_session_cache_mode \- enable/disable session caching .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& long SSL_CTX_set_session_cache_mode(SSL_CTX ctx, long mode); \& long SSL_CTX_get_session_cache_mode(SSL_CTX ctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set_session_cache_mode()\fR enables/disables session caching by setting the operational mode for \fBctx\fR to . .PP \&\fISSL_CTX_get_session_cache_mode()\fR returns the currently used cache mode. .SH "NOTES" .IX Header "NOTES" The OpenSSL library can store/retrieve \s-1SSL/TLS\s0 sessions for later reuse. The sessions can be held in memory for each \fBctx\fR, if more than one \&\s-1SSL_CTX\s0 object is being maintained, the sessions are unique for each \s-1SSL_CTX\s0 object. .PP In order to reuse a session, a client must send the session's id to the server. It can only send exactly one id. The server then either agrees to reuse the session or it starts a full handshake (to create a new session). .PP A server will look up the session in its internal session storage. If the session is not found in internal storage or lookups for the internal storage have been deactivated (\s-1SSL_SESS_CACHE_NO_INTERNAL_LOOKUP\s0), the server will try the external storage if available. .PP Since a client may try to reuse a session intended for use in a different context, the session id context must be set by the server (see \&\fISSL_CTX_set_session_id_context\fR\|(3)). .PP The following session cache modes and modifiers are available: .IP "\s-1SSL_SESS_CACHE_OFF\s0" 4 .IX Item "SSL_SESS_CACHE_OFF" No session caching for client or server takes place. .IP "\s-1SSL_SESS_CACHE_CLIENT\s0" 4 .IX Item "SSL_SESS_CACHE_CLIENT" Client sessions are added to the session cache. As there is no reliable way for the OpenSSL library to know whether a session should be reused or which session to choose (due to the abstract \s-1BIO\s0 layer the \s-1SSL\s0 engine does not have details about the connection), the application must select the session to be reused by using the \fISSL_set_session\fR\|(3) function. This option is not activated by default. .IP "\s-1SSL_SESS_CACHE_SERVER\s0" 4 .IX Item "SSL_SESS_CACHE_SERVER" Server sessions are added to the session cache. When a client proposes a session to be reused, the server looks for the corresponding session in (first) the internal session cache (unless \s-1SSL_SESS_CACHE_NO_INTERNAL_LOOKUP\s0 is set), then (second) in the external cache if available. If the session is found, the server will try to reuse the session. This is the default. .IP "\s-1SSL_SESS_CACHE_BOTH\s0" 4 .IX Item "SSL_SESS_CACHE_BOTH" Enable both \s-1SSL_SESS_CACHE_CLIENT\s0 and \s-1SSL_SESS_CACHE_SERVER\s0 at the same time. .IP "\s-1SSL_SESS_CACHE_NO_AUTO_CLEAR\s0" 4 .IX Item "SSL_SESS_CACHE_NO_AUTO_CLEAR" Normally the session cache is checked for expired sessions every 255 connections using the \&\fISSL_CTX_flush_sessions\fR\|(3) function. Since this may lead to a delay which cannot be controlled, the automatic flushing may be disabled and \&\fISSL_CTX_flush_sessions\fR\|(3) can be called explicitly by the application. .IP "\s-1SSL_SESS_CACHE_NO_INTERNAL_LOOKUP\s0" 4 .IX Item "SSL_SESS_CACHE_NO_INTERNAL_LOOKUP" By setting this flag, session-resume operations in an \s-1SSL/TLS\s0 server will not automatically look up sessions in the internal cache, even if sessions are automatically stored there. If external session caching callbacks are in use, this flag guarantees that all lookups are directed to the external cache. As automatic lookup only applies for \s-1SSL/TLS\s0 servers, the flag has no effect on clients. .IP "\s-1SSL_SESS_CACHE_NO_INTERNAL_STORE\s0" 4 .IX Item "SSL_SESS_CACHE_NO_INTERNAL_STORE" Depending on the presence of \s-1SSL_SESS_CACHE_CLIENT\s0 and/or \s-1SSL_SESS_CACHE_SERVER,\s0 sessions negotiated in an \s-1SSL/TLS\s0 handshake may be cached for possible reuse. Normally a new session is added to the internal cache as well as any external session caching (callback) that is configured for the \s-1SSL_CTX.\s0 This flag will prevent sessions being stored in the internal cache (though the application can add them manually using \fISSL_CTX_add_session\fR\|(3)). Note: in any \s-1SSL/TLS\s0 servers where external caching is configured, any successful session lookups in the external cache (ie. for session-resume requests) would normally be copied into the local cache before processing continues \- this flag prevents these additions to the internal cache as well. .IP "\s-1SSL_SESS_CACHE_NO_INTERNAL\s0" 4 .IX Item "SSL_SESS_CACHE_NO_INTERNAL" Enable both \s-1SSL_SESS_CACHE_NO_INTERNAL_LOOKUP\s0 and \&\s-1SSL_SESS_CACHE_NO_INTERNAL_STORE\s0 at the same time. .PP The default mode is \s-1SSL_SESS_CACHE_SERVER.\s0 .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CTX_set_session_cache_mode()\fR returns the previously set cache mode. .PP \&\fISSL_CTX_get_session_cache_mode()\fR returns the currently set cache mode. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_set_session\fR\|(3), \&\fISSL_session_reused\fR\|(3), \&\fISSL_CTX_add_session\fR\|(3), \&\fISSL_CTX_sess_number\fR\|(3), \&\fISSL_CTX_sess_set_cache_size\fR\|(3), \&\fISSL_CTX_sess_set_get_cb\fR\|(3), \&\fISSL_CTX_set_session_id_context\fR\|(3), \&\fISSL_CTX_set_timeout\fR\|(3), \&\fISSL_CTX_flush_sessions\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1SSL_SESS_CACHE_NO_INTERNAL_STORE\s0 and \s-1SSL_SESS_CACHE_NO_INTERNAL\s0 were introduced in OpenSSL 0.9.6h. man3/RSA_get_ex_new_index.3000064400000023271147210533270011517 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RSA_get_ex_new_index 3" .TH RSA_get_ex_new_index 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" RSA_get_ex_new_index, RSA_set_ex_data, RSA_get_ex_data \- add application specific data to RSA structures .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int RSA_get_ex_new_index(long argl, void *argp, \& CRYPTO_EX_new *new_func, \& CRYPTO_EX_dup *dup_func, \& CRYPTO_EX_free *free_func); \& \& int RSA_set_ex_data(RSA *r, int idx, void *arg); \& \& void *RSA_get_ex_data(RSA *r, int idx); \& \& typedef int CRYPTO_EX_new(void *parent, void *ptr, CRYPTO_EX_DATA *ad, \& int idx, long argl, void *argp); \& typedef void CRYPTO_EX_free(void *parent, void *ptr, CRYPTO_EX_DATA *ad, \& int idx, long argl, void *argp); \& typedef int CRYPTO_EX_dup(CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from, void *from_d, \& int idx, long argl, void *argp); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Several OpenSSL structures can have application specific data attached to them. This has several potential uses, it can be used to cache data associated with a structure (for example the hash of some part of the structure) or some additional data (for example a handle to the data in an external library). .PP Since the application data can be anything at all it is passed and retrieved as a \fBvoid *\fR type. .PP The \fB\f(BIRSA_get_ex_new_index()\fB\fR function is initially called to \*(L"register\*(R" some new application specific data. It takes three optional function pointers which are called when the parent structure (in this case an \s-1RSA\s0 structure) is initially created, when it is copied and when it is freed up. If any or all of these function pointer arguments are not used they should be set to \s-1NULL.\s0 The precise manner in which these function pointers are called is described in more detail below. \fB\f(BIRSA_get_ex_new_index()\fB\fR also takes additional long and pointer parameters which will be passed to the supplied functions but which otherwise have no special meaning. It returns an \fBindex\fR which should be stored (typically in a static variable) and passed used in the \fBidx\fR parameter in the remaining functions. Each successful call to \fB\f(BIRSA_get_ex_new_index()\fB\fR will return an index greater than any previously returned, this is important because the optional functions are called in order of increasing index value. .PP \&\fB\f(BIRSA_set_ex_data()\fB\fR is used to set application specific data, the data is supplied in the \fBarg\fR parameter and its precise meaning is up to the application. .PP \&\fB\f(BIRSA_get_ex_data()\fB\fR is used to retrieve application specific data. The data is returned to the application, this will be the same value as supplied to a previous \fB\f(BIRSA_set_ex_data()\fB\fR call. .PP \&\fB\f(BInew_func()\fB\fR is called when a structure is initially allocated (for example with \fB\f(BIRSA_new()\fB\fR. The parent structure members will not have any meaningful values at this point. This function will typically be used to allocate any application specific structure. .PP \&\fB\f(BIfree_func()\fB\fR is called when a structure is being freed up. The dynamic parent structure members should not be accessed because they will be freed up when this function is called. .PP \&\fB\f(BInew_func()\fB\fR and \fB\f(BIfree_func()\fB\fR take the same parameters. \fBparent\fR is a pointer to the parent \s-1RSA\s0 structure. \fBptr\fR is a the application specific data (this wont be of much use in \fB\f(BInew_func()\fB\fR. \fBad\fR is a pointer to the \&\fB\s-1CRYPTO_EX_DATA\s0\fR structure from the parent \s-1RSA\s0 structure: the functions \&\fB\f(BICRYPTO_get_ex_data()\fB\fR and \fB\f(BICRYPTO_set_ex_data()\fB\fR can be called to manipulate it. The \fBidx\fR parameter is the index: this will be the same value returned by \&\fB\f(BIRSA_get_ex_new_index()\fB\fR when the functions were initially registered. Finally the \fBargl\fR and \fBargp\fR parameters are the values originally passed to the same corresponding parameters when \fB\f(BIRSA_get_ex_new_index()\fB\fR was called. .PP \&\fB\f(BIdup_func()\fB\fR is called when a structure is being copied. Pointers to the destination and source \fB\s-1CRYPTO_EX_DATA\s0\fR structures are passed in the \fBto\fR and \&\fBfrom\fR parameters respectively. The \fBfrom_d\fR parameter is passed a pointer to the source application data when the function is called, when the function returns the value is copied to the destination: the application can thus modify the data pointed to by \fBfrom_d\fR and have different values in the source and destination. The \fBidx\fR, \fBargl\fR and \fBargp\fR parameters are the same as those in \fB\f(BInew_func()\fB\fR and \fB\f(BIfree_func()\fB\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fB\f(BIRSA_get_ex_new_index()\fB\fR returns a new index or \-1 on failure (note 0 is a valid index value). .PP \&\fB\f(BIRSA_set_ex_data()\fB\fR returns 1 on success or 0 on failure. .PP \&\fB\f(BIRSA_get_ex_data()\fB\fR returns the application data or 0 on failure. 0 may also be valid application data but currently it can only fail if given an invalid \fBidx\fR parameter. .PP \&\fB\f(BInew_func()\fB\fR and \fB\f(BIdup_func()\fB\fR should return 0 for failure and 1 for success. .PP On failure an error code can be obtained from \fIERR_get_error\fR\|(3). .SH "BUGS" .IX Header "BUGS" \&\fB\f(BIdup_func()\fB\fR is currently never called. .PP The return value of \fB\f(BInew_func()\fB\fR is ignored. .PP The \fB\f(BInew_func()\fB\fR function isn't very useful because no meaningful values are present in the parent \s-1RSA\s0 structure when it is called. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIrsa\fR\|(3), \fICRYPTO_set_ex_data\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIRSA_get_ex_new_index()\fR, \fIRSA_set_ex_data()\fR and \fIRSA_get_ex_data()\fR are available since SSLeay 0.9.0. man3/SSL_get_ex_data_X509_STORE_CTX_idx.3000064400000013451147210533270013546 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_get_ex_data_X509_STORE_CTX_idx 3" .TH SSL_get_ex_data_X509_STORE_CTX_idx 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_get_ex_data_X509_STORE_CTX_idx \- get ex_data index to access SSL structure from X509_STORE_CTX .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_get_ex_data_X509_STORE_CTX_idx(void); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_get_ex_data_X509_STORE_CTX_idx()\fR returns the index number under which the pointer to the \s-1SSL\s0 object is stored into the X509_STORE_CTX object. .SH "NOTES" .IX Header "NOTES" Whenever a X509_STORE_CTX object is created for the verification of the peers certificate during a handshake, a pointer to the \s-1SSL\s0 object is stored into the X509_STORE_CTX object to identify the connection affected. To retrieve this pointer the \fIX509_STORE_CTX_get_ex_data()\fR function can be used with the correct index. This index is globally the same for all X509_STORE_CTX objects and can be retrieved using \&\fISSL_get_ex_data_X509_STORE_CTX_idx()\fR. The index value is set when \&\fISSL_get_ex_data_X509_STORE_CTX_idx()\fR is first called either by the application program directly or indirectly during other \s-1SSL\s0 setup functions or during the handshake. .PP The value depends on other index values defined for X509_STORE_CTX objects before the \s-1SSL\s0 index is created. .SH "RETURN VALUES" .IX Header "RETURN VALUES" .IP ">=0" 4 .IX Item ">=0" The index value to access the pointer. .IP "<0" 4 .IX Item "<0" An error occurred, check the error stack for a detailed error message. .SH "EXAMPLES" .IX Header "EXAMPLES" The index returned from \fISSL_get_ex_data_X509_STORE_CTX_idx()\fR allows to access the \s-1SSL\s0 object for the connection to be accessed during the \&\fIverify_callback()\fR when checking the peers certificate. Please check the example in \fISSL_CTX_set_verify\fR\|(3), .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_CTX_set_verify\fR\|(3), \&\fICRYPTO_set_ex_data\fR\|(3) man3/DSA_set_method.3000064400000023656147210533270010330 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DSA_set_method 3" .TH DSA_set_method 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" DSA_set_default_method, DSA_get_default_method, DSA_set_method, DSA_new_method, DSA_OpenSSL \- select DSA method .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& #include \& #include \& \& void DSA_set_default_method(const DSA_METHOD *meth); \& \& const DSA_METHOD *DSA_get_default_method(void); \& \& int DSA_set_method(DSA *dsa, const DSA_METHOD *meth); \& \& DSA *DSA_new_method(ENGINE *engine); \& \& DSA_METHOD *DSA_OpenSSL(void); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" A \fB\s-1DSA_METHOD\s0\fR specifies the functions that OpenSSL uses for \s-1DSA\s0 operations. By modifying the method, alternative implementations such as hardware accelerators may be used. \s-1IMPORTANT:\s0 See the \s-1NOTES\s0 section for important information about how these \s-1DSA API\s0 functions are affected by the use of \fB\s-1ENGINE\s0\fR \s-1API\s0 calls. .PP Initially, the default \s-1DSA_METHOD\s0 is the OpenSSL internal implementation, as returned by \fIDSA_OpenSSL()\fR. .PP \&\fIDSA_set_default_method()\fR makes \fBmeth\fR the default method for all \s-1DSA\s0 structures created later. \fB\s-1NB\s0\fR: This is true only whilst no \s-1ENGINE\s0 has been set as a default for \s-1DSA,\s0 so this function is no longer recommended. .PP \&\fIDSA_get_default_method()\fR returns a pointer to the current default \&\s-1DSA_METHOD.\s0 However, the meaningfulness of this result is dependent on whether the \s-1ENGINE API\s0 is being used, so this function is no longer recommended. .PP \&\fIDSA_set_method()\fR selects \fBmeth\fR to perform all operations using the key \&\fBrsa\fR. This will replace the \s-1DSA_METHOD\s0 used by the \s-1DSA\s0 key and if the previous method was supplied by an \s-1ENGINE,\s0 the handle to that \s-1ENGINE\s0 will be released during the change. It is possible to have \s-1DSA\s0 keys that only work with certain \s-1DSA_METHOD\s0 implementations (eg. from an \s-1ENGINE\s0 module that supports embedded hardware-protected keys), and in such cases attempting to change the \s-1DSA_METHOD\s0 for the key can have unexpected results. .PP \&\fIDSA_new_method()\fR allocates and initializes a \s-1DSA\s0 structure so that \fBengine\fR will be used for the \s-1DSA\s0 operations. If \fBengine\fR is \s-1NULL,\s0 the default engine for \s-1DSA\s0 operations is used, and if no default \s-1ENGINE\s0 is set, the \s-1DSA_METHOD\s0 controlled by \fIDSA_set_default_method()\fR is used. .SH "THE DSA_METHOD STRUCTURE" .IX Header "THE DSA_METHOD STRUCTURE" struct { /* name of the implementation */ const char *name; .PP .Vb 3 \& /* sign */ \& DSA_SIG *(*dsa_do_sign)(const unsigned char *dgst, int dlen, \& DSA *dsa); \& \& /* pre\-compute k^\-1 and r */ \& int (*dsa_sign_setup)(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, \& BIGNUM **rp); \& \& /* verify */ \& int (*dsa_do_verify)(const unsigned char *dgst, int dgst_len, \& DSA_SIG *sig, DSA *dsa); \& \& /* compute rr = a1^p1 * a2^p2 mod m (May be NULL for some \& implementations) */ \& int (*dsa_mod_exp)(DSA *dsa, BIGNUM *rr, BIGNUM *a1, BIGNUM *p1, \& BIGNUM *a2, BIGNUM *p2, BIGNUM *m, \& BN_CTX *ctx, BN_MONT_CTX *in_mont); \& \& /* compute r = a ^ p mod m (May be NULL for some implementations) */ \& int (*bn_mod_exp)(DSA *dsa, BIGNUM *r, BIGNUM *a, \& const BIGNUM *p, const BIGNUM *m, \& BN_CTX *ctx, BN_MONT_CTX *m_ctx); \& \& /* called at DSA_new */ \& int (*init)(DSA *DSA); \& \& /* called at DSA_free */ \& int (*finish)(DSA *DSA); \& \& int flags; \& \& char *app_data; /* ?? */ \& \& } DSA_METHOD; .Ve .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIDSA_OpenSSL()\fR and \fIDSA_get_default_method()\fR return pointers to the respective \&\fB\s-1DSA_METHOD\s0\fRs. .PP \&\fIDSA_set_default_method()\fR returns no value. .PP \&\fIDSA_set_method()\fR returns non-zero if the provided \fBmeth\fR was successfully set as the method for \fBdsa\fR (including unloading the \s-1ENGINE\s0 handle if the previous method was supplied by an \s-1ENGINE\s0). .PP \&\fIDSA_new_method()\fR returns \s-1NULL\s0 and sets an error code that can be obtained by \fIERR_get_error\fR\|(3) if the allocation fails. Otherwise it returns a pointer to the newly allocated structure. .SH "NOTES" .IX Header "NOTES" As of version 0.9.7, \s-1DSA_METHOD\s0 implementations are grouped together with other algorithmic APIs (eg. \s-1RSA_METHOD, EVP_CIPHER,\s0 etc) in \fB\s-1ENGINE\s0\fR modules. If a default \s-1ENGINE\s0 is specified for \s-1DSA\s0 functionality using an \s-1ENGINE API\s0 function, that will override any \s-1DSA\s0 defaults set using the \s-1DSA API \s0(ie. \&\fIDSA_set_default_method()\fR). For this reason, the \s-1ENGINE API\s0 is the recommended way to control default implementations for use in \s-1DSA\s0 and other cryptographic algorithms. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdsa\fR\|(3), \fIDSA_new\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIDSA_set_default_method()\fR, \fIDSA_get_default_method()\fR, \fIDSA_set_method()\fR, \&\fIDSA_new_method()\fR and \fIDSA_OpenSSL()\fR were added in OpenSSL 0.9.4. .PP \&\fIDSA_set_default_openssl_method()\fR and \fIDSA_get_default_openssl_method()\fR replaced \&\fIDSA_set_default_method()\fR and \fIDSA_get_default_method()\fR respectively, and \&\fIDSA_set_method()\fR and \fIDSA_new_method()\fR were altered to use \fB\s-1ENGINE\s0\fRs rather than \&\fB\s-1DSA_METHOD\s0\fRs during development of the engine version of OpenSSL 0.9.6. For 0.9.7, the handling of defaults in the \s-1ENGINE API\s0 was restructured so that this change was reversed, and behaviour of the other functions resembled more closely the previous behaviour. The behaviour of defaults in the \s-1ENGINE API\s0 now transparently overrides the behaviour of defaults in the \s-1DSA API\s0 without requiring changing these function prototypes. man3/X509_NAME_ENTRY_get_object.3000064400000015464147210533270012117 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "X509_NAME_ENTRY_get_object 3" .TH X509_NAME_ENTRY_get_object 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" X509_NAME_ENTRY_get_object, X509_NAME_ENTRY_get_data, X509_NAME_ENTRY_set_object, X509_NAME_ENTRY_set_data, X509_NAME_ENTRY_create_by_txt, X509_NAME_ENTRY_create_by_NID, X509_NAME_ENTRY_create_by_OBJ \- X509_NAME_ENTRY utility functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& ASN1_OBJECT * X509_NAME_ENTRY_get_object(X509_NAME_ENTRY *ne); \& ASN1_STRING * X509_NAME_ENTRY_get_data(X509_NAME_ENTRY *ne); \& \& int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, ASN1_OBJECT *obj); \& int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type, const unsigned char *bytes, int len); \& \& X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne, const char *field, int type, const unsigned char *bytes, int len); \& X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid, int type,unsigned char *bytes, int len); \& X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne, ASN1_OBJECT *obj, int type, const unsigned char *bytes, int len); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIX509_NAME_ENTRY_get_object()\fR retrieves the field name of \fBne\fR in and \fB\s-1ASN1_OBJECT\s0\fR structure. .PP \&\fIX509_NAME_ENTRY_get_data()\fR retrieves the field value of \fBne\fR in and \fB\s-1ASN1_STRING\s0\fR structure. .PP \&\fIX509_NAME_ENTRY_set_object()\fR sets the field name of \fBne\fR to \fBobj\fR. .PP \&\fIX509_NAME_ENTRY_set_data()\fR sets the field value of \fBne\fR to string type \&\fBtype\fR and value determined by \fBbytes\fR and \fBlen\fR. .PP \&\fIX509_NAME_ENTRY_create_by_txt()\fR, \fIX509_NAME_ENTRY_create_by_NID()\fR and \fIX509_NAME_ENTRY_create_by_OBJ()\fR create and return an \&\fBX509_NAME_ENTRY\fR structure. .SH "NOTES" .IX Header "NOTES" \&\fIX509_NAME_ENTRY_get_object()\fR and \fIX509_NAME_ENTRY_get_data()\fR can be used to examine an \fBX509_NAME_ENTRY\fR function as returned by \&\fIX509_NAME_get_entry()\fR for example. .PP \&\fIX509_NAME_ENTRY_create_by_txt()\fR, \fIX509_NAME_ENTRY_create_by_OBJ()\fR, \&\fIX509_NAME_ENTRY_create_by_NID()\fR and \fIX509_NAME_ENTRY_set_data()\fR are seldom used in practice because \fBX509_NAME_ENTRY\fR structures are almost always part of \fBX509_NAME\fR structures and the corresponding \fBX509_NAME\fR functions are typically used to create and add new entries in a single operation. .PP The arguments of these functions support similar options to the similarly named ones of the corresponding \fBX509_NAME\fR functions such as \&\fIX509_NAME_add_entry_by_txt()\fR. So for example \fBtype\fR can be set to \&\fB\s-1MBSTRING_ASC\s0\fR but in the case of \fIX509_set_data()\fR the field name must be set first so the relevant field information can be looked up internally. .SH "RETURN VALUES" .IX Header "RETURN VALUES" .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fId2i_X509_NAME\fR\|(3), \&\fIOBJ_nid2obj\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1TBA\s0 man3/SSL_CTX_sess_set_get_cb.3000064400000017760147210533270012077 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_sess_set_get_cb 3" .TH SSL_CTX_sess_set_get_cb 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_sess_set_new_cb, SSL_CTX_sess_set_remove_cb, SSL_CTX_sess_set_get_cb, SSL_CTX_sess_get_new_cb, SSL_CTX_sess_get_remove_cb, SSL_CTX_sess_get_get_cb \- provide callback functions for server side external session caching .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void SSL_CTX_sess_set_new_cb(SSL_CTX *ctx, \& int (*new_session_cb)(SSL *, SSL_SESSION *)); \& void SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx, \& void (*remove_session_cb)(SSL_CTX *ctx, SSL_SESSION *)); \& void SSL_CTX_sess_set_get_cb(SSL_CTX *ctx, \& SSL_SESSION (*get_session_cb)(SSL *, unsigned char *, int, int *)); \& \& int (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx))(struct ssl_st *ssl, SSL_SESSION *sess); \& void (*SSL_CTX_sess_get_remove_cb(SSL_CTX *ctx))(struct ssl_ctx_st *ctx, SSL_SESSION *sess); \& SSL_SESSION *(*SSL_CTX_sess_get_get_cb(SSL_CTX *ctx))(struct ssl_st *ssl, unsigned char *data, int len, int *copy); \& \& int (*new_session_cb)(struct ssl_st *ssl, SSL_SESSION *sess); \& void (*remove_session_cb)(struct ssl_ctx_st *ctx, SSL_SESSION *sess); \& SSL_SESSION *(*get_session_cb)(struct ssl_st *ssl, unsigned char *data, \& int len, int *copy); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_sess_set_new_cb()\fR sets the callback function, which is automatically called whenever a new session was negotiated. .PP \&\fISSL_CTX_sess_set_remove_cb()\fR sets the callback function, which is automatically called whenever a session is removed by the \s-1SSL\s0 engine, because it is considered faulty or the session has become obsolete because of exceeding the timeout value. .PP \&\fISSL_CTX_sess_set_get_cb()\fR sets the callback function which is called, whenever a \s-1SSL/TLS\s0 client proposed to resume a session but the session could not be found in the internal session cache (see \&\fISSL_CTX_set_session_cache_mode\fR\|(3)). (\s-1SSL/TLS\s0 server only.) .PP \&\fISSL_CTX_sess_get_new_cb()\fR, \fISSL_CTX_sess_get_remove_cb()\fR, and \&\fISSL_CTX_sess_get_get_cb()\fR allow to retrieve the function pointers of the provided callback functions. If a callback function has not been set, the \s-1NULL\s0 pointer is returned. .SH "NOTES" .IX Header "NOTES" In order to allow external session caching, synchronization with the internal session cache is realized via callback functions. Inside these callback functions, session can be saved to disk or put into a database using the \&\fId2i_SSL_SESSION\fR\|(3) interface. .PP The \fInew_session_cb()\fR is called, whenever a new session has been negotiated and session caching is enabled (see \&\fISSL_CTX_set_session_cache_mode\fR\|(3)). The \fInew_session_cb()\fR is passed the \fBssl\fR connection and the ssl session \&\fBsess\fR. If the callback returns \fB0\fR, the session will be immediately removed again. .PP The \fIremove_session_cb()\fR is called, whenever the \s-1SSL\s0 engine removes a session from the internal cache. This happens when the session is removed because it is expired or when a connection was not shutdown cleanly. It also happens for all sessions in the internal session cache when \&\fISSL_CTX_free\fR\|(3) is called. The \fIremove_session_cb()\fR is passed the \fBctx\fR and the ssl session \fBsess\fR. It does not provide any feedback. .PP The \fIget_session_cb()\fR is only called on \s-1SSL/TLS\s0 servers with the session id proposed by the client. The \fIget_session_cb()\fR is always called, also when session caching was disabled. The \fIget_session_cb()\fR is passed the \&\fBssl\fR connection, the session id of length \fBlength\fR at the memory location \&\fBdata\fR. With the parameter \fBcopy\fR the callback can require the \&\s-1SSL\s0 engine to increment the reference count of the \s-1SSL_SESSION\s0 object, Normally the reference count is not incremented and therefore the session must not be explicitly freed with \&\fISSL_SESSION_free\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fId2i_SSL_SESSION\fR\|(3), \&\fISSL_CTX_set_session_cache_mode\fR\|(3), \&\fISSL_CTX_flush_sessions\fR\|(3), \&\fISSL_SESSION_free\fR\|(3), \&\fISSL_CTX_free\fR\|(3) man3/SSL_CTX_use_serverinfo.3000064400000013631147210533270011773 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_use_serverinfo 3" .TH SSL_CTX_use_serverinfo 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_use_serverinfo, SSL_CTX_use_serverinfo_file \- use serverinfo extension .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_CTX_use_serverinfo(SSL_CTX *ctx, const unsigned char *serverinfo, \& size_t serverinfo_length); \& \& int SSL_CTX_use_serverinfo_file(SSL_CTX *ctx, const char *file); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions load \*(L"serverinfo\*(R" \s-1TLS\s0 ServerHello Extensions into the \s-1SSL_CTX. A \s0\*(L"serverinfo\*(R" extension is returned in response to an empty ClientHello Extension. .PP \&\fISSL_CTX_use_serverinfo()\fR loads one or more serverinfo extensions from a byte array into \fBctx\fR. The extensions must be concatenated into a sequence of bytes. Each extension must consist of a 2\-byte Extension Type, a 2\-byte length, and then length bytes of extension_data. .PP \&\fISSL_CTX_use_serverinfo_file()\fR loads one or more serverinfo extensions from \&\fBfile\fR into \fBctx\fR. The extensions must be in \s-1PEM\s0 format. Each extension must consist of a 2\-byte Extension Type, a 2\-byte length, and then length bytes of extension_data. Each \s-1PEM\s0 extension name must begin with the phrase \&\*(L"\s-1BEGIN SERVERINFO FOR \*(R".\s0 .PP If more than one certificate (\s-1RSA/DSA\s0) is installed using \&\fISSL_CTX_use_certificate()\fR, the serverinfo extension will be loaded into the last certificate installed. If e.g. the last item was a \s-1RSA\s0 certificate, the loaded serverinfo extension data will be loaded for that certificate. To use the serverinfo extension for multiple certificates, \&\fISSL_CTX_use_serverinfo()\fR needs to be called multiple times, once \fBafter\fR each time a certificate is loaded. .SH "NOTES" .IX Header "NOTES" .SH "RETURN VALUES" .IX Header "RETURN VALUES" On success, the functions return 1. On failure, the functions return 0. Check out the error stack to find out the reason. .SH "SEE ALSO" .IX Header "SEE ALSO" .SH "HISTORY" .IX Header "HISTORY" man3/bn_internal.3000064400000035332147210533270007773 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "bn_internal 3" .TH bn_internal 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" bn_mul_words, bn_mul_add_words, bn_sqr_words, bn_div_words, bn_add_words, bn_sub_words, bn_mul_comba4, bn_mul_comba8, bn_sqr_comba4, bn_sqr_comba8, bn_cmp_words, bn_mul_normal, bn_mul_low_normal, bn_mul_recursive, bn_mul_part_recursive, bn_mul_low_recursive, bn_mul_high, bn_sqr_normal, bn_sqr_recursive, bn_expand, bn_wexpand, bn_expand2, bn_fix_top, bn_check_top, bn_print, bn_dump, bn_set_max, bn_set_high, bn_set_low \- BIGNUM library internal functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& BN_ULONG bn_mul_words(BN_ULONG *rp, BN_ULONG *ap, int num, BN_ULONG w); \& BN_ULONG bn_mul_add_words(BN_ULONG *rp, BN_ULONG *ap, int num, \& BN_ULONG w); \& void bn_sqr_words(BN_ULONG *rp, BN_ULONG *ap, int num); \& BN_ULONG bn_div_words(BN_ULONG h, BN_ULONG l, BN_ULONG d); \& BN_ULONG bn_add_words(BN_ULONG *rp, BN_ULONG *ap, BN_ULONG *bp, \& int num); \& BN_ULONG bn_sub_words(BN_ULONG *rp, BN_ULONG *ap, BN_ULONG *bp, \& int num); \& \& void bn_mul_comba4(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b); \& void bn_mul_comba8(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b); \& void bn_sqr_comba4(BN_ULONG *r, BN_ULONG *a); \& void bn_sqr_comba8(BN_ULONG *r, BN_ULONG *a); \& \& int bn_cmp_words(BN_ULONG *a, BN_ULONG *b, int n); \& \& void bn_mul_normal(BN_ULONG *r, BN_ULONG *a, int na, BN_ULONG *b, \& int nb); \& void bn_mul_low_normal(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n); \& void bn_mul_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, int n2, \& int dna,int dnb,BN_ULONG *tmp); \& void bn_mul_part_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, \& int n, int tna,int tnb, BN_ULONG *tmp); \& void bn_mul_low_recursive(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, \& int n2, BN_ULONG *tmp); \& void bn_mul_high(BN_ULONG *r, BN_ULONG *a, BN_ULONG *b, BN_ULONG *l, \& int n2, BN_ULONG *tmp); \& \& void bn_sqr_normal(BN_ULONG *r, BN_ULONG *a, int n, BN_ULONG *tmp); \& void bn_sqr_recursive(BN_ULONG *r, BN_ULONG *a, int n2, BN_ULONG *tmp); \& \& void mul(BN_ULONG r, BN_ULONG a, BN_ULONG w, BN_ULONG c); \& void mul_add(BN_ULONG r, BN_ULONG a, BN_ULONG w, BN_ULONG c); \& void sqr(BN_ULONG r0, BN_ULONG r1, BN_ULONG a); \& \& BIGNUM *bn_expand(BIGNUM *a, int bits); \& BIGNUM *bn_wexpand(BIGNUM *a, int n); \& BIGNUM *bn_expand2(BIGNUM *a, int n); \& void bn_fix_top(BIGNUM *a); \& \& void bn_check_top(BIGNUM *a); \& void bn_print(BIGNUM *a); \& void bn_dump(BN_ULONG *d, int n); \& void bn_set_max(BIGNUM *a); \& void bn_set_high(BIGNUM *r, BIGNUM *a, int n); \& void bn_set_low(BIGNUM *r, BIGNUM *a, int n); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This page documents the internal functions used by the OpenSSL \&\fB\s-1BIGNUM\s0\fR implementation. They are described here to facilitate debugging and extending the library. They are \fInot\fR to be used by applications. .SS "The \s-1BIGNUM\s0 structure" .IX Subsection "The BIGNUM structure" .Vb 1 \& typedef struct bignum_st BIGNUM; \& \& struct bignum_st \& { \& BN_ULONG *d; /* Pointer to an array of \*(AqBN_BITS2\*(Aq bit chunks. */ \& int top; /* Index of last used d +1. */ \& /* The next are internal book keeping for bn_expand. */ \& int dmax; /* Size of the d array. */ \& int neg; /* one if the number is negative */ \& int flags; \& }; .Ve .PP The integer value is stored in \fBd\fR, a \fImalloc()\fRed array of words (\fB\s-1BN_ULONG\s0\fR), least significant word first. A \fB\s-1BN_ULONG\s0\fR can be either 16, 32 or 64 bits in size, depending on the 'number of bits' (\fB\s-1BITS2\s0\fR) specified in \&\f(CW\*(C`openssl/bn.h\*(C'\fR. .PP \&\fBdmax\fR is the size of the \fBd\fR array that has been allocated. \fBtop\fR is the number of words being used, so for a value of 4, bn.d[0]=4 and bn.top=1. \fBneg\fR is 1 if the number is negative. When a \fB\s-1BIGNUM\s0\fR is \&\fB0\fR, the \fBd\fR field can be \fB\s-1NULL\s0\fR and \fBtop\fR == \fB0\fR. .PP \&\fBflags\fR is a bit field of flags which are defined in \f(CW\*(C`openssl/bn.h\*(C'\fR. The flags begin with \fB\s-1BN_FLG_\s0\fR. The macros BN_set_flags(b,n) and BN_get_flags(b,n) exist to enable or fetch flag(s) \fBn\fR from \fB\s-1BIGNUM\s0\fR structure \fBb\fR. .PP Various routines in this library require the use of temporary \&\fB\s-1BIGNUM\s0\fR variables during their execution. Since dynamic memory allocation to create \fB\s-1BIGNUM\s0\fRs is rather expensive when used in conjunction with repeated subroutine calls, the \fB\s-1BN_CTX\s0\fR structure is used. This structure contains \fB\s-1BN_CTX_NUM\s0\fR \fB\s-1BIGNUM\s0\fRs, see \&\fIBN_CTX_start\fR\|(3). .SS "Low-level arithmetic operations" .IX Subsection "Low-level arithmetic operations" These functions are implemented in C and for several platforms in assembly language: .PP bn_mul_words(\fBrp\fR, \fBap\fR, \fBnum\fR, \fBw\fR) operates on the \fBnum\fR word arrays \fBrp\fR and \fBap\fR. It computes \fBap\fR * \fBw\fR, places the result in \fBrp\fR, and returns the high word (carry). .PP bn_mul_add_words(\fBrp\fR, \fBap\fR, \fBnum\fR, \fBw\fR) operates on the \fBnum\fR word arrays \fBrp\fR and \fBap\fR. It computes \fBap\fR * \fBw\fR + \fBrp\fR, places the result in \fBrp\fR, and returns the high word (carry). .PP bn_sqr_words(\fBrp\fR, \fBap\fR, \fBn\fR) operates on the \fBnum\fR word array \&\fBap\fR and the 2*\fBnum\fR word array \fBap\fR. It computes \fBap\fR * \fBap\fR word-wise, and places the low and high bytes of the result in \fBrp\fR. .PP bn_div_words(\fBh\fR, \fBl\fR, \fBd\fR) divides the two word number (\fBh\fR,\fBl\fR) by \fBd\fR and returns the result. .PP bn_add_words(\fBrp\fR, \fBap\fR, \fBbp\fR, \fBnum\fR) operates on the \fBnum\fR word arrays \fBap\fR, \fBbp\fR and \fBrp\fR. It computes \fBap\fR + \fBbp\fR, places the result in \fBrp\fR, and returns the high word (carry). .PP bn_sub_words(\fBrp\fR, \fBap\fR, \fBbp\fR, \fBnum\fR) operates on the \fBnum\fR word arrays \fBap\fR, \fBbp\fR and \fBrp\fR. It computes \fBap\fR \- \fBbp\fR, places the result in \fBrp\fR, and returns the carry (1 if \fBbp\fR > \fBap\fR, 0 otherwise). .PP bn_mul_comba4(\fBr\fR, \fBa\fR, \fBb\fR) operates on the 4 word arrays \fBa\fR and \&\fBb\fR and the 8 word array \fBr\fR. It computes \fBa\fR*\fBb\fR and places the result in \fBr\fR. .PP bn_mul_comba8(\fBr\fR, \fBa\fR, \fBb\fR) operates on the 8 word arrays \fBa\fR and \&\fBb\fR and the 16 word array \fBr\fR. It computes \fBa\fR*\fBb\fR and places the result in \fBr\fR. .PP bn_sqr_comba4(\fBr\fR, \fBa\fR, \fBb\fR) operates on the 4 word arrays \fBa\fR and \&\fBb\fR and the 8 word array \fBr\fR. .PP bn_sqr_comba8(\fBr\fR, \fBa\fR, \fBb\fR) operates on the 8 word arrays \fBa\fR and \&\fBb\fR and the 16 word array \fBr\fR. .PP The following functions are implemented in C: .PP bn_cmp_words(\fBa\fR, \fBb\fR, \fBn\fR) operates on the \fBn\fR word arrays \fBa\fR and \fBb\fR. It returns 1, 0 and \-1 if \fBa\fR is greater than, equal and less than \fBb\fR. .PP bn_mul_normal(\fBr\fR, \fBa\fR, \fBna\fR, \fBb\fR, \fBnb\fR) operates on the \fBna\fR word array \fBa\fR, the \fBnb\fR word array \fBb\fR and the \fBna\fR+\fBnb\fR word array \fBr\fR. It computes \fBa\fR*\fBb\fR and places the result in \fBr\fR. .PP bn_mul_low_normal(\fBr\fR, \fBa\fR, \fBb\fR, \fBn\fR) operates on the \fBn\fR word arrays \fBr\fR, \fBa\fR and \fBb\fR. It computes the \fBn\fR low words of \&\fBa\fR*\fBb\fR and places the result in \fBr\fR. .PP bn_mul_recursive(\fBr\fR, \fBa\fR, \fBb\fR, \fBn2\fR, \fBdna\fR, \fBdnb\fR, \fBt\fR) operates on the word arrays \fBa\fR and \fBb\fR of length \fBn2\fR+\fBdna\fR and \fBn2\fR+\fBdnb\fR (\fBdna\fR and \fBdnb\fR are currently allowed to be 0 or negative) and the 2*\fBn2\fR word arrays \fBr\fR and \fBt\fR. \fBn2\fR must be a power of 2. It computes \&\fBa\fR*\fBb\fR and places the result in \fBr\fR. .PP bn_mul_part_recursive(\fBr\fR, \fBa\fR, \fBb\fR, \fBn\fR, \fBtna\fR, \fBtnb\fR, \fBtmp\fR) operates on the word arrays \fBa\fR and \fBb\fR of length \fBn\fR+\fBtna\fR and \&\fBn\fR+\fBtnb\fR and the 4*\fBn\fR word arrays \fBr\fR and \fBtmp\fR. .PP bn_mul_low_recursive(\fBr\fR, \fBa\fR, \fBb\fR, \fBn2\fR, \fBtmp\fR) operates on the \&\fBn2\fR word arrays \fBr\fR and \fBtmp\fR and the \fBn2\fR/2 word arrays \fBa\fR and \fBb\fR. .PP bn_mul_high(\fBr\fR, \fBa\fR, \fBb\fR, \fBl\fR, \fBn2\fR, \fBtmp\fR) operates on the \&\fBn2\fR word arrays \fBr\fR, \fBa\fR, \fBb\fR and \fBl\fR (?) and the 3*\fBn2\fR word array \fBtmp\fR. .PP \&\fIBN_mul()\fR calls \fIbn_mul_normal()\fR, or an optimized implementation if the factors have the same size: \fIbn_mul_comba8()\fR is used if they are 8 words long, \fIbn_mul_recursive()\fR if they are larger than \&\fB\s-1BN_MULL_SIZE_NORMAL\s0\fR and the size is an exact multiple of the word size, and \fIbn_mul_part_recursive()\fR for others that are larger than \&\fB\s-1BN_MULL_SIZE_NORMAL\s0\fR. .PP bn_sqr_normal(\fBr\fR, \fBa\fR, \fBn\fR, \fBtmp\fR) operates on the \fBn\fR word array \&\fBa\fR and the 2*\fBn\fR word arrays \fBtmp\fR and \fBr\fR. .PP The implementations use the following macros which, depending on the architecture, may use \*(L"long long\*(R" C operations or inline assembler. They are defined in \f(CW\*(C`bn_lcl.h\*(C'\fR. .PP mul(\fBr\fR, \fBa\fR, \fBw\fR, \fBc\fR) computes \fBw\fR*\fBa\fR+\fBc\fR and places the low word of the result in \fBr\fR and the high word in \fBc\fR. .PP mul_add(\fBr\fR, \fBa\fR, \fBw\fR, \fBc\fR) computes \fBw\fR*\fBa\fR+\fBr\fR+\fBc\fR and places the low word of the result in \fBr\fR and the high word in \fBc\fR. .PP sqr(\fBr0\fR, \fBr1\fR, \fBa\fR) computes \fBa\fR*\fBa\fR and places the low word of the result in \fBr0\fR and the high word in \fBr1\fR. .SS "Size changes" .IX Subsection "Size changes" \&\fIbn_expand()\fR ensures that \fBb\fR has enough space for a \fBbits\fR bit number. \fIbn_wexpand()\fR ensures that \fBb\fR has enough space for an \&\fBn\fR word number. If the number has to be expanded, both macros call \fIbn_expand2()\fR, which allocates a new \fBd\fR array and copies the data. They return \fB\s-1NULL\s0\fR on error, \fBb\fR otherwise. .PP The \fIbn_fix_top()\fR macro reduces \fBa\->top\fR to point to the most significant non-zero word plus one when \fBa\fR has shrunk. .SS "Debugging" .IX Subsection "Debugging" \&\fIbn_check_top()\fR verifies that \f(CW\*(C`((a)\->top >= 0 && (a)\->top <= (a)\->dmax)\*(C'\fR. A violation will cause the program to abort. .PP \&\fIbn_print()\fR prints \fBa\fR to stderr. \fIbn_dump()\fR prints \fBn\fR words at \fBd\fR (in reverse order, i.e. most significant word first) to stderr. .PP \&\fIbn_set_max()\fR makes \fBa\fR a static number with a \fBdmax\fR of its current size. This is used by \fIbn_set_low()\fR and \fIbn_set_high()\fR to make \fBr\fR a read-only \&\fB\s-1BIGNUM\s0\fR that contains the \fBn\fR low or high words of \fBa\fR. .PP If \fB\s-1BN_DEBUG\s0\fR is not defined, \fIbn_check_top()\fR, \fIbn_print()\fR, \fIbn_dump()\fR and \fIbn_set_max()\fR are defined as empty macros. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIbn\fR\|(3) man3/SSL_CONF_CTX_new.3000064400000011664147210533270010337 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CONF_CTX_new 3" .TH SSL_CONF_CTX_new 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CONF_CTX_new, SSL_CONF_CTX_free \- SSL configuration allocation functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& SSL_CONF_CTX *SSL_CONF_CTX_new(void); \& void SSL_CONF_CTX_free(SSL_CONF_CTX *cctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The function \fISSL_CONF_CTX_new()\fR allocates and initialises an \fB\s-1SSL_CONF_CTX\s0\fR structure for use with the \s-1SSL_CONF\s0 functions. .PP The function \fISSL_CONF_CTX_free()\fR frees up the context \fBcctx\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CONF_CTX_new()\fR returns either the newly allocated \fB\s-1SSL_CONF_CTX\s0\fR structure or \fB\s-1NULL\s0\fR if an error occurs. .PP \&\fISSL_CONF_CTX_free()\fR does not return a value. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_CONF_CTX_set_flags\fR\|(3), \&\fISSL_CONF_CTX_set_ssl_ctx\fR\|(3), \&\fISSL_CONF_CTX_set1_prefix\fR\|(3), \&\fISSL_CONF_cmd\fR\|(3), \&\fISSL_CONF_cmd_argv\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" These functions were first added to OpenSSL 1.0.2 man3/CMS_get0_RecipientInfos.3000064400000024256147210533270012045 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CMS_get0_RecipientInfos 3" .TH CMS_get0_RecipientInfos 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" CMS_get0_RecipientInfos, CMS_RecipientInfo_type, CMS_RecipientInfo_ktri_get0_signer_id,CMS_RecipientInfo_ktri_cert_cmp, CMS_RecipientInfo_set0_pkey, CMS_RecipientInfo_kekri_get0_id, CMS_RecipientInfo_kekri_id_cmp, CMS_RecipientInfo_set0_key, CMS_RecipientInfo_decrypt, CMS_RecipientInfo_encrypt \- CMS envelopedData RecipientInfo routines .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& STACK_OF(CMS_RecipientInfo) *CMS_get0_RecipientInfos(CMS_ContentInfo *cms); \& int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); \& \& int CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo *ri, ASN1_OCTET_STRING **keyid, X509_NAME **issuer, ASN1_INTEGER **sno); \& int CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert); \& int CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pkey); \& \& int CMS_RecipientInfo_kekri_get0_id(CMS_RecipientInfo *ri, X509_ALGOR **palg, ASN1_OCTET_STRING **pid, ASN1_GENERALIZEDTIME **pdate, ASN1_OBJECT **potherid, ASN1_TYPE **pothertype); \& int CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo *ri, const unsigned char *id, size_t idlen); \& int CMS_RecipientInfo_set0_key(CMS_RecipientInfo *ri, unsigned char *key, size_t keylen); \& \& int CMS_RecipientInfo_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri); \& int CMS_RecipientInfo_encrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The function \fICMS_get0_RecipientInfos()\fR returns all the CMS_RecipientInfo structures associated with a \s-1CMS\s0 EnvelopedData structure. .PP \&\fICMS_RecipientInfo_type()\fR returns the type of CMS_RecipientInfo structure \fBri\fR. It will currently return \s-1CMS_RECIPINFO_TRANS, CMS_RECIPINFO_AGREE, CMS_RECIPINFO_KEK, CMS_RECIPINFO_PASS,\s0 or \s-1CMS_RECIPINFO_OTHER.\s0 .PP \&\fICMS_RecipientInfo_ktri_get0_signer_id()\fR retrieves the certificate recipient identifier associated with a specific CMS_RecipientInfo structure \fBri\fR, which must be of type \s-1CMS_RECIPINFO_TRANS.\s0 Either the keyidentifier will be set in \&\fBkeyid\fR or \fBboth\fR issuer name and serial number in \fBissuer\fR and \fBsno\fR. .PP \&\fICMS_RecipientInfo_ktri_cert_cmp()\fR compares the certificate \fBcert\fR against the CMS_RecipientInfo structure \fBri\fR, which must be of type \s-1CMS_RECIPINFO_TRANS.\s0 It returns zero if the comparison is successful and non zero if not. .PP \&\fICMS_RecipientInfo_set0_pkey()\fR associates the private key \fBpkey\fR with the CMS_RecipientInfo structure \fBri\fR, which must be of type \&\s-1CMS_RECIPINFO_TRANS.\s0 .PP \&\fICMS_RecipientInfo_kekri_get0_id()\fR retrieves the key information from the CMS_RecipientInfo structure \fBri\fR which must be of type \s-1CMS_RECIPINFO_KEK. \s0 Any of the remaining parameters can be \s-1NULL\s0 if the application is not interested in the value of a field. Where a field is optional and absent \s-1NULL\s0 will be written to the corresponding parameter. The keyEncryptionAlgorithm field is written to \&\fBpalg\fR, the \fBkeyIdentifier\fR field is written to \fBpid\fR, the \fBdate\fR field if present is written to \fBpdate\fR, if the \fBother\fR field is present the components \&\fBkeyAttrId\fR and \fBkeyAttr\fR are written to parameters \fBpotherid\fR and \&\fBpothertype\fR. .PP \&\fICMS_RecipientInfo_kekri_id_cmp()\fR compares the \s-1ID\s0 in the \fBid\fR and \fBidlen\fR parameters against the \fBkeyIdentifier\fR CMS_RecipientInfo structure \fBri\fR, which must be of type \s-1CMS_RECIPINFO_KEK. \s0 It returns zero if the comparison is successful and non zero if not. .PP \&\fICMS_RecipientInfo_set0_key()\fR associates the symmetric key \fBkey\fR of length \&\fBkeylen\fR with the CMS_RecipientInfo structure \fBri\fR, which must be of type \&\s-1CMS_RECIPINFO_KEK.\s0 .PP \&\fICMS_RecipientInfo_decrypt()\fR attempts to decrypt CMS_RecipientInfo structure \&\fBri\fR in structure \fBcms\fR. A key must have been associated with the structure first. .PP \&\fICMS_RecipientInfo_encrypt()\fR attempts to encrypt CMS_RecipientInfo structure \&\fBri\fR in structure \fBcms\fR. A key must have been associated with the structure first and the content encryption key must be available: for example by a previous call to \fICMS_RecipientInfo_decrypt()\fR. .SH "NOTES" .IX Header "NOTES" The main purpose of these functions is to enable an application to lookup recipient keys using any appropriate technique when the simpler method of \fICMS_decrypt()\fR is not appropriate. .PP In typical usage and application will retrieve all CMS_RecipientInfo structures using \fICMS_get0_RecipientInfos()\fR and check the type of each using \&\fICMS_RecpientInfo_type()\fR. Depending on the type the CMS_RecipientInfo structure can be ignored or its key identifier data retrieved using an appropriate function. Then if the corresponding secret or private key can be obtained by any appropriate means it can then associated with the structure and \&\fICMS_RecpientInfo_decrypt()\fR called. If successful \fICMS_decrypt()\fR can be called with a \s-1NULL\s0 key to decrypt the enveloped content. .PP The \fICMS_RecipientInfo_encrypt()\fR can be used to add a new recipient to an existing enveloped data structure. Typically an application will first decrypt an appropriate CMS_RecipientInfo structure to make the content encrypt key available, it will then add a new recipient using a function such as \&\fICMS_add1_recipient_cert()\fR and finally encrypt the content encryption key using \fICMS_RecipientInfo_encrypt()\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fICMS_get0_RecipientInfos()\fR returns all CMS_RecipientInfo structures, or \s-1NULL\s0 if an error occurs. .PP \&\fICMS_RecipientInfo_ktri_get0_signer_id()\fR, \fICMS_RecipientInfo_set0_pkey()\fR, \&\fICMS_RecipientInfo_kekri_get0_id()\fR, \fICMS_RecipientInfo_set0_key()\fR and \&\fICMS_RecipientInfo_decrypt()\fR return 1 for success or 0 if an error occurs. \&\fICMS_RecipientInfo_encrypt()\fR return 1 for success or 0 if an error occurs. .PP \&\fICMS_RecipientInfo_ktri_cert_cmp()\fR and \fICMS_RecipientInfo_kekri_cmp()\fR return 0 for a successful comparison and non zero otherwise. .PP Any error can be obtained from \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fICMS_decrypt\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" These functions were first was added to OpenSSL 0.9.8 man3/BN_bn2bin.3000064400000017621147210533270007232 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BN_bn2bin 3" .TH BN_bn2bin 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BN_bn2bin, BN_bin2bn, BN_bn2hex, BN_bn2dec, BN_hex2bn, BN_dec2bn, BN_print, BN_print_fp, BN_bn2mpi, BN_mpi2bn \- format conversions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int BN_bn2bin(const BIGNUM *a, unsigned char *to); \& BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret); \& \& char *BN_bn2hex(const BIGNUM *a); \& char *BN_bn2dec(const BIGNUM *a); \& int BN_hex2bn(BIGNUM **a, const char *str); \& int BN_dec2bn(BIGNUM **a, const char *str); \& \& int BN_print(BIO *fp, const BIGNUM *a); \& int BN_print_fp(FILE *fp, const BIGNUM *a); \& \& int BN_bn2mpi(const BIGNUM *a, unsigned char *to); \& BIGNUM *BN_mpi2bn(unsigned char *s, int len, BIGNUM *ret); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBN_bn2bin()\fR converts the absolute value of \fBa\fR into big-endian form and stores it at \fBto\fR. \fBto\fR must point to BN_num_bytes(\fBa\fR) bytes of memory. .PP \&\fIBN_bin2bn()\fR converts the positive integer in big-endian form of length \&\fBlen\fR at \fBs\fR into a \fB\s-1BIGNUM\s0\fR and places it in \fBret\fR. If \fBret\fR is \&\s-1NULL,\s0 a new \fB\s-1BIGNUM\s0\fR is created. .PP \&\fIBN_bn2hex()\fR and \fIBN_bn2dec()\fR return printable strings containing the hexadecimal and decimal encoding of \fBa\fR respectively. For negative numbers, the string is prefaced with a leading '\-'. The string must be freed later using \fIOPENSSL_free()\fR. .PP \&\fIBN_hex2bn()\fR converts the string \fBstr\fR containing a hexadecimal number to a \fB\s-1BIGNUM\s0\fR and stores it in **\fBa\fR. If *\fBa\fR is \s-1NULL,\s0 a new \&\fB\s-1BIGNUM\s0\fR is created. If \fBa\fR is \s-1NULL,\s0 it only computes the number's length in hexadecimal digits. If the string starts with '\-', the number is negative. A \*(L"negative zero\*(R" is converted to zero. \&\fIBN_dec2bn()\fR is the same using the decimal system. .PP \&\fIBN_print()\fR and \fIBN_print_fp()\fR write the hexadecimal encoding of \fBa\fR, with a leading '\-' for negative numbers, to the \fB\s-1BIO\s0\fR or \fB\s-1FILE\s0\fR \&\fBfp\fR. .PP \&\fIBN_bn2mpi()\fR and \fIBN_mpi2bn()\fR convert \fB\s-1BIGNUM\s0\fRs from and to a format that consists of the number's length in bytes represented as a 4\-byte big-endian number, and the number itself in big-endian format, where the most significant bit signals a negative number (the representation of numbers with the \s-1MSB\s0 set is prefixed with null byte). .PP \&\fIBN_bn2mpi()\fR stores the representation of \fBa\fR at \fBto\fR, where \fBto\fR must be large enough to hold the result. The size can be determined by calling BN_bn2mpi(\fBa\fR, \s-1NULL\s0). .PP \&\fIBN_mpi2bn()\fR converts the \fBlen\fR bytes long representation at \fBs\fR to a \fB\s-1BIGNUM\s0\fR and stores it at \fBret\fR, or in a newly allocated \fB\s-1BIGNUM\s0\fR if \fBret\fR is \s-1NULL.\s0 .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBN_bn2bin()\fR returns the length of the big-endian number placed at \fBto\fR. \&\fIBN_bin2bn()\fR returns the \fB\s-1BIGNUM\s0\fR, \s-1NULL\s0 on error. .PP \&\fIBN_bn2hex()\fR and \fIBN_bn2dec()\fR return a null-terminated string, or \s-1NULL\s0 on error. \fIBN_hex2bn()\fR and \fIBN_dec2bn()\fR return the number of characters used in parsing, or 0 on error, in which case no new \fB\s-1BIGNUM\s0\fR will be created. .PP \&\fIBN_print_fp()\fR and \fIBN_print()\fR return 1 on success, 0 on write errors. .PP \&\fIBN_bn2mpi()\fR returns the length of the representation. \fIBN_mpi2bn()\fR returns the \fB\s-1BIGNUM\s0\fR, and \s-1NULL\s0 on error. .PP The error codes can be obtained by \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIbn\fR\|(3), \fIERR_get_error\fR\|(3), \fIBN_zero\fR\|(3), \&\fIASN1_INTEGER_to_BN\fR\|(3), \&\fIBN_num_bytes\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIBN_bn2bin()\fR, \fIBN_bin2bn()\fR, \fIBN_print_fp()\fR and \fIBN_print()\fR are available in all versions of SSLeay and OpenSSL. .PP \&\fIBN_bn2hex()\fR, \fIBN_bn2dec()\fR, \fIBN_hex2bn()\fR, \fIBN_dec2bn()\fR, \fIBN_bn2mpi()\fR and \&\fIBN_mpi2bn()\fR were added in SSLeay 0.9.0. man3/SSL_CTX_set_tlsext_status_cb.3000064400000017107147210533270013204 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_tlsext_status_cb 3" .TH SSL_CTX_set_tlsext_status_cb 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_tlsext_status_cb, SSL_CTX_set_tlsext_status_arg, SSL_set_tlsext_status_type, SSL_get_tlsext_status_ocsp_resp, SSL_set_tlsext_status_ocsp_resp \- OCSP Certificate Status Request functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& long SSL_CTX_set_tlsext_status_cb(SSL_CTX *ctx, \& int (*callback)(SSL *, void *)); \& long SSL_CTX_set_tlsext_status_arg(SSL_CTX *ctx, void *arg); \& \& long SSL_set_tlsext_status_type(SSL *s, int type); \& \& long SSL_get_tlsext_status_ocsp_resp(ssl, unsigned char **resp); \& long SSL_set_tlsext_status_ocsp_resp(ssl, unsigned char *resp, int len); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" A client application may request that a server send back an \s-1OCSP\s0 status response (also known as \s-1OCSP\s0 stapling). To do so the client should call the \&\fISSL_set_tlsext_status_type()\fR function prior to the start of the handshake. Currently the only supported type is \fBTLSEXT_STATUSTYPE_ocsp\fR. This value should be passed in the \fBtype\fR argument. The client should additionally provide a callback function to decide what to do with the returned \s-1OCSP\s0 response by calling \fISSL_CTX_set_tlsext_status_cb()\fR. The callback function should determine whether the returned \s-1OCSP\s0 response is acceptable or not. The callback will be passed as an argument the value previously set via a call to \&\fISSL_CTX_set_tlsext_status_arg()\fR. Note that the callback will not be called in the event of a handshake where session resumption occurs (because there are no Certificates exchanged in such a handshake). .PP The response returned by the server can be obtained via a call to \&\fISSL_get_tlsext_status_ocsp_resp()\fR. The value \fB*resp\fR will be updated to point to the \s-1OCSP\s0 response data and the return value will be the length of that data. Typically a callback would obtain an \s-1OCSP_RESPONSE\s0 object from this data via a call to the \fId2i_OCSP_RESPONSE()\fR function. If the server has not provided any response data then \fB*resp\fR will be \s-1NULL\s0 and the return value from \&\fISSL_get_tlsext_status_ocsp_resp()\fR will be \-1. .PP A server application must also call the \fISSL_CTX_set_tlsext_status_cb()\fR function if it wants to be able to provide clients with \s-1OCSP\s0 Certificate Status responses. Typically the server callback would obtain the server certificate that is being sent back to the client via a call to \fISSL_get_certificate()\fR; obtain the \s-1OCSP\s0 response to be sent back; and then set that response data by calling \fISSL_set_tlsext_status_ocsp_resp()\fR. A pointer to the response data should be provided in the \fBresp\fR argument, and the length of that data should be in the \fBlen\fR argument. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The callback when used on the client side should return a negative value on error; 0 if the response is not acceptable (in which case the handshake will fail) or a positive value if it is acceptable. .PP The callback when used on the server side should return with either \&\s-1SSL_TLSEXT_ERR_OK \s0(meaning that the \s-1OCSP\s0 response that has been set should be returned), \s-1SSL_TLSEXT_ERR_NOACK \s0(meaning that an \s-1OCSP\s0 response should not be returned) or \s-1SSL_TLSEXT_ERR_ALERT_FATAL \s0(meaning that a fatal error has occurred). .PP \&\fISSL_CTX_set_tlsext_status_cb()\fR, \fISSL_CTX_set_tlsext_status_arg()\fR, \&\fISSL_set_tlsext_status_type()\fR and \fISSL_set_tlsext_status_ocsp_resp()\fR return 0 on error or 1 on success. .PP \&\fISSL_get_tlsext_status_ocsp_resp()\fR returns the length of the \s-1OCSP\s0 response data or \-1 if there is no \s-1OCSP\s0 response data. man3/EVP_PKEY_cmp.3000064400000014321147210533270007614 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EVP_PKEY_cmp 3" .TH EVP_PKEY_cmp 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EVP_PKEY_copy_parameters, EVP_PKEY_missing_parameters, EVP_PKEY_cmp_parameters, EVP_PKEY_cmp \- public key parameter and comparison functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey); \& int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from); \& \& int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b); \& int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The function \fIEVP_PKEY_missing_parameters()\fR returns 1 if the public key parameters of \fBpkey\fR are missing and 0 if they are present or the algorithm doesn't use parameters. .PP The function \fIEVP_PKEY_copy_parameters()\fR copies the parameters from key \&\fBfrom\fR to key \fBto\fR. An error is returned if the parameters are missing in \&\fBfrom\fR or present in both \fBfrom\fR and \fBto\fR and mismatch. If the parameters in \fBfrom\fR and \fBto\fR are both present and match this function has no effect. .PP The function \fIEVP_PKEY_cmp_parameters()\fR compares the parameters of keys \&\fBa\fR and \fBb\fR. .PP The function \fIEVP_PKEY_cmp()\fR compares the public key components and paramters (if present) of keys \fBa\fR and \fBb\fR. .SH "NOTES" .IX Header "NOTES" The main purpose of the functions \fIEVP_PKEY_missing_parameters()\fR and \&\fIEVP_PKEY_copy_parameters()\fR is to handle public keys in certificates where the parameters are sometimes omitted from a public key if they are inherited from the \s-1CA\s0 that signed it. .PP Since OpenSSL private keys contain public key components too the function \&\fIEVP_PKEY_cmp()\fR can also be used to determine if a private key matches a public key. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The function \fIEVP_PKEY_missing_parameters()\fR returns 1 if the public key parameters of \fBpkey\fR are missing and 0 if they are present or the algorithm doesn't use parameters. .PP These functions \fIEVP_PKEY_copy_parameters()\fR returns 1 for success and 0 for failure. .PP The function \fIEVP_PKEY_cmp_parameters()\fR and \fIEVP_PKEY_cmp()\fR return 1 if the keys match, 0 if they don't match, \-1 if the key types are different and \&\-2 if the operation is not supported. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIEVP_PKEY_CTX_new\fR\|(3), \&\fIEVP_PKEY_keygen\fR\|(3) man3/DSA_SIG_new.3000064400000011613147210533270007456 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DSA_SIG_new 3" .TH DSA_SIG_new 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" DSA_SIG_new, DSA_SIG_free \- allocate and free DSA signature objects .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& DSA_SIG *DSA_SIG_new(void); \& \& void DSA_SIG_free(DSA_SIG *a); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIDSA_SIG_new()\fR allocates and initializes a \fB\s-1DSA_SIG\s0\fR structure. .PP \&\fIDSA_SIG_free()\fR frees the \fB\s-1DSA_SIG\s0\fR structure and its components. The values are erased before the memory is returned to the system. .SH "RETURN VALUES" .IX Header "RETURN VALUES" If the allocation fails, \fIDSA_SIG_new()\fR returns \fB\s-1NULL\s0\fR and sets an error code that can be obtained by \&\fIERR_get_error\fR\|(3). Otherwise it returns a pointer to the newly allocated structure. .PP \&\fIDSA_SIG_free()\fR returns no value. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdsa\fR\|(3), \fIERR_get_error\fR\|(3), \&\fIDSA_do_sign\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIDSA_SIG_new()\fR and \fIDSA_SIG_free()\fR were added in OpenSSL 0.9.3. man3/SSL_CTX_set_generate_session_id.3000064400000025007147210533270013621 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_generate_session_id 3" .TH SSL_CTX_set_generate_session_id 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_generate_session_id, SSL_set_generate_session_id, SSL_has_matching_session_id \- manipulate generation of SSL session IDs (server only) .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& typedef int (*GEN_SESSION_CB)(const SSL *ssl, unsigned char *id, \& unsigned int *id_len); \& \& int SSL_CTX_set_generate_session_id(SSL_CTX *ctx, GEN_SESSION_CB cb); \& int SSL_set_generate_session_id(SSL *ssl, GEN_SESSION_CB, cb); \& int SSL_has_matching_session_id(const SSL *ssl, const unsigned char *id, \& unsigned int id_len); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set_generate_session_id()\fR sets the callback function for generating new session ids for \s-1SSL/TLS\s0 sessions for \fBctx\fR to be \fBcb\fR. .PP \&\fISSL_set_generate_session_id()\fR sets the callback function for generating new session ids for \s-1SSL/TLS\s0 sessions for \fBssl\fR to be \fBcb\fR. .PP \&\fISSL_has_matching_session_id()\fR checks, whether a session with id \fBid\fR (of length \fBid_len\fR) is already contained in the internal session cache of the parent context of \fBssl\fR. .SH "NOTES" .IX Header "NOTES" When a new session is established between client and server, the server generates a session id. The session id is an arbitrary sequence of bytes. The length of the session id is 16 bytes for SSLv2 sessions and between 1 and 32 bytes for SSLv3/TLSv1. The session id is not security critical but must be unique for the server. Additionally, the session id is transmitted in the clear when reusing the session so it must not contain sensitive information. .PP Without a callback being set, an OpenSSL server will generate a unique session id from pseudo random numbers of the maximum possible length. Using the callback function, the session id can be changed to contain additional information like e.g. a host id in order to improve load balancing or external caching techniques. .PP The callback function receives a pointer to the memory location to put \&\fBid\fR into and a pointer to the maximum allowed length \fBid_len\fR. The buffer at location \fBid\fR is only guaranteed to have the size \fBid_len\fR. The callback is only allowed to generate a shorter id and reduce \fBid_len\fR; the callback \fBmust never\fR increase \fBid_len\fR or write to the location \&\fBid\fR exceeding the given limit. .PP If a SSLv2 session id is generated and \fBid_len\fR is reduced, it will be restored after the callback has finished and the session id will be padded with 0x00. It is not recommended to change the \fBid_len\fR for SSLv2 sessions. The callback can use the \fISSL_get_version\fR\|(3) function to check, whether the session is of type SSLv2. .PP The location \fBid\fR is filled with 0x00 before the callback is called, so the callback may only fill part of the possible length and leave \fBid_len\fR untouched while maintaining reproducibility. .PP Since the sessions must be distinguished, session ids must be unique. Without the callback a random number is used, so that the probability of generating the same session id is extremely small (2^128 possible ids for an SSLv2 session, 2^256 for SSLv3/TLSv1). In order to assure the uniqueness of the generated session id, the callback must call \&\fISSL_has_matching_session_id()\fR and generate another id if a conflict occurs. If an id conflict is not resolved, the handshake will fail. If the application codes e.g. a unique host id, a unique process number, and a unique sequence number into the session id, uniqueness could easily be achieved without randomness added (it should however be taken care that no confidential information is leaked this way). If the application can not guarantee uniqueness, it is recommended to use the maximum \fBid_len\fR and fill in the bytes not used to code special information with random data to avoid collisions. .PP \&\fISSL_has_matching_session_id()\fR will only query the internal session cache, not the external one. Since the session id is generated before the handshake is completed, it is not immediately added to the cache. If another thread is using the same internal session cache, a race condition can occur in that another thread generates the same session id. Collisions can also occur when using an external session cache, since the external cache is not tested with \fISSL_has_matching_session_id()\fR and the same race condition applies. .PP When calling \fISSL_has_matching_session_id()\fR for an SSLv2 session with reduced \fBid_len\fR, the match operation will be performed using the fixed length required and with a 0x00 padded id. .PP The callback must return 0 if it cannot generate a session id for whatever reason and return 1 on success. .SH "EXAMPLES" .IX Header "EXAMPLES" The callback function listed will generate a session id with the server id given, and will fill the rest with pseudo random bytes: .PP .Vb 1 \& const char session_id_prefix = "www\-18"; \& \& #define MAX_SESSION_ID_ATTEMPTS 10 \& static int generate_session_id(const SSL *ssl, unsigned char *id, \& unsigned int *id_len) \& { \& unsigned int count = 0; \& const char *version; \& \& version = SSL_get_version(ssl); \& if (!strcmp(version, "SSLv2")) \& /* we must not change id_len */; \& \& do { \& RAND_pseudo_bytes(id, *id_len); \& /* Prefix the session_id with the required prefix. NB: If our \& * prefix is too long, clip it \- but there will be worse effects \& * anyway, eg. the server could only possibly create 1 session \& * ID (ie. the prefix!) so all future session negotiations will \& * fail due to conflicts. */ \& memcpy(id, session_id_prefix, \& (strlen(session_id_prefix) < *id_len) ? \& strlen(session_id_prefix) : *id_len); \& } \& while(SSL_has_matching_session_id(ssl, id, *id_len) && \& (++count < MAX_SESSION_ID_ATTEMPTS)); \& if(count >= MAX_SESSION_ID_ATTEMPTS) \& return 0; \& return 1; \& } .Ve .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CTX_set_generate_session_id()\fR and \fISSL_set_generate_session_id()\fR always return 1. .PP \&\fISSL_has_matching_session_id()\fR returns 1 if another session with the same id is already in the cache. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_get_version\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fISSL_CTX_set_generate_session_id()\fR, \fISSL_set_generate_session_id()\fR and \fISSL_has_matching_session_id()\fR have been introduced in OpenSSL 0.9.7. man3/RAND_add.3000064400000015605147210533270007035 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RAND_add 3" .TH RAND_add 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" RAND_add, RAND_seed, RAND_status, RAND_event, RAND_screen \- add entropy to the PRNG .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void RAND_seed(const void *buf, int num); \& \& void RAND_add(const void *buf, int num, double entropy); \& \& int RAND_status(void); \& \& int RAND_event(UINT iMsg, WPARAM wParam, LPARAM lParam); \& void RAND_screen(void); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIRAND_add()\fR mixes the \fBnum\fR bytes at \fBbuf\fR into the \s-1PRNG\s0 state. Thus, if the data at \fBbuf\fR are unpredictable to an adversary, this increases the uncertainty about the state and makes the \s-1PRNG\s0 output less predictable. Suitable input comes from user interaction (random key presses, mouse movements) and certain hardware events. The \&\fBentropy\fR argument is (the lower bound of) an estimate of how much randomness is contained in \fBbuf\fR, measured in bytes. Details about sources of randomness and how to estimate their entropy can be found in the literature, e.g. \s-1RFC 1750.\s0 .PP \&\fIRAND_add()\fR may be called with sensitive data such as user entered passwords. The seed values cannot be recovered from the \s-1PRNG\s0 output. .PP OpenSSL makes sure that the \s-1PRNG\s0 state is unique for each thread. On systems that provide \f(CW\*(C`/dev/urandom\*(C'\fR, the randomness device is used to seed the \s-1PRNG\s0 transparently. However, on all other systems, the application is responsible for seeding the \s-1PRNG\s0 by calling \fIRAND_add()\fR, \&\fIRAND_egd\fR\|(3) or \fIRAND_load_file\fR\|(3). .PP \&\fIRAND_seed()\fR is equivalent to \fIRAND_add()\fR when \fBnum == entropy\fR. .PP \&\fIRAND_event()\fR collects the entropy from Windows events such as mouse movements and other user interaction. It should be called with the \&\fBiMsg\fR, \fBwParam\fR and \fBlParam\fR arguments of \fIall\fR messages sent to the window procedure. It will estimate the entropy contained in the event message (if any), and add it to the \s-1PRNG.\s0 The program can then process the messages as usual. .PP The \fIRAND_screen()\fR function is available for the convenience of Windows programmers. It adds the current contents of the screen to the \s-1PRNG.\s0 For applications that can catch Windows events, seeding the \s-1PRNG\s0 by calling \fIRAND_event()\fR is a significantly better source of randomness. It should be noted that both methods cannot be used on servers that run without user interaction. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIRAND_status()\fR and \fIRAND_event()\fR return 1 if the \s-1PRNG\s0 has been seeded with enough data, 0 otherwise. .PP The other functions do not return values. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIrand\fR\|(3), \fIRAND_egd\fR\|(3), \&\fIRAND_load_file\fR\|(3), \fIRAND_cleanup\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIRAND_seed()\fR and \fIRAND_screen()\fR are available in all versions of SSLeay and OpenSSL. \fIRAND_add()\fR and \fIRAND_status()\fR have been added in OpenSSL 0.9.5, \fIRAND_event()\fR in OpenSSL 0.9.5a. man3/d2i_PKCS8PrivateKey.3000064400000014216147210533270011070 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "d2i_PKCS8PrivateKey 3" .TH d2i_PKCS8PrivateKey 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" d2i_PKCS8PrivateKey_bio, d2i_PKCS8PrivateKey_fp, i2d_PKCS8PrivateKey_bio, i2d_PKCS8PrivateKey_fp, i2d_PKCS8PrivateKey_nid_bio, i2d_PKCS8PrivateKey_nid_fp \- PKCS#8 format private key functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u); \& EVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, void *u); \& \& int i2d_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc, \& char *kstr, int klen, \& pem_password_cb *cb, void *u); \& \& int i2d_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, \& char *kstr, int klen, \& pem_password_cb *cb, void *u); \& \& int i2d_PKCS8PrivateKey_nid_bio(BIO *bp, EVP_PKEY *x, int nid, \& char *kstr, int klen, \& pem_password_cb *cb, void *u); \& \& int i2d_PKCS8PrivateKey_nid_fp(FILE *fp, EVP_PKEY *x, int nid, \& char *kstr, int klen, \& pem_password_cb *cb, void *u); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The PKCS#8 functions encode and decode private keys in PKCS#8 format using both PKCS#5 v1.5 and PKCS#5 v2.0 password based encryption algorithms. .PP Other than the use of \s-1DER\s0 as opposed to \s-1PEM\s0 these functions are identical to the corresponding \fB\s-1PEM\s0\fR function as described in the \fIpem\fR\|(3) manual page. .SH "NOTES" .IX Header "NOTES" Before using these functions \fIOpenSSL_add_all_algorithms\fR\|(3) should be called to initialize the internal algorithm lookup tables otherwise errors about unknown algorithms will occur if an attempt is made to decrypt a private key. .PP These functions are currently the only way to store encrypted private keys using \s-1DER\s0 format. .PP Currently all the functions use BIOs or \s-1FILE\s0 pointers, there are no functions which work directly on memory: this can be readily worked around by converting the buffers to memory BIOs, see \fIBIO_s_mem\fR\|(3) for details. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIpem\fR\|(3) man3/ripemd.3000064400000013704147210533270006757 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ripemd 3" .TH ripemd 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" RIPEMD160, RIPEMD160_Init, RIPEMD160_Update, RIPEMD160_Final \- RIPEMD\-160 hash function .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& unsigned char *RIPEMD160(const unsigned char *d, unsigned long n, \& unsigned char *md); \& \& int RIPEMD160_Init(RIPEMD160_CTX *c); \& int RIPEMD160_Update(RIPEMD_CTX *c, const void *data, \& unsigned long len); \& int RIPEMD160_Final(unsigned char *md, RIPEMD160_CTX *c); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\s-1RIPEMD\-160\s0 is a cryptographic hash function with a 160 bit output. .PP \&\s-1\fIRIPEMD160\s0()\fR computes the \s-1RIPEMD\-160\s0 message digest of the \fBn\fR bytes at \fBd\fR and places it in \fBmd\fR (which must have space for \&\s-1RIPEMD160_DIGEST_LENGTH\s0 == 20 bytes of output). If \fBmd\fR is \s-1NULL,\s0 the digest is placed in a static array. .PP The following functions may be used if the message is not completely stored in memory: .PP \&\fIRIPEMD160_Init()\fR initializes a \fB\s-1RIPEMD160_CTX\s0\fR structure. .PP \&\fIRIPEMD160_Update()\fR can be called repeatedly with chunks of the message to be hashed (\fBlen\fR bytes at \fBdata\fR). .PP \&\fIRIPEMD160_Final()\fR places the message digest in \fBmd\fR, which must have space for \s-1RIPEMD160_DIGEST_LENGTH\s0 == 20 bytes of output, and erases the \fB\s-1RIPEMD160_CTX\s0\fR. .PP Applications should use the higher level functions \&\fIEVP_DigestInit\fR\|(3) etc. instead of calling the hash functions directly. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\s-1\fIRIPEMD160\s0()\fR returns a pointer to the hash value. .PP \&\fIRIPEMD160_Init()\fR, \fIRIPEMD160_Update()\fR and \fIRIPEMD160_Final()\fR return 1 for success, 0 otherwise. .SH "CONFORMING TO" .IX Header "CONFORMING TO" \&\s-1ISO/IEC 10118\-3 \s0(draft) (??) .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIsha\fR\|(3), \fIhmac\fR\|(3), \fIEVP_DigestInit\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1\fIRIPEMD160\s0()\fR, \fIRIPEMD160_Init()\fR, \fIRIPEMD160_Update()\fR and \&\fIRIPEMD160_Final()\fR are available since SSLeay 0.9.0. man3/mdc2.3000064400000013576147210533270006333 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "mdc2 3" .TH mdc2 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" MDC2, MDC2_Init, MDC2_Update, MDC2_Final \- MDC2 hash function .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& unsigned char *MDC2(const unsigned char *d, unsigned long n, \& unsigned char *md); \& \& int MDC2_Init(MDC2_CTX *c); \& int MDC2_Update(MDC2_CTX *c, const unsigned char *data, \& unsigned long len); \& int MDC2_Final(unsigned char *md, MDC2_CTX *c); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\s-1MDC2\s0 is a method to construct hash functions with 128 bit output from block ciphers. These functions are an implementation of \s-1MDC2\s0 with \&\s-1DES.\s0 .PP \&\s-1\fIMDC2\s0()\fR computes the \s-1MDC2\s0 message digest of the \fBn\fR bytes at \fBd\fR and places it in \fBmd\fR (which must have space for \&\s-1MDC2_DIGEST_LENGTH\s0 == 16 bytes of output). If \fBmd\fR is \s-1NULL,\s0 the digest is placed in a static array. .PP The following functions may be used if the message is not completely stored in memory: .PP \&\fIMDC2_Init()\fR initializes a \fB\s-1MDC2_CTX\s0\fR structure. .PP \&\fIMDC2_Update()\fR can be called repeatedly with chunks of the message to be hashed (\fBlen\fR bytes at \fBdata\fR). .PP \&\fIMDC2_Final()\fR places the message digest in \fBmd\fR, which must have space for \s-1MDC2_DIGEST_LENGTH\s0 == 16 bytes of output, and erases the \fB\s-1MDC2_CTX\s0\fR. .PP Applications should use the higher level functions \&\fIEVP_DigestInit\fR\|(3) etc. instead of calling the hash functions directly. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\s-1\fIMDC2\s0()\fR returns a pointer to the hash value. .PP \&\fIMDC2_Init()\fR, \fIMDC2_Update()\fR and \fIMDC2_Final()\fR return 1 for success, 0 otherwise. .SH "CONFORMING TO" .IX Header "CONFORMING TO" \&\s-1ISO/IEC 10118\-2,\s0 with \s-1DES\s0 .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIsha\fR\|(3), \fIEVP_DigestInit\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1\fIMDC2\s0()\fR, \fIMDC2_Init()\fR, \fIMDC2_Update()\fR and \fIMDC2_Final()\fR are available since SSLeay 0.8. man3/RSA_sign_ASN1_OCTET_STRING.3000064400000013367147210533270011757 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RSA_sign_ASN1_OCTET_STRING 3" .TH RSA_sign_ASN1_OCTET_STRING 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" RSA_sign_ASN1_OCTET_STRING, RSA_verify_ASN1_OCTET_STRING \- RSA signatures .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int RSA_sign_ASN1_OCTET_STRING(int dummy, unsigned char *m, \& unsigned int m_len, unsigned char *sigret, unsigned int *siglen, \& RSA *rsa); \& \& int RSA_verify_ASN1_OCTET_STRING(int dummy, unsigned char *m, \& unsigned int m_len, unsigned char *sigbuf, unsigned int siglen, \& RSA *rsa); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIRSA_sign_ASN1_OCTET_STRING()\fR signs the octet string \fBm\fR of size \&\fBm_len\fR using the private key \fBrsa\fR represented in \s-1DER\s0 using \s-1PKCS\s0 #1 padding. It stores the signature in \fBsigret\fR and the signature size in \fBsiglen\fR. \fBsigret\fR must point to \fBRSA_size(rsa)\fR bytes of memory. .PP \&\fBdummy\fR is ignored. .PP The random number generator must be seeded prior to calling \fIRSA_sign_ASN1_OCTET_STRING()\fR. .PP \&\fIRSA_verify_ASN1_OCTET_STRING()\fR verifies that the signature \fBsigbuf\fR of size \fBsiglen\fR is the \s-1DER\s0 representation of a given octet string \&\fBm\fR of size \fBm_len\fR. \fBdummy\fR is ignored. \fBrsa\fR is the signer's public key. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIRSA_sign_ASN1_OCTET_STRING()\fR returns 1 on success, 0 otherwise. \&\fIRSA_verify_ASN1_OCTET_STRING()\fR returns 1 on successful verification, 0 otherwise. .PP The error codes can be obtained by \fIERR_get_error\fR\|(3). .SH "BUGS" .IX Header "BUGS" These functions serve no recognizable purpose. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fIobjects\fR\|(3), \&\fIrand\fR\|(3), \fIrsa\fR\|(3), \fIRSA_sign\fR\|(3), \&\fIRSA_verify\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIRSA_sign_ASN1_OCTET_STRING()\fR and \fIRSA_verify_ASN1_OCTET_STRING()\fR were added in SSLeay 0.8. man3/BN_swap.3000064400000010337147210533270007027 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BN_swap 3" .TH BN_swap 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BN_swap \- exchange BIGNUMs .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void BN_swap(BIGNUM *a, BIGNUM *b); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBN_swap()\fR exchanges the values of \fIa\fR and \fIb\fR. .PP \&\fIbn\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" BN_swap was added in OpenSSL 0.9.7. man3/ASN1_STRING_length.3000064400000016034147210533270010627 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ASN1_STRING_length 3" .TH ASN1_STRING_length 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ASN1_STRING_dup, ASN1_STRING_cmp, ASN1_STRING_set, ASN1_STRING_length, ASN1_STRING_length_set, ASN1_STRING_type, ASN1_STRING_data, ASN1_STRING_to_UTF8 \- ASN1_STRING utility functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int ASN1_STRING_length(ASN1_STRING *x); \& unsigned char * ASN1_STRING_data(ASN1_STRING *x); \& \& ASN1_STRING * ASN1_STRING_dup(ASN1_STRING *a); \& \& int ASN1_STRING_cmp(ASN1_STRING *a, ASN1_STRING *b); \& \& int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len); \& \& int ASN1_STRING_type(ASN1_STRING *x); \& \& int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions allow an \fB\s-1ASN1_STRING\s0\fR structure to be manipulated. .PP \&\fIASN1_STRING_length()\fR returns the length of the content of \fBx\fR. .PP \&\fIASN1_STRING_data()\fR returns an internal pointer to the data of \fBx\fR. Since this is an internal pointer it should \fBnot\fR be freed or modified in any way. .PP \&\fIASN1_STRING_dup()\fR returns a copy of the structure \fBa\fR. .PP \&\fIASN1_STRING_cmp()\fR compares \fBa\fR and \fBb\fR returning 0 if the two are identical. The string types and content are compared. .PP \&\fIASN1_STRING_set()\fR sets the data of string \fBstr\fR to the buffer \&\fBdata\fR or length \fBlen\fR. The supplied data is copied. If \fBlen\fR is \-1 then the length is determined by strlen(data). .PP \&\fIASN1_STRING_type()\fR returns the type of \fBx\fR, using standard constants such as \fBV_ASN1_OCTET_STRING\fR. .PP \&\fIASN1_STRING_to_UTF8()\fR converts the string \fBin\fR to \s-1UTF8\s0 format, the converted data is allocated in a buffer in \fB*out\fR. The length of \&\fBout\fR is returned or a negative error code. The buffer \fB*out\fR should be free using \fIOPENSSL_free()\fR. .SH "NOTES" .IX Header "NOTES" Almost all \s-1ASN1\s0 types in OpenSSL are represented as an \fB\s-1ASN1_STRING\s0\fR structure. Other types such as \fB\s-1ASN1_OCTET_STRING\s0\fR are simply typedefed to \fB\s-1ASN1_STRING\s0\fR and the functions call the \fB\s-1ASN1_STRING\s0\fR equivalents. \&\fB\s-1ASN1_STRING\s0\fR is also used for some \fB\s-1CHOICE\s0\fR types which consist entirely of primitive string types such as \fBDirectoryString\fR and \&\fBTime\fR. .PP These functions should \fBnot\fR be used to examine or modify \fB\s-1ASN1_INTEGER\s0\fR or \fB\s-1ASN1_ENUMERATED\s0\fR types: the relevant \fB\s-1INTEGER\s0\fR or \fB\s-1ENUMERATED\s0\fR utility functions should be used instead. .PP In general it cannot be assumed that the data returned by \fIASN1_STRING_data()\fR is null terminated or does not contain embedded nulls. The actual format of the data will depend on the actual string type itself: for example for an IA5String the data will be \s-1ASCII,\s0 for a BMPString two bytes per character in big endian format, and for an UTF8String it will be in \s-1UTF8\s0 format. .PP Similar care should be take to ensure the data is in the correct format when calling \fIASN1_STRING_set()\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" man3/EVP_PKEY_CTX_new.3000064400000013270147210533270010346 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EVP_PKEY_CTX_new 3" .TH EVP_PKEY_CTX_new 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EVP_PKEY_CTX_new, EVP_PKEY_CTX_new_id, EVP_PKEY_CTX_dup, EVP_PKEY_CTX_free \- public key algorithm context functions. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e); \& EVP_PKEY_CTX *EVP_PKEY_CTX_new_id(int id, ENGINE *e); \& EVP_PKEY_CTX *EVP_PKEY_CTX_dup(EVP_PKEY_CTX *ctx); \& void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fIEVP_PKEY_CTX_new()\fR function allocates public key algorithm context using the algorithm specified in \fBpkey\fR and \s-1ENGINE \s0\fBe\fR. .PP The \fIEVP_PKEY_CTX_new_id()\fR function allocates public key algorithm context using the algorithm specified by \fBid\fR and \s-1ENGINE \s0\fBe\fR. It is normally used when no \fB\s-1EVP_PKEY\s0\fR structure is associated with the operations, for example during parameter generation of key genration for some algorithms. .PP \&\fIEVP_PKEY_CTX_dup()\fR duplicates the context \fBctx\fR. .PP \&\fIEVP_PKEY_CTX_free()\fR frees up the context \fBctx\fR. .SH "NOTES" .IX Header "NOTES" The \fB\s-1EVP_PKEY_CTX\s0\fR structure is an opaque public key algorithm context used by the OpenSSL high level public key \s-1API.\s0 Contexts \fB\s-1MUST NOT\s0\fR be shared between threads: that is it is not permissible to use the same context simultaneously in two threads. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIEVP_PKEY_CTX_new()\fR, \fIEVP_PKEY_CTX_new_id()\fR, \fIEVP_PKEY_CTX_dup()\fR returns either the newly allocated \fB\s-1EVP_PKEY_CTX\s0\fR structure of \fB\s-1NULL\s0\fR if an error occurred. .PP \&\fIEVP_PKEY_CTX_free()\fR does not return a value. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIEVP_PKEY_new\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" These functions were first added to OpenSSL 1.0.0. man3/SSL_pending.3000064400000012146147210533270007643 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_pending 3" .TH SSL_pending 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_pending \- obtain number of readable bytes buffered in an SSL object .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_pending(const SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_pending()\fR returns the number of bytes which are available inside \&\fBssl\fR for immediate read. .SH "NOTES" .IX Header "NOTES" Data are received in blocks from the peer. Therefore data can be buffered inside \fBssl\fR and are ready for immediate retrieval with \&\fISSL_read\fR\|(3). .SH "RETURN VALUES" .IX Header "RETURN VALUES" The number of bytes pending is returned. .SH "BUGS" .IX Header "BUGS" \&\fISSL_pending()\fR takes into account only bytes from the \s-1TLS/SSL\s0 record that is currently being processed (if any). If the \fB\s-1SSL\s0\fR object's \&\fIread_ahead\fR flag is set (see \&\fISSL_CTX_set_read_ahead\fR\|(3)), additional protocol bytes may have been read containing more \s-1TLS/SSL\s0 records; these are ignored by \&\fISSL_pending()\fR. .PP Up to OpenSSL 0.9.6, \fISSL_pending()\fR does not check if the record type of pending data is application data. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_read\fR\|(3), \&\fISSL_CTX_set_read_ahead\fR\|(3), \fIssl\fR\|(3) man3/X509_NAME_print_ex.3000064400000021704147210533270010653 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "X509_NAME_print_ex 3" .TH X509_NAME_print_ex 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" X509_NAME_print_ex, X509_NAME_print_ex_fp, X509_NAME_print, X509_NAME_oneline \- X509_NAME printing routines. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int X509_NAME_print_ex(BIO *out, X509_NAME *nm, int indent, unsigned long flags); \& int X509_NAME_print_ex_fp(FILE *fp, X509_NAME *nm, int indent, unsigned long flags); \& char * X509_NAME_oneline(X509_NAME *a,char *buf,int size); \& int X509_NAME_print(BIO *bp, X509_NAME *name, int obase); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIX509_NAME_print_ex()\fR prints a human readable version of \fBnm\fR to \s-1BIO \s0\fBout\fR. Each line (for multiline formats) is indented by \fBindent\fR spaces. The output format can be extensively customised by use of the \fBflags\fR parameter. .PP \&\fIX509_NAME_print_ex_fp()\fR is identical to \fIX509_NAME_print_ex()\fR except the output is written to \s-1FILE\s0 pointer \fBfp\fR. .PP \&\fIX509_NAME_oneline()\fR prints an \s-1ASCII\s0 version of \fBa\fR to \fBbuf\fR. If \fBbuf\fR is \fB\s-1NULL\s0\fR then a buffer is dynamically allocated and returned, and \&\fBsize\fR is ignored. Otherwise, at most \fBsize\fR bytes will be written, including the ending '\e0', and \fBbuf\fR is returned. .PP \&\fIX509_NAME_print()\fR prints out \fBname\fR to \fBbp\fR indenting each line by \fBobase\fR characters. Multiple lines are used if the output (including indent) exceeds 80 characters. .SH "NOTES" .IX Header "NOTES" The functions \fIX509_NAME_oneline()\fR and \fIX509_NAME_print()\fR are legacy functions which produce a non standard output form, they don't handle multi character fields and have various quirks and inconsistencies. Their use is strongly discouraged in new applications. .PP Although there are a large number of possible flags for most purposes \&\fB\s-1XN_FLAG_ONELINE\s0\fR, \fB\s-1XN_FLAG_MULTILINE\s0\fR or \fB\s-1XN_FLAG_RFC2253\s0\fR will suffice. As noted on the \fIASN1_STRING_print_ex\fR\|(3) manual page for \s-1UTF8\s0 terminals the \fB\s-1ASN1_STRFLGS_ESC_MSB\s0\fR should be unset: so for example \&\fB\s-1XN_FLAG_ONELINE &\s0 ~ASN1_STRFLGS_ESC_MSB\fR would be used. .PP The complete set of the flags supported by \fIX509_NAME_print_ex()\fR is listed below. .PP Several options can be ored together. .PP The options \fB\s-1XN_FLAG_SEP_COMMA_PLUS\s0\fR, \fB\s-1XN_FLAG_SEP_CPLUS_SPC\s0\fR, \&\fB\s-1XN_FLAG_SEP_SPLUS_SPC\s0\fR and \fB\s-1XN_FLAG_SEP_MULTILINE\s0\fR determine the field separators to use. Two distinct separators are used between distinct RelativeDistinguishedName components and separate values in the same \s-1RDN\s0 for a multi-valued \s-1RDN.\s0 Multi-valued RDNs are currently very rare so the second separator will hardly ever be used. .PP \&\fB\s-1XN_FLAG_SEP_COMMA_PLUS\s0\fR uses comma and plus as separators. \fB\s-1XN_FLAG_SEP_CPLUS_SPC\s0\fR uses comma and plus with spaces: this is more readable that plain comma and plus. \&\fB\s-1XN_FLAG_SEP_SPLUS_SPC\s0\fR uses spaced semicolon and plus. \fB\s-1XN_FLAG_SEP_MULTILINE\s0\fR uses spaced newline and plus respectively. .PP If \fB\s-1XN_FLAG_DN_REV\s0\fR is set the whole \s-1DN\s0 is printed in reversed order. .PP The fields \fB\s-1XN_FLAG_FN_SN\s0\fR, \fB\s-1XN_FLAG_FN_LN\s0\fR, \fB\s-1XN_FLAG_FN_OID\s0\fR, \&\fB\s-1XN_FLAG_FN_NONE\s0\fR determine how a field name is displayed. It will use the short name (e.g. \s-1CN\s0) the long name (e.g. commonName) always use \s-1OID\s0 numerical form (normally OIDs are only used if the field name is not recognised) and no field name respectively. .PP If \fB\s-1XN_FLAG_SPC_EQ\s0\fR is set then spaces will be placed around the '=' character separating field names and values. .PP If \fB\s-1XN_FLAG_DUMP_UNKNOWN_FIELDS\s0\fR is set then the encoding of unknown fields is printed instead of the values. .PP If \fB\s-1XN_FLAG_FN_ALIGN\s0\fR is set then field names are padded to 20 characters: this is only of use for multiline format. .PP Additionally all the options supported by \fIASN1_STRING_print_ex()\fR can be used to control how each field value is displayed. .PP In addition a number options can be set for commonly used formats. .PP \&\fB\s-1XN_FLAG_RFC2253\s0\fR sets options which produce an output compatible with \s-1RFC2253\s0 it is equivalent to: \fB\s-1ASN1_STRFLGS_RFC2253\s0 | \s-1XN_FLAG_SEP_COMMA_PLUS\s0 | \s-1XN_FLAG_DN_REV\s0 | \s-1XN_FLAG_FN_SN\s0 | \s-1XN_FLAG_DUMP_UNKNOWN_FIELDS\s0\fR .PP \&\fB\s-1XN_FLAG_ONELINE\s0\fR is a more readable one line format which is the same as: \fB\s-1ASN1_STRFLGS_RFC2253\s0 | \s-1ASN1_STRFLGS_ESC_QUOTE\s0 | \s-1XN_FLAG_SEP_CPLUS_SPC\s0 | \s-1XN_FLAG_SPC_EQ\s0 | \s-1XN_FLAG_FN_SN\s0\fR .PP \&\fB\s-1XN_FLAG_MULTILINE\s0\fR is a multiline format which is the same as: \fB\s-1ASN1_STRFLGS_ESC_CTRL\s0 | \s-1ASN1_STRFLGS_ESC_MSB\s0 | \s-1XN_FLAG_SEP_MULTILINE\s0 | \s-1XN_FLAG_SPC_EQ\s0 | \s-1XN_FLAG_FN_LN\s0 | \s-1XN_FLAG_FN_ALIGN\s0\fR .PP \&\fB\s-1XN_FLAG_COMPAT\s0\fR uses a format identical to \fIX509_NAME_print()\fR: in fact it calls \fIX509_NAME_print()\fR internally. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIASN1_STRING_print_ex\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1TBA\s0 man3/EVP_PKEY_decrypt.3000064400000015500147210533270010507 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EVP_PKEY_decrypt 3" .TH EVP_PKEY_decrypt 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EVP_PKEY_decrypt_init, EVP_PKEY_decrypt \- decrypt using a public key algorithm .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx); \& int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, \& unsigned char *out, size_t *outlen, \& const unsigned char *in, size_t inlen); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fIEVP_PKEY_decrypt_init()\fR function initializes a public key algorithm context using key \fBpkey\fR for a decryption operation. .PP The \fIEVP_PKEY_decrypt()\fR function performs a public key decryption operation using \fBctx\fR. The data to be decrypted is specified using the \fBin\fR and \&\fBinlen\fR parameters. If \fBout\fR is \fB\s-1NULL\s0\fR then the maximum size of the output buffer is written to the \fBoutlen\fR parameter. If \fBout\fR is not \fB\s-1NULL\s0\fR then before the call the \fBoutlen\fR parameter should contain the length of the \&\fBout\fR buffer, if the call is successful the decrypted data is written to \&\fBout\fR and the amount of data written to \fBoutlen\fR. .SH "NOTES" .IX Header "NOTES" After the call to \fIEVP_PKEY_decrypt_init()\fR algorithm specific control operations can be performed to set any appropriate parameters for the operation. .PP The function \fIEVP_PKEY_decrypt()\fR can be called more than once on the same context if several operations are performed using the same parameters. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIEVP_PKEY_decrypt_init()\fR and \fIEVP_PKEY_decrypt()\fR return 1 for success and 0 or a negative value for failure. In particular a return value of \-2 indicates the operation is not supported by the public key algorithm. .SH "EXAMPLE" .IX Header "EXAMPLE" Decrypt data using \s-1OAEP \s0(for \s-1RSA\s0 keys): .PP .Vb 2 \& #include \& #include \& \& EVP_PKEY_CTX *ctx; \& unsigned char *out, *in; \& size_t outlen, inlen; \& EVP_PKEY *key; \& /* NB: assumes key in, inlen are already set up \& * and that key is an RSA private key \& */ \& ctx = EVP_PKEY_CTX_new(key); \& if (!ctx) \& /* Error occurred */ \& if (EVP_PKEY_decrypt_init(ctx) <= 0) \& /* Error */ \& if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_OAEP_PADDING) <= 0) \& /* Error */ \& \& /* Determine buffer length */ \& if (EVP_PKEY_decrypt(ctx, NULL, &outlen, in, inlen) <= 0) \& /* Error */ \& \& out = OPENSSL_malloc(outlen); \& \& if (!out) \& /* malloc failure */ \& \& if (EVP_PKEY_decrypt(ctx, out, &outlen, in, inlen) <= 0) \& /* Error */ \& \& /* Decrypted data is outlen bytes written to buffer out */ .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIEVP_PKEY_CTX_new\fR\|(3), \&\fIEVP_PKEY_encrypt\fR\|(3), \&\fIEVP_PKEY_sign\fR\|(3), \&\fIEVP_PKEY_verify\fR\|(3), \&\fIEVP_PKEY_verify_recover\fR\|(3), \&\fIEVP_PKEY_derive\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" These functions were first added to OpenSSL 1.0.0. man3/SSL_CTX_set1_verify_cert_store.3000064400000016641147210533270013432 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set1_verify_cert_store 3" .TH SSL_CTX_set1_verify_cert_store 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set0_verify_cert_store, SSL_CTX_set1_verify_cert_store, SSL_CTX_set0_chain_cert_store, SSL_CTX_set1_chain_cert_store, SSL_set0_verify_cert_store, SSL_set1_verify_cert_store, SSL_set0_chain_cert_store, SSL_set1_chain_cert_store \- set certificate verification or chain store .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_CTX_set0_verify_cert_store(SSL_CTX *ctx, X509_STORE *st); \& int SSL_CTX_set1_verify_cert_store(SSL_CTX *ctx, X509_STORE *st); \& int SSL_CTX_set0_chain_cert_store(SSL_CTX *ctx, X509_STORE *st); \& int SSL_CTX_set1_chain_cert_store(SSL_CTX *ctx, X509_STORE *st); \& \& int SSL_set0_verify_cert_store(SSL *ctx, X509_STORE *st); \& int SSL_set1_verify_cert_store(SSL *ctx, X509_STORE *st); \& int SSL_set0_chain_cert_store(SSL *ctx, X509_STORE *st); \& int SSL_set1_chain_cert_store(SSL *ctx, X509_STORE *st); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set0_verify_cert_store()\fR and \fISSL_CTX_set1_verify_cert_store()\fR set the certificate store used for certificate verification to \fBst\fR. .PP \&\fISSL_CTX_set0_chain_cert_store()\fR and \fISSL_CTX_set1_chain_cert_store()\fR set the certificate store used for certificate chain building to \fBst\fR. .PP \&\fISSL_set0_verify_cert_store()\fR, \fISSL_set1_verify_cert_store()\fR, \&\fISSL_set0_chain_cert_store()\fR and \fISSL_set1_chain_cert_store()\fR are similar except they apply to \s-1SSL\s0 structure \fBssl\fR. .PP All these functions are implemented as macros. Those containing a \fB1\fR increment the reference count of the supplied store so it must be freed at some point after the operation. Those containing a \fB0\fR do not increment reference counts and the supplied store \fB\s-1MUST NOT\s0\fR be freed after the operation. .SH "NOTES" .IX Header "NOTES" The stores pointers associated with an \s-1SSL_CTX\s0 structure are copied to any \s-1SSL\s0 structures when \fISSL_new()\fR is called. As a result \s-1SSL\s0 structures will not be affected if the parent \s-1SSL_CTX\s0 store pointer is set to a new value. .PP The verification store is used to verify the certificate chain sent by the peer: that is an \s-1SSL/TLS\s0 client will use the verification store to verify the server's certificate chain and a \s-1SSL/TLS\s0 server will use it to verify any client certificate chain. .PP The chain store is used to build the certificate chain. .PP If the mode \fB\s-1SSL_MODE_NO_AUTO_CHAIN\s0\fR is set or a certificate chain is configured already (for example using the functions such as \&\fISSL_CTX_add1_chain_cert\fR\|(3) or \&\fISSL_CTX_add_extra_chain_cert\fR\|(3)) then automatic chain building is disabled. .PP If the mode \fB\s-1SSL_MODE_NO_AUTO_CHAIN\s0\fR is set then automatic chain building is disabled. .PP If the chain or the verification store is not set then the store associated with the parent \s-1SSL_CTX\s0 is used instead to retain compatibility with previous versions of OpenSSL. .SH "RETURN VALUES" .IX Header "RETURN VALUES" All these functions return 1 for success and 0 for failure. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_CTX_add_extra_chain_cert\fR\|(3) \&\fISSL_CTX_set0_chain\fR\|(3) \&\fISSL_CTX_set1_chain\fR\|(3) \&\fISSL_CTX_add0_chain_cert\fR\|(3) \&\fISSL_CTX_add1_chain_cert\fR\|(3) \&\fISSL_set0_chain\fR\|(3) \&\fISSL_set1_chain\fR\|(3) \&\fISSL_add0_chain_cert\fR\|(3) \&\fISSL_add1_chain_cert\fR\|(3) \&\fISSL_CTX_build_cert_chain\fR\|(3) \&\fISSL_build_cert_chain\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" These functions were first added to OpenSSL 1.0.2. man3/RSA_private_encrypt.3000064400000014216147210533270011421 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RSA_private_encrypt 3" .TH RSA_private_encrypt 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" RSA_private_encrypt, RSA_public_decrypt \- low level signature operations .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int RSA_private_encrypt(int flen, const unsigned char *from, \& unsigned char *to, RSA *rsa, int padding); \& \& int RSA_public_decrypt(int flen, const unsigned char *from, \& unsigned char *to, RSA *rsa, int padding); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions handle \s-1RSA\s0 signatures at a low level. .PP \&\fIRSA_private_encrypt()\fR signs the \fBflen\fR bytes at \fBfrom\fR (usually a message digest with an algorithm identifier) using the private key \&\fBrsa\fR and stores the signature in \fBto\fR. \fBto\fR must point to \&\fBRSA_size(rsa)\fR bytes of memory. .PP \&\fBpadding\fR denotes one of the following modes: .IP "\s-1RSA_PKCS1_PADDING\s0" 4 .IX Item "RSA_PKCS1_PADDING" \&\s-1PKCS\s0 #1 v1.5 padding. This function does not handle the \&\fBalgorithmIdentifier\fR specified in \s-1PKCS\s0 #1. When generating or verifying \s-1PKCS\s0 #1 signatures, \fIRSA_sign\fR\|(3) and \fIRSA_verify\fR\|(3) should be used. .IP "\s-1RSA_NO_PADDING\s0" 4 .IX Item "RSA_NO_PADDING" Raw \s-1RSA\s0 signature. This mode should \fIonly\fR be used to implement cryptographically sound padding modes in the application code. Signing user data directly with \s-1RSA\s0 is insecure. .PP \&\fIRSA_public_decrypt()\fR recovers the message digest from the \fBflen\fR bytes long signature at \fBfrom\fR using the signer's public key \&\fBrsa\fR. \fBto\fR must point to a memory section large enough to hold the message digest (which is smaller than \fBRSA_size(rsa) \- 11\fR). \fBpadding\fR is the padding mode that was used to sign the data. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIRSA_private_encrypt()\fR returns the size of the signature (i.e., RSA_size(rsa)). \fIRSA_public_decrypt()\fR returns the size of the recovered message digest. .PP On error, \-1 is returned; the error codes can be obtained by \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fIrsa\fR\|(3), \&\fIRSA_sign\fR\|(3), \fIRSA_verify\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" The \fBpadding\fR argument was added in SSLeay 0.8. \s-1RSA_NO_PADDING\s0 is available since SSLeay 0.9.0. man3/ASN1_STRING_new.3000064400000012040147210533270010130 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ASN1_STRING_new 3" .TH ASN1_STRING_new 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ASN1_STRING_new, ASN1_STRING_type_new, ASN1_STRING_free \- ASN1_STRING allocation functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& ASN1_STRING * ASN1_STRING_new(void); \& ASN1_STRING * ASN1_STRING_type_new(int type); \& void ASN1_STRING_free(ASN1_STRING *a); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIASN1_STRING_new()\fR returns an allocated \fB\s-1ASN1_STRING\s0\fR structure. Its type is undefined. .PP \&\fIASN1_STRING_type_new()\fR returns an allocated \fB\s-1ASN1_STRING\s0\fR structure of type \fBtype\fR. .PP \&\fIASN1_STRING_free()\fR frees up \fBa\fR. .SH "NOTES" .IX Header "NOTES" Other string types call the \fB\s-1ASN1_STRING\s0\fR functions. For example \&\fIASN1_OCTET_STRING_new()\fR calls ASN1_STRING_type(V_ASN1_OCTET_STRING). .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIASN1_STRING_new()\fR and \fIASN1_STRING_type_new()\fR return a valid \&\s-1ASN1_STRING\s0 structure or \fB\s-1NULL\s0\fR if an error occurred. .PP \&\fIASN1_STRING_free()\fR does not return a value. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1TBA\s0 man3/BN_set_bit.3000064400000014244147210533270007507 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BN_set_bit 3" .TH BN_set_bit 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BN_set_bit, BN_clear_bit, BN_is_bit_set, BN_mask_bits, BN_lshift, BN_lshift1, BN_rshift, BN_rshift1 \- bit operations on BIGNUMs .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int BN_set_bit(BIGNUM *a, int n); \& int BN_clear_bit(BIGNUM *a, int n); \& \& int BN_is_bit_set(const BIGNUM *a, int n); \& \& int BN_mask_bits(BIGNUM *a, int n); \& \& int BN_lshift(BIGNUM *r, const BIGNUM *a, int n); \& int BN_lshift1(BIGNUM *r, BIGNUM *a); \& \& int BN_rshift(BIGNUM *r, BIGNUM *a, int n); \& int BN_rshift1(BIGNUM *r, BIGNUM *a); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBN_set_bit()\fR sets bit \fBn\fR in \fBa\fR to 1 (\f(CW\*(C`a|=(1<>n)\*(C'\fR). An error occurs if \fBa\fR already is shorter than \fBn\fR bits. .PP \&\fIBN_lshift()\fR shifts \fBa\fR left by \fBn\fR bits and places the result in \&\fBr\fR (\f(CW\*(C`r=a*2^n\*(C'\fR). Note that \fBn\fR must be non-negative. \fIBN_lshift1()\fR shifts \&\fBa\fR left by one and places the result in \fBr\fR (\f(CW\*(C`r=2*a\*(C'\fR). .PP \&\fIBN_rshift()\fR shifts \fBa\fR right by \fBn\fR bits and places the result in \&\fBr\fR (\f(CW\*(C`r=a/2^n\*(C'\fR). Note that \fBn\fR must be non-negative. \fIBN_rshift1()\fR shifts \&\fBa\fR right by one and places the result in \fBr\fR (\f(CW\*(C`r=a/2\*(C'\fR). .PP For the shift functions, \fBr\fR and \fBa\fR may be the same variable. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBN_is_bit_set()\fR returns 1 if the bit is set, 0 otherwise. .PP All other functions return 1 for success, 0 on error. The error codes can be obtained by \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIbn\fR\|(3), \fIBN_num_bytes\fR\|(3), \fIBN_add\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIBN_set_bit()\fR, \fIBN_clear_bit()\fR, \fIBN_is_bit_set()\fR, \fIBN_mask_bits()\fR, \&\fIBN_lshift()\fR, \fIBN_lshift1()\fR, \fIBN_rshift()\fR, and \fIBN_rshift1()\fR are available in all versions of SSLeay and OpenSSL. man3/BIO_s_accept.3000064400000027304147210533270007752 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BIO_s_accept 3" .TH BIO_s_accept 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BIO_s_accept, BIO_set_accept_port, BIO_get_accept_port, BIO_new_accept, BIO_set_nbio_accept, BIO_set_accept_bios, BIO_set_bind_mode, BIO_get_bind_mode, BIO_do_accept \- accept BIO .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& BIO_METHOD *BIO_s_accept(void); \& \& long BIO_set_accept_port(BIO *b, char *name); \& char *BIO_get_accept_port(BIO *b); \& \& BIO *BIO_new_accept(char *host_port); \& \& long BIO_set_nbio_accept(BIO *b, int n); \& long BIO_set_accept_bios(BIO *b, char *bio); \& \& long BIO_set_bind_mode(BIO *b, long mode); \& long BIO_get_bind_mode(BIO *b, long dummy); \& \& #define BIO_BIND_NORMAL 0 \& #define BIO_BIND_REUSEADDR_IF_UNUSED 1 \& #define BIO_BIND_REUSEADDR 2 \& \& int BIO_do_accept(BIO *b); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBIO_s_accept()\fR returns the accept \s-1BIO\s0 method. This is a wrapper round the platform's \s-1TCP/IP\s0 socket accept routines. .PP Using accept BIOs, \s-1TCP/IP\s0 connections can be accepted and data transferred using only \s-1BIO\s0 routines. In this way any platform specific operations are hidden by the \s-1BIO\s0 abstraction. .PP Read and write operations on an accept \s-1BIO\s0 will perform I/O on the underlying connection. If no connection is established and the port (see below) is set up properly then the \s-1BIO\s0 waits for an incoming connection. .PP Accept BIOs support \fIBIO_puts()\fR but not \fIBIO_gets()\fR. .PP If the close flag is set on an accept \s-1BIO\s0 then any active connection on that chain is shutdown and the socket closed when the \s-1BIO\s0 is freed. .PP Calling \fIBIO_reset()\fR on a accept \s-1BIO\s0 will close any active connection and reset the \s-1BIO\s0 into a state where it awaits another incoming connection. .PP \&\fIBIO_get_fd()\fR and \fIBIO_set_fd()\fR can be called to retrieve or set the accept socket. See \fIBIO_s_fd\fR\|(3) .PP \&\fIBIO_set_accept_port()\fR uses the string \fBname\fR to set the accept port. The port is represented as a string of the form \*(L"host:port\*(R", where \*(L"host\*(R" is the interface to use and \*(L"port\*(R" is the port. The host can be can be \*(L"*\*(R" which is interpreted as meaning any interface; \*(L"port\*(R" has the same syntax as the port specified in \fIBIO_set_conn_port()\fR for connect BIOs, that is it can be a numerical port string or a string to lookup using \fIgetservbyname()\fR and a string table. .PP \&\fIBIO_new_accept()\fR combines \fIBIO_new()\fR and \fIBIO_set_accept_port()\fR into a single call: that is it creates a new accept \s-1BIO\s0 with port \&\fBhost_port\fR. .PP \&\fIBIO_set_nbio_accept()\fR sets the accept socket to blocking mode (the default) if \fBn\fR is 0 or non blocking mode if \fBn\fR is 1. .PP \&\fIBIO_set_accept_bios()\fR can be used to set a chain of BIOs which will be duplicated and prepended to the chain when an incoming connection is received. This is useful if, for example, a buffering or \s-1SSL BIO\s0 is required for each connection. The chain of BIOs must not be freed after this call, they will be automatically freed when the accept \s-1BIO\s0 is freed. .PP \&\fIBIO_set_bind_mode()\fR and \fIBIO_get_bind_mode()\fR set and retrieve the current bind mode. If \s-1BIO_BIND_NORMAL \s0(the default) is set then another socket cannot be bound to the same port. If \&\s-1BIO_BIND_REUSEADDR\s0 is set then other sockets can bind to the same port. If \s-1BIO_BIND_REUSEADDR_IF_UNUSED\s0 is set then and attempt is first made to use \s-1BIO_BIN_NORMAL,\s0 if this fails and the port is not in use then a second attempt is made using \s-1BIO_BIND_REUSEADDR.\s0 .PP \&\fIBIO_do_accept()\fR serves two functions. When it is first called, after the accept \s-1BIO\s0 has been setup, it will attempt to create the accept socket and bind an address to it. Second and subsequent calls to \fIBIO_do_accept()\fR will await an incoming connection, or request a retry in non blocking mode. .SH "NOTES" .IX Header "NOTES" When an accept \s-1BIO\s0 is at the end of a chain it will await an incoming connection before processing I/O calls. When an accept \&\s-1BIO\s0 is not at then end of a chain it passes I/O calls to the next \&\s-1BIO\s0 in the chain. .PP When a connection is established a new socket \s-1BIO\s0 is created for the connection and appended to the chain. That is the chain is now accept\->socket. This effectively means that attempting I/O on an initial accept socket will await an incoming connection then perform I/O on it. .PP If any additional BIOs have been set using \fIBIO_set_accept_bios()\fR then they are placed between the socket and the accept \s-1BIO,\s0 that is the chain will be accept\->otherbios\->socket. .PP If a server wishes to process multiple connections (as is normally the case) then the accept \s-1BIO\s0 must be made available for further incoming connections. This can be done by waiting for a connection and then calling: .PP .Vb 1 \& connection = BIO_pop(accept); .Ve .PP After this call \fBconnection\fR will contain a \s-1BIO\s0 for the recently established connection and \fBaccept\fR will now be a single \s-1BIO\s0 again which can be used to await further incoming connections. If no further connections will be accepted the \fBaccept\fR can be freed using \fIBIO_free()\fR. .PP If only a single connection will be processed it is possible to perform I/O using the accept \s-1BIO\s0 itself. This is often undesirable however because the accept \s-1BIO\s0 will still accept additional incoming connections. This can be resolved by using \fIBIO_pop()\fR (see above) and freeing up the accept \s-1BIO\s0 after the initial connection. .PP If the underlying accept socket is non-blocking and \fIBIO_do_accept()\fR is called to await an incoming connection it is possible for \&\fIBIO_should_io_special()\fR with the reason \s-1BIO_RR_ACCEPT.\s0 If this happens then it is an indication that an accept attempt would block: the application should take appropriate action to wait until the underlying socket has accepted a connection and retry the call. .PP \&\fIBIO_set_accept_port()\fR, \fIBIO_get_accept_port()\fR, \fIBIO_set_nbio_accept()\fR, \&\fIBIO_set_accept_bios()\fR, \fIBIO_set_bind_mode()\fR, \fIBIO_get_bind_mode()\fR and \&\fIBIO_do_accept()\fR are macros. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\s-1TBA\s0 .SH "EXAMPLE" .IX Header "EXAMPLE" This example accepts two connections on port 4444, sends messages down each and finally closes both down. .PP .Vb 3 \& BIO *abio, *cbio, *cbio2; \& ERR_load_crypto_strings(); \& abio = BIO_new_accept("4444"); \& \& /* First call to BIO_accept() sets up accept BIO */ \& if(BIO_do_accept(abio) <= 0) { \& fprintf(stderr, "Error setting up accept\en"); \& ERR_print_errors_fp(stderr); \& exit(0); \& } \& \& /* Wait for incoming connection */ \& if(BIO_do_accept(abio) <= 0) { \& fprintf(stderr, "Error accepting connection\en"); \& ERR_print_errors_fp(stderr); \& exit(0); \& } \& fprintf(stderr, "Connection 1 established\en"); \& /* Retrieve BIO for connection */ \& cbio = BIO_pop(abio); \& BIO_puts(cbio, "Connection 1: Sending out Data on initial connection\en"); \& fprintf(stderr, "Sent out data on connection 1\en"); \& /* Wait for another connection */ \& if(BIO_do_accept(abio) <= 0) { \& fprintf(stderr, "Error accepting connection\en"); \& ERR_print_errors_fp(stderr); \& exit(0); \& } \& fprintf(stderr, "Connection 2 established\en"); \& /* Close accept BIO to refuse further connections */ \& cbio2 = BIO_pop(abio); \& BIO_free(abio); \& BIO_puts(cbio2, "Connection 2: Sending out Data on second\en"); \& fprintf(stderr, "Sent out data on connection 2\en"); \& \& BIO_puts(cbio, "Connection 1: Second connection established\en"); \& /* Close the two established connections */ \& BIO_free(cbio); \& BIO_free(cbio2); .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\s-1TBA\s0 man3/CMS_verify_receipt.3000064400000012557147210533270011225 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CMS_verify_receipt 3" .TH CMS_verify_receipt 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" .Vb 1 \& CMS_verify_receipt \- verify a CMS signed receipt .Ve .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int CMS_verify_receipt(CMS_ContentInfo *rcms, CMS_ContentInfo *ocms, STACK_OF(X509) *certs, X509_STORE *store, unsigned int flags); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fICMS_verify_receipt()\fR verifies a \s-1CMS\s0 signed receipt. \fBrcms\fR is the signed receipt to verify. \fBocms\fR is the original SignedData structure containing the receipt request. \fBcerts\fR is a set of certificates in which to search for the signing certificate. \fBstore\fR is a trusted certificate store (used for chain verification). .PP \&\fBflags\fR is an optional set of flags, which can be used to modify the verify operation. .SH "NOTES" .IX Header "NOTES" This functions behaves in a similar way to \fICMS_verify()\fR except the flag values \&\fB\s-1CMS_DETACHED\s0\fR, \fB\s-1CMS_BINARY\s0\fR, \fB\s-1CMS_TEXT\s0\fR and \fB\s-1CMS_STREAM\s0\fR are not supported since they do not make sense in the context of signed receipts. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fICMS_verify_receipt()\fR returns 1 for a successful verification and zero if an error occurred. .PP The error can be obtained from \fIERR_get_error\fR\|(3) .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \&\fICMS_sign_receipt\fR\|(3), \&\fICMS_verify\fR\|(3), .SH "HISTORY" .IX Header "HISTORY" \&\fICMS_verify_receipt()\fR was added to OpenSSL 0.9.8 man3/X509_STORE_CTX_get_error.3000064400000046075147210533270011715 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "X509_STORE_CTX_get_error 3" .TH X509_STORE_CTX_get_error 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" X509_STORE_CTX_get_error, X509_STORE_CTX_set_error, X509_STORE_CTX_get_error_depth, X509_STORE_CTX_get_current_cert, X509_STORE_CTX_get1_chain, X509_verify_cert_error_string \- get or set certificate verification status information .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& #include \& #include \& \& int X509_STORE_CTX_get_error(X509_STORE_CTX *ctx); \& void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx,int s); \& int X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx); \& X509 * X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx); \& \& STACK_OF(X509) *X509_STORE_CTX_get1_chain(X509_STORE_CTX *ctx); \& \& const char *X509_verify_cert_error_string(long n); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions are typically called after \fIX509_verify_cert()\fR has indicated an error or in a verification callback to determine the nature of an error. .PP \&\fIX509_STORE_CTX_get_error()\fR returns the error code of \fBctx\fR, see the \fB\s-1ERROR CODES\s0\fR section for a full description of all error codes. .PP \&\fIX509_STORE_CTX_set_error()\fR sets the error code of \fBctx\fR to \fBs\fR. For example it might be used in a verification callback to set an error based on additional checks. .PP \&\fIX509_STORE_CTX_get_error_depth()\fR returns the \fBdepth\fR of the error. This is a non-negative integer representing where in the certificate chain the error occurred. If it is zero it occurred in the end entity certificate, one if it is the certificate which signed the end entity certificate and so on. .PP \&\fIX509_STORE_CTX_get_current_cert()\fR returns the certificate in \fBctx\fR which caused the error or \fB\s-1NULL\s0\fR if no certificate is relevant. .PP \&\fIX509_STORE_CTX_get1_chain()\fR returns a complete validate chain if a previous call to \fIX509_verify_cert()\fR is successful. If the call to \fIX509_verify_cert()\fR is \fBnot\fR successful the returned chain may be incomplete or invalid. The returned chain persists after the \fBctx\fR structure is freed, when it is no longer needed it should be free up using: .PP .Vb 1 \& sk_X509_pop_free(chain, X509_free); .Ve .PP \&\fIX509_verify_cert_error_string()\fR returns a human readable error string for verification error \fBn\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIX509_STORE_CTX_get_error()\fR returns \fBX509_V_OK\fR or an error code. .PP \&\fIX509_STORE_CTX_get_error_depth()\fR returns a non-negative error depth. .PP \&\fIX509_STORE_CTX_get_current_cert()\fR returns the cerificate which caused the error or \fB\s-1NULL\s0\fR if no certificate is relevant to the error. .PP \&\fIX509_verify_cert_error_string()\fR returns a human readable error string for verification error \fBn\fR. .SH "ERROR CODES" .IX Header "ERROR CODES" A list of error codes and messages is shown below. Some of the error codes are defined but currently never returned: these are described as \&\*(L"unused\*(R". .IP "\fBX509_V_OK: ok\fR" 4 .IX Item "X509_V_OK: ok" the operation was successful. .IP "\fBX509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: unable to get issuer certificate\fR" 4 .IX Item "X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: unable to get issuer certificate" the issuer certificate could not be found: this occurs if the issuer certificate of an untrusted certificate cannot be found. .IP "\fBX509_V_ERR_UNABLE_TO_GET_CRL: unable to get certificate \s-1CRL\s0\fR" 4 .IX Item "X509_V_ERR_UNABLE_TO_GET_CRL: unable to get certificate CRL" the \s-1CRL\s0 of a certificate could not be found. .IP "\fBX509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE: unable to decrypt certificate's signature\fR" 4 .IX Item "X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE: unable to decrypt certificate's signature" the certificate signature could not be decrypted. This means that the actual signature value could not be determined rather than it not matching the expected value, this is only meaningful for \s-1RSA\s0 keys. .IP "\fBX509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE: unable to decrypt \s-1CRL\s0's signature\fR" 4 .IX Item "X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE: unable to decrypt CRL's signature" the \s-1CRL\s0 signature could not be decrypted: this means that the actual signature value could not be determined rather than it not matching the expected value. Unused. .IP "\fBX509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY: unable to decode issuer public key\fR" 4 .IX Item "X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY: unable to decode issuer public key" the public key in the certificate SubjectPublicKeyInfo could not be read. .IP "\fBX509_V_ERR_CERT_SIGNATURE_FAILURE: certificate signature failure\fR" 4 .IX Item "X509_V_ERR_CERT_SIGNATURE_FAILURE: certificate signature failure" the signature of the certificate is invalid. .IP "\fBX509_V_ERR_CRL_SIGNATURE_FAILURE: \s-1CRL\s0 signature failure\fR" 4 .IX Item "X509_V_ERR_CRL_SIGNATURE_FAILURE: CRL signature failure" the signature of the certificate is invalid. .IP "\fBX509_V_ERR_CERT_NOT_YET_VALID: certificate is not yet valid\fR" 4 .IX Item "X509_V_ERR_CERT_NOT_YET_VALID: certificate is not yet valid" the certificate is not yet valid: the notBefore date is after the current time. .IP "\fBX509_V_ERR_CERT_HAS_EXPIRED: certificate has expired\fR" 4 .IX Item "X509_V_ERR_CERT_HAS_EXPIRED: certificate has expired" the certificate has expired: that is the notAfter date is before the current time. .IP "\fBX509_V_ERR_CRL_NOT_YET_VALID: \s-1CRL\s0 is not yet valid\fR" 4 .IX Item "X509_V_ERR_CRL_NOT_YET_VALID: CRL is not yet valid" the \s-1CRL\s0 is not yet valid. .IP "\fBX509_V_ERR_CRL_HAS_EXPIRED: \s-1CRL\s0 has expired\fR" 4 .IX Item "X509_V_ERR_CRL_HAS_EXPIRED: CRL has expired" the \s-1CRL\s0 has expired. .IP "\fBX509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD: format error in certificate's notBefore field\fR" 4 .IX Item "X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD: format error in certificate's notBefore field" the certificate notBefore field contains an invalid time. .IP "\fBX509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD: format error in certificate's notAfter field\fR" 4 .IX Item "X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD: format error in certificate's notAfter field" the certificate notAfter field contains an invalid time. .IP "\fBX509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD: format error in \s-1CRL\s0's lastUpdate field\fR" 4 .IX Item "X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD: format error in CRL's lastUpdate field" the \s-1CRL\s0 lastUpdate field contains an invalid time. .IP "\fBX509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD: format error in \s-1CRL\s0's nextUpdate field\fR" 4 .IX Item "X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD: format error in CRL's nextUpdate field" the \s-1CRL\s0 nextUpdate field contains an invalid time. .IP "\fBX509_V_ERR_OUT_OF_MEM: out of memory\fR" 4 .IX Item "X509_V_ERR_OUT_OF_MEM: out of memory" an error occurred trying to allocate memory. This should never happen. .IP "\fBX509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT: self signed certificate\fR" 4 .IX Item "X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT: self signed certificate" the passed certificate is self signed and the same certificate cannot be found in the list of trusted certificates. .IP "\fBX509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN: self signed certificate in certificate chain\fR" 4 .IX Item "X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN: self signed certificate in certificate chain" the certificate chain could be built up using the untrusted certificates but the root could not be found locally. .IP "\fBX509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY: unable to get local issuer certificate\fR" 4 .IX Item "X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY: unable to get local issuer certificate" the issuer certificate of a locally looked up certificate could not be found. This normally means the list of trusted certificates is not complete. .IP "\fBX509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE: unable to verify the first certificate\fR" 4 .IX Item "X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE: unable to verify the first certificate" no signatures could be verified because the chain contains only one certificate and it is not self signed. .IP "\fBX509_V_ERR_CERT_CHAIN_TOO_LONG: certificate chain too long\fR" 4 .IX Item "X509_V_ERR_CERT_CHAIN_TOO_LONG: certificate chain too long" the certificate chain length is greater than the supplied maximum depth. Unused. .IP "\fBX509_V_ERR_CERT_REVOKED: certificate revoked\fR" 4 .IX Item "X509_V_ERR_CERT_REVOKED: certificate revoked" the certificate has been revoked. .IP "\fBX509_V_ERR_INVALID_CA: invalid \s-1CA\s0 certificate\fR" 4 .IX Item "X509_V_ERR_INVALID_CA: invalid CA certificate" a \s-1CA\s0 certificate is invalid. Either it is not a \s-1CA\s0 or its extensions are not consistent with the supplied purpose. .IP "\fBX509_V_ERR_PATH_LENGTH_EXCEEDED: path length constraint exceeded\fR" 4 .IX Item "X509_V_ERR_PATH_LENGTH_EXCEEDED: path length constraint exceeded" the basicConstraints pathlength parameter has been exceeded. .IP "\fBX509_V_ERR_INVALID_PURPOSE: unsupported certificate purpose\fR" 4 .IX Item "X509_V_ERR_INVALID_PURPOSE: unsupported certificate purpose" the supplied certificate cannot be used for the specified purpose. .IP "\fBX509_V_ERR_CERT_UNTRUSTED: certificate not trusted\fR" 4 .IX Item "X509_V_ERR_CERT_UNTRUSTED: certificate not trusted" the root \s-1CA\s0 is not marked as trusted for the specified purpose. .IP "\fBX509_V_ERR_CERT_REJECTED: certificate rejected\fR" 4 .IX Item "X509_V_ERR_CERT_REJECTED: certificate rejected" the root \s-1CA\s0 is marked to reject the specified purpose. .IP "\fBX509_V_ERR_SUBJECT_ISSUER_MISMATCH: subject issuer mismatch\fR" 4 .IX Item "X509_V_ERR_SUBJECT_ISSUER_MISMATCH: subject issuer mismatch" the current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate. This is only set if issuer check debugging is enabled it is used for status notification and is \fBnot\fR in itself an error. .IP "\fBX509_V_ERR_AKID_SKID_MISMATCH: authority and subject key identifier mismatch\fR" 4 .IX Item "X509_V_ERR_AKID_SKID_MISMATCH: authority and subject key identifier mismatch" the current candidate issuer certificate was rejected because its subject key identifier was present and did not match the authority key identifier current certificate. This is only set if issuer check debugging is enabled it is used for status notification and is \fBnot\fR in itself an error. .IP "\fBX509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH: authority and issuer serial number mismatch\fR" 4 .IX Item "X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH: authority and issuer serial number mismatch" the current candidate issuer certificate was rejected because its issuer name and serial number was present and did not match the authority key identifier of the current certificate. This is only set if issuer check debugging is enabled it is used for status notification and is \fBnot\fR in itself an error. .IP "\fBX509_V_ERR_KEYUSAGE_NO_CERTSIGN:key usage does not include certificate signing\fR" 4 .IX Item "X509_V_ERR_KEYUSAGE_NO_CERTSIGN:key usage does not include certificate signing" the current candidate issuer certificate was rejected because its keyUsage extension does not permit certificate signing. This is only set if issuer check debugging is enabled it is used for status notification and is \fBnot\fR in itself an error. .IP "\fBX509_V_ERR_INVALID_EXTENSION: invalid or inconsistent certificate extension\fR" 4 .IX Item "X509_V_ERR_INVALID_EXTENSION: invalid or inconsistent certificate extension" A certificate extension had an invalid value (for example an incorrect encoding) or some value inconsistent with other extensions. .IP "\fBX509_V_ERR_INVALID_POLICY_EXTENSION: invalid or inconsistent certificate policy extension\fR" 4 .IX Item "X509_V_ERR_INVALID_POLICY_EXTENSION: invalid or inconsistent certificate policy extension" A certificate policies extension had an invalid value (for example an incorrect encoding) or some value inconsistent with other extensions. This error only occurs if policy processing is enabled. .IP "\fBX509_V_ERR_NO_EXPLICIT_POLICY: no explicit policy\fR" 4 .IX Item "X509_V_ERR_NO_EXPLICIT_POLICY: no explicit policy" The verification flags were set to require and explicit policy but none was present. .IP "\fBX509_V_ERR_DIFFERENT_CRL_SCOPE: Different \s-1CRL\s0 scope\fR" 4 .IX Item "X509_V_ERR_DIFFERENT_CRL_SCOPE: Different CRL scope" The only CRLs that could be found did not match the scope of the certificate. .IP "\fBX509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE: Unsupported extension feature\fR" 4 .IX Item "X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE: Unsupported extension feature" Some feature of a certificate extension is not supported. Unused. .IP "\fBX509_V_ERR_PERMITTED_VIOLATION: permitted subtree violation\fR" 4 .IX Item "X509_V_ERR_PERMITTED_VIOLATION: permitted subtree violation" A name constraint violation occurred in the permitted subtrees. .IP "\fBX509_V_ERR_EXCLUDED_VIOLATION: excluded subtree violation\fR" 4 .IX Item "X509_V_ERR_EXCLUDED_VIOLATION: excluded subtree violation" A name constraint violation occurred in the excluded subtrees. .IP "\fBX509_V_ERR_SUBTREE_MINMAX: name constraints minimum and maximum not supported\fR" 4 .IX Item "X509_V_ERR_SUBTREE_MINMAX: name constraints minimum and maximum not supported" A certificate name constraints extension included a minimum or maximum field: this is not supported. .IP "\fBX509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE: unsupported name constraint type\fR" 4 .IX Item "X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE: unsupported name constraint type" An unsupported name constraint type was encountered. OpenSSL currently only supports directory name, \s-1DNS\s0 name, email and \s-1URI\s0 types. .IP "\fBX509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX: unsupported or invalid name constraint syntax\fR" 4 .IX Item "X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX: unsupported or invalid name constraint syntax" The format of the name constraint is not recognised: for example an email address format of a form not mentioned in \s-1RFC3280.\s0 This could be caused by a garbage extension or some new feature not currently supported. .IP "\fBX509_V_ERR_CRL_PATH_VALIDATION_ERROR: \s-1CRL\s0 path validation error\fR" 4 .IX Item "X509_V_ERR_CRL_PATH_VALIDATION_ERROR: CRL path validation error" An error occurred when attempting to verify the \s-1CRL\s0 path. This error can only happen if extended \s-1CRL\s0 checking is enabled. .IP "\fBX509_V_ERR_APPLICATION_VERIFICATION: application verification failure\fR" 4 .IX Item "X509_V_ERR_APPLICATION_VERIFICATION: application verification failure" an application specific error. This will never be returned unless explicitly set by an application. .SH "NOTES" .IX Header "NOTES" The above functions should be used instead of directly referencing the fields in the \fBX509_VERIFY_CTX\fR structure. .PP In versions of OpenSSL before 1.0 the current certificate returned by \&\fIX509_STORE_CTX_get_current_cert()\fR was never \fB\s-1NULL\s0\fR. Applications should check the return value before printing out any debugging information relating to the current certificate. .PP If an unrecognised error code is passed to \fIX509_verify_cert_error_string()\fR the numerical value of the unknown code is returned in a static buffer. This is not thread safe but will never happen unless an invalid code is passed. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIX509_verify_cert\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1TBA\s0 man3/EVP_PKEY_new.3000064400000012047147210533270007631 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EVP_PKEY_new 3" .TH EVP_PKEY_new 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EVP_PKEY_new, EVP_PKEY_free \- private key allocation functions. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& EVP_PKEY *EVP_PKEY_new(void); \& void EVP_PKEY_free(EVP_PKEY *key); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fIEVP_PKEY_new()\fR function allocates an empty \fB\s-1EVP_PKEY\s0\fR structure which is used by OpenSSL to store private keys. .PP \&\fIEVP_PKEY_free()\fR frees up the private key \fBkey\fR. .SH "NOTES" .IX Header "NOTES" The \fB\s-1EVP_PKEY\s0\fR structure is used by various OpenSSL functions which require a general private key without reference to any particular algorithm. .PP The structure returned by \fIEVP_PKEY_new()\fR is empty. To add a private key to this empty structure the functions described in \&\fIEVP_PKEY_set1_RSA\fR\|(3) should be used. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIEVP_PKEY_new()\fR returns either the newly allocated \fB\s-1EVP_PKEY\s0\fR structure of \fB\s-1NULL\s0\fR if an error occurred. .PP \&\fIEVP_PKEY_free()\fR does not return a value. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIEVP_PKEY_set1_RSA\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1TBA\s0 man3/SSL_SESSION_get_ex_new_index.3000064400000014214147210533270012733 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_SESSION_get_ex_new_index 3" .TH SSL_SESSION_get_ex_new_index 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_SESSION_get_ex_new_index, SSL_SESSION_set_ex_data, SSL_SESSION_get_ex_data \- internal application specific data functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_SESSION_get_ex_new_index(long argl, void *argp, \& CRYPTO_EX_new *new_func, \& CRYPTO_EX_dup *dup_func, \& CRYPTO_EX_free *free_func); \& \& int SSL_SESSION_set_ex_data(SSL_SESSION *session, int idx, void *arg); \& \& void *SSL_SESSION_get_ex_data(const SSL_SESSION *session, int idx); \& \& typedef int new_func(void *parent, void *ptr, CRYPTO_EX_DATA *ad, \& int idx, long argl, void *argp); \& typedef void free_func(void *parent, void *ptr, CRYPTO_EX_DATA *ad, \& int idx, long argl, void *argp); \& typedef int dup_func(CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from, void *from_d, \& int idx, long argl, void *argp); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Several OpenSSL structures can have application specific data attached to them. These functions are used internally by OpenSSL to manipulate application specific data attached to a specific structure. .PP \&\fISSL_SESSION_get_ex_new_index()\fR is used to register a new index for application specific data. .PP \&\fISSL_SESSION_set_ex_data()\fR is used to store application data at \fBarg\fR for \fBidx\fR into the \fBsession\fR object. .PP \&\fISSL_SESSION_get_ex_data()\fR is used to retrieve the information for \fBidx\fR from \&\fBsession\fR. .PP A detailed description for the \fB*\f(BI_get_ex_new_index()\fB\fR functionality can be found in \fIRSA_get_ex_new_index\fR\|(3). The \fB*\f(BI_get_ex_data()\fB\fR and \fB*\f(BI_set_ex_data()\fB\fR functionality is described in \&\fICRYPTO_set_ex_data\fR\|(3). .SH "WARNINGS" .IX Header "WARNINGS" The application data is only maintained for sessions held in memory. The application data is not included when dumping the session with \&\fIi2d_SSL_SESSION()\fR (and all functions indirectly calling the dump functions like \fIPEM_write_SSL_SESSION()\fR and \fIPEM_write_bio_SSL_SESSION()\fR) and can therefore not be restored. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \&\fIRSA_get_ex_new_index\fR\|(3), \&\fICRYPTO_set_ex_data\fR\|(3) man3/SSL_COMP_add_compression_method.3000064400000015204147210533270013544 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_COMP_add_compression_method 3" .TH SSL_COMP_add_compression_method 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_COMP_add_compression_method, SSL_COMP_free_compression_methods \- handle SSL/TLS integrated compression methods .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm); \& \& +void SSL_COMP_free_compression_methods(void); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_COMP_add_compression_method()\fR adds the compression method \fBcm\fR with the identifier \fBid\fR to the list of available compression methods. This list is globally maintained for all \s-1SSL\s0 operations within this application. It cannot be set for specific \s-1SSL_CTX\s0 or \s-1SSL\s0 objects. .PP \&\fISSL_COMP_free_compression_methods()\fR frees the internal table of compression methods that were built internally, and possibly augmented by adding \fISSL_COMP_add_compression_method()\fR. .SH "NOTES" .IX Header "NOTES" The \s-1TLS\s0 standard (or SSLv3) allows the integration of compression methods into the communication. The \s-1TLS RFC\s0 does however not specify compression methods or their corresponding identifiers, so there is currently no compatible way to integrate compression with unknown peers. It is therefore currently not recommended to integrate compression into applications. Applications for non-public use may agree on certain compression methods. Using different compression methods with the same identifier will lead to connection failure. .PP An OpenSSL client speaking a protocol that allows compression (SSLv3, TLSv1) will unconditionally send the list of all compression methods enabled with \&\fISSL_COMP_add_compression_method()\fR to the server during the handshake. Unlike the mechanisms to set a cipher list, there is no method available to restrict the list of compression method on a per connection basis. .PP An OpenSSL server will match the identifiers listed by a client against its own compression methods and will unconditionally activate compression when a matching identifier is found. There is no way to restrict the list of compression methods supported on a per connection basis. .PP If enabled during compilation, the OpenSSL library will have the \&\fICOMP_zlib()\fR compression method available. .SH "WARNINGS" .IX Header "WARNINGS" Once the identities of the compression methods for the \s-1TLS\s0 protocol have been standardized, the compression \s-1API\s0 will most likely be changed. Using it in the current state is not recommended. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_COMP_add_compression_method()\fR may return the following values: .IP "0" 4 The operation succeeded. .IP "1" 4 .IX Item "1" The operation failed. Check the error queue to find out the reason. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3) man3/ERR_print_errors.3000064400000012603147210533270010734 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ERR_print_errors 3" .TH ERR_print_errors 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ERR_print_errors, ERR_print_errors_fp \- print error messages .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void ERR_print_errors(BIO *bp); \& void ERR_print_errors_fp(FILE *fp); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIERR_print_errors()\fR is a convenience function that prints the error strings for all errors that OpenSSL has recorded to \fBbp\fR, thus emptying the error queue. .PP \&\fIERR_print_errors_fp()\fR is the same, except that the output goes to a \&\fB\s-1FILE\s0\fR. .PP The error strings will have the following format: .PP .Vb 1 \& [pid]:error:[error code]:[library name]:[function name]:[reason string]:[file name]:[line]:[optional text message] .Ve .PP \&\fIerror code\fR is an 8 digit hexadecimal number. \fIlibrary name\fR, \&\fIfunction name\fR and \fIreason string\fR are \s-1ASCII\s0 text, as is \fIoptional text message\fR if one was set for the respective error code. .PP If there is no text string registered for the given error code, the error string will contain the numeric code. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIERR_print_errors()\fR and \fIERR_print_errors_fp()\fR return no values. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIerr\fR\|(3), \fIERR_error_string\fR\|(3), \&\fIERR_get_error\fR\|(3), \&\fIERR_load_crypto_strings\fR\|(3), \&\fISSL_load_error_strings\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIERR_print_errors()\fR and \fIERR_print_errors_fp()\fR are available in all versions of SSLeay and OpenSSL. man3/EC_GFp_simple_method.3000064400000015510147210533270011430 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EC_GFp_simple_method 3" .TH EC_GFp_simple_method 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EC_GFp_simple_method, EC_GFp_mont_method, EC_GFp_nist_method, EC_GFp_nistp224_method, EC_GFp_nistp256_method, EC_GFp_nistp521_method, EC_GF2m_simple_method, EC_METHOD_get_field_type \- Functions for obtaining EC_METHOD objects. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& const EC_METHOD *EC_GFp_simple_method(void); \& const EC_METHOD *EC_GFp_mont_method(void); \& const EC_METHOD *EC_GFp_nist_method(void); \& const EC_METHOD *EC_GFp_nistp224_method(void); \& const EC_METHOD *EC_GFp_nistp256_method(void); \& const EC_METHOD *EC_GFp_nistp521_method(void); \& \& const EC_METHOD *EC_GF2m_simple_method(void); \& \& int EC_METHOD_get_field_type(const EC_METHOD *meth); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The Elliptic Curve library provides a number of different implementations through a single common interface. When constructing a curve using EC_GROUP_new (see \fIEC_GROUP_new\fR\|(3)) an implementation method must be provided. The functions described here all return a const pointer to an \&\fB\s-1EC_METHOD\s0\fR structure that can be passed to \s-1EC_GROUP_NEW.\s0 It is important that the correct implementation type for the form of curve selected is used. .PP For F2^m curves there is only one implementation choice, i.e. EC_GF2_simple_method. .PP For Fp curves the lowest common denominator implementation is the EC_GFp_simple_method implementation. All other implementations are based on this one. EC_GFp_mont_method builds on EC_GFp_simple_method but adds the use of montgomery multiplication (see \fIBN_mod_mul_montgomery\fR\|(3)). EC_GFp_nist_method offers an implementation optimised for use with \s-1NIST\s0 recommended curves (\s-1NIST\s0 curves are available through EC_GROUP_new_by_curve_name as described in \fIEC_GROUP_new\fR\|(3)). .PP The functions EC_GFp_nistp224_method, EC_GFp_nistp256_method and EC_GFp_nistp521_method offer 64 bit optimised implementations for the \s-1NIST P224, P256\s0 and P521 curves respectively. Note, however, that these implementations are not available on all platforms. .PP EC_METHOD_get_field_type identifies what type of field the \s-1EC_METHOD\s0 structure supports, which will be either F2^m or Fp. If the field type is Fp then the value \fBNID_X9_62_prime_field\fR is returned. If the field type is F2^m then the value \fBNID_X9_62_characteristic_two_field\fR is returned. These values are defined in the obj_mac.h header file. .SH "RETURN VALUES" .IX Header "RETURN VALUES" All EC_GFp* functions and EC_GF2m_simple_method always return a const pointer to an \s-1EC_METHOD\s0 structure. .PP EC_METHOD_get_field_type returns an integer that identifies the type of field the \s-1EC_METHOD\s0 structure supports. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIcrypto\fR\|(3), \fIec\fR\|(3), \fIEC_GROUP_new\fR\|(3), \fIEC_GROUP_copy\fR\|(3), \&\fIEC_POINT_new\fR\|(3), \fIEC_POINT_add\fR\|(3), \fIEC_KEY_new\fR\|(3), \&\fId2i_ECPKParameters\fR\|(3), \&\fIBN_mod_mul_montgomery\fR\|(3) man3/ASN1_OBJECT_new.3000064400000012370147210533270010076 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ASN1_OBJECT_new 3" .TH ASN1_OBJECT_new 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ASN1_OBJECT_new, ASN1_OBJECT_free, \- object allocation functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& ASN1_OBJECT *ASN1_OBJECT_new(void); \& void ASN1_OBJECT_free(ASN1_OBJECT *a); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \s-1ASN1_OBJECT\s0 allocation routines, allocate and free an \&\s-1ASN1_OBJECT\s0 structure, which represents an \s-1ASN1 OBJECT IDENTIFIER.\s0 .PP \&\fIASN1_OBJECT_new()\fR allocates and initializes a \s-1ASN1_OBJECT\s0 structure. .PP \&\fIASN1_OBJECT_free()\fR frees up the \fB\s-1ASN1_OBJECT\s0\fR structure \fBa\fR. .SH "NOTES" .IX Header "NOTES" Although \fIASN1_OBJECT_new()\fR allocates a new \s-1ASN1_OBJECT\s0 structure it is almost never used in applications. The \s-1ASN1\s0 object utility functions such as \fIOBJ_nid2obj()\fR are used instead. .SH "RETURN VALUES" .IX Header "RETURN VALUES" If the allocation fails, \fIASN1_OBJECT_new()\fR returns \fB\s-1NULL\s0\fR and sets an error code that can be obtained by \fIERR_get_error\fR\|(3). Otherwise it returns a pointer to the newly allocated structure. .PP \&\fIASN1_OBJECT_free()\fR returns no value. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fId2i_ASN1_OBJECT\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIASN1_OBJECT_new()\fR and \fIASN1_OBJECT_free()\fR are available in all versions of SSLeay and OpenSSL. man3/SSL_CTX_set_ssl_version.3000064400000013110147210533270012146 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_ssl_version 3" .TH SSL_CTX_set_ssl_version 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_ssl_version, SSL_set_ssl_method, SSL_get_ssl_method \&\- choose a new TLS/SSL method .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_CTX_set_ssl_version(SSL_CTX *ctx, const SSL_METHOD *method); \& int SSL_set_ssl_method(SSL *s, const SSL_METHOD *method); \& const SSL_METHOD *SSL_get_ssl_method(SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set_ssl_version()\fR sets a new default \s-1TLS/SSL \s0\fBmethod\fR for \s-1SSL\s0 objects newly created from this \fBctx\fR. \s-1SSL\s0 objects already created with \&\fISSL_new\fR\|(3) are not affected, except when \&\fISSL_clear\fR\|(3) is being called. .PP \&\fISSL_set_ssl_method()\fR sets a new \s-1TLS/SSL \s0\fBmethod\fR for a particular \fBssl\fR object. It may be reset, when \fISSL_clear()\fR is called. .PP \&\fISSL_get_ssl_method()\fR returns a function pointer to the \s-1TLS/SSL\s0 method set in \fBssl\fR. .SH "NOTES" .IX Header "NOTES" The available \fBmethod\fR choices are described in \&\fISSL_CTX_new\fR\|(3). .PP When \fISSL_clear\fR\|(3) is called and no session is connected to an \s-1SSL\s0 object, the method of the \s-1SSL\s0 object is reset to the method currently set in the corresponding \s-1SSL_CTX\s0 object. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following return values can occur for \fISSL_CTX_set_ssl_version()\fR and \fISSL_set_ssl_method()\fR: .IP "0" 4 The new choice failed, check the error stack to find out the reason. .IP "1" 4 .IX Item "1" The operation succeeded. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_CTX_new\fR\|(3), \fISSL_new\fR\|(3), \&\fISSL_clear\fR\|(3), \fIssl\fR\|(3), \&\fISSL_set_connect_state\fR\|(3) man3/d2i_ASN1_OBJECT.3000064400000011040147210533270007754 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "d2i_ASN1_OBJECT 3" .TH d2i_ASN1_OBJECT 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" d2i_ASN1_OBJECT, i2d_ASN1_OBJECT \- ASN1 OBJECT IDENTIFIER functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& ASN1_OBJECT *d2i_ASN1_OBJECT(ASN1_OBJECT **a, unsigned char **pp, long length); \& int i2d_ASN1_OBJECT(ASN1_OBJECT *a, unsigned char **pp); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions decode and encode an \s-1ASN1 OBJECT IDENTIFIER.\s0 .PP Othewise these behave in a similar way to \fId2i_X509()\fR and \fIi2d_X509()\fR described in the \fId2i_X509\fR\|(3) manual page. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fId2i_X509\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1TBA\s0 man3/OpenSSL_add_all_algorithms.3000064400000014157147210533270012656 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "OpenSSL_add_all_algorithms 3" .TH OpenSSL_add_all_algorithms 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" OpenSSL_add_all_algorithms, OpenSSL_add_all_ciphers, OpenSSL_add_all_digests, EVP_cleanup \- add algorithms to internal table .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void OpenSSL_add_all_algorithms(void); \& void OpenSSL_add_all_ciphers(void); \& void OpenSSL_add_all_digests(void); \& \& void EVP_cleanup(void); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" OpenSSL keeps an internal table of digest algorithms and ciphers. It uses this table to lookup ciphers via functions such as \fIEVP_get_cipher_byname()\fR. .PP \&\fIOpenSSL_add_all_digests()\fR adds all digest algorithms to the table. .PP \&\fIOpenSSL_add_all_algorithms()\fR adds all algorithms to the table (digests and ciphers). .PP \&\fIOpenSSL_add_all_ciphers()\fR adds all encryption algorithms to the table including password based encryption algorithms. .PP \&\fIEVP_cleanup()\fR removes all ciphers and digests from the table. .SH "RETURN VALUES" .IX Header "RETURN VALUES" None of the functions return a value. .SH "NOTES" .IX Header "NOTES" A typical application will call \fIOpenSSL_add_all_algorithms()\fR initially and \&\fIEVP_cleanup()\fR before exiting. .PP An application does not need to add algorithms to use them explicitly, for example by \fIEVP_sha1()\fR. It just needs to add them if it (or any of the functions it calls) needs to lookup algorithms. .PP The cipher and digest lookup functions are used in many parts of the library. If the table is not initialized several functions will misbehave and complain they cannot find algorithms. This includes the \s-1PEM,\s0 PKCS#12, \s-1SSL\s0 and S/MIME libraries. This is a common query in the OpenSSL mailing lists. .PP Calling \fIOpenSSL_add_all_algorithms()\fR links in all algorithms: as a result a statically linked executable can be quite large. If this is important it is possible to just add the required ciphers and digests. .SH "BUGS" .IX Header "BUGS" Although the functions do not return error codes it is possible for them to fail. This will only happen as a result of a memory allocation failure so this is not too much of a problem in practice. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIevp\fR\|(3), \fIEVP_DigestInit\fR\|(3), \&\fIEVP_EncryptInit\fR\|(3) man3/EVP_DigestVerifyInit.3000064400000017261147210533270011443 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EVP_DigestVerifyInit 3" .TH EVP_DigestVerifyInit 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EVP_DigestVerifyInit, EVP_DigestVerifyUpdate, EVP_DigestVerifyFinal \- EVP signature verification functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, \& const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey); \& int EVP_DigestVerifyUpdate(EVP_MD_CTX *ctx, const void *d, size_t cnt); \& int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig, size_t siglen); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \s-1EVP\s0 signature routines are a high level interface to digital signatures. .PP \&\fIEVP_DigestVerifyInit()\fR sets up verification context \fBctx\fR to use digest \&\fBtype\fR from \s-1ENGINE \s0\fBimpl\fR and public key \fBpkey\fR. \fBctx\fR must be initialized with \fIEVP_MD_CTX_init()\fR before calling this function. If \fBpctx\fR is not \s-1NULL,\s0 the \&\s-1EVP_PKEY_CTX\s0 of the verification operation will be written to \fB*pctx\fR: this can be used to set alternative verification options. Note that any existing value in \fB*pctx\fR is overwritten. The \s-1EVP_PKEY_CTX\s0 value returned must not be freed directly by the application (it will be freed automatically when the \&\s-1EVP_MD_CTX\s0 is freed). .PP \&\fIEVP_DigestVerifyUpdate()\fR hashes \fBcnt\fR bytes of data at \fBd\fR into the verification context \fBctx\fR. This function can be called several times on the same \fBctx\fR to include additional data. This function is currently implemented using a macro. .PP \&\fIEVP_DigestVerifyFinal()\fR verifies the data in \fBctx\fR against the signature in \&\fBsig\fR of length \fBsiglen\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIEVP_DigestVerifyInit()\fR and \fIEVP_DigestVerifyUpdate()\fR return 1 for success and 0 or a negative value for failure. In particular a return value of \-2 indicates the operation is not supported by the public key algorithm. .PP \&\fIEVP_DigestVerifyFinal()\fR returns 1 for success; any other value indicates failure. A return value of zero indicates that the signature did not verify successfully (that is, tbs did not match the original data or the signature had an invalid form), while other values indicate a more serious error (and sometimes also indicate an invalid signature form). .PP The error codes can be obtained from \fIERR_get_error\fR\|(3). .SH "NOTES" .IX Header "NOTES" The \fB\s-1EVP\s0\fR interface to digital signatures should almost always be used in preference to the low level interfaces. This is because the code then becomes transparent to the algorithm used and much more flexible. .PP In previous versions of OpenSSL there was a link between message digest types and public key algorithms. This meant that \*(L"clone\*(R" digests such as \fIEVP_dss1()\fR needed to be used to sign using \s-1SHA1\s0 and \s-1DSA.\s0 This is no longer necessary and the use of clone digest is now discouraged. .PP For some key types and parameters the random number generator must be seeded or the operation will fail. .PP The call to \fIEVP_DigestVerifyFinal()\fR internally finalizes a copy of the digest context. This means that \fIEVP_VerifyUpdate()\fR and \fIEVP_VerifyFinal()\fR can be called later to digest and verify additional data. .PP Since only a copy of the digest context is ever finalized the context must be cleaned up after use by calling \fIEVP_MD_CTX_cleanup()\fR or a memory leak will occur. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIEVP_DigestSignInit\fR\|(3), \&\fIEVP_DigestInit\fR\|(3), \fIerr\fR\|(3), \&\fIevp\fR\|(3), \fIhmac\fR\|(3), \fImd2\fR\|(3), \&\fImd5\fR\|(3), \fImdc2\fR\|(3), \fIripemd\fR\|(3), \&\fIsha\fR\|(3), \fIdgst\fR\|(1) .SH "HISTORY" .IX Header "HISTORY" \&\fIEVP_DigestVerifyInit()\fR, \fIEVP_DigestVerifyUpdate()\fR and \fIEVP_DigestVerifyFinal()\fR were first added to OpenSSL 1.0.0. man3/EVP_PKEY_verify.3000064400000015616147210533270010351 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EVP_PKEY_verify 3" .TH EVP_PKEY_verify 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EVP_PKEY_verify_init, EVP_PKEY_verify \- signature verification using a public key algorithm .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx); \& int EVP_PKEY_verify(EVP_PKEY_CTX *ctx, \& const unsigned char *sig, size_t siglen, \& const unsigned char *tbs, size_t tbslen); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fIEVP_PKEY_verify_init()\fR function initializes a public key algorithm context using key \fBpkey\fR for a signature verification operation. .PP The \fIEVP_PKEY_verify()\fR function performs a public key verification operation using \fBctx\fR. The signature is specified using the \fBsig\fR and \&\fBsiglen\fR parameters. The verified data (i.e. the data believed originally signed) is specified using the \fBtbs\fR and \fBtbslen\fR parameters. .SH "NOTES" .IX Header "NOTES" After the call to \fIEVP_PKEY_verify_init()\fR algorithm specific control operations can be performed to set any appropriate parameters for the operation. .PP The function \fIEVP_PKEY_verify()\fR can be called more than once on the same context if several operations are performed using the same parameters. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIEVP_PKEY_verify_init()\fR and \fIEVP_PKEY_verify()\fR return 1 if the verification was successful and 0 if it failed. Unlike other functions the return value 0 from \&\fIEVP_PKEY_verify()\fR only indicates that the signature did not not verify successfully (that is tbs did not match the original data or the signature was of invalid form) it is not an indication of a more serious error. .PP A negative value indicates an error other that signature verification failure. In particular a return value of \-2 indicates the operation is not supported by the public key algorithm. .SH "EXAMPLE" .IX Header "EXAMPLE" Verify signature using PKCS#1 and \s-1SHA256\s0 digest: .PP .Vb 2 \& #include \& #include \& \& EVP_PKEY_CTX *ctx; \& unsigned char *md, *sig; \& size_t mdlen, siglen; \& EVP_PKEY *verify_key; \& /* NB: assumes verify_key, sig, siglen md and mdlen are already set up \& * and that verify_key is an RSA public key \& */ \& ctx = EVP_PKEY_CTX_new(verify_key); \& if (!ctx) \& /* Error occurred */ \& if (EVP_PKEY_verify_init(ctx) <= 0) \& /* Error */ \& if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PADDING) <= 0) \& /* Error */ \& if (EVP_PKEY_CTX_set_signature_md(ctx, EVP_sha256()) <= 0) \& /* Error */ \& \& /* Perform operation */ \& ret = EVP_PKEY_verify(ctx, sig, siglen, md, mdlen); \& \& /* ret == 1 indicates success, 0 verify failure and < 0 for some \& * other error. \& */ .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIEVP_PKEY_CTX_new\fR\|(3), \&\fIEVP_PKEY_encrypt\fR\|(3), \&\fIEVP_PKEY_decrypt\fR\|(3), \&\fIEVP_PKEY_sign\fR\|(3), \&\fIEVP_PKEY_verify_recover\fR\|(3), \&\fIEVP_PKEY_derive\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" These functions were first added to OpenSSL 1.0.0. man3/d2i_ECPrivateKey.3000064400000015166147210533270010534 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "d2i_ECPrivateKey 3" .TH d2i_ECPrivateKey 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" i2d_ECPrivateKey, d2i_ECPrivate_key \- Encode and decode functions for saving and reading EC_KEY structures .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& EC_KEY *d2i_ECPrivateKey(EC_KEY **key, const unsigned char **in, long len); \& int i2d_ECPrivateKey(EC_KEY *key, unsigned char **out); \& \& unsigned int EC_KEY_get_enc_flags(const EC_KEY *key); \& void EC_KEY_set_enc_flags(EC_KEY *eckey, unsigned int flags); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The ECPrivateKey encode and decode routines encode and parse an \&\fB\s-1EC_KEY\s0\fR structure into a binary format (\s-1ASN.1 DER\s0) and back again. .PP These functions are similar to the \fId2i_X509()\fR functions, and you should refer to that page for a detailed description (see \fId2i_X509\fR\|(3)). .PP The format of the external representation of the public key written by i2d_ECPrivateKey (such as whether it is stored in a compressed form or not) is described by the point_conversion_form. See \fIEC_GROUP_copy\fR\|(3) for a description of point_conversion_form. .PP When reading a private key encoded without an associated public key (e.g. if \&\s-1EC_PKEY_NO_PUBKEY\s0 has been used \- see below), then d2i_ECPrivateKey generates the missing public key automatically. Private keys encoded without parameters (e.g. if \s-1EC_PKEY_NO_PARAMETERS\s0 has been used \- see below) cannot be loaded using d2i_ECPrivateKey. .PP The functions EC_KEY_get_enc_flags and EC_KEY_set_enc_flags get and set the value of the encoding flags for the \fBkey\fR. There are two encoding flags currently defined \- \s-1EC_PKEY_NO_PARAMETERS\s0 and \s-1EC_PKEY_NO_PUBKEY. \s0 These flags define the behaviour of how the \fBkey\fR is converted into \s-1ASN1\s0 in a call to i2d_ECPrivateKey. If \s-1EC_PKEY_NO_PARAMETERS\s0 is set then the public parameters for the curve are not encoded along with the private key. If \s-1EC_PKEY_NO_PUBKEY\s0 is set then the public key is not encoded along with the private key. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fId2i_ECPrivateKey()\fR returns a valid \fB\s-1EC_KEY\s0\fR structure or \fB\s-1NULL\s0\fR if an error occurs. The error code that can be obtained by \&\fIERR_get_error\fR\|(3). .PP \&\fIi2d_ECPrivateKey()\fR returns the number of bytes successfully encoded or a negative value if an error occurs. The error code can be obtained by \&\fIERR_get_error\fR\|(3). .PP EC_KEY_get_enc_flags returns the value of the current encoding flags for the \&\s-1EC_KEY.\s0 .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIcrypto\fR\|(3), \fIec\fR\|(3), \fIEC_GROUP_new\fR\|(3), \&\fIEC_GROUP_copy\fR\|(3), \fIEC_POINT_new\fR\|(3), \&\fIEC_POINT_add\fR\|(3), \&\fIEC_GFp_simple_method\fR\|(3), \&\fId2i_ECPKParameters\fR\|(3), \&\fId2i_ECPrivateKey\fR\|(3) man3/RAND_set_rand_method.3000064400000016317147210533270011445 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RAND_set_rand_method 3" .TH RAND_set_rand_method 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" RAND_set_rand_method, RAND_get_rand_method, RAND_SSLeay \- select RAND method .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void RAND_set_rand_method(const RAND_METHOD *meth); \& \& const RAND_METHOD *RAND_get_rand_method(void); \& \& RAND_METHOD *RAND_SSLeay(void); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" A \fB\s-1RAND_METHOD\s0\fR specifies the functions that OpenSSL uses for random number generation. By modifying the method, alternative implementations such as hardware RNGs may be used. \s-1IMPORTANT:\s0 See the \s-1NOTES\s0 section for important information about how these \s-1RAND API\s0 functions are affected by the use of \&\fB\s-1ENGINE\s0\fR \s-1API\s0 calls. .PP Initially, the default \s-1RAND_METHOD\s0 is the OpenSSL internal implementation, as returned by \fIRAND_SSLeay()\fR. .PP \&\fIRAND_set_default_method()\fR makes \fBmeth\fR the method for \s-1PRNG\s0 use. \fB\s-1NB\s0\fR: This is true only whilst no \s-1ENGINE\s0 has been set as a default for \s-1RAND,\s0 so this function is no longer recommended. .PP \&\fIRAND_get_default_method()\fR returns a pointer to the current \s-1RAND_METHOD.\s0 However, the meaningfulness of this result is dependent on whether the \s-1ENGINE API\s0 is being used, so this function is no longer recommended. .SH "THE RAND_METHOD STRUCTURE" .IX Header "THE RAND_METHOD STRUCTURE" .Vb 9 \& typedef struct rand_meth_st \& { \& void (*seed)(const void *buf, int num); \& int (*bytes)(unsigned char *buf, int num); \& void (*cleanup)(void); \& void (*add)(const void *buf, int num, int entropy); \& int (*pseudorand)(unsigned char *buf, int num); \& int (*status)(void); \& } RAND_METHOD; .Ve .PP The components point to the implementation of \fIRAND_seed()\fR, \&\fIRAND_bytes()\fR, \fIRAND_cleanup()\fR, \fIRAND_add()\fR, \fIRAND_pseudo_rand()\fR and \fIRAND_status()\fR. Each component may be \s-1NULL\s0 if the function is not implemented. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIRAND_set_rand_method()\fR returns no value. \fIRAND_get_rand_method()\fR and \&\fIRAND_SSLeay()\fR return pointers to the respective methods. .SH "NOTES" .IX Header "NOTES" As of version 0.9.7, \s-1RAND_METHOD\s0 implementations are grouped together with other algorithmic APIs (eg. \s-1RSA_METHOD, EVP_CIPHER,\s0 etc) in \fB\s-1ENGINE\s0\fR modules. If a default \s-1ENGINE\s0 is specified for \s-1RAND\s0 functionality using an \s-1ENGINE API\s0 function, that will override any \s-1RAND\s0 defaults set using the \s-1RAND API \s0(ie. \&\fIRAND_set_rand_method()\fR). For this reason, the \s-1ENGINE API\s0 is the recommended way to control default implementations for use in \s-1RAND\s0 and other cryptographic algorithms. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIrand\fR\|(3), \fIengine\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIRAND_set_rand_method()\fR, \fIRAND_get_rand_method()\fR and \fIRAND_SSLeay()\fR are available in all versions of OpenSSL. .PP In the engine version of version 0.9.6, \fIRAND_set_rand_method()\fR was altered to take an \s-1ENGINE\s0 pointer as its argument. As of version 0.9.7, that has been reverted as the \s-1ENGINE API\s0 transparently overrides \s-1RAND\s0 defaults if used, otherwise \s-1RAND API\s0 functions work as before. \fIRAND_set_rand_engine()\fR was also introduced in version 0.9.7. man3/EVP_DigestSignInit.3000064400000020006147210533270011066 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EVP_DigestSignInit 3" .TH EVP_DigestSignInit 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EVP_DigestSignInit, EVP_DigestSignUpdate, EVP_DigestSignFinal \- EVP signing functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int EVP_DigestSignInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, \& const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey); \& int EVP_DigestSignUpdate(EVP_MD_CTX *ctx, const void *d, size_t cnt); \& int EVP_DigestSignFinal(EVP_MD_CTX *ctx, unsigned char *sig, size_t *siglen); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \s-1EVP\s0 signature routines are a high level interface to digital signatures. .PP \&\fIEVP_DigestSignInit()\fR sets up signing context \fBctx\fR to use digest \fBtype\fR from \&\s-1ENGINE \s0\fBimpl\fR and private key \fBpkey\fR. \fBctx\fR must be initialized with \&\fIEVP_MD_CTX_init()\fR before calling this function. If \fBpctx\fR is not \s-1NULL,\s0 the \&\s-1EVP_PKEY_CTX\s0 of the signing operation will be written to \fB*pctx\fR: this can be used to set alternative signing options. Note that any existing value in \&\fB*pctx\fR is overwritten. The \s-1EVP_PKEY_CTX\s0 value returned must not be freed directly by the application (it will be freed automatically when the \s-1EVP_MD_CTX\s0 is freed). The digest \fBtype\fR may be \s-1NULL\s0 if the signing algorithm supports it. .PP \&\fIEVP_DigestSignUpdate()\fR hashes \fBcnt\fR bytes of data at \fBd\fR into the signature context \fBctx\fR. This function can be called several times on the same \fBctx\fR to include additional data. This function is currently implemented usig a macro. .PP \&\fIEVP_DigestSignFinal()\fR signs the data in \fBctx\fR places the signature in \fBsig\fR. If \fBsig\fR is \fB\s-1NULL\s0\fR then the maximum size of the output buffer is written to the \fBsiglen\fR parameter. If \fBsig\fR is not \fB\s-1NULL\s0\fR then before the call the \&\fBsiglen\fR parameter should contain the length of the \fBsig\fR buffer, if the call is successful the signature is written to \fBsig\fR and the amount of data written to \fBsiglen\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIEVP_DigestSignInit()\fR \fIEVP_DigestSignUpdate()\fR and \fIEVP_DigestSignaFinal()\fR return 1 for success and 0 or a negative value for failure. In particular a return value of \-2 indicates the operation is not supported by the public key algorithm. .PP The error codes can be obtained from \fIERR_get_error\fR\|(3). .SH "NOTES" .IX Header "NOTES" The \fB\s-1EVP\s0\fR interface to digital signatures should almost always be used in preference to the low level interfaces. This is because the code then becomes transparent to the algorithm used and much more flexible. .PP In previous versions of OpenSSL there was a link between message digest types and public key algorithms. This meant that \*(L"clone\*(R" digests such as \fIEVP_dss1()\fR needed to be used to sign using \s-1SHA1\s0 and \s-1DSA.\s0 This is no longer necessary and the use of clone digest is now discouraged. .PP For some key types and parameters the random number generator must be seeded or the operation will fail. .PP The call to \fIEVP_DigestSignFinal()\fR internally finalizes a copy of the digest context. This means that calls to \fIEVP_DigestSignUpdate()\fR and \&\fIEVP_DigestSignFinal()\fR can be called later to digest and sign additional data. .PP Since only a copy of the digest context is ever finalized the context must be cleaned up after use by calling \fIEVP_MD_CTX_cleanup()\fR or a memory leak will occur. .PP The use of \fIEVP_PKEY_size()\fR with these functions is discouraged because some signature operations may have a signature length which depends on the parameters set. As a result \fIEVP_PKEY_size()\fR would have to return a value which indicates the maximum possible signature for any set of parameters. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIEVP_DigestVerifyInit\fR\|(3), \&\fIEVP_DigestInit\fR\|(3), \fIerr\fR\|(3), \&\fIevp\fR\|(3), \fIhmac\fR\|(3), \fImd2\fR\|(3), \&\fImd5\fR\|(3), \fImdc2\fR\|(3), \fIripemd\fR\|(3), \&\fIsha\fR\|(3), \fIdgst\fR\|(1) .SH "HISTORY" .IX Header "HISTORY" \&\fIEVP_DigestSignInit()\fR, \fIEVP_DigestSignUpdate()\fR and \fIEVP_DigestSignFinal()\fR were first added to OpenSSL 1.0.0. man3/CMS_encrypt.3000064400000017522147210533270007667 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CMS_encrypt 3" .TH CMS_encrypt 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" .Vb 1 \& CMS_encrypt \- create a CMS envelopedData structure .Ve .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, unsigned int flags); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fICMS_encrypt()\fR creates and returns a \s-1CMS\s0 EnvelopedData structure. \fBcerts\fR is a list of recipient certificates. \fBin\fR is the content to be encrypted. \&\fBcipher\fR is the symmetric cipher to use. \fBflags\fR is an optional set of flags. .SH "NOTES" .IX Header "NOTES" Only certificates carrying \s-1RSA,\s0 Diffie-Hellman or \s-1EC\s0 keys are supported by this function. .PP \&\fIEVP_des_ede3_cbc()\fR (triple \s-1DES\s0) is the algorithm of choice for S/MIME use because most clients will support it. .PP The algorithm passed in the \fBcipher\fR parameter must support \s-1ASN1\s0 encoding of its parameters. .PP Many browsers implement a \*(L"sign and encrypt\*(R" option which is simply an S/MIME envelopedData containing an S/MIME signed message. This can be readily produced by storing the S/MIME signed message in a memory \s-1BIO\s0 and passing it to \&\fICMS_encrypt()\fR. .PP The following flags can be passed in the \fBflags\fR parameter. .PP If the \fB\s-1CMS_TEXT\s0\fR flag is set \s-1MIME\s0 headers for type \fBtext/plain\fR are prepended to the data. .PP Normally the supplied content is translated into \s-1MIME\s0 canonical format (as required by the S/MIME specifications) if \fB\s-1CMS_BINARY\s0\fR is set no translation occurs. This option should be used if the supplied data is in binary format otherwise the translation will corrupt it. If \fB\s-1CMS_BINARY\s0\fR is set then \&\fB\s-1CMS_TEXT\s0\fR is ignored. .PP OpenSSL will by default identify recipient certificates using issuer name and serial number. If \fB\s-1CMS_USE_KEYID\s0\fR is set it will use the subject key identifier value instead. An error occurs if all recipient certificates do not have a subject key identifier extension. .PP If the \fB\s-1CMS_STREAM\s0\fR flag is set a partial \fBCMS_ContentInfo\fR structure is returned suitable for streaming I/O: no data is read from the \s-1BIO \s0\fBin\fR. .PP If the \fB\s-1CMS_PARTIAL\s0\fR flag is set a partial \fBCMS_ContentInfo\fR structure is returned to which additional recipients and attributes can be added before finalization. .PP The data being encrypted is included in the CMS_ContentInfo structure, unless \&\fB\s-1CMS_DETACHED\s0\fR is set in which case it is omitted. This is rarely used in practice and is not supported by \fISMIME_write_CMS()\fR. .SH "NOTES" .IX Header "NOTES" If the flag \fB\s-1CMS_STREAM\s0\fR is set the returned \fBCMS_ContentInfo\fR structure is \&\fBnot\fR complete and outputting its contents via a function that does not properly finalize the \fBCMS_ContentInfo\fR structure will give unpredictable results. .PP Several functions including \fISMIME_write_CMS()\fR, \fIi2d_CMS_bio_stream()\fR, \&\fIPEM_write_bio_CMS_stream()\fR finalize the structure. Alternatively finalization can be performed by obtaining the streaming \s-1ASN1 \s0\fB\s-1BIO\s0\fR directly using \&\fIBIO_new_CMS()\fR. .PP The recipients specified in \fBcerts\fR use a \s-1CMS\s0 KeyTransRecipientInfo info structure. KEKRecipientInfo is also supported using the flag \fB\s-1CMS_PARTIAL\s0\fR and \fICMS_add0_recipient_key()\fR. .PP The parameter \fBcerts\fR may be \s-1NULL\s0 if \fB\s-1CMS_PARTIAL\s0\fR is set and recipients added later using \fICMS_add1_recipient_cert()\fR or \fICMS_add0_recipient_key()\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fICMS_encrypt()\fR returns either a CMS_ContentInfo structure or \s-1NULL\s0 if an error occurred. The error can be obtained from \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fICMS_decrypt\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fICMS_decrypt()\fR was added to OpenSSL 0.9.8 The \fB\s-1CMS_STREAM\s0\fR flag was first supported in OpenSSL 1.0.0. man3/PKCS7_encrypt.3000064400000016125147210533270010072 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PKCS7_encrypt 3" .TH PKCS7_encrypt 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" PKCS7_encrypt \- create a PKCS#7 envelopedData structure .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& PKCS7 *PKCS7_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, int flags); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIPKCS7_encrypt()\fR creates and returns a PKCS#7 envelopedData structure. \fBcerts\fR is a list of recipient certificates. \fBin\fR is the content to be encrypted. \&\fBcipher\fR is the symmetric cipher to use. \fBflags\fR is an optional set of flags. .SH "NOTES" .IX Header "NOTES" Only \s-1RSA\s0 keys are supported in PKCS#7 and envelopedData so the recipient certificates supplied to this function must all contain \s-1RSA\s0 public keys, though they do not have to be signed using the \s-1RSA\s0 algorithm. .PP \&\fIEVP_des_ede3_cbc()\fR (triple \s-1DES\s0) is the algorithm of choice for S/MIME use because most clients will support it. .PP Some old \*(L"export grade\*(R" clients may only support weak encryption using 40 or 64 bit \s-1RC2.\s0 These can be used by passing \fIEVP_rc2_40_cbc()\fR and \fIEVP_rc2_64_cbc()\fR respectively. .PP The algorithm passed in the \fBcipher\fR parameter must support \s-1ASN1\s0 encoding of its parameters. .PP Many browsers implement a \*(L"sign and encrypt\*(R" option which is simply an S/MIME envelopedData containing an S/MIME signed message. This can be readily produced by storing the S/MIME signed message in a memory \s-1BIO\s0 and passing it to \&\fIPKCS7_encrypt()\fR. .PP The following flags can be passed in the \fBflags\fR parameter. .PP If the \fB\s-1PKCS7_TEXT\s0\fR flag is set \s-1MIME\s0 headers for type \fBtext/plain\fR are prepended to the data. .PP Normally the supplied content is translated into \s-1MIME\s0 canonical format (as required by the S/MIME specifications) if \fB\s-1PKCS7_BINARY\s0\fR is set no translation occurs. This option should be used if the supplied data is in binary format otherwise the translation will corrupt it. If \fB\s-1PKCS7_BINARY\s0\fR is set then \&\fB\s-1PKCS7_TEXT\s0\fR is ignored. .PP If the \fB\s-1PKCS7_STREAM\s0\fR flag is set a partial \fB\s-1PKCS7\s0\fR structure is output suitable for streaming I/O: no data is read from the \s-1BIO \s0\fBin\fR. .SH "NOTES" .IX Header "NOTES" If the flag \fB\s-1PKCS7_STREAM\s0\fR is set the returned \fB\s-1PKCS7\s0\fR structure is \fBnot\fR complete and outputting its contents via a function that does not properly finalize the \fB\s-1PKCS7\s0\fR structure will give unpredictable results. .PP Several functions including \fISMIME_write_PKCS7()\fR, \fIi2d_PKCS7_bio_stream()\fR, \&\fIPEM_write_bio_PKCS7_stream()\fR finalize the structure. Alternatively finalization can be performed by obtaining the streaming \s-1ASN1 \s0\fB\s-1BIO\s0\fR directly using \&\fIBIO_new_PKCS7()\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIPKCS7_encrypt()\fR returns either a \s-1PKCS7\s0 structure or \s-1NULL\s0 if an error occurred. The error can be obtained from \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fIPKCS7_decrypt\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIPKCS7_decrypt()\fR was added to OpenSSL 0.9.5 The \fB\s-1PKCS7_STREAM\s0\fR flag was first supported in OpenSSL 1.0.0. man3/X509_verify_cert.3000064400000013257147210533270010550 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "X509_verify_cert 3" .TH X509_verify_cert 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" X509_verify_cert \- discover and verify X509 certificte chain .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int X509_verify_cert(X509_STORE_CTX *ctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fIX509_verify_cert()\fR function attempts to discover and validate a certificate chain based on parameters in \fBctx\fR. A complete description of the process is contained in the \fIverify\fR\|(1) manual page. .SH "RETURN VALUES" .IX Header "RETURN VALUES" If a complete chain can be built and validated this function returns 1, otherwise it return zero, in exceptional circumstances it can also return a negative code. .PP If the function fails additional error information can be obtained by examining \fBctx\fR using, for example \fIX509_STORE_CTX_get_error()\fR. .SH "NOTES" .IX Header "NOTES" Applications rarely call this function directly but it is used by OpenSSL internally for certificate validation, in both the S/MIME and \&\s-1SSL/TLS\s0 code. .PP A negative return value from \fIX509_verify_cert()\fR can occur if it is invoked incorrectly, such as with no certificate set in \fBctx\fR, or when it is called twice in succession without reinitialising \fBctx\fR for the second call. A negative return value can also happen due to internal resource problems or if a retry operation is requested during internal lookups (which never happens with standard lookup methods). Applications must check for <= 0 return value on error. .SH "BUGS" .IX Header "BUGS" This function uses the header \fBx509.h\fR as opposed to most chain verification functiosn which use \fBx509_vfy.h\fR. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIX509_STORE_CTX_get_error\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIX509_verify_cert()\fR is available in all versions of SSLeay and OpenSSL. man3/CONF_modules_free.3000064400000012344147210533270010754 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CONF_modules_free 3" .TH CONF_modules_free 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" .Vb 2 \& CONF_modules_free, CONF_modules_finish, CONF_modules_unload \- \& OpenSSL configuration cleanup functions .Ve .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void CONF_modules_free(void); \& void CONF_modules_finish(void); \& void CONF_modules_unload(int all); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fICONF_modules_free()\fR closes down and frees up all memory allocated by all configuration modules. .PP \&\fICONF_modules_finish()\fR calls each configuration modules \fBfinish\fR handler to free up any configuration that module may have performed. .PP \&\fICONF_modules_unload()\fR finishes and unloads configuration modules. If \&\fBall\fR is set to \fB0\fR only modules loaded from DSOs will be unloads. If \&\fBall\fR is \fB1\fR all modules, including builtin modules will be unloaded. .SH "NOTES" .IX Header "NOTES" Normally applications will only call \fICONF_modules_free()\fR at application to tidy up any configuration performed. .SH "RETURN VALUE" .IX Header "RETURN VALUE" None of the functions return a value. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIconf\fR\|(5), \fIOPENSSL_config\fR\|(3), \&\fICONF_modules_load_file\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fICONF_modules_free()\fR, \fICONF_modules_unload()\fR, and \fICONF_modules_finish()\fR first appeared in OpenSSL 0.9.7. man3/d2i_X509_REQ.3000064400000011441147210533270007405 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "d2i_X509_REQ 3" .TH d2i_X509_REQ 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" d2i_X509_REQ, i2d_X509_REQ, d2i_X509_REQ_bio, d2i_X509_REQ_fp, i2d_X509_REQ_bio, i2d_X509_REQ_fp \- PKCS#10 certificate request functions. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& X509_REQ *d2i_X509_REQ(X509_REQ **a, const unsigned char **pp, long length); \& int i2d_X509_REQ(X509_REQ *a, unsigned char **pp); \& \& X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **x); \& X509_REQ *d2i_X509_REQ_fp(FILE *fp, X509_REQ **x); \& \& int i2d_X509_REQ_bio(BIO *bp, X509_REQ *x); \& int i2d_X509_REQ_fp(FILE *fp, X509_REQ *x); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions decode and encode a PKCS#10 certificate request. .PP Othewise these behave in a similar way to \fId2i_X509()\fR and \fIi2d_X509()\fR described in the \fId2i_X509\fR\|(3) manual page. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fId2i_X509\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1TBA\s0 man3/SSL_CTX_set_tmp_dh_callback.3000064400000022132147210533270012673 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_tmp_dh_callback 3" .TH SSL_CTX_set_tmp_dh_callback 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_tmp_dh_callback, SSL_CTX_set_tmp_dh, SSL_set_tmp_dh_callback, SSL_set_tmp_dh \- handle DH keys for ephemeral key exchange .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx, \& DH *(*tmp_dh_callback)(SSL *ssl, int is_export, int keylength)); \& long SSL_CTX_set_tmp_dh(SSL_CTX *ctx, DH *dh); \& \& void SSL_set_tmp_dh_callback(SSL *ctx, \& DH *(*tmp_dh_callback)(SSL *ssl, int is_export, int keylength)); \& long SSL_set_tmp_dh(SSL *ssl, DH *dh) .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set_tmp_dh_callback()\fR sets the callback function for \fBctx\fR to be used when a \s-1DH\s0 parameters are required to \fBtmp_dh_callback\fR. The callback is inherited by all \fBssl\fR objects created from \fBctx\fR. .PP \&\fISSL_CTX_set_tmp_dh()\fR sets \s-1DH\s0 parameters to be used to be \fBdh\fR. The key is inherited by all \fBssl\fR objects created from \fBctx\fR. .PP \&\fISSL_set_tmp_dh_callback()\fR sets the callback only for \fBssl\fR. .PP \&\fISSL_set_tmp_dh()\fR sets the parameters only for \fBssl\fR. .PP These functions apply to \s-1SSL/TLS\s0 servers only. .SH "NOTES" .IX Header "NOTES" When using a cipher with \s-1RSA\s0 authentication, an ephemeral \s-1DH\s0 key exchange can take place. Ciphers with \s-1DSA\s0 keys always use ephemeral \s-1DH\s0 keys as well. In these cases, the session data are negotiated using the ephemeral/temporary \s-1DH\s0 key and the key supplied and certified by the certificate chain is only used for signing. Anonymous ciphers (without a permanent server key) also use ephemeral \s-1DH\s0 keys. .PP Using ephemeral \s-1DH\s0 key exchange yields forward secrecy, as the connection can only be decrypted, when the \s-1DH\s0 key is known. By generating a temporary \&\s-1DH\s0 key inside the server application that is lost when the application is left, it becomes impossible for an attacker to decrypt past sessions, even if he gets hold of the normal (certified) key, as this key was only used for signing. .PP In order to perform a \s-1DH\s0 key exchange the server must use a \s-1DH\s0 group (\s-1DH\s0 parameters) and generate a \s-1DH\s0 key. The server will always generate a new \s-1DH\s0 key during the negotiation. .PP As generating \s-1DH\s0 parameters is extremely time consuming, an application should not generate the parameters on the fly but supply the parameters. \&\s-1DH\s0 parameters can be reused, as the actual key is newly generated during the negotiation. The risk in reusing \s-1DH\s0 parameters is that an attacker may specialize on a very often used \s-1DH\s0 group. Applications should therefore generate their own \s-1DH\s0 parameters during the installation process using the openssl \fIdhparam\fR\|(1) application. This application guarantees that \*(L"strong\*(R" primes are used. .PP Files dh2048.pem, and dh4096.pem in the 'apps' directory of the current version of the OpenSSL distribution contain the '\s-1SKIP\s0' \s-1DH\s0 parameters, which use safe primes and were generated verifiably pseudo-randomly. These files can be converted into C code using the \fB\-C\fR option of the \&\fIdhparam\fR\|(1) application. Generation of custom \s-1DH\s0 parameters during installation should still be preferred to stop an attacker from specializing on a commonly used group. Files dh1024.pem and dh512.pem contain old parameters that must not be used by applications. .PP An application may either directly specify the \s-1DH\s0 parameters or can supply the \s-1DH\s0 parameters via a callback function. .PP Previous versions of the callback used \fBis_export\fR and \fBkeylength\fR parameters to control parameter generation for export and non-export cipher suites. Modern servers that do not support export ciphersuites are advised to either use \fISSL_CTX_set_tmp_dh()\fR or alternatively, use the callback but ignore \fBkeylength\fR and \fBis_export\fR and simply supply at least 2048\-bit parameters in the callback. .SH "EXAMPLES" .IX Header "EXAMPLES" Setup \s-1DH\s0 parameters with a key length of 2048 bits. (Error handling partly left out.) .PP .Vb 2 \& Command\-line parameter generation: \& $ openssl dhparam \-out dh_param_2048.pem 2048 \& \& Code for setting up parameters during server initialization: \& \& ... \& SSL_CTX ctx = SSL_CTX_new(); \& ... \& \& /* Set up ephemeral DH parameters. */ \& DH *dh_2048 = NULL; \& FILE *paramfile; \& paramfile = fopen("dh_param_2048.pem", "r"); \& if (paramfile) { \& dh_2048 = PEM_read_DHparams(paramfile, NULL, NULL, NULL); \& fclose(paramfile); \& } else { \& /* Error. */ \& } \& if (dh_2048 == NULL) { \& /* Error. */ \& } \& if (SSL_CTX_set_tmp_dh(ctx, dh_2048) != 1) { \& /* Error. */ \& } \& ... .Ve .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CTX_set_tmp_dh_callback()\fR and \fISSL_set_tmp_dh_callback()\fR do not return diagnostic output. .PP \&\fISSL_CTX_set_tmp_dh()\fR and \fISSL_set_tmp_dh()\fR do return 1 on success and 0 on failure. Check the error queue to find out the reason of failure. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_CTX_set_cipher_list\fR\|(3), \&\fISSL_CTX_set_tmp_rsa_callback\fR\|(3), \&\fISSL_CTX_set_options\fR\|(3), \&\fIciphers\fR\|(1), \fIdhparam\fR\|(1) man3/CMS_decrypt.3000064400000016314147210533270007653 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CMS_decrypt 3" .TH CMS_decrypt 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" .Vb 1 \& CMS_decrypt \- decrypt content from a CMS envelopedData structure .Ve .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, BIO *dcont, BIO *out, unsigned int flags); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fICMS_decrypt()\fR extracts and decrypts the content from a \s-1CMS\s0 EnvelopedData structure. \fBpkey\fR is the private key of the recipient, \fBcert\fR is the recipient's certificate, \fBout\fR is a \s-1BIO\s0 to write the content to and \&\fBflags\fR is an optional set of flags. .PP The \fBdcont\fR parameter is used in the rare case where the encrypted content is detached. It will normally be set to \s-1NULL.\s0 .SH "NOTES" .IX Header "NOTES" \&\fIOpenSSL_add_all_algorithms()\fR (or equivalent) should be called before using this function or errors about unknown algorithms will occur. .PP Although the recipients certificate is not needed to decrypt the data it is needed to locate the appropriate (of possible several) recipients in the \s-1CMS\s0 structure. .PP If \fBcert\fR is set to \s-1NULL\s0 all possible recipients are tried. This case however is problematic. To thwart the \s-1MMA\s0 attack (Bleichenbacher's attack on \&\s-1PKCS\s0 #1 v1.5 \s-1RSA\s0 padding) all recipients are tried whether they succeed or not. If no recipient succeeds then a random symmetric key is used to decrypt the content: this will typically output garbage and may (but is not guaranteed to) ultimately return a padding error only. If \fICMS_decrypt()\fR just returned an error when all recipient encrypted keys failed to decrypt an attacker could use this in a timing attack. If the special flag \fB\s-1CMS_DEBUG_DECRYPT\s0\fR is set then the above behaviour is modified and an error \fBis\fR returned if no recipient encrypted key can be decrypted \fBwithout\fR generating a random content encryption key. Applications should use this flag with \&\fBextreme caution\fR especially in automated gateways as it can leave them open to attack. .PP It is possible to determine the correct recipient key by other means (for example looking them up in a database) and setting them in the \s-1CMS\s0 structure in advance using the \s-1CMS\s0 utility functions such as \fICMS_set1_pkey()\fR. In this case both \fBcert\fR and \fBpkey\fR should be set to \s-1NULL.\s0 .PP To process KEKRecipientInfo types \fICMS_set1_key()\fR or \fICMS_RecipientInfo_set0_key()\fR and \fICMS_ReceipientInfo_decrypt()\fR should be called before \fICMS_decrypt()\fR and \&\fBcert\fR and \fBpkey\fR set to \s-1NULL.\s0 .PP The following flags can be passed in the \fBflags\fR parameter. .PP If the \fB\s-1CMS_TEXT\s0\fR flag is set \s-1MIME\s0 headers for type \fBtext/plain\fR are deleted from the content. If the content is not of type \fBtext/plain\fR then an error is returned. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fICMS_decrypt()\fR returns either 1 for success or 0 for failure. The error can be obtained from \fIERR_get_error\fR\|(3) .SH "BUGS" .IX Header "BUGS" The lack of single pass processing and the need to hold all data in memory as mentioned in \fICMS_verify()\fR also applies to \fICMS_decrypt()\fR. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fICMS_encrypt\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fICMS_decrypt()\fR was added to OpenSSL 0.9.8 man3/DSA_sign.3000064400000015111147210533270007120 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DSA_sign 3" .TH DSA_sign 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" DSA_sign, DSA_sign_setup, DSA_verify \- DSA signatures .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int DSA_sign(int type, const unsigned char *dgst, int len, \& unsigned char *sigret, unsigned int *siglen, DSA *dsa); \& \& int DSA_sign_setup(DSA *dsa, BN_CTX *ctx, BIGNUM **kinvp, \& BIGNUM **rp); \& \& int DSA_verify(int type, const unsigned char *dgst, int len, \& unsigned char *sigbuf, int siglen, DSA *dsa); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIDSA_sign()\fR computes a digital signature on the \fBlen\fR byte message digest \fBdgst\fR using the private key \fBdsa\fR and places its \s-1ASN.1 DER\s0 encoding at \fBsigret\fR. The length of the signature is places in *\fBsiglen\fR. \fBsigret\fR must point to DSA_size(\fBdsa\fR) bytes of memory. .PP \&\fIDSA_sign_setup()\fR may be used to precompute part of the signing operation in case signature generation is time-critical. It expects \&\fBdsa\fR to contain \s-1DSA\s0 parameters. It places the precomputed values in newly allocated \fB\s-1BIGNUM\s0\fRs at *\fBkinvp\fR and *\fBrp\fR, after freeing the old ones unless *\fBkinvp\fR and *\fBrp\fR are \s-1NULL.\s0 These values may be passed to \fIDSA_sign()\fR in \fBdsa\->kinv\fR and \fBdsa\->r\fR. \&\fBctx\fR is a pre-allocated \fB\s-1BN_CTX\s0\fR or \s-1NULL.\s0 The precomputed values from \fIDSA_sign_setup()\fR \fB\s-1MUST NOT\s0 be used\fR for more than one signature: using the same \fBdsa\->kinv\fR and \&\fBdsa\->r\fR pair twice under the same private key on different plaintexts will result in permanently exposing the \s-1DSA\s0 private key. .PP \&\fIDSA_verify()\fR verifies that the signature \fBsigbuf\fR of size \fBsiglen\fR matches a given message digest \fBdgst\fR of size \fBlen\fR. \&\fBdsa\fR is the signer's public key. .PP The \fBtype\fR parameter is ignored. .PP The \s-1PRNG\s0 must be seeded before \fIDSA_sign()\fR (or \fIDSA_sign_setup()\fR) is called. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIDSA_sign()\fR and \fIDSA_sign_setup()\fR return 1 on success, 0 on error. \&\fIDSA_verify()\fR returns 1 for a valid signature, 0 for an incorrect signature and \-1 on error. The error codes can be obtained by \&\fIERR_get_error\fR\|(3). .SH "CONFORMING TO" .IX Header "CONFORMING TO" \&\s-1US\s0 Federal Information Processing Standard \s-1FIPS 186 \s0(Digital Signature Standard, \s-1DSS\s0), \s-1ANSI X9.30\s0 .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdsa\fR\|(3), \fIERR_get_error\fR\|(3), \fIrand\fR\|(3), \&\fIDSA_do_sign\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIDSA_sign()\fR and \fIDSA_verify()\fR are available in all versions of SSLeay. \&\fIDSA_sign_setup()\fR was added in SSLeay 0.8. man3/SSL_CTX_set_verify.3000064400000040042147210533270011110 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_verify 3" .TH SSL_CTX_set_verify 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_verify, SSL_set_verify, SSL_CTX_set_verify_depth, SSL_set_verify_depth \- set peer certificate verification parameters .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void SSL_CTX_set_verify(SSL_CTX *ctx, int mode, \& int (*verify_callback)(int, X509_STORE_CTX *)); \& void SSL_set_verify(SSL *s, int mode, \& int (*verify_callback)(int, X509_STORE_CTX *)); \& void SSL_CTX_set_verify_depth(SSL_CTX *ctx,int depth); \& void SSL_set_verify_depth(SSL *s, int depth); \& \& int verify_callback(int preverify_ok, X509_STORE_CTX *x509_ctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set_verify()\fR sets the verification flags for \fBctx\fR to be \fBmode\fR and specifies the \fBverify_callback\fR function to be used. If no callback function shall be specified, the \s-1NULL\s0 pointer can be used for \fBverify_callback\fR. .PP \&\fISSL_set_verify()\fR sets the verification flags for \fBssl\fR to be \fBmode\fR and specifies the \fBverify_callback\fR function to be used. If no callback function shall be specified, the \s-1NULL\s0 pointer can be used for \fBverify_callback\fR. In this case last \fBverify_callback\fR set specifically for this \fBssl\fR remains. If no special \fBcallback\fR was set before, the default callback for the underlying \&\fBctx\fR is used, that was valid at the time \fBssl\fR was created with \&\fISSL_new\fR\|(3). .PP \&\fISSL_CTX_set_verify_depth()\fR sets the maximum \fBdepth\fR for the certificate chain verification that shall be allowed for \fBctx\fR. (See the \s-1BUGS\s0 section.) .PP \&\fISSL_set_verify_depth()\fR sets the maximum \fBdepth\fR for the certificate chain verification that shall be allowed for \fBssl\fR. (See the \s-1BUGS\s0 section.) .SH "NOTES" .IX Header "NOTES" The verification of certificates can be controlled by a set of logically or'ed \fBmode\fR flags: .IP "\s-1SSL_VERIFY_NONE\s0" 4 .IX Item "SSL_VERIFY_NONE" \&\fBServer mode:\fR the server will not send a client certificate request to the client, so the client will not send a certificate. .Sp \&\fBClient mode:\fR if not using an anonymous cipher (by default disabled), the server will send a certificate which will be checked. The result of the certificate verification process can be checked after the \s-1TLS/SSL\s0 handshake using the \fISSL_get_verify_result\fR\|(3) function. The handshake will be continued regardless of the verification result. .IP "\s-1SSL_VERIFY_PEER\s0" 4 .IX Item "SSL_VERIFY_PEER" \&\fBServer mode:\fR the server sends a client certificate request to the client. The certificate returned (if any) is checked. If the verification process fails, the \s-1TLS/SSL\s0 handshake is immediately terminated with an alert message containing the reason for the verification failure. The behaviour can be controlled by the additional \&\s-1SSL_VERIFY_FAIL_IF_NO_PEER_CERT\s0 and \s-1SSL_VERIFY_CLIENT_ONCE\s0 flags. .Sp \&\fBClient mode:\fR the server certificate is verified. If the verification process fails, the \s-1TLS/SSL\s0 handshake is immediately terminated with an alert message containing the reason for the verification failure. If no server certificate is sent, because an anonymous cipher is used, \s-1SSL_VERIFY_PEER\s0 is ignored. .IP "\s-1SSL_VERIFY_FAIL_IF_NO_PEER_CERT\s0" 4 .IX Item "SSL_VERIFY_FAIL_IF_NO_PEER_CERT" \&\fBServer mode:\fR if the client did not return a certificate, the \s-1TLS/SSL\s0 handshake is immediately terminated with a \*(L"handshake failure\*(R" alert. This flag must be used together with \s-1SSL_VERIFY_PEER.\s0 .Sp \&\fBClient mode:\fR ignored .IP "\s-1SSL_VERIFY_CLIENT_ONCE\s0" 4 .IX Item "SSL_VERIFY_CLIENT_ONCE" \&\fBServer mode:\fR only request a client certificate on the initial \s-1TLS/SSL\s0 handshake. Do not ask for a client certificate again in case of a renegotiation. This flag must be used together with \s-1SSL_VERIFY_PEER.\s0 .Sp \&\fBClient mode:\fR ignored .PP Exactly one of the \fBmode\fR flags \s-1SSL_VERIFY_NONE\s0 and \s-1SSL_VERIFY_PEER\s0 must be set at any time. .PP The actual verification procedure is performed either using the built-in verification procedure or using another application provided verification function set with \&\fISSL_CTX_set_cert_verify_callback\fR\|(3). The following descriptions apply in the case of the built-in procedure. An application provided procedure also has access to the verify depth information and the \fIverify_callback()\fR function, but the way this information is used may be different. .PP \&\fISSL_CTX_set_verify_depth()\fR and \fISSL_set_verify_depth()\fR set the limit up to which depth certificates in a chain are used during the verification procedure. If the certificate chain is longer than allowed, the certificates above the limit are ignored. Error messages are generated as if these certificates would not be present, most likely a X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY will be issued. The depth count is \*(L"level 0:peer certificate\*(R", \*(L"level 1: \s-1CA\s0 certificate\*(R", \&\*(L"level 2: higher level \s-1CA\s0 certificate\*(R", and so on. Setting the maximum depth to 2 allows the levels 0, 1, and 2. The default depth limit is 100, allowing for the peer certificate and additional 100 \s-1CA\s0 certificates. .PP The \fBverify_callback\fR function is used to control the behaviour when the \&\s-1SSL_VERIFY_PEER\s0 flag is set. It must be supplied by the application and receives two arguments: \fBpreverify_ok\fR indicates, whether the verification of the certificate in question was passed (preverify_ok=1) or not (preverify_ok=0). \fBx509_ctx\fR is a pointer to the complete context used for the certificate chain verification. .PP The certificate chain is checked starting with the deepest nesting level (the root \s-1CA\s0 certificate) and worked upward to the peer's certificate. At each level signatures and issuer attributes are checked. Whenever a verification error is found, the error number is stored in \fBx509_ctx\fR and \fBverify_callback\fR is called with \fBpreverify_ok\fR=0. By applying X509_CTX_store_* functions \fBverify_callback\fR can locate the certificate in question and perform additional steps (see \s-1EXAMPLES\s0). If no error is found for a certificate, \fBverify_callback\fR is called with \fBpreverify_ok\fR=1 before advancing to the next level. .PP The return value of \fBverify_callback\fR controls the strategy of the further verification process. If \fBverify_callback\fR returns 0, the verification process is immediately stopped with \*(L"verification failed\*(R" state. If \&\s-1SSL_VERIFY_PEER\s0 is set, a verification failure alert is sent to the peer and the \s-1TLS/SSL\s0 handshake is terminated. If \fBverify_callback\fR returns 1, the verification process is continued. If \fBverify_callback\fR always returns 1, the \s-1TLS/SSL\s0 handshake will not be terminated with respect to verification failures and the connection will be established. The calling process can however retrieve the error code of the last verification error using \&\fISSL_get_verify_result\fR\|(3) or by maintaining its own error storage managed by \fBverify_callback\fR. .PP If no \fBverify_callback\fR is specified, the default callback will be used. Its return value is identical to \fBpreverify_ok\fR, so that any verification failure will lead to a termination of the \s-1TLS/SSL\s0 handshake with an alert message, if \s-1SSL_VERIFY_PEER\s0 is set. .SH "BUGS" .IX Header "BUGS" In client mode, it is not checked whether the \s-1SSL_VERIFY_PEER\s0 flag is set, but whether \s-1SSL_VERIFY_NONE\s0 is not set. This can lead to unexpected behaviour, if the \s-1SSL_VERIFY_PEER\s0 and \s-1SSL_VERIFY_NONE\s0 are not used as required (exactly one must be set at any time). .PP The certificate verification depth set with SSL[_CTX]\fI_verify_depth()\fR stops the verification at a certain depth. The error message produced will be that of an incomplete certificate chain and not X509_V_ERR_CERT_CHAIN_TOO_LONG as may be expected. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The SSL*_set_verify*() functions do not provide diagnostic information. .SH "EXAMPLES" .IX Header "EXAMPLES" The following code sequence realizes an example \fBverify_callback\fR function that will always continue the \s-1TLS/SSL\s0 handshake regardless of verification failure, if wished. The callback realizes a verification depth limit with more informational output. .PP All verification errors are printed; information about the certificate chain is printed on request. The example is realized for a server that does allow but not require client certificates. .PP The example makes use of the ex_data technique to store application data into/retrieve application data from the \s-1SSL\s0 structure (see \fISSL_get_ex_new_index\fR\|(3), \&\fISSL_get_ex_data_X509_STORE_CTX_idx\fR\|(3)). .PP .Vb 10 \& ... \& typedef struct { \& int verbose_mode; \& int verify_depth; \& int always_continue; \& } mydata_t; \& int mydata_index; \& ... \& static int verify_callback(int preverify_ok, X509_STORE_CTX *ctx) \& { \& char buf[256]; \& X509 *err_cert; \& int err, depth; \& SSL *ssl; \& mydata_t *mydata; \& \& err_cert = X509_STORE_CTX_get_current_cert(ctx); \& err = X509_STORE_CTX_get_error(ctx); \& depth = X509_STORE_CTX_get_error_depth(ctx); \& \& /* \& * Retrieve the pointer to the SSL of the connection currently treated \& * and the application specific data stored into the SSL object. \& */ \& ssl = X509_STORE_CTX_get_ex_data(ctx, SSL_get_ex_data_X509_STORE_CTX_idx()); \& mydata = SSL_get_ex_data(ssl, mydata_index); \& \& X509_NAME_oneline(X509_get_subject_name(err_cert), buf, 256); \& \& /* \& * Catch a too long certificate chain. The depth limit set using \& * SSL_CTX_set_verify_depth() is by purpose set to "limit+1" so \& * that whenever the "depth>verify_depth" condition is met, we \& * have violated the limit and want to log this error condition. \& * We must do it here, because the CHAIN_TOO_LONG error would not \& * be found explicitly; only errors introduced by cutting off the \& * additional certificates would be logged. \& */ \& if (depth > mydata\->verify_depth) { \& preverify_ok = 0; \& err = X509_V_ERR_CERT_CHAIN_TOO_LONG; \& X509_STORE_CTX_set_error(ctx, err); \& } \& if (!preverify_ok) { \& printf("verify error:num=%d:%s:depth=%d:%s\en", err, \& X509_verify_cert_error_string(err), depth, buf); \& } \& else if (mydata\->verbose_mode) \& { \& printf("depth=%d:%s\en", depth, buf); \& } \& \& /* \& * At this point, err contains the last verification error. We can use \& * it for something special \& */ \& if (!preverify_ok && (err == X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT)) \& { \& X509_NAME_oneline(X509_get_issuer_name(ctx\->current_cert), buf, 256); \& printf("issuer= %s\en", buf); \& } \& \& if (mydata\->always_continue) \& return 1; \& else \& return preverify_ok; \& } \& ... \& \& mydata_t mydata; \& \& ... \& mydata_index = SSL_get_ex_new_index(0, "mydata index", NULL, NULL, NULL); \& \& ... \& SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER|SSL_VERIFY_CLIENT_ONCE, \& verify_callback); \& \& /* \& * Let the verify_callback catch the verify_depth error so that we get \& * an appropriate error in the logfile. \& */ \& SSL_CTX_set_verify_depth(verify_depth + 1); \& \& /* \& * Set up the SSL specific data into "mydata" and store it into th SSL \& * structure. \& */ \& mydata.verify_depth = verify_depth; ... \& SSL_set_ex_data(ssl, mydata_index, &mydata); \& \& ... \& SSL_accept(ssl); /* check of success left out for clarity */ \& if (peer = SSL_get_peer_certificate(ssl)) \& { \& if (SSL_get_verify_result(ssl) == X509_V_OK) \& { \& /* The client sent a certificate which verified OK */ \& } \& } .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_new\fR\|(3), \&\fISSL_CTX_get_verify_mode\fR\|(3), \&\fISSL_get_verify_result\fR\|(3), \&\fISSL_CTX_load_verify_locations\fR\|(3), \&\fISSL_get_peer_certificate\fR\|(3), \&\fISSL_CTX_set_cert_verify_callback\fR\|(3), \&\fISSL_get_ex_data_X509_STORE_CTX_idx\fR\|(3), \&\fISSL_get_ex_new_index\fR\|(3) man3/SSL_CTX_flush_sessions.3000064400000013002147210533270011774 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_flush_sessions 3" .TH SSL_CTX_flush_sessions 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_flush_sessions, SSL_flush_sessions \- remove expired sessions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void SSL_CTX_flush_sessions(SSL_CTX *ctx, long tm); \& void SSL_flush_sessions(SSL_CTX *ctx, long tm); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_flush_sessions()\fR causes a run through the session cache of \&\fBctx\fR to remove sessions expired at time \fBtm\fR. .PP \&\fISSL_flush_sessions()\fR is a synonym for \fISSL_CTX_flush_sessions()\fR. .SH "NOTES" .IX Header "NOTES" If enabled, the internal session cache will collect all sessions established up to the specified maximum number (see \fISSL_CTX_sess_set_cache_size()\fR). As sessions will not be reused ones they are expired, they should be removed from the cache to save resources. This can either be done automatically whenever 255 new sessions were established (see \&\fISSL_CTX_set_session_cache_mode\fR\|(3)) or manually by calling \fISSL_CTX_flush_sessions()\fR. .PP The parameter \fBtm\fR specifies the time which should be used for the expiration test, in most cases the actual time given by \fItime\fR\|(0) will be used. .PP \&\fISSL_CTX_flush_sessions()\fR will only check sessions stored in the internal cache. When a session is found and removed, the remove_session_cb is however called to synchronize with the external cache (see \&\fISSL_CTX_sess_set_get_cb\fR\|(3)). .SH "RETURN VALUES" .IX Header "RETURN VALUES" .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \&\fISSL_CTX_set_session_cache_mode\fR\|(3), \&\fISSL_CTX_set_timeout\fR\|(3), \&\fISSL_CTX_sess_set_get_cb\fR\|(3) man3/err.3000064400000025575147210533270006300 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "err 3" .TH err 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" err \- error codes .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& unsigned long ERR_get_error(void); \& unsigned long ERR_peek_error(void); \& unsigned long ERR_get_error_line(const char **file, int *line); \& unsigned long ERR_peek_error_line(const char **file, int *line); \& unsigned long ERR_get_error_line_data(const char **file, int *line, \& const char **data, int *flags); \& unsigned long ERR_peek_error_line_data(const char **file, int *line, \& const char **data, int *flags); \& \& int ERR_GET_LIB(unsigned long e); \& int ERR_GET_FUNC(unsigned long e); \& int ERR_GET_REASON(unsigned long e); \& \& void ERR_clear_error(void); \& \& char *ERR_error_string(unsigned long e, char *buf); \& const char *ERR_lib_error_string(unsigned long e); \& const char *ERR_func_error_string(unsigned long e); \& const char *ERR_reason_error_string(unsigned long e); \& \& void ERR_print_errors(BIO *bp); \& void ERR_print_errors_fp(FILE *fp); \& \& void ERR_load_crypto_strings(void); \& void ERR_free_strings(void); \& \& void ERR_remove_state(unsigned long pid); \& \& void ERR_put_error(int lib, int func, int reason, const char *file, \& int line); \& void ERR_add_error_data(int num, ...); \& \& void ERR_load_strings(int lib,ERR_STRING_DATA str[]); \& unsigned long ERR_PACK(int lib, int func, int reason); \& int ERR_get_next_error_library(void); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" When a call to the OpenSSL library fails, this is usually signalled by the return value, and an error code is stored in an error queue associated with the current thread. The \fBerr\fR library provides functions to obtain these error codes and textual error messages. .PP The \fIERR_get_error\fR\|(3) manpage describes how to access error codes. .PP Error codes contain information about where the error occurred, and what went wrong. \s-1\fIERR_GET_LIB\s0\fR\|(3) describes how to extract this information. A method to obtain human-readable error messages is described in \fIERR_error_string\fR\|(3). .PP \&\fIERR_clear_error\fR\|(3) can be used to clear the error queue. .PP Note that \fIERR_remove_state\fR\|(3) should be used to avoid memory leaks when threads are terminated. .SH "ADDING NEW ERROR CODES TO OPENSSL" .IX Header "ADDING NEW ERROR CODES TO OPENSSL" See \fIERR_put_error\fR\|(3) if you want to record error codes in the OpenSSL error system from within your application. .PP The remainder of this section is of interest only if you want to add new error codes to OpenSSL or add error codes from external libraries. .SS "Reporting errors" .IX Subsection "Reporting errors" Each sub-library has a specific macro \fIXXXerr()\fR that is used to report errors. Its first argument is a function code \fB\s-1XXX_F_...\s0\fR, the second argument is a reason code \fB\s-1XXX_R_...\s0\fR. Function codes are derived from the function names; reason codes consist of textual error descriptions. For example, the function \fIssl23_read()\fR reports a \&\*(L"handshake failure\*(R" as follows: .PP .Vb 1 \& SSLerr(SSL_F_SSL23_READ, SSL_R_SSL_HANDSHAKE_FAILURE); .Ve .PP Function and reason codes should consist of upper case characters, numbers and underscores only. The error file generation script translates function codes into function names by looking in the header files for an appropriate function name, if none is found it just uses the capitalized form such as \*(L"\s-1SSL23_READ\*(R"\s0 in the above example. .PP The trailing section of a reason code (after the \*(L"_R_\*(R") is translated into lower case and underscores changed to spaces. .PP When you are using new function or reason codes, run \fBmake errors\fR. The necessary \fB#define\fRs will then automatically be added to the sub-library's header file. .PP Although a library will normally report errors using its own specific XXXerr macro, another library's macro can be used. This is normally only done when a library wants to include \s-1ASN1\s0 code which must use the \fIASN1err()\fR macro. .SS "Adding new libraries" .IX Subsection "Adding new libraries" When adding a new sub-library to OpenSSL, assign it a library number \&\fB\s-1ERR_LIB_XXX\s0\fR, define a macro \fIXXXerr()\fR (both in \fBerr.h\fR), add its name to \fBERR_str_libraries[]\fR (in \fBcrypto/err/err.c\fR), and add \&\f(CW\*(C`ERR_load_XXX_strings()\*(C'\fR to the \fIERR_load_crypto_strings()\fR function (in \fBcrypto/err/err_all.c\fR). Finally, add an entry .PP .Vb 1 \& L XXX xxx.h xxx_err.c .Ve .PP to \fBcrypto/err/openssl.ec\fR, and add \fBxxx_err.c\fR to the Makefile. Running \fBmake errors\fR will then generate a file \fBxxx_err.c\fR, and add all error codes used in the library to \fBxxx.h\fR. .PP Additionally the library include file must have a certain form. Typically it will initially look like this: .PP .Vb 2 \& #ifndef HEADER_XXX_H \& #define HEADER_XXX_H \& \& #ifdef _\|_cplusplus \& extern "C" { \& #endif \& \& /* Include files */ \& \& #include \& #include \& \& /* Macros, structures and function prototypes */ \& \& \& /* BEGIN ERROR CODES */ .Ve .PP The \fB\s-1BEGIN ERROR CODES\s0\fR sequence is used by the error code generation script as the point to place new error codes, any text after this point will be overwritten when \fBmake errors\fR is run. The closing #endif etc will be automatically added by the script. .PP The generated C error code file \fBxxx_err.c\fR will load the header files \fBstdio.h\fR, \fBopenssl/err.h\fR and \fBopenssl/xxx.h\fR so the header file must load any additional header files containing any definitions it uses. .SH "USING ERROR CODES IN EXTERNAL LIBRARIES" .IX Header "USING ERROR CODES IN EXTERNAL LIBRARIES" It is also possible to use OpenSSL's error code scheme in external libraries. The library needs to load its own codes and call the OpenSSL error code insertion script \fBmkerr.pl\fR explicitly to add codes to the header file and generate the C error code file. This will normally be done if the external library needs to generate new \s-1ASN1\s0 structures but it can also be used to add more general purpose error code handling. .PP \&\s-1TBA\s0 more details .SH "INTERNALS" .IX Header "INTERNALS" The error queues are stored in a hash table with one \fB\s-1ERR_STATE\s0\fR entry for each pid. \fIERR_get_state()\fR returns the current thread's \&\fB\s-1ERR_STATE\s0\fR. An \fB\s-1ERR_STATE\s0\fR can hold up to \fB\s-1ERR_NUM_ERRORS\s0\fR error codes. When more error codes are added, the old ones are overwritten, on the assumption that the most recent errors are most important. .PP Error strings are also stored in hash table. The hash tables can be obtained by calling ERR_get_err_state_table(void) and ERR_get_string_table(void) respectively. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fICRYPTO_set_locking_callback\fR\|(3), \&\fIERR_get_error\fR\|(3), \&\s-1\fIERR_GET_LIB\s0\fR\|(3), \&\fIERR_clear_error\fR\|(3), \&\fIERR_error_string\fR\|(3), \&\fIERR_print_errors\fR\|(3), \&\fIERR_load_crypto_strings\fR\|(3), \&\fIERR_remove_state\fR\|(3), \&\fIERR_put_error\fR\|(3), \&\fIERR_load_strings\fR\|(3), \&\fISSL_get_error\fR\|(3) man3/EVP_PKEY_print_private.3000064400000013437147210533270011732 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EVP_PKEY_print_private 3" .TH EVP_PKEY_print_private 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EVP_PKEY_print_public, EVP_PKEY_print_private, EVP_PKEY_print_params \- public key algorithm printing routines. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int EVP_PKEY_print_public(BIO *out, const EVP_PKEY *pkey, \& int indent, ASN1_PCTX *pctx); \& int EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey, \& int indent, ASN1_PCTX *pctx); \& int EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey, \& int indent, ASN1_PCTX *pctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The functions \fIEVP_PKEY_print_public()\fR, \fIEVP_PKEY_print_private()\fR and \&\fIEVP_PKEY_print_params()\fR print out the public, private or parameter components of key \fBpkey\fR respectively. The key is sent to \s-1BIO \s0\fBout\fR in human readable form. The parameter \fBindent\fR indicated how far the printout should be indented. .PP The \fBpctx\fR parameter allows the print output to be finely tuned by using \&\s-1ASN1\s0 printing options. If \fBpctx\fR is set to \s-1NULL\s0 then default values will be used. .SH "NOTES" .IX Header "NOTES" Currently no public key algorithms include any options in the \fBpctx\fR parameter parameter. .PP If the key does not include all the components indicated by the function then only those contained in the key will be printed. For example passing a public key to \fIEVP_PKEY_print_private()\fR will only print the public components. .SH "RETURN VALUES" .IX Header "RETURN VALUES" These functions all return 1 for success and 0 or a negative value for failure. In particular a return value of \-2 indicates the operation is not supported by the public key algorithm. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIEVP_PKEY_CTX_new\fR\|(3), \&\fIEVP_PKEY_keygen\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" These functions were first added to OpenSSL 1.0.0. man3/ERR_load_strings.3000064400000012542147210533270010676 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ERR_load_strings 3" .TH ERR_load_strings 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ERR_load_strings, ERR_PACK, ERR_get_next_error_library \- load arbitrary error strings .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void ERR_load_strings(int lib, ERR_STRING_DATA str[]); \& \& int ERR_get_next_error_library(void); \& \& unsigned long ERR_PACK(int lib, int func, int reason); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIERR_load_strings()\fR registers error strings for library number \fBlib\fR. .PP \&\fBstr\fR is an array of error string data: .PP .Vb 5 \& typedef struct ERR_string_data_st \& { \& unsigned long error; \& char *string; \& } ERR_STRING_DATA; .Ve .PP The error code is generated from the library number and a function and reason code: \fBerror\fR = \s-1ERR_PACK\s0(\fBlib\fR, \fBfunc\fR, \fBreason\fR). \&\s-1\fIERR_PACK\s0()\fR is a macro. .PP The last entry in the array is {0,0}. .PP \&\fIERR_get_next_error_library()\fR can be used to assign library numbers to user libraries at runtime. .SH "RETURN VALUE" .IX Header "RETURN VALUE" \&\fIERR_load_strings()\fR returns no value. \s-1\fIERR_PACK\s0()\fR return the error code. \&\fIERR_get_next_error_library()\fR returns a new library number. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIerr\fR\|(3), \fIERR_load_strings\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIERR_load_error_strings()\fR and \s-1\fIERR_PACK\s0()\fR are available in all versions of SSLeay and OpenSSL. \fIERR_get_next_error_library()\fR was added in SSLeay 0.9.0. man3/DH_set_method.3000064400000022500147210533270010177 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DH_set_method 3" .TH DH_set_method 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" DH_set_default_method, DH_get_default_method, DH_set_method, DH_new_method, DH_OpenSSL \- select DH method .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& #include \& #include \& \& void DH_set_default_method(const DH_METHOD *meth); \& \& const DH_METHOD *DH_get_default_method(void); \& \& int DH_set_method(DH *dh, const DH_METHOD *meth); \& \& DH *DH_new_method(ENGINE *engine); \& \& const DH_METHOD *DH_OpenSSL(void); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" A \fB\s-1DH_METHOD\s0\fR specifies the functions that OpenSSL uses for Diffie-Hellman operations. By modifying the method, alternative implementations such as hardware accelerators may be used. \s-1IMPORTANT:\s0 See the \s-1NOTES\s0 section for important information about how these \s-1DH API\s0 functions are affected by the use of \fB\s-1ENGINE\s0\fR \s-1API\s0 calls. .PP Initially, the default \s-1DH_METHOD\s0 is the OpenSSL internal implementation, as returned by \fIDH_OpenSSL()\fR. .PP \&\fIDH_set_default_method()\fR makes \fBmeth\fR the default method for all \s-1DH\s0 structures created later. \fB\s-1NB\s0\fR: This is true only whilst no \s-1ENGINE\s0 has been set as a default for \s-1DH,\s0 so this function is no longer recommended. .PP \&\fIDH_get_default_method()\fR returns a pointer to the current default \s-1DH_METHOD.\s0 However, the meaningfulness of this result is dependent on whether the \s-1ENGINE API\s0 is being used, so this function is no longer recommended. .PP \&\fIDH_set_method()\fR selects \fBmeth\fR to perform all operations using the key \fBdh\fR. This will replace the \s-1DH_METHOD\s0 used by the \s-1DH\s0 key and if the previous method was supplied by an \s-1ENGINE,\s0 the handle to that \s-1ENGINE\s0 will be released during the change. It is possible to have \s-1DH\s0 keys that only work with certain \s-1DH_METHOD\s0 implementations (eg. from an \s-1ENGINE\s0 module that supports embedded hardware-protected keys), and in such cases attempting to change the \s-1DH_METHOD\s0 for the key can have unexpected results. .PP \&\fIDH_new_method()\fR allocates and initializes a \s-1DH\s0 structure so that \fBengine\fR will be used for the \s-1DH\s0 operations. If \fBengine\fR is \s-1NULL,\s0 the default \s-1ENGINE\s0 for \s-1DH\s0 operations is used, and if no default \s-1ENGINE\s0 is set, the \s-1DH_METHOD\s0 controlled by \&\fIDH_set_default_method()\fR is used. .SH "THE DH_METHOD STRUCTURE" .IX Header "THE DH_METHOD STRUCTURE" .Vb 4 \& typedef struct dh_meth_st \& { \& /* name of the implementation */ \& const char *name; \& \& /* generate private and public DH values for key agreement */ \& int (*generate_key)(DH *dh); \& \& /* compute shared secret */ \& int (*compute_key)(unsigned char *key, BIGNUM *pub_key, DH *dh); \& \& /* compute r = a ^ p mod m (May be NULL for some implementations) */ \& int (*bn_mod_exp)(DH *dh, BIGNUM *r, BIGNUM *a, const BIGNUM *p, \& const BIGNUM *m, BN_CTX *ctx, \& BN_MONT_CTX *m_ctx); \& \& /* called at DH_new */ \& int (*init)(DH *dh); \& \& /* called at DH_free */ \& int (*finish)(DH *dh); \& \& int flags; \& \& char *app_data; /* ?? */ \& \& } DH_METHOD; .Ve .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIDH_OpenSSL()\fR and \fIDH_get_default_method()\fR return pointers to the respective \&\fB\s-1DH_METHOD\s0\fRs. .PP \&\fIDH_set_default_method()\fR returns no value. .PP \&\fIDH_set_method()\fR returns non-zero if the provided \fBmeth\fR was successfully set as the method for \fBdh\fR (including unloading the \s-1ENGINE\s0 handle if the previous method was supplied by an \s-1ENGINE\s0). .PP \&\fIDH_new_method()\fR returns \s-1NULL\s0 and sets an error code that can be obtained by \&\fIERR_get_error\fR\|(3) if the allocation fails. Otherwise it returns a pointer to the newly allocated structure. .SH "NOTES" .IX Header "NOTES" As of version 0.9.7, \s-1DH_METHOD\s0 implementations are grouped together with other algorithmic APIs (eg. \s-1RSA_METHOD, EVP_CIPHER,\s0 etc) in \fB\s-1ENGINE\s0\fR modules. If a default \s-1ENGINE\s0 is specified for \s-1DH\s0 functionality using an \s-1ENGINE API\s0 function, that will override any \s-1DH\s0 defaults set using the \s-1DH API \s0(ie. \&\fIDH_set_default_method()\fR). For this reason, the \s-1ENGINE API\s0 is the recommended way to control default implementations for use in \s-1DH\s0 and other cryptographic algorithms. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdh\fR\|(3), \fIDH_new\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIDH_set_default_method()\fR, \fIDH_get_default_method()\fR, \fIDH_set_method()\fR, \&\fIDH_new_method()\fR and \fIDH_OpenSSL()\fR were added in OpenSSL 0.9.4. .PP \&\fIDH_set_default_openssl_method()\fR and \fIDH_get_default_openssl_method()\fR replaced \&\fIDH_set_default_method()\fR and \fIDH_get_default_method()\fR respectively, and \&\fIDH_set_method()\fR and \fIDH_new_method()\fR were altered to use \fB\s-1ENGINE\s0\fRs rather than \&\fB\s-1DH_METHOD\s0\fRs during development of the engine version of OpenSSL 0.9.6. For 0.9.7, the handling of defaults in the \s-1ENGINE API\s0 was restructured so that this change was reversed, and behaviour of the other functions resembled more closely the previous behaviour. The behaviour of defaults in the \s-1ENGINE API\s0 now transparently overrides the behaviour of defaults in the \s-1DH API\s0 without requiring changing these function prototypes. man3/ERR_clear_error.3000064400000010676147210533270010513 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ERR_clear_error 3" .TH ERR_clear_error 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ERR_clear_error \- clear the error queue .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void ERR_clear_error(void); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIERR_clear_error()\fR empties the current thread's error queue. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIERR_clear_error()\fR has no return value. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIerr\fR\|(3), \fIERR_get_error\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIERR_clear_error()\fR is available in all versions of SSLeay and OpenSSL. man3/DSA_size.3000064400000011044147210533270007133 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DSA_size 3" .TH DSA_size 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" DSA_size \- get DSA signature size .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int DSA_size(const DSA *dsa); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This function returns the size of an \s-1ASN.1\s0 encoded \s-1DSA\s0 signature in bytes. It can be used to determine how much memory must be allocated for a \s-1DSA\s0 signature. .PP \&\fBdsa\->q\fR must not be \fB\s-1NULL\s0\fR. .SH "RETURN VALUE" .IX Header "RETURN VALUE" The size in bytes. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdsa\fR\|(3), \fIDSA_sign\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIDSA_size()\fR is available in all versions of SSLeay and OpenSSL. man3/BIO_f_md.3000064400000022005147210533270007067 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BIO_f_md 3" .TH BIO_f_md 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BIO_f_md, BIO_set_md, BIO_get_md, BIO_get_md_ctx \- message digest BIO filter .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& #include \& #include \& \& BIO_METHOD * BIO_f_md(void); \& int BIO_set_md(BIO *b,EVP_MD *md); \& int BIO_get_md(BIO *b,EVP_MD **mdp); \& int BIO_get_md_ctx(BIO *b,EVP_MD_CTX **mdcp); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBIO_f_md()\fR returns the message digest \s-1BIO\s0 method. This is a filter \&\s-1BIO\s0 that digests any data passed through it, it is a \s-1BIO\s0 wrapper for the digest routines \fIEVP_DigestInit()\fR, \fIEVP_DigestUpdate()\fR and \fIEVP_DigestFinal()\fR. .PP Any data written or read through a digest \s-1BIO\s0 using \fIBIO_read()\fR and \&\fIBIO_write()\fR is digested. .PP \&\fIBIO_gets()\fR, if its \fBsize\fR parameter is large enough finishes the digest calculation and returns the digest value. \fIBIO_puts()\fR is not supported. .PP \&\fIBIO_reset()\fR reinitialises a digest \s-1BIO.\s0 .PP \&\fIBIO_set_md()\fR sets the message digest of \s-1BIO \s0\fBb\fR to \fBmd\fR: this must be called to initialize a digest \s-1BIO\s0 before any data is passed through it. It is a \fIBIO_ctrl()\fR macro. .PP \&\fIBIO_get_md()\fR places the a pointer to the digest BIOs digest method in \fBmdp\fR, it is a \fIBIO_ctrl()\fR macro. .PP \&\fIBIO_get_md_ctx()\fR returns the digest BIOs context into \fBmdcp\fR. .SH "NOTES" .IX Header "NOTES" The context returned by \fIBIO_get_md_ctx()\fR can be used in calls to \fIEVP_DigestFinal()\fR and also the signature routines \fIEVP_SignFinal()\fR and \fIEVP_VerifyFinal()\fR. .PP The context returned by \fIBIO_get_md_ctx()\fR is an internal context structure. Changes made to this context will affect the digest \&\s-1BIO\s0 itself and the context pointer will become invalid when the digest \&\s-1BIO\s0 is freed. .PP After the digest has been retrieved from a digest \s-1BIO\s0 it must be reinitialized by calling \fIBIO_reset()\fR, or \fIBIO_set_md()\fR before any more data is passed through it. .PP If an application needs to call \fIBIO_gets()\fR or \fIBIO_puts()\fR through a chain containing digest BIOs then this can be done by prepending a buffering \s-1BIO.\s0 .PP Before OpenSSL 1.0.0 the call to \fIBIO_get_md_ctx()\fR would only work if the \s-1BIO\s0 had been initialized for example by calling \fIBIO_set_md()\fR ). In OpenSSL 1.0.0 and later the context is always returned and the \s-1BIO\s0 is state is set to initialized. This allows applications to initialize the context externally if the standard calls such as \fIBIO_set_md()\fR are not sufficiently flexible. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBIO_f_md()\fR returns the digest \s-1BIO\s0 method. .PP \&\fIBIO_set_md()\fR, \fIBIO_get_md()\fR and \fIBIO_md_ctx()\fR return 1 for success and 0 for failure. .SH "EXAMPLES" .IX Header "EXAMPLES" The following example creates a \s-1BIO\s0 chain containing an \s-1SHA1\s0 and \s-1MD5\s0 digest \s-1BIO\s0 and passes the string \*(L"Hello World\*(R" through it. Error checking has been omitted for clarity. .PP .Vb 10 \& BIO *bio, *mdtmp; \& char message[] = "Hello World"; \& bio = BIO_new(BIO_s_null()); \& mdtmp = BIO_new(BIO_f_md()); \& BIO_set_md(mdtmp, EVP_sha1()); \& /* For BIO_push() we want to append the sink BIO and keep a note of \& * the start of the chain. \& */ \& bio = BIO_push(mdtmp, bio); \& mdtmp = BIO_new(BIO_f_md()); \& BIO_set_md(mdtmp, EVP_md5()); \& bio = BIO_push(mdtmp, bio); \& /* Note: mdtmp can now be discarded */ \& BIO_write(bio, message, strlen(message)); .Ve .PP The next example digests data by reading through a chain instead: .PP .Vb 10 \& BIO *bio, *mdtmp; \& char buf[1024]; \& int rdlen; \& bio = BIO_new_file(file, "rb"); \& mdtmp = BIO_new(BIO_f_md()); \& BIO_set_md(mdtmp, EVP_sha1()); \& bio = BIO_push(mdtmp, bio); \& mdtmp = BIO_new(BIO_f_md()); \& BIO_set_md(mdtmp, EVP_md5()); \& bio = BIO_push(mdtmp, bio); \& do { \& rdlen = BIO_read(bio, buf, sizeof(buf)); \& /* Might want to do something with the data here */ \& } while(rdlen > 0); .Ve .PP This next example retrieves the message digests from a \s-1BIO\s0 chain and outputs them. This could be used with the examples above. .PP .Vb 10 \& BIO *mdtmp; \& unsigned char mdbuf[EVP_MAX_MD_SIZE]; \& int mdlen; \& int i; \& mdtmp = bio; /* Assume bio has previously been set up */ \& do { \& EVP_MD *md; \& mdtmp = BIO_find_type(mdtmp, BIO_TYPE_MD); \& if(!mdtmp) break; \& BIO_get_md(mdtmp, &md); \& printf("%s digest", OBJ_nid2sn(EVP_MD_type(md))); \& mdlen = BIO_gets(mdtmp, mdbuf, EVP_MAX_MD_SIZE); \& for(i = 0; i < mdlen; i++) printf(":%02X", mdbuf[i]); \& printf("\en"); \& mdtmp = BIO_next(mdtmp); \& } while(mdtmp); \& \& BIO_free_all(bio); .Ve .SH "BUGS" .IX Header "BUGS" The lack of support for \fIBIO_puts()\fR and the non standard behaviour of \&\fIBIO_gets()\fR could be regarded as anomalous. It could be argued that \fIBIO_gets()\fR and \fIBIO_puts()\fR should be passed to the next \s-1BIO\s0 in the chain and digest the data passed through and that digests should be retrieved using a separate \fIBIO_ctrl()\fR call. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\s-1TBA\s0 man3/DSA_generate_key.3000064400000011336147210533270010627 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DSA_generate_key 3" .TH DSA_generate_key 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" DSA_generate_key \- generate DSA key pair .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int DSA_generate_key(DSA *a); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIDSA_generate_key()\fR expects \fBa\fR to contain \s-1DSA\s0 parameters. It generates a new key pair and stores it in \fBa\->pub_key\fR and \fBa\->priv_key\fR. .PP The \s-1PRNG\s0 must be seeded prior to calling \fIDSA_generate_key()\fR. .SH "RETURN VALUE" .IX Header "RETURN VALUE" \&\fIDSA_generate_key()\fR returns 1 on success, 0 otherwise. The error codes can be obtained by \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdsa\fR\|(3), \fIERR_get_error\fR\|(3), \fIrand\fR\|(3), \&\fIDSA_generate_parameters\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIDSA_generate_key()\fR is available since SSLeay 0.8. man3/BIO_new.3000064400000014160147210533270006756 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BIO_new 3" .TH BIO_new 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BIO_new, BIO_set, BIO_free, BIO_vfree, BIO_free_all \- BIO allocation and freeing functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& BIO * BIO_new(BIO_METHOD *type); \& int BIO_set(BIO *a,BIO_METHOD *type); \& int BIO_free(BIO *a); \& void BIO_vfree(BIO *a); \& void BIO_free_all(BIO *a); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fIBIO_new()\fR function returns a new \s-1BIO\s0 using method \fBtype\fR. .PP \&\fIBIO_set()\fR sets the method of an already existing \s-1BIO.\s0 .PP \&\fIBIO_free()\fR frees up a single \s-1BIO,\s0 \fIBIO_vfree()\fR also frees up a single \s-1BIO\s0 but it does not return a value. Calling \fIBIO_free()\fR may also have some effect on the underlying I/O structure, for example it may close the file being referred to under certain circumstances. For more details see the individual \&\s-1BIO_METHOD\s0 descriptions. .PP \&\fIBIO_free_all()\fR frees up an entire \s-1BIO\s0 chain, it does not halt if an error occurs freeing up an individual \s-1BIO\s0 in the chain. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBIO_new()\fR returns a newly created \s-1BIO\s0 or \s-1NULL\s0 if the call fails. .PP \&\fIBIO_set()\fR, \fIBIO_free()\fR return 1 for success and 0 for failure. .PP \&\fIBIO_free_all()\fR and \fIBIO_vfree()\fR do not return values. .SH "NOTES" .IX Header "NOTES" Some BIOs (such as memory BIOs) can be used immediately after calling \&\fIBIO_new()\fR. Others (such as file BIOs) need some additional initialization, and frequently a utility function exists to create and initialize such BIOs. .PP If \fIBIO_free()\fR is called on a \s-1BIO\s0 chain it will only free one \s-1BIO\s0 resulting in a memory leak. .PP Calling \fIBIO_free_all()\fR a single \s-1BIO\s0 has the same effect as calling \fIBIO_free()\fR on it other than the discarded return value. .PP Normally the \fBtype\fR argument is supplied by a function which returns a pointer to a \s-1BIO_METHOD.\s0 There is a naming convention for such functions: a source/sink \s-1BIO\s0 is normally called BIO_s_*() and a filter \s-1BIO\s0 BIO_f_*(); .SH "EXAMPLE" .IX Header "EXAMPLE" Create a memory \s-1BIO:\s0 .PP .Vb 1 \& BIO *mem = BIO_new(BIO_s_mem()); .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\s-1TBA\s0 man3/d2i_ECPKParameters.3000064400000020065147210533270011001 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "d2i_ECPKParameters 3" .TH d2i_ECPKParameters 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" d2i_ECPKParameters, i2d_ECPKParameters, d2i_ECPKParameters_bio, i2d_ECPKParameters_bio, d2i_ECPKParameters_fp, i2d_ECPKParameters_fp, ECPKParameters_print, ECPKParameters_print_fp \- Functions for decoding and encoding ASN1 representations of elliptic curve entities .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& EC_GROUP *d2i_ECPKParameters(EC_GROUP **px, const unsigned char **in, long len); \& int i2d_ECPKParameters(const EC_GROUP *x, unsigned char **out); \& #define d2i_ECPKParameters_bio(bp,x) ASN1_d2i_bio_of(EC_GROUP,NULL,d2i_ECPKParameters,bp,x) \& #define i2d_ECPKParameters_bio(bp,x) ASN1_i2d_bio_of_const(EC_GROUP,i2d_ECPKParameters,bp,x) \& #define d2i_ECPKParameters_fp(fp,x) (EC_GROUP *)ASN1_d2i_fp(NULL, \e \& (char *(*)())d2i_ECPKParameters,(fp),(unsigned char **)(x)) \& #define i2d_ECPKParameters_fp(fp,x) ASN1_i2d_fp(i2d_ECPKParameters,(fp), \e \& (unsigned char *)(x)) \& int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off); \& int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The ECPKParameters encode and decode routines encode and parse the public parameters for an \&\fB\s-1EC_GROUP\s0\fR structure, which represents a curve. .PP \&\fId2i_ECPKParameters()\fR attempts to decode \fBlen\fR bytes at \fB*in\fR. If successful a pointer to the \fB\s-1EC_GROUP\s0\fR structure is returned. If an error occurred then \fB\s-1NULL\s0\fR is returned. If \fBpx\fR is not \fB\s-1NULL\s0\fR then the returned structure is written to \fB*px\fR. If \fB*px\fR is not \fB\s-1NULL\s0\fR then it is assumed that \fB*px\fR contains a valid \fB\s-1EC_GROUP\s0\fR structure and an attempt is made to reuse it. If the call is successful \fB*in\fR is incremented to the byte following the parsed data. .PP \&\fIi2d_ECPKParameters()\fR encodes the structure pointed to by \fBx\fR into \s-1DER\s0 format. If \fBout\fR is not \fB\s-1NULL\s0\fR is writes the \s-1DER\s0 encoded data to the buffer at \fB*out\fR, and increments it to point after the data just written. If the return value is negative an error occurred, otherwise it returns the length of the encoded data. .PP If \fB*out\fR is \fB\s-1NULL\s0\fR memory will be allocated for a buffer and the encoded data written to it. In this case \fB*out\fR is not incremented and it points to the start of the data just written. .PP \&\fId2i_ECPKParameters_bio()\fR is similar to \fId2i_ECPKParameters()\fR except it attempts to parse data from \s-1BIO \s0\fBbp\fR. .PP \&\fId2i_ECPKParameters_fp()\fR is similar to \fId2i_ECPKParameters()\fR except it attempts to parse data from \s-1FILE\s0 pointer \fBfp\fR. .PP \&\fIi2d_ECPKParameters_bio()\fR is similar to \fIi2d_ECPKParameters()\fR except it writes the encoding of the structure \fBx\fR to \s-1BIO \s0\fBbp\fR and it returns 1 for success and 0 for failure. .PP \&\fIi2d_ECPKParameters_fp()\fR is similar to \fIi2d_ECPKParameters()\fR except it writes the encoding of the structure \fBx\fR to \s-1BIO \s0\fBbp\fR and it returns 1 for success and 0 for failure. .PP These functions are very similar to the X509 functions described in \fId2i_X509\fR\|(3), where further notes and examples are available. .PP The ECPKParameters_print and ECPKParameters_print_fp functions print a human-readable output of the public parameters of the \s-1EC_GROUP\s0 to \fBbp\fR or \fBfp\fR. The output lines are indented by \fBoff\fR spaces. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fId2i_ECPKParameters()\fR, \fId2i_ECPKParameters_bio()\fR and \fId2i_ECPKParameters_fp()\fR return a valid \fB\s-1EC_GROUP\s0\fR structure or \fB\s-1NULL\s0\fR if an error occurs. .PP \&\fIi2d_ECPKParameters()\fR returns the number of bytes successfully encoded or a negative value if an error occurs. .PP \&\fIi2d_ECPKParameters_bio()\fR, \fIi2d_ECPKParameters_fp()\fR, ECPKParameters_print and ECPKParameters_print_fp return 1 for success and 0 if an error occurs. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIcrypto\fR\|(3), \fIec\fR\|(3), \fIEC_GROUP_new\fR\|(3), \fIEC_GROUP_copy\fR\|(3), \&\fIEC_POINT_new\fR\|(3), \fIEC_POINT_add\fR\|(3), \fIEC_KEY_new\fR\|(3), \&\fIEC_GFp_simple_method\fR\|(3), \fId2i_X509\fR\|(3) man3/SSL_CTX_set_quiet_shutdown.3000064400000014406147210533270012673 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_quiet_shutdown 3" .TH SSL_CTX_set_quiet_shutdown 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_quiet_shutdown, SSL_CTX_get_quiet_shutdown, SSL_set_quiet_shutdown, SSL_get_quiet_shutdown \- manipulate shutdown behaviour .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx, int mode); \& int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx); \& \& void SSL_set_quiet_shutdown(SSL *ssl, int mode); \& int SSL_get_quiet_shutdown(const SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set_quiet_shutdown()\fR sets the \*(L"quiet shutdown\*(R" flag for \fBctx\fR to be \&\fBmode\fR. \s-1SSL\s0 objects created from \fBctx\fR inherit the \fBmode\fR valid at the time \&\fISSL_new\fR\|(3) is called. \fBmode\fR may be 0 or 1. .PP \&\fISSL_CTX_get_quiet_shutdown()\fR returns the \*(L"quiet shutdown\*(R" setting of \fBctx\fR. .PP \&\fISSL_set_quiet_shutdown()\fR sets the \*(L"quiet shutdown\*(R" flag for \fBssl\fR to be \&\fBmode\fR. The setting stays valid until \fBssl\fR is removed with \&\fISSL_free\fR\|(3) or \fISSL_set_quiet_shutdown()\fR is called again. It is not changed when \fISSL_clear\fR\|(3) is called. \&\fBmode\fR may be 0 or 1. .PP \&\fISSL_get_quiet_shutdown()\fR returns the \*(L"quiet shutdown\*(R" setting of \fBssl\fR. .SH "NOTES" .IX Header "NOTES" Normally when a \s-1SSL\s0 connection is finished, the parties must send out \&\*(L"close notify\*(R" alert messages using \fISSL_shutdown\fR\|(3) for a clean shutdown. .PP When setting the \*(L"quiet shutdown\*(R" flag to 1, \fISSL_shutdown\fR\|(3) will set the internal flags to SSL_SENT_SHUTDOWN|SSL_RECEIVED_SHUTDOWN. (\fISSL_shutdown\fR\|(3) then behaves like \&\fISSL_set_shutdown\fR\|(3) called with SSL_SENT_SHUTDOWN|SSL_RECEIVED_SHUTDOWN.) The session is thus considered to be shutdown, but no \*(L"close notify\*(R" alert is sent to the peer. This behaviour violates the \s-1TLS\s0 standard. .PP The default is normal shutdown behaviour as described by the \s-1TLS\s0 standard. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CTX_set_quiet_shutdown()\fR and \fISSL_set_quiet_shutdown()\fR do not return diagnostic information. .PP \&\fISSL_CTX_get_quiet_shutdown()\fR and SSL_get_quiet_shutdown return the current setting. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_shutdown\fR\|(3), \&\fISSL_set_shutdown\fR\|(3), \fISSL_new\fR\|(3), \&\fISSL_clear\fR\|(3), \fISSL_free\fR\|(3) man3/BIO_read.3000064400000015130147210533270007076 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BIO_read 3" .TH BIO_read 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BIO_read, BIO_write, BIO_gets, BIO_puts \- BIO I/O functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int BIO_read(BIO *b, void *buf, int len); \& int BIO_gets(BIO *b, char *buf, int size); \& int BIO_write(BIO *b, const void *buf, int len); \& int BIO_puts(BIO *b, const char *buf); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBIO_read()\fR attempts to read \fBlen\fR bytes from \s-1BIO \s0\fBb\fR and places the data in \fBbuf\fR. .PP \&\fIBIO_gets()\fR performs the BIOs \*(L"gets\*(R" operation and places the data in \fBbuf\fR. Usually this operation will attempt to read a line of data from the \s-1BIO\s0 of maximum length \fBlen\fR. There are exceptions to this however, for example \fIBIO_gets()\fR on a digest \s-1BIO\s0 will calculate and return the digest and other BIOs may not support \fIBIO_gets()\fR at all. .PP \&\fIBIO_write()\fR attempts to write \fBlen\fR bytes from \fBbuf\fR to \s-1BIO \s0\fBb\fR. .PP \&\fIBIO_puts()\fR attempts to write a null terminated string \fBbuf\fR to \s-1BIO \s0\fBb\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" All these functions return either the amount of data successfully read or written (if the return value is positive) or that no data was successfully read or written if the result is 0 or \-1. If the return value is \-2 then the operation is not implemented in the specific \s-1BIO\s0 type. .SH "NOTES" .IX Header "NOTES" A 0 or \-1 return is not necessarily an indication of an error. In particular when the source/sink is non-blocking or of a certain type it may merely be an indication that no data is currently available and that the application should retry the operation later. .PP One technique sometimes used with blocking sockets is to use a system call (such as \fIselect()\fR, \fIpoll()\fR or equivalent) to determine when data is available and then call \fIread()\fR to read the data. The equivalent with BIOs (that is call \&\fIselect()\fR on the underlying I/O structure and then call \fIBIO_read()\fR to read the data) should \fBnot\fR be used because a single call to \fIBIO_read()\fR can cause several reads (and writes in the case of \s-1SSL\s0 BIOs) on the underlying I/O structure and may block as a result. Instead \fIselect()\fR (or equivalent) should be combined with non blocking I/O so successive reads will request a retry instead of blocking. .PP See \fIBIO_should_retry\fR\|(3) for details of how to determine the cause of a retry and other I/O issues. .PP If the \fIBIO_gets()\fR function is not supported by a \s-1BIO\s0 then it possible to work around this by adding a buffering \s-1BIO \s0\fIBIO_f_buffer\fR\|(3) to the chain. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIBIO_should_retry\fR\|(3) .PP \&\s-1TBA\s0 man3/d2i_RSAPublicKey.3000064400000013752147210533270010475 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "d2i_RSAPublicKey 3" .TH d2i_RSAPublicKey 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" d2i_RSAPublicKey, i2d_RSAPublicKey, d2i_RSAPrivateKey, i2d_RSAPrivateKey, d2i_RSA_PUBKEY, i2d_RSA_PUBKEY, i2d_Netscape_RSA, d2i_Netscape_RSA \- RSA public and private key encoding functions. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& #include \& #include \& \& RSA * d2i_RSAPublicKey(RSA **a, const unsigned char **pp, long length); \& \& int i2d_RSAPublicKey(RSA *a, unsigned char **pp); \& \& RSA * d2i_RSA_PUBKEY(RSA **a, const unsigned char **pp, long length); \& \& int i2d_RSA_PUBKEY(RSA *a, unsigned char **pp); \& \& RSA * d2i_RSAPrivateKey(RSA **a, const unsigned char **pp, long length); \& \& int i2d_RSAPrivateKey(RSA *a, unsigned char **pp); \& \& int i2d_Netscape_RSA(RSA *a, unsigned char **pp, int (*cb)()); \& \& RSA * d2i_Netscape_RSA(RSA **a, const unsigned char **pp, long length, int (*cb)()); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fId2i_RSAPublicKey()\fR and \fIi2d_RSAPublicKey()\fR decode and encode a PKCS#1 RSAPublicKey structure. .PP \&\fId2i_RSA_PUBKEY()\fR and \fIi2d_RSA_PUBKEY()\fR decode and encode an \s-1RSA\s0 public key using a SubjectPublicKeyInfo (certificate public key) structure. .PP \&\fId2i_RSAPrivateKey()\fR, \fIi2d_RSAPrivateKey()\fR decode and encode a PKCS#1 RSAPrivateKey structure. .PP \&\fId2i_Netscape_RSA()\fR, \fIi2d_Netscape_RSA()\fR decode and encode an \s-1RSA\s0 private key in \&\s-1NET\s0 format. .PP The usage of all of these functions is similar to the \fId2i_X509()\fR and \&\fIi2d_X509()\fR described in the \fId2i_X509\fR\|(3) manual page. .SH "NOTES" .IX Header "NOTES" The \fB\s-1RSA\s0\fR structure passed to the private key encoding functions should have all the PKCS#1 private key components present. .PP The data encoded by the private key functions is unencrypted and therefore offers no private key security. .PP The \s-1NET\s0 format functions are present to provide compatibility with certain very old software. This format has some severe security weaknesses and should be avoided if possible. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fId2i_X509\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1TBA\s0 man3/x509.3000064400000014040147210533270006176 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "x509 3" .TH x509 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" x509 \- X.509 certificate handling .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" A X.509 certificate is a structured grouping of information about an individual, a device, or anything one can imagine. A X.509 \s-1CRL \&\s0(certificate revocation list) is a tool to help determine if a certificate is still valid. The exact definition of those can be found in the X.509 document from ITU-T, or in \s-1RFC3280\s0 from \s-1PKIX.\s0 In OpenSSL, the type X509 is used to express such a certificate, and the type X509_CRL is used to express a \s-1CRL.\s0 .PP A related structure is a certificate request, defined in PKCS#10 from \&\s-1RSA\s0 Security, Inc, also reflected in \s-1RFC2896. \s0 In OpenSSL, the type X509_REQ is used to express such a certificate request. .PP To handle some complex parts of a certificate, there are the types X509_NAME (to express a certificate name), X509_ATTRIBUTE (to express a certificate attributes), X509_EXTENSION (to express a certificate extension) and a few more. .PP Finally, there's the supertype X509_INFO, which can contain a \s-1CRL,\s0 a certificate and a corresponding private key. .PP \&\fBX509_\fR\fI...\fR, \fBd2i_X509_\fR\fI...\fR and \fBi2d_X509_\fR\fI...\fR handle X.509 certificates, with some exceptions, shown below. .PP \&\fBX509_CRL_\fR\fI...\fR, \fBd2i_X509_CRL_\fR\fI...\fR and \fBi2d_X509_CRL_\fR\fI...\fR handle X.509 CRLs. .PP \&\fBX509_REQ_\fR\fI...\fR, \fBd2i_X509_REQ_\fR\fI...\fR and \fBi2d_X509_REQ_\fR\fI...\fR handle PKCS#10 certificate requests. .PP \&\fBX509_NAME_\fR\fI...\fR handle certificate names. .PP \&\fBX509_ATTRIBUTE_\fR\fI...\fR handle certificate attributes. .PP \&\fBX509_EXTENSION_\fR\fI...\fR handle certificate extensions. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIX509_NAME_ENTRY_get_object\fR\|(3), \&\fIX509_NAME_add_entry_by_txt\fR\|(3), \&\fIX509_NAME_add_entry_by_NID\fR\|(3), \&\fIX509_NAME_print_ex\fR\|(3), \&\fIX509_NAME_new\fR\|(3), \&\fId2i_X509\fR\|(3), \&\fId2i_X509_ALGOR\fR\|(3), \&\fId2i_X509_CRL\fR\|(3), \&\fId2i_X509_NAME\fR\|(3), \&\fId2i_X509_REQ\fR\|(3), \&\fId2i_X509_SIG\fR\|(3), \&\fIcrypto\fR\|(3), \&\fIx509v3\fR\|(3) man3/BIO_s_null.3000064400000011552147210533270007463 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BIO_s_null 3" .TH BIO_s_null 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BIO_s_null \- null data sink .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& BIO_METHOD * BIO_s_null(void); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBIO_s_null()\fR returns the null sink \s-1BIO\s0 method. Data written to the null sink is discarded, reads return \s-1EOF.\s0 .SH "NOTES" .IX Header "NOTES" A null sink \s-1BIO\s0 behaves in a similar manner to the Unix /dev/null device. .PP A null bio can be placed on the end of a chain to discard any data passed through it. .PP A null sink is useful if, for example, an application wishes to digest some data by writing through a digest bio but not send the digested data anywhere. Since a \s-1BIO\s0 chain must normally include a source/sink \s-1BIO\s0 this can be achieved by adding a null sink \s-1BIO\s0 to the end of the chain .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBIO_s_null()\fR returns the null sink \s-1BIO\s0 method. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\s-1TBA\s0 man3/d2i_DHparams.3000064400000011033147210533270007725 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "d2i_DHparams 3" .TH d2i_DHparams 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" d2i_DHparams, i2d_DHparams \- PKCS#3 DH parameter functions. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& DH *d2i_DHparams(DH **a, unsigned char **pp, long length); \& int i2d_DHparams(DH *a, unsigned char **pp); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions decode and encode PKCS#3 \s-1DH\s0 parameters using the DHparameter structure described in PKCS#3. .PP Othewise these behave in a similar way to \fId2i_X509()\fR and \fIi2d_X509()\fR described in the \fId2i_X509\fR\|(3) manual page. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fId2i_X509\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1TBA\s0 man3/BIO_f_base64.3000064400000014201147210533270007552 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BIO_f_base64 3" .TH BIO_f_base64 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BIO_f_base64 \- base64 BIO filter .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& #include \& #include \& \& BIO_METHOD * BIO_f_base64(void); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBIO_f_base64()\fR returns the base64 \s-1BIO\s0 method. This is a filter \&\s-1BIO\s0 that base64 encodes any data written through it and decodes any data read through it. .PP Base64 BIOs do not support \fIBIO_gets()\fR or \fIBIO_puts()\fR. .PP \&\fIBIO_flush()\fR on a base64 \s-1BIO\s0 that is being written through is used to signal that no more data is to be encoded: this is used to flush the final block through the \s-1BIO.\s0 .PP The flag \s-1BIO_FLAGS_BASE64_NO_NL\s0 can be set with \fIBIO_set_flags()\fR to encode the data all on one line or expect the data to be all on one line. .SH "NOTES" .IX Header "NOTES" Because of the format of base64 encoding the end of the encoded block cannot always be reliably determined. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBIO_f_base64()\fR returns the base64 \s-1BIO\s0 method. .SH "EXAMPLES" .IX Header "EXAMPLES" Base64 encode the string \*(L"Hello World\en\*(R" and write the result to standard output: .PP .Vb 2 \& BIO *bio, *b64; \& char message[] = "Hello World \en"; \& \& b64 = BIO_new(BIO_f_base64()); \& bio = BIO_new_fp(stdout, BIO_NOCLOSE); \& BIO_push(b64, bio); \& BIO_write(b64, message, strlen(message)); \& BIO_flush(b64); \& \& BIO_free_all(b64); .Ve .PP Read Base64 encoded data from standard input and write the decoded data to standard output: .PP .Vb 3 \& BIO *bio, *b64, *bio_out; \& char inbuf[512]; \& int inlen; \& \& b64 = BIO_new(BIO_f_base64()); \& bio = BIO_new_fp(stdin, BIO_NOCLOSE); \& bio_out = BIO_new_fp(stdout, BIO_NOCLOSE); \& BIO_push(b64, bio); \& while((inlen = BIO_read(b64, inbuf, 512)) > 0) \& BIO_write(bio_out, inbuf, inlen); \& \& BIO_flush(bio_out); \& BIO_free_all(b64); .Ve .SH "BUGS" .IX Header "BUGS" The ambiguity of \s-1EOF\s0 in base64 encoded data can cause additional data following the base64 encoded block to be misinterpreted. .PP There should be some way of specifying a test that the \s-1BIO\s0 can perform to reliably determine \s-1EOF \s0(for example a \s-1MIME\s0 boundary). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\s-1TBA\s0 man3/OPENSSL_instrument_bus.3000064400000013251147210533270011760 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "OPENSSL_instrument_bus 3" .TH OPENSSL_instrument_bus 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" OPENSSL_instrument_bus, OPENSSL_instrument_bus2 \- instrument references to memory bus .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 4 \& #ifdef OPENSSL_CPUID_OBJ \& size_t OPENSSL_instrument_bus (int *vector,size_t num); \& size_t OPENSSL_instrument_bus2(int *vector,size_t num,size_t max); \& #endif .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" It was empirically found that timings of references to primary memory are subject to irregular, apparently non-deterministic variations. The subroutines in question instrument these references for purposes of gathering entropy for random number generator. In order to make it bus-bound a 'flush cache line' instruction is used between probes. In addition probes are added to \fBvector\fR elements in atomic or interlocked manner, which should contribute additional noise on multi-processor systems. This also means that \fBvector[num]\fR should be zeroed upon invocation (if you want to retrieve actual probe values). .PP OPENSSL_instrument_bus performs \fBnum\fR probes and records the number of oscillator cycles every probe took. .PP OPENSSL_instrument_bus2 on the other hand \fBaccumulates\fR consecutive probes with the same value, i.e. in a way it records duration of periods when probe values appeared deterministic. The subroutine performs at most \fBmax\fR probes in attempt to fill the \fBvector[num]\fR, with \fBmax\fR value of 0 meaning \*(L"as many as it takes.\*(R" .SH "RETURN VALUE" .IX Header "RETURN VALUE" Return value of 0 indicates that \s-1CPU\s0 is not capable of performing the benchmark, either because oscillator counter or 'flush cache line' is not available on current platform. For reference, on x86 'flush cache line' was introduced with the \s-1SSE2\s0 extensions. .PP Otherwise number of recorded values is returned. man3/SSL_get_client_CA_list.3000064400000012673147210533270011737 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_get_client_CA_list 3" .TH SSL_get_client_CA_list 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_get_client_CA_list, SSL_CTX_get_client_CA_list \- get list of client CAs .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& STACK_OF(X509_NAME) *SSL_get_client_CA_list(const SSL *s); \& STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(const SSL_CTX *ctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_get_client_CA_list()\fR returns the list of client CAs explicitly set for \&\fBctx\fR using \fISSL_CTX_set_client_CA_list\fR\|(3). .PP \&\fISSL_get_client_CA_list()\fR returns the list of client CAs explicitly set for \fBssl\fR using \fISSL_set_client_CA_list()\fR or \fBssl\fR's \s-1SSL_CTX\s0 object with \&\fISSL_CTX_set_client_CA_list\fR\|(3), when in server mode. In client mode, SSL_get_client_CA_list returns the list of client CAs sent from the server, if any. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CTX_set_client_CA_list()\fR and \fISSL_set_client_CA_list()\fR do not return diagnostic information. .PP \&\fISSL_CTX_add_client_CA()\fR and \fISSL_add_client_CA()\fR have the following return values: .IP "\s-1STACK_OF\s0(X509_NAMES)" 4 .IX Item "STACK_OF(X509_NAMES)" List of \s-1CA\s0 names explicitly set (for \fBctx\fR or in server mode) or send by the server (client mode). .IP "\s-1NULL\s0" 4 .IX Item "NULL" No client \s-1CA\s0 list was explicitly set (for \fBctx\fR or in server mode) or the server did not send a list of CAs (client mode). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \&\fISSL_CTX_set_client_CA_list\fR\|(3), \&\fISSL_CTX_set_client_cert_cb\fR\|(3) man3/SSL_state_string.3000064400000012473147210533270010730 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_state_string 3" .TH SSL_state_string 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_state_string, SSL_state_string_long \- get textual description of state of an SSL object .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& const char *SSL_state_string(const SSL *ssl); \& const char *SSL_state_string_long(const SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_state_string()\fR returns a 6 letter string indicating the current state of the \s-1SSL\s0 object \fBssl\fR. .PP \&\fISSL_state_string_long()\fR returns a string indicating the current state of the \s-1SSL\s0 object \fBssl\fR. .SH "NOTES" .IX Header "NOTES" During its use, an \s-1SSL\s0 objects passes several states. The state is internally maintained. Querying the state information is not very informative before or when a connection has been established. It however can be of significant interest during the handshake. .PP When using non-blocking sockets, the function call performing the handshake may return with \s-1SSL_ERROR_WANT_READ\s0 or \s-1SSL_ERROR_WANT_WRITE\s0 condition, so that SSL_state_string[_long]() may be called. .PP For both blocking or non-blocking sockets, the details state information can be used within the info_callback function set with the \&\fISSL_set_info_callback()\fR call. .SH "RETURN VALUES" .IX Header "RETURN VALUES" Detailed description of possible states to be included later. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_CTX_set_info_callback\fR\|(3) man3/EVP_PKEY_sign.3000064400000016533147210533270010004 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EVP_PKEY_sign 3" .TH EVP_PKEY_sign 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EVP_PKEY_sign_init, EVP_PKEY_sign \- sign using a public key algorithm .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx); \& int EVP_PKEY_sign(EVP_PKEY_CTX *ctx, \& unsigned char *sig, size_t *siglen, \& const unsigned char *tbs, size_t tbslen); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fIEVP_PKEY_sign_init()\fR function initializes a public key algorithm context using key \fBpkey\fR for a signing operation. .PP The \fIEVP_PKEY_sign()\fR function performs a public key signing operation using \fBctx\fR. The data to be signed is specified using the \fBtbs\fR and \&\fBtbslen\fR parameters. If \fBsig\fR is \fB\s-1NULL\s0\fR then the maximum size of the output buffer is written to the \fBsiglen\fR parameter. If \fBsig\fR is not \fB\s-1NULL\s0\fR then before the call the \fBsiglen\fR parameter should contain the length of the \&\fBsig\fR buffer, if the call is successful the signature is written to \&\fBsig\fR and the amount of data written to \fBsiglen\fR. .SH "NOTES" .IX Header "NOTES" \&\fIEVP_PKEY_sign()\fR does not hash the data to be signed, and therefore is normally used to sign digests. For signing arbitrary messages, see the \&\fIEVP_DigestSignInit\fR\|(3) and \&\fIEVP_SignInit\fR\|(3) signing interfaces instead. .PP After the call to \fIEVP_PKEY_sign_init()\fR algorithm specific control operations can be performed to set any appropriate parameters for the operation (see \fIEVP_PKEY_CTX_ctrl\fR\|(3)). .PP The function \fIEVP_PKEY_sign()\fR can be called more than once on the same context if several operations are performed using the same parameters. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIEVP_PKEY_sign_init()\fR and \fIEVP_PKEY_sign()\fR return 1 for success and 0 or a negative value for failure. In particular a return value of \-2 indicates the operation is not supported by the public key algorithm. .SH "EXAMPLE" .IX Header "EXAMPLE" Sign data using \s-1RSA\s0 with PKCS#1 padding and \s-1SHA256\s0 digest: .PP .Vb 2 \& #include \& #include \& \& EVP_PKEY_CTX *ctx; \& /* md is a SHA\-256 digest in this example. */ \& unsigned char *md, *sig; \& size_t mdlen = 32, siglen; \& EVP_PKEY *signing_key; \& \& /* \& * NB: assumes signing_key and md are set up before the next \& * step. signing_key must be an RSA private key and md must \& * point to the SHA\-256 digest to be signed. \& */ \& ctx = EVP_PKEY_CTX_new(signing_key, NULL /* no engine */); \& if (!ctx) \& /* Error occurred */ \& if (EVP_PKEY_sign_init(ctx) <= 0) \& /* Error */ \& if (EVP_PKEY_CTX_set_rsa_padding(ctx, RSA_PKCS1_PADDING) <= 0) \& /* Error */ \& if (EVP_PKEY_CTX_set_signature_md(ctx, EVP_sha256()) <= 0) \& /* Error */ \& \& /* Determine buffer length */ \& if (EVP_PKEY_sign(ctx, NULL, &siglen, md, mdlen) <= 0) \& /* Error */ \& \& sig = OPENSSL_malloc(siglen); \& \& if (!sig) \& /* malloc failure */ \& \& if (EVP_PKEY_sign(ctx, sig, &siglen, md, mdlen) <= 0) \& /* Error */ \& \& /* Signature is siglen bytes written to buffer sig */ .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIEVP_PKEY_CTX_new\fR\|(3), \&\fIEVP_PKEY_CTX_ctrl\fR\|(3), \&\fIEVP_PKEY_encrypt\fR\|(3), \&\fIEVP_PKEY_decrypt\fR\|(3), \&\fIEVP_PKEY_verify\fR\|(3), \&\fIEVP_PKEY_verify_recover\fR\|(3), \&\fIEVP_PKEY_derive\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" These functions were first added to OpenSSL 1.0.0. man3/PKCS7_verify.3000064400000021513147210533270007707 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PKCS7_verify 3" .TH PKCS7_verify 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" PKCS7_verify, PKCS7_get0_signers \- verify a PKCS#7 signedData structure .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, BIO *indata, BIO *out, int flags); \& \& STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, int flags); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIPKCS7_verify()\fR verifies a PKCS#7 signedData structure. \fBp7\fR is the \s-1PKCS7\s0 structure to verify. \fBcerts\fR is a set of certificates in which to search for the signer's certificate. \fBstore\fR is a trusted certficate store (used for chain verification). \fBindata\fR is the signed data if the content is not present in \fBp7\fR (that is it is detached). The content is written to \fBout\fR if it is not \s-1NULL.\s0 .PP \&\fBflags\fR is an optional set of flags, which can be used to modify the verify operation. .PP \&\fIPKCS7_get0_signers()\fR retrieves the signer's certificates from \fBp7\fR, it does \&\fBnot\fR check their validity or whether any signatures are valid. The \fBcerts\fR and \fBflags\fR parameters have the same meanings as in \fIPKCS7_verify()\fR. .SH "VERIFY PROCESS" .IX Header "VERIFY PROCESS" Normally the verify process proceeds as follows. .PP Initially some sanity checks are performed on \fBp7\fR. The type of \fBp7\fR must be signedData. There must be at least one signature on the data and if the content is detached \fBindata\fR cannot be \fB\s-1NULL\s0\fR. .PP An attempt is made to locate all the signer's certificates, first looking in the \fBcerts\fR parameter (if it is not \fB\s-1NULL\s0\fR) and then looking in any certificates contained in the \fBp7\fR structure itself. If any signer's certificates cannot be located the operation fails. .PP Each signer's certificate is chain verified using the \fBsmimesign\fR purpose and the supplied trusted certificate store. Any internal certificates in the message are used as untrusted CAs. If any chain verify fails an error code is returned. .PP Finally the signed content is read (and written to \fBout\fR is it is not \s-1NULL\s0) and the signature's checked. .PP If all signature's verify correctly then the function is successful. .PP Any of the following flags (ored together) can be passed in the \fBflags\fR parameter to change the default verify behaviour. Only the flag \fB\s-1PKCS7_NOINTERN\s0\fR is meaningful to \fIPKCS7_get0_signers()\fR. .PP If \fB\s-1PKCS7_NOINTERN\s0\fR is set the certificates in the message itself are not searched when locating the signer's certificate. This means that all the signers certificates must be in the \fBcerts\fR parameter. .PP If the \fB\s-1PKCS7_TEXT\s0\fR flag is set \s-1MIME\s0 headers for type \fBtext/plain\fR are deleted from the content. If the content is not of type \fBtext/plain\fR then an error is returned. .PP If \fB\s-1PKCS7_NOVERIFY\s0\fR is set the signer's certificates are not chain verified. .PP If \fB\s-1PKCS7_NOCHAIN\s0\fR is set then the certificates contained in the message are not used as untrusted CAs. This means that the whole verify chain (apart from the signer's certificate) must be contained in the trusted store. .PP If \fB\s-1PKCS7_NOSIGS\s0\fR is set then the signatures on the data are not checked. .SH "NOTES" .IX Header "NOTES" One application of \fB\s-1PKCS7_NOINTERN\s0\fR is to only accept messages signed by a small number of certificates. The acceptable certificates would be passed in the \fBcerts\fR parameter. In this case if the signer is not one of the certificates supplied in \fBcerts\fR then the verify will fail because the signer cannot be found. .PP Care should be taken when modifying the default verify behaviour, for example setting \fBPKCS7_NOVERIFY|PKCS7_NOSIGS\fR will totally disable all verification and any signed message will be considered valid. This combination is however useful if one merely wishes to write the content to \fBout\fR and its validity is not considered important. .PP Chain verification should arguably be performed using the signing time rather than the current time. However since the signing time is supplied by the signer it cannot be trusted without additional evidence (such as a trusted timestamp). .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIPKCS7_verify()\fR returns one for a successful verification and zero if an error occurs. .PP \&\fIPKCS7_get0_signers()\fR returns all signers or \fB\s-1NULL\s0\fR if an error occurred. .PP The error can be obtained from \fIERR_get_error\fR\|(3) .SH "BUGS" .IX Header "BUGS" The trusted certificate store is not searched for the signers certificate, this is primarily due to the inadequacies of the current \fBX509_STORE\fR functionality. .PP The lack of single pass processing and need to hold all data in memory as mentioned in \fIPKCS7_sign()\fR also applies to \fIPKCS7_verify()\fR. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fIPKCS7_sign\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIPKCS7_verify()\fR was added to OpenSSL 0.9.5 man3/SSL_get_peer_certificate.3000064400000012717147210533270012357 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_get_peer_certificate 3" .TH SSL_get_peer_certificate 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_get_peer_certificate \- get the X509 certificate of the peer .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& X509 *SSL_get_peer_certificate(const SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_get_peer_certificate()\fR returns a pointer to the X509 certificate the peer presented. If the peer did not present a certificate, \s-1NULL\s0 is returned. .SH "NOTES" .IX Header "NOTES" Due to the protocol definition, a \s-1TLS/SSL\s0 server will always send a certificate, if present. A client will only send a certificate when explicitly requested to do so by the server (see \&\fISSL_CTX_set_verify\fR\|(3)). If an anonymous cipher is used, no certificates are sent. .PP That a certificate is returned does not indicate information about the verification state, use \fISSL_get_verify_result\fR\|(3) to check the verification state. .PP The reference count of the X509 object is incremented by one, so that it will not be destroyed when the session containing the peer certificate is freed. The X509 object must be explicitly freed using \fIX509_free()\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following return values can occur: .IP "\s-1NULL\s0" 4 .IX Item "NULL" No certificate was presented by the peer or no connection was established. .IP "Pointer to an X509 certificate" 4 .IX Item "Pointer to an X509 certificate" The return value points to the certificate presented by the peer. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_get_verify_result\fR\|(3), \&\fISSL_CTX_set_verify\fR\|(3) man3/SSL_get_ciphers.3000064400000014320147210533270010507 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_get_ciphers 3" .TH SSL_get_ciphers 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_get_ciphers, SSL_get_cipher_list, SSL_get_shared_ciphers \&\- get list of available SSL_CIPHERs .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *ssl); \& const char *SSL_get_cipher_list(const SSL *ssl, int priority); \& char *SSL_get_shared_ciphers(const SSL *s, char *buf, int size); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_get_ciphers()\fR returns the stack of available SSL_CIPHERs for \fBssl\fR, sorted by preference. If \fBssl\fR is \s-1NULL\s0 or no ciphers are available, \s-1NULL\s0 is returned. .PP \&\fISSL_get_cipher_list()\fR returns a pointer to the name of the \s-1SSL_CIPHER\s0 listed for \fBssl\fR with \fBpriority\fR. If \fBssl\fR is \s-1NULL,\s0 no ciphers are available, or there are less ciphers than \fBpriority\fR available, \s-1NULL\s0 is returned. .PP \&\fISSL_get_shared_ciphers()\fR creates a colon separated and \s-1NUL\s0 terminated list of \&\s-1SSL_CIPHER\s0 names that are available in both the client and the server. \fBbuf\fR is the buffer that should be populated with the list of names and \fBsize\fR is the size of that buffer. A pointer to \fBbuf\fR is returned on success or \s-1NULL\s0 on error. If the supplied buffer is not large enough to contain the complete list of names then a truncated list of names will be returned. Note that just because a ciphersuite is available (i.e. it is configured in the cipher list) and shared by both the client and the server it does not mean that it is enabled (for example some ciphers may not be usable by a server if there is not a suitable certificate configured). This function will return available shared ciphersuites whether or not they are enabled. This is a server side function only and must only be called after the completion of the initial handshake. .SH "NOTES" .IX Header "NOTES" The details of the ciphers obtained by \fISSL_get_ciphers()\fR can be obtained using the \fISSL_CIPHER_get_name\fR\|(3) family of functions. .PP Call \fISSL_get_cipher_list()\fR with \fBpriority\fR starting from 0 to obtain the sorted list of available ciphers, until \s-1NULL\s0 is returned. .SH "RETURN VALUES" .IX Header "RETURN VALUES" See \s-1DESCRIPTION\s0 .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_CTX_set_cipher_list\fR\|(3), \&\fISSL_CIPHER_get_name\fR\|(3) man3/X509_STORE_CTX_get_ex_new_index.3000064400000012354147210533270013231 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "X509_STORE_CTX_get_ex_new_index 3" .TH X509_STORE_CTX_get_ex_new_index 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" X509_STORE_CTX_get_ex_new_index, X509_STORE_CTX_set_ex_data, X509_STORE_CTX_get_ex_data \- add application specific data to X509_STORE_CTX structures .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int X509_STORE_CTX_get_ex_new_index(long argl, void *argp, \& CRYPTO_EX_new *new_func, \& CRYPTO_EX_dup *dup_func, \& CRYPTO_EX_free *free_func); \& \& int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *d, int idx, void *arg); \& \& void *X509_STORE_CTX_get_ex_data(X509_STORE_CTX *d, int idx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions handle application specific data in X509_STORE_CTX structures. Their usage is identical to that of \fIRSA_get_ex_new_index()\fR, \fIRSA_set_ex_data()\fR and \fIRSA_get_ex_data()\fR as described in \fIRSA_get_ex_new_index\fR\|(3). .SH "NOTES" .IX Header "NOTES" This mechanism is used internally by the \fBssl\fR library to store the \fB\s-1SSL\s0\fR structure associated with a verification operation in an \fBX509_STORE_CTX\fR structure. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIRSA_get_ex_new_index\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIX509_STORE_CTX_get_ex_new_index()\fR, \fIX509_STORE_CTX_set_ex_data()\fR and \&\fIX509_STORE_CTX_get_ex_data()\fR are available since OpenSSL 0.9.5. man3/SSL_CTX_set_custom_cli_ext.3000064400000023676147210533270012643 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_custom_cli_ext 3" .TH SSL_CTX_set_custom_cli_ext 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_add_client_custom_ext, SSL_CTX_add_server_custom_ext \- custom TLS extension handling .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_CTX_add_client_custom_ext(SSL_CTX *ctx, unsigned int ext_type, \& custom_ext_add_cb add_cb, \& custom_ext_free_cb free_cb, void *add_arg, \& custom_ext_parse_cb parse_cb, \& void *parse_arg); \& \& int SSL_CTX_add_server_custom_ext(SSL_CTX *ctx, unsigned int ext_type, \& custom_ext_add_cb add_cb, \& custom_ext_free_cb free_cb, void *add_arg, \& custom_ext_parse_cb parse_cb, \& void *parse_arg); \& \& int SSL_extension_supported(unsigned int ext_type); \& \& typedef int (*custom_ext_add_cb)(SSL *s, unsigned int ext_type, \& const unsigned char **out, \& size_t *outlen, int *al, \& void *add_arg); \& \& typedef void (*custom_ext_free_cb)(SSL *s, unsigned int ext_type, \& const unsigned char *out, \& void *add_arg); \& \& typedef int (*custom_ext_parse_cb)(SSL *s, unsigned int ext_type, \& const unsigned char *in, \& size_t inlen, int *al, \& void *parse_arg); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_add_client_custom_ext()\fR adds a custom extension for a \s-1TLS\s0 client with extension type \fBext_type\fR and callbacks \fBadd_cb\fR, \fBfree_cb\fR and \&\fBparse_cb\fR. .PP \&\fISSL_CTX_add_server_custom_ext()\fR adds a custom extension for a \s-1TLS\s0 server with extension type \fBext_type\fR and callbacks \fBadd_cb\fR, \fBfree_cb\fR and \&\fBparse_cb\fR. .PP In both cases the extension type must not be handled by OpenSSL internally or an error occurs. .PP \&\fISSL_extension_supported()\fR returns 1 if the extension \fBext_type\fR is handled internally by OpenSSL and 0 otherwise. .SH "EXTENSION CALLBACKS" .IX Header "EXTENSION CALLBACKS" The callback \fBadd_cb\fR is called to send custom extension data to be included in ClientHello for \s-1TLS\s0 clients or ServerHello for servers. The \&\fBext_type\fR parameter is set to the extension type which will be added and \&\fBadd_arg\fR to the value set when the extension handler was added. .PP If the application wishes to include the extension \fBext_type\fR it should set \fB*out\fR to the extension data, set \fB*outlen\fR to the length of the extension data and return 1. .PP If the \fBadd_cb\fR does not wish to include the extension it must return 0. .PP If \fBadd_cb\fR returns \-1 a fatal handshake error occurs using the \s-1TLS\s0 alert value specified in \fB*al\fR. .PP For clients (but not servers) if \fBadd_cb\fR is set to \s-1NULL\s0 a zero length extension is added for \fBext_type\fR. .PP For clients every registered \fBadd_cb\fR is always called to see if the application wishes to add an extension to ClientHello. .PP For servers every registered \fBadd_cb\fR is called once if and only if the corresponding extension was received in ClientHello to see if the application wishes to add the extension to ServerHello. That is, if no corresponding extension was received in ClientHello then \fBadd_cb\fR will not be called. .PP If an extension is added (that is \fBadd_cb\fR returns 1) \fBfree_cb\fR is called (if it is set) with the value of \fBout\fR set by the add callback. It can be used to free up any dynamic extension data set by \fBadd_cb\fR. Since \fBout\fR is constant (to permit use of constant data in \fBadd_cb\fR) applications may need to cast away const to free the data. .PP The callback \fBparse_cb\fR receives data for \s-1TLS\s0 extensions. For \s-1TLS\s0 clients the extension data will come from ServerHello and for \s-1TLS\s0 servers it will come from ClientHello. .PP The extension data consists of \fBinlen\fR bytes in the buffer \fBin\fR for the extension \fBextension_type\fR. .PP If the \fBparse_cb\fR considers the extension data acceptable it must return 1. If it returns 0 or a negative value a fatal handshake error occurs using the \s-1TLS\s0 alert value specified in \fB*al\fR. .PP The buffer \fBin\fR is a temporary internal buffer which will not be valid after the callback returns. .SH "NOTES" .IX Header "NOTES" The \fBadd_arg\fR and \fBparse_arg\fR parameters can be set to arbitrary values which will be passed to the corresponding callbacks. They can, for example, be used to store the extension data received in a convenient structure or pass the extension data to be added or freed when adding extensions. .PP The \fBext_type\fR parameter corresponds to the \fBextension_type\fR field of \&\s-1RFC5246\s0 et al. It is \fBnot\fR a \s-1NID.\s0 .PP If the same custom extension type is received multiple times a fatal \&\fBdecode_error\fR alert is sent and the handshake aborts. If a custom extension is received in ServerHello which was not sent in ClientHello a fatal \&\fBunsupported_extension\fR alert is sent and the handshake is aborted. The ServerHello \fBadd_cb\fR callback is only called if the corresponding extension was received in ClientHello. This is compliant with the \s-1TLS\s0 specifications. This behaviour ensures that each callback is called at most once and that an application can never send unsolicited extensions. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CTX_add_client_custom_ext()\fR and \fISSL_CTX_add_server_custom_ext()\fR return 1 for success and 0 for failure. A failure can occur if an attempt is made to add the same \fBext_type\fR more than once, if an attempt is made to use an extension type handled internally by OpenSSL or if an internal error occurs (for example a memory allocation failure). .PP \&\fISSL_extension_supported()\fR returns 1 if the extension \fBext_type\fR is handled internally by OpenSSL and 0 otherwise. man3/SMIME_read_PKCS7.3000064400000014077147210533270010257 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SMIME_read_PKCS7 3" .TH SMIME_read_PKCS7 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SMIME_read_PKCS7 \- parse S/MIME message. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& PKCS7 *SMIME_read_PKCS7(BIO *in, BIO **bcont); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISMIME_read_PKCS7()\fR parses a message in S/MIME format. .PP \&\fBin\fR is a \s-1BIO\s0 to read the message from. .PP If cleartext signing is used then the content is saved in a memory bio which is written to \fB*bcont\fR, otherwise \&\fB*bcont\fR is set to \fB\s-1NULL\s0\fR. .PP The parsed PKCS#7 structure is returned or \fB\s-1NULL\s0\fR if an error occurred. .SH "NOTES" .IX Header "NOTES" If \fB*bcont\fR is not \fB\s-1NULL\s0\fR then the message is clear text signed. \fB*bcont\fR can then be passed to \fIPKCS7_verify()\fR with the \fB\s-1PKCS7_DETACHED\s0\fR flag set. .PP Otherwise the type of the returned structure can be determined using \fIPKCS7_type()\fR. .PP To support future functionality if \fBbcont\fR is not \fB\s-1NULL\s0\fR \&\fB*bcont\fR should be initialized to \fB\s-1NULL\s0\fR. For example: .PP .Vb 2 \& BIO *cont = NULL; \& PKCS7 *p7; \& \& p7 = SMIME_read_PKCS7(in, &cont); .Ve .SH "BUGS" .IX Header "BUGS" The \s-1MIME\s0 parser used by \fISMIME_read_PKCS7()\fR is somewhat primitive. While it will handle most S/MIME messages more complex compound formats may not work. .PP The parser assumes that the \s-1PKCS7\s0 structure is always base64 encoded and will not handle the case where it is in binary format or uses quoted printable format. .PP The use of a memory \s-1BIO\s0 to hold the signed content limits the size of message which can be processed due to memory restraints: a streaming single pass option should be available. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISMIME_read_PKCS7()\fR returns a valid \fB\s-1PKCS7\s0\fR structure or \fB\s-1NULL\s0\fR if an error occurred. The error can be obtained from \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fIPKCS7_type\fR\|(3) \&\fISMIME_read_PKCS7\fR\|(3), \fIPKCS7_sign\fR\|(3), \&\fIPKCS7_verify\fR\|(3), \fIPKCS7_encrypt\fR\|(3) \&\fIPKCS7_decrypt\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fISMIME_read_PKCS7()\fR was added to OpenSSL 0.9.5 man3/SSL_CTX_get0_param.3000064400000013141147210533270010750 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_get0_param 3" .TH SSL_CTX_get0_param 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_get0_param, SSL_get0_param, SSL_CTX_set1_param, SSL_set1_param \- get and set verification parameters .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& X509_VERIFY_PARAM *SSL_CTX_get0_param(SSL_CTX *ctx) \& X509_VERIFY_PARAM *SSL_get0_param(SSL *ssl) \& int SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm) \& int SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm) .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_get0_param()\fR and \fISSL_get0_param()\fR retrieve an internal pointer to the verification parameters for \fBctx\fR or \fBssl\fR respectively. The returned pointer must not be freed by the calling application. .PP \&\fISSL_CTX_set1_param()\fR and \fISSL_set1_param()\fR set the verification parameters to \fBvpm\fR for \fBctx\fR or \fBssl\fR. .SH "NOTES" .IX Header "NOTES" Typically parameters are retrieved from an \fB\s-1SSL_CTX\s0\fR or \fB\s-1SSL\s0\fR structure using \fISSL_CTX_get0_param()\fR or \fISSL_get0_param()\fR and an application modifies them to suit its needs: for example to add a hostname check. .SH "EXAMPLE" .IX Header "EXAMPLE" Check hostname matches \*(L"www.foo.com\*(R" in peer certificate: .PP .Vb 2 \& X509_VERIFY_PARAM *vpm = SSL_get0_param(ssl); \& X509_VERIFY_PARAM_set1_host(vpm, "www.foo.com", 0); .Ve .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CTX_get0_param()\fR and \fISSL_get0_param()\fR return a pointer to an \&\fBX509_VERIFY_PARAM\fR structure. .PP \&\fISSL_CTX_set1_param()\fR and \fISSL_set1_param()\fR return 1 for success and 0 for failure. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIX509_VERIFY_PARAM_set_flags\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" These functions were first added to OpenSSL 1.0.2. man3/RAND_egd.3000064400000017023147210533270007040 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RAND_egd 3" .TH RAND_egd 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" RAND_egd, RAND_egd_bytes, RAND_query_egd_bytes \- query entropy gathering daemon .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int RAND_egd(const char *path); \& int RAND_egd_bytes(const char *path, int bytes); \& \& int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIRAND_egd()\fR queries the entropy gathering daemon \s-1EGD\s0 on socket \fBpath\fR. It queries 255 bytes and uses \fIRAND_add\fR\|(3) to seed the OpenSSL built-in \s-1PRNG.\s0 RAND_egd(path) is a wrapper for RAND_egd_bytes(path, 255); .PP \&\fIRAND_egd_bytes()\fR queries the entropy gathering daemon \s-1EGD\s0 on socket \fBpath\fR. It queries \fBbytes\fR bytes and uses \fIRAND_add\fR\|(3) to seed the OpenSSL built-in \s-1PRNG.\s0 This function is more flexible than \fIRAND_egd()\fR. When only one secret key must be generated, it is not necessary to request the full amount 255 bytes from the \s-1EGD\s0 socket. This can be advantageous, since the amount of entropy that can be retrieved from \s-1EGD\s0 over time is limited. .PP \&\fIRAND_query_egd_bytes()\fR performs the actual query of the \s-1EGD\s0 daemon on socket \&\fBpath\fR. If \fBbuf\fR is given, \fBbytes\fR bytes are queried and written into \&\fBbuf\fR. If \fBbuf\fR is \s-1NULL, \s0\fBbytes\fR bytes are queried and used to seed the OpenSSL built-in \s-1PRNG\s0 using \fIRAND_add\fR\|(3). .SH "NOTES" .IX Header "NOTES" On systems without /dev/*random devices providing entropy from the kernel, the \s-1EGD\s0 entropy gathering daemon can be used to collect entropy. It provides a socket interface through which entropy can be gathered in chunks up to 255 bytes. Several chunks can be queried during one connection. .PP \&\s-1EGD\s0 is available from http://www.lothar.com/tech/crypto/ (\f(CW\*(C`perl Makefile.PL; make; make install\*(C'\fR to install). It is run as \fBegd\fR \&\fIpath\fR, where \fIpath\fR is an absolute path designating a socket. When \&\fIRAND_egd()\fR is called with that path as an argument, it tries to read random bytes that \s-1EGD\s0 has collected. \fIRAND_egd()\fR retrieves entropy from the daemon using the daemon's \*(L"non-blocking read\*(R" command which shall be answered immediately by the daemon without waiting for additional entropy to be collected. The write and read socket operations in the communication are blocking. .PP Alternatively, the EGD-interface compatible daemon \s-1PRNGD\s0 can be used. It is available from http://prngd.sourceforge.net/ . \&\s-1PRNGD\s0 does employ an internal \s-1PRNG\s0 itself and can therefore never run out of entropy. .PP OpenSSL automatically queries \s-1EGD\s0 when entropy is requested via \fIRAND_bytes()\fR or the status is checked via \fIRAND_status()\fR for the first time, if the socket is located at /var/run/egd\-pool, /dev/egd\-pool or /etc/egd\-pool. .SH "RETURN VALUE" .IX Header "RETURN VALUE" \&\fIRAND_egd()\fR and \fIRAND_egd_bytes()\fR return the number of bytes read from the daemon on success, and \-1 if the connection failed or the daemon did not return enough data to fully seed the \s-1PRNG.\s0 .PP \&\fIRAND_query_egd_bytes()\fR returns the number of bytes read from the daemon on success, and \-1 if the connection failed. The \s-1PRNG\s0 state is not considered. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIrand\fR\|(3), \fIRAND_add\fR\|(3), \&\fIRAND_cleanup\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIRAND_egd()\fR is available since OpenSSL 0.9.5. .PP \&\fIRAND_egd_bytes()\fR is available since OpenSSL 0.9.6. .PP \&\fIRAND_query_egd_bytes()\fR is available since OpenSSL 0.9.7. .PP The automatic query of /var/run/egd\-pool et al was added in OpenSSL 0.9.7. man3/BIO_new_CMS.3000064400000014404147210533270007461 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BIO_new_CMS 3" .TH BIO_new_CMS 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" .Vb 1 \& BIO_new_CMS \- CMS streaming filter BIO .Ve .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& BIO *BIO_new_CMS(BIO *out, CMS_ContentInfo *cms); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBIO_new_CMS()\fR returns a streaming filter \s-1BIO\s0 chain based on \fBcms\fR. The output of the filter is written to \fBout\fR. Any data written to the chain is automatically translated to a \s-1BER\s0 format \s-1CMS\s0 structure of the appropriate type. .SH "NOTES" .IX Header "NOTES" The chain returned by this function behaves like a standard filter \s-1BIO.\s0 It supports non blocking I/O. Content is processed and streamed on the fly and not all held in memory at once: so it is possible to encode very large structures. After all content has been written through the chain \fIBIO_flush()\fR must be called to finalise the structure. .PP The \fB\s-1CMS_STREAM\s0\fR flag must be included in the corresponding \fBflags\fR parameter of the \fBcms\fR creation function. .PP If an application wishes to write additional data to \fBout\fR BIOs should be removed from the chain using \fIBIO_pop()\fR and freed with \fIBIO_free()\fR until \fBout\fR is reached. If no additional data needs to be written \fIBIO_free_all()\fR can be called to free up the whole chain. .PP Any content written through the filter is used verbatim: no canonical translation is performed. .PP It is possible to chain multiple BIOs to, for example, create a triple wrapped signed, enveloped, signed structure. In this case it is the applications responsibility to set the inner content type of any outer CMS_ContentInfo structures. .PP Large numbers of small writes through the chain should be avoided as this will produce an output consisting of lots of \s-1OCTET STRING\s0 structures. Prepending a \fIBIO_f_buffer()\fR buffering \s-1BIO\s0 will prevent this. .SH "BUGS" .IX Header "BUGS" There is currently no corresponding inverse \s-1BIO:\s0 i.e. one which can decode a \s-1CMS\s0 structure on the fly. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBIO_new_CMS()\fR returns a \s-1BIO\s0 chain when successful or \s-1NULL\s0 if an error occurred. The error can be obtained from \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fICMS_sign\fR\|(3), \&\fICMS_encrypt\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIBIO_new_CMS()\fR was added to OpenSSL 1.0.0 man3/CMS_uncompress.3000064400000013077147210533270010402 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CMS_uncompress 3" .TH CMS_uncompress 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" .Vb 1 \& CMS_uncompress \- uncompress a CMS CompressedData structure .Ve .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out, unsigned int flags); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fICMS_uncompress()\fR extracts and uncompresses the content from a \s-1CMS\s0 CompressedData structure \fBcms\fR. \fBdata\fR is a \s-1BIO\s0 to write the content to and \&\fBflags\fR is an optional set of flags. .PP The \fBdcont\fR parameter is used in the rare case where the compressed content is detached. It will normally be set to \s-1NULL.\s0 .SH "NOTES" .IX Header "NOTES" The only currently supported compression algorithm is zlib: if the structure indicates the use of any other algorithm an error is returned. .PP If zlib support is not compiled into OpenSSL then \fICMS_uncompress()\fR will always return an error. .PP The following flags can be passed in the \fBflags\fR parameter. .PP If the \fB\s-1CMS_TEXT\s0\fR flag is set \s-1MIME\s0 headers for type \fBtext/plain\fR are deleted from the content. If the content is not of type \fBtext/plain\fR then an error is returned. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fICMS_uncompress()\fR returns either 1 for success or 0 for failure. The error can be obtained from \fIERR_get_error\fR\|(3) .SH "BUGS" .IX Header "BUGS" The lack of single pass processing and the need to hold all data in memory as mentioned in \fICMS_verify()\fR also applies to \fICMS_decompress()\fR. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fICMS_compress\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fICMS_uncompress()\fR was added to OpenSSL 0.9.8 man3/RSA_blinding_on.3000064400000012172147210533270010464 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RSA_blinding_on 3" .TH RSA_blinding_on 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" RSA_blinding_on, RSA_blinding_off \- protect the RSA operation from timing attacks .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int RSA_blinding_on(RSA *rsa, BN_CTX *ctx); \& \& void RSA_blinding_off(RSA *rsa); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\s-1RSA\s0 is vulnerable to timing attacks. In a setup where attackers can measure the time of \s-1RSA\s0 decryption or signature operations, blinding must be used to protect the \s-1RSA\s0 operation from that attack. .PP \&\fIRSA_blinding_on()\fR turns blinding on for key \fBrsa\fR and generates a random blinding factor. \fBctx\fR is \fB\s-1NULL\s0\fR or a pre-allocated and initialized \fB\s-1BN_CTX\s0\fR. The random number generator must be seeded prior to calling \fIRSA_blinding_on()\fR. .PP \&\fIRSA_blinding_off()\fR turns blinding off and frees the memory used for the blinding factor. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIRSA_blinding_on()\fR returns 1 on success, and 0 if an error occurred. .PP \&\fIRSA_blinding_off()\fR returns no value. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIrsa\fR\|(3), \fIrand\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIRSA_blinding_on()\fR and \fIRSA_blinding_off()\fR appeared in SSLeay 0.9.0. man3/SSL_rstate_string.3000064400000013130147210533270011101 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_rstate_string 3" .TH SSL_rstate_string 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_rstate_string, SSL_rstate_string_long \- get textual description of state of an SSL object during read operation .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& const char *SSL_rstate_string(SSL *ssl); \& const char *SSL_rstate_string_long(SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_rstate_string()\fR returns a 2 letter string indicating the current read state of the \s-1SSL\s0 object \fBssl\fR. .PP \&\fISSL_rstate_string_long()\fR returns a string indicating the current read state of the \s-1SSL\s0 object \fBssl\fR. .SH "NOTES" .IX Header "NOTES" When performing a read operation, the \s-1SSL/TLS\s0 engine must parse the record, consisting of header and body. When working in a blocking environment, SSL_rstate_string[_long]() should always return \*(L"\s-1RD\*(R"/\s0\*(L"read done\*(R". .PP This function should only seldom be needed in applications. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_rstate_string()\fR and \fISSL_rstate_string_long()\fR can return the following values: .ie n .IP """\s-1RH""/\s0""read header""" 4 .el .IP "``\s-1RH''/\s0``read header''" 4 .IX Item "RH/read header" The header of the record is being evaluated. .ie n .IP """\s-1RB""/\s0""read body""" 4 .el .IP "``\s-1RB''/\s0``read body''" 4 .IX Item "RB/read body" The body of the record is being evaluated. .ie n .IP """\s-1RD""/\s0""read done""" 4 .el .IP "``\s-1RD''/\s0``read done''" 4 .IX Item "RD/read done" The record has been completely processed. .ie n .IP """unknown""/""unknown""" 4 .el .IP "``unknown''/``unknown''" 4 .IX Item "unknown/unknown" The read state is unknown. This should never happen. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3) man3/SSL_load_client_CA_file.3000064400000012617147210533270012041 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_load_client_CA_file 3" .TH SSL_load_client_CA_file 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_load_client_CA_file \- load certificate names from file .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& STACK_OF(X509_NAME) *SSL_load_client_CA_file(const char *file); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_load_client_CA_file()\fR reads certificates from \fBfile\fR and returns a \s-1STACK_OF\s0(X509_NAME) with the subject names found. .SH "NOTES" .IX Header "NOTES" \&\fISSL_load_client_CA_file()\fR reads a file of \s-1PEM\s0 formatted certificates and extracts the X509_NAMES of the certificates found. While the name suggests the specific usage as support function for \&\fISSL_CTX_set_client_CA_list\fR\|(3), it is not limited to \s-1CA\s0 certificates. .SH "EXAMPLES" .IX Header "EXAMPLES" Load names of CAs from file and use it as a client \s-1CA\s0 list: .PP .Vb 2 \& SSL_CTX *ctx; \& STACK_OF(X509_NAME) *cert_names; \& \& ... \& cert_names = SSL_load_client_CA_file("/path/to/CAfile.pem"); \& if (cert_names != NULL) \& SSL_CTX_set_client_CA_list(ctx, cert_names); \& else \& error_handling(); \& ... .Ve .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following return values can occur: .IP "\s-1NULL\s0" 4 .IX Item "NULL" The operation failed, check out the error stack for the reason. .IP "Pointer to \s-1STACK_OF\s0(X509_NAME)" 4 .IX Item "Pointer to STACK_OF(X509_NAME)" Pointer to the subject names of the successfully read certificates. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \&\fISSL_CTX_set_client_CA_list\fR\|(3) man3/BIO_s_socket.3000064400000013372147210533270010003 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BIO_s_socket 3" .TH BIO_s_socket 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BIO_s_socket, BIO_new_socket \- socket BIO .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& BIO_METHOD *BIO_s_socket(void); \& \& long BIO_set_fd(BIO *b, int fd, long close_flag); \& long BIO_get_fd(BIO *b, int *c); \& \& BIO *BIO_new_socket(int sock, int close_flag); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBIO_s_socket()\fR returns the socket \s-1BIO\s0 method. This is a wrapper round the platform's socket routines. .PP \&\fIBIO_read()\fR and \fIBIO_write()\fR read or write the underlying socket. \&\fIBIO_puts()\fR is supported but \fIBIO_gets()\fR is not. .PP If the close flag is set then the socket is shut down and closed when the \s-1BIO\s0 is freed. .PP \&\fIBIO_set_fd()\fR sets the socket of \s-1BIO \s0\fBb\fR to \fBfd\fR and the close flag to \fBclose_flag\fR. .PP \&\fIBIO_get_fd()\fR places the socket in \fBc\fR if it is not \s-1NULL,\s0 it also returns the socket. If \fBc\fR is not \s-1NULL\s0 it should be of type (int *). .PP \&\fIBIO_new_socket()\fR returns a socket \s-1BIO\s0 using \fBsock\fR and \fBclose_flag\fR. .SH "NOTES" .IX Header "NOTES" Socket BIOs also support any relevant functionality of file descriptor BIOs. .PP The reason for having separate file descriptor and socket BIOs is that on some platforms sockets are not file descriptors and use distinct I/O routines, Windows is one such platform. Any code mixing the two will not work on all platforms. .PP \&\fIBIO_set_fd()\fR and \fIBIO_get_fd()\fR are macros. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBIO_s_socket()\fR returns the socket \s-1BIO\s0 method. .PP \&\fIBIO_set_fd()\fR always returns 1. .PP \&\fIBIO_get_fd()\fR returns the socket or \-1 if the \s-1BIO\s0 has not been initialized. .PP \&\fIBIO_new_socket()\fR returns the newly allocated \s-1BIO\s0 or \s-1NULL\s0 is an error occurred. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\s-1TBA\s0 man3/X509_NAME_get_index_by_NID.3000064400000020530147210533270012151 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "X509_NAME_get_index_by_NID 3" .TH X509_NAME_get_index_by_NID 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" X509_NAME_get_index_by_NID, X509_NAME_get_index_by_OBJ, X509_NAME_get_entry, X509_NAME_entry_count, X509_NAME_get_text_by_NID, X509_NAME_get_text_by_OBJ \- X509_NAME lookup and enumeration functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int X509_NAME_get_index_by_NID(X509_NAME *name,int nid,int lastpos); \& int X509_NAME_get_index_by_OBJ(X509_NAME *name,ASN1_OBJECT *obj, int lastpos); \& \& int X509_NAME_entry_count(X509_NAME *name); \& X509_NAME_ENTRY *X509_NAME_get_entry(X509_NAME *name, int loc); \& \& int X509_NAME_get_text_by_NID(X509_NAME *name, int nid, char *buf,int len); \& int X509_NAME_get_text_by_OBJ(X509_NAME *name, ASN1_OBJECT *obj, char *buf,int len); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions allow an \fBX509_NAME\fR structure to be examined. The \&\fBX509_NAME\fR structure is the same as the \fBName\fR type defined in \&\s-1RFC2459 \s0(and elsewhere) and used for example in certificate subject and issuer names. .PP \&\fIX509_NAME_get_index_by_NID()\fR and \fIX509_NAME_get_index_by_OBJ()\fR retrieve the next index matching \fBnid\fR or \fBobj\fR after \fBlastpos\fR. \fBlastpos\fR should initially be set to \-1. If there are no more entries \-1 is returned. If \fBnid\fR is invalid (doesn't correspond to a valid \s-1OID\s0) then \-2 is returned. .PP \&\fIX509_NAME_entry_count()\fR returns the total number of entries in \fBname\fR. .PP \&\fIX509_NAME_get_entry()\fR retrieves the \fBX509_NAME_ENTRY\fR from \fBname\fR corresponding to index \fBloc\fR. Acceptable values for \fBloc\fR run from 0 to (X509_NAME_entry_count(name) \- 1). The value returned is an internal pointer which must not be freed. .PP \&\fIX509_NAME_get_text_by_NID()\fR, \fIX509_NAME_get_text_by_OBJ()\fR retrieve the \*(L"text\*(R" from the first entry in \fBname\fR which matches \fBnid\fR or \&\fBobj\fR, if no such entry exists \-1 is returned. At most \fBlen\fR bytes will be written and the text written to \fBbuf\fR will be null terminated. The length of the output string written is returned excluding the terminating null. If \fBbuf\fR is <\s-1NULL\s0> then the amount of space needed in \fBbuf\fR (excluding the final null) is returned. .SH "NOTES" .IX Header "NOTES" \&\fIX509_NAME_get_text_by_NID()\fR and \fIX509_NAME_get_text_by_OBJ()\fR are legacy functions which have various limitations which make them of minimal use in practice. They can only find the first matching entry and will copy the contents of the field verbatim: this can be highly confusing if the target is a muticharacter string type like a BMPString or a UTF8String. .PP For a more general solution \fIX509_NAME_get_index_by_NID()\fR or \&\fIX509_NAME_get_index_by_OBJ()\fR should be used followed by \&\fIX509_NAME_get_entry()\fR on any matching indices and then the various \fBX509_NAME_ENTRY\fR utility functions on the result. .PP The list of all relevant \fBNID_*\fR and \fBOBJ_* codes\fR can be found in the source code header files and/or . .PP Applications which could pass invalid NIDs to \fIX509_NAME_get_index_by_NID()\fR should check for the return value of \-2. Alternatively the \s-1NID\s0 validity can be determined first by checking OBJ_nid2obj(nid) is not \s-1NULL.\s0 .SH "EXAMPLES" .IX Header "EXAMPLES" Process all entries: .PP .Vb 2 \& int i; \& X509_NAME_ENTRY *e; \& \& for (i = 0; i < X509_NAME_entry_count(nm); i++) \& { \& e = X509_NAME_get_entry(nm, i); \& /* Do something with e */ \& } .Ve .PP Process all commonName entries: .PP .Vb 2 \& int lastpos = \-1; \& X509_NAME_ENTRY *e; \& \& for (;;) \& { \& lastpos = X509_NAME_get_index_by_NID(nm, NID_commonName, lastpos); \& if (lastpos == \-1) \& break; \& e = X509_NAME_get_entry(nm, lastpos); \& /* Do something with e */ \& } .Ve .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIX509_NAME_get_index_by_NID()\fR and \fIX509_NAME_get_index_by_OBJ()\fR return the index of the next matching entry or \-1 if not found. \&\fIX509_NAME_get_index_by_NID()\fR can also return \-2 if the supplied \&\s-1NID\s0 is invalid. .PP \&\fIX509_NAME_entry_count()\fR returns the total number of entries. .PP \&\fIX509_NAME_get_entry()\fR returns an \fBX509_NAME\fR pointer to the requested entry or \fB\s-1NULL\s0\fR if the index is invalid. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fId2i_X509_NAME\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1TBA\s0 man3/ERR_load_crypto_strings.3000064400000012141147210533270012271 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ERR_load_crypto_strings 3" .TH ERR_load_crypto_strings 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ERR_load_crypto_strings, SSL_load_error_strings, ERR_free_strings \- load and free error strings .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void ERR_load_crypto_strings(void); \& void ERR_free_strings(void); \& \& #include \& \& void SSL_load_error_strings(void); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIERR_load_crypto_strings()\fR registers the error strings for all \&\fBlibcrypto\fR functions. \fISSL_load_error_strings()\fR does the same, but also registers the \fBlibssl\fR error strings. .PP One of these functions should be called before generating textual error messages. However, this is not required when memory usage is an issue. .PP \&\fIERR_free_strings()\fR frees all previously loaded error strings. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIERR_load_crypto_strings()\fR, \fISSL_load_error_strings()\fR and \&\fIERR_free_strings()\fR return no values. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIerr\fR\|(3), \fIERR_error_string\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIERR_load_error_strings()\fR, \fISSL_load_error_strings()\fR and \&\fIERR_free_strings()\fR are available in all versions of SSLeay and OpenSSL. man3/SSL_CTX_set_client_cert_cb.3000064400000020724147210533270012550 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_client_cert_cb 3" .TH SSL_CTX_set_client_cert_cb 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_client_cert_cb, SSL_CTX_get_client_cert_cb \- handle client certificate callback function .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void SSL_CTX_set_client_cert_cb(SSL_CTX *ctx, int (*client_cert_cb)(SSL *ssl, X509 **x509, EVP_PKEY **pkey)); \& int (*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx))(SSL *ssl, X509 **x509, EVP_PKEY **pkey); \& int (*client_cert_cb)(SSL *ssl, X509 **x509, EVP_PKEY **pkey); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set_client_cert_cb()\fR sets the \fB\f(BIclient_cert_cb()\fB\fR callback, that is called when a client certificate is requested by a server and no certificate was yet set for the \s-1SSL\s0 object. .PP When \fB\f(BIclient_cert_cb()\fB\fR is \s-1NULL,\s0 no callback function is used. .PP \&\fISSL_CTX_get_client_cert_cb()\fR returns a pointer to the currently set callback function. .PP \&\fIclient_cert_cb()\fR is the application defined callback. If it wants to set a certificate, a certificate/private key combination must be set using the \fBx509\fR and \fBpkey\fR arguments and \*(L"1\*(R" must be returned. The certificate will be installed into \fBssl\fR, see the \s-1NOTES\s0 and \s-1BUGS\s0 sections. If no certificate should be set, \*(L"0\*(R" has to be returned and no certificate will be sent. A negative return value will suspend the handshake and the handshake function will return immediately. \fISSL_get_error\fR\|(3) will return \s-1SSL_ERROR_WANT_X509_LOOKUP\s0 to indicate, that the handshake was suspended. The next call to the handshake function will again lead to the call of \fIclient_cert_cb()\fR. It is the job of the \fIclient_cert_cb()\fR to store information about the state of the last call, if required to continue. .SH "NOTES" .IX Header "NOTES" During a handshake (or renegotiation) a server may request a certificate from the client. A client certificate must only be sent, when the server did send the request. .PP When a certificate was set using the \&\fISSL_CTX_use_certificate\fR\|(3) family of functions, it will be sent to the server. The \s-1TLS\s0 standard requires that only a certificate is sent, if it matches the list of acceptable CAs sent by the server. This constraint is violated by the default behavior of the OpenSSL library. Using the callback function it is possible to implement a proper selection routine or to allow a user interaction to choose the certificate to be sent. .PP If a callback function is defined and no certificate was yet defined for the \&\s-1SSL\s0 object, the callback function will be called. If the callback function returns a certificate, the OpenSSL library will try to load the private key and certificate data into the \s-1SSL\s0 object using the \fISSL_use_certificate()\fR and \fISSL_use_private_key()\fR functions. Thus it will permanently install the certificate and key for this \s-1SSL\s0 object. It will not be reset by calling \fISSL_clear\fR\|(3). If the callback returns no certificate, the OpenSSL library will not send a certificate. .SH "BUGS" .IX Header "BUGS" The \fIclient_cert_cb()\fR cannot return a complete certificate chain, it can only return one client certificate. If the chain only has a length of 2, the root \s-1CA\s0 certificate may be omitted according to the \s-1TLS\s0 standard and thus a standard conforming answer can be sent to the server. For a longer chain, the client must send the complete chain (with the option to leave out the root \s-1CA\s0 certificate). This can only be accomplished by either adding the intermediate \s-1CA\s0 certificates into the trusted certificate store for the \s-1SSL_CTX\s0 object (resulting in having to add \&\s-1CA\s0 certificates that otherwise maybe would not be trusted), or by adding the chain certificates using the \&\fISSL_CTX_add_extra_chain_cert\fR\|(3) function, which is only available for the \s-1SSL_CTX\s0 object as a whole and that therefore probably can only apply for one client certificate, making the concept of the callback function (to allow the choice from several certificates) questionable. .PP Once the \s-1SSL\s0 object has been used in conjunction with the callback function, the certificate will be set for the \s-1SSL\s0 object and will not be cleared even when \fISSL_clear\fR\|(3) is being called. It is therefore mandatory to destroy the \s-1SSL\s0 object using \fISSL_free\fR\|(3) and create a new one to return to the previous state. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_CTX_use_certificate\fR\|(3), \&\fISSL_CTX_add_extra_chain_cert\fR\|(3), \&\fISSL_get_client_CA_list\fR\|(3), \&\fISSL_clear\fR\|(3), \fISSL_free\fR\|(3) man3/SSL_clear.3000064400000014520147210533270007303 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_clear 3" .TH SSL_clear 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_clear \- reset SSL object to allow another connection .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_clear(SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Reset \fBssl\fR to allow another connection. All settings (method, ciphers, BIOs) are kept. .SH "NOTES" .IX Header "NOTES" SSL_clear is used to prepare an \s-1SSL\s0 object for a new connection. While all settings are kept, a side effect is the handling of the current \s-1SSL\s0 session. If a session is still \fBopen\fR, it is considered bad and will be removed from the session cache, as required by \s-1RFC2246. A\s0 session is considered open, if \fISSL_shutdown\fR\|(3) was not called for the connection or at least \fISSL_set_shutdown\fR\|(3) was used to set the \s-1SSL_SENT_SHUTDOWN\s0 state. .PP If a session was closed cleanly, the session object will be kept and all settings corresponding. This explicitly means, that e.g. the special method used during the session will be kept for the next handshake. So if the session was a TLSv1 session, a \s-1SSL\s0 client object will use a TLSv1 client method for the next handshake and a \s-1SSL\s0 server object will use a TLSv1 server method, even if SSLv23_*_methods were chosen on startup. This will might lead to connection failures (see \fISSL_new\fR\|(3)) for a description of the method's properties. .SH "WARNINGS" .IX Header "WARNINGS" \&\fISSL_clear()\fR resets the \s-1SSL\s0 object to allow for another connection. The reset operation however keeps several settings of the last sessions (some of these settings were made automatically during the last handshake). It only makes sense for a new connection with the exact same peer that shares these settings, and may fail if that peer changes its settings between connections. Use the sequence \&\fISSL_get_session\fR\|(3); \&\fISSL_new\fR\|(3); \&\fISSL_set_session\fR\|(3); \&\fISSL_free\fR\|(3) instead to avoid such failures (or simply \fISSL_free\fR\|(3); \fISSL_new\fR\|(3) if session reuse is not desired). .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following return values can occur: .IP "0" 4 The \fISSL_clear()\fR operation could not be performed. Check the error stack to find out the reason. .IP "1" 4 .IX Item "1" The \fISSL_clear()\fR operation was successful. .PP \&\fISSL_new\fR\|(3), \fISSL_free\fR\|(3), \&\fISSL_shutdown\fR\|(3), \fISSL_set_shutdown\fR\|(3), \&\fISSL_CTX_set_options\fR\|(3), \fIssl\fR\|(3), \&\fISSL_CTX_set_client_cert_cb\fR\|(3) man3/X509_check_private_key.3000064400000013235147210533270011702 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "X509_check_private_key 3" .TH X509_check_private_key 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" X509_check_private_key, X509_REQ_check_private_key \- check the consistency of a private key with the public key in an X509 certificate or certificate request .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int X509_check_private_key(X509 *x, EVP_PKEY *k); \& \& int X509_REQ_check_private_key(X509_REQ *x, EVP_PKEY *k); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIX509_check_private_key()\fR function checks the consistency of private key \fBk\fR with the public key in \fBx\fR. .PP \&\fIX509_REQ_check_private_key()\fR is equivalent to \fIX509_check_private_key()\fR except that \fBx\fR represents a certificate request of structure \fBX509_REQ\fR. .SH "RETURN VALUE" .IX Header "RETURN VALUE" \&\fIX509_check_private_key()\fR and \fIX509_REQ_check_private_key()\fR return 1 if the keys match each other, and 0 if not. .PP If the key is invalid or an error occurred, the reason code can be obtained using \fIERR_get_error\fR\|(3). .SH "BUGS" .IX Header "BUGS" The \fBcheck_private_key\fR functions don't check if \fBk\fR itself is indeed a private key or not. It merely compares the public materials (e.g. exponent and modulus of an \s-1RSA\s0 key) and/or key parameters (e.g. \s-1EC\s0 params of an \s-1EC\s0 key) of a key pair. So if you pass a public key to these functions in \fBk\fR, it will return success. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3) .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. .PP Licensed under the OpenSSL license (the \*(L"License\*(R"). You may not use this file except in compliance with the License. You can obtain a copy in the file \s-1LICENSE\s0 in the source distribution or at . man3/SSL_get_peer_cert_chain.3000064400000012576147210533270012177 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_get_peer_cert_chain 3" .TH SSL_get_peer_cert_chain 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_get_peer_cert_chain \- get the X509 certificate chain of the peer .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& STACK_OF(X509) *SSL_get_peer_cert_chain(const SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_get_peer_cert_chain()\fR returns a pointer to \s-1STACK_OF\s0(X509) certificates forming the certificate chain of the peer. If called on the client side, the stack also contains the peer's certificate; if called on the server side, the peer's certificate must be obtained separately using \&\fISSL_get_peer_certificate\fR\|(3). If the peer did not present a certificate, \s-1NULL\s0 is returned. .SH "NOTES" .IX Header "NOTES" The peer certificate chain is not necessarily available after reusing a session, in which case a \s-1NULL\s0 pointer is returned. .PP The reference count of the \s-1STACK_OF\s0(X509) object is not incremented. If the corresponding session is freed, the pointer must not be used any longer. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following return values can occur: .IP "\s-1NULL\s0" 4 .IX Item "NULL" No certificate was presented by the peer or no connection was established or the certificate chain is no longer available when a session is reused. .IP "Pointer to a \s-1STACK_OF\s0(X509)" 4 .IX Item "Pointer to a STACK_OF(X509)" The return value points to the certificate chain presented by the peer. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_get_peer_certificate\fR\|(3) man3/SSL_CTX_set_session_id_context.3000064400000015527147210533270013521 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_session_id_context 3" .TH SSL_CTX_set_session_id_context 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_session_id_context, SSL_set_session_id_context \- set context within which session can be reused (server side only) .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_CTX_set_session_id_context(SSL_CTX *ctx, const unsigned char *sid_ctx, \& unsigned int sid_ctx_len); \& int SSL_set_session_id_context(SSL *ssl, const unsigned char *sid_ctx, \& unsigned int sid_ctx_len); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set_session_id_context()\fR sets the context \fBsid_ctx\fR of length \&\fBsid_ctx_len\fR within which a session can be reused for the \fBctx\fR object. .PP \&\fISSL_set_session_id_context()\fR sets the context \fBsid_ctx\fR of length \&\fBsid_ctx_len\fR within which a session can be reused for the \fBssl\fR object. .SH "NOTES" .IX Header "NOTES" Sessions are generated within a certain context. When exporting/importing sessions with \fBi2d_SSL_SESSION\fR/\fBd2i_SSL_SESSION\fR it would be possible, to re-import a session generated from another context (e.g. another application), which might lead to malfunctions. Therefore each application must set its own session id context \fBsid_ctx\fR which is used to distinguish the contexts and is stored in exported sessions. The \fBsid_ctx\fR can be any kind of binary data with a given length, it is therefore possible to use e.g. the name of the application and/or the hostname and/or service name ... .PP The session id context becomes part of the session. The session id context is set by the \s-1SSL/TLS\s0 server. The \fISSL_CTX_set_session_id_context()\fR and \&\fISSL_set_session_id_context()\fR functions are therefore only useful on the server side. .PP OpenSSL clients will check the session id context returned by the server when reusing a session. .PP The maximum length of the \fBsid_ctx\fR is limited to \&\fB\s-1SSL_MAX_SSL_SESSION_ID_LENGTH\s0\fR. .SH "WARNINGS" .IX Header "WARNINGS" If the session id context is not set on an \s-1SSL/TLS\s0 server and client certificates are used, stored sessions will not be reused but a fatal error will be flagged and the handshake will fail. .PP If a server returns a different session id context to an OpenSSL client when reusing a session, an error will be flagged and the handshake will fail. OpenSSL servers will always return the correct session id context, as an OpenSSL server checks the session id context itself before reusing a session as described above. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CTX_set_session_id_context()\fR and \fISSL_set_session_id_context()\fR return the following values: .IP "0" 4 The length \fBsid_ctx_len\fR of the session id context \fBsid_ctx\fR exceeded the maximum allowed length of \fB\s-1SSL_MAX_SSL_SESSION_ID_LENGTH\s0\fR. The error is logged to the error stack. .IP "1" 4 .IX Item "1" The operation succeeded. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3) man3/ERR_GET_LIB.3000064400000012721147210533270007312 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ERR_GET_LIB 3" .TH ERR_GET_LIB 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ERR_GET_LIB, ERR_GET_FUNC, ERR_GET_REASON \- get library, function and reason code .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int ERR_GET_LIB(unsigned long e); \& \& int ERR_GET_FUNC(unsigned long e); \& \& int ERR_GET_REASON(unsigned long e); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The error code returned by \fIERR_get_error()\fR consists of a library number, function code and reason code. \s-1\fIERR_GET_LIB\s0()\fR, \s-1\fIERR_GET_FUNC\s0()\fR and \s-1\fIERR_GET_REASON\s0()\fR can be used to extract these. .PP The library number and function code describe where the error occurred, the reason code is the information about what went wrong. .PP Each sub-library of OpenSSL has a unique library number; function and reason codes are unique within each sub-library. Note that different libraries may use the same value to signal different functions and reasons. .PP \&\fB\s-1ERR_R_...\s0\fR reason codes such as \fB\s-1ERR_R_MALLOC_FAILURE\s0\fR are globally unique. However, when checking for sub-library specific reason codes, be sure to also compare the library number. .PP \&\s-1\fIERR_GET_LIB\s0()\fR, \s-1\fIERR_GET_FUNC\s0()\fR and \s-1\fIERR_GET_REASON\s0()\fR are macros. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The library number, function code and reason code respectively. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIerr\fR\|(3), \fIERR_get_error\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1\fIERR_GET_LIB\s0()\fR, \s-1\fIERR_GET_FUNC\s0()\fR and \s-1\fIERR_GET_REASON\s0()\fR are available in all versions of SSLeay and OpenSSL. man3/SSL_connect.3000064400000014666147210533270007661 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_connect 3" .TH SSL_connect 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_connect \- initiate the TLS/SSL handshake with an TLS/SSL server .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_connect(SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_connect()\fR initiates the \s-1TLS/SSL\s0 handshake with a server. The communication channel must already have been set and assigned to the \fBssl\fR by setting an underlying \fB\s-1BIO\s0\fR. .SH "NOTES" .IX Header "NOTES" The behaviour of \fISSL_connect()\fR depends on the underlying \s-1BIO. \s0 .PP If the underlying \s-1BIO\s0 is \fBblocking\fR, \fISSL_connect()\fR will only return once the handshake has been finished or an error occurred. .PP If the underlying \s-1BIO\s0 is \fBnon-blocking\fR, \fISSL_connect()\fR will also return when the underlying \s-1BIO\s0 could not satisfy the needs of \fISSL_connect()\fR to continue the handshake, indicating the problem by the return value \-1. In this case a call to \fISSL_get_error()\fR with the return value of \fISSL_connect()\fR will yield \fB\s-1SSL_ERROR_WANT_READ\s0\fR or \&\fB\s-1SSL_ERROR_WANT_WRITE\s0\fR. The calling process then must repeat the call after taking appropriate action to satisfy the needs of \fISSL_connect()\fR. The action depends on the underlying \s-1BIO.\s0 When using a non-blocking socket, nothing is to be done, but \fIselect()\fR can be used to check for the required condition. When using a buffering \s-1BIO,\s0 like a \s-1BIO\s0 pair, data must be written into or retrieved out of the \s-1BIO\s0 before being able to continue. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following return values can occur: .IP "0" 4 The \s-1TLS/SSL\s0 handshake was not successful but was shut down controlled and by the specifications of the \s-1TLS/SSL\s0 protocol. Call \fISSL_get_error()\fR with the return value \fBret\fR to find out the reason. .IP "1" 4 .IX Item "1" The \s-1TLS/SSL\s0 handshake was successfully completed, a \s-1TLS/SSL\s0 connection has been established. .IP "<0" 4 .IX Item "<0" The \s-1TLS/SSL\s0 handshake was not successful, because a fatal error occurred either at the protocol level or a connection failure occurred. The shutdown was not clean. It can also occur of action is need to continue the operation for non-blocking BIOs. Call \fISSL_get_error()\fR with the return value \fBret\fR to find out the reason. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_get_error\fR\|(3), \fISSL_accept\fR\|(3), \&\fISSL_shutdown\fR\|(3), \fIssl\fR\|(3), \fIbio\fR\|(3), \&\fISSL_set_connect_state\fR\|(3), \&\fISSL_do_handshake\fR\|(3), \&\fISSL_CTX_new\fR\|(3) man3/DSA_new.3000064400000011675147210533270006764 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DSA_new 3" .TH DSA_new 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" DSA_new, DSA_free \- allocate and free DSA objects .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& DSA* DSA_new(void); \& \& void DSA_free(DSA *dsa); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIDSA_new()\fR allocates and initializes a \fB\s-1DSA\s0\fR structure. It is equivalent to calling DSA_new_method(\s-1NULL\s0). .PP \&\fIDSA_free()\fR frees the \fB\s-1DSA\s0\fR structure and its components. The values are erased before the memory is returned to the system. .SH "RETURN VALUES" .IX Header "RETURN VALUES" If the allocation fails, \fIDSA_new()\fR returns \fB\s-1NULL\s0\fR and sets an error code that can be obtained by \&\fIERR_get_error\fR\|(3). Otherwise it returns a pointer to the newly allocated structure. .PP \&\fIDSA_free()\fR returns no value. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdsa\fR\|(3), \fIERR_get_error\fR\|(3), \&\fIDSA_generate_parameters\fR\|(3), \&\fIDSA_generate_key\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIDSA_new()\fR and \fIDSA_free()\fR are available in all versions of SSLeay and OpenSSL. man3/dsa.3000064400000020161147210533270006241 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "dsa 3" .TH dsa 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" dsa \- Digital Signature Algorithm .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& #include \& #include \& \& DSA * DSA_new(void); \& void DSA_free(DSA *dsa); \& \& int DSA_size(const DSA *dsa); \& \& DSA * DSA_generate_parameters(int bits, unsigned char *seed, \& int seed_len, int *counter_ret, unsigned long *h_ret, \& void (*callback)(int, int, void *), void *cb_arg); \& \& DH * DSA_dup_DH(const DSA *r); \& \& int DSA_generate_key(DSA *dsa); \& \& int DSA_sign(int dummy, const unsigned char *dgst, int len, \& unsigned char *sigret, unsigned int *siglen, DSA *dsa); \& int DSA_sign_setup(DSA *dsa, BN_CTX *ctx, BIGNUM **kinvp, \& BIGNUM **rp); \& int DSA_verify(int dummy, const unsigned char *dgst, int len, \& const unsigned char *sigbuf, int siglen, DSA *dsa); \& \& void DSA_set_default_method(const DSA_METHOD *meth); \& const DSA_METHOD *DSA_get_default_method(void); \& int DSA_set_method(DSA *dsa, const DSA_METHOD *meth); \& DSA *DSA_new_method(ENGINE *engine); \& const DSA_METHOD *DSA_OpenSSL(void); \& \& int DSA_get_ex_new_index(long argl, char *argp, int (*new_func)(), \& int (*dup_func)(), void (*free_func)()); \& int DSA_set_ex_data(DSA *d, int idx, char *arg); \& char *DSA_get_ex_data(DSA *d, int idx); \& \& DSA_SIG *DSA_SIG_new(void); \& void DSA_SIG_free(DSA_SIG *a); \& int i2d_DSA_SIG(const DSA_SIG *a, unsigned char **pp); \& DSA_SIG *d2i_DSA_SIG(DSA_SIG **v, unsigned char **pp, long length); \& \& DSA_SIG *DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa); \& int DSA_do_verify(const unsigned char *dgst, int dgst_len, \& DSA_SIG *sig, DSA *dsa); \& \& DSA * d2i_DSAPublicKey(DSA **a, unsigned char **pp, long length); \& DSA * d2i_DSAPrivateKey(DSA **a, unsigned char **pp, long length); \& DSA * d2i_DSAparams(DSA **a, unsigned char **pp, long length); \& int i2d_DSAPublicKey(const DSA *a, unsigned char **pp); \& int i2d_DSAPrivateKey(const DSA *a, unsigned char **pp); \& int i2d_DSAparams(const DSA *a,unsigned char **pp); \& \& int DSAparams_print(BIO *bp, const DSA *x); \& int DSAparams_print_fp(FILE *fp, const DSA *x); \& int DSA_print(BIO *bp, const DSA *x, int off); \& int DSA_print_fp(FILE *bp, const DSA *x, int off); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions implement the Digital Signature Algorithm (\s-1DSA\s0). The generation of shared \s-1DSA\s0 parameters is described in \&\fIDSA_generate_parameters\fR\|(3); \&\fIDSA_generate_key\fR\|(3) describes how to generate a signature key. Signature generation and verification are described in \fIDSA_sign\fR\|(3). .PP The \fB\s-1DSA\s0\fR structure consists of several \s-1BIGNUM\s0 components. .PP .Vb 10 \& struct \& { \& BIGNUM *p; // prime number (public) \& BIGNUM *q; // 160\-bit subprime, q | p\-1 (public) \& BIGNUM *g; // generator of subgroup (public) \& BIGNUM *priv_key; // private key x \& BIGNUM *pub_key; // public key y = g^x \& // ... \& } \& DSA; .Ve .PP In public keys, \fBpriv_key\fR is \s-1NULL.\s0 .PP Note that \s-1DSA\s0 keys may use non-standard \fB\s-1DSA_METHOD\s0\fR implementations, either directly or by the use of \fB\s-1ENGINE\s0\fR modules. In some cases (eg. an \&\s-1ENGINE\s0 providing support for hardware-embedded keys), these \s-1BIGNUM\s0 values will not be used by the implementation or may be used for alternative data storage. For this reason, applications should generally avoid using \s-1DSA\s0 structure elements directly and instead use \s-1API\s0 functions to query or modify keys. .SH "CONFORMING TO" .IX Header "CONFORMING TO" \&\s-1US\s0 Federal Information Processing Standard \s-1FIPS 186 \s0(Digital Signature Standard, \s-1DSS\s0), \s-1ANSI X9.30\s0 .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIbn\fR\|(3), \fIdh\fR\|(3), \fIerr\fR\|(3), \fIrand\fR\|(3), \&\fIrsa\fR\|(3), \fIsha\fR\|(3), \fIengine\fR\|(3), \&\fIDSA_new\fR\|(3), \&\fIDSA_size\fR\|(3), \&\fIDSA_generate_parameters\fR\|(3), \&\fIDSA_dup_DH\fR\|(3), \&\fIDSA_generate_key\fR\|(3), \&\fIDSA_sign\fR\|(3), \fIDSA_set_method\fR\|(3), \&\fIDSA_get_ex_new_index\fR\|(3), \&\fIRSA_print\fR\|(3) man3/SSL_get_rbio.3000064400000011247147210533270010012 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_get_rbio 3" .TH SSL_get_rbio 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_get_rbio \- get BIO linked to an SSL object .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& BIO *SSL_get_rbio(SSL *ssl); \& BIO *SSL_get_wbio(SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_get_rbio()\fR and \fISSL_get_wbio()\fR return pointers to the BIOs for the read or the write channel, which can be different. The reference count of the \s-1BIO\s0 is not incremented. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following return values can occur: .IP "\s-1NULL\s0" 4 .IX Item "NULL" No \s-1BIO\s0 was connected to the \s-1SSL\s0 object .IP "Any other pointer" 4 .IX Item "Any other pointer" The \s-1BIO\s0 linked to \fBssl\fR. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_set_bio\fR\|(3), \fIssl\fR\|(3) , \fIbio\fR\|(3) man3/ERR_put_error.3000064400000012154147210533270010226 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ERR_put_error 3" .TH ERR_put_error 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ERR_put_error, ERR_add_error_data \- record an error .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void ERR_put_error(int lib, int func, int reason, const char *file, \& int line); \& \& void ERR_add_error_data(int num, ...); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIERR_put_error()\fR adds an error code to the thread's error queue. It signals that the error of reason code \fBreason\fR occurred in function \&\fBfunc\fR of library \fBlib\fR, in line number \fBline\fR of \fBfile\fR. This function is usually called by a macro. .PP \&\fIERR_add_error_data()\fR associates the concatenation of its \fBnum\fR string arguments with the error code added last. .PP \&\fIERR_load_strings\fR\|(3) can be used to register error strings so that the application can a generate human-readable error messages for the error code. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIERR_put_error()\fR and \fIERR_add_error_data()\fR return no values. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIerr\fR\|(3), \fIERR_load_strings\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIERR_put_error()\fR is available in all versions of SSLeay and OpenSSL. \&\fIERR_add_error_data()\fR was added in SSLeay 0.9.0. man3/DSA_get_ex_new_index.3000064400000011610147210533270011473 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DSA_get_ex_new_index 3" .TH DSA_get_ex_new_index 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" DSA_get_ex_new_index, DSA_set_ex_data, DSA_get_ex_data \- add application specific data to DSA structures .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int DSA_get_ex_new_index(long argl, void *argp, \& CRYPTO_EX_new *new_func, \& CRYPTO_EX_dup *dup_func, \& CRYPTO_EX_free *free_func); \& \& int DSA_set_ex_data(DSA *d, int idx, void *arg); \& \& char *DSA_get_ex_data(DSA *d, int idx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions handle application specific data in \s-1DSA\s0 structures. Their usage is identical to that of \&\fIRSA_get_ex_new_index()\fR, \fIRSA_set_ex_data()\fR and \fIRSA_get_ex_data()\fR as described in \fIRSA_get_ex_new_index\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIRSA_get_ex_new_index\fR\|(3), \fIdsa\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIDSA_get_ex_new_index()\fR, \fIDSA_set_ex_data()\fR and \fIDSA_get_ex_data()\fR are available since OpenSSL 0.9.5. man3/EVP_PKEY_get_default_digest.3000064400000012120147210533270012652 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EVP_PKEY_get_default_digest 3" .TH EVP_PKEY_get_default_digest 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EVP_PKEY_get_default_digest_nid \- get default signature digest .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& #include \& int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fIEVP_PKEY_get_default_digest_nid()\fR function sets \fBpnid\fR to the default message digest \s-1NID\s0 for the public key signature operations associated with key \&\fBpkey\fR. .SH "NOTES" .IX Header "NOTES" For all current standard OpenSSL public key algorithms \s-1SHA1\s0 is returned. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The \fIEVP_PKEY_get_default_digest_nid()\fR function returns 1 if the message digest is advisory (that is other digests can be used) and 2 if it is mandatory (other digests can not be used). It returns 0 or a negative value for failure. In particular a return value of \-2 indicates the operation is not supported by the public key algorithm. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIEVP_PKEY_CTX_new\fR\|(3), \&\fIEVP_PKEY_sign\fR\|(3), \&\fIEVP_PKEY_verify\fR\|(3), \&\fIEVP_PKEY_verify_recover\fR\|(3), .SH "HISTORY" .IX Header "HISTORY" This function was first added to OpenSSL 1.0.0. man3/d2i_CMS_ContentInfo.3000064400000011141147210533270011156 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "d2i_CMS_ContentInfo 3" .TH d2i_CMS_ContentInfo 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" d2i_CMS_ContentInfo, i2d_CMS_ContentInfo \- CMS ContentInfo functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& CMS_ContentInfo *d2i_CMS_ContentInfo(CMS_ContentInfo **a, unsigned char **pp, long length); \& int i2d_CMS_ContentInfo(CMS_ContentInfo *a, unsigned char **pp); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions decode and encode an \s-1CMS\s0 ContentInfo structure. .PP Otherwise they behave in a similar way to \fId2i_X509()\fR and \fIi2d_X509()\fR described in the \fId2i_X509\fR\|(3) manual page. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fId2i_X509\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" These functions were first added to OpenSSL 0.9.8 man3/SSL_do_handshake.3000064400000014705147210533270010632 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_do_handshake 3" .TH SSL_do_handshake 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_do_handshake \- perform a TLS/SSL handshake .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_do_handshake(SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_do_handshake()\fR will wait for a \s-1SSL/TLS\s0 handshake to take place. If the connection is in client mode, the handshake will be started. The handshake routines may have to be explicitly set in advance using either \&\fISSL_set_connect_state\fR\|(3) or \&\fISSL_set_accept_state\fR\|(3). .SH "NOTES" .IX Header "NOTES" The behaviour of \fISSL_do_handshake()\fR depends on the underlying \s-1BIO.\s0 .PP If the underlying \s-1BIO\s0 is \fBblocking\fR, \fISSL_do_handshake()\fR will only return once the handshake has been finished or an error occurred. .PP If the underlying \s-1BIO\s0 is \fBnon-blocking\fR, \fISSL_do_handshake()\fR will also return when the underlying \s-1BIO\s0 could not satisfy the needs of \fISSL_do_handshake()\fR to continue the handshake. In this case a call to \fISSL_get_error()\fR with the return value of \fISSL_do_handshake()\fR will yield \fB\s-1SSL_ERROR_WANT_READ\s0\fR or \&\fB\s-1SSL_ERROR_WANT_WRITE\s0\fR. The calling process then must repeat the call after taking appropriate action to satisfy the needs of \fISSL_do_handshake()\fR. The action depends on the underlying \s-1BIO.\s0 When using a non-blocking socket, nothing is to be done, but \fIselect()\fR can be used to check for the required condition. When using a buffering \s-1BIO,\s0 like a \s-1BIO\s0 pair, data must be written into or retrieved out of the \s-1BIO\s0 before being able to continue. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following return values can occur: .IP "0" 4 The \s-1TLS/SSL\s0 handshake was not successful but was shut down controlled and by the specifications of the \s-1TLS/SSL\s0 protocol. Call \fISSL_get_error()\fR with the return value \fBret\fR to find out the reason. .IP "1" 4 .IX Item "1" The \s-1TLS/SSL\s0 handshake was successfully completed, a \s-1TLS/SSL\s0 connection has been established. .IP "<0" 4 .IX Item "<0" The \s-1TLS/SSL\s0 handshake was not successful because a fatal error occurred either at the protocol level or a connection failure occurred. The shutdown was not clean. It can also occur of action is need to continue the operation for non-blocking BIOs. Call \fISSL_get_error()\fR with the return value \fBret\fR to find out the reason. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_get_error\fR\|(3), \fISSL_connect\fR\|(3), \&\fISSL_accept\fR\|(3), \fIssl\fR\|(3), \fIbio\fR\|(3), \&\fISSL_set_connect_state\fR\|(3) man3/d2i_X509_ALGOR.3000064400000011116147210533270007621 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "d2i_X509_ALGOR 3" .TH d2i_X509_ALGOR 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" d2i_X509_ALGOR, i2d_X509_ALGOR \- AlgorithmIdentifier functions. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& X509_ALGOR *d2i_X509_ALGOR(X509_ALGOR **a, unsigned char **pp, long length); \& int i2d_X509_ALGOR(X509_ALGOR *a, unsigned char **pp); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions decode and encode an \fBX509_ALGOR\fR structure which is equivalent to the \fBAlgorithmIdentifier\fR structure. .PP Othewise these behave in a similar way to \fId2i_X509()\fR and \fIi2d_X509()\fR described in the \fId2i_X509\fR\|(3) manual page. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fId2i_X509\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1TBA\s0 man3/OPENSSL_ia32cap.3000064400000021620147210533270010120 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "OPENSSL_ia32cap 3" .TH OPENSSL_ia32cap 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" OPENSSL_ia32cap, OPENSSL_ia32cap_loc \- the IA\-32 processor capabilities vector .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& unsigned long *OPENSSL_ia32cap_loc(void); \& #define OPENSSL_ia32cap ((OPENSSL_ia32cap_loc())[0]) .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Value returned by \fIOPENSSL_ia32cap_loc()\fR is address of a variable containing \s-1IA\-32\s0 processor capabilities bit vector as it appears in \&\s-1EDX:ECX\s0 register pair after executing \s-1CPUID\s0 instruction with EAX=1 input value (see Intel Application Note #241618). Naturally it's meaningful on x86 and x86_64 platforms only. The variable is normally set up automatically upon toolkit initialization, but can be manipulated afterwards to modify crypto library behaviour. For the moment of this writing following bits are significant: .IP "bit #4 denoting presence of Time-Stamp Counter." 4 .IX Item "bit #4 denoting presence of Time-Stamp Counter." .PD 0 .IP "bit #19 denoting availability of \s-1CLFLUSH\s0 instruction;" 4 .IX Item "bit #19 denoting availability of CLFLUSH instruction;" .IP "bit #20, reserved by Intel, is used to choose among \s-1RC4\s0 code paths;" 4 .IX Item "bit #20, reserved by Intel, is used to choose among RC4 code paths;" .IP "bit #23 denoting \s-1MMX\s0 support;" 4 .IX Item "bit #23 denoting MMX support;" .IP "bit #24, \s-1FXSR\s0 bit, denoting availability of \s-1XMM\s0 registers;" 4 .IX Item "bit #24, FXSR bit, denoting availability of XMM registers;" .IP "bit #25 denoting \s-1SSE\s0 support;" 4 .IX Item "bit #25 denoting SSE support;" .IP "bit #26 denoting \s-1SSE2\s0 support;" 4 .IX Item "bit #26 denoting SSE2 support;" .IP "bit #28 denoting Hyperthreading, which is used to distinguish cores with shared cache;" 4 .IX Item "bit #28 denoting Hyperthreading, which is used to distinguish cores with shared cache;" .IP "bit #30, reserved by Intel, denotes specifically Intel CPUs;" 4 .IX Item "bit #30, reserved by Intel, denotes specifically Intel CPUs;" .IP "bit #33 denoting availability of \s-1PCLMULQDQ\s0 instruction;" 4 .IX Item "bit #33 denoting availability of PCLMULQDQ instruction;" .IP "bit #41 denoting \s-1SSSE3,\s0 Supplemental \s-1SSE3,\s0 support;" 4 .IX Item "bit #41 denoting SSSE3, Supplemental SSE3, support;" .IP "bit #43 denoting \s-1AMD XOP\s0 support (forced to zero on non-AMD CPUs);" 4 .IX Item "bit #43 denoting AMD XOP support (forced to zero on non-AMD CPUs);" .IP "bit #57 denoting AES-NI instruction set extension;" 4 .IX Item "bit #57 denoting AES-NI instruction set extension;" .IP "bit #59, \s-1OSXSAVE\s0 bit, denoting availability of \s-1YMM\s0 registers;" 4 .IX Item "bit #59, OSXSAVE bit, denoting availability of YMM registers;" .IP "bit #60 denoting \s-1AVX\s0 extension;" 4 .IX Item "bit #60 denoting AVX extension;" .IP "bit #62 denoting availability of \s-1RDRAND\s0 instruction;" 4 .IX Item "bit #62 denoting availability of RDRAND instruction;" .PD .PP For example, clearing bit #26 at run-time disables high-performance \&\s-1SSE2\s0 code present in the crypto library, while clearing bit #24 disables \s-1SSE2\s0 code operating on 128\-bit \s-1XMM\s0 register bank. You might have to do the latter if target OpenSSL application is executed on \s-1SSE2\s0 capable \s-1CPU,\s0 but under control of \s-1OS\s0 that does not enable \s-1XMM\s0 registers. Even though you can manipulate the value programmatically, you most likely will find it more appropriate to set up an environment variable with the same name prior starting target application, e.g. on Intel P4 processor 'env OPENSSL_ia32cap=0x16980010 apps/openssl', or better yet 'env OPENSSL_ia32cap=~0x1000000 apps/openssl' to achieve same effect without modifying the application source code. Alternatively you can reconfigure the toolkit with no\-sse2 option and recompile. .PP Less intuitive is clearing bit #28. The truth is that it's not copied from \s-1CPUID\s0 output verbatim, but is adjusted to reflect whether or not the data cache is actually shared between logical cores. This in turn affects the decision on whether or not expensive countermeasures against cache-timing attacks are applied, most notably in \s-1AES\s0 assembler module. .PP The vector is further extended with \s-1EBX\s0 value returned by \s-1CPUID\s0 with EAX=7 and ECX=0 as input. Following bits are significant: .IP "bit #64+3 denoting availability of \s-1BMI1\s0 instructions, e.g. \s-1ANDN\s0;" 4 .IX Item "bit #64+3 denoting availability of BMI1 instructions, e.g. ANDN;" .PD 0 .IP "bit #64+5 denoting availability of \s-1AVX2\s0 instructions;" 4 .IX Item "bit #64+5 denoting availability of AVX2 instructions;" .IP "bit #64+8 denoting availability of \s-1BMI2\s0 instructions, e.g. \s-1MUXL\s0 and \s-1RORX\s0;" 4 .IX Item "bit #64+8 denoting availability of BMI2 instructions, e.g. MUXL and RORX;" .IP "bit #64+18 denoting availability of \s-1RDSEED\s0 instruction;" 4 .IX Item "bit #64+18 denoting availability of RDSEED instruction;" .IP "bit #64+19 denoting availability of \s-1ADCX\s0 and \s-1ADOX\s0 instructions;" 4 .IX Item "bit #64+19 denoting availability of ADCX and ADOX instructions;" man3/SSL_accept.3000064400000014707147210533270007463 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_accept 3" .TH SSL_accept 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_accept \- wait for a TLS/SSL client to initiate a TLS/SSL handshake .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_accept(SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_accept()\fR waits for a \s-1TLS/SSL\s0 client to initiate the \s-1TLS/SSL\s0 handshake. The communication channel must already have been set and assigned to the \&\fBssl\fR by setting an underlying \fB\s-1BIO\s0\fR. .SH "NOTES" .IX Header "NOTES" The behaviour of \fISSL_accept()\fR depends on the underlying \s-1BIO. \s0 .PP If the underlying \s-1BIO\s0 is \fBblocking\fR, \fISSL_accept()\fR will only return once the handshake has been finished or an error occurred. .PP If the underlying \s-1BIO\s0 is \fBnon-blocking\fR, \fISSL_accept()\fR will also return when the underlying \s-1BIO\s0 could not satisfy the needs of \fISSL_accept()\fR to continue the handshake, indicating the problem by the return value \-1. In this case a call to \fISSL_get_error()\fR with the return value of \fISSL_accept()\fR will yield \fB\s-1SSL_ERROR_WANT_READ\s0\fR or \&\fB\s-1SSL_ERROR_WANT_WRITE\s0\fR. The calling process then must repeat the call after taking appropriate action to satisfy the needs of \fISSL_accept()\fR. The action depends on the underlying \s-1BIO.\s0 When using a non-blocking socket, nothing is to be done, but \fIselect()\fR can be used to check for the required condition. When using a buffering \s-1BIO,\s0 like a \s-1BIO\s0 pair, data must be written into or retrieved out of the \s-1BIO\s0 before being able to continue. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following return values can occur: .IP "0" 4 The \s-1TLS/SSL\s0 handshake was not successful but was shut down controlled and by the specifications of the \s-1TLS/SSL\s0 protocol. Call \fISSL_get_error()\fR with the return value \fBret\fR to find out the reason. .IP "1" 4 .IX Item "1" The \s-1TLS/SSL\s0 handshake was successfully completed, a \s-1TLS/SSL\s0 connection has been established. .IP "<0" 4 .IX Item "<0" The \s-1TLS/SSL\s0 handshake was not successful because a fatal error occurred either at the protocol level or a connection failure occurred. The shutdown was not clean. It can also occur of action is need to continue the operation for non-blocking BIOs. Call \fISSL_get_error()\fR with the return value \fBret\fR to find out the reason. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_get_error\fR\|(3), \fISSL_connect\fR\|(3), \&\fISSL_shutdown\fR\|(3), \fIssl\fR\|(3), \fIbio\fR\|(3), \&\fISSL_set_connect_state\fR\|(3), \&\fISSL_do_handshake\fR\|(3), \&\fISSL_CTX_new\fR\|(3) man3/RSA_new.3000064400000011660147210533270006774 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RSA_new 3" .TH RSA_new 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" RSA_new, RSA_free \- allocate and free RSA objects .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& RSA * RSA_new(void); \& \& void RSA_free(RSA *rsa); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIRSA_new()\fR allocates and initializes an \fB\s-1RSA\s0\fR structure. It is equivalent to calling RSA_new_method(\s-1NULL\s0). .PP \&\fIRSA_free()\fR frees the \fB\s-1RSA\s0\fR structure and its components. The key is erased before the memory is returned to the system. .SH "RETURN VALUES" .IX Header "RETURN VALUES" If the allocation fails, \fIRSA_new()\fR returns \fB\s-1NULL\s0\fR and sets an error code that can be obtained by \fIERR_get_error\fR\|(3). Otherwise it returns a pointer to the newly allocated structure. .PP \&\fIRSA_free()\fR returns no value. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fIrsa\fR\|(3), \&\fIRSA_generate_key\fR\|(3), \&\fIRSA_new_method\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIRSA_new()\fR and \fIRSA_free()\fR are available in all versions of SSLeay and OpenSSL. man3/SSL_get_psk_identity.3000064400000011736147210533270011570 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_get_psk_identity 3" .TH SSL_get_psk_identity 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_get_psk_identity, SSL_get_psk_identity_hint \- get PSK client identity and hint .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& const char *SSL_get_psk_identity_hint(const SSL *ssl); \& const char *SSL_get_psk_identity(const SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_get_psk_identity_hint()\fR is used to retrieve the \s-1PSK\s0 identity hint used during the connection setup related to \s-1SSL\s0 object \&\fBssl\fR. Similarly, \fISSL_get_psk_identity()\fR is used to retrieve the \s-1PSK\s0 identity used during the connection setup. .SH "RETURN VALUES" .IX Header "RETURN VALUES" If non\-\fB\s-1NULL\s0\fR, \fISSL_get_psk_identity_hint()\fR returns the \s-1PSK\s0 identity hint and \fISSL_get_psk_identity()\fR returns the \s-1PSK\s0 identity. Both are \&\fB\s-1NULL\s0\fR\-terminated. \fISSL_get_psk_identity_hint()\fR may return \fB\s-1NULL\s0\fR if no \s-1PSK\s0 identity hint was used during the connection setup. .PP Note that the return value is valid only during the lifetime of the \&\s-1SSL\s0 object \fBssl\fR. man3/SSL_new.3000064400000011607147210533270007011 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_new 3" .TH SSL_new 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_new \- create a new SSL structure for a connection .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& SSL *SSL_new(SSL_CTX *ctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_new()\fR creates a new \fB\s-1SSL\s0\fR structure which is needed to hold the data for a \s-1TLS/SSL\s0 connection. The new structure inherits the settings of the underlying context \fBctx\fR: connection method (SSLv2/v3/TLSv1), options, verification settings, timeout settings. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following return values can occur: .IP "\s-1NULL\s0" 4 .IX Item "NULL" The creation of a new \s-1SSL\s0 structure failed. Check the error stack to find out the reason. .IP "Pointer to an \s-1SSL\s0 structure" 4 .IX Item "Pointer to an SSL structure" The return value points to an allocated \s-1SSL\s0 structure. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_free\fR\|(3), \fISSL_clear\fR\|(3), \&\fISSL_CTX_set_options\fR\|(3), \&\fISSL_get_SSL_CTX\fR\|(3), \&\fIssl\fR\|(3) man3/SSL_CTX_set_tlsext_ticket_key_cb.3000064400000027623147210533270014020 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_tlsext_ticket_key_cb 3" .TH SSL_CTX_set_tlsext_ticket_key_cb 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_tlsext_ticket_key_cb \- set a callback for session ticket processing .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& long SSL_CTX_set_tlsext_ticket_key_cb(SSL_CTX sslctx, \& int (*cb)(SSL *s, unsigned char key_name[16], \& unsigned char iv[EVP_MAX_IV_LENGTH], \& EVP_CIPHER_CTX *ctx, HMAC_CTX *hctx, int enc)); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set_tlsext_ticket_key_cb()\fR sets a callback fuction \fIcb\fR for handling session tickets for the ssl context \fIsslctx\fR. Session tickets, defined in \&\s-1RFC5077\s0 provide an enhanced session resumption capability where the server implementation is not required to maintain per session state. It only applies to \s-1TLS\s0 and there is no SSLv3 implementation. .PP The callback is available when the OpenSSL library was built without \&\fI\s-1OPENSSL_NO_TLSEXT\s0\fR being defined. .PP The callback function \fIcb\fR will be called for every client instigated \s-1TLS\s0 session when session ticket extension is presented in the \s-1TLS\s0 hello message. It is the responsibility of this function to create or retrieve the cryptographic parameters and to maintain their state. .PP The OpenSSL library uses your callback function to help implement a common \s-1TLS \s0 ticket construction state according to \s-1RFC5077\s0 Section 4 such that per session state is unnecessary and a small set of cryptographic variables needs to be maintained by the callback function implementation. .PP In order to reuse a session, a \s-1TLS\s0 client must send the a session ticket extension to the server. The client can only send exactly one session ticket. The server, through the callback function, either agrees to reuse the session ticket information or it starts a full \s-1TLS\s0 handshake to create a new session ticket. .PP Before the callback function is started \fIctx\fR and \fIhctx\fR have been initialised with EVP_CIPHER_CTX_init and HMAC_CTX_init respectively. .PP For new sessions tickets, when the client doesn't present a session ticket, or an attempted retreival of the ticket failed, or a renew option was indicated, the callback function will be called with \fIenc\fR equal to 1. The OpenSSL library expects that the function will set an arbitary \fIname\fR, initialize \&\fIiv\fR, and set the cipher context \fIctx\fR and the hash context \fIhctx\fR. .PP The \fIname\fR is 16 characters long and is used as a key identifier. .PP The \fIiv\fR length is the length of the \s-1IV\s0 of the corresponding cipher. The maximum \s-1IV\s0 length is \s-1EVP_MAX_IV_LENGTH\s0 bytes defined in \fBevp.h\fR. .PP The initialization vector \fIiv\fR should be a random value. The cipher context \&\fIctx\fR should use the initialisation vector \fIiv\fR. The cipher context can be set using EVP_EncryptInit_ex. The hmac context can be set using HMAC_Init_ex. .PP When the client presents a session ticket, the callback function with be called with \fIenc\fR set to 0 indicating that the \fIcb\fR function should retreive a set of parameters. In this case \fIname\fR and \fIiv\fR have already been parsed out of the session ticket. The OpenSSL library expects that the \fIname\fR will be used to retrieve a cryptographic parameters and that the cryptographic context \&\fIctx\fR will be set with the retreived parameters and the initialization vector \&\fIiv\fR. using a function like EVP_DecryptInit_ex. The \fIhctx\fR needs to be set using HMAC_Init_ex. .PP If the \fIname\fR is still valid but a renewal of the ticket is required the callback function should return 2. The library will call the callback again with an arguement of enc equal to 1 to set the new ticket. .PP The return value of the \fIcb\fR function is used by OpenSSL to determine what further processing will occur. The following return values have meaning: .IP "2" 4 .IX Item "2" This indicates that the \fIctx\fR and \fIhctx\fR have been set and the session can continue on those parameters. Additionally it indicates that the session ticket is in a renewal period and should be replaced. The OpenSSL library will call \fIcb\fR again with an enc argument of 1 to set the new ticket (see \s-1RFC5077 3.3\s0 paragraph 2). .IP "1" 4 .IX Item "1" This indicates that the \fIctx\fR and \fIhctx\fR have been set and the session can continue on those parameters. .IP "0" 4 This indicates that it was not possible to set/retrieve a session ticket and the \s-1SSL/TLS\s0 session will continue by by negiotationing a set of cryptographic parameters or using the alternate \s-1SSL/TLS\s0 resumption mechanism, session ids. .Sp If called with enc equal to 0 the library will call the \fIcb\fR again to get a new set of parameters. .IP "less than 0" 4 .IX Item "less than 0" This indicates an error. .SH "NOTES" .IX Header "NOTES" Session resumption shortcuts the \s-1TLS\s0 so that the client certificate negiotation don't occur. It makes up for this by storing client certificate an all other negotiated state information encrypted within the ticket. In a resumed session the applications will have all this state information available exactly as if a full negiotation had occured. .PP If an attacker can obtain the key used to encrypt a session ticket, they can obtain the master secret for any ticket using that key and decrypt any traffic using that session: even if the ciphersuite supports forward secrecy. As a result applications may wish to use multiple keys and avoid using long term keys stored in files. .PP Applications can use longer keys to maintain a consistent level of security. For example if a ciphersuite uses 256 bit ciphers but only a 128 bit ticket key the overall security is only 128 bits because breaking the ticket key will enable an attacker to obtain the session keys. .SH "EXAMPLES" .IX Header "EXAMPLES" Reference Implemention: SSL_CTX_set_tlsext_ticket_key_cb(\s-1SSL\s0,ssl_tlsext_ticket_key_cb); .... .PP .Vb 6 \& static int ssl_tlsext_ticket_key_cb(SSL *s, unsigned char key_name[16], unsigned char *iv, EVP_CIPHER_CTX *ctx, HMAC_CTX *hctx, int enc) \& { \& if (enc) { /* create new session */ \& if (RAND_bytes(iv, EVP_MAX_IV_LENGTH) ) { \& return \-1; /* insufficient random */ \& } \& \& key = currentkey(); /* something that you need to implement */ \& if ( !key ) { \& /* current key doesn\*(Aqt exist or isn\*(Aqt valid */ \& key = createkey(); /* something that you need to implement. \& * createkey needs to initialise, a name, \& * an aes_key, a hmac_key and optionally \& * an expire time. */ \& if ( !key ) { /* key couldn\*(Aqt be created */ \& return 0; \& } \& } \& memcpy(key_name, key\->name, 16); \& \& EVP_EncryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, key\->aes_key, iv); \& HMAC_Init_ex(&hctx, key\->hmac_key, 16, EVP_sha256(), NULL); \& \& return 1; \& \& } else { /* retrieve session */ \& key = findkey(name); \& \& if (!key || key\->expire < now() ) { \& return 0; \& } \& \& HMAC_Init_ex(&hctx, key\->hmac_key, 16, EVP_sha256(), NULL); \& EVP_DecryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, key\->aes_key, iv ); \& \& if (key\->expire < ( now() \- RENEW_TIME ) ) { \& /* return 2 \- this session will get a new ticket even though the current is still valid */ \& return 2; \& } \& return 1; \& \& } \& } .Ve .SH "RETURN VALUES" .IX Header "RETURN VALUES" returns 0 to indicate the callback function was set. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_set_session\fR\|(3), \&\fISSL_session_reused\fR\|(3), \&\fISSL_CTX_add_session\fR\|(3), \&\fISSL_CTX_sess_number\fR\|(3), \&\fISSL_CTX_sess_set_get_cb\fR\|(3), \&\fISSL_CTX_set_session_id_context\fR\|(3), .SH "HISTORY" .IX Header "HISTORY" This function was introduced in OpenSSL 0.9.8h man3/EVP_OpenInit.3000064400000014116147210533270007734 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EVP_OpenInit 3" .TH EVP_OpenInit 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" EVP_OpenInit, EVP_OpenUpdate, EVP_OpenFinal \- EVP envelope decryption .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int EVP_OpenInit(EVP_CIPHER_CTX *ctx,EVP_CIPHER *type,unsigned char *ek, \& int ekl,unsigned char *iv,EVP_PKEY *priv); \& int EVP_OpenUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, \& int *outl, unsigned char *in, int inl); \& int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, \& int *outl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \s-1EVP\s0 envelope routines are a high level interface to envelope decryption. They decrypt a public key encrypted symmetric key and then decrypt data using it. .PP \&\fIEVP_OpenInit()\fR initializes a cipher context \fBctx\fR for decryption with cipher \fBtype\fR. It decrypts the encrypted symmetric key of length \&\fBekl\fR bytes passed in the \fBek\fR parameter using the private key \fBpriv\fR. The \s-1IV\s0 is supplied in the \fBiv\fR parameter. .PP \&\fIEVP_OpenUpdate()\fR and \fIEVP_OpenFinal()\fR have exactly the same properties as the \fIEVP_DecryptUpdate()\fR and \fIEVP_DecryptFinal()\fR routines, as documented on the \fIEVP_EncryptInit\fR\|(3) manual page. .SH "NOTES" .IX Header "NOTES" It is possible to call \fIEVP_OpenInit()\fR twice in the same way as \&\fIEVP_DecryptInit()\fR. The first call should have \fBpriv\fR set to \s-1NULL\s0 and (after setting any cipher parameters) it should be called again with \fBtype\fR set to \s-1NULL.\s0 .PP If the cipher passed in the \fBtype\fR parameter is a variable length cipher then the key length will be set to the value of the recovered key length. If the cipher is a fixed length cipher then the recovered key length must match the fixed cipher length. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIEVP_OpenInit()\fR returns 0 on error or a non zero integer (actually the recovered secret key size) if successful. .PP \&\fIEVP_OpenUpdate()\fR returns 1 for success or 0 for failure. .PP \&\fIEVP_OpenFinal()\fR returns 0 if the decrypt failed or 1 for success. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIevp\fR\|(3), \fIrand\fR\|(3), \&\fIEVP_EncryptInit\fR\|(3), \&\fIEVP_SealInit\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" man3/DSA_dup_DH.3000064400000011352147210533270007326 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DSA_dup_DH 3" .TH DSA_dup_DH 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" DSA_dup_DH \- create a DH structure out of DSA structure .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& DH * DSA_dup_DH(const DSA *r); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIDSA_dup_DH()\fR duplicates \s-1DSA\s0 parameters/keys as \s-1DH\s0 parameters/keys. q is lost during that conversion, but the resulting \s-1DH\s0 parameters contain its length. .SH "RETURN VALUE" .IX Header "RETURN VALUE" \&\fIDSA_dup_DH()\fR returns the new \fB\s-1DH\s0\fR structure, and \s-1NULL\s0 on error. The error codes can be obtained by \fIERR_get_error\fR\|(3). .SH "NOTE" .IX Header "NOTE" Be careful to avoid small subgroup attacks when using this. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdh\fR\|(3), \fIdsa\fR\|(3), \fIERR_get_error\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIDSA_dup_DH()\fR was added in OpenSSL 0.9.4. man3/SMIME_read_CMS.3000064400000014057147210533270010050 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SMIME_read_CMS 3" .TH SMIME_read_CMS 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" .Vb 1 \& SMIME_read_CMS \- parse S/MIME message. .Ve .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& CMS_ContentInfo *SMIME_read_CMS(BIO *in, BIO **bcont); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISMIME_read_CMS()\fR parses a message in S/MIME format. .PP \&\fBin\fR is a \s-1BIO\s0 to read the message from. .PP If cleartext signing is used then the content is saved in a memory bio which is written to \fB*bcont\fR, otherwise \fB*bcont\fR is set to \s-1NULL.\s0 .PP The parsed CMS_ContentInfo structure is returned or \s-1NULL\s0 if an error occurred. .SH "NOTES" .IX Header "NOTES" If \fB*bcont\fR is not \s-1NULL\s0 then the message is clear text signed. \fB*bcont\fR can then be passed to \fICMS_verify()\fR with the \fB\s-1CMS_DETACHED\s0\fR flag set. .PP Otherwise the type of the returned structure can be determined using \fICMS_get0_type()\fR. .PP To support future functionality if \fBbcont\fR is not \s-1NULL \s0\fB*bcont\fR should be initialized to \s-1NULL.\s0 For example: .PP .Vb 2 \& BIO *cont = NULL; \& CMS_ContentInfo *cms; \& \& cms = SMIME_read_CMS(in, &cont); .Ve .SH "BUGS" .IX Header "BUGS" The \s-1MIME\s0 parser used by \fISMIME_read_CMS()\fR is somewhat primitive. While it will handle most S/MIME messages more complex compound formats may not work. .PP The parser assumes that the CMS_ContentInfo structure is always base64 encoded and will not handle the case where it is in binary format or uses quoted printable format. .PP The use of a memory \s-1BIO\s0 to hold the signed content limits the size of message which can be processed due to memory restraints: a streaming single pass option should be available. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISMIME_read_CMS()\fR returns a valid \fBCMS_ContentInfo\fR structure or \fB\s-1NULL\s0\fR if an error occurred. The error can be obtained from \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fICMS_type\fR\|(3) \&\fISMIME_read_CMS\fR\|(3), \fICMS_sign\fR\|(3), \&\fICMS_verify\fR\|(3), \fICMS_encrypt\fR\|(3) \&\fICMS_decrypt\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fISMIME_read_CMS()\fR was added to OpenSSL 0.9.8 man3/BIO_s_mem.3000064400000020530147210533270007263 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BIO_s_mem 3" .TH BIO_s_mem 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BIO_s_mem, BIO_set_mem_eof_return, BIO_get_mem_data, BIO_set_mem_buf, BIO_get_mem_ptr, BIO_new_mem_buf \- memory BIO .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& BIO_METHOD * BIO_s_mem(void); \& \& BIO_set_mem_eof_return(BIO *b,int v) \& long BIO_get_mem_data(BIO *b, char **pp) \& BIO_set_mem_buf(BIO *b,BUF_MEM *bm,int c) \& BIO_get_mem_ptr(BIO *b,BUF_MEM **pp) \& \& BIO *BIO_new_mem_buf(const void *buf, int len); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBIO_s_mem()\fR return the memory \s-1BIO\s0 method function. .PP A memory \s-1BIO\s0 is a source/sink \s-1BIO\s0 which uses memory for its I/O. Data written to a memory \s-1BIO\s0 is stored in a \s-1BUF_MEM\s0 structure which is extended as appropriate to accommodate the stored data. .PP Any data written to a memory \s-1BIO\s0 can be recalled by reading from it. Unless the memory \s-1BIO\s0 is read only any data read from it is deleted from the \s-1BIO.\s0 .PP Memory BIOs support \fIBIO_gets()\fR and \fIBIO_puts()\fR. .PP If the \s-1BIO_CLOSE\s0 flag is set when a memory \s-1BIO\s0 is freed then the underlying \&\s-1BUF_MEM\s0 structure is also freed. .PP Calling \fIBIO_reset()\fR on a read write memory \s-1BIO\s0 clears any data in it. On a read only \s-1BIO\s0 it restores the \s-1BIO\s0 to its original state and the read only data can be read again. .PP \&\fIBIO_eof()\fR is true if no data is in the \s-1BIO.\s0 .PP \&\fIBIO_ctrl_pending()\fR returns the number of bytes currently stored. .PP \&\fIBIO_set_mem_eof_return()\fR sets the behaviour of memory \s-1BIO \s0\fBb\fR when it is empty. If the \fBv\fR is zero then an empty memory \s-1BIO\s0 will return \s-1EOF \s0(that is it will return zero and BIO_should_retry(b) will be false. If \fBv\fR is non zero then it will return \fBv\fR when it is empty and it will set the read retry flag (that is BIO_read_retry(b) is true). To avoid ambiguity with a normal positive return value \fBv\fR should be set to a negative value, typically \-1. .PP \&\fIBIO_get_mem_data()\fR sets *\fBpp\fR to a pointer to the start of the memory BIOs data and returns the total amount of data available. It is implemented as a macro. .PP \&\fIBIO_set_mem_buf()\fR sets the internal \s-1BUF_MEM\s0 structure to \fBbm\fR and sets the close flag to \fBc\fR, that is \fBc\fR should be either \s-1BIO_CLOSE\s0 or \s-1BIO_NOCLOSE.\s0 It is a macro. .PP \&\fIBIO_get_mem_ptr()\fR places the underlying \s-1BUF_MEM\s0 structure in *\fBpp\fR. It is a macro. .PP \&\fIBIO_new_mem_buf()\fR creates a memory \s-1BIO\s0 using \fBlen\fR bytes of data at \fBbuf\fR, if \fBlen\fR is \-1 then the \fBbuf\fR is assumed to be nul terminated and its length is determined by \fBstrlen\fR. The \s-1BIO\s0 is set to a read only state and as a result cannot be written to. This is useful when some data needs to be made available from a static area of memory in the form of a \s-1BIO.\s0 The supplied data is read directly from the supplied buffer: it is \fBnot\fR copied first, so the supplied area of memory must be unchanged until the \s-1BIO\s0 is freed. .SH "NOTES" .IX Header "NOTES" Writes to memory BIOs will always succeed if memory is available: that is their size can grow indefinitely. .PP Every read from a read write memory \s-1BIO\s0 will remove the data just read with an internal copy operation, if a \s-1BIO\s0 contains a lot of data and it is read in small chunks the operation can be very slow. The use of a read only memory \s-1BIO\s0 avoids this problem. If the \s-1BIO\s0 must be read write then adding a buffering \s-1BIO\s0 to the chain will speed up the process. .SH "BUGS" .IX Header "BUGS" There should be an option to set the maximum size of a memory \s-1BIO.\s0 .PP There should be a way to \*(L"rewind\*(R" a read write \s-1BIO\s0 without destroying its contents. .PP The copying operation should not occur after every small read of a large \s-1BIO\s0 to improve efficiency. .SH "EXAMPLE" .IX Header "EXAMPLE" Create a memory \s-1BIO\s0 and write some data to it: .PP .Vb 2 \& BIO *mem = BIO_new(BIO_s_mem()); \& BIO_puts(mem, "Hello World\en"); .Ve .PP Create a read only memory \s-1BIO:\s0 .PP .Vb 3 \& char data[] = "Hello World"; \& BIO *mem; \& mem = BIO_new_mem_buf(data, \-1); .Ve .PP Extract the \s-1BUF_MEM\s0 structure from a memory \s-1BIO\s0 and then free up the \s-1BIO:\s0 .PP .Vb 4 \& BUF_MEM *bptr; \& BIO_get_mem_ptr(mem, &bptr); \& BIO_set_close(mem, BIO_NOCLOSE); /* So BIO_free() leaves BUF_MEM alone */ \& BIO_free(mem); .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\s-1TBA\s0 man3/SSL_get_session.3000064400000015072147210533270010542 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_get_session 3" .TH SSL_get_session 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_get_session \- retrieve TLS/SSL session data .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& SSL_SESSION *SSL_get_session(const SSL *ssl); \& SSL_SESSION *SSL_get0_session(const SSL *ssl); \& SSL_SESSION *SSL_get1_session(SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_get_session()\fR returns a pointer to the \fB\s-1SSL_SESSION\s0\fR actually used in \&\fBssl\fR. The reference count of the \fB\s-1SSL_SESSION\s0\fR is not incremented, so that the pointer can become invalid by other operations. .PP \&\fISSL_get0_session()\fR is the same as \fISSL_get_session()\fR. .PP \&\fISSL_get1_session()\fR is the same as \fISSL_get_session()\fR, but the reference count of the \fB\s-1SSL_SESSION\s0\fR is incremented by one. .SH "NOTES" .IX Header "NOTES" The ssl session contains all information required to re-establish the connection without a new handshake. .PP A session will be automatically removed from the session cache and marked as non-resumable if the connection is not closed down cleanly, e.g. if a fatal error occurs on the connection or \fISSL_shutdown\fR\|(3) is not called prior to \&\fISSL_free\fR\|(3). .PP \&\fISSL_get0_session()\fR returns a pointer to the actual session. As the reference counter is not incremented, the pointer is only valid while the connection is in use. If \fISSL_clear\fR\|(3) or \&\fISSL_free\fR\|(3) is called, the session may be removed completely (if considered bad), and the pointer obtained will become invalid. Even if the session is valid, it can be removed at any time due to timeout during \fISSL_CTX_flush_sessions\fR\|(3). .PP If the data is to be kept, \fISSL_get1_session()\fR will increment the reference count, so that the session will not be implicitly removed by other operations but stays in memory. In order to remove the session \&\fISSL_SESSION_free\fR\|(3) must be explicitly called once to decrement the reference count again. .PP \&\s-1SSL_SESSION\s0 objects keep internal link information about the session cache list, when being inserted into one \s-1SSL_CTX\s0 object's session cache. One \s-1SSL_SESSION\s0 object, regardless of its reference count, must therefore only be used with one \s-1SSL_CTX\s0 object (and the \s-1SSL\s0 objects created from this \s-1SSL_CTX\s0 object). .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following return values can occur: .IP "\s-1NULL\s0" 4 .IX Item "NULL" There is no session available in \fBssl\fR. .IP "Pointer to an \s-1SSL\s0" 4 .IX Item "Pointer to an SSL" The return value points to the data of an \s-1SSL\s0 session. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_free\fR\|(3), \&\fISSL_clear\fR\|(3), \&\fISSL_SESSION_free\fR\|(3) man3/CMS_compress.3000064400000015150147210533270010031 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CMS_compress 3" .TH CMS_compress 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" CMS_compress \- create a CMS CompressedData structure .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fICMS_compress()\fR creates and returns a \s-1CMS\s0 CompressedData structure. \fBcomp_nid\fR is the compression algorithm to use or \fBNID_undef\fR to use the default algorithm (zlib compression). \fBin\fR is the content to be compressed. \&\fBflags\fR is an optional set of flags. .SH "NOTES" .IX Header "NOTES" The only currently supported compression algorithm is zlib using the \s-1NID\s0 NID_zlib_compression. .PP If zlib support is not compiled into OpenSSL then \fICMS_compress()\fR will return an error. .PP If the \fB\s-1CMS_TEXT\s0\fR flag is set \s-1MIME\s0 headers for type \fBtext/plain\fR are prepended to the data. .PP Normally the supplied content is translated into \s-1MIME\s0 canonical format (as required by the S/MIME specifications) if \fB\s-1CMS_BINARY\s0\fR is set no translation occurs. This option should be used if the supplied data is in binary format otherwise the translation will corrupt it. If \fB\s-1CMS_BINARY\s0\fR is set then \&\fB\s-1CMS_TEXT\s0\fR is ignored. .PP If the \fB\s-1CMS_STREAM\s0\fR flag is set a partial \fBCMS_ContentInfo\fR structure is returned suitable for streaming I/O: no data is read from the \s-1BIO \s0\fBin\fR. .PP The compressed data is included in the CMS_ContentInfo structure, unless \&\fB\s-1CMS_DETACHED\s0\fR is set in which case it is omitted. This is rarely used in practice and is not supported by \fISMIME_write_CMS()\fR. .SH "NOTES" .IX Header "NOTES" If the flag \fB\s-1CMS_STREAM\s0\fR is set the returned \fBCMS_ContentInfo\fR structure is \&\fBnot\fR complete and outputting its contents via a function that does not properly finalize the \fBCMS_ContentInfo\fR structure will give unpredictable results. .PP Several functions including \fISMIME_write_CMS()\fR, \fIi2d_CMS_bio_stream()\fR, \&\fIPEM_write_bio_CMS_stream()\fR finalize the structure. Alternatively finalization can be performed by obtaining the streaming \s-1ASN1 \s0\fB\s-1BIO\s0\fR directly using \&\fIBIO_new_CMS()\fR. .PP Additional compression parameters such as the zlib compression level cannot currently be set. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fICMS_compress()\fR returns either a CMS_ContentInfo structure or \s-1NULL\s0 if an error occurred. The error can be obtained from \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fICMS_uncompress\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fICMS_compress()\fR was added to OpenSSL 0.9.8 The \fB\s-1CMS_STREAM\s0\fR flag was first supported in OpenSSL 1.0.0. man3/SSL_get_ex_new_index.3000064400000013557147210533270011541 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_get_ex_new_index 3" .TH SSL_get_ex_new_index 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_get_ex_new_index, SSL_set_ex_data, SSL_get_ex_data \- internal application specific data functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_get_ex_new_index(long argl, void *argp, \& CRYPTO_EX_new *new_func, \& CRYPTO_EX_dup *dup_func, \& CRYPTO_EX_free *free_func); \& \& int SSL_set_ex_data(SSL *ssl, int idx, void *arg); \& \& void *SSL_get_ex_data(const SSL *ssl, int idx); \& \& typedef int new_func(void *parent, void *ptr, CRYPTO_EX_DATA *ad, \& int idx, long argl, void *argp); \& typedef void free_func(void *parent, void *ptr, CRYPTO_EX_DATA *ad, \& int idx, long argl, void *argp); \& typedef int dup_func(CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from, void *from_d, \& int idx, long argl, void *argp); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Several OpenSSL structures can have application specific data attached to them. These functions are used internally by OpenSSL to manipulate application specific data attached to a specific structure. .PP \&\fISSL_get_ex_new_index()\fR is used to register a new index for application specific data. .PP \&\fISSL_set_ex_data()\fR is used to store application data at \fBarg\fR for \fBidx\fR into the \fBssl\fR object. .PP \&\fISSL_get_ex_data()\fR is used to retrieve the information for \fBidx\fR from \&\fBssl\fR. .PP A detailed description for the \fB*\f(BI_get_ex_new_index()\fB\fR functionality can be found in \fIRSA_get_ex_new_index\fR\|(3). The \fB*\f(BI_get_ex_data()\fB\fR and \fB*\f(BI_set_ex_data()\fB\fR functionality is described in \&\fICRYPTO_set_ex_data\fR\|(3). .SH "EXAMPLES" .IX Header "EXAMPLES" An example on how to use the functionality is included in the example \&\fIverify_callback()\fR in \fISSL_CTX_set_verify\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \&\fIRSA_get_ex_new_index\fR\|(3), \&\fICRYPTO_set_ex_data\fR\|(3), \&\fISSL_CTX_set_verify\fR\|(3) man3/SSL_CONF_CTX_set1_prefix.3000064400000013110147210533270011763 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CONF_CTX_set1_prefix 3" .TH SSL_CONF_CTX_set1_prefix 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CONF_CTX_set1_prefix \- Set configuration context command prefix .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& unsigned int SSL_CONF_CTX_set1_prefix(SSL_CONF_CTX *cctx, const char *prefix); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The function \fISSL_CONF_CTX_set1_prefix()\fR sets the command prefix of \fBcctx\fR to \fBprefix\fR. If \fBprefix\fR is \fB\s-1NULL\s0\fR it is restored to the default value. .SH "NOTES" .IX Header "NOTES" Command prefixes alter the commands recognised by subsequent \fISSL_CTX_cmd()\fR calls. For example for files, if the prefix \*(L"\s-1SSL\*(R"\s0 is set then command names such as \*(L"SSLProtocol\*(R", \*(L"SSLOptions\*(R" etc. are recognised instead of \*(L"Protocol\*(R" and \*(L"Options\*(R". Similarly for command lines if the prefix is \*(L"\-\-ssl\-\*(R" then \&\*(L"\-\-ssl\-no_tls1_2\*(R" is recognised instead of \*(L"\-no_tls1_2\*(R". .PP If the \fB\s-1SSL_CONF_FLAG_CMDLINE\s0\fR flag is set then prefix checks are case sensitive and \*(L"\-\*(R" is the default. In the unlikely even an application explicitly wants to set no prefix it must be explicitly set to "". .PP If the \fB\s-1SSL_CONF_FLAG_FILE\s0\fR flag is set then prefix checks are case insensitive and no prefix is the default. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CONF_CTX_set1_prefix()\fR returns 1 for success and 0 for failure. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_CONF_CTX_new\fR\|(3), \&\fISSL_CONF_CTX_set_flags\fR\|(3), \&\fISSL_CONF_CTX_set_ssl_ctx\fR\|(3), \&\fISSL_CONF_cmd\fR\|(3), \&\fISSL_CONF_cmd_argv\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" These functions were first added to OpenSSL 1.0.2 man3/SSL_read.3000064400000021561147210533270007133 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_read 3" .TH SSL_read 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_read \- read bytes from a TLS/SSL connection. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_read(SSL *ssl, void *buf, int num); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_read()\fR tries to read \fBnum\fR bytes from the specified \fBssl\fR into the buffer \fBbuf\fR. .SH "NOTES" .IX Header "NOTES" If necessary, \fISSL_read()\fR will negotiate a \s-1TLS/SSL\s0 session, if not already explicitly performed by \fISSL_connect\fR\|(3) or \&\fISSL_accept\fR\|(3). If the peer requests a re-negotiation, it will be performed transparently during the \fISSL_read()\fR operation. The behaviour of \fISSL_read()\fR depends on the underlying \s-1BIO. \s0 .PP For the transparent negotiation to succeed, the \fBssl\fR must have been initialized to client or server mode. This is being done by calling \&\fISSL_set_connect_state\fR\|(3) or \fISSL_set_accept_state()\fR before the first call to an \fISSL_read()\fR or \fISSL_write\fR\|(3) function. .PP \&\fISSL_read()\fR works based on the \s-1SSL/TLS\s0 records. The data are received in records (with a maximum record size of 16kB for SSLv3/TLSv1). Only when a record has been completely received, it can be processed (decryption and check of integrity). Therefore data that was not retrieved at the last call of \fISSL_read()\fR can still be buffered inside the \s-1SSL\s0 layer and will be retrieved on the next call to \fISSL_read()\fR. If \fBnum\fR is higher than the number of bytes buffered, \fISSL_read()\fR will return with the bytes buffered. If no more bytes are in the buffer, \fISSL_read()\fR will trigger the processing of the next record. Only when the record has been received and processed completely, \fISSL_read()\fR will return reporting success. At most the contents of the record will be returned. As the size of an \s-1SSL/TLS\s0 record may exceed the maximum packet size of the underlying transport (e.g. \s-1TCP\s0), it may be necessary to read several packets from the transport layer before the record is complete and \fISSL_read()\fR can succeed. .PP If the underlying \s-1BIO\s0 is \fBblocking\fR, \fISSL_read()\fR will only return, once the read operation has been finished or an error occurred, except when a renegotiation take place, in which case a \s-1SSL_ERROR_WANT_READ\s0 may occur. This behaviour can be controlled with the \s-1SSL_MODE_AUTO_RETRY\s0 flag of the \&\fISSL_CTX_set_mode\fR\|(3) call. .PP If the underlying \s-1BIO\s0 is \fBnon-blocking\fR, \fISSL_read()\fR will also return when the underlying \s-1BIO\s0 could not satisfy the needs of \fISSL_read()\fR to continue the operation. In this case a call to \&\fISSL_get_error\fR\|(3) with the return value of \fISSL_read()\fR will yield \fB\s-1SSL_ERROR_WANT_READ\s0\fR or \&\fB\s-1SSL_ERROR_WANT_WRITE\s0\fR. As at any time a re-negotiation is possible, a call to \fISSL_read()\fR can also cause write operations! The calling process then must repeat the call after taking appropriate action to satisfy the needs of \fISSL_read()\fR. The action depends on the underlying \s-1BIO.\s0 When using a non-blocking socket, nothing is to be done, but \fIselect()\fR can be used to check for the required condition. When using a buffering \s-1BIO,\s0 like a \s-1BIO\s0 pair, data must be written into or retrieved out of the \s-1BIO\s0 before being able to continue. .PP \&\fISSL_pending\fR\|(3) can be used to find out whether there are buffered bytes available for immediate retrieval. In this case \&\fISSL_read()\fR can be called without blocking or actually receiving new data from the underlying socket. .SH "WARNING" .IX Header "WARNING" When an \fISSL_read()\fR operation has to be repeated because of \&\fB\s-1SSL_ERROR_WANT_READ\s0\fR or \fB\s-1SSL_ERROR_WANT_WRITE\s0\fR, it must be repeated with the same arguments. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following return values can occur: .IP "> 0" 4 .IX Item "> 0" The read operation was successful. The return value is the number of bytes actually read from the \s-1TLS/SSL\s0 connection. .IP "<= 0" 4 .IX Item "<= 0" .PD 0 .IP "<0" 4 .IX Item "<0" .PD The read operation was not successful, because either the connection was closed, an error occurred or action must be taken by the calling process. Call \fISSL_get_error\fR\|(3) with the return value \fBret\fR to find out the reason. .Sp SSLv2 (deprecated) does not support a shutdown alert protocol, so it can only be detected, whether the underlying connection was closed. It cannot be checked, whether the closure was initiated by the peer or by something else. .Sp Old documentation indicated a difference between 0 and \-1, and that \-1 was retryable. You should instead call \fISSL_get_error()\fR to find out if it's retryable. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_get_error\fR\|(3), \fISSL_write\fR\|(3), \&\fISSL_CTX_set_mode\fR\|(3), \fISSL_CTX_new\fR\|(3), \&\fISSL_connect\fR\|(3), \fISSL_accept\fR\|(3) \&\fISSL_set_connect_state\fR\|(3), \&\fISSL_pending\fR\|(3), \&\fISSL_shutdown\fR\|(3), \fISSL_set_shutdown\fR\|(3), \&\fIssl\fR\|(3), \fIbio\fR\|(3) man3/SSL_get_fd.3000064400000011601147210533270007442 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_get_fd 3" .TH SSL_get_fd 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_get_fd \- get file descriptor linked to an SSL object .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_get_fd(const SSL *ssl); \& int SSL_get_rfd(const SSL *ssl); \& int SSL_get_wfd(const SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_get_fd()\fR returns the file descriptor which is linked to \fBssl\fR. \&\fISSL_get_rfd()\fR and \fISSL_get_wfd()\fR return the file descriptors for the read or the write channel, which can be different. If the read and the write channel are different, \fISSL_get_fd()\fR will return the file descriptor of the read channel. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following return values can occur: .IP "\-1" 4 .IX Item "-1" The operation failed, because the underlying \s-1BIO\s0 is not of the correct type (suitable for file descriptors). .IP ">=0" 4 .IX Item ">=0" The file descriptor linked to \fBssl\fR. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_set_fd\fR\|(3), \fIssl\fR\|(3) , \fIbio\fR\|(3) man3/BN_copy.3000064400000011316147210533270007025 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BN_copy 3" .TH BN_copy 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BN_copy, BN_dup \- copy BIGNUMs .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& BIGNUM *BN_copy(BIGNUM *to, const BIGNUM *from); \& \& BIGNUM *BN_dup(const BIGNUM *from); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBN_copy()\fR copies \fBfrom\fR to \fBto\fR. \fIBN_dup()\fR creates a new \fB\s-1BIGNUM\s0\fR containing the value \fBfrom\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBN_copy()\fR returns \fBto\fR on success, \s-1NULL\s0 on error. \fIBN_dup()\fR returns the new \fB\s-1BIGNUM\s0\fR, and \s-1NULL\s0 on error. The error codes can be obtained by \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIbn\fR\|(3), \fIERR_get_error\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIBN_copy()\fR and \fIBN_dup()\fR are available in all versions of SSLeay and OpenSSL. man3/SSL_CIPHER_get_name.3000064400000022333147210533270011027 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CIPHER_get_name 3" .TH SSL_CIPHER_get_name 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CIPHER_get_name, SSL_CIPHER_get_bits, SSL_CIPHER_get_version, SSL_CIPHER_description \- get SSL_CIPHER properties .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& const char *SSL_CIPHER_get_name(const SSL_CIPHER *cipher); \& int SSL_CIPHER_get_bits(const SSL_CIPHER *cipher, int *alg_bits); \& char *SSL_CIPHER_get_version(const SSL_CIPHER *cipher); \& char *SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf, int size); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CIPHER_get_name()\fR returns a pointer to the name of \fBcipher\fR. If the argument is the \s-1NULL\s0 pointer, a pointer to the constant value \*(L"\s-1NONE\*(R"\s0 is returned. .PP \&\fISSL_CIPHER_get_bits()\fR returns the number of secret bits used for \fBcipher\fR. If \&\fBalg_bits\fR is not \s-1NULL,\s0 it contains the number of bits processed by the chosen algorithm. If \fBcipher\fR is \s-1NULL, 0\s0 is returned. .PP \&\fISSL_CIPHER_get_version()\fR returns string which indicates the \s-1SSL/TLS\s0 protocol version that first defined the cipher. This is currently \fBSSLv2\fR or \fBTLSv1/SSLv3\fR. In some cases it should possibly return \*(L"TLSv1.2\*(R" but does not; use \fISSL_CIPHER_description()\fR instead. If \fBcipher\fR is \s-1NULL, \*(L"\s0(\s-1NONE\s0)\*(R" is returned. .PP \&\fISSL_CIPHER_description()\fR returns a textual description of the cipher used into the buffer \fBbuf\fR of length \fBlen\fR provided. \fBlen\fR must be at least 128 bytes, otherwise a pointer to the string \*(L"Buffer too small\*(R" is returned. If \fBbuf\fR is \s-1NULL,\s0 a buffer of 128 bytes is allocated using \&\fIOPENSSL_malloc()\fR. If the allocation fails, a pointer to the string \&\*(L"OPENSSL_malloc Error\*(R" is returned. .SH "NOTES" .IX Header "NOTES" The number of bits processed can be different from the secret bits. An export cipher like e.g. \s-1EXP\-RC4\-MD5\s0 has only 40 secret bits. The algorithm does use the full 128 bits (which would be returned for \fBalg_bits\fR), of which however 88bits are fixed. The search space is hence only 40 bits. .PP The string returned by \fISSL_CIPHER_description()\fR in case of success consists of cleartext information separated by one or more blanks in the following sequence: .IP "" 4 .IX Item "" Textual representation of the cipher name. .IP "" 4 .IX Item "" Protocol version: \fBSSLv2\fR, \fBSSLv3\fR, \fBTLSv1.2\fR. The TLSv1.0 ciphers are flagged with SSLv3. No new ciphers were added by TLSv1.1. .IP "Kx=" 4 .IX Item "Kx=" Key exchange method: \fB\s-1RSA\s0\fR (for export ciphers as \fB\s-1RSA\s0(512)\fR or \&\fB\s-1RSA\s0(1024)\fR), \fB\s-1DH\s0\fR (for export ciphers as \fB\s-1DH\s0(512)\fR or \fB\s-1DH\s0(1024)\fR), \&\fB\s-1DH/RSA\s0\fR, \fB\s-1DH/DSS\s0\fR, \fBFortezza\fR. .IP "Au=" 4 .IX Item "Au=" Authentication method: \fB\s-1RSA\s0\fR, \fB\s-1DSS\s0\fR, \fB\s-1DH\s0\fR, \fBNone\fR. None is the representation of anonymous ciphers. .IP "Enc=" 4 .IX Item "Enc=" Encryption method with number of secret bits: \fB\s-1DES\s0(40)\fR, \fB\s-1DES\s0(56)\fR, \&\fB3DES(168)\fR, \fB\s-1RC4\s0(40)\fR, \fB\s-1RC4\s0(56)\fR, \fB\s-1RC4\s0(64)\fR, \fB\s-1RC4\s0(128)\fR, \&\fB\s-1RC2\s0(40)\fR, \fB\s-1RC2\s0(56)\fR, \fB\s-1RC2\s0(128)\fR, \fB\s-1IDEA\s0(128)\fR, \fBFortezza\fR, \fBNone\fR. .IP "Mac=" 4 .IX Item "Mac=" Message digest: \fB\s-1MD5\s0\fR, \fB\s-1SHA1\s0\fR. .IP "" 4 .IX Item "" If the cipher is flagged exportable with respect to old \s-1US\s0 crypto regulations, the word "\fBexport\fR" is printed. .SH "EXAMPLES" .IX Header "EXAMPLES" Some examples for the output of \fISSL_CIPHER_description()\fR: .PP .Vb 4 \& EDH\-RSA\-DES\-CBC3\-SHA SSLv3 Kx=DH Au=RSA Enc=3DES(168) Mac=SHA1 \& EDH\-DSS\-DES\-CBC3\-SHA SSLv3 Kx=DH Au=DSS Enc=3DES(168) Mac=SHA1 \& RC4\-MD5 SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5 \& EXP\-RC4\-MD5 SSLv3 Kx=RSA(512) Au=RSA Enc=RC4(40) Mac=MD5 export .Ve .PP A comp[lete list can be retrieved by invoking the following command: .PP .Vb 1 \& openssl ciphers \-v ALL .Ve .SH "BUGS" .IX Header "BUGS" If \fISSL_CIPHER_description()\fR is called with \fBcipher\fR being \s-1NULL,\s0 the library crashes. .PP If \fISSL_CIPHER_description()\fR cannot handle a built-in cipher, the according description of the cipher property is \fBunknown\fR. This case should not occur. .PP The standard terminology for ephemeral Diffie-Hellman schemes is \s-1DHE \&\s0(finite field) or \s-1ECDHE \s0(elliptic curve). This version of OpenSSL idiosyncratically reports these schemes as \s-1EDH\s0 and \s-1EECDH,\s0 even though it also accepts the standard terminology. .PP It is recommended to use the standard terminology (\s-1DHE\s0 and \s-1ECDHE\s0) during configuration (e.g. via SSL_CTX_set_cipher_list) for clarity of configuration. OpenSSL versions after 1.0.2 will report the standard terms via SSL_CIPHER_get_name and SSL_CIPHER_description. .SH "RETURN VALUES" .IX Header "RETURN VALUES" See \s-1DESCRIPTION\s0 .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_get_current_cipher\fR\|(3), \&\fISSL_get_ciphers\fR\|(3), \fIciphers\fR\|(1), \&\fISSL_CTX_set_cipher_list\fR\|(3) man3/d2i_X509_SIG.3000064400000011077147210533270007405 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "d2i_X509_SIG 3" .TH d2i_X509_SIG 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" d2i_X509_SIG, i2d_X509_SIG \- DigestInfo functions. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& X509_SIG *d2i_X509_SIG(X509_SIG **a, unsigned char **pp, long length); \& int i2d_X509_SIG(X509_SIG *a, unsigned char **pp); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions decode and encode an X509_SIG structure which is equivalent to the \fBDigestInfo\fR structure defined in PKCS#1 and PKCS#7. .PP Othewise these behave in a similar way to \fId2i_X509()\fR and \fIi2d_X509()\fR described in the \fId2i_X509\fR\|(3) manual page. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fId2i_X509\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1TBA\s0 man3/OPENSSL_Applink.3000064400000011103147210533270010267 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "OPENSSL_Applink 3" .TH OPENSSL_Applink 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" OPENSSL_Applink \- glue between OpenSSL BIO and Win32 compiler run\-time .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& _\|_declspec(dllexport) void **OPENSSL_Applink(); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" OPENSSL_Applink is application-side interface which provides a glue between OpenSSL \s-1BIO\s0 layer and Win32 compiler run-time environment. Even though it appears at application side, it's essentially OpenSSL private interface. For this reason application developers are not expected to implement it, but to compile provided module with compiler of their choice and link it into the target application. The referred module is available as /ms/applink.c. man3/SSL_set_bio.3000064400000011517147210533270007644 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_set_bio 3" .TH SSL_set_bio 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_set_bio \- connect the SSL object with a BIO .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void SSL_set_bio(SSL *ssl, BIO *rbio, BIO *wbio); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_set_bio()\fR connects the BIOs \fBrbio\fR and \fBwbio\fR for the read and write operations of the \s-1TLS/SSL \s0(encrypted) side of \fBssl\fR. .PP The \s-1SSL\s0 engine inherits the behaviour of \fBrbio\fR and \fBwbio\fR, respectively. If a \s-1BIO\s0 is non-blocking, the \fBssl\fR will also have non-blocking behaviour. .PP If there was already a \s-1BIO\s0 connected to \fBssl\fR, \fIBIO_free()\fR will be called (for both the reading and writing side, if different). .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_set_bio()\fR cannot fail. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_get_rbio\fR\|(3), \&\fISSL_connect\fR\|(3), \fISSL_accept\fR\|(3), \&\fISSL_shutdown\fR\|(3), \fIssl\fR\|(3), \fIbio\fR\|(3) man3/BN_CTX_start.3000064400000013136147210533270007730 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BN_CTX_start 3" .TH BN_CTX_start 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BN_CTX_start, BN_CTX_get, BN_CTX_end \- use temporary BIGNUM variables .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void BN_CTX_start(BN_CTX *ctx); \& \& BIGNUM *BN_CTX_get(BN_CTX *ctx); \& \& void BN_CTX_end(BN_CTX *ctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions are used to obtain temporary \fB\s-1BIGNUM\s0\fR variables from a \fB\s-1BN_CTX\s0\fR (which can been created by using \fIBN_CTX_new\fR\|(3)) in order to save the overhead of repeatedly creating and freeing \fB\s-1BIGNUM\s0\fRs in functions that are called from inside a loop. .PP A function must call \fIBN_CTX_start()\fR first. Then, \fIBN_CTX_get()\fR may be called repeatedly to obtain temporary \fB\s-1BIGNUM\s0\fRs. All \fIBN_CTX_get()\fR calls must be made before calling any other functions that use the \&\fBctx\fR as an argument. .PP Finally, \fIBN_CTX_end()\fR must be called before returning from the function. When \fIBN_CTX_end()\fR is called, the \fB\s-1BIGNUM\s0\fR pointers obtained from \&\fIBN_CTX_get()\fR become invalid. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBN_CTX_start()\fR and \fIBN_CTX_end()\fR return no values. .PP \&\fIBN_CTX_get()\fR returns a pointer to the \fB\s-1BIGNUM\s0\fR, or \fB\s-1NULL\s0\fR on error. Once \fIBN_CTX_get()\fR has failed, the subsequent calls will return \fB\s-1NULL\s0\fR as well, so it is sufficient to check the return value of the last \&\fIBN_CTX_get()\fR call. In case of an error, an error code is set, which can be obtained by \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIBN_CTX_new\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIBN_CTX_start()\fR, \fIBN_CTX_get()\fR and \fIBN_CTX_end()\fR were added in OpenSSL 0.9.5. man3/SSL_SESSION_free.3000064400000014162147210533270010343 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_SESSION_free 3" .TH SSL_SESSION_free 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_SESSION_free \- free an allocated SSL_SESSION structure .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void SSL_SESSION_free(SSL_SESSION *session); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_SESSION_free()\fR decrements the reference count of \fBsession\fR and removes the \fB\s-1SSL_SESSION\s0\fR structure pointed to by \fBsession\fR and frees up the allocated memory, if the reference count has reached 0. .SH "NOTES" .IX Header "NOTES" \&\s-1SSL_SESSION\s0 objects are allocated, when a \s-1TLS/SSL\s0 handshake operation is successfully completed. Depending on the settings, see \&\fISSL_CTX_set_session_cache_mode\fR\|(3), the \s-1SSL_SESSION\s0 objects are internally referenced by the \s-1SSL_CTX\s0 and linked into its session cache. \s-1SSL\s0 objects may be using the \s-1SSL_SESSION\s0 object; as a session may be reused, several \s-1SSL\s0 objects may be using one \s-1SSL_SESSION\s0 object at the same time. It is therefore crucial to keep the reference count (usage information) correct and not delete a \s-1SSL_SESSION\s0 object that is still used, as this may lead to program failures due to dangling pointers. These failures may also appear delayed, e.g. when an \s-1SSL_SESSION\s0 object was completely freed as the reference count incorrectly became 0, but it is still referenced in the internal session cache and the cache list is processed during a \&\fISSL_CTX_flush_sessions\fR\|(3) operation. .PP \&\fISSL_SESSION_free()\fR must only be called for \s-1SSL_SESSION\s0 objects, for which the reference count was explicitly incremented (e.g. by calling \fISSL_get1_session()\fR, see \fISSL_get_session\fR\|(3)) or when the \s-1SSL_SESSION\s0 object was generated outside a \s-1TLS\s0 handshake operation, e.g. by using \fId2i_SSL_SESSION\fR\|(3). It must not be called on other \s-1SSL_SESSION\s0 objects, as this would cause incorrect reference counts and therefore program failures. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_SESSION_free()\fR does not provide diagnostic information. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_get_session\fR\|(3), \&\fISSL_CTX_set_session_cache_mode\fR\|(3), \&\fISSL_CTX_flush_sessions\fR\|(3), \fId2i_SSL_SESSION\fR\|(3) man3/PKCS7_sign.3000064400000021566147210533270007353 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PKCS7_sign 3" .TH PKCS7_sign 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" PKCS7_sign \- create a PKCS#7 signedData structure .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, int flags); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIPKCS7_sign()\fR creates and returns a PKCS#7 signedData structure. \fBsigncert\fR is the certificate to sign with, \fBpkey\fR is the corresponsding private key. \&\fBcerts\fR is an optional additional set of certificates to include in the PKCS#7 structure (for example any intermediate CAs in the chain). .PP The data to be signed is read from \s-1BIO \s0\fBdata\fR. .PP \&\fBflags\fR is an optional set of flags. .SH "NOTES" .IX Header "NOTES" Any of the following flags (ored together) can be passed in the \fBflags\fR parameter. .PP Many S/MIME clients expect the signed content to include valid \s-1MIME\s0 headers. If the \fB\s-1PKCS7_TEXT\s0\fR flag is set \s-1MIME\s0 headers for type \fBtext/plain\fR are prepended to the data. .PP If \fB\s-1PKCS7_NOCERTS\s0\fR is set the signer's certificate will not be included in the \&\s-1PKCS7\s0 structure, the signer's certificate must still be supplied in the \&\fBsigncert\fR parameter though. This can reduce the size of the signature if the signers certificate can be obtained by other means: for example a previously signed message. .PP The data being signed is included in the \s-1PKCS7\s0 structure, unless \&\fB\s-1PKCS7_DETACHED\s0\fR is set in which case it is omitted. This is used for \s-1PKCS7\s0 detached signatures which are used in S/MIME plaintext signed messages for example. .PP Normally the supplied content is translated into \s-1MIME\s0 canonical format (as required by the S/MIME specifications) if \fB\s-1PKCS7_BINARY\s0\fR is set no translation occurs. This option should be used if the supplied data is in binary format otherwise the translation will corrupt it. .PP The signedData structure includes several PKCS#7 autenticatedAttributes including the signing time, the PKCS#7 content type and the supported list of ciphers in an SMIMECapabilities attribute. If \fB\s-1PKCS7_NOATTR\s0\fR is set then no authenticatedAttributes will be used. If \fB\s-1PKCS7_NOSMIMECAP\s0\fR is set then just the SMIMECapabilities are omitted. .PP If present the SMIMECapabilities attribute indicates support for the following algorithms: triple \s-1DES, 128\s0 bit \s-1RC2, 64\s0 bit \s-1RC2, DES\s0 and 40 bit \s-1RC2.\s0 If any of these algorithms is disabled then it will not be included. .PP If the flags \fB\s-1PKCS7_STREAM\s0\fR is set then the returned \fB\s-1PKCS7\s0\fR structure is just initialized ready to perform the signing operation. The signing is however \&\fBnot\fR performed and the data to be signed is not read from the \fBdata\fR parameter. Signing is deferred until after the data has been written. In this way data can be signed in a single pass. .PP If the \fB\s-1PKCS7_PARTIAL\s0\fR flag is set a partial \fB\s-1PKCS7\s0\fR structure is output to which additional signers and capabilities can be added before finalization. .SH "NOTES" .IX Header "NOTES" If the flag \fB\s-1PKCS7_STREAM\s0\fR is set the returned \fB\s-1PKCS7\s0\fR structure is \fBnot\fR complete and outputting its contents via a function that does not properly finalize the \fB\s-1PKCS7\s0\fR structure will give unpredictable results. .PP Several functions including \fISMIME_write_PKCS7()\fR, \fIi2d_PKCS7_bio_stream()\fR, \&\fIPEM_write_bio_PKCS7_stream()\fR finalize the structure. Alternatively finalization can be performed by obtaining the streaming \s-1ASN1 \s0\fB\s-1BIO\s0\fR directly using \&\fIBIO_new_PKCS7()\fR. .PP If a signer is specified it will use the default digest for the signing algorithm. This is \fB\s-1SHA1\s0\fR for both \s-1RSA\s0 and \s-1DSA\s0 keys. .PP In OpenSSL 1.0.0 the \fBcerts\fR, \fBsigncert\fR and \fBpkey\fR parameters can all be \&\fB\s-1NULL\s0\fR if the \fB\s-1PKCS7_PARTIAL\s0\fR flag is set. One or more signers can be added using the function \fB\f(BIPKCS7_sign_add_signer()\fB\fR. \fB\f(BIPKCS7_final()\fB\fR must also be called to finalize the structure if streaming is not enabled. Alternative signing digests can also be specified using this method. .PP In OpenSSL 1.0.0 if \fBsigncert\fR and \fBpkey\fR are \s-1NULL\s0 then a certificates only PKCS#7 structure is output. .PP In versions of OpenSSL before 1.0.0 the \fBsigncert\fR and \fBpkey\fR parameters must \&\fB\s-1NOT\s0\fR be \s-1NULL.\s0 .SH "BUGS" .IX Header "BUGS" Some advanced attributes such as counter signatures are not supported. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIPKCS7_sign()\fR returns either a valid \s-1PKCS7\s0 structure or \s-1NULL\s0 if an error occurred. The error can be obtained from \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fIPKCS7_verify\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIPKCS7_sign()\fR was added to OpenSSL 0.9.5 .PP The \fB\s-1PKCS7_PARTIAL\s0\fR flag was added in OpenSSL 1.0.0 .PP The \fB\s-1PKCS7_STREAM\s0\fR flag was added in OpenSSL 1.0.0 man3/SMIME_write_CMS.3000064400000014144147210533270010264 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SMIME_write_CMS 3" .TH SMIME_write_CMS 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" .Vb 1 \& SMIME_write_CMS \- convert CMS structure to S/MIME format. .Ve .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SMIME_write_CMS(BIO *out, CMS_ContentInfo *cms, BIO *data, int flags); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISMIME_write_CMS()\fR adds the appropriate \s-1MIME\s0 headers to a \s-1CMS\s0 structure to produce an S/MIME message. .PP \&\fBout\fR is the \s-1BIO\s0 to write the data to. \fBcms\fR is the appropriate \&\fBCMS_ContentInfo\fR structure. If streaming is enabled then the content must be supplied in the \fBdata\fR argument. \fBflags\fR is an optional set of flags. .SH "NOTES" .IX Header "NOTES" The following flags can be passed in the \fBflags\fR parameter. .PP If \fB\s-1CMS_DETACHED\s0\fR is set then cleartext signing will be used, this option only makes sense for SignedData where \fB\s-1CMS_DETACHED\s0\fR is also set when \fICMS_sign()\fR is called. .PP If the \fB\s-1CMS_TEXT\s0\fR flag is set \s-1MIME\s0 headers for type \fBtext/plain\fR are added to the content, this only makes sense if \fB\s-1CMS_DETACHED\s0\fR is also set. .PP If the \fB\s-1CMS_STREAM\s0\fR flag is set streaming is performed. This flag should only be set if \fB\s-1CMS_STREAM\s0\fR was also set in the previous call to a CMS_ContentInfo creation function. .PP If cleartext signing is being used and \fB\s-1CMS_STREAM\s0\fR not set then the data must be read twice: once to compute the signature in \fICMS_sign()\fR and once to output the S/MIME message. .PP If streaming is performed the content is output in \s-1BER\s0 format using indefinite length constructed encoding except in the case of signed data with detached content where the content is absent and \s-1DER\s0 format is used. .SH "BUGS" .IX Header "BUGS" \&\fISMIME_write_CMS()\fR always base64 encodes \s-1CMS\s0 structures, there should be an option to disable this. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISMIME_write_CMS()\fR returns 1 for success or 0 for failure. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fICMS_sign\fR\|(3), \&\fICMS_verify\fR\|(3), \fICMS_encrypt\fR\|(3) \&\fICMS_decrypt\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fISMIME_write_CMS()\fR was added to OpenSSL 0.9.8 man3/SSL_CONF_CTX_set_ssl_ctx.3000064400000012614147210533270012074 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CONF_CTX_set_ssl_ctx 3" .TH SSL_CONF_CTX_set_ssl_ctx 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CONF_CTX_set_ssl_ctx, SSL_CONF_CTX_set_ssl \- set context to configure .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *cctx, SSL_CTX *ctx); \& void SSL_CONF_CTX_set_ssl(SSL_CONF_CTX *cctx, SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CONF_CTX_set_ssl_ctx()\fR sets the context associated with \fBcctx\fR to the \&\fB\s-1SSL_CTX\s0\fR structure \fBctx\fR. Any previous \fB\s-1SSL\s0\fR or \fB\s-1SSL_CTX\s0\fR associated with \&\fBcctx\fR is cleared. Subsequent calls to \fISSL_CONF_cmd()\fR will be sent to \&\fBctx\fR. .PP \&\fISSL_CONF_CTX_set_ssl()\fR sets the context associated with \fBcctx\fR to the \&\fB\s-1SSL\s0\fR structure \fBssl\fR. Any previous \fB\s-1SSL\s0\fR or \fB\s-1SSL_CTX\s0\fR associated with \&\fBcctx\fR is cleared. Subsequent calls to \fISSL_CONF_cmd()\fR will be sent to \&\fBssl\fR. .SH "NOTES" .IX Header "NOTES" The context need not be set or it can be set to \fB\s-1NULL\s0\fR in which case only syntax checking of commands is performed, where possible. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CONF_CTX_set_ssl_ctx()\fR and \fISSL_CTX_set_ssl()\fR do not return a value. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_CONF_CTX_new\fR\|(3), \&\fISSL_CONF_CTX_set_flags\fR\|(3), \&\fISSL_CONF_CTX_set1_prefix\fR\|(3), \&\fISSL_CONF_cmd\fR\|(3), \&\fISSL_CONF_cmd_argv\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" These functions were first added to OpenSSL 1.0.2 man3/PEM_write_bio_CMS_stream.3000064400000011713147210533270012236 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PEM_write_bio_CMS_stream 3" .TH PEM_write_bio_CMS_stream 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" .Vb 1 \& PEM_write_bio_CMS_stream \- output CMS_ContentInfo structure in PEM format. .Ve .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& #include \& #include \& \& int PEM_write_bio_CMS_stream(BIO *out, CMS_ContentInfo *cms, BIO *data, int flags); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIPEM_write_bio_CMS_stream()\fR outputs a CMS_ContentInfo structure in \s-1PEM\s0 format. .PP It is otherwise identical to the function \fISMIME_write_CMS()\fR. .SH "NOTES" .IX Header "NOTES" This function is effectively a version of the \fIPEM_write_bio_CMS()\fR supporting streaming. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIPEM_write_bio_CMS_stream()\fR returns 1 for success or 0 for failure. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fICMS_sign\fR\|(3), \&\fICMS_verify\fR\|(3), \fICMS_encrypt\fR\|(3) \&\fICMS_decrypt\fR\|(3), \&\fISMIME_write_CMS\fR\|(3), \&\fIi2d_CMS_bio_stream\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIPEM_write_bio_CMS_stream()\fR was added to OpenSSL 1.0.0 man3/SSL_CONF_CTX_set_flags.3000064400000013734147210533270011515 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CONF_CTX_set_flags 3" .TH SSL_CONF_CTX_set_flags 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CONF_CTX_set_flags, SSL_CONF_CTX_clear_flags \- Set of clear SSL configuration context flags .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& unsigned int SSL_CONF_CTX_set_flags(SSL_CONF_CTX *cctx, unsigned int flags); \& unsigned int SSL_CONF_CTX_clear_flags(SSL_CONF_CTX *cctx, unsigned int flags); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The function \fISSL_CONF_CTX_set_flags()\fR sets \fBflags\fR in the context \fBcctx\fR. .PP The function \fISSL_CONF_CTX_clear_flags()\fR clears \fBflags\fR in the context \fBcctx\fR. .SH "NOTES" .IX Header "NOTES" The flags set affect how subsequent calls to \fISSL_CONF_cmd()\fR or \&\fISSL_CONF_argv()\fR behave. .PP Currently the following \fBflags\fR values are recognised: .IP "\s-1SSL_CONF_FLAG_CMDLINE, SSL_CONF_FLAG_FILE\s0" 4 .IX Item "SSL_CONF_FLAG_CMDLINE, SSL_CONF_FLAG_FILE" recognise options intended for command line or configuration file use. At least one of these flags must be set. .IP "\s-1SSL_CONF_FLAG_CLIENT, SSL_CONF_FLAG_SERVER\s0" 4 .IX Item "SSL_CONF_FLAG_CLIENT, SSL_CONF_FLAG_SERVER" recognise options intended for use in \s-1SSL/TLS\s0 clients or servers. One or both of these flags must be set. .IP "\s-1SSL_CONF_FLAG_CERTIFICATE\s0" 4 .IX Item "SSL_CONF_FLAG_CERTIFICATE" recognise certificate and private key options. .IP "\s-1SSL_CONF_FLAG_SHOW_ERRORS\s0" 4 .IX Item "SSL_CONF_FLAG_SHOW_ERRORS" indicate errors relating to unrecognised options or missing arguments in the error queue. If this option isn't set such errors are only reflected in the return values of \fISSL_CONF_set_cmd()\fR or \fISSL_CONF_set_argv()\fR .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CONF_CTX_set_flags()\fR and \fISSL_CONF_CTX_clear_flags()\fR returns the new flags value after setting or clearing flags. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_CONF_CTX_new\fR\|(3), \&\fISSL_CONF_CTX_set_ssl_ctx\fR\|(3), \&\fISSL_CONF_CTX_set1_prefix\fR\|(3), \&\fISSL_CONF_cmd\fR\|(3), \&\fISSL_CONF_cmd_argv\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" These functions were first added to OpenSSL 1.0.2 man3/dh.3000064400000015054147210533270006072 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "dh 3" .TH dh 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" dh \- Diffie\-Hellman key agreement .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& #include \& #include \& \& DH * DH_new(void); \& void DH_free(DH *dh); \& \& int DH_size(const DH *dh); \& \& DH * DH_generate_parameters(int prime_len, int generator, \& void (*callback)(int, int, void *), void *cb_arg); \& int DH_check(const DH *dh, int *codes); \& \& int DH_generate_key(DH *dh); \& int DH_compute_key(unsigned char *key, BIGNUM *pub_key, DH *dh); \& \& void DH_set_default_method(const DH_METHOD *meth); \& const DH_METHOD *DH_get_default_method(void); \& int DH_set_method(DH *dh, const DH_METHOD *meth); \& DH *DH_new_method(ENGINE *engine); \& const DH_METHOD *DH_OpenSSL(void); \& \& int DH_get_ex_new_index(long argl, char *argp, int (*new_func)(), \& int (*dup_func)(), void (*free_func)()); \& int DH_set_ex_data(DH *d, int idx, char *arg); \& char *DH_get_ex_data(DH *d, int idx); \& \& DH * d2i_DHparams(DH **a, unsigned char **pp, long length); \& int i2d_DHparams(const DH *a, unsigned char **pp); \& \& int DHparams_print_fp(FILE *fp, const DH *x); \& int DHparams_print(BIO *bp, const DH *x); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions implement the Diffie-Hellman key agreement protocol. The generation of shared \s-1DH\s0 parameters is described in \&\fIDH_generate_parameters\fR\|(3); \fIDH_generate_key\fR\|(3) describes how to perform a key agreement. .PP The \fB\s-1DH\s0\fR structure consists of several \s-1BIGNUM\s0 components. .PP .Vb 9 \& struct \& { \& BIGNUM *p; // prime number (shared) \& BIGNUM *g; // generator of Z_p (shared) \& BIGNUM *priv_key; // private DH value x \& BIGNUM *pub_key; // public DH value g^x \& // ... \& }; \& DH .Ve .PP Note that \s-1DH\s0 keys may use non-standard \fB\s-1DH_METHOD\s0\fR implementations, either directly or by the use of \fB\s-1ENGINE\s0\fR modules. In some cases (eg. an \&\s-1ENGINE\s0 providing support for hardware-embedded keys), these \s-1BIGNUM\s0 values will not be used by the implementation or may be used for alternative data storage. For this reason, applications should generally avoid using \s-1DH\s0 structure elements directly and instead use \s-1API\s0 functions to query or modify keys. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdhparam\fR\|(1), \fIbn\fR\|(3), \fIdsa\fR\|(3), \fIerr\fR\|(3), \&\fIrand\fR\|(3), \fIrsa\fR\|(3), \fIengine\fR\|(3), \&\fIDH_set_method\fR\|(3), \fIDH_new\fR\|(3), \&\fIDH_get_ex_new_index\fR\|(3), \&\fIDH_generate_parameters\fR\|(3), \&\fIDH_compute_key\fR\|(3), \fId2i_DHparams\fR\|(3), \&\fIRSA_print\fR\|(3) man3/ERR_remove_state.3000064400000012423147210533270010701 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ERR_remove_state 3" .TH ERR_remove_state 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ERR_remove_thread_state, ERR_remove_state \- free a thread's error queue .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void ERR_remove_thread_state(const CRYPTO_THREADID *tid); .Ve .PP Deprecated: .PP .Vb 1 \& void ERR_remove_state(unsigned long pid); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIERR_remove_thread_state()\fR frees the error queue associated with thread \fBtid\fR. If \fBtid\fR == \fB\s-1NULL\s0\fR, the current thread will have its error queue removed. .PP Since error queue data structures are allocated automatically for new threads, they must be freed when threads are terminated in order to avoid memory leaks. .PP ERR_remove_state is deprecated and has been replaced by ERR_remove_thread_state. Since threads in OpenSSL are no longer identified by unsigned long values any argument to this function is ignored. Calling ERR_remove_state is equivalent to \fBERR_remove_thread_state(\s-1NULL\s0)\fR. .SH "RETURN VALUE" .IX Header "RETURN VALUE" ERR_remove_thread_state and \fIERR_remove_state()\fR return no value. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIerr\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIERR_remove_state()\fR is available in all versions of SSLeay and OpenSSL. It was deprecated in OpenSSL 1.0.0 when ERR_remove_thread_state was introduced and thread IDs were introduced to identify threads instead of 'unsigned long'. man3/bio.3000064400000013510147210533270006243 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "bio 3" .TH bio 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" bio \- I/O abstraction .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include .Ve .PP \&\s-1TBA\s0 .SH "DESCRIPTION" .IX Header "DESCRIPTION" A \s-1BIO\s0 is an I/O abstraction, it hides many of the underlying I/O details from an application. If an application uses a \s-1BIO\s0 for its I/O it can transparently handle \s-1SSL\s0 connections, unencrypted network connections and file I/O. .PP There are two type of \s-1BIO,\s0 a source/sink \s-1BIO\s0 and a filter \s-1BIO.\s0 .PP As its name implies a source/sink \s-1BIO\s0 is a source and/or sink of data, examples include a socket \s-1BIO\s0 and a file \s-1BIO.\s0 .PP A filter \s-1BIO\s0 takes data from one \s-1BIO\s0 and passes it through to another, or the application. The data may be left unmodified (for example a message digest \s-1BIO\s0) or translated (for example an encryption \s-1BIO\s0). The effect of a filter \s-1BIO\s0 may change according to the I/O operation it is performing: for example an encryption \&\s-1BIO\s0 will encrypt data if it is being written to and decrypt data if it is being read from. .PP BIOs can be joined together to form a chain (a single \s-1BIO\s0 is a chain with one component). A chain normally consist of one source/sink \&\s-1BIO\s0 and one or more filter BIOs. Data read from or written to the first \s-1BIO\s0 then traverses the chain to the end (normally a source/sink \&\s-1BIO\s0). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIBIO_ctrl\fR\|(3), \&\fIBIO_f_base64\fR\|(3), \fIBIO_f_buffer\fR\|(3), \&\fIBIO_f_cipher\fR\|(3), \fIBIO_f_md\fR\|(3), \&\fIBIO_f_null\fR\|(3), \fIBIO_f_ssl\fR\|(3), \&\fIBIO_find_type\fR\|(3), \fIBIO_new\fR\|(3), \&\fIBIO_new_bio_pair\fR\|(3), \&\fIBIO_push\fR\|(3), \fIBIO_read\fR\|(3), \&\fIBIO_s_accept\fR\|(3), \fIBIO_s_bio\fR\|(3), \&\fIBIO_s_connect\fR\|(3), \fIBIO_s_fd\fR\|(3), \&\fIBIO_s_file\fR\|(3), \fIBIO_s_mem\fR\|(3), \&\fIBIO_s_null\fR\|(3), \fIBIO_s_socket\fR\|(3), \&\fIBIO_set_callback\fR\|(3), \&\fIBIO_should_retry\fR\|(3) man3/SSL_free.3000064400000012545147210533270007143 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_free 3" .TH SSL_free 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_free \- free an allocated SSL structure .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void SSL_free(SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_free()\fR decrements the reference count of \fBssl\fR, and removes the \s-1SSL\s0 structure pointed to by \fBssl\fR and frees up the allocated memory if the reference count has reached 0. .SH "NOTES" .IX Header "NOTES" \&\fISSL_free()\fR also calls the \fIfree()\fRing procedures for indirectly affected items, if applicable: the buffering \s-1BIO,\s0 the read and write BIOs, cipher lists specially created for this \fBssl\fR, the \fB\s-1SSL_SESSION\s0\fR. Do not explicitly free these indirectly freed up items before or after calling \fISSL_free()\fR, as trying to free things twice may lead to program failure. .PP The ssl session has reference counts from two users: the \s-1SSL\s0 object, for which the reference count is removed by \fISSL_free()\fR and the internal session cache. If the session is considered bad, because \&\fISSL_shutdown\fR\|(3) was not called for the connection and \fISSL_set_shutdown\fR\|(3) was not used to set the \&\s-1SSL_SENT_SHUTDOWN\s0 state, the session will also be removed from the session cache as required by \s-1RFC2246.\s0 .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_free()\fR does not provide diagnostic information. .PP \&\fISSL_new\fR\|(3), \fISSL_clear\fR\|(3), \&\fISSL_shutdown\fR\|(3), \fISSL_set_shutdown\fR\|(3), \&\fIssl\fR\|(3) man3/DH_new.3000064400000011554147210533270006644 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DH_new 3" .TH DH_new 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" DH_new, DH_free \- allocate and free DH objects .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& DH* DH_new(void); \& \& void DH_free(DH *dh); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIDH_new()\fR allocates and initializes a \fB\s-1DH\s0\fR structure. .PP \&\fIDH_free()\fR frees the \fB\s-1DH\s0\fR structure and its components. The values are erased before the memory is returned to the system. .SH "RETURN VALUES" .IX Header "RETURN VALUES" If the allocation fails, \fIDH_new()\fR returns \fB\s-1NULL\s0\fR and sets an error code that can be obtained by \fIERR_get_error\fR\|(3). Otherwise it returns a pointer to the newly allocated structure. .PP \&\fIDH_free()\fR returns no value. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdh\fR\|(3), \fIERR_get_error\fR\|(3), \&\fIDH_generate_parameters\fR\|(3), \&\fIDH_generate_key\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIDH_new()\fR and \fIDH_free()\fR are available in all versions of SSLeay and OpenSSL. man3/BN_add_word.3000064400000013502147210533270007635 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BN_add_word 3" .TH BN_add_word 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BN_add_word, BN_sub_word, BN_mul_word, BN_div_word, BN_mod_word \- arithmetic functions on BIGNUMs with integers .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int BN_add_word(BIGNUM *a, BN_ULONG w); \& \& int BN_sub_word(BIGNUM *a, BN_ULONG w); \& \& int BN_mul_word(BIGNUM *a, BN_ULONG w); \& \& BN_ULONG BN_div_word(BIGNUM *a, BN_ULONG w); \& \& BN_ULONG BN_mod_word(const BIGNUM *a, BN_ULONG w); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions perform arithmetic operations on BIGNUMs with unsigned integers. They are much more efficient than the normal \s-1BIGNUM\s0 arithmetic operations. .PP \&\fIBN_add_word()\fR adds \fBw\fR to \fBa\fR (\f(CW\*(C`a+=w\*(C'\fR). .PP \&\fIBN_sub_word()\fR subtracts \fBw\fR from \fBa\fR (\f(CW\*(C`a\-=w\*(C'\fR). .PP \&\fIBN_mul_word()\fR multiplies \fBa\fR and \fBw\fR (\f(CW\*(C`a*=w\*(C'\fR). .PP \&\fIBN_div_word()\fR divides \fBa\fR by \fBw\fR (\f(CW\*(C`a/=w\*(C'\fR) and returns the remainder. .PP \&\fIBN_mod_word()\fR returns the remainder of \fBa\fR divided by \fBw\fR (\f(CW\*(C`a%w\*(C'\fR). .PP For \fIBN_div_word()\fR and \fIBN_mod_word()\fR, \fBw\fR must not be 0. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBN_add_word()\fR, \fIBN_sub_word()\fR and \fIBN_mul_word()\fR return 1 for success, 0 on error. The error codes can be obtained by \fIERR_get_error\fR\|(3). .PP \&\fIBN_mod_word()\fR and \fIBN_div_word()\fR return \fBa\fR%\fBw\fR on success and \&\fB(\s-1BN_ULONG\s0)\-1\fR if an error occurred. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIbn\fR\|(3), \fIERR_get_error\fR\|(3), \fIBN_add\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIBN_add_word()\fR and \fIBN_mod_word()\fR are available in all versions of SSLeay and OpenSSL. \fIBN_div_word()\fR was added in SSLeay 0.8, and \&\fIBN_sub_word()\fR and \fIBN_mul_word()\fR in SSLeay 0.9.0. .PP Before 0.9.8a the return value for \fIBN_div_word()\fR and \fIBN_mod_word()\fR in case of an error was 0. man3/SSL_get_default_timeout.3000064400000012006147210533270012243 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_get_default_timeout 3" .TH SSL_get_default_timeout 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_get_default_timeout \- get default session timeout value .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& long SSL_get_default_timeout(const SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_get_default_timeout()\fR returns the default timeout value assigned to \&\s-1SSL_SESSION\s0 objects negotiated for the protocol valid for \fBssl\fR. .SH "NOTES" .IX Header "NOTES" Whenever a new session is negotiated, it is assigned a timeout value, after which it will not be accepted for session reuse. If the timeout value was not explicitly set using \&\fISSL_CTX_set_timeout\fR\|(3), the hardcoded default timeout for the protocol will be used. .PP \&\fISSL_get_default_timeout()\fR return this hardcoded value, which is 300 seconds for all currently supported protocols (SSLv2, SSLv3, and TLSv1). .SH "RETURN VALUES" .IX Header "RETURN VALUES" See description. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \&\fISSL_CTX_set_session_cache_mode\fR\|(3), \&\fISSL_SESSION_get_time\fR\|(3), \&\fISSL_CTX_flush_sessions\fR\|(3), \&\fISSL_get_default_timeout\fR\|(3) man3/CRYPTO_set_ex_data.3000064400000013406147210533270011056 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CRYPTO_set_ex_data 3" .TH CRYPTO_set_ex_data 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" CRYPTO_set_ex_data, CRYPTO_get_ex_data \- internal application specific data functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int CRYPTO_set_ex_data(CRYPTO_EX_DATA *r, int idx, void *arg); \& \& void *CRYPTO_get_ex_data(CRYPTO_EX_DATA *r, int idx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Several OpenSSL structures can have application specific data attached to them. These functions are used internally by OpenSSL to manipulate application specific data attached to a specific structure. .PP These functions should only be used by applications to manipulate \&\fB\s-1CRYPTO_EX_DATA\s0\fR structures passed to the \fB\f(BInew_func()\fB\fR, \fB\f(BIfree_func()\fB\fR and \&\fB\f(BIdup_func()\fB\fR callbacks: as passed to \fB\f(BIRSA_get_ex_new_index()\fB\fR for example. .PP \&\fB\f(BICRYPTO_set_ex_data()\fB\fR is used to set application specific data, the data is supplied in the \fBarg\fR parameter and its precise meaning is up to the application. .PP \&\fB\f(BICRYPTO_get_ex_data()\fB\fR is used to retrieve application specific data. The data is returned to the application, this will be the same value as supplied to a previous \fB\f(BICRYPTO_set_ex_data()\fB\fR call. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fB\f(BICRYPTO_set_ex_data()\fB\fR returns 1 on success or 0 on failure. .PP \&\fB\f(BICRYPTO_get_ex_data()\fB\fR returns the application data or 0 on failure. 0 may also be valid application data but currently it can only fail if given an invalid \fBidx\fR parameter. .PP On failure an error code can be obtained from \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIRSA_get_ex_new_index\fR\|(3), \&\fIDSA_get_ex_new_index\fR\|(3), \&\fIDH_get_ex_new_index\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fICRYPTO_set_ex_data()\fR and \fICRYPTO_get_ex_data()\fR have been available since SSLeay 0.9.0. man3/SSL_get_SSL_CTX.3000064400000010665147210533270010241 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_get_SSL_CTX 3" .TH SSL_get_SSL_CTX 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_get_SSL_CTX \- get the SSL_CTX from which an SSL is created .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_get_SSL_CTX()\fR returns a pointer to the \s-1SSL_CTX\s0 object, from which \&\fBssl\fR was created with \fISSL_new\fR\|(3). .SH "RETURN VALUES" .IX Header "RETURN VALUES" The pointer to the \s-1SSL_CTX\s0 object is returned. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_new\fR\|(3) man3/SSL_get_verify_result.3000064400000012576147210533270011767 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_get_verify_result 3" .TH SSL_get_verify_result 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_get_verify_result \- get result of peer certificate verification .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& long SSL_get_verify_result(const SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_get_verify_result()\fR returns the result of the verification of the X509 certificate presented by the peer, if any. .SH "NOTES" .IX Header "NOTES" \&\fISSL_get_verify_result()\fR can only return one error code while the verification of a certificate can fail because of many reasons at the same time. Only the last verification error that occurred during the processing is available from \fISSL_get_verify_result()\fR. .PP The verification result is part of the established session and is restored when a session is reused. .SH "BUGS" .IX Header "BUGS" If no peer certificate was presented, the returned result code is X509_V_OK. This is because no verification error occurred, it does however not indicate success. \fISSL_get_verify_result()\fR is only useful in connection with \fISSL_get_peer_certificate\fR\|(3). .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following return values can currently occur: .IP "X509_V_OK" 4 .IX Item "X509_V_OK" The verification succeeded or no peer certificate was presented. .IP "Any other value" 4 .IX Item "Any other value" Documented in \fIverify\fR\|(1). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_set_verify_result\fR\|(3), \&\fISSL_get_peer_certificate\fR\|(3), \&\fIverify\fR\|(1) man3/rand.3000064400000024377147210533270006433 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "rand 3" .TH rand 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" rand \- pseudo\-random number generator .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int RAND_set_rand_engine(ENGINE *engine); \& \& int RAND_bytes(unsigned char *buf, int num); \& int RAND_pseudo_bytes(unsigned char *buf, int num); \& \& void RAND_seed(const void *buf, int num); \& void RAND_add(const void *buf, int num, double entropy); \& int RAND_status(void); \& \& int RAND_load_file(const char *file, long max_bytes); \& int RAND_write_file(const char *file); \& const char *RAND_file_name(char *file, size_t num); \& \& int RAND_egd(const char *path); \& \& void RAND_set_rand_method(const RAND_METHOD *meth); \& const RAND_METHOD *RAND_get_rand_method(void); \& RAND_METHOD *RAND_SSLeay(void); \& \& void RAND_cleanup(void); \& \& /* For Win32 only */ \& void RAND_screen(void); \& int RAND_event(UINT, WPARAM, LPARAM); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Since the introduction of the \s-1ENGINE API,\s0 the recommended way of controlling default implementations is by using the \s-1ENGINE API\s0 functions. The default \&\fB\s-1RAND_METHOD\s0\fR, as set by \fIRAND_set_rand_method()\fR and returned by \&\fIRAND_get_rand_method()\fR, is only used if no \s-1ENGINE\s0 has been set as the default \&\*(L"rand\*(R" implementation. Hence, these two functions are no longer the recommended way to control defaults. .PP If an alternative \fB\s-1RAND_METHOD\s0\fR implementation is being used (either set directly or as provided by an \s-1ENGINE\s0 module), then it is entirely responsible for the generation and management of a cryptographically secure \s-1PRNG\s0 stream. The mechanisms described below relate solely to the software \s-1PRNG\s0 implementation built in to OpenSSL and used by default. .PP These functions implement a cryptographically secure pseudo-random number generator (\s-1PRNG\s0). It is used by other library functions for example to generate random keys, and applications can use it when they need randomness. .PP A cryptographic \s-1PRNG\s0 must be seeded with unpredictable data such as mouse movements or keys pressed at random by the user. This is described in \fIRAND_add\fR\|(3). Its state can be saved in a seed file (see \fIRAND_load_file\fR\|(3)) to avoid having to go through the seeding process whenever the application is started. .PP \&\fIRAND_bytes\fR\|(3) describes how to obtain random data from the \&\s-1PRNG. \s0 .SH "INTERNALS" .IX Header "INTERNALS" The \fIRAND_SSLeay()\fR method implements a \s-1PRNG\s0 based on a cryptographic hash function. .PP The following description of its design is based on the SSLeay documentation: .PP First up I will state the things I believe I need for a good \s-1RNG.\s0 .IP "1." 4 A good hashing algorithm to mix things up and to convert the \s-1RNG \s0'state' to random numbers. .IP "2." 4 An initial source of random 'state'. .IP "3." 4 The state should be very large. If the \s-1RNG\s0 is being used to generate 4096 bit \s-1RSA\s0 keys, 2 2048 bit random strings are required (at a minimum). If your \s-1RNG\s0 state only has 128 bits, you are obviously limiting the search space to 128 bits, not 2048. I'm probably getting a little carried away on this last point but it does indicate that it may not be a bad idea to keep quite a lot of \s-1RNG\s0 state. It should be easier to break a cipher than guess the \s-1RNG\s0 seed data. .IP "4." 4 Any \s-1RNG\s0 seed data should influence all subsequent random numbers generated. This implies that any random seed data entered will have an influence on all subsequent random numbers generated. .IP "5." 4 When using data to seed the \s-1RNG\s0 state, the data used should not be extractable from the \s-1RNG\s0 state. I believe this should be a requirement because one possible source of 'secret' semi random data would be a private key or a password. This data must not be disclosed by either subsequent random numbers or a \&'core' dump left by a program crash. .IP "6." 4 Given the same initial 'state', 2 systems should deviate in their \s-1RNG\s0 state (and hence the random numbers generated) over time if at all possible. .IP "7." 4 Given the random number output stream, it should not be possible to determine the \s-1RNG\s0 state or the next random number. .PP The algorithm is as follows. .PP There is global state made up of a 1023 byte buffer (the 'state'), a working hash value ('md'), and a counter ('count'). .PP Whenever seed data is added, it is inserted into the 'state' as follows. .PP The input is chopped up into units of 20 bytes (or less for the last block). Each of these blocks is run through the hash function as follows: The data passed to the hash function is the current 'md', the same number of bytes from the 'state' (the location determined by in incremented looping index) as the current 'block', the new key data 'block', and 'count' (which is incremented after each use). The result of this is kept in 'md' and also xored into the \&'state' at the same locations that were used as input into the hash function. I believe this system addresses points 1 (hash function; currently \&\s-1SHA\-1\s0), 3 (the 'state'), 4 (via the 'md'), 5 (by the use of a hash function and xor). .PP When bytes are extracted from the \s-1RNG,\s0 the following process is used. For each group of 10 bytes (or less), we do the following: .PP Input into the hash function the local 'md' (which is initialized from the global 'md' before any bytes are generated), the bytes that are to be overwritten by the random bytes, and bytes from the 'state' (incrementing looping index). From this digest output (which is kept in 'md'), the top (up to) 10 bytes are returned to the caller and the bottom 10 bytes are xored into the 'state'. .PP Finally, after we have finished 'num' random bytes for the caller, \&'count' (which is incremented) and the local and global 'md' are fed into the hash function and the results are kept in the global 'md'. .PP I believe the above addressed points 1 (use of \s-1SHA\-1\s0), 6 (by hashing into the 'state' the 'old' data from the caller that is about to be overwritten) and 7 (by not using the 10 bytes given to the caller to update the 'state', but they are used to update 'md'). .PP So of the points raised, only 2 is not addressed (but see \&\fIRAND_add\fR\|(3)). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIBN_rand\fR\|(3), \fIRAND_add\fR\|(3), \&\fIRAND_load_file\fR\|(3), \fIRAND_egd\fR\|(3), \&\fIRAND_bytes\fR\|(3), \&\fIRAND_set_rand_method\fR\|(3), \&\fIRAND_cleanup\fR\|(3) man3/PKCS12_create.3000064400000015716147210533270007732 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PKCS12_create 3" .TH PKCS12_create 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" PKCS12_create \- create a PKCS#12 structure .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& PKCS12 *PKCS12_create(char *pass, char *name, EVP_PKEY *pkey, X509 *cert, STACK_OF(X509) *ca, \& int nid_key, int nid_cert, int iter, int mac_iter, int keytype); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIPKCS12_create()\fR creates a PKCS#12 structure. .PP \&\fBpass\fR is the passphrase to use. \fBname\fR is the \fBfriendlyName\fR to use for the supplied certifictate and key. \fBpkey\fR is the private key to include in the structure and \fBcert\fR its corresponding certificates. \fBca\fR, if not \fB\s-1NULL\s0\fR is an optional set of certificates to also include in the structure. .PP \&\fBnid_key\fR and \fBnid_cert\fR are the encryption algorithms that should be used for the key and certificate respectively. \fBiter\fR is the encryption algorithm iteration count to use and \fBmac_iter\fR is the \s-1MAC\s0 iteration count to use. \&\fBkeytype\fR is the type of key. .SH "NOTES" .IX Header "NOTES" The parameters \fBnid_key\fR, \fBnid_cert\fR, \fBiter\fR, \fBmac_iter\fR and \fBkeytype\fR can all be set to zero and sensible defaults will be used. .PP These defaults are: 40 bit \s-1RC2\s0 encryption for certificates, triple \s-1DES\s0 encryption for private keys, a key iteration count of \s-1PKCS12_DEFAULT_ITER \&\s0(currently 2048) and a \s-1MAC\s0 iteration count of 1. .PP The default \s-1MAC\s0 iteration count is 1 in order to retain compatibility with old software which did not interpret \s-1MAC\s0 iteration counts. If such compatibility is not required then \fBmac_iter\fR should be set to \s-1PKCS12_DEFAULT_ITER.\s0 .PP \&\fBkeytype\fR adds a flag to the store private key. This is a non standard extension that is only currently interpreted by \s-1MSIE.\s0 If set to zero the flag is omitted, if set to \fB\s-1KEY_SIG\s0\fR the key can be used for signing only, if set to \fB\s-1KEY_EX\s0\fR it can be used for signing and encryption. This option was useful for old export grade software which could use signing only keys of arbitrary size but had restrictions on the permissible sizes of keys which could be used for encryption. .SH "NEW FUNCTIONALITY IN OPENSSL 0.9.8" .IX Header "NEW FUNCTIONALITY IN OPENSSL 0.9.8" Some additional functionality was added to \fIPKCS12_create()\fR in OpenSSL 0.9.8. These extensions are detailed below. .PP If a certificate contains an \fBalias\fR or \fBkeyid\fR then this will be used for the corresponding \fBfriendlyName\fR or \fBlocalKeyID\fR in the \&\s-1PKCS12\s0 structure. .PP Either \fBpkey\fR, \fBcert\fR or both can be \fB\s-1NULL\s0\fR to indicate that no key or certficate is required. In previous versions both had to be present or a fatal error is returned. .PP \&\fBnid_key\fR or \fBnid_cert\fR can be set to \-1 indicating that no encryption should be used. .PP \&\fBmac_iter\fR can be set to \-1 and the \s-1MAC\s0 will then be omitted entirely. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fId2i_PKCS12\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" PKCS12_create was added in OpenSSL 0.9.3 man3/i2d_CMS_bio_stream.3000064400000011775147210533270011071 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "i2d_CMS_bio_stream 3" .TH i2d_CMS_bio_stream 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" .Vb 1 \& i2d_CMS_bio_stream \- output CMS_ContentInfo structure in BER format. .Ve .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int i2d_CMS_bio_stream(BIO *out, CMS_ContentInfo *cms, BIO *data, int flags); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIi2d_CMS_bio_stream()\fR outputs a CMS_ContentInfo structure in \s-1BER\s0 format. .PP It is otherwise identical to the function \fISMIME_write_CMS()\fR. .SH "NOTES" .IX Header "NOTES" This function is effectively a version of the \fIi2d_CMS_bio()\fR supporting streaming. .SH "BUGS" .IX Header "BUGS" The prefix \*(L"i2d\*(R" is arguably wrong because the function outputs \s-1BER\s0 format. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIi2d_CMS_bio_stream()\fR returns 1 for success or 0 for failure. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fICMS_sign\fR\|(3), \&\fICMS_verify\fR\|(3), \fICMS_encrypt\fR\|(3) \&\fICMS_decrypt\fR\|(3), \&\fISMIME_write_CMS\fR\|(3), \&\fIPEM_write_bio_CMS_stream\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIi2d_CMS_bio_stream()\fR was added to OpenSSL 1.0.0 man3/SSL_CONF_cmd.3000064400000054330147210533270007570 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CONF_cmd 3" .TH SSL_CONF_cmd 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CONF_cmd \- send configuration command .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_CONF_cmd(SSL_CONF_CTX *cctx, const char *cmd, const char *value); \& int SSL_CONF_cmd_value_type(SSL_CONF_CTX *cctx, const char *cmd); \& int SSL_CONF_finish(SSL_CONF_CTX *cctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The function \fISSL_CONF_cmd()\fR performs configuration operation \fBcmd\fR with optional parameter \fBvalue\fR on \fBctx\fR. Its purpose is to simplify application configuration of \fB\s-1SSL_CTX\s0\fR or \fB\s-1SSL\s0\fR structures by providing a common framework for command line options or configuration files. .PP \&\fISSL_CONF_cmd_value_type()\fR returns the type of value that \fBcmd\fR refers to. .PP The function \fISSL_CONF_finish()\fR must be called after all configuration operations have been completed. It is used to finalise any operations or to process defaults. .SH "SUPPORTED COMMAND LINE COMMANDS" .IX Header "SUPPORTED COMMAND LINE COMMANDS" Currently supported \fBcmd\fR names for command lines (i.e. when the flag \fB\s-1SSL_CONF_CMDLINE\s0\fR is set) are listed below. Note: all \fBcmd\fR names are case sensitive. Unless otherwise stated commands can be used by both clients and servers and the \fBvalue\fR parameter is not used. The default prefix for command line commands is \fB\-\fR and that is reflected below. .IP "\fB\-sigalgs\fR" 4 .IX Item "-sigalgs" This sets the supported signature algorithms for \s-1TLS\s0 v1.2. For clients this value is used directly for the supported signature algorithms extension. For servers it is used to determine which signature algorithms to support. .Sp The \fBvalue\fR argument should be a colon separated list of signature algorithms in order of decreasing preference of the form \fBalgorithm+hash\fR. \fBalgorithm\fR is one of \fB\s-1RSA\s0\fR, \fB\s-1DSA\s0\fR or \fB\s-1ECDSA\s0\fR and \fBhash\fR is a supported algorithm \&\s-1OID\s0 short name such as \fB\s-1SHA1\s0\fR, \fB\s-1SHA224\s0\fR, \fB\s-1SHA256\s0\fR, \fB\s-1SHA384\s0\fR of \fB\s-1SHA512\s0\fR. Note: algorithm and hash names are case sensitive. .Sp If this option is not set then all signature algorithms supported by the OpenSSL library are permissible. .IP "\fB\-client_sigalgs\fR" 4 .IX Item "-client_sigalgs" This sets the supported signature algorithms associated with client authentication for \s-1TLS\s0 v1.2. For servers the value is used in the supported signature algorithms field of a certificate request. For clients it is used to determine which signature algorithm to with the client certificate. If a server does not request a certificate this option has no effect. .Sp The syntax of \fBvalue\fR is identical to \fB\-sigalgs\fR. If not set then the value set for \fB\-sigalgs\fR will be used instead. .IP "\fB\-curves\fR" 4 .IX Item "-curves" This sets the supported elliptic curves. For clients the curves are sent using the supported curves extension. For servers it is used to determine which curve to use. This setting affects curves used for both signatures and key exchange, if applicable. .Sp The \fBvalue\fR argument is a colon separated list of curves. The curve can be either the \fB\s-1NIST\s0\fR name (e.g. \fBP\-256\fR) or an OpenSSL \s-1OID\s0 name (e.g \&\fBprime256v1\fR). Curve names are case sensitive. .IP "\fB\-named_curve\fR" 4 .IX Item "-named_curve" This sets the temporary curve used for ephemeral \s-1ECDH\s0 modes. Only used by servers .Sp The \fBvalue\fR argument is a curve name or the special value \fBauto\fR which picks an appropriate curve based on client and server preferences. The curve can be either the \fB\s-1NIST\s0\fR name (e.g. \fBP\-256\fR) or an OpenSSL \s-1OID\s0 name (e.g \fBprime256v1\fR). Curve names are case sensitive. .IP "\fB\-cipher\fR" 4 .IX Item "-cipher" Sets the cipher suite list to \fBvalue\fR. Note: syntax checking of \fBvalue\fR is currently not performed unless a \fB\s-1SSL\s0\fR or \fB\s-1SSL_CTX\s0\fR structure is associated with \fBcctx\fR. .IP "\fB\-cert\fR" 4 .IX Item "-cert" Attempts to use the file \fBvalue\fR as the certificate for the appropriate context. It currently uses \fISSL_CTX_use_certificate_chain_file()\fR if an \fB\s-1SSL_CTX\s0\fR structure is set or \fISSL_use_certificate_file()\fR with filetype \s-1PEM\s0 if an \fB\s-1SSL\s0\fR structure is set. This option is only supported if certificate operations are permitted. .IP "\fB\-key\fR" 4 .IX Item "-key" Attempts to use the file \fBvalue\fR as the private key for the appropriate context. This option is only supported if certificate operations are permitted. Note: if no \fB\-key\fR option is set then a private key is not loaded: it does not currently use the \fB\-cert\fR file. .IP "\fB\-dhparam\fR" 4 .IX Item "-dhparam" Attempts to use the file \fBvalue\fR as the set of temporary \s-1DH\s0 parameters for the appropriate context. This option is only supported if certificate operations are permitted. .IP "\fB\-no_ssl2\fR, \fB\-no_ssl3\fR, \fB\-no_tls1\fR, \fB\-no_tls1_1\fR, \fB\-no_tls1_2\fR" 4 .IX Item "-no_ssl2, -no_ssl3, -no_tls1, -no_tls1_1, -no_tls1_2" Disables protocol support for SSLv2, SSLv3, TLSv1.0, TLSv1.1 or TLSv1.2 by setting the corresponding options \fBSSL_OP_NO_SSLv2\fR, \fBSSL_OP_NO_SSLv3\fR, \&\fBSSL_OP_NO_TLSv1\fR, \fBSSL_OP_NO_TLSv1_1\fR and \fBSSL_OP_NO_TLSv1_2\fR respectively. .IP "\fB\-bugs\fR" 4 .IX Item "-bugs" Various bug workarounds are set, same as setting \fB\s-1SSL_OP_ALL\s0\fR. .IP "\fB\-no_comp\fR" 4 .IX Item "-no_comp" Disables support for \s-1SSL/TLS\s0 compression, same as setting \fB\s-1SSL_OP_NO_COMPRESS\s0\fR. .IP "\fB\-no_ticket\fR" 4 .IX Item "-no_ticket" Disables support for session tickets, same as setting \fB\s-1SSL_OP_NO_TICKET\s0\fR. .IP "\fB\-serverpref\fR" 4 .IX Item "-serverpref" Use server and not client preference order when determining which cipher suite, signature algorithm or elliptic curve to use for an incoming connection. Equivalent to \fB\s-1SSL_OP_CIPHER_SERVER_PREFERENCE\s0\fR. Only used by servers. .IP "\fB\-no_resumption_on_reneg\fR" 4 .IX Item "-no_resumption_on_reneg" set \s-1SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION\s0 flag. Only used by servers. .IP "\fB\-legacyrenegotiation\fR" 4 .IX Item "-legacyrenegotiation" permits the use of unsafe legacy renegotiation. Equivalent to setting \&\fB\s-1SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION\s0\fR. .IP "\fB\-legacy_server_connect\fR, \fB\-no_legacy_server_connect\fR" 4 .IX Item "-legacy_server_connect, -no_legacy_server_connect" permits or prohibits the use of unsafe legacy renegotiation for OpenSSL clients only. Equivalent to setting or clearing \fB\s-1SSL_OP_LEGACY_SERVER_CONNECT\s0\fR. Set by default. .IP "\fB\-strict\fR" 4 .IX Item "-strict" enables strict mode protocol handling. Equivalent to setting \&\fB\s-1SSL_CERT_FLAG_TLS_STRICT\s0\fR. .IP "\fB\-debug_broken_protocol\fR" 4 .IX Item "-debug_broken_protocol" disables various checks and permits several kinds of broken protocol behaviour for testing purposes: it should \fB\s-1NEVER\s0\fR be used in anything other than a test environment. Only supported if OpenSSL is configured with \&\fB\-DOPENSSL_SSL_DEBUG_BROKEN_PROTOCOL\fR. .SH "SUPPORTED CONFIGURATION FILE COMMANDS" .IX Header "SUPPORTED CONFIGURATION FILE COMMANDS" Currently supported \fBcmd\fR names for configuration files (i.e. when the flag \fB\s-1SSL_CONF_FLAG_FILE\s0\fR is set) are listed below. All configuration file \&\fBcmd\fR names and are case insensitive so \fBsignaturealgorithms\fR is recognised as well as \fBSignatureAlgorithms\fR. Unless otherwise stated the \fBvalue\fR names are also case insensitive. .PP Note: the command prefix (if set) alters the recognised \fBcmd\fR values. .IP "\fBCipherString\fR" 4 .IX Item "CipherString" Sets the cipher suite list to \fBvalue\fR. Note: syntax checking of \fBvalue\fR is currently not performed unless an \fB\s-1SSL\s0\fR or \fB\s-1SSL_CTX\s0\fR structure is associated with \fBcctx\fR. .IP "\fBCertificate\fR" 4 .IX Item "Certificate" Attempts to use the file \fBvalue\fR as the certificate for the appropriate context. It currently uses \fISSL_CTX_use_certificate_chain_file()\fR if an \fB\s-1SSL_CTX\s0\fR structure is set or \fISSL_use_certificate_file()\fR with filetype \s-1PEM\s0 if an \fB\s-1SSL\s0\fR structure is set. This option is only supported if certificate operations are permitted. .IP "\fBPrivateKey\fR" 4 .IX Item "PrivateKey" Attempts to use the file \fBvalue\fR as the private key for the appropriate context. This option is only supported if certificate operations are permitted. Note: if no \fB\-key\fR option is set then a private key is not loaded: it does not currently use the \fBCertificate\fR file. .IP "\fBServerInfoFile\fR" 4 .IX Item "ServerInfoFile" Attempts to use the file \fBvalue\fR in the \*(L"serverinfo\*(R" extension using the function SSL_CTX_use_serverinfo_file. .IP "\fBDHParameters\fR" 4 .IX Item "DHParameters" Attempts to use the file \fBvalue\fR as the set of temporary \s-1DH\s0 parameters for the appropriate context. This option is only supported if certificate operations are permitted. .IP "\fBSignatureAlgorithms\fR" 4 .IX Item "SignatureAlgorithms" This sets the supported signature algorithms for \s-1TLS\s0 v1.2. For clients this value is used directly for the supported signature algorithms extension. For servers it is used to determine which signature algorithms to support. .Sp The \fBvalue\fR argument should be a colon separated list of signature algorithms in order of decreasing preference of the form \fBalgorithm+hash\fR. \fBalgorithm\fR is one of \fB\s-1RSA\s0\fR, \fB\s-1DSA\s0\fR or \fB\s-1ECDSA\s0\fR and \fBhash\fR is a supported algorithm \&\s-1OID\s0 short name such as \fB\s-1SHA1\s0\fR, \fB\s-1SHA224\s0\fR, \fB\s-1SHA256\s0\fR, \fB\s-1SHA384\s0\fR of \fB\s-1SHA512\s0\fR. Note: algorithm and hash names are case sensitive. .Sp If this option is not set then all signature algorithms supported by the OpenSSL library are permissible. .IP "\fBClientSignatureAlgorithms\fR" 4 .IX Item "ClientSignatureAlgorithms" This sets the supported signature algorithms associated with client authentication for \s-1TLS\s0 v1.2. For servers the value is used in the supported signature algorithms field of a certificate request. For clients it is used to determine which signature algorithm to with the client certificate. .Sp The syntax of \fBvalue\fR is identical to \fBSignatureAlgorithms\fR. If not set then the value set for \fBSignatureAlgorithms\fR will be used instead. .IP "\fBCurves\fR" 4 .IX Item "Curves" This sets the supported elliptic curves. For clients the curves are sent using the supported curves extension. For servers it is used to determine which curve to use. This setting affects curves used for both signatures and key exchange, if applicable. .Sp The \fBvalue\fR argument is a colon separated list of curves. The curve can be either the \fB\s-1NIST\s0\fR name (e.g. \fBP\-256\fR) or an OpenSSL \s-1OID\s0 name (e.g \&\fBprime256v1\fR). Curve names are case sensitive. .IP "\fBECDHParameters\fR" 4 .IX Item "ECDHParameters" This sets the temporary curve used for ephemeral \s-1ECDH\s0 modes. Only used by servers .Sp The \fBvalue\fR argument is a curve name or the special value \fBAutomatic\fR which picks an appropriate curve based on client and server preferences. The curve can be either the \fB\s-1NIST\s0\fR name (e.g. \fBP\-256\fR) or an OpenSSL \s-1OID\s0 name (e.g \fBprime256v1\fR). Curve names are case sensitive. .IP "\fBProtocol\fR" 4 .IX Item "Protocol" The supported versions of the \s-1SSL\s0 or \s-1TLS\s0 protocol. .Sp The \fBvalue\fR argument is a comma separated list of supported protocols to enable or disable. If an protocol is preceded by \fB\-\fR that version is disabled. Currently supported protocol values are \fBSSLv2\fR, \fBSSLv3\fR, \fBTLSv1\fR, \&\fBTLSv1.1\fR and \fBTLSv1.2\fR. All protocol versions other than \fBSSLv2\fR are enabled by default. To avoid inadvertent enabling of \fBSSLv2\fR, when SSLv2 is disabled, it is not possible to enable it via the \fBProtocol\fR command. .IP "\fBOptions\fR" 4 .IX Item "Options" The \fBvalue\fR argument is a comma separated list of various flags to set. If a flag string is preceded \fB\-\fR it is disabled. See the \&\fBSSL_CTX_set_options\fR function for more details of individual options. .Sp Each option is listed below. Where an operation is enabled by default the \fB\-flag\fR syntax is needed to disable it. .Sp \&\fBSessionTicket\fR: session ticket support, enabled by default. Inverse of \&\fB\s-1SSL_OP_NO_TICKET\s0\fR: that is \fB\-SessionTicket\fR is the same as setting \&\fB\s-1SSL_OP_NO_TICKET\s0\fR. .Sp \&\fBCompression\fR: \s-1SSL/TLS\s0 compression support, enabled by default. Inverse of \fB\s-1SSL_OP_NO_COMPRESSION\s0\fR. .Sp \&\fBEmptyFragments\fR: use empty fragments as a countermeasure against a \&\s-1SSL 3.0/TLS 1.0\s0 protocol vulnerability affecting \s-1CBC\s0 ciphers. It is set by default. Inverse of \fB\s-1SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS\s0\fR. .Sp \&\fBBugs\fR: enable various bug workarounds. Same as \fB\s-1SSL_OP_ALL\s0\fR. .Sp \&\fBDHSingle\fR: enable single use \s-1DH\s0 keys, set by default. Inverse of \&\fB\s-1SSL_OP_DH_SINGLE\s0\fR. Only used by servers. .Sp \&\fBECDHSingle\fR enable single use \s-1ECDH\s0 keys, set by default. Inverse of \&\fB\s-1SSL_OP_ECDH_SINGLE\s0\fR. Only used by servers. .Sp \&\fBServerPreference\fR use server and not client preference order when determining which cipher suite, signature algorithm or elliptic curve to use for an incoming connection. Equivalent to \&\fB\s-1SSL_OP_CIPHER_SERVER_PREFERENCE\s0\fR. Only used by servers. .Sp \&\fBNoResumptionOnRenegotiation\fR set \&\fB\s-1SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION\s0\fR flag. Only used by servers. .Sp \&\fBUnsafeLegacyRenegotiation\fR permits the use of unsafe legacy renegotiation. Equivalent to \fB\s-1SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION\s0\fR. .Sp \&\fBUnsafeLegacyServerConnect\fR permits the use of unsafe legacy renegotiation for OpenSSL clients only. Equivalent to \fB\s-1SSL_OP_LEGACY_SERVER_CONNECT\s0\fR. Set by default. .SH "SUPPORTED COMMAND TYPES" .IX Header "SUPPORTED COMMAND TYPES" The function \fISSL_CONF_cmd_value_type()\fR currently returns one of the following types: .IP "\fB\s-1SSL_CONF_TYPE_UNKNOWN\s0\fR" 4 .IX Item "SSL_CONF_TYPE_UNKNOWN" The \fBcmd\fR string is unrecognised, this return value can be use to flag syntax errors. .IP "\fB\s-1SSL_CONF_TYPE_STRING\s0\fR" 4 .IX Item "SSL_CONF_TYPE_STRING" The value is a string without any specific structure. .IP "\fB\s-1SSL_CONF_TYPE_FILE\s0\fR" 4 .IX Item "SSL_CONF_TYPE_FILE" The value is a file name. .IP "\fB\s-1SSL_CONF_TYPE_DIR\s0\fR" 4 .IX Item "SSL_CONF_TYPE_DIR" The value is a directory name. .SH "NOTES" .IX Header "NOTES" The order of operations is significant. This can be used to set either defaults or values which cannot be overridden. For example if an application calls: .PP .Vb 2 \& SSL_CONF_cmd(ctx, "Protocol", "\-SSLv3"); \& SSL_CONF_cmd(ctx, userparam, uservalue); .Ve .PP it will disable SSLv3 support by default but the user can override it. If however the call sequence is: .PP .Vb 2 \& SSL_CONF_cmd(ctx, userparam, uservalue); \& SSL_CONF_cmd(ctx, "Protocol", "\-SSLv3"); .Ve .PP then SSLv3 is \fBalways\fR disabled and attempt to override this by the user are ignored. .PP By checking the return code of \fISSL_CTX_cmd()\fR it is possible to query if a given \fBcmd\fR is recognised, this is useful is \fISSL_CTX_cmd()\fR values are mixed with additional application specific operations. .PP For example an application might call \fISSL_CTX_cmd()\fR and if it returns \&\-2 (unrecognised command) continue with processing of application specific commands. .PP Applications can also use \fISSL_CTX_cmd()\fR to process command lines though the utility function \fISSL_CTX_cmd_argv()\fR is normally used instead. One way to do this is to set the prefix to an appropriate value using \&\fISSL_CONF_CTX_set1_prefix()\fR, pass the current argument to \fBcmd\fR and the following argument to \fBvalue\fR (which may be \s-1NULL\s0). .PP In this case if the return value is positive then it is used to skip that number of arguments as they have been processed by \fISSL_CTX_cmd()\fR. If \-2 is returned then \fBcmd\fR is not recognised and application specific arguments can be checked instead. If \-3 is returned a required argument is missing and an error is indicated. If 0 is returned some other error occurred and this can be reported back to the user. .PP The function \fISSL_CONF_cmd_value_type()\fR can be used by applications to check for the existence of a command or to perform additional syntax checking or translation of the command value. For example if the return value is \fB\s-1SSL_CONF_TYPE_FILE\s0\fR an application could translate a relative pathname to an absolute pathname. .SH "EXAMPLES" .IX Header "EXAMPLES" Set supported signature algorithms: .PP .Vb 1 \& SSL_CONF_cmd(ctx, "SignatureAlgorithms", "ECDSA+SHA256:RSA+SHA256:DSA+SHA256"); .Ve .PP Enable all protocols except SSLv3 and SSLv2: .PP .Vb 1 \& SSL_CONF_cmd(ctx, "Protocol", "ALL,\-SSLv3,\-SSLv2"); .Ve .PP Only enable TLSv1.2: .PP .Vb 1 \& SSL_CONF_cmd(ctx, "Protocol", "\-ALL,TLSv1.2"); .Ve .PP Disable \s-1TLS\s0 session tickets: .PP .Vb 1 \& SSL_CONF_cmd(ctx, "Options", "\-SessionTicket"); .Ve .PP Set supported curves to P\-256, P\-384: .PP .Vb 1 \& SSL_CONF_cmd(ctx, "Curves", "P\-256:P\-384"); .Ve .PP Set automatic support for any elliptic curve for key exchange: .PP .Vb 1 \& SSL_CONF_cmd(ctx, "ECDHParameters", "Automatic"); .Ve .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CONF_cmd()\fR returns 1 if the value of \fBcmd\fR is recognised and \fBvalue\fR is \&\fB\s-1NOT\s0\fR used and 2 if both \fBcmd\fR and \fBvalue\fR are used. In other words it returns the number of arguments processed. This is useful when processing command lines. .PP A return value of \-2 means \fBcmd\fR is not recognised. .PP A return value of \-3 means \fBcmd\fR is recognised and the command requires a value but \fBvalue\fR is \s-1NULL.\s0 .PP A return code of 0 indicates that both \fBcmd\fR and \fBvalue\fR are valid but an error occurred attempting to perform the operation: for example due to an error in the syntax of \fBvalue\fR in this case the error queue may provide additional information. .PP \&\fISSL_CONF_finish()\fR returns 1 for success and 0 for failure. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_CONF_CTX_new\fR\|(3), \&\fISSL_CONF_CTX_set_flags\fR\|(3), \&\fISSL_CONF_CTX_set1_prefix\fR\|(3), \&\fISSL_CONF_CTX_set_ssl_ctx\fR\|(3), \&\fISSL_CONF_cmd_argv\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fISSL_CONF_cmd()\fR was first added to OpenSSL 1.0.2 man3/d2i_X509_NAME.3000064400000011233147210533270007475 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "d2i_X509_NAME 3" .TH d2i_X509_NAME 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" d2i_X509_NAME, i2d_X509_NAME \- X509_NAME encoding functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& X509_NAME *d2i_X509_NAME(X509_NAME **a, unsigned char **pp, long length); \& int i2d_X509_NAME(X509_NAME *a, unsigned char **pp); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions decode and encode an \fBX509_NAME\fR structure which is the same as the \fBName\fR type defined in \s-1RFC2459 \s0(and elsewhere) and used for example in certificate subject and issuer names. .PP Othewise the functions behave in a similar way to \fId2i_X509()\fR and \fIi2d_X509()\fR described in the \fId2i_X509\fR\|(3) manual page. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fId2i_X509\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1TBA\s0 man3/BN_mod_inverse.3000064400000011647147210533270010374 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BN_mod_inverse 3" .TH BN_mod_inverse 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BN_mod_inverse \- compute inverse modulo n .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& BIGNUM *BN_mod_inverse(BIGNUM *r, BIGNUM *a, const BIGNUM *n, \& BN_CTX *ctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBN_mod_inverse()\fR computes the inverse of \fBa\fR modulo \fBn\fR places the result in \fBr\fR (\f(CW\*(C`(a*r)%n==1\*(C'\fR). If \fBr\fR is \s-1NULL,\s0 a new \fB\s-1BIGNUM\s0\fR is created. .PP \&\fBctx\fR is a previously allocated \fB\s-1BN_CTX\s0\fR used for temporary variables. \fBr\fR may be the same \fB\s-1BIGNUM\s0\fR as \fBa\fR or \fBn\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBN_mod_inverse()\fR returns the \fB\s-1BIGNUM\s0\fR containing the inverse, and \&\s-1NULL\s0 on error. The error codes can be obtained by \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIbn\fR\|(3), \fIERR_get_error\fR\|(3), \fIBN_add\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIBN_mod_inverse()\fR is available in all versions of SSLeay and OpenSSL. man3/SSL_CTX_set_cert_cb.3000064400000015437147210533270011217 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_cert_cb 3" .TH SSL_CTX_set_cert_cb 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_cert_cb, SSL_set_cert_cb \- handle certificate callback function .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void SSL_CTX_set_cert_cb(SSL_CTX *c, int (*cert_cb)(SSL *ssl, void *arg), void *arg); \& void SSL_set_cert_cb(SSL *s, int (*cert_cb)(SSL *ssl, void *arg), void *arg); \& \& int (*cert_cb)(SSL *ssl, void *arg); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set_cert_cb()\fR and \fISSL_set_cert_cb()\fR sets the \fB\f(BIcert_cb()\fB\fR callback, \&\fBarg\fR value is pointer which is passed to the application callback. .PP When \fB\f(BIcert_cb()\fB\fR is \s-1NULL,\s0 no callback function is used. .PP \&\fIcert_cb()\fR is the application defined callback. It is called before a certificate will be used by a client or server. The callback can then inspect the passed \fBssl\fR structure and set or clear any appropriate certificates. If the callback is successful it \fB\s-1MUST\s0\fR return 1 even if no certificates have been set. A zero is returned on error which will abort the handshake with a fatal internal error alert. A negative return value will suspend the handshake and the handshake function will return immediately. \&\fISSL_get_error\fR\|(3) will return \s-1SSL_ERROR_WANT_X509_LOOKUP\s0 to indicate, that the handshake was suspended. The next call to the handshake function will again lead to the call of \fIcert_cb()\fR. It is the job of the \&\fIcert_cb()\fR to store information about the state of the last call, if required to continue. .SH "NOTES" .IX Header "NOTES" An application will typically call \fISSL_use_certificate()\fR and \&\fISSL_use_PrivateKey()\fR to set the end entity certificate and private key. It can add intermediate and optionally the root \s-1CA\s0 certificates using \&\fISSL_add1_chain_cert()\fR. .PP It might also call \fISSL_certs_clear()\fR to delete any certificates associated with the \fB\s-1SSL\s0\fR object. .PP The certificate callback functionality supercedes the (largely broken) functionality provided by the old client certificate callback interface. It is \fBalways\fR called even is a certificate is already set so the callback can modify or delete the existing certificate. .PP A more advanced callback might examine the handshake parameters and set whatever chain is appropriate. For example a legacy client supporting only \&\s-1TLS\s0 v1.0 might receive a certificate chain signed using \s-1SHA1\s0 whereas a \&\s-1TLS\s0 v1.2 client which advertises support for \s-1SHA256\s0 could receive a chain using \s-1SHA256.\s0 .PP Normal server sanity checks are performed on any certificates set by the callback. So if an \s-1EC\s0 chain is set for a curve the client does not support it will \fBnot\fR be used. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_use_certificate\fR\|(3), \&\fISSL_add1_chain_cert\fR\|(3), \&\fISSL_get_client_CA_list\fR\|(3), \&\fISSL_clear\fR\|(3), \fISSL_free\fR\|(3) man3/SMIME_write_PKCS7.3000064400000014210147210533270010463 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SMIME_write_PKCS7 3" .TH SMIME_write_PKCS7 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SMIME_write_PKCS7 \- convert PKCS#7 structure to S/MIME format. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SMIME_write_PKCS7(BIO *out, PKCS7 *p7, BIO *data, int flags); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISMIME_write_PKCS7()\fR adds the appropriate \s-1MIME\s0 headers to a PKCS#7 structure to produce an S/MIME message. .PP \&\fBout\fR is the \s-1BIO\s0 to write the data to. \fBp7\fR is the appropriate \fB\s-1PKCS7\s0\fR structure. If streaming is enabled then the content must be supplied in the \&\fBdata\fR argument. \fBflags\fR is an optional set of flags. .SH "NOTES" .IX Header "NOTES" The following flags can be passed in the \fBflags\fR parameter. .PP If \fB\s-1PKCS7_DETACHED\s0\fR is set then cleartext signing will be used, this option only makes sense for signedData where \fB\s-1PKCS7_DETACHED\s0\fR is also set when \fIPKCS7_sign()\fR is also called. .PP If the \fB\s-1PKCS7_TEXT\s0\fR flag is set \s-1MIME\s0 headers for type \fBtext/plain\fR are added to the content, this only makes sense if \fB\s-1PKCS7_DETACHED\s0\fR is also set. .PP If the \fB\s-1PKCS7_STREAM\s0\fR flag is set streaming is performed. This flag should only be set if \fB\s-1PKCS7_STREAM\s0\fR was also set in the previous call to \&\fIPKCS7_sign()\fR or \fB\f(BIPKCS7_encrypt()\fB\fR. .PP If cleartext signing is being used and \fB\s-1PKCS7_STREAM\s0\fR not set then the data must be read twice: once to compute the signature in \fIPKCS7_sign()\fR and once to output the S/MIME message. .PP If streaming is performed the content is output in \s-1BER\s0 format using indefinite length constructuted encoding except in the case of signed data with detached content where the content is absent and \s-1DER\s0 format is used. .SH "BUGS" .IX Header "BUGS" \&\fISMIME_write_PKCS7()\fR always base64 encodes PKCS#7 structures, there should be an option to disable this. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISMIME_write_PKCS7()\fR returns 1 for success or 0 for failure. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fIPKCS7_sign\fR\|(3), \&\fIPKCS7_verify\fR\|(3), \fIPKCS7_encrypt\fR\|(3) \&\fIPKCS7_decrypt\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fISMIME_write_PKCS7()\fR was added to OpenSSL 0.9.5 man3/PEM_write_bio_PKCS7_stream.3000064400000011706147210533270012445 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PEM_write_bio_PKCS7_stream 3" .TH PEM_write_bio_PKCS7_stream 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" PEM_write_bio_PKCS7_stream \- output PKCS7 structure in PEM format. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& #include \& #include \& \& int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *data, int flags); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIPEM_write_bio_PKCS7_stream()\fR outputs a \s-1PKCS7\s0 structure in \s-1PEM\s0 format. .PP It is otherwise identical to the function \fISMIME_write_PKCS7()\fR. .SH "NOTES" .IX Header "NOTES" This function is effectively a version of the \fIPEM_write_bio_PKCS7()\fR supporting streaming. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIPEM_write_bio_PKCS7_stream()\fR returns 1 for success or 0 for failure. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fIPKCS7_sign\fR\|(3), \&\fIPKCS7_verify\fR\|(3), \fIPKCS7_encrypt\fR\|(3) \&\fIPKCS7_decrypt\fR\|(3), \&\fISMIME_write_PKCS7\fR\|(3), \&\fIi2d_PKCS7_bio_stream\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIPEM_write_bio_PKCS7_stream()\fR was added to OpenSSL 1.0.0 man3/RSA_public_encrypt.3000064400000015770147210533270011233 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RSA_public_encrypt 3" .TH RSA_public_encrypt 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" RSA_public_encrypt, RSA_private_decrypt \- RSA public key cryptography .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int RSA_public_encrypt(int flen, const unsigned char *from, \& unsigned char *to, RSA *rsa, int padding); \& \& int RSA_private_decrypt(int flen, const unsigned char *from, \& unsigned char *to, RSA *rsa, int padding); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIRSA_public_encrypt()\fR encrypts the \fBflen\fR bytes at \fBfrom\fR (usually a session key) using the public key \fBrsa\fR and stores the ciphertext in \&\fBto\fR. \fBto\fR must point to RSA_size(\fBrsa\fR) bytes of memory. .PP \&\fBpadding\fR denotes one of the following modes: .IP "\s-1RSA_PKCS1_PADDING\s0" 4 .IX Item "RSA_PKCS1_PADDING" \&\s-1PKCS\s0 #1 v1.5 padding. This currently is the most widely used mode. .IP "\s-1RSA_PKCS1_OAEP_PADDING\s0" 4 .IX Item "RSA_PKCS1_OAEP_PADDING" EME-OAEP as defined in \s-1PKCS\s0 #1 v2.0 with \s-1SHA\-1, MGF1\s0 and an empty encoding parameter. This mode is recommended for all new applications. .IP "\s-1RSA_SSLV23_PADDING\s0" 4 .IX Item "RSA_SSLV23_PADDING" \&\s-1PKCS\s0 #1 v1.5 padding with an SSL-specific modification that denotes that the server is \s-1SSL3\s0 capable. .IP "\s-1RSA_NO_PADDING\s0" 4 .IX Item "RSA_NO_PADDING" Raw \s-1RSA\s0 encryption. This mode should \fIonly\fR be used to implement cryptographically sound padding modes in the application code. Encrypting user data directly with \s-1RSA\s0 is insecure. .PP \&\fBflen\fR must be less than RSA_size(\fBrsa\fR) \- 11 for the \s-1PKCS\s0 #1 v1.5 based padding modes, less than RSA_size(\fBrsa\fR) \- 41 for \&\s-1RSA_PKCS1_OAEP_PADDING\s0 and exactly RSA_size(\fBrsa\fR) for \s-1RSA_NO_PADDING.\s0 The random number generator must be seeded prior to calling \&\fIRSA_public_encrypt()\fR. .PP \&\fIRSA_private_decrypt()\fR decrypts the \fBflen\fR bytes at \fBfrom\fR using the private key \fBrsa\fR and stores the plaintext in \fBto\fR. \fBto\fR must point to a memory section large enough to hold the decrypted data (which is smaller than RSA_size(\fBrsa\fR)). \fBpadding\fR is the padding mode that was used to encrypt the data. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIRSA_public_encrypt()\fR returns the size of the encrypted data (i.e., RSA_size(\fBrsa\fR)). \fIRSA_private_decrypt()\fR returns the size of the recovered plaintext. .PP On error, \-1 is returned; the error codes can be obtained by \fIERR_get_error\fR\|(3). .SH "WARNING" .IX Header "WARNING" Decryption failures in the \s-1RSA_PKCS1_PADDING\s0 mode leak information which can potentially be used to mount a Bleichenbacher padding oracle attack. This is an inherent weakness in the \s-1PKCS\s0 #1 v1.5 padding design. Prefer \s-1RSA_PKCS1_OAEP_PADDING.\s0 .SH "CONFORMING TO" .IX Header "CONFORMING TO" \&\s-1SSL, PKCS\s0 #1 v2.0 .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fIrand\fR\|(3), \fIrsa\fR\|(3), \&\fIRSA_size\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" The \fBpadding\fR argument was added in SSLeay 0.8. \s-1RSA_NO_PADDING\s0 is available since SSLeay 0.9.0, \s-1OAEP\s0 was added in OpenSSL 0.9.2b. man3/SSL_CTX_set_cipher_list.3000064400000015665147210533270012126 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_cipher_list 3" .TH SSL_CTX_set_cipher_list 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_cipher_list, SSL_set_cipher_list \- choose list of available SSL_CIPHERs .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_CTX_set_cipher_list(SSL_CTX *ctx, const char *str); \& int SSL_set_cipher_list(SSL *ssl, const char *str); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set_cipher_list()\fR sets the list of available ciphers for \fBctx\fR using the control string \fBstr\fR. The format of the string is described in \fIciphers\fR\|(1). The list of ciphers is inherited by all \&\fBssl\fR objects created from \fBctx\fR. .PP \&\fISSL_set_cipher_list()\fR sets the list of ciphers only for \fBssl\fR. .SH "NOTES" .IX Header "NOTES" The control string \fBstr\fR should be universally usable and not depend on details of the library configuration (ciphers compiled in). Thus no syntax checking takes place. Items that are not recognized, because the corresponding ciphers are not compiled in or because they are mistyped, are simply ignored. Failure is only flagged if no ciphers could be collected at all. .PP It should be noted, that inclusion of a cipher to be used into the list is a necessary condition. On the client side, the inclusion into the list is also sufficient. On the server side, additional restrictions apply. All ciphers have additional requirements. \s-1ADH\s0 ciphers don't need a certificate, but DH-parameters must have been set. All other ciphers need a corresponding certificate and key. .PP A \s-1RSA\s0 cipher can only be chosen, when a \s-1RSA\s0 certificate is available. \&\s-1RSA\s0 export ciphers with a keylength of 512 bits for the \s-1RSA\s0 key require a temporary 512 bit \s-1RSA\s0 key, as typically the supplied key has a length of 1024 bit (see \&\fISSL_CTX_set_tmp_rsa_callback\fR\|(3)). \&\s-1RSA\s0 ciphers using \s-1DHE\s0 need a certificate and key and additional DH-parameters (see \fISSL_CTX_set_tmp_dh_callback\fR\|(3)). .PP A \s-1DSA\s0 cipher can only be chosen, when a \s-1DSA\s0 certificate is available. \&\s-1DSA\s0 ciphers always use \s-1DH\s0 key exchange and therefore need DH-parameters (see \fISSL_CTX_set_tmp_dh_callback\fR\|(3)). .PP When these conditions are not met for any cipher in the list (e.g. a client only supports export \s-1RSA\s0 ciphers with a asymmetric key length of 512 bits and the server is not configured to use temporary \s-1RSA\s0 keys), the \*(L"no shared cipher\*(R" (\s-1SSL_R_NO_SHARED_CIPHER\s0) error is generated and the handshake will fail. .PP If the cipher list does not contain any SSLv2 cipher suites (this is the default) then SSLv2 is effectively disabled and neither clients nor servers will attempt to use SSLv2. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CTX_set_cipher_list()\fR and \fISSL_set_cipher_list()\fR return 1 if any cipher could be selected and 0 on complete failure. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_get_ciphers\fR\|(3), \&\fISSL_CTX_use_certificate\fR\|(3), \&\fISSL_CTX_set_tmp_rsa_callback\fR\|(3), \&\fISSL_CTX_set_tmp_dh_callback\fR\|(3), \&\fIciphers\fR\|(1) man3/PKCS7_sign_add_signer.3000064400000016644147210533270011533 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PKCS7_sign_add_signer 3" .TH PKCS7_sign_add_signer 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" PKCS7_sign_add_signer \- add a signer PKCS7 signed data structure. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& PKCS7_SIGNER_INFO *PKCS7_sign_add_signer(PKCS7 *p7, X509 *signcert, EVP_PKEY *pkey, const EVP_MD *md, int flags); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIPKCS7_sign_add_signer()\fR adds a signer with certificate \fBsigncert\fR and private key \fBpkey\fR using message digest \fBmd\fR to a \s-1PKCS7\s0 signed data structure \&\fBp7\fR. .PP The \s-1PKCS7\s0 structure should be obtained from an initial call to \fIPKCS7_sign()\fR with the flag \fB\s-1PKCS7_PARTIAL\s0\fR set or in the case or re-signing a valid \s-1PKCS7\s0 signed data structure. .PP If the \fBmd\fR parameter is \fB\s-1NULL\s0\fR then the default digest for the public key algorithm will be used. .PP Unless the \fB\s-1PKCS7_REUSE_DIGEST\s0\fR flag is set the returned \s-1PKCS7\s0 structure is not complete and must be finalized either by streaming (if applicable) or a call to \fIPKCS7_final()\fR. .SH "NOTES" .IX Header "NOTES" The main purpose of this function is to provide finer control over a PKCS#7 signed data structure where the simpler \fIPKCS7_sign()\fR function defaults are not appropriate. For example if multiple signers or non default digest algorithms are needed. .PP Any of the following flags (ored together) can be passed in the \fBflags\fR parameter. .PP If \fB\s-1PKCS7_REUSE_DIGEST\s0\fR is set then an attempt is made to copy the content digest value from the \s-1PKCS7\s0 struture: to add a signer to an existing structure. An error occurs if a matching digest value cannot be found to copy. The returned \s-1PKCS7\s0 structure will be valid and finalized when this flag is set. .PP If \fB\s-1PKCS7_PARTIAL\s0\fR is set in addition to \fB\s-1PKCS7_REUSE_DIGEST\s0\fR then the \&\fB\s-1PKCS7_SIGNER_INO\s0\fR structure will not be finalized so additional attributes can be added. In this case an explicit call to \fIPKCS7_SIGNER_INFO_sign()\fR is needed to finalize it. .PP If \fB\s-1PKCS7_NOCERTS\s0\fR is set the signer's certificate will not be included in the \&\s-1PKCS7\s0 structure, the signer's certificate must still be supplied in the \&\fBsigncert\fR parameter though. This can reduce the size of the signature if the signers certificate can be obtained by other means: for example a previously signed message. .PP The signedData structure includes several PKCS#7 autenticatedAttributes including the signing time, the PKCS#7 content type and the supported list of ciphers in an SMIMECapabilities attribute. If \fB\s-1PKCS7_NOATTR\s0\fR is set then no authenticatedAttributes will be used. If \fB\s-1PKCS7_NOSMIMECAP\s0\fR is set then just the SMIMECapabilities are omitted. .PP If present the SMIMECapabilities attribute indicates support for the following algorithms: triple \s-1DES, 128\s0 bit \s-1RC2, 64\s0 bit \s-1RC2, DES\s0 and 40 bit \s-1RC2.\s0 If any of these algorithms is disabled then it will not be included. .PP \&\fIPKCS7_sign_add_signers()\fR returns an internal pointer to the \s-1PKCS7_SIGNER_INFO\s0 structure just added, this can be used to set additional attributes before it is finalized. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIPKCS7_sign_add_signers()\fR returns an internal pointer to the \s-1PKCS7_SIGNER_INFO\s0 structure just added or \s-1NULL\s0 if an error occurs. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fIPKCS7_sign\fR\|(3), \&\fIPKCS7_final\fR\|(3), .SH "HISTORY" .IX Header "HISTORY" \&\fIPPKCS7_sign_add_signer()\fR was added to OpenSSL 1.0.0 man3/SSL_export_keying_material.3000064400000015266147210533270012772 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_export_keying_material 3" .TH SSL_export_keying_material 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_export_keying_material \- obtain keying material for application use .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_export_keying_material(SSL *s, unsigned char *out, size_t olen, \& const char *label, size_t llen, \& const unsigned char *context, \& size_t contextlen, int use_context); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" During the creation of a \s-1TLS\s0 or \s-1DTLS\s0 connection shared keying material is established between the two endpoints. The function \fISSL_export_keying_material()\fR enables an application to use some of this keying material for its own purposes in accordance with \s-1RFC5705.\s0 .PP An application may need to securely establish the context within which this keying material will be used. For example this may include identifiers for the application session, application algorithms or parameters, or the lifetime of the context. The context value is left to the application but must be the same on both sides of the communication. .PP For a given \s-1SSL\s0 connection \fBs\fR, \fBolen\fR bytes of data will be written to \&\fBout\fR. The application specific context should be supplied in the location pointed to by \fBcontext\fR and should be \fBcontextlen\fR bytes long. Provision of a context is optional. If the context should be omitted entirely then \&\fBuse_context\fR should be set to 0. Otherwise it should be any other value. If \&\fBuse_context\fR is 0 then the values of \fBcontext\fR and \fBcontextlen\fR are ignored. Note that a zero length context is treated differently to no context at all, and will result in different keying material being returned. .PP An application specific label should be provided in the location pointed to by \&\fBlabel\fR and should be \fBllen\fR bytes long. Typically this will be a value from the \s-1IANA\s0 Exporter Label Registry (). Alternatively labels beginning with \*(L"\s-1EXPERIMENTAL\*(R"\s0 are permitted by the standard to be used without registration. .PP Note that this function is only defined for TLSv1.0 and above, and DTLSv1.0 and above. Attempting to use it in SSLv3 will result in an error. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_export_keying_material()\fR returns 0 or \-1 on failure or 1 on success. .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2017 The OpenSSL Project Authors. All Rights Reserved. .PP Licensed under the OpenSSL license (the \*(L"License\*(R"). You may not use this file except in compliance with the License. You can obtain a copy in the file \s-1LICENSE\s0 in the source distribution or at . man3/SSL_set_verify_result.3000064400000011712147210533270011772 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_set_verify_result 3" .TH SSL_set_verify_result 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_set_verify_result \- override result of peer certificate verification .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void SSL_set_verify_result(SSL *ssl, long verify_result); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_set_verify_result()\fR sets \fBverify_result\fR of the object \fBssl\fR to be the result of the verification of the X509 certificate presented by the peer, if any. .SH "NOTES" .IX Header "NOTES" \&\fISSL_set_verify_result()\fR overrides the verification result. It only changes the verification result of the \fBssl\fR object. It does not become part of the established session, so if the session is to be reused later, the original value will reappear. .PP The valid codes for \fBverify_result\fR are documented in \fIverify\fR\|(1). .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_set_verify_result()\fR does not provide a return value. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_get_verify_result\fR\|(3), \&\fISSL_get_peer_certificate\fR\|(3), \&\fIverify\fR\|(1) man3/SSL_CTX_set_cert_verify_callback.3000064400000015717147210533270013754 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_cert_verify_callback 3" .TH SSL_CTX_set_cert_verify_callback 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_cert_verify_callback \- set peer certificate verification procedure .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx, int (*callback)(X509_STORE_CTX *,void *), void *arg); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set_cert_verify_callback()\fR sets the verification callback function for \&\fIctx\fR. \s-1SSL\s0 objects that are created from \fIctx\fR inherit the setting valid at the time when \fISSL_new\fR\|(3) is called. .SH "NOTES" .IX Header "NOTES" Whenever a certificate is verified during a \s-1SSL/TLS\s0 handshake, a verification function is called. If the application does not explicitly specify a verification callback function, the built-in verification function is used. If a verification callback \fIcallback\fR is specified via \&\fISSL_CTX_set_cert_verify_callback()\fR, the supplied callback function is called instead. By setting \fIcallback\fR to \s-1NULL,\s0 the default behaviour is restored. .PP When the verification must be performed, \fIcallback\fR will be called with the arguments callback(X509_STORE_CTX *x509_store_ctx, void *arg). The argument \fIarg\fR is specified by the application when setting \fIcallback\fR. .PP \&\fIcallback\fR should return 1 to indicate verification success and 0 to indicate verification failure. If \s-1SSL_VERIFY_PEER\s0 is set and \fIcallback\fR returns 0, the handshake will fail. As the verification procedure may allow to continue the connection in case of failure (by always returning 1) the verification result must be set in any case using the \fBerror\fR member of \fIx509_store_ctx\fR so that the calling application will be informed about the detailed result of the verification procedure! .PP Within \fIx509_store_ctx\fR, \fIcallback\fR has access to the \fIverify_callback\fR function set using \fISSL_CTX_set_verify\fR\|(3). .SH "WARNINGS" .IX Header "WARNINGS" Do not mix the verification callback described in this function with the \&\fBverify_callback\fR function called during the verification process. The latter is set using the \fISSL_CTX_set_verify\fR\|(3) family of functions. .PP Providing a complete verification procedure including certificate purpose settings etc is a complex task. The built-in procedure is quite powerful and in most cases it should be sufficient to modify its behaviour using the \fBverify_callback\fR function. .SH "BUGS" .IX Header "BUGS" .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CTX_set_cert_verify_callback()\fR does not provide diagnostic information. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_CTX_set_verify\fR\|(3), \&\fISSL_get_verify_result\fR\|(3), \&\fISSL_CTX_load_verify_locations\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" Previous to OpenSSL 0.9.7, the \fIarg\fR argument to \fBSSL_CTX_set_cert_verify_callback\fR was ignored, and \fIcallback\fR was called simply as int (*callback)(X509_STORE_CTX *) To compile software written for previous versions of OpenSSL, a dummy argument will have to be added to \fIcallback\fR. man3/RSA_sign.3000064400000014156147210533270007146 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RSA_sign 3" .TH RSA_sign 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" RSA_sign, RSA_verify \- RSA signatures .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int RSA_sign(int type, const unsigned char *m, unsigned int m_len, \& unsigned char *sigret, unsigned int *siglen, RSA *rsa); \& \& int RSA_verify(int type, const unsigned char *m, unsigned int m_len, \& unsigned char *sigbuf, unsigned int siglen, RSA *rsa); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIRSA_sign()\fR signs the message digest \fBm\fR of size \fBm_len\fR using the private key \fBrsa\fR as specified in \s-1PKCS\s0 #1 v2.0. It stores the signature in \fBsigret\fR and the signature size in \fBsiglen\fR. \fBsigret\fR must point to RSA_size(\fBrsa\fR) bytes of memory. Note that \s-1PKCS\s0 #1 adds meta-data, placing limits on the size of the key that can be used. See \fIRSA_private_encrypt\fR\|(3) for lower-level operations. .PP \&\fBtype\fR denotes the message digest algorithm that was used to generate \&\fBm\fR. It usually is one of \fBNID_sha1\fR, \fBNID_ripemd160\fR and \fBNID_md5\fR; see \fIobjects\fR\|(3) for details. If \fBtype\fR is \fBNID_md5_sha1\fR, an \s-1SSL\s0 signature (\s-1MD5\s0 and \s-1SHA1\s0 message digests with \s-1PKCS\s0 #1 padding and no algorithm identifier) is created. .PP \&\fIRSA_verify()\fR verifies that the signature \fBsigbuf\fR of size \fBsiglen\fR matches a given message digest \fBm\fR of size \fBm_len\fR. \fBtype\fR denotes the message digest algorithm that was used to generate the signature. \&\fBrsa\fR is the signer's public key. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIRSA_sign()\fR returns 1 on success, 0 otherwise. \fIRSA_verify()\fR returns 1 on successful verification, 0 otherwise. .PP The error codes can be obtained by \fIERR_get_error\fR\|(3). .SH "BUGS" .IX Header "BUGS" Certain signatures with an improper algorithm identifier are accepted for compatibility with SSLeay 0.4.5 :\-) .SH "CONFORMING TO" .IX Header "CONFORMING TO" \&\s-1SSL, PKCS\s0 #1 v2.0 .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fIobjects\fR\|(3), \&\fIrsa\fR\|(3), \fIRSA_private_encrypt\fR\|(3), \&\fIRSA_public_decrypt\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIRSA_sign()\fR and \fIRSA_verify()\fR are available in all versions of SSLeay and OpenSSL. man3/CMS_sign.3000064400000022646147210533270007146 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CMS_sign 3" .TH CMS_sign 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" .Vb 1 \& CMS_sign \- create a CMS SignedData structure .Ve .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, unsigned int flags); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fICMS_sign()\fR creates and returns a \s-1CMS\s0 SignedData structure. \fBsigncert\fR is the certificate to sign with, \fBpkey\fR is the corresponding private key. \&\fBcerts\fR is an optional additional set of certificates to include in the \s-1CMS\s0 structure (for example any intermediate CAs in the chain). Any or all of these parameters can be \fB\s-1NULL\s0\fR, see \fB\s-1NOTES\s0\fR below. .PP The data to be signed is read from \s-1BIO \s0\fBdata\fR. .PP \&\fBflags\fR is an optional set of flags. .SH "NOTES" .IX Header "NOTES" Any of the following flags (ored together) can be passed in the \fBflags\fR parameter. .PP Many S/MIME clients expect the signed content to include valid \s-1MIME\s0 headers. If the \fB\s-1CMS_TEXT\s0\fR flag is set \s-1MIME\s0 headers for type \fBtext/plain\fR are prepended to the data. .PP If \fB\s-1CMS_NOCERTS\s0\fR is set the signer's certificate will not be included in the CMS_ContentInfo structure, the signer's certificate must still be supplied in the \fBsigncert\fR parameter though. This can reduce the size of the signature if the signers certificate can be obtained by other means: for example a previously signed message. .PP The data being signed is included in the CMS_ContentInfo structure, unless \&\fB\s-1CMS_DETACHED\s0\fR is set in which case it is omitted. This is used for CMS_ContentInfo detached signatures which are used in S/MIME plaintext signed messages for example. .PP Normally the supplied content is translated into \s-1MIME\s0 canonical format (as required by the S/MIME specifications) if \fB\s-1CMS_BINARY\s0\fR is set no translation occurs. This option should be used if the supplied data is in binary format otherwise the translation will corrupt it. .PP The SignedData structure includes several \s-1CMS\s0 signedAttributes including the signing time, the \s-1CMS\s0 content type and the supported list of ciphers in an SMIMECapabilities attribute. If \fB\s-1CMS_NOATTR\s0\fR is set then no signedAttributes will be used. If \fB\s-1CMS_NOSMIMECAP\s0\fR is set then just the SMIMECapabilities are omitted. .PP If present the SMIMECapabilities attribute indicates support for the following algorithms in preference order: 256 bit \s-1AES,\s0 Gost R3411\-94, Gost 28147\-89, 192 bit \s-1AES, 128\s0 bit \s-1AES,\s0 triple \s-1DES, 128\s0 bit \s-1RC2, 64\s0 bit \s-1RC2, DES\s0 and 40 bit \s-1RC2.\s0 If any of these algorithms is not available then it will not be included: for example the \s-1GOST\s0 algorithms will not be included if the \s-1GOST ENGINE\s0 is not loaded. .PP OpenSSL will by default identify signing certificates using issuer name and serial number. If \fB\s-1CMS_USE_KEYID\s0\fR is set it will use the subject key identifier value instead. An error occurs if the signing certificate does not have a subject key identifier extension. .PP If the flags \fB\s-1CMS_STREAM\s0\fR is set then the returned \fBCMS_ContentInfo\fR structure is just initialized ready to perform the signing operation. The signing is however \fBnot\fR performed and the data to be signed is not read from the \fBdata\fR parameter. Signing is deferred until after the data has been written. In this way data can be signed in a single pass. .PP If the \fB\s-1CMS_PARTIAL\s0\fR flag is set a partial \fBCMS_ContentInfo\fR structure is output to which additional signers and capabilities can be added before finalization. .PP If the flag \fB\s-1CMS_STREAM\s0\fR is set the returned \fBCMS_ContentInfo\fR structure is \&\fBnot\fR complete and outputting its contents via a function that does not properly finalize the \fBCMS_ContentInfo\fR structure will give unpredictable results. .PP Several functions including \fISMIME_write_CMS()\fR, \fIi2d_CMS_bio_stream()\fR, \&\fIPEM_write_bio_CMS_stream()\fR finalize the structure. Alternatively finalization can be performed by obtaining the streaming \s-1ASN1 \s0\fB\s-1BIO\s0\fR directly using \&\fIBIO_new_CMS()\fR. .PP If a signer is specified it will use the default digest for the signing algorithm. This is \fB\s-1SHA1\s0\fR for both \s-1RSA\s0 and \s-1DSA\s0 keys. .PP If \fBsigncert\fR and \fBpkey\fR are \s-1NULL\s0 then a certificates only \s-1CMS\s0 structure is output. .PP The function \fICMS_sign()\fR is a basic \s-1CMS\s0 signing function whose output will be suitable for many purposes. For finer control of the output format the \&\fBcerts\fR, \fBsigncert\fR and \fBpkey\fR parameters can all be \fB\s-1NULL\s0\fR and the \&\fB\s-1CMS_PARTIAL\s0\fR flag set. Then one or more signers can be added using the function \fICMS_sign_add1_signer()\fR, non default digests can be used and custom attributes added. \fB\f(BICMS_final()\fB\fR must then be called to finalize the structure if streaming is not enabled. .SH "BUGS" .IX Header "BUGS" Some attributes such as counter signatures are not supported. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fICMS_sign()\fR returns either a valid CMS_ContentInfo structure or \s-1NULL\s0 if an error occurred. The error can be obtained from \fIERR_get_error\fR\|(3). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fICMS_verify\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fICMS_sign()\fR was added to OpenSSL 0.9.8 .PP The \fB\s-1CMS_STREAM\s0\fR flag is only supported for detached data in OpenSSL 0.9.8, it is supported for embedded data in OpenSSL 1.0.0 and later. man3/SSL_CTX_set_mode.3000064400000017262147210533270010540 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_mode 3" .TH SSL_CTX_set_mode 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_mode, SSL_set_mode, SSL_CTX_get_mode, SSL_get_mode \- manipulate SSL engine mode .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& long SSL_CTX_set_mode(SSL_CTX *ctx, long mode); \& long SSL_set_mode(SSL *ssl, long mode); \& \& long SSL_CTX_get_mode(SSL_CTX *ctx); \& long SSL_get_mode(SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set_mode()\fR adds the mode set via bitmask in \fBmode\fR to \fBctx\fR. Options already set before are not cleared. .PP \&\fISSL_set_mode()\fR adds the mode set via bitmask in \fBmode\fR to \fBssl\fR. Options already set before are not cleared. .PP \&\fISSL_CTX_get_mode()\fR returns the mode set for \fBctx\fR. .PP \&\fISSL_get_mode()\fR returns the mode set for \fBssl\fR. .SH "NOTES" .IX Header "NOTES" The following mode changes are available: .IP "\s-1SSL_MODE_ENABLE_PARTIAL_WRITE\s0" 4 .IX Item "SSL_MODE_ENABLE_PARTIAL_WRITE" Allow SSL_write(..., n) to return r with 0 < r < n (i.e. report success when just a single record has been written). When not set (the default), \&\fISSL_write()\fR will only report success once the complete chunk was written. Once \fISSL_write()\fR returns with r, r bytes have been successfully written and the next call to \fISSL_write()\fR must only send the n\-r bytes left, imitating the behaviour of \fIwrite()\fR. .IP "\s-1SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER\s0" 4 .IX Item "SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER" Make it possible to retry \fISSL_write()\fR with changed buffer location (the buffer contents must stay the same). This is not the default to avoid the misconception that non-blocking \fISSL_write()\fR behaves like non-blocking \fIwrite()\fR. .IP "\s-1SSL_MODE_AUTO_RETRY\s0" 4 .IX Item "SSL_MODE_AUTO_RETRY" Never bother the application with retries if the transport is blocking. If a renegotiation take place during normal operation, a \&\fISSL_read\fR\|(3) or \fISSL_write\fR\|(3) would return with \-1 and indicate the need to retry with \s-1SSL_ERROR_WANT_READ.\s0 In a non-blocking environment applications must be prepared to handle incomplete read/write operations. In a blocking environment, applications are not always prepared to deal with read/write operations returning without success report. The flag \s-1SSL_MODE_AUTO_RETRY\s0 will cause read/write operations to only return after the handshake and successful completion. .IP "\s-1SSL_MODE_RELEASE_BUFFERS\s0" 4 .IX Item "SSL_MODE_RELEASE_BUFFERS" When we no longer need a read buffer or a write buffer for a given \s-1SSL,\s0 then release the memory we were using to hold it. Released memory is either appended to a list of unused \s-1RAM\s0 chunks on the \s-1SSL_CTX,\s0 or simply freed if the list of unused chunks would become longer than \&\s-1SSL_CTX\-\s0>freelist_max_len, which defaults to 32. Using this flag can save around 34k per idle \s-1SSL\s0 connection. This flag has no effect on \s-1SSL\s0 v2 connections, or on \s-1DTLS\s0 connections. .IP "\s-1SSL_MODE_SEND_FALLBACK_SCSV\s0" 4 .IX Item "SSL_MODE_SEND_FALLBACK_SCSV" Send \s-1TLS_FALLBACK_SCSV\s0 in the ClientHello. To be set only by applications that reconnect with a downgraded protocol version; see draft\-ietf\-tls\-downgrade\-scsv\-00 for details. .Sp \&\s-1DO NOT ENABLE THIS\s0 if your application attempts a normal handshake. Only use this in explicit fallback retries, following the guidance in draft\-ietf\-tls\-downgrade\-scsv\-00. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CTX_set_mode()\fR and \fISSL_set_mode()\fR return the new mode bitmask after adding \fBmode\fR. .PP \&\fISSL_CTX_get_mode()\fR and \fISSL_get_mode()\fR return the current bitmask. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_read\fR\|(3), \fISSL_write\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\s-1SSL_MODE_AUTO_RETRY\s0 as been added in OpenSSL 0.9.6. man3/SSL_get_version.3000064400000011674147210533270010550 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_get_version 3" .TH SSL_get_version 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_get_version \- get the protocol version of a connection. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& const char *SSL_get_version(const SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_get_version()\fR returns the name of the protocol used for the connection \fBssl\fR. It should only be called after the initial handshake has been completed. Prior to that the results returned from this function may be unreliable. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following strings can be returned: .IP "SSLv2" 4 .IX Item "SSLv2" The connection uses the SSLv2 protocol. .IP "SSLv3" 4 .IX Item "SSLv3" The connection uses the SSLv3 protocol. .IP "TLSv1" 4 .IX Item "TLSv1" The connection uses the TLSv1.0 protocol. .IP "TLSv1.1" 4 .IX Item "TLSv1.1" The connection uses the TLSv1.1 protocol. .IP "TLSv1.2" 4 .IX Item "TLSv1.2" The connection uses the TLSv1.2 protocol. .IP "unknown" 4 .IX Item "unknown" This indicates an unknown protocol version. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3) man3/PKCS7_decrypt.3000064400000013344147210533270010060 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PKCS7_decrypt 3" .TH PKCS7_decrypt 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" PKCS7_decrypt \- decrypt content from a PKCS#7 envelopedData structure .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, int flags); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIPKCS7_decrypt()\fR extracts and decrypts the content from a PKCS#7 envelopedData structure. \fBpkey\fR is the private key of the recipient, \fBcert\fR is the recipients certificate, \fBdata\fR is a \s-1BIO\s0 to write the content to and \&\fBflags\fR is an optional set of flags. .SH "NOTES" .IX Header "NOTES" \&\fIOpenSSL_add_all_algorithms()\fR (or equivalent) should be called before using this function or errors about unknown algorithms will occur. .PP Although the recipients certificate is not needed to decrypt the data it is needed to locate the appropriate (of possible several) recipients in the PKCS#7 structure. .PP The following flags can be passed in the \fBflags\fR parameter. .PP If the \fB\s-1PKCS7_TEXT\s0\fR flag is set \s-1MIME\s0 headers for type \fBtext/plain\fR are deleted from the content. If the content is not of type \fBtext/plain\fR then an error is returned. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIPKCS7_decrypt()\fR returns either 1 for success or 0 for failure. The error can be obtained from \fIERR_get_error\fR\|(3) .SH "BUGS" .IX Header "BUGS" \&\fIPKCS7_decrypt()\fR must be passed the correct recipient key and certificate. It would be better if it could look up the correct key and certificate from a database. .PP The lack of single pass processing and need to hold all data in memory as mentioned in \fIPKCS7_sign()\fR also applies to \fIPKCS7_verify()\fR. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fIPKCS7_encrypt\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIPKCS7_decrypt()\fR was added to OpenSSL 0.9.5 man3/SSL_write.3000064400000020306147210533270007346 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_write 3" .TH SSL_write 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_write \- write bytes to a TLS/SSL connection. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_write(SSL *ssl, const void *buf, int num); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_write()\fR writes \fBnum\fR bytes from the buffer \fBbuf\fR into the specified \&\fBssl\fR connection. .SH "NOTES" .IX Header "NOTES" If necessary, \fISSL_write()\fR will negotiate a \s-1TLS/SSL\s0 session, if not already explicitly performed by \fISSL_connect\fR\|(3) or \&\fISSL_accept\fR\|(3). If the peer requests a re-negotiation, it will be performed transparently during the \fISSL_write()\fR operation. The behaviour of \fISSL_write()\fR depends on the underlying \s-1BIO. \s0 .PP For the transparent negotiation to succeed, the \fBssl\fR must have been initialized to client or server mode. This is being done by calling \&\fISSL_set_connect_state\fR\|(3) or \fISSL_set_accept_state()\fR before the first call to an \fISSL_read\fR\|(3) or \fISSL_write()\fR function. .PP If the underlying \s-1BIO\s0 is \fBblocking\fR, \fISSL_write()\fR will only return, once the write operation has been finished or an error occurred, except when a renegotiation take place, in which case a \s-1SSL_ERROR_WANT_READ\s0 may occur. This behaviour can be controlled with the \s-1SSL_MODE_AUTO_RETRY\s0 flag of the \&\fISSL_CTX_set_mode\fR\|(3) call. .PP If the underlying \s-1BIO\s0 is \fBnon-blocking\fR, \fISSL_write()\fR will also return, when the underlying \s-1BIO\s0 could not satisfy the needs of \fISSL_write()\fR to continue the operation. In this case a call to \&\fISSL_get_error\fR\|(3) with the return value of \fISSL_write()\fR will yield \fB\s-1SSL_ERROR_WANT_READ\s0\fR or \&\fB\s-1SSL_ERROR_WANT_WRITE\s0\fR. As at any time a re-negotiation is possible, a call to \fISSL_write()\fR can also cause read operations! The calling process then must repeat the call after taking appropriate action to satisfy the needs of \fISSL_write()\fR. The action depends on the underlying \s-1BIO.\s0 When using a non-blocking socket, nothing is to be done, but \fIselect()\fR can be used to check for the required condition. When using a buffering \s-1BIO,\s0 like a \s-1BIO\s0 pair, data must be written into or retrieved out of the \s-1BIO\s0 before being able to continue. .PP \&\fISSL_write()\fR will only return with success, when the complete contents of \fBbuf\fR of length \fBnum\fR has been written. This default behaviour can be changed with the \s-1SSL_MODE_ENABLE_PARTIAL_WRITE\s0 option of \&\fISSL_CTX_set_mode\fR\|(3). When this flag is set, \&\fISSL_write()\fR will also return with success, when a partial write has been successfully completed. In this case the \fISSL_write()\fR operation is considered completed. The bytes are sent and a new \fISSL_write()\fR operation with a new buffer (with the already sent bytes removed) must be started. A partial write is performed with the size of a message block, which is 16kB for SSLv3/TLSv1. .SH "WARNING" .IX Header "WARNING" When an \fISSL_write()\fR operation has to be repeated because of \&\fB\s-1SSL_ERROR_WANT_READ\s0\fR or \fB\s-1SSL_ERROR_WANT_WRITE\s0\fR, it must be repeated with the same arguments. .PP When calling \fISSL_write()\fR with num=0 bytes to be sent the behaviour is undefined. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following return values can occur: .IP "> 0" 4 .IX Item "> 0" The write operation was successful, the return value is the number of bytes actually written to the \s-1TLS/SSL\s0 connection. .IP "<= 0" 4 .IX Item "<= 0" The write operation was not successful, because either the connection was closed, an error occurred or action must be taken by the calling process. Call \fISSL_get_error()\fR with the return value \fBret\fR to find out the reason. .Sp SSLv2 (deprecated) does not support a shutdown alert protocol, so it can only be detected, whether the underlying connection was closed. It cannot be checked, why the closure happened. .Sp Old documentation indicated a difference between 0 and \-1, and that \-1 was retryable. You should instead call \fISSL_get_error()\fR to find out if it's retryable. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_get_error\fR\|(3), \fISSL_read\fR\|(3), \&\fISSL_CTX_set_mode\fR\|(3), \fISSL_CTX_new\fR\|(3), \&\fISSL_connect\fR\|(3), \fISSL_accept\fR\|(3) \&\fISSL_set_connect_state\fR\|(3), \&\fIssl\fR\|(3), \fIbio\fR\|(3) man3/i2d_PKCS7_bio_stream.3000064400000011770147210533270011271 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "i2d_PKCS7_bio_stream 3" .TH i2d_PKCS7_bio_stream 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" i2d_PKCS7_bio_stream \- output PKCS7 structure in BER format. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *data, int flags); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIi2d_PKCS7_bio_stream()\fR outputs a \s-1PKCS7\s0 structure in \s-1BER\s0 format. .PP It is otherwise identical to the function \fISMIME_write_PKCS7()\fR. .SH "NOTES" .IX Header "NOTES" This function is effectively a version of the \fId2i_PKCS7_bio()\fR supporting streaming. .SH "BUGS" .IX Header "BUGS" The prefix \*(L"i2d\*(R" is arguably wrong because the function outputs \s-1BER\s0 format. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIi2d_PKCS7_bio_stream()\fR returns 1 for success or 0 for failure. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fIPKCS7_sign\fR\|(3), \&\fIPKCS7_verify\fR\|(3), \fIPKCS7_encrypt\fR\|(3) \&\fIPKCS7_decrypt\fR\|(3), \&\fISMIME_write_PKCS7\fR\|(3), \&\fIPEM_write_bio_PKCS7_stream\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIi2d_PKCS7_bio_stream()\fR was added to OpenSSL 1.0.0 man3/SSL_check_chain.3000064400000016120147210533270010432 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_check_chain 3" .TH SSL_check_chain 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_check_chain \- check certificate chain suitability .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_check_chain(SSL *s, X509 *x, EVP_PKEY *pk, STACK_OF(X509) *chain); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_check_chain()\fR checks whether certificate \fBx\fR, private key \fBpk\fR and certificate chain \fBchain\fR is suitable for use with the current session \&\fBs\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_check_chain()\fR returns a bitmap of flags indicating the validity of the chain. .PP \&\fB\s-1CERT_PKEY_VALID\s0\fR: the chain can be used with the current session. If this flag is \fBnot\fR set then the certificate will never be used even if the application tries to set it because it is inconsistent with the peer preferences. .PP \&\fB\s-1CERT_PKEY_SIGN\s0\fR: the \s-1EE\s0 key can be used for signing. .PP \&\fB\s-1CERT_PKEY_EE_SIGNATURE\s0\fR: the signature algorithm of the \s-1EE\s0 certificate is acceptable. .PP \&\fB\s-1CERT_PKEY_CA_SIGNATURE\s0\fR: the signature algorithms of all \s-1CA\s0 certificates are acceptable. .PP \&\fB\s-1CERT_PKEY_EE_PARAM\s0\fR: the parameters of the end entity certificate are acceptable (e.g. it is a supported curve). .PP \&\fB\s-1CERT_PKEY_CA_PARAM\s0\fR: the parameters of all \s-1CA\s0 certificates are acceptable. .PP \&\fB\s-1CERT_PKEY_EXPLICIT_SIGN\s0\fR: the end entity certificate algorithm can be used explicitly for signing (i.e. it is mentioned in the signature algorithms extension). .PP \&\fB\s-1CERT_PKEY_ISSUER_NAME\s0\fR: the issuer name is acceptable. This is only meaningful for client authentication. .PP \&\fB\s-1CERT_PKEY_CERT_TYPE\s0\fR: the certificate type is acceptable. Only meaningful for client authentication. .PP \&\fB\s-1CERT_PKEY_SUITEB\s0\fR: chain is suitable for Suite B use. .SH "NOTES" .IX Header "NOTES" \&\fISSL_check_chain()\fR must be called in servers after a client hello message or in clients after a certificate request message. It will typically be called in the certificate callback. .PP An application wishing to support multiple certificate chains may call this function on each chain in turn: starting with the one it considers the most secure. It could then use the chain of the first set which returns suitable flags. .PP As a minimum the flag \fB\s-1CERT_PKEY_VALID\s0\fR must be set for a chain to be usable. An application supporting multiple chains with different \s-1CA\s0 signature algorithms may also wish to check \fB\s-1CERT_PKEY_CA_SIGNATURE\s0\fR too. If no chain is suitable a server should fall back to the most secure chain which sets \fB\s-1CERT_PKEY_VALID\s0\fR. .PP The validity of a chain is determined by checking if it matches a supported signature algorithm, supported curves and in the case of client authentication certificate types and issuer names. .PP Since the supported signature algorithms extension is only used in \s-1TLS 1.2\s0 and \s-1DTLS 1.2\s0 the results for earlier versions of \s-1TLS\s0 and \s-1DTLS\s0 may not be very useful. Applications may wish to specify a different \*(L"legacy\*(R" chain for earlier versions of \s-1TLS\s0 or \s-1DTLS.\s0 .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_CTX_set_cert_cb\fR\|(3), \&\fIssl\fR\|(3) man3/CMS_final.3000064400000012137147210533270007271 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CMS_final 3" .TH CMS_final 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" .Vb 1 \& CMS_final \- finalise a CMS_ContentInfo structure .Ve .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, unsigned int flags); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fICMS_final()\fR finalises the structure \fBcms\fR. It's purpose is to perform any operations necessary on \fBcms\fR (digest computation for example) and set the appropriate fields. The parameter \fBdata\fR contains the content to be processed. The \fBdcont\fR parameter contains a \s-1BIO\s0 to write content to after processing: this is only used with detached data and will usually be set to \&\s-1NULL.\s0 .SH "NOTES" .IX Header "NOTES" This function will normally be called when the \fB\s-1CMS_PARTIAL\s0\fR flag is used. It should only be used when streaming is not performed because the streaming I/O functions perform finalisation operations internally. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fICMS_final()\fR returns 1 for success or 0 for failure. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIERR_get_error\fR\|(3), \fICMS_sign\fR\|(3), \&\fICMS_encrypt\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fICMS_final()\fR was added to OpenSSL 0.9.8 man3/SSL_CTX_set_timeout.3000064400000013567147210533270011306 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_timeout 3" .TH SSL_CTX_set_timeout 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_timeout, SSL_CTX_get_timeout \- manipulate timeout values for session caching .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& long SSL_CTX_set_timeout(SSL_CTX *ctx, long t); \& long SSL_CTX_get_timeout(SSL_CTX *ctx); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set_timeout()\fR sets the timeout for newly created sessions for \&\fBctx\fR to \fBt\fR. The timeout value \fBt\fR must be given in seconds. .PP \&\fISSL_CTX_get_timeout()\fR returns the currently set timeout value for \fBctx\fR. .SH "NOTES" .IX Header "NOTES" Whenever a new session is created, it is assigned a maximum lifetime. This lifetime is specified by storing the creation time of the session and the timeout value valid at this time. If the actual time is later than creation time plus timeout, the session is not reused. .PP Due to this realization, all sessions behave according to the timeout value valid at the time of the session negotiation. Changes of the timeout value do not affect already established sessions. .PP The expiration time of a single session can be modified using the \&\fISSL_SESSION_get_time\fR\|(3) family of functions. .PP Expired sessions are removed from the internal session cache, whenever \&\fISSL_CTX_flush_sessions\fR\|(3) is called, either directly by the application or automatically (see \&\fISSL_CTX_set_session_cache_mode\fR\|(3)) .PP The default value for session timeout is decided on a per protocol basis, see \fISSL_get_default_timeout\fR\|(3). All currently supported protocols have the same default timeout value of 300 seconds. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CTX_set_timeout()\fR returns the previously set timeout value. .PP \&\fISSL_CTX_get_timeout()\fR returns the currently set timeout value. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \&\fISSL_CTX_set_session_cache_mode\fR\|(3), \&\fISSL_SESSION_get_time\fR\|(3), \&\fISSL_CTX_flush_sessions\fR\|(3), \&\fISSL_get_default_timeout\fR\|(3) man3/DH_generate_parameters.3000064400000015440147210533270012066 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DH_generate_parameters 3" .TH DH_generate_parameters 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" DH_generate_parameters_ex, DH_generate_parameters, DH_check \- generate and check Diffie\-Hellman parameters .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int DH_generate_parameters_ex(DH *dh, int prime_len,int generator, BN_GENCB *cb); \& \& int DH_check(DH *dh, int *codes); .Ve .PP Deprecated: .PP .Vb 2 \& DH *DH_generate_parameters(int prime_len, int generator, \& void (*callback)(int, int, void *), void *cb_arg); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIDH_generate_parameters_ex()\fR generates Diffie-Hellman parameters that can be shared among a group of users, and stores them in the provided \fB\s-1DH\s0\fR structure. The pseudo-random number generator must be seeded prior to calling \fIDH_generate_parameters()\fR. .PP \&\fBprime_len\fR is the length in bits of the safe prime to be generated. \&\fBgenerator\fR is a small number > 1, typically 2 or 5. .PP A callback function may be used to provide feedback about the progress of the key generation. If \fBcb\fR is not \fB\s-1NULL\s0\fR, it will be called as described in \fIBN_generate_prime\fR\|(3) while a random prime number is generated, and when a prime has been found, \fBBN_GENCB_call(cb, 3, 0)\fR is called. See \fIBN_generate_prime\fR\|(3) for information on the \fIBN_GENCB_call()\fR function. .PP \&\fIDH_check()\fR validates Diffie-Hellman parameters. It checks that \fBp\fR is a safe prime, and that \fBg\fR is a suitable generator. In the case of an error, the bit flags \s-1DH_CHECK_P_NOT_SAFE_PRIME\s0 or \&\s-1DH_NOT_SUITABLE_GENERATOR\s0 are set in \fB*codes\fR. \&\s-1DH_UNABLE_TO_CHECK_GENERATOR\s0 is set if the generator cannot be checked, i.e. it does not equal 2 or 5. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIDH_generate_parameters_ex()\fR and \fIDH_check()\fR return 1 if the check could be performed, 0 otherwise. .PP \&\fIDH_generate_parameters()\fR (deprecated) returns a pointer to the \s-1DH\s0 structure, or \&\s-1NULL\s0 if the parameter generation fails. .PP The error codes can be obtained by \fIERR_get_error\fR\|(3). .SH "NOTES" .IX Header "NOTES" \&\fIDH_generate_parameters_ex()\fR and \fIDH_generate_parameters()\fR may run for several hours before finding a suitable prime. .PP The parameters generated by \fIDH_generate_parameters_ex()\fR and \fIDH_generate_parameters()\fR are not to be used in signature schemes. .SH "BUGS" .IX Header "BUGS" If \fBgenerator\fR is not 2 or 5, \fBdh\->g\fR=\fBgenerator\fR is not a usable generator. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdh\fR\|(3), \fIERR_get_error\fR\|(3), \fIrand\fR\|(3), \&\fIDH_free\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIDH_check()\fR is available in all versions of SSLeay and OpenSSL. The \fBcb_arg\fR argument to \fIDH_generate_parameters()\fR was added in SSLeay 0.9.0. .PP In versions before OpenSSL 0.9.5, \s-1DH_CHECK_P_NOT_STRONG_PRIME\s0 is used instead of \s-1DH_CHECK_P_NOT_SAFE_PRIME.\s0 man3/BIO_f_null.3000064400000011237147210533270007446 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BIO_f_null 3" .TH BIO_f_null 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BIO_f_null \- null filter .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& BIO_METHOD * BIO_f_null(void); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBIO_f_null()\fR returns the null filter \s-1BIO\s0 method. This is a filter \s-1BIO\s0 that does nothing. .PP All requests to a null filter \s-1BIO\s0 are passed through to the next \s-1BIO\s0 in the chain: this means that a \s-1BIO\s0 chain containing a null filter \s-1BIO\s0 behaves just as though the \s-1BIO\s0 was not there. .SH "NOTES" .IX Header "NOTES" As may be apparent a null filter \s-1BIO\s0 is not particularly useful. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBIO_f_null()\fR returns the null filter \s-1BIO\s0 method. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\s-1TBA\s0 man3/X509_cmp_time.3000064400000012100147210533270010006 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "X509_cmp_time 3" .TH X509_cmp_time 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" X509_cmp_time \- X509 time functions .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& X509_cmp_time(const ASN1_TIME *asn1_time, time_t *cmp_time); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIX509_cmp_time()\fR compares the \s-1ASN1_TIME\s0 in \fBasn1_time\fR with the time in . .PP \&\fBasn1_time\fR must satisfy the \s-1ASN1_TIME\s0 format mandated by \s-1RFC 5280,\s0 i.e., its format must be either \s-1YYMMDDHHMMSSZ\s0 or \s-1YYYYMMDDHHMMSSZ.\s0 .PP If \fBcmp_time\fR is \s-1NULL\s0 the current time is used. .SH "BUGS" .IX Header "BUGS" Unlike many standard comparison functions, X509_cmp_time returns 0 on error. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIX509_cmp_time()\fR returns \-1 if \fBasn1_time\fR is earlier than, or equal to, \&\fBcmp_time\fR, and 1 otherwise. It returns 0 on error. .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2017\-2019 The OpenSSL Project Authors. All Rights Reserved. .PP Licensed under the OpenSSL license (the \*(L"License\*(R"). You may not use this file except in compliance with the License. You can obtain a copy in the file \s-1LICENSE\s0 in the source distribution or at . man3/SSL_set_connect_state.3000064400000013373147210533270011726 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_set_connect_state 3" .TH SSL_set_connect_state 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_set_connect_state, SSL_get_accept_state \- prepare SSL object to work in client or server mode .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void SSL_set_connect_state(SSL *ssl); \& \& void SSL_set_accept_state(SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_set_connect_state()\fR sets \fBssl\fR to work in client mode. .PP \&\fISSL_set_accept_state()\fR sets \fBssl\fR to work in server mode. .SH "NOTES" .IX Header "NOTES" When the \s-1SSL_CTX\s0 object was created with \fISSL_CTX_new\fR\|(3), it was either assigned a dedicated client method, a dedicated server method, or a generic method, that can be used for both client and server connections. (The method might have been changed with \&\fISSL_CTX_set_ssl_version\fR\|(3) or \&\fISSL_set_ssl_method\fR\|(3).) .PP When beginning a new handshake, the \s-1SSL\s0 engine must know whether it must call the connect (client) or accept (server) routines. Even though it may be clear from the method chosen, whether client or server mode was requested, the handshake routines must be explicitly set. .PP When using the \fISSL_connect\fR\|(3) or \&\fISSL_accept\fR\|(3) routines, the correct handshake routines are automatically set. When performing a transparent negotiation using \fISSL_write\fR\|(3) or \fISSL_read\fR\|(3), the handshake routines must be explicitly set in advance using either \&\fISSL_set_connect_state()\fR or \fISSL_set_accept_state()\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_set_connect_state()\fR and \fISSL_set_accept_state()\fR do not return diagnostic information. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_new\fR\|(3), \fISSL_CTX_new\fR\|(3), \&\fISSL_connect\fR\|(3), \fISSL_accept\fR\|(3), \&\fISSL_write\fR\|(3), \fISSL_read\fR\|(3), \&\fISSL_do_handshake\fR\|(3), \&\fISSL_CTX_set_ssl_version\fR\|(3) man3/BIO_push.3000064400000014174147210533270007151 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BIO_push 3" .TH BIO_push 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BIO_push, BIO_pop \- add and remove BIOs from a chain. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& BIO * BIO_push(BIO *b,BIO *append); \& BIO * BIO_pop(BIO *b); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fIBIO_push()\fR function appends the \s-1BIO \s0\fBappend\fR to \fBb\fR, it returns \&\fBb\fR. .PP \&\fIBIO_pop()\fR removes the \s-1BIO \s0\fBb\fR from a chain and returns the next \s-1BIO\s0 in the chain, or \s-1NULL\s0 if there is no next \s-1BIO.\s0 The removed \s-1BIO\s0 then becomes a single \s-1BIO\s0 with no association with the original chain, it can thus be freed or attached to a different chain. .SH "NOTES" .IX Header "NOTES" The names of these functions are perhaps a little misleading. \fIBIO_push()\fR joins two \s-1BIO\s0 chains whereas \fIBIO_pop()\fR deletes a single \s-1BIO\s0 from a chain, the deleted \s-1BIO\s0 does not need to be at the end of a chain. .PP The process of calling \fIBIO_push()\fR and \fIBIO_pop()\fR on a \s-1BIO\s0 may have additional consequences (a control call is made to the affected BIOs) any effects will be noted in the descriptions of individual BIOs. .SH "EXAMPLES" .IX Header "EXAMPLES" For these examples suppose \fBmd1\fR and \fBmd2\fR are digest BIOs, \fBb64\fR is a base64 \s-1BIO\s0 and \fBf\fR is a file \s-1BIO.\s0 .PP If the call: .PP .Vb 1 \& BIO_push(b64, f); .Ve .PP is made then the new chain will be \fBb64\-f\fR. After making the calls .PP .Vb 2 \& BIO_push(md2, b64); \& BIO_push(md1, md2); .Ve .PP the new chain is \fBmd1\-md2\-b64\-f\fR. Data written to \fBmd1\fR will be digested by \fBmd1\fR and \fBmd2\fR, \fBbase64\fR encoded and written to \fBf\fR. .PP It should be noted that reading causes data to pass in the reverse direction, that is data is read from \fBf\fR, base64 \fBdecoded\fR and digested by \fBmd1\fR and \fBmd2\fR. If the call: .PP .Vb 1 \& BIO_pop(md2); .Ve .PP The call will return \fBb64\fR and the new chain will be \fBmd1\-b64\-f\fR data can be written to \fBmd1\fR as before. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBIO_push()\fR returns the end of the chain, \fBb\fR. .PP \&\fIBIO_pop()\fR returns the next \s-1BIO\s0 in the chain, or \s-1NULL\s0 if there is no next \&\s-1BIO.\s0 .SH "SEE ALSO" .IX Header "SEE ALSO" \&\s-1TBA\s0 man3/SSL_CTX_set_default_passwd_cb.3000064400000015627147210533270013270 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CTX_set_default_passwd_cb 3" .TH SSL_CTX_set_default_passwd_cb 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CTX_set_default_passwd_cb, SSL_CTX_set_default_passwd_cb_userdata \- set passwd callback for encrypted PEM file handling .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb); \& void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u); \& \& int pem_passwd_cb(char *buf, int size, int rwflag, void *userdata); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_CTX_set_default_passwd_cb()\fR sets the default password callback called when loading/storing a \s-1PEM\s0 certificate with encryption. .PP \&\fISSL_CTX_set_default_passwd_cb_userdata()\fR sets a pointer to \fBuserdata\fR which will be provided to the password callback on invocation. .PP The \fIpem_passwd_cb()\fR, which must be provided by the application, hands back the password to be used during decryption. On invocation a pointer to \fBuserdata\fR is provided. The pem_passwd_cb must write the password into the provided buffer \&\fBbuf\fR which is of size \fBsize\fR. The actual length of the password must be returned to the calling function. \fBrwflag\fR indicates whether the callback is used for reading/decryption (rwflag=0) or writing/encryption (rwflag=1). .SH "NOTES" .IX Header "NOTES" When loading or storing private keys, a password might be supplied to protect the private key. The way this password can be supplied may depend on the application. If only one private key is handled, it can be practical to have \fIpem_passwd_cb()\fR handle the password dialog interactively. If several keys have to be handled, it can be practical to ask for the password once, then keep it in memory and use it several times. In the last case, the password could be stored into the \fBuserdata\fR storage and the \&\fIpem_passwd_cb()\fR only returns the password already stored. .PP When asking for the password interactively, \fIpem_passwd_cb()\fR can use \&\fBrwflag\fR to check, whether an item shall be encrypted (rwflag=1). In this case the password dialog may ask for the same password twice for comparison in order to catch typos, that would make decryption impossible. .PP Other items in \s-1PEM\s0 formatting (certificates) can also be encrypted, it is however not usual, as certificate information is considered public. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CTX_set_default_passwd_cb()\fR and \fISSL_CTX_set_default_passwd_cb_userdata()\fR do not provide diagnostic information. .SH "EXAMPLES" .IX Header "EXAMPLES" The following example returns the password provided as \fBuserdata\fR to the calling function. The password is considered to be a '\e0' terminated string. If the password does not fit into the buffer, the password is truncated. .PP .Vb 6 \& int pem_passwd_cb(char *buf, int size, int rwflag, void *password) \& { \& strncpy(buf, (char *)(password), size); \& buf[size \- 1] = \*(Aq\e0\*(Aq; \& return(strlen(buf)); \& } .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \&\fISSL_CTX_use_certificate\fR\|(3) man3/rc4.3000064400000013611147210533270006164 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "rc4 3" .TH rc4 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" RC4_set_key, RC4 \- RC4 encryption .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void RC4_set_key(RC4_KEY *key, int len, const unsigned char *data); \& \& void RC4(RC4_KEY *key, unsigned long len, const unsigned char *indata, \& unsigned char *outdata); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This library implements the Alleged \s-1RC4\s0 cipher, which is described for example in \fIApplied Cryptography\fR. It is believed to be compatible with RC4[\s-1TM\s0], a proprietary cipher of \s-1RSA\s0 Security Inc. .PP \&\s-1RC4\s0 is a stream cipher with variable key length. Typically, 128 bit (16 byte) keys are used for strong encryption, but shorter insecure key sizes have been widely used due to export restrictions. .PP \&\s-1RC4\s0 consists of a key setup phase and the actual encryption or decryption phase. .PP \&\fIRC4_set_key()\fR sets up the \fB\s-1RC4_KEY\s0\fR \fBkey\fR using the \fBlen\fR bytes long key at \fBdata\fR. .PP \&\s-1\fIRC4\s0()\fR encrypts or decrypts the \fBlen\fR bytes of data at \fBindata\fR using \&\fBkey\fR and places the result at \fBoutdata\fR. Repeated \s-1\fIRC4\s0()\fR calls with the same \fBkey\fR yield a continuous key stream. .PP Since \s-1RC4\s0 is a stream cipher (the input is XORed with a pseudo-random key stream to produce the output), decryption uses the same function calls as encryption. .PP Applications should use the higher level functions \&\fIEVP_EncryptInit\fR\|(3) etc. instead of calling the \s-1RC4\s0 functions directly. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIRC4_set_key()\fR and \s-1\fIRC4\s0()\fR do not return values. .SH "NOTE" .IX Header "NOTE" Certain conditions have to be observed to securely use stream ciphers. It is not permissible to perform multiple encryptions using the same key stream. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIblowfish\fR\|(3), \fIdes\fR\|(3), \fIrc2\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIRC4_set_key()\fR and \s-1\fIRC4\s0()\fR are available in all versions of SSLeay and OpenSSL. man3/X509_STORE_CTX_set_verify_cb.3000064400000023435147210533270012543 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "X509_STORE_CTX_set_verify_cb 3" .TH X509_STORE_CTX_set_verify_cb 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" X509_STORE_CTX_set_verify_cb \- set verification callback .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, \& int (*verify_cb)(int ok, X509_STORE_CTX *ctx)); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIX509_STORE_CTX_set_verify_cb()\fR sets the verification callback of \fBctx\fR to \&\fBverify_cb\fR overwriting any existing callback. .PP The verification callback can be used to customise the operation of certificate verification, either by overriding error conditions or logging errors for debugging purposes. .PP However a verification callback is \fBnot\fR essential and the default operation is often sufficient. .PP The \fBok\fR parameter to the callback indicates the value the callback should return to retain the default behaviour. If it is zero then and error condition is indicated. If it is 1 then no error occurred. If the flag \&\fBX509_V_FLAG_NOTIFY_POLICY\fR is set then \fBok\fR is set to 2 to indicate the policy checking is complete. .PP The \fBctx\fR parameter to the callback is the \fBX509_STORE_CTX\fR structure that is performing the verification operation. A callback can examine this structure and receive additional information about the error, for example by calling \fIX509_STORE_CTX_get_current_cert()\fR. Additional application data can be passed to the callback via the \fBex_data\fR mechanism. .SH "WARNING" .IX Header "WARNING" In general a verification callback should \fB\s-1NOT\s0\fR unconditionally return 1 in all circumstances because this will allow verification to succeed no matter what the error. This effectively removes all security from the application because \fBany\fR certificate (including untrusted generated ones) will be accepted. .SH "NOTES" .IX Header "NOTES" The verification callback can be set and inherited from the parent structure performing the operation. In some cases (such as S/MIME verification) the \&\fBX509_STORE_CTX\fR structure is created and destroyed internally and the only way to set a custom verification callback is by inheriting it from the associated \fBX509_STORE\fR. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIX509_STORE_CTX_set_verify_cb()\fR does not return a value. .SH "EXAMPLES" .IX Header "EXAMPLES" Default callback operation: .PP .Vb 4 \& int verify_callback(int ok, X509_STORE_CTX *ctx) \& { \& return ok; \& } .Ve .PP Simple example, suppose a certificate in the chain is expired and we wish to continue after this error: .PP .Vb 8 \& int verify_callback(int ok, X509_STORE_CTX *ctx) \& { \& /* Tolerate certificate expiration */ \& if (X509_STORE_CTX_get_error(ctx) == X509_V_ERR_CERT_HAS_EXPIRED) \& return 1; \& /* Otherwise don\*(Aqt override */ \& return ok; \& } .Ve .PP More complex example, we don't wish to continue after \fBany\fR certificate has expired just one specific case: .PP .Vb 11 \& int verify_callback(int ok, X509_STORE_CTX *ctx) \& { \& int err = X509_STORE_CTX_get_error(ctx); \& X509 *err_cert = X509_STORE_CTX_get_current_cert(ctx); \& if (err == X509_V_ERR_CERT_HAS_EXPIRED) \& { \& if (check_is_acceptable_expired_cert(err_cert) \& return 1; \& } \& return ok; \& } .Ve .PP Full featured logging callback. In this case the \fBbio_err\fR is assumed to be a global logging \fB\s-1BIO\s0\fR, an alternative would to store a \s-1BIO\s0 in \fBctx\fR using \&\fBex_data\fR. .PP .Vb 4 \& int verify_callback(int ok, X509_STORE_CTX *ctx) \& { \& X509 *err_cert; \& int err,depth; \& \& err_cert = X509_STORE_CTX_get_current_cert(ctx); \& err = X509_STORE_CTX_get_error(ctx); \& depth = X509_STORE_CTX_get_error_depth(ctx); \& \& BIO_printf(bio_err,"depth=%d ",depth); \& if (err_cert) \& { \& X509_NAME_print_ex(bio_err, X509_get_subject_name(err_cert), \& 0, XN_FLAG_ONELINE); \& BIO_puts(bio_err, "\en"); \& } \& else \& BIO_puts(bio_err, "\en"); \& if (!ok) \& BIO_printf(bio_err,"verify error:num=%d:%s\en",err, \& X509_verify_cert_error_string(err)); \& switch (err) \& { \& case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: \& BIO_puts(bio_err,"issuer= "); \& X509_NAME_print_ex(bio_err, X509_get_issuer_name(err_cert), \& 0, XN_FLAG_ONELINE); \& BIO_puts(bio_err, "\en"); \& break; \& case X509_V_ERR_CERT_NOT_YET_VALID: \& case X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD: \& BIO_printf(bio_err,"notBefore="); \& ASN1_TIME_print(bio_err,X509_get_notBefore(err_cert)); \& BIO_printf(bio_err,"\en"); \& break; \& case X509_V_ERR_CERT_HAS_EXPIRED: \& case X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD: \& BIO_printf(bio_err,"notAfter="); \& ASN1_TIME_print(bio_err,X509_get_notAfter(err_cert)); \& BIO_printf(bio_err,"\en"); \& break; \& case X509_V_ERR_NO_EXPLICIT_POLICY: \& policies_print(bio_err, ctx); \& break; \& } \& if (err == X509_V_OK && ok == 2) \& /* print out policies */ \& \& BIO_printf(bio_err,"verify return:%d\en",ok); \& return(ok); \& } .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIX509_STORE_CTX_get_error\fR\|(3) \&\fIX509_STORE_set_verify_cb_func\fR\|(3) \&\fIX509_STORE_CTX_get_ex_new_index\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIX509_STORE_CTX_set_verify_cb()\fR is available in all versions of SSLeay and OpenSSL. man3/SSL_set_session.3000064400000013133147210533270010552 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_set_session 3" .TH SSL_set_session 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_set_session \- set a TLS/SSL session to be used during TLS/SSL connect .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_set_session(SSL *ssl, SSL_SESSION *session); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_set_session()\fR sets \fBsession\fR to be used when the \s-1TLS/SSL\s0 connection is to be established. \fISSL_set_session()\fR is only useful for \s-1TLS/SSL\s0 clients. When the session is set, the reference count of \fBsession\fR is incremented by 1. If the session is not reused, the reference count is decremented again during \fISSL_connect()\fR. Whether the session was reused can be queried with the \fISSL_session_reused\fR\|(3) call. .PP If there is already a session set inside \fBssl\fR (because it was set with \&\fISSL_set_session()\fR before or because the same \fBssl\fR was already used for a connection), \fISSL_SESSION_free()\fR will be called for that session. .SH "NOTES" .IX Header "NOTES" \&\s-1SSL_SESSION\s0 objects keep internal link information about the session cache list, when being inserted into one \s-1SSL_CTX\s0 object's session cache. One \s-1SSL_SESSION\s0 object, regardless of its reference count, must therefore only be used with one \s-1SSL_CTX\s0 object (and the \s-1SSL\s0 objects created from this \s-1SSL_CTX\s0 object). .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following return values can occur: .IP "0" 4 The operation failed; check the error stack to find out the reason. .IP "1" 4 .IX Item "1" The operation succeeded. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_SESSION_free\fR\|(3), \&\fISSL_get_session\fR\|(3), \&\fISSL_session_reused\fR\|(3), \&\fISSL_CTX_set_session_cache_mode\fR\|(3) man3/DH_size.3000064400000011040147210533270007013 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DH_size 3" .TH DH_size 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" DH_size \- get Diffie\-Hellman prime size .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int DH_size(DH *dh); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This function returns the Diffie-Hellman size in bytes. It can be used to determine how much memory must be allocated for the shared secret computed by \fIDH_compute_key()\fR. .PP \&\fBdh\->p\fR must not be \fB\s-1NULL\s0\fR. .SH "RETURN VALUE" .IX Header "RETURN VALUE" The size in bytes. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdh\fR\|(3), \fIDH_generate_key\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIDH_size()\fR is available in all versions of SSLeay and OpenSSL. man3/SSL_session_reused.3000064400000011427147210533270011252 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_session_reused 3" .TH SSL_session_reused 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_session_reused \- query whether a reused session was negotiated during handshake .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_session_reused(SSL *ssl); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Query, whether a reused session was negotiated during the handshake. .SH "NOTES" .IX Header "NOTES" During the negotiation, a client can propose to reuse a session. The server then looks up the session in its cache. If both client and server agree on the session, it will be reused and a flag is being set that can be queried by the application. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following return values can occur: .IP "0" 4 A new session was negotiated. .IP "1" 4 .IX Item "1" A session was reused. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fISSL_set_session\fR\|(3), \&\fISSL_CTX_set_session_cache_mode\fR\|(3) man3/rsa.3000064400000020342147210533270006260 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "rsa 3" .TH rsa 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" rsa \- RSA public key cryptosystem .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& #include \& #include \& \& RSA * RSA_new(void); \& void RSA_free(RSA *rsa); \& \& int RSA_public_encrypt(int flen, unsigned char *from, \& unsigned char *to, RSA *rsa, int padding); \& int RSA_private_decrypt(int flen, unsigned char *from, \& unsigned char *to, RSA *rsa, int padding); \& int RSA_private_encrypt(int flen, unsigned char *from, \& unsigned char *to, RSA *rsa,int padding); \& int RSA_public_decrypt(int flen, unsigned char *from, \& unsigned char *to, RSA *rsa,int padding); \& \& int RSA_sign(int type, unsigned char *m, unsigned int m_len, \& unsigned char *sigret, unsigned int *siglen, RSA *rsa); \& int RSA_verify(int type, unsigned char *m, unsigned int m_len, \& unsigned char *sigbuf, unsigned int siglen, RSA *rsa); \& \& int RSA_size(const RSA *rsa); \& \& RSA *RSA_generate_key(int num, unsigned long e, \& void (*callback)(int,int,void *), void *cb_arg); \& \& int RSA_check_key(RSA *rsa); \& \& int RSA_blinding_on(RSA *rsa, BN_CTX *ctx); \& void RSA_blinding_off(RSA *rsa); \& \& void RSA_set_default_method(const RSA_METHOD *meth); \& const RSA_METHOD *RSA_get_default_method(void); \& int RSA_set_method(RSA *rsa, const RSA_METHOD *meth); \& const RSA_METHOD *RSA_get_method(const RSA *rsa); \& RSA_METHOD *RSA_PKCS1_SSLeay(void); \& RSA_METHOD *RSA_null_method(void); \& int RSA_flags(const RSA *rsa); \& RSA *RSA_new_method(ENGINE *engine); \& \& int RSA_print(BIO *bp, RSA *x, int offset); \& int RSA_print_fp(FILE *fp, RSA *x, int offset); \& \& int RSA_get_ex_new_index(long argl, char *argp, int (*new_func)(), \& int (*dup_func)(), void (*free_func)()); \& int RSA_set_ex_data(RSA *r,int idx,char *arg); \& char *RSA_get_ex_data(RSA *r, int idx); \& \& int RSA_sign_ASN1_OCTET_STRING(int dummy, unsigned char *m, \& unsigned int m_len, unsigned char *sigret, unsigned int *siglen, \& RSA *rsa); \& int RSA_verify_ASN1_OCTET_STRING(int dummy, unsigned char *m, \& unsigned int m_len, unsigned char *sigbuf, unsigned int siglen, \& RSA *rsa); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" These functions implement \s-1RSA\s0 public key encryption and signatures as defined in \s-1PKCS\s0 #1 v2.0 [\s-1RFC 2437\s0]. .PP The \fB\s-1RSA\s0\fR structure consists of several \s-1BIGNUM\s0 components. It can contain public as well as private \s-1RSA\s0 keys: .PP .Vb 10 \& struct \& { \& BIGNUM *n; // public modulus \& BIGNUM *e; // public exponent \& BIGNUM *d; // private exponent \& BIGNUM *p; // secret prime factor \& BIGNUM *q; // secret prime factor \& BIGNUM *dmp1; // d mod (p\-1) \& BIGNUM *dmq1; // d mod (q\-1) \& BIGNUM *iqmp; // q^\-1 mod p \& // ... \& }; \& RSA .Ve .PP In public keys, the private exponent and the related secret values are \&\fB\s-1NULL\s0\fR. .PP \&\fBp\fR, \fBq\fR, \fBdmp1\fR, \fBdmq1\fR and \fBiqmp\fR may be \fB\s-1NULL\s0\fR in private keys, but the \s-1RSA\s0 operations are much faster when these values are available. .PP Note that \s-1RSA\s0 keys may use non-standard \fB\s-1RSA_METHOD\s0\fR implementations, either directly or by the use of \fB\s-1ENGINE\s0\fR modules. In some cases (eg. an \&\s-1ENGINE\s0 providing support for hardware-embedded keys), these \s-1BIGNUM\s0 values will not be used by the implementation or may be used for alternative data storage. For this reason, applications should generally avoid using \s-1RSA\s0 structure elements directly and instead use \s-1API\s0 functions to query or modify keys. .SH "CONFORMING TO" .IX Header "CONFORMING TO" \&\s-1SSL, PKCS\s0 #1 v2.0 .SH "PATENTS" .IX Header "PATENTS" \&\s-1RSA\s0 was covered by a \s-1US\s0 patent which expired in September 2000. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIrsa\fR\|(1), \fIbn\fR\|(3), \fIdsa\fR\|(3), \fIdh\fR\|(3), \&\fIrand\fR\|(3), \fIengine\fR\|(3), \fIRSA_new\fR\|(3), \&\fIRSA_public_encrypt\fR\|(3), \&\fIRSA_sign\fR\|(3), \fIRSA_size\fR\|(3), \&\fIRSA_generate_key\fR\|(3), \&\fIRSA_check_key\fR\|(3), \&\fIRSA_blinding_on\fR\|(3), \&\fIRSA_set_method\fR\|(3), \fIRSA_print\fR\|(3), \&\fIRSA_get_ex_new_index\fR\|(3), \&\fIRSA_private_encrypt\fR\|(3), \&\fIRSA_sign_ASN1_OCTET_STRING\fR\|(3), \&\fIRSA_padding_add_PKCS1_type_1\fR\|(3) man3/BIO_f_buffer.3000064400000015675147210533270007757 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "BIO_f_buffer 3" .TH BIO_f_buffer 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" BIO_f_buffer \- buffering BIO .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& BIO_METHOD * BIO_f_buffer(void); \& \& #define BIO_get_buffer_num_lines(b) BIO_ctrl(b,BIO_C_GET_BUFF_NUM_LINES,0,NULL) \& #define BIO_set_read_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,0) \& #define BIO_set_write_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,1) \& #define BIO_set_buffer_size(b,size) BIO_ctrl(b,BIO_C_SET_BUFF_SIZE,size,NULL) \& #define BIO_set_buffer_read_data(b,buf,num) BIO_ctrl(b,BIO_C_SET_BUFF_READ_DATA,num,buf) .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fIBIO_f_buffer()\fR returns the buffering \s-1BIO\s0 method. .PP Data written to a buffering \s-1BIO\s0 is buffered and periodically written to the next \s-1BIO\s0 in the chain. Data read from a buffering \s-1BIO\s0 comes from an internal buffer which is filled from the next \s-1BIO\s0 in the chain. Both \fIBIO_gets()\fR and \fIBIO_puts()\fR are supported. .PP Calling \fIBIO_reset()\fR on a buffering \s-1BIO\s0 clears any buffered data. .PP \&\fIBIO_get_buffer_num_lines()\fR returns the number of lines currently buffered. .PP \&\fIBIO_set_read_buffer_size()\fR, \fIBIO_set_write_buffer_size()\fR and \fIBIO_set_buffer_size()\fR set the read, write or both read and write buffer sizes to \fBsize\fR. The initial buffer size is \s-1DEFAULT_BUFFER_SIZE,\s0 currently 4096. Any attempt to reduce the buffer size below \s-1DEFAULT_BUFFER_SIZE\s0 is ignored. Any buffered data is cleared when the buffer is resized. .PP \&\fIBIO_set_buffer_read_data()\fR clears the read buffer and fills it with \fBnum\fR bytes of \fBbuf\fR. If \fBnum\fR is larger than the current buffer size the buffer is expanded. .SH "NOTES" .IX Header "NOTES" Buffering BIOs implement \fIBIO_gets()\fR by using \fIBIO_read()\fR operations on the next \s-1BIO\s0 in the chain. By prepending a buffering \s-1BIO\s0 to a chain it is therefore possible to provide \fIBIO_gets()\fR functionality if the following BIOs do not support it (for example \s-1SSL\s0 BIOs). .PP Data is only written to the next \s-1BIO\s0 in the chain when the write buffer fills or when \fIBIO_flush()\fR is called. It is therefore important to call \fIBIO_flush()\fR whenever any pending data should be written such as when removing a buffering \&\s-1BIO\s0 using \fIBIO_pop()\fR. \fIBIO_flush()\fR may need to be retried if the ultimate source/sink \s-1BIO\s0 is non blocking. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fIBIO_f_buffer()\fR returns the buffering \s-1BIO\s0 method. .PP \&\fIBIO_get_buffer_num_lines()\fR returns the number of lines buffered (may be 0). .PP \&\fIBIO_set_read_buffer_size()\fR, \fIBIO_set_write_buffer_size()\fR and \fIBIO_set_buffer_size()\fR return 1 if the buffer was successfully resized or 0 for failure. .PP \&\fIBIO_set_buffer_read_data()\fR returns 1 if the data was set correctly or 0 if there was an error. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\s-1\fIBIO\s0\fR\|(3), \&\fIBIO_reset\fR\|(3), \&\fIBIO_flush\fR\|(3), \&\fIBIO_pop\fR\|(3), \&\fIBIO_ctrl\fR\|(3), \&\fIBIO_int_ctrl\fR\|(3) man3/RSA_size.3000064400000010767147210533270007164 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RSA_size 3" .TH RSA_size 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" RSA_size \- get RSA modulus size .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int RSA_size(const RSA *rsa); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This function returns the \s-1RSA\s0 modulus size in bytes. It can be used to determine how much memory must be allocated for an \s-1RSA\s0 encrypted value. .PP \&\fBrsa\->n\fR must not be \fB\s-1NULL\s0\fR. .SH "RETURN VALUE" .IX Header "RETURN VALUE" The size in bytes. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIrsa\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fIRSA_size()\fR is available in all versions of SSLeay and OpenSSL. man3/SSL_CONF_cmd_argv.3000064400000012134147210533270010603 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_CONF_cmd_argv 3" .TH SSL_CONF_cmd_argv 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_CONF_cmd_argv \- SSL configuration command line processing. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_CONF_cmd_argv(SSL_CONF_CTX *cctx, int *pargc, char ***pargv); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The function \fISSL_CONF_cmd_argv()\fR processes at most two command line arguments from \fBpargv\fR and \fBpargc\fR. The values of \fBpargv\fR and \fBpargc\fR are updated to reflect the number of command options processed. The \fBpargc\fR argument can be set to \fB\s-1NULL\s0\fR is it is not used. .SH "RETURN VALUES" .IX Header "RETURN VALUES" \&\fISSL_CONF_cmd_argv()\fR returns the number of command arguments processed: 0, 1, 2 or a negative error code. .PP If \-2 is returned then an argument for a command is missing. .PP If \-1 is returned the command is recognised but couldn't be processed due to an error: for example a syntax error in the argument. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fISSL_CONF_CTX_new\fR\|(3), \&\fISSL_CONF_CTX_set_flags\fR\|(3), \&\fISSL_CONF_CTX_set1_prefix\fR\|(3), \&\fISSL_CONF_CTX_set_ssl_ctx\fR\|(3), \&\fISSL_CONF_cmd\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" These functions were first added to OpenSSL 1.0.2 man3/SSL_get_error.3000064400000021676147210533270010217 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SSL_get_error 3" .TH SSL_get_error 3 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" SSL_get_error \- obtain result code for TLS/SSL I/O operation .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& #include \& \& int SSL_get_error(const SSL *ssl, int ret); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fISSL_get_error()\fR returns a result code (suitable for the C \*(L"switch\*(R" statement) for a preceding call to \fISSL_connect()\fR, \fISSL_accept()\fR, \fISSL_do_handshake()\fR, \&\fISSL_read()\fR, \fISSL_peek()\fR, or \fISSL_write()\fR on \fBssl\fR. The value returned by that \s-1TLS/SSL I/O\s0 function must be passed to \fISSL_get_error()\fR in parameter \&\fBret\fR. .PP In addition to \fBssl\fR and \fBret\fR, \fISSL_get_error()\fR inspects the current thread's OpenSSL error queue. Thus, \fISSL_get_error()\fR must be used in the same thread that performed the \s-1TLS/SSL I/O\s0 operation, and no other OpenSSL function calls should appear in between. The current thread's error queue must be empty before the \s-1TLS/SSL I/O\s0 operation is attempted, or \fISSL_get_error()\fR will not work reliably. .SH "RETURN VALUES" .IX Header "RETURN VALUES" The following return values can currently occur: .IP "\s-1SSL_ERROR_NONE\s0" 4 .IX Item "SSL_ERROR_NONE" The \s-1TLS/SSL I/O\s0 operation completed. This result code is returned if and only if \fBret > 0\fR. .IP "\s-1SSL_ERROR_ZERO_RETURN\s0" 4 .IX Item "SSL_ERROR_ZERO_RETURN" The \s-1TLS/SSL\s0 connection has been closed. If the protocol version is \s-1SSL 3.0\s0 or higher, this result code is returned only if a closure alert has occurred in the protocol, i.e. if the connection has been closed cleanly. Note that in this case \fB\s-1SSL_ERROR_ZERO_RETURN\s0\fR does not necessarily indicate that the underlying transport has been closed. .IP "\s-1SSL_ERROR_WANT_READ, SSL_ERROR_WANT_WRITE\s0" 4 .IX Item "SSL_ERROR_WANT_READ, SSL_ERROR_WANT_WRITE" The operation did not complete; the same \s-1TLS/SSL I/O\s0 function should be called again later. If, by then, the underlying \fB\s-1BIO\s0\fR has data available for reading (if the result code is \fB\s-1SSL_ERROR_WANT_READ\s0\fR) or allows writing data (\fB\s-1SSL_ERROR_WANT_WRITE\s0\fR), then some \s-1TLS/SSL\s0 protocol progress will take place, i.e. at least part of an \s-1TLS/SSL\s0 record will be read or written. Note that the retry may again lead to a \fB\s-1SSL_ERROR_WANT_READ\s0\fR or \fB\s-1SSL_ERROR_WANT_WRITE\s0\fR condition. There is no fixed upper limit for the number of iterations that may be necessary until progress becomes visible at application protocol level. .Sp For socket \fB\s-1BIO\s0\fRs (e.g. when \fISSL_set_fd()\fR was used), \fIselect()\fR or \&\fIpoll()\fR on the underlying socket can be used to find out when the \&\s-1TLS/SSL I/O\s0 function should be retried. .Sp Caveat: Any \s-1TLS/SSL I/O\s0 function can lead to either of \&\fB\s-1SSL_ERROR_WANT_READ\s0\fR and \fB\s-1SSL_ERROR_WANT_WRITE\s0\fR. In particular, \&\fISSL_read()\fR or \fISSL_peek()\fR may want to write data and \fISSL_write()\fR may want to read data. This is mainly because \s-1TLS/SSL\s0 handshakes may occur at any time during the protocol (initiated by either the client or the server); \&\fISSL_read()\fR, \fISSL_peek()\fR, and \fISSL_write()\fR will handle any pending handshakes. .IP "\s-1SSL_ERROR_WANT_CONNECT, SSL_ERROR_WANT_ACCEPT\s0" 4 .IX Item "SSL_ERROR_WANT_CONNECT, SSL_ERROR_WANT_ACCEPT" The operation did not complete; the same \s-1TLS/SSL I/O\s0 function should be called again later. The underlying \s-1BIO\s0 was not connected yet to the peer and the call would block in \fIconnect()\fR/\fIaccept()\fR. The \s-1SSL\s0 function should be called again when the connection is established. These messages can only appear with a \fIBIO_s_connect()\fR or \fIBIO_s_accept()\fR \s-1BIO,\s0 respectively. In order to find out, when the connection has been successfully established, on many platforms \fIselect()\fR or \fIpoll()\fR for writing on the socket file descriptor can be used. .IP "\s-1SSL_ERROR_WANT_X509_LOOKUP\s0" 4 .IX Item "SSL_ERROR_WANT_X509_LOOKUP" The operation did not complete because an application callback set by \&\fISSL_CTX_set_client_cert_cb()\fR has asked to be called again. The \s-1TLS/SSL I/O\s0 function should be called again later. Details depend on the application. .IP "\s-1SSL_ERROR_SYSCALL\s0" 4 .IX Item "SSL_ERROR_SYSCALL" Some non-recoverable, fatal I/O error occurred. The OpenSSL error queue may contain more information on the error. For socket I/O on Unix systems, consult \&\fBerrno\fR for details. If this error occurs then no further I/O operations should be performed on the connection and \fISSL_shutdown()\fR must not be called. .IP "\s-1SSL_ERROR_SSL\s0" 4 .IX Item "SSL_ERROR_SSL" A non-recoverable, fatal error in the \s-1SSL\s0 library occurred, usually a protocol error. The OpenSSL error queue contains more information on the error. If this error occurs then no further I/O operations should be performed on the connection and \fISSL_shutdown()\fR must not be called. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIssl\fR\|(3), \fIerr\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" \&\fISSL_get_error()\fR was added in SSLeay 0.8. man7/des_modes.7000064400000024211147210533270007444 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DES_MODES 7" .TH DES_MODES 7 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" des_modes \- the variants of DES and other crypto algorithms of OpenSSL .SH "DESCRIPTION" .IX Header "DESCRIPTION" Several crypto algorithms for OpenSSL can be used in a number of modes. Those are used for using block ciphers in a way similar to stream ciphers, among other things. .SH "OVERVIEW" .IX Header "OVERVIEW" .SS "Electronic Codebook Mode (\s-1ECB\s0)" .IX Subsection "Electronic Codebook Mode (ECB)" Normally, this is found as the function \fIalgorithm\fR\fI_ecb_encrypt()\fR. .IP "\(bu" 2 64 bits are enciphered at a time. .IP "\(bu" 2 The order of the blocks can be rearranged without detection. .IP "\(bu" 2 The same plaintext block always produces the same ciphertext block (for the same key) making it vulnerable to a 'dictionary attack'. .IP "\(bu" 2 An error will only affect one ciphertext block. .SS "Cipher Block Chaining Mode (\s-1CBC\s0)" .IX Subsection "Cipher Block Chaining Mode (CBC)" Normally, this is found as the function \fIalgorithm\fR\fI_cbc_encrypt()\fR. Be aware that \fIdes_cbc_encrypt()\fR is not really \s-1DES CBC \s0(it does not update the \s-1IV\s0); use \fIdes_ncbc_encrypt()\fR instead. .IP "\(bu" 2 a multiple of 64 bits are enciphered at a time. .IP "\(bu" 2 The \s-1CBC\s0 mode produces the same ciphertext whenever the same plaintext is encrypted using the same key and starting variable. .IP "\(bu" 2 The chaining operation makes the ciphertext blocks dependent on the current and all preceding plaintext blocks and therefore blocks can not be rearranged. .IP "\(bu" 2 The use of different starting variables prevents the same plaintext enciphering to the same ciphertext. .IP "\(bu" 2 An error will affect the current and the following ciphertext blocks. .SS "Cipher Feedback Mode (\s-1CFB\s0)" .IX Subsection "Cipher Feedback Mode (CFB)" Normally, this is found as the function \fIalgorithm\fR\fI_cfb_encrypt()\fR. .IP "\(bu" 2 a number of bits (j) <= 64 are enciphered at a time. .IP "\(bu" 2 The \s-1CFB\s0 mode produces the same ciphertext whenever the same plaintext is encrypted using the same key and starting variable. .IP "\(bu" 2 The chaining operation makes the ciphertext variables dependent on the current and all preceding variables and therefore j\-bit variables are chained together and can not be rearranged. .IP "\(bu" 2 The use of different starting variables prevents the same plaintext enciphering to the same ciphertext. .IP "\(bu" 2 The strength of the \s-1CFB\s0 mode depends on the size of k (maximal if j == k). In my implementation this is always the case. .IP "\(bu" 2 Selection of a small value for j will require more cycles through the encipherment algorithm per unit of plaintext and thus cause greater processing overheads. .IP "\(bu" 2 Only multiples of j bits can be enciphered. .IP "\(bu" 2 An error will affect the current and the following ciphertext variables. .SS "Output Feedback Mode (\s-1OFB\s0)" .IX Subsection "Output Feedback Mode (OFB)" Normally, this is found as the function \fIalgorithm\fR\fI_ofb_encrypt()\fR. .IP "\(bu" 2 a number of bits (j) <= 64 are enciphered at a time. .IP "\(bu" 2 The \s-1OFB\s0 mode produces the same ciphertext whenever the same plaintext enciphered using the same key and starting variable. More over, in the \s-1OFB\s0 mode the same key stream is produced when the same key and start variable are used. Consequently, for security reasons a specific start variable should be used only once for a given key. .IP "\(bu" 2 The absence of chaining makes the \s-1OFB\s0 more vulnerable to specific attacks. .IP "\(bu" 2 The use of different start variables values prevents the same plaintext enciphering to the same ciphertext, by producing different key streams. .IP "\(bu" 2 Selection of a small value for j will require more cycles through the encipherment algorithm per unit of plaintext and thus cause greater processing overheads. .IP "\(bu" 2 Only multiples of j bits can be enciphered. .IP "\(bu" 2 \&\s-1OFB\s0 mode of operation does not extend ciphertext errors in the resultant plaintext output. Every bit error in the ciphertext causes only one bit to be in error in the deciphered plaintext. .IP "\(bu" 2 \&\s-1OFB\s0 mode is not self-synchronizing. If the two operation of encipherment and decipherment get out of synchronism, the system needs to be re-initialized. .IP "\(bu" 2 Each re-initialization should use a value of the start variable different from the start variable values used before with the same key. The reason for this is that an identical bit stream would be produced each time from the same parameters. This would be susceptible to a 'known plaintext' attack. .SS "Triple \s-1ECB\s0 Mode" .IX Subsection "Triple ECB Mode" Normally, this is found as the function \fIalgorithm\fR\fI_ecb3_encrypt()\fR. .IP "\(bu" 2 Encrypt with key1, decrypt with key2 and encrypt with key3 again. .IP "\(bu" 2 As for \s-1ECB\s0 encryption but increases the key length to 168 bits. There are theoretic attacks that can be used that make the effective key length 112 bits, but this attack also requires 2^56 blocks of memory, not very likely, even for the \s-1NSA.\s0 .IP "\(bu" 2 If both keys are the same it is equivalent to encrypting once with just one key. .IP "\(bu" 2 If the first and last key are the same, the key length is 112 bits. There are attacks that could reduce the effective key strength to only slightly more than 56 bits, but these require a lot of memory. .IP "\(bu" 2 If all 3 keys are the same, this is effectively the same as normal ecb mode. .SS "Triple \s-1CBC\s0 Mode" .IX Subsection "Triple CBC Mode" Normally, this is found as the function \fIalgorithm\fR\fI_ede3_cbc_encrypt()\fR. .IP "\(bu" 2 Encrypt with key1, decrypt with key2 and then encrypt with key3. .IP "\(bu" 2 As for \s-1CBC\s0 encryption but increases the key length to 168 bits with the same restrictions as for triple ecb mode. .SH "NOTES" .IX Header "NOTES" This text was been written in large parts by Eric Young in his original documentation for SSLeay, the predecessor of OpenSSL. In turn, he attributed it to: .PP .Vb 5 \& AS 2805.5.2 \& Australian Standard \& Electronic funds transfer \- Requirements for interfaces, \& Part 5.2: Modes of operation for an n\-bit block cipher algorithm \& Appendix A .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIblowfish\fR\|(3), \fIdes\fR\|(3), \fIidea\fR\|(3), \&\fIrc2\fR\|(3) man1/s_client.1000064400000044314147210533270007274 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "S_CLIENT 1" .TH S_CLIENT 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-s_client, s_client \- SSL/TLS client program .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBs_client\fR [\fB\-connect host:port\fR] [\fB\-servername name\fR] [\fB\-verify depth\fR] [\fB\-verify_return_error\fR] [\fB\-cert filename\fR] [\fB\-certform DER|PEM\fR] [\fB\-key filename\fR] [\fB\-keyform DER|PEM\fR] [\fB\-pass arg\fR] [\fB\-CApath directory\fR] [\fB\-CAfile filename\fR] [\fB\-no_alt_chains\fR] [\fB\-reconnect\fR] [\fB\-pause\fR] [\fB\-showcerts\fR] [\fB\-debug\fR] [\fB\-msg\fR] [\fB\-nbio_test\fR] [\fB\-state\fR] [\fB\-nbio\fR] [\fB\-crlf\fR] [\fB\-ign_eof\fR] [\fB\-no_ign_eof\fR] [\fB\-quiet\fR] [\fB\-ssl2\fR] [\fB\-ssl3\fR] [\fB\-tls1\fR] [\fB\-no_ssl2\fR] [\fB\-no_ssl3\fR] [\fB\-no_tls1\fR] [\fB\-no_tls1_1\fR] [\fB\-no_tls1_2\fR] [\fB\-fallback_scsv\fR] [\fB\-bugs\fR] [\fB\-sigalgs sigalglist\fR] [\fB\-curves curvelist\fR] [\fB\-cipher cipherlist\fR] [\fB\-serverpref\fR] [\fB\-starttls protocol\fR] [\fB\-engine id\fR] [\fB\-tlsextdebug\fR] [\fB\-no_ticket\fR] [\fB\-sess_out filename\fR] [\fB\-sess_in filename\fR] [\fB\-rand file(s)\fR] [\fB\-serverinfo types\fR] [\fB\-status\fR] [\fB\-alpn protocols\fR] [\fB\-nextprotoneg protocols\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBs_client\fR command implements a generic \s-1SSL/TLS\s0 client which connects to a remote host using \s-1SSL/TLS.\s0 It is a \fIvery\fR useful diagnostic tool for \&\s-1SSL\s0 servers. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-connect host:port\fR" 4 .IX Item "-connect host:port" This specifies the host and optional port to connect to. If not specified then an attempt is made to connect to the local host on port 4433. .IP "\fB\-servername name\fR" 4 .IX Item "-servername name" Set the \s-1TLS SNI \s0(Server Name Indication) extension in the ClientHello message. .IP "\fB\-cert certname\fR" 4 .IX Item "-cert certname" The certificate to use, if one is requested by the server. The default is not to use a certificate. .IP "\fB\-certform format\fR" 4 .IX Item "-certform format" The certificate format to use: \s-1DER\s0 or \s-1PEM. PEM\s0 is the default. .IP "\fB\-key keyfile\fR" 4 .IX Item "-key keyfile" The private key to use. If not specified then the certificate file will be used. .IP "\fB\-keyform format\fR" 4 .IX Item "-keyform format" The private format to use: \s-1DER\s0 or \s-1PEM. PEM\s0 is the default. .IP "\fB\-pass arg\fR" 4 .IX Item "-pass arg" the private key password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-verify depth\fR" 4 .IX Item "-verify depth" The verify depth to use. This specifies the maximum length of the server certificate chain and turns on server certificate verification. Currently the verify operation continues after errors so all the problems with a certificate chain can be seen. As a side effect the connection will never fail due to a server certificate verify failure. .IP "\fB\-verify_return_error\fR" 4 .IX Item "-verify_return_error" Return verification errors instead of continuing. This will typically abort the handshake with a fatal error. .IP "\fB\-CApath directory\fR" 4 .IX Item "-CApath directory" The directory to use for server certificate verification. This directory must be in \*(L"hash format\*(R", see \fBverify\fR for more information. These are also used when building the client certificate chain. .IP "\fB\-CAfile file\fR" 4 .IX Item "-CAfile file" A file containing trusted certificates to use during server authentication and to use when attempting to build the client certificate chain. .IP "\fB\-purpose, \-ignore_critical, \-issuer_checks, \-crl_check, \-crl_check_all, \-policy_check, \-extended_crl, \-x509_strict, \-policy \-check_ss_sig \-no_alt_chains\fR" 4 .IX Item "-purpose, -ignore_critical, -issuer_checks, -crl_check, -crl_check_all, -policy_check, -extended_crl, -x509_strict, -policy -check_ss_sig -no_alt_chains" Set various certificate chain valiadition option. See the \&\fBverify\fR manual page for details. .IP "\fB\-reconnect\fR" 4 .IX Item "-reconnect" reconnects to the same server 5 times using the same session \s-1ID,\s0 this can be used as a test that session caching is working. .IP "\fB\-pause\fR" 4 .IX Item "-pause" pauses 1 second between each read and write call. .IP "\fB\-showcerts\fR" 4 .IX Item "-showcerts" Displays the server certificate list as sent by the server: it only consists of certificates the server has sent (in the order the server has sent them). It is \&\fBnot\fR a verified chain. .IP "\fB\-prexit\fR" 4 .IX Item "-prexit" print session information when the program exits. This will always attempt to print out information even if the connection fails. Normally information will only be printed out once if the connection succeeds. This option is useful because the cipher in use may be renegotiated or the connection may fail because a client certificate is required or is requested only after an attempt is made to access a certain \s-1URL.\s0 Note: the output produced by this option is not always accurate because a connection might never have been established. .IP "\fB\-state\fR" 4 .IX Item "-state" prints out the \s-1SSL\s0 session states. .IP "\fB\-debug\fR" 4 .IX Item "-debug" print extensive debugging information including a hex dump of all traffic. .IP "\fB\-msg\fR" 4 .IX Item "-msg" show all protocol messages with hex dump. .IP "\fB\-nbio_test\fR" 4 .IX Item "-nbio_test" tests non-blocking I/O .IP "\fB\-nbio\fR" 4 .IX Item "-nbio" turns on non-blocking I/O .IP "\fB\-crlf\fR" 4 .IX Item "-crlf" this option translated a line feed from the terminal into \s-1CR+LF\s0 as required by some servers. .IP "\fB\-ign_eof\fR" 4 .IX Item "-ign_eof" inhibit shutting down the connection when end of file is reached in the input. .IP "\fB\-quiet\fR" 4 .IX Item "-quiet" inhibit printing of session and certificate information. This implicitly turns on \fB\-ign_eof\fR as well. .IP "\fB\-no_ign_eof\fR" 4 .IX Item "-no_ign_eof" shut down the connection when end of file is reached in the input. Can be used to override the implicit \fB\-ign_eof\fR after \fB\-quiet\fR. .IP "\fB\-psk_identity identity\fR" 4 .IX Item "-psk_identity identity" Use the \s-1PSK\s0 identity \fBidentity\fR when using a \s-1PSK\s0 cipher suite. The default value is \*(L"Client_identity\*(R" (without the quotes). .IP "\fB\-psk key\fR" 4 .IX Item "-psk key" Use the \s-1PSK\s0 key \fBkey\fR when using a \s-1PSK\s0 cipher suite. The key is given as a hexadecimal number without leading 0x, for example \-psk 1a2b3c4d. This option must be provided in order to use a \s-1PSK\s0 cipher. .IP "\fB\-ssl2\fR, \fB\-ssl3\fR, \fB\-tls1\fR, \fB\-tls1_1\fR, \fB\-tls1_2\fR, \fB\-no_ssl2\fR, \fB\-no_ssl3\fR, \fB\-no_tls1\fR, \fB\-no_tls1_1\fR, \fB\-no_tls1_2\fR" 4 .IX Item "-ssl2, -ssl3, -tls1, -tls1_1, -tls1_2, -no_ssl2, -no_ssl3, -no_tls1, -no_tls1_1, -no_tls1_2" These options require or disable the use of the specified \s-1SSL\s0 or \s-1TLS\s0 protocols. By default the initial handshake uses a \fIversion-flexible\fR method which will negotiate the highest mutually supported protocol version. .IP "\fB\-fallback_scsv\fR" 4 .IX Item "-fallback_scsv" Send \s-1TLS_FALLBACK_SCSV\s0 in the ClientHello. .IP "\fB\-bugs\fR" 4 .IX Item "-bugs" there are several known bug in \s-1SSL\s0 and \s-1TLS\s0 implementations. Adding this option enables various workarounds. .IP "\fB\-sigalgs sigalglist\fR" 4 .IX Item "-sigalgs sigalglist" Specifies the list of signature algorithms that are sent by the client. The server selects one entry in the list based on its preferences. For example strings, see \fISSL_CTX_set1_sigalgs\fR\|(3) .IP "\fB\-curves curvelist\fR" 4 .IX Item "-curves curvelist" Specifies the list of supported curves to be sent by the client. The curve is is ultimately selected by the server. For a list of all curves, use: .Sp .Vb 1 \& $ openssl ecparam \-list_curves .Ve .IP "\fB\-cipher cipherlist\fR" 4 .IX Item "-cipher cipherlist" this allows the cipher list sent by the client to be modified. Although the server determines which cipher suite is used it should take the first supported cipher in the list sent by the client. See the \fBciphers\fR command for more information. .IP "\fB\-serverpref\fR" 4 .IX Item "-serverpref" use the server's cipher preferences; only used for \s-1SSLV2.\s0 .IP "\fB\-starttls protocol\fR" 4 .IX Item "-starttls protocol" send the protocol-specific message(s) to switch to \s-1TLS\s0 for communication. \&\fBprotocol\fR is a keyword for the intended protocol. Currently, the only supported keywords are \*(L"smtp\*(R", \*(L"pop3\*(R", \*(L"imap\*(R", \*(L"ftp\*(R" and \*(L"xmpp\*(R". .IP "\fB\-tlsextdebug\fR" 4 .IX Item "-tlsextdebug" print out a hex dump of any \s-1TLS\s0 extensions received from the server. .IP "\fB\-no_ticket\fR" 4 .IX Item "-no_ticket" disable RFC4507bis session ticket support. .IP "\fB\-sess_out filename\fR" 4 .IX Item "-sess_out filename" output \s-1SSL\s0 session to \fBfilename\fR .IP "\fB\-sess_in sess.pem\fR" 4 .IX Item "-sess_in sess.pem" load \s-1SSL\s0 session from \fBfilename\fR. The client will attempt to resume a connection from this session. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBs_client\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .IP "\fB\-rand file(s)\fR" 4 .IX Item "-rand file(s)" a file or files containing random data used to seed the random number generator, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). Multiple files can be specified separated by a OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fB\-serverinfo types\fR" 4 .IX Item "-serverinfo types" a list of comma-separated \s-1TLS\s0 Extension Types (numbers between 0 and 65535). Each type will be sent as an empty ClientHello \s-1TLS\s0 Extension. The server's response (if any) will be encoded and displayed as a \s-1PEM\s0 file. .IP "\fB\-status\fR" 4 .IX Item "-status" sends a certificate status request to the server (\s-1OCSP\s0 stapling). The server response (if any) is printed out. .IP "\fB\-alpn protocols\fR, \fB\-nextprotoneg protocols\fR" 4 .IX Item "-alpn protocols, -nextprotoneg protocols" these flags enable the Enable the Application-Layer Protocol Negotiation or Next Protocol Negotiation extension, respectively. \s-1ALPN\s0 is the \s-1IETF\s0 standard and replaces \s-1NPN.\s0 The \fBprotocols\fR list is a comma-separated protocol names that the client should advertise support for. The list should contain most wanted protocols first. Protocol names are printable \s-1ASCII\s0 strings, for example \*(L"http/1.1\*(R" or \&\*(L"spdy/3\*(R". Empty list of protocols is treated specially and will cause the client to advertise support for the \s-1TLS\s0 extension but disconnect just after reciving ServerHello with a list of server supported protocols. .SH "CONNECTED COMMANDS" .IX Header "CONNECTED COMMANDS" If a connection is established with an \s-1SSL\s0 server then any data received from the server is displayed and any key presses will be sent to the server. When used interactively (which means neither \fB\-quiet\fR nor \fB\-ign_eof\fR have been given), the session will be renegotiated if the line begins with an \&\fBR\fR, and if the line begins with a \fBQ\fR or if end of file is reached, the connection will be closed down. .SH "NOTES" .IX Header "NOTES" \&\fBs_client\fR can be used to debug \s-1SSL\s0 servers. To connect to an \s-1SSL HTTP\s0 server the command: .PP .Vb 1 \& openssl s_client \-connect servername:443 .Ve .PP would typically be used (https uses port 443). If the connection succeeds then an \s-1HTTP\s0 command can be given such as \*(L"\s-1GET /\*(R"\s0 to retrieve a web page. .PP If the handshake fails then there are several possible causes, if it is nothing obvious like no client certificate then the \fB\-bugs\fR, \fB\-ssl2\fR, \&\fB\-ssl3\fR, \fB\-tls1\fR, \fB\-no_ssl2\fR, \fB\-no_ssl3\fR, \fB\-no_tls1\fR options can be tried in case it is a buggy server. In particular you should play with these options \fBbefore\fR submitting a bug report to an OpenSSL mailing list. .PP A frequent problem when attempting to get client certificates working is that a web client complains it has no certificates or gives an empty list to choose from. This is normally because the server is not sending the clients certificate authority in its \*(L"acceptable \s-1CA\s0 list\*(R" when it requests a certificate. By using \fBs_client\fR the \s-1CA\s0 list can be viewed and checked. However some servers only request client authentication after a specific \s-1URL\s0 is requested. To obtain the list in this case it is necessary to use the \fB\-prexit\fR option and send an \s-1HTTP\s0 request for an appropriate page. .PP If a certificate is specified on the command line using the \fB\-cert\fR option it will not be used unless the server specifically requests a client certificate. Therefor merely including a client certificate on the command line is no guarantee that the certificate works. .PP If there are problems verifying a server certificate then the \&\fB\-showcerts\fR option can be used to show all the certificates sent by the server. .PP Since the SSLv23 client hello cannot include compression methods or extensions these will only be supported if its use is disabled, for example by using the \&\fB\-no_sslv2\fR option. .PP The \fBs_client\fR utility is a test tool and is designed to continue the handshake after any certificate verification errors. As a result it will accept any certificate chain (trusted or not) sent by the peer. None test applications should \fBnot\fR do this as it makes them vulnerable to a \s-1MITM\s0 attack. This behaviour can be changed by with the \fB\-verify_return_error\fR option: any verify errors are then returned aborting the handshake. .SH "BUGS" .IX Header "BUGS" Because this program has a lot of options and also because some of the techniques used are rather old, the C source of s_client is rather hard to read and not a model of how things should be done. A typical \&\s-1SSL\s0 client program would be much simpler. .PP The \fB\-prexit\fR option is a bit of a hack. We should really report information whenever a session is renegotiated. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIsess_id\fR\|(1), \fIs_server\fR\|(1), \fIciphers\fR\|(1) .SH "HISTORY" .IX Header "HISTORY" The \-no_alt_chains options was first added to OpenSSL 1.0.2b. man1/version.1000064400000011666147210533270007165 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "VERSION 1" .TH VERSION 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-version, version \- print OpenSSL version information .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl version\fR [\fB\-a\fR] [\fB\-v\fR] [\fB\-b\fR] [\fB\-o\fR] [\fB\-f\fR] [\fB\-p\fR] [\fB\-d\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" This command is used to print out version information about OpenSSL. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-a\fR" 4 .IX Item "-a" all information, this is the same as setting all the other flags. .IP "\fB\-v\fR" 4 .IX Item "-v" the current OpenSSL version. .IP "\fB\-b\fR" 4 .IX Item "-b" the date the current version of OpenSSL was built. .IP "\fB\-o\fR" 4 .IX Item "-o" option information: various options set when the library was built. .IP "\fB\-f\fR" 4 .IX Item "-f" compilation flags. .IP "\fB\-p\fR" 4 .IX Item "-p" platform setting. .IP "\fB\-d\fR" 4 .IX Item "-d" \&\s-1OPENSSLDIR\s0 setting. .SH "NOTES" .IX Header "NOTES" The output of \fBopenssl version \-a\fR would typically be used when sending in a bug report. .SH "HISTORY" .IX Header "HISTORY" The \fB\-d\fR option was added in OpenSSL 0.9.7. man1/dgst.1000064400000024376147210533270006443 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DGST 1" .TH DGST 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-dgst, dgst, sha, sha1, mdc2, ripemd160, sha224, sha256, sha384, sha512, md2, md4, md5, dss1 \- message digests .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBdgst\fR [\fB\-sha|\-sha1|\-mdc2|\-ripemd160|\-sha224|\-sha256|\-sha384|\-sha512|\-md2|\-md4|\-md5|\-dss1\fR] [\fB\-c\fR] [\fB\-d\fR] [\fB\-hex\fR] [\fB\-binary\fR] [\fB\-r\fR] [\fB\-non\-fips\-allow\fR] [\fB\-out filename\fR] [\fB\-sign filename\fR] [\fB\-keyform arg\fR] [\fB\-passin arg\fR] [\fB\-verify filename\fR] [\fB\-prverify filename\fR] [\fB\-signature filename\fR] [\fB\-hmac key\fR] [\fB\-non\-fips\-allow\fR] [\fB\-fips\-fingerprint\fR] [\fBfile...\fR] .PP \&\fBopenssl\fR [\fIdigest\fR] [\fB...\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The digest functions output the message digest of a supplied file or files in hexadecimal. The digest functions also generate and verify digital signatures using message digests. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-c\fR" 4 .IX Item "-c" print out the digest in two digit groups separated by colons, only relevant if \&\fBhex\fR format output is used. .IP "\fB\-d\fR" 4 .IX Item "-d" print out \s-1BIO\s0 debugging information. .IP "\fB\-hex\fR" 4 .IX Item "-hex" digest is to be output as a hex dump. This is the default case for a \*(L"normal\*(R" digest as opposed to a digital signature. See \s-1NOTES\s0 below for digital signatures using \fB\-hex\fR. .IP "\fB\-binary\fR" 4 .IX Item "-binary" output the digest or signature in binary form. .IP "\fB\-r\fR" 4 .IX Item "-r" output the digest in the \*(L"coreutils\*(R" format used by programs like \fBsha1sum\fR. .IP "\fB\-non\-fips\-allow\fR" 4 .IX Item "-non-fips-allow" Allow use of non \s-1FIPS\s0 digest when in \s-1FIPS\s0 mode. This has no effect when not in \&\s-1FIPS\s0 mode. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" filename to output to, or standard output by default. .IP "\fB\-sign filename\fR" 4 .IX Item "-sign filename" digitally sign the digest using the private key in \*(L"filename\*(R". .IP "\fB\-keyform arg\fR" 4 .IX Item "-keyform arg" Specifies the key format to sign digest with. The \s-1DER, PEM, P12,\s0 and \s-1ENGINE\s0 formats are supported. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" Use engine \fBid\fR for operations (including private key storage). This engine is not used as source for digest algorithms, unless it is also specified in the configuration file. .IP "\fB\-sigopt nm:v\fR" 4 .IX Item "-sigopt nm:v" Pass options to the signature algorithm during sign or verify operations. Names and values of these options are algorithm-specific. .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the private key password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-verify filename\fR" 4 .IX Item "-verify filename" verify the signature using the the public key in \*(L"filename\*(R". The output is either \*(L"Verification \s-1OK\*(R"\s0 or \*(L"Verification Failure\*(R". .IP "\fB\-prverify filename\fR" 4 .IX Item "-prverify filename" verify the signature using the the private key in \*(L"filename\*(R". .IP "\fB\-signature filename\fR" 4 .IX Item "-signature filename" the actual signature to verify. .IP "\fB\-hmac key\fR" 4 .IX Item "-hmac key" create a hashed \s-1MAC\s0 using \*(L"key\*(R". .IP "\fB\-mac alg\fR" 4 .IX Item "-mac alg" create \s-1MAC \s0(keyed Message Authentication Code). The most popular \s-1MAC\s0 algorithm is \s-1HMAC \s0(hash-based \s-1MAC\s0), but there are other \s-1MAC\s0 algorithms which are not based on hash, for instance \fBgost-mac\fR algorithm, supported by \fBccgost\fR engine. \s-1MAC\s0 keys and other options should be set via \fB\-macopt\fR parameter. .IP "\fB\-macopt nm:v\fR" 4 .IX Item "-macopt nm:v" Passes options to \s-1MAC\s0 algorithm, specified by \fB\-mac\fR key. Following options are supported by both by \fB\s-1HMAC\s0\fR and \fBgost-mac\fR: .RS 4 .IP "\fBkey:string\fR" 8 .IX Item "key:string" Specifies \s-1MAC\s0 key as alphnumeric string (use if key contain printable characters only). String length must conform to any restrictions of the \s-1MAC\s0 algorithm for example exactly 32 chars for gost-mac. .IP "\fBhexkey:string\fR" 8 .IX Item "hexkey:string" Specifies \s-1MAC\s0 key in hexadecimal form (two hex digits per byte). Key length must conform to any restrictions of the \s-1MAC\s0 algorithm for example exactly 32 chars for gost-mac. .RE .RS 4 .RE .IP "\fB\-rand file(s)\fR" 4 .IX Item "-rand file(s)" a file or files containing random data used to seed the random number generator, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). Multiple files can be specified separated by a OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fB\-non\-fips\-allow\fR" 4 .IX Item "-non-fips-allow" enable use of non-FIPS algorithms such as \s-1MD5\s0 even in \s-1FIPS\s0 mode. .IP "\fB\-fips\-fingerprint\fR" 4 .IX Item "-fips-fingerprint" compute \s-1HMAC\s0 using a specific key for certain OpenSSL-FIPS operations. .IP "\fBfile...\fR" 4 .IX Item "file..." file or files to digest. If no files are specified then standard input is used. .SH "EXAMPLES" .IX Header "EXAMPLES" To create a hex-encoded message digest of a file: openssl dgst \-md5 \-hex file.txt .PP To sign a file using \s-1SHA\-256\s0 with binary file output: openssl dgst \-sha256 \-sign privatekey.pem \-out signature.sign file.txt .PP To verify a signature: openssl dgst \-sha256 \-verify publickey.pem \e \-signature signature.sign \e file.txt .SH "NOTES" .IX Header "NOTES" The digest of choice for all new applications is \s-1SHA1.\s0 Other digests are however still widely used. .PP When signing a file, \fBdgst\fR will automatically determine the algorithm (\s-1RSA, ECC,\s0 etc) to use for signing based on the private key's \s-1ASN.1\s0 info. When verifying signatures, it only handles the \s-1RSA, DSA,\s0 or \s-1ECDSA\s0 signature itself, not the related data to identify the signer and algorithm used in formats such as x.509, \s-1CMS,\s0 and S/MIME. .PP A source of random numbers is required for certain signing algorithms, in particular \s-1ECDSA\s0 and \s-1DSA.\s0 .PP The signing and verify options should only be used if a single file is being signed or verified. .PP Hex signatures cannot be verified using \fBopenssl\fR. Instead, use \*(L"xxd \-r\*(R" or similar program to transform the hex signature into a binary signature prior to verification. man1/req.1000064400000072270147210533270006265 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "REQ 1" .TH REQ 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-req, req \- PKCS#10 certificate request and certificate generating utility. .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBreq\fR [\fB\-inform PEM|DER\fR] [\fB\-outform PEM|DER\fR] [\fB\-in filename\fR] [\fB\-passin arg\fR] [\fB\-out filename\fR] [\fB\-passout arg\fR] [\fB\-text\fR] [\fB\-pubkey\fR] [\fB\-noout\fR] [\fB\-verify\fR] [\fB\-modulus\fR] [\fB\-new\fR] [\fB\-rand file(s)\fR] [\fB\-newkey rsa:bits\fR] [\fB\-newkey alg:file\fR] [\fB\-nodes\fR] [\fB\-key filename\fR] [\fB\-keyform PEM|DER\fR] [\fB\-keyout filename\fR] [\fB\-keygen_engine id\fR] [\fB\-[digest]\fR] [\fB\-config filename\fR] [\fB\-multivalue\-rdn\fR] [\fB\-x509\fR] [\fB\-days n\fR] [\fB\-set_serial n\fR] [\fB\-asn1\-kludge\fR] [\fB\-no\-asn1\-kludge\fR] [\fB\-newhdr\fR] [\fB\-extensions section\fR] [\fB\-reqexts section\fR] [\fB\-utf8\fR] [\fB\-nameopt\fR] [\fB\-reqopt\fR] [\fB\-subject\fR] [\fB\-subj arg\fR] [\fB\-batch\fR] [\fB\-verbose\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBreq\fR command primarily creates and processes certificate requests in PKCS#10 format. It can additionally create self signed certificates for use as root CAs for example. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-inform DER|PEM\fR" 4 .IX Item "-inform DER|PEM" This specifies the input format. The \fB\s-1DER\s0\fR option uses an \s-1ASN1 DER\s0 encoded form compatible with the PKCS#10. The \fB\s-1PEM\s0\fR form is the default format: it consists of the \fB\s-1DER\s0\fR format base64 encoded with additional header and footer lines. .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read a request from or standard input if this option is not specified. A request is only read if the creation options (\fB\-new\fR and \fB\-newkey\fR) are not specified. .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the input file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" This specifies the output filename to write to or standard output by default. .IP "\fB\-passout arg\fR" 4 .IX Item "-passout arg" the output file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-text\fR" 4 .IX Item "-text" prints out the certificate request in text form. .IP "\fB\-subject\fR" 4 .IX Item "-subject" prints out the request subject (or certificate subject if \fB\-x509\fR is specified) .IP "\fB\-pubkey\fR" 4 .IX Item "-pubkey" outputs the public key. .IP "\fB\-noout\fR" 4 .IX Item "-noout" this option prevents output of the encoded version of the request. .IP "\fB\-modulus\fR" 4 .IX Item "-modulus" this option prints out the value of the modulus of the public key contained in the request. .IP "\fB\-verify\fR" 4 .IX Item "-verify" verifies the signature on the request. .IP "\fB\-new\fR" 4 .IX Item "-new" this option generates a new certificate request. It will prompt the user for the relevant field values. The actual fields prompted for and their maximum and minimum sizes are specified in the configuration file and any requested extensions. .Sp If the \fB\-key\fR option is not used it will generate a new \s-1RSA\s0 private key using information specified in the configuration file. .IP "\fB\-subj arg\fR" 4 .IX Item "-subj arg" Replaces subject field of input request with specified data and outputs modified request. The arg must be formatted as \&\fI/type0=value0/type1=value1/type2=...\fR, characters may be escaped by \e (backslash), no spaces are skipped. .IP "\fB\-rand file(s)\fR" 4 .IX Item "-rand file(s)" a file or files containing random data used to seed the random number generator, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). Multiple files can be specified separated by a OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fB\-newkey arg\fR" 4 .IX Item "-newkey arg" this option creates a new certificate request and a new private key. The argument takes one of several forms. \fBrsa:nbits\fR, where \&\fBnbits\fR is the number of bits, generates an \s-1RSA\s0 key \fBnbits\fR in size. If \fBnbits\fR is omitted, i.e. \fB\-newkey rsa\fR specified, the default key size, specified in the configuration file is used. .Sp All other algorithms support the \fB\-newkey alg:file\fR form, where file may be an algorithm parameter file, created by the \fBgenpkey \-genparam\fR command or and X.509 certificate for a key with approriate algorithm. .Sp \&\fBparam:file\fR generates a key using the parameter file or certificate \fBfile\fR, the algorithm is determined by the parameters. \fBalgname:file\fR use algorithm \&\fBalgname\fR and parameter file \fBfile\fR: the two algorithms must match or an error occurs. \fBalgname\fR just uses algorithm \fBalgname\fR, and parameters, if neccessary should be specified via \fB\-pkeyopt\fR parameter. .Sp \&\fBdsa:filename\fR generates a \s-1DSA\s0 key using the parameters in the file \fBfilename\fR. \fBec:filename\fR generates \s-1EC\s0 key (usable both with \&\s-1ECDSA\s0 or \s-1ECDH\s0 algorithms), \fBgost2001:filename\fR generates \s-1GOST R 34.10\-2001\s0 key (requires \fBccgost\fR engine configured in the configuration file). If just \fBgost2001\fR is specified a parameter set should be specified by \fB\-pkeyopt paramset:X\fR .IP "\fB\-pkeyopt opt:value\fR" 4 .IX Item "-pkeyopt opt:value" set the public key algorithm option \fBopt\fR to \fBvalue\fR. The precise set of options supported depends on the public key algorithm used and its implementation. See \fB\s-1KEY GENERATION OPTIONS\s0\fR in the \fBgenpkey\fR manual page for more details. .IP "\fB\-key filename\fR" 4 .IX Item "-key filename" This specifies the file to read the private key from. It also accepts PKCS#8 format private keys for \s-1PEM\s0 format files. .IP "\fB\-keyform PEM|DER\fR" 4 .IX Item "-keyform PEM|DER" the format of the private key file specified in the \fB\-key\fR argument. \s-1PEM\s0 is the default. .IP "\fB\-keyout filename\fR" 4 .IX Item "-keyout filename" this gives the filename to write the newly created private key to. If this option is not specified then the filename present in the configuration file is used. .IP "\fB\-nodes\fR" 4 .IX Item "-nodes" if this option is specified then if a private key is created it will not be encrypted. .IP "\fB\-[digest]\fR" 4 .IX Item "-[digest]" this specifies the message digest to sign the request with (such as \&\fB\-md5\fR, \fB\-sha1\fR). This overrides the digest algorithm specified in the configuration file. .Sp Some public key algorithms may override this choice. For instance, \s-1DSA\s0 signatures always use \s-1SHA1, GOST R 34.10\s0 signatures always use \&\s-1GOST R 34.11\-94 \s0(\fB\-md_gost94\fR). .IP "\fB\-config filename\fR" 4 .IX Item "-config filename" this allows an alternative configuration file to be specified, this overrides the compile time filename or any specified in the \fB\s-1OPENSSL_CONF\s0\fR environment variable. .IP "\fB\-subj arg\fR" 4 .IX Item "-subj arg" sets subject name for new request or supersedes the subject name when processing a request. The arg must be formatted as \fI/type0=value0/type1=value1/type2=...\fR, characters may be escaped by \e (backslash), no spaces are skipped. .IP "\fB\-multivalue\-rdn\fR" 4 .IX Item "-multivalue-rdn" this option causes the \-subj argument to be interpreted with full support for multivalued RDNs. Example: .Sp \&\fI/DC=org/DC=OpenSSL/DC=users/UID=123456+CN=John Doe\fR .Sp If \-multi\-rdn is not used then the \s-1UID\s0 value is \fI123456+CN=John Doe\fR. .IP "\fB\-x509\fR" 4 .IX Item "-x509" this option outputs a self signed certificate instead of a certificate request. This is typically used to generate a test certificate or a self signed root \s-1CA.\s0 The extensions added to the certificate (if any) are specified in the configuration file. Unless specified using the \fBset_serial\fR option, a large random number will be used for the serial number. .Sp If existing request is specified with the \fB\-in\fR option, it is converted to the self signed certificate otherwise new request is created. .IP "\fB\-days n\fR" 4 .IX Item "-days n" when the \fB\-x509\fR option is being used this specifies the number of days to certify the certificate for. The default is 30 days. .IP "\fB\-set_serial n\fR" 4 .IX Item "-set_serial n" serial number to use when outputting a self signed certificate. This may be specified as a decimal value or a hex value if preceded by \fB0x\fR. It is possible to use negative serial numbers but this is not recommended. .IP "\fB\-extensions section\fR" 4 .IX Item "-extensions section" .PD 0 .IP "\fB\-reqexts section\fR" 4 .IX Item "-reqexts section" .PD these options specify alternative sections to include certificate extensions (if the \fB\-x509\fR option is present) or certificate request extensions. This allows several different sections to be used in the same configuration file to specify requests for a variety of purposes. .IP "\fB\-utf8\fR" 4 .IX Item "-utf8" this option causes field values to be interpreted as \s-1UTF8\s0 strings, by default they are interpreted as \s-1ASCII.\s0 This means that the field values, whether prompted from a terminal or obtained from a configuration file, must be valid \s-1UTF8\s0 strings. .IP "\fB\-nameopt option\fR" 4 .IX Item "-nameopt option" option which determines how the subject or issuer names are displayed. The \&\fBoption\fR argument can be a single option or multiple options separated by commas. Alternatively the \fB\-nameopt\fR switch may be used more than once to set multiple options. See the \fIx509\fR\|(1) manual page for details. .IP "\fB\-reqopt\fR" 4 .IX Item "-reqopt" customise the output format used with \fB\-text\fR. The \fBoption\fR argument can be a single option or multiple options separated by commas. .Sp See discission of the \fB\-certopt\fR parameter in the \fBx509\fR command. .IP "\fB\-asn1\-kludge\fR" 4 .IX Item "-asn1-kludge" by default the \fBreq\fR command outputs certificate requests containing no attributes in the correct PKCS#10 format. However certain CAs will only accept requests containing no attributes in an invalid form: this option produces this invalid format. .Sp More precisely the \fBAttributes\fR in a PKCS#10 certificate request are defined as a \fB\s-1SET OF\s0 Attribute\fR. They are \fBnot \s-1OPTIONAL\s0\fR so if no attributes are present then they should be encoded as an empty \fB\s-1SET OF\s0\fR. The invalid form does not include the empty \&\fB\s-1SET OF\s0\fR whereas the correct form does. .Sp It should be noted that very few CAs still require the use of this option. .IP "\fB\-no\-asn1\-kludge\fR" 4 .IX Item "-no-asn1-kludge" Reverses effect of \fB\-asn1\-kludge\fR .IP "\fB\-newhdr\fR" 4 .IX Item "-newhdr" Adds the word \fB\s-1NEW\s0\fR to the \s-1PEM\s0 file header and footer lines on the outputted request. Some software (Netscape certificate server) and some CAs need this. .IP "\fB\-batch\fR" 4 .IX Item "-batch" non-interactive mode. .IP "\fB\-verbose\fR" 4 .IX Item "-verbose" print extra details about the operations being performed. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBreq\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .IP "\fB\-keygen_engine id\fR" 4 .IX Item "-keygen_engine id" specifies an engine (by its unique \fBid\fR string) which would be used for key generation operations. .SH "CONFIGURATION FILE FORMAT" .IX Header "CONFIGURATION FILE FORMAT" The configuration options are specified in the \fBreq\fR section of the configuration file. As with all configuration files if no value is specified in the specific section (i.e. \fBreq\fR) then the initial unnamed or \fBdefault\fR section is searched too. .PP The options available are described in detail below. .IP "\fBinput_password output_password\fR" 4 .IX Item "input_password output_password" The passwords for the input private key file (if present) and the output private key file (if one will be created). The command line options \fBpassin\fR and \fBpassout\fR override the configuration file values. .IP "\fBdefault_bits\fR" 4 .IX Item "default_bits" Specifies the default key size in bits. .Sp This option is used in conjunction with the \fB\-new\fR option to generate a new key. It can be overridden by specifying an explicit key size in the \fB\-newkey\fR option. The smallest accepted key size is 512 bits. If no key size is specified then 2048 bits is used. .IP "\fBdefault_keyfile\fR" 4 .IX Item "default_keyfile" This is the default filename to write a private key to. If not specified the key is written to standard output. This can be overridden by the \fB\-keyout\fR option. .IP "\fBoid_file\fR" 4 .IX Item "oid_file" This specifies a file containing additional \fB\s-1OBJECT IDENTIFIERS\s0\fR. Each line of the file should consist of the numerical form of the object identifier followed by white space then the short name followed by white space and finally the long name. .IP "\fBoid_section\fR" 4 .IX Item "oid_section" This specifies a section in the configuration file containing extra object identifiers. Each line should consist of the short name of the object identifier followed by \fB=\fR and the numerical form. The short and long names are the same when this option is used. .IP "\fB\s-1RANDFILE\s0\fR" 4 .IX Item "RANDFILE" This specifies a filename in which random number seed information is placed and read from, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). It is used for private key generation. .IP "\fBencrypt_key\fR" 4 .IX Item "encrypt_key" If this is set to \fBno\fR then if a private key is generated it is \&\fBnot\fR encrypted. This is equivalent to the \fB\-nodes\fR command line option. For compatibility \fBencrypt_rsa_key\fR is an equivalent option. .IP "\fBdefault_md\fR" 4 .IX Item "default_md" This option specifies the digest algorithm to use. Possible values include \fBmd5 sha1 mdc2\fR. This option can be overridden on the command line. .IP "\fBstring_mask\fR" 4 .IX Item "string_mask" This option masks out the use of certain string types in certain fields. Most users will not need to change this option. .Sp It can be set to several values \fBdefault\fR which is also the default option uses PrintableStrings, T61Strings and BMPStrings if the \&\fBpkix\fR value is used then only PrintableStrings and BMPStrings will be used. This follows the \s-1PKIX\s0 recommendation in \s-1RFC2459.\s0 If the \&\fButf8only\fR option is used then only UTF8Strings will be used: this is the \s-1PKIX\s0 recommendation in \s-1RFC2459\s0 after 2003. Finally the \fBnombstr\fR option just uses PrintableStrings and T61Strings: certain software has problems with BMPStrings and UTF8Strings: in particular Netscape. .IP "\fBreq_extensions\fR" 4 .IX Item "req_extensions" this specifies the configuration file section containing a list of extensions to add to the certificate request. It can be overridden by the \fB\-reqexts\fR command line switch. See the \&\fIx509v3_config\fR\|(5) manual page for details of the extension section format. .IP "\fBx509_extensions\fR" 4 .IX Item "x509_extensions" this specifies the configuration file section containing a list of extensions to add to certificate generated when the \fB\-x509\fR switch is used. It can be overridden by the \fB\-extensions\fR command line switch. .IP "\fBprompt\fR" 4 .IX Item "prompt" if set to the value \fBno\fR this disables prompting of certificate fields and just takes values from the config file directly. It also changes the expected format of the \fBdistinguished_name\fR and \fBattributes\fR sections. .IP "\fButf8\fR" 4 .IX Item "utf8" if set to the value \fByes\fR then field values to be interpreted as \s-1UTF8\s0 strings, by default they are interpreted as \s-1ASCII.\s0 This means that the field values, whether prompted from a terminal or obtained from a configuration file, must be valid \s-1UTF8\s0 strings. .IP "\fBattributes\fR" 4 .IX Item "attributes" this specifies the section containing any request attributes: its format is the same as \fBdistinguished_name\fR. Typically these may contain the challengePassword or unstructuredName types. They are currently ignored by OpenSSL's request signing utilities but some CAs might want them. .IP "\fBdistinguished_name\fR" 4 .IX Item "distinguished_name" This specifies the section containing the distinguished name fields to prompt for when generating a certificate or certificate request. The format is described in the next section. .SH "DISTINGUISHED NAME AND ATTRIBUTE SECTION FORMAT" .IX Header "DISTINGUISHED NAME AND ATTRIBUTE SECTION FORMAT" There are two separate formats for the distinguished name and attribute sections. If the \fBprompt\fR option is set to \fBno\fR then these sections just consist of field names and values: for example, .PP .Vb 3 \& CN=My Name \& OU=My Organization \& emailAddress=someone@somewhere.org .Ve .PP This allows external programs (e.g. \s-1GUI\s0 based) to generate a template file with all the field names and values and just pass it to \fBreq\fR. An example of this kind of configuration file is contained in the \fB\s-1EXAMPLES\s0\fR section. .PP Alternatively if the \fBprompt\fR option is absent or not set to \fBno\fR then the file contains field prompting information. It consists of lines of the form: .PP .Vb 4 \& fieldName="prompt" \& fieldName_default="default field value" \& fieldName_min= 2 \& fieldName_max= 4 .Ve .PP \&\*(L"fieldName\*(R" is the field name being used, for example commonName (or \s-1CN\s0). The \*(L"prompt\*(R" string is used to ask the user to enter the relevant details. If the user enters nothing then the default value is used if no default value is present then the field is omitted. A field can still be omitted if a default value is present if the user just enters the '.' character. .PP The number of characters entered must be between the fieldName_min and fieldName_max limits: there may be additional restrictions based on the field being used (for example countryName can only ever be two characters long and must fit in a PrintableString). .PP Some fields (such as organizationName) can be used more than once in a \s-1DN.\s0 This presents a problem because configuration files will not recognize the same name occurring twice. To avoid this problem if the fieldName contains some characters followed by a full stop they will be ignored. So for example a second organizationName can be input by calling it \*(L"1.organizationName\*(R". .PP The actual permitted field names are any object identifier short or long names. These are compiled into OpenSSL and include the usual values such as commonName, countryName, localityName, organizationName, organizationalUnitName, stateOrProvinceName. Additionally emailAddress is include as well as name, surname, givenName initials and dnQualifier. .PP Additional object identifiers can be defined with the \fBoid_file\fR or \&\fBoid_section\fR options in the configuration file. Any additional fields will be treated as though they were a DirectoryString. .SH "EXAMPLES" .IX Header "EXAMPLES" Examine and verify certificate request: .PP .Vb 1 \& openssl req \-in req.pem \-text \-verify \-noout .Ve .PP Create a private key and then generate a certificate request from it: .PP .Vb 2 \& openssl genrsa \-out key.pem 2048 \& openssl req \-new \-key key.pem \-out req.pem .Ve .PP The same but just using req: .PP .Vb 1 \& openssl req \-newkey rsa:2048 \-keyout key.pem \-out req.pem .Ve .PP Generate a self signed root certificate: .PP .Vb 1 \& openssl req \-x509 \-newkey rsa:2048 \-keyout key.pem \-out req.pem .Ve .PP Example of a file pointed to by the \fBoid_file\fR option: .PP .Vb 2 \& 1.2.3.4 shortName A longer Name \& 1.2.3.6 otherName Other longer Name .Ve .PP Example of a section pointed to by \fBoid_section\fR making use of variable expansion: .PP .Vb 2 \& testoid1=1.2.3.5 \& testoid2=${testoid1}.6 .Ve .PP Sample configuration file prompting for field values: .PP .Vb 6 \& [ req ] \& default_bits = 2048 \& default_keyfile = privkey.pem \& distinguished_name = req_distinguished_name \& attributes = req_attributes \& x509_extensions = v3_ca \& \& dirstring_type = nobmp \& \& [ req_distinguished_name ] \& countryName = Country Name (2 letter code) \& countryName_default = AU \& countryName_min = 2 \& countryName_max = 2 \& \& localityName = Locality Name (eg, city) \& \& organizationalUnitName = Organizational Unit Name (eg, section) \& \& commonName = Common Name (eg, YOUR name) \& commonName_max = 64 \& \& emailAddress = Email Address \& emailAddress_max = 40 \& \& [ req_attributes ] \& challengePassword = A challenge password \& challengePassword_min = 4 \& challengePassword_max = 20 \& \& [ v3_ca ] \& \& subjectKeyIdentifier=hash \& authorityKeyIdentifier=keyid:always,issuer:always \& basicConstraints = CA:true .Ve .PP Sample configuration containing all field values: .PP .Vb 1 \& RANDFILE = $ENV::HOME/.rnd \& \& [ req ] \& default_bits = 2048 \& default_keyfile = keyfile.pem \& distinguished_name = req_distinguished_name \& attributes = req_attributes \& prompt = no \& output_password = mypass \& \& [ req_distinguished_name ] \& C = GB \& ST = Test State or Province \& L = Test Locality \& O = Organization Name \& OU = Organizational Unit Name \& CN = Common Name \& emailAddress = test@email.address \& \& [ req_attributes ] \& challengePassword = A challenge password .Ve .SH "NOTES" .IX Header "NOTES" The header and footer lines in the \fB\s-1PEM\s0\fR format are normally: .PP .Vb 2 \& \-\-\-\-\-BEGIN CERTIFICATE REQUEST\-\-\-\-\- \& \-\-\-\-\-END CERTIFICATE REQUEST\-\-\-\-\- .Ve .PP some software (some versions of Netscape certificate server) instead needs: .PP .Vb 2 \& \-\-\-\-\-BEGIN NEW CERTIFICATE REQUEST\-\-\-\-\- \& \-\-\-\-\-END NEW CERTIFICATE REQUEST\-\-\-\-\- .Ve .PP which is produced with the \fB\-newhdr\fR option but is otherwise compatible. Either form is accepted transparently on input. .PP The certificate requests generated by \fBXenroll\fR with \s-1MSIE\s0 have extensions added. It includes the \fBkeyUsage\fR extension which determines the type of key (signature only or general purpose) and any additional OIDs entered by the script in an extendedKeyUsage extension. .SH "DIAGNOSTICS" .IX Header "DIAGNOSTICS" The following messages are frequently asked about: .PP .Vb 2 \& Using configuration from /some/path/openssl.cnf \& Unable to load config info .Ve .PP This is followed some time later by... .PP .Vb 2 \& unable to find \*(Aqdistinguished_name\*(Aq in config \& problems making Certificate Request .Ve .PP The first error message is the clue: it can't find the configuration file! Certain operations (like examining a certificate request) don't need a configuration file so its use isn't enforced. Generation of certificates or requests however does need a configuration file. This could be regarded as a bug. .PP Another puzzling message is this: .PP .Vb 2 \& Attributes: \& a0:00 .Ve .PP this is displayed when no attributes are present and the request includes the correct empty \fB\s-1SET OF\s0\fR structure (the \s-1DER\s0 encoding of which is 0xa0 0x00). If you just see: .PP .Vb 1 \& Attributes: .Ve .PP then the \fB\s-1SET OF\s0\fR is missing and the encoding is technically invalid (but it is tolerated). See the description of the command line option \fB\-asn1\-kludge\fR for more information. .SH "ENVIRONMENT VARIABLES" .IX Header "ENVIRONMENT VARIABLES" The variable \fB\s-1OPENSSL_CONF\s0\fR if defined allows an alternative configuration file location to be specified, it will be overridden by the \fB\-config\fR command line switch if it is present. For compatibility reasons the \fB\s-1SSLEAY_CONF\s0\fR environment variable serves the same purpose but its use is discouraged. .SH "BUGS" .IX Header "BUGS" OpenSSL's handling of T61Strings (aka TeletexStrings) is broken: it effectively treats them as \s-1ISO\-8859\-1 \s0(Latin 1), Netscape and \s-1MSIE\s0 have similar behaviour. This can cause problems if you need characters that aren't available in PrintableStrings and you don't want to or can't use BMPStrings. .PP As a consequence of the T61String handling the only correct way to represent accented characters in OpenSSL is to use a BMPString: unfortunately Netscape currently chokes on these. If you have to use accented characters with Netscape and \s-1MSIE\s0 then you currently need to use the invalid T61String form. .PP The current prompting is not very friendly. It doesn't allow you to confirm what you've just entered. Other things like extensions in certificate requests are statically defined in the configuration file. Some of these: like an email address in subjectAltName should be input by the user. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIx509\fR\|(1), \fIca\fR\|(1), \fIgenrsa\fR\|(1), \&\fIgendsa\fR\|(1), \fIconfig\fR\|(5), \&\fIx509v3_config\fR\|(5) man1/ciphers.1000064400000075256147210533270007142 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CIPHERS 1" .TH CIPHERS 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-ciphers, ciphers \- SSL cipher display and cipher list tool. .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBciphers\fR [\fB\-v\fR] [\fB\-V\fR] [\fB\-ssl2\fR] [\fB\-ssl3\fR] [\fB\-tls1\fR] [\fBcipherlist\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBciphers\fR command converts textual OpenSSL cipher lists into ordered \&\s-1SSL\s0 cipher preference lists. It can be used as a test tool to determine the appropriate cipherlist. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-v\fR" 4 .IX Item "-v" Verbose option. List ciphers with a complete description of protocol version (SSLv2 or SSLv3; the latter includes \s-1TLS\s0), key exchange, authentication, encryption and mac algorithms used along with any key size restrictions and whether the algorithm is classed as an \*(L"export\*(R" cipher. Note that without the \fB\-v\fR option, ciphers may seem to appear twice in a cipher list; this is when similar ciphers are available for \&\s-1SSL\s0 v2 and for \s-1SSL\s0 v3/TLS v1. .IP "\fB\-V\fR" 4 .IX Item "-V" Like \fB\-v\fR, but include cipher suite codes in output (hex format). .IP "\fB\-ssl3\fR, \fB\-tls1\fR" 4 .IX Item "-ssl3, -tls1" This lists ciphers compatible with any of SSLv3, TLSv1, TLSv1.1 or TLSv1.2. .IP "\fB\-ssl2\fR" 4 .IX Item "-ssl2" Only include SSLv2 ciphers. .IP "\fB\-h\fR, \fB\-?\fR" 4 .IX Item "-h, -?" Print a brief usage message. .IP "\fBcipherlist\fR" 4 .IX Item "cipherlist" A cipher list to convert to a cipher preference list. If it is not included then the default cipher list will be used. The format is described below. .SH "CIPHER LIST FORMAT" .IX Header "CIPHER LIST FORMAT" The cipher list consists of one or more \fIcipher strings\fR separated by colons. Commas or spaces are also acceptable separators but colons are normally used. .PP The actual cipher string can take several different forms. .PP It can consist of a single cipher suite such as \fB\s-1RC4\-SHA\s0\fR. .PP It can represent a list of cipher suites containing a certain algorithm, or cipher suites of a certain type. For example \fB\s-1SHA1\s0\fR represents all ciphers suites using the digest algorithm \s-1SHA1\s0 and \fBSSLv3\fR represents all \s-1SSL\s0 v3 algorithms. .PP Lists of cipher suites can be combined in a single cipher string using the \&\fB+\fR character. This is used as a logical \fBand\fR operation. For example \&\fB\s-1SHA1+DES\s0\fR represents all cipher suites containing the \s-1SHA1 \s0\fBand\fR the \s-1DES\s0 algorithms. .PP Each cipher string can be optionally preceded by the characters \fB!\fR, \&\fB\-\fR or \fB+\fR. .PP If \fB!\fR is used then the ciphers are permanently deleted from the list. The ciphers deleted can never reappear in the list even if they are explicitly stated. .PP If \fB\-\fR is used then the ciphers are deleted from the list, but some or all of the ciphers can be added again by later options. .PP If \fB+\fR is used then the ciphers are moved to the end of the list. This option doesn't add any new ciphers it just moves matching existing ones. .PP If none of these characters is present then the string is just interpreted as a list of ciphers to be appended to the current preference list. If the list includes any ciphers already present they will be ignored: that is they will not moved to the end of the list. .PP Additionally the cipher string \fB\f(CB@STRENGTH\fB\fR can be used at any point to sort the current cipher list in order of encryption algorithm key length. .SH "CIPHER STRINGS" .IX Header "CIPHER STRINGS" The following is a list of all permitted cipher strings and their meanings. .IP "\fB\s-1DEFAULT\s0\fR" 4 .IX Item "DEFAULT" The default cipher list. This is determined at compile time and is normally \&\fB\s-1ALL:\s0!EXPORT:!LOW:!aNULL:!eNULL:!SSLv2\fR. When used, this must be the first cipherstring specified. .IP "\fB\s-1COMPLEMENTOFDEFAULT\s0\fR" 4 .IX Item "COMPLEMENTOFDEFAULT" the ciphers included in \fB\s-1ALL\s0\fR, but not enabled by default. Currently this is \fB\s-1ADH\s0\fR and \fB\s-1AECDH\s0\fR. Note that this rule does not cover \fBeNULL\fR, which is not included by \fB\s-1ALL\s0\fR (use \fB\s-1COMPLEMENTOFALL\s0\fR if necessary). .IP "\fB\s-1ALL\s0\fR" 4 .IX Item "ALL" all cipher suites except the \fBeNULL\fR ciphers which must be explicitly enabled; as of OpenSSL, the \fB\s-1ALL\s0\fR cipher suites are reasonably ordered by default .IP "\fB\s-1COMPLEMENTOFALL\s0\fR" 4 .IX Item "COMPLEMENTOFALL" the cipher suites not enabled by \fB\s-1ALL\s0\fR, currently being \fBeNULL\fR. .IP "\fB\s-1HIGH\s0\fR" 4 .IX Item "HIGH" \&\*(L"high\*(R" encryption cipher suites. This currently means those with key lengths larger than 128 bits, and some cipher suites with 128\-bit keys. .IP "\fB\s-1MEDIUM\s0\fR" 4 .IX Item "MEDIUM" \&\*(L"medium\*(R" encryption cipher suites, currently some of those using 128 bit encryption. .IP "\fB\s-1LOW\s0\fR" 4 .IX Item "LOW" Low strength encryption cipher suites, currently those using 64 or 56 bit encryption algorithms but excluding export cipher suites. As of OpenSSL 1.0.2g, these are disabled in default builds. .IP "\fB\s-1EXP\s0\fR, \fB\s-1EXPORT\s0\fR" 4 .IX Item "EXP, EXPORT" Export strength encryption algorithms. Including 40 and 56 bits algorithms. As of OpenSSL 1.0.2g, these are disabled in default builds. .IP "\fB\s-1EXPORT40\s0\fR" 4 .IX Item "EXPORT40" 40\-bit export encryption algorithms As of OpenSSL 1.0.2g, these are disabled in default builds. .IP "\fB\s-1EXPORT56\s0\fR" 4 .IX Item "EXPORT56" 56\-bit export encryption algorithms. In OpenSSL 0.9.8c and later the set of 56 bit export ciphers is empty unless OpenSSL has been explicitly configured with support for experimental ciphers. As of OpenSSL 1.0.2g, these are disabled in default builds. .IP "\fBeNULL\fR, \fB\s-1NULL\s0\fR" 4 .IX Item "eNULL, NULL" The \*(L"\s-1NULL\*(R"\s0 ciphers that is those offering no encryption. Because these offer no encryption at all and are a security risk they are not enabled via either the \&\fB\s-1DEFAULT\s0\fR or \fB\s-1ALL\s0\fR cipher strings. Be careful when building cipherlists out of lower-level primitives such as \&\fBkRSA\fR or \fBaECDSA\fR as these do overlap with the \fBeNULL\fR ciphers. When in doubt, include \fB!eNULL\fR in your cipherlist. .IP "\fBaNULL\fR" 4 .IX Item "aNULL" The cipher suites offering no authentication. This is currently the anonymous \&\s-1DH\s0 algorithms and anonymous \s-1ECDH\s0 algorithms. These cipher suites are vulnerable to a \*(L"man in the middle\*(R" attack and so their use is normally discouraged. These are excluded from the \fB\s-1DEFAULT\s0\fR ciphers, but included in the \fB\s-1ALL\s0\fR ciphers. Be careful when building cipherlists out of lower-level primitives such as \&\fBkDHE\fR or \fB\s-1AES\s0\fR as these do overlap with the \fBaNULL\fR ciphers. When in doubt, include \fB!aNULL\fR in your cipherlist. .IP "\fBkRSA\fR, \fB\s-1RSA\s0\fR" 4 .IX Item "kRSA, RSA" cipher suites using \s-1RSA\s0 key exchange or authentication. \fB\s-1RSA\s0\fR is an alias for \&\fBkRSA\fR. .IP "\fBkDHr\fR, \fBkDHd\fR, \fBkDH\fR" 4 .IX Item "kDHr, kDHd, kDH" cipher suites using \s-1DH\s0 key agreement and \s-1DH\s0 certificates signed by CAs with \s-1RSA\s0 and \s-1DSS\s0 keys or either respectively. .IP "\fBkDHE\fR, \fBkEDH\fR" 4 .IX Item "kDHE, kEDH" cipher suites using ephemeral \s-1DH\s0 key agreement, including anonymous cipher suites. .IP "\fB\s-1DHE\s0\fR, \fB\s-1EDH\s0\fR" 4 .IX Item "DHE, EDH" cipher suites using authenticated ephemeral \s-1DH\s0 key agreement. .IP "\fB\s-1ADH\s0\fR" 4 .IX Item "ADH" anonymous \s-1DH\s0 cipher suites, note that this does not include anonymous Elliptic Curve \s-1DH \s0(\s-1ECDH\s0) cipher suites. .IP "\fB\s-1DH\s0\fR" 4 .IX Item "DH" cipher suites using \s-1DH,\s0 including anonymous \s-1DH,\s0 ephemeral \s-1DH\s0 and fixed \s-1DH.\s0 .IP "\fBkECDHr\fR, \fBkECDHe\fR, \fBkECDH\fR" 4 .IX Item "kECDHr, kECDHe, kECDH" cipher suites using fixed \s-1ECDH\s0 key agreement signed by CAs with \s-1RSA\s0 and \s-1ECDSA\s0 keys or either respectively. .IP "\fBkECDHE\fR, \fBkEECDH\fR" 4 .IX Item "kECDHE, kEECDH" cipher suites using ephemeral \s-1ECDH\s0 key agreement, including anonymous cipher suites. .IP "\fB\s-1ECDHE\s0\fR, \fB\s-1EECDH\s0\fR" 4 .IX Item "ECDHE, EECDH" cipher suites using authenticated ephemeral \s-1ECDH\s0 key agreement. .IP "\fB\s-1AECDH\s0\fR" 4 .IX Item "AECDH" anonymous Elliptic Curve Diffie Hellman cipher suites. .IP "\fB\s-1ECDH\s0\fR" 4 .IX Item "ECDH" cipher suites using \s-1ECDH\s0 key exchange, including anonymous, ephemeral and fixed \s-1ECDH.\s0 .IP "\fBaRSA\fR" 4 .IX Item "aRSA" cipher suites using \s-1RSA\s0 authentication, i.e. the certificates carry \s-1RSA\s0 keys. .IP "\fBaDSS\fR, \fB\s-1DSS\s0\fR" 4 .IX Item "aDSS, DSS" cipher suites using \s-1DSS\s0 authentication, i.e. the certificates carry \s-1DSS\s0 keys. .IP "\fBaDH\fR" 4 .IX Item "aDH" cipher suites effectively using \s-1DH\s0 authentication, i.e. the certificates carry \&\s-1DH\s0 keys. .IP "\fBaECDH\fR" 4 .IX Item "aECDH" cipher suites effectively using \s-1ECDH\s0 authentication, i.e. the certificates carry \s-1ECDH\s0 keys. .IP "\fBaECDSA\fR, \fB\s-1ECDSA\s0\fR" 4 .IX Item "aECDSA, ECDSA" cipher suites using \s-1ECDSA\s0 authentication, i.e. the certificates carry \s-1ECDSA\s0 keys. .IP "\fBkFZA\fR, \fBaFZA\fR, \fBeFZA\fR, \fB\s-1FZA\s0\fR" 4 .IX Item "kFZA, aFZA, eFZA, FZA" ciphers suites using \s-1FORTEZZA\s0 key exchange, authentication, encryption or all \&\s-1FORTEZZA\s0 algorithms. Not implemented. .IP "\fBTLSv1.2\fR, \fBTLSv1\fR, \fBSSLv3\fR, \fBSSLv2\fR" 4 .IX Item "TLSv1.2, TLSv1, SSLv3, SSLv2" \&\s-1TLS\s0 v1.2, \s-1TLS\s0 v1.0, \s-1SSL\s0 v3.0 or \s-1SSL\s0 v2.0 cipher suites respectively. Note: there are no ciphersuites specific to \s-1TLS\s0 v1.1. .IP "\fB\s-1AES128\s0\fR, \fB\s-1AES256\s0\fR, \fB\s-1AES\s0\fR" 4 .IX Item "AES128, AES256, AES" cipher suites using 128 bit \s-1AES, 256\s0 bit \s-1AES\s0 or either 128 or 256 bit \s-1AES.\s0 .IP "\fB\s-1AESGCM\s0\fR" 4 .IX Item "AESGCM" \&\s-1AES\s0 in Galois Counter Mode (\s-1GCM\s0): these ciphersuites are only supported in \s-1TLS\s0 v1.2. .IP "\fB\s-1CAMELLIA128\s0\fR, \fB\s-1CAMELLIA256\s0\fR, \fB\s-1CAMELLIA\s0\fR" 4 .IX Item "CAMELLIA128, CAMELLIA256, CAMELLIA" cipher suites using 128 bit \s-1CAMELLIA, 256\s0 bit \s-1CAMELLIA\s0 or either 128 or 256 bit \&\s-1CAMELLIA.\s0 .IP "\fB3DES\fR" 4 .IX Item "3DES" cipher suites using triple \s-1DES.\s0 .IP "\fB\s-1DES\s0\fR" 4 .IX Item "DES" cipher suites using \s-1DES \s0(not triple \s-1DES\s0). .IP "\fB\s-1RC4\s0\fR" 4 .IX Item "RC4" cipher suites using \s-1RC4.\s0 .IP "\fB\s-1RC2\s0\fR" 4 .IX Item "RC2" cipher suites using \s-1RC2.\s0 .IP "\fB\s-1IDEA\s0\fR" 4 .IX Item "IDEA" cipher suites using \s-1IDEA.\s0 .IP "\fB\s-1SEED\s0\fR" 4 .IX Item "SEED" cipher suites using \s-1SEED.\s0 .IP "\fB\s-1MD5\s0\fR" 4 .IX Item "MD5" cipher suites using \s-1MD5.\s0 .IP "\fB\s-1SHA1\s0\fR, \fB\s-1SHA\s0\fR" 4 .IX Item "SHA1, SHA" cipher suites using \s-1SHA1.\s0 .IP "\fB\s-1SHA256\s0\fR, \fB\s-1SHA384\s0\fR" 4 .IX Item "SHA256, SHA384" ciphersuites using \s-1SHA256\s0 or \s-1SHA384.\s0 .IP "\fBaGOST\fR" 4 .IX Item "aGOST" cipher suites using \s-1GOST R 34.10 \s0(either 2001 or 94) for authenticaction (needs an engine supporting \s-1GOST\s0 algorithms). .IP "\fBaGOST01\fR" 4 .IX Item "aGOST01" cipher suites using \s-1GOST R 34.10\-2001\s0 authentication. .IP "\fBaGOST94\fR" 4 .IX Item "aGOST94" cipher suites using \s-1GOST R 34.10\-94\s0 authentication (note that R 34.10\-94 standard has been expired so use \s-1GOST R 34.10\-2001\s0) .IP "\fBkGOST\fR" 4 .IX Item "kGOST" cipher suites, using \s-1VKO 34.10\s0 key exchange, specified in the \s-1RFC 4357.\s0 .IP "\fB\s-1GOST94\s0\fR" 4 .IX Item "GOST94" cipher suites, using \s-1HMAC\s0 based on \s-1GOST R 34.11\-94.\s0 .IP "\fB\s-1GOST89MAC\s0\fR" 4 .IX Item "GOST89MAC" cipher suites using \s-1GOST 28147\-89 MAC \s0\fBinstead of\fR \s-1HMAC.\s0 .IP "\fB\s-1PSK\s0\fR" 4 .IX Item "PSK" cipher suites using pre-shared keys (\s-1PSK\s0). .IP "\fB\s-1SUITEB128\s0\fR, \fB\s-1SUITEB128ONLY\s0\fR, \fB\s-1SUITEB192\s0\fR" 4 .IX Item "SUITEB128, SUITEB128ONLY, SUITEB192" enables suite B mode operation using 128 (permitting 192 bit mode by peer) 128 bit (not permitting 192 bit by peer) or 192 bit level of security respectively. If used these cipherstrings should appear first in the cipher list and anything after them is ignored. Setting Suite B mode has additional consequences required to comply with \s-1RFC6460.\s0 In particular the supported signature algorithms is reduced to support only \s-1ECDSA\s0 and \s-1SHA256\s0 or \s-1SHA384,\s0 only the elliptic curves P\-256 and P\-384 can be used and only the two suite B compliant ciphersuites (\s-1ECDHE\-ECDSA\-AES128\-GCM\-SHA256\s0 and \&\s-1ECDHE\-ECDSA\-AES256\-GCM\-SHA384\s0) are permissible. .SH "CIPHER SUITE NAMES" .IX Header "CIPHER SUITE NAMES" The following lists give the \s-1SSL\s0 or \s-1TLS\s0 cipher suites names from the relevant specification and their OpenSSL equivalents. It should be noted, that several cipher suite names do not include the authentication used, e.g. \s-1DES\-CBC3\-SHA.\s0 In these cases, \s-1RSA\s0 authentication is used. .SS "\s-1SSL\s0 v3.0 cipher suites." .IX Subsection "SSL v3.0 cipher suites." .Vb 10 \& SSL_RSA_WITH_NULL_MD5 NULL\-MD5 \& SSL_RSA_WITH_NULL_SHA NULL\-SHA \& SSL_RSA_EXPORT_WITH_RC4_40_MD5 EXP\-RC4\-MD5 \& SSL_RSA_WITH_RC4_128_MD5 RC4\-MD5 \& SSL_RSA_WITH_RC4_128_SHA RC4\-SHA \& SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5 EXP\-RC2\-CBC\-MD5 \& SSL_RSA_WITH_IDEA_CBC_SHA IDEA\-CBC\-SHA \& SSL_RSA_EXPORT_WITH_DES40_CBC_SHA EXP\-DES\-CBC\-SHA \& SSL_RSA_WITH_DES_CBC_SHA DES\-CBC\-SHA \& SSL_RSA_WITH_3DES_EDE_CBC_SHA DES\-CBC3\-SHA \& \& SSL_DH_DSS_WITH_DES_CBC_SHA DH\-DSS\-DES\-CBC\-SHA \& SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA DH\-DSS\-DES\-CBC3\-SHA \& SSL_DH_RSA_WITH_DES_CBC_SHA DH\-RSA\-DES\-CBC\-SHA \& SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA DH\-RSA\-DES\-CBC3\-SHA \& SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA EXP\-EDH\-DSS\-DES\-CBC\-SHA \& SSL_DHE_DSS_WITH_DES_CBC_SHA EDH\-DSS\-CBC\-SHA \& SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA EDH\-DSS\-DES\-CBC3\-SHA \& SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA EXP\-EDH\-RSA\-DES\-CBC\-SHA \& SSL_DHE_RSA_WITH_DES_CBC_SHA EDH\-RSA\-DES\-CBC\-SHA \& SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA EDH\-RSA\-DES\-CBC3\-SHA \& \& SSL_DH_anon_EXPORT_WITH_RC4_40_MD5 EXP\-ADH\-RC4\-MD5 \& SSL_DH_anon_WITH_RC4_128_MD5 ADH\-RC4\-MD5 \& SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA EXP\-ADH\-DES\-CBC\-SHA \& SSL_DH_anon_WITH_DES_CBC_SHA ADH\-DES\-CBC\-SHA \& SSL_DH_anon_WITH_3DES_EDE_CBC_SHA ADH\-DES\-CBC3\-SHA \& \& SSL_FORTEZZA_KEA_WITH_NULL_SHA Not implemented. \& SSL_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA Not implemented. \& SSL_FORTEZZA_KEA_WITH_RC4_128_SHA Not implemented. .Ve .SS "\s-1TLS\s0 v1.0 cipher suites." .IX Subsection "TLS v1.0 cipher suites." .Vb 10 \& TLS_RSA_WITH_NULL_MD5 NULL\-MD5 \& TLS_RSA_WITH_NULL_SHA NULL\-SHA \& TLS_RSA_EXPORT_WITH_RC4_40_MD5 EXP\-RC4\-MD5 \& TLS_RSA_WITH_RC4_128_MD5 RC4\-MD5 \& TLS_RSA_WITH_RC4_128_SHA RC4\-SHA \& TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 EXP\-RC2\-CBC\-MD5 \& TLS_RSA_WITH_IDEA_CBC_SHA IDEA\-CBC\-SHA \& TLS_RSA_EXPORT_WITH_DES40_CBC_SHA EXP\-DES\-CBC\-SHA \& TLS_RSA_WITH_DES_CBC_SHA DES\-CBC\-SHA \& TLS_RSA_WITH_3DES_EDE_CBC_SHA DES\-CBC3\-SHA \& \& TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA Not implemented. \& TLS_DH_DSS_WITH_DES_CBC_SHA Not implemented. \& TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA Not implemented. \& TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA Not implemented. \& TLS_DH_RSA_WITH_DES_CBC_SHA Not implemented. \& TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA Not implemented. \& TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA EXP\-EDH\-DSS\-DES\-CBC\-SHA \& TLS_DHE_DSS_WITH_DES_CBC_SHA EDH\-DSS\-CBC\-SHA \& TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA EDH\-DSS\-DES\-CBC3\-SHA \& TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA EXP\-EDH\-RSA\-DES\-CBC\-SHA \& TLS_DHE_RSA_WITH_DES_CBC_SHA EDH\-RSA\-DES\-CBC\-SHA \& TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA EDH\-RSA\-DES\-CBC3\-SHA \& \& TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 EXP\-ADH\-RC4\-MD5 \& TLS_DH_anon_WITH_RC4_128_MD5 ADH\-RC4\-MD5 \& TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA EXP\-ADH\-DES\-CBC\-SHA \& TLS_DH_anon_WITH_DES_CBC_SHA ADH\-DES\-CBC\-SHA \& TLS_DH_anon_WITH_3DES_EDE_CBC_SHA ADH\-DES\-CBC3\-SHA .Ve .SS "\s-1AES\s0 ciphersuites from \s-1RFC3268,\s0 extending \s-1TLS\s0 v1.0" .IX Subsection "AES ciphersuites from RFC3268, extending TLS v1.0" .Vb 2 \& TLS_RSA_WITH_AES_128_CBC_SHA AES128\-SHA \& TLS_RSA_WITH_AES_256_CBC_SHA AES256\-SHA \& \& TLS_DH_DSS_WITH_AES_128_CBC_SHA DH\-DSS\-AES128\-SHA \& TLS_DH_DSS_WITH_AES_256_CBC_SHA DH\-DSS\-AES256\-SHA \& TLS_DH_RSA_WITH_AES_128_CBC_SHA DH\-RSA\-AES128\-SHA \& TLS_DH_RSA_WITH_AES_256_CBC_SHA DH\-RSA\-AES256\-SHA \& \& TLS_DHE_DSS_WITH_AES_128_CBC_SHA DHE\-DSS\-AES128\-SHA \& TLS_DHE_DSS_WITH_AES_256_CBC_SHA DHE\-DSS\-AES256\-SHA \& TLS_DHE_RSA_WITH_AES_128_CBC_SHA DHE\-RSA\-AES128\-SHA \& TLS_DHE_RSA_WITH_AES_256_CBC_SHA DHE\-RSA\-AES256\-SHA \& \& TLS_DH_anon_WITH_AES_128_CBC_SHA ADH\-AES128\-SHA \& TLS_DH_anon_WITH_AES_256_CBC_SHA ADH\-AES256\-SHA .Ve .SS "Camellia ciphersuites from \s-1RFC4132,\s0 extending \s-1TLS\s0 v1.0" .IX Subsection "Camellia ciphersuites from RFC4132, extending TLS v1.0" .Vb 2 \& TLS_RSA_WITH_CAMELLIA_128_CBC_SHA CAMELLIA128\-SHA \& TLS_RSA_WITH_CAMELLIA_256_CBC_SHA CAMELLIA256\-SHA \& \& TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA DH\-DSS\-CAMELLIA128\-SHA \& TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA DH\-DSS\-CAMELLIA256\-SHA \& TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA DH\-RSA\-CAMELLIA128\-SHA \& TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA DH\-RSA\-CAMELLIA256\-SHA \& \& TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA DHE\-DSS\-CAMELLIA128\-SHA \& TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA DHE\-DSS\-CAMELLIA256\-SHA \& TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA DHE\-RSA\-CAMELLIA128\-SHA \& TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA DHE\-RSA\-CAMELLIA256\-SHA \& \& TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA ADH\-CAMELLIA128\-SHA \& TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA ADH\-CAMELLIA256\-SHA .Ve .SS "\s-1SEED\s0 ciphersuites from \s-1RFC4162,\s0 extending \s-1TLS\s0 v1.0" .IX Subsection "SEED ciphersuites from RFC4162, extending TLS v1.0" .Vb 1 \& TLS_RSA_WITH_SEED_CBC_SHA SEED\-SHA \& \& TLS_DH_DSS_WITH_SEED_CBC_SHA DH\-DSS\-SEED\-SHA \& TLS_DH_RSA_WITH_SEED_CBC_SHA DH\-RSA\-SEED\-SHA \& \& TLS_DHE_DSS_WITH_SEED_CBC_SHA DHE\-DSS\-SEED\-SHA \& TLS_DHE_RSA_WITH_SEED_CBC_SHA DHE\-RSA\-SEED\-SHA \& \& TLS_DH_anon_WITH_SEED_CBC_SHA ADH\-SEED\-SHA .Ve .SS "\s-1GOST\s0 ciphersuites from draft-chudov-cryptopro-cptls, extending \s-1TLS\s0 v1.0" .IX Subsection "GOST ciphersuites from draft-chudov-cryptopro-cptls, extending TLS v1.0" Note: these ciphers require an engine which including \s-1GOST\s0 cryptographic algorithms, such as the \fBccgost\fR engine, included in the OpenSSL distribution. .PP .Vb 4 \& TLS_GOSTR341094_WITH_28147_CNT_IMIT GOST94\-GOST89\-GOST89 \& TLS_GOSTR341001_WITH_28147_CNT_IMIT GOST2001\-GOST89\-GOST89 \& TLS_GOSTR341094_WITH_NULL_GOSTR3411 GOST94\-NULL\-GOST94 \& TLS_GOSTR341001_WITH_NULL_GOSTR3411 GOST2001\-NULL\-GOST94 .Ve .SS "Additional Export 1024 and other cipher suites" .IX Subsection "Additional Export 1024 and other cipher suites" Note: these ciphers can also be used in \s-1SSL\s0 v3. .PP .Vb 5 \& TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA EXP1024\-DES\-CBC\-SHA \& TLS_RSA_EXPORT1024_WITH_RC4_56_SHA EXP1024\-RC4\-SHA \& TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA EXP1024\-DHE\-DSS\-DES\-CBC\-SHA \& TLS_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA EXP1024\-DHE\-DSS\-RC4\-SHA \& TLS_DHE_DSS_WITH_RC4_128_SHA DHE\-DSS\-RC4\-SHA .Ve .SS "Elliptic curve cipher suites." .IX Subsection "Elliptic curve cipher suites." .Vb 5 \& TLS_ECDH_RSA_WITH_NULL_SHA ECDH\-RSA\-NULL\-SHA \& TLS_ECDH_RSA_WITH_RC4_128_SHA ECDH\-RSA\-RC4\-SHA \& TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA ECDH\-RSA\-DES\-CBC3\-SHA \& TLS_ECDH_RSA_WITH_AES_128_CBC_SHA ECDH\-RSA\-AES128\-SHA \& TLS_ECDH_RSA_WITH_AES_256_CBC_SHA ECDH\-RSA\-AES256\-SHA \& \& TLS_ECDH_ECDSA_WITH_NULL_SHA ECDH\-ECDSA\-NULL\-SHA \& TLS_ECDH_ECDSA_WITH_RC4_128_SHA ECDH\-ECDSA\-RC4\-SHA \& TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA ECDH\-ECDSA\-DES\-CBC3\-SHA \& TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA ECDH\-ECDSA\-AES128\-SHA \& TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA ECDH\-ECDSA\-AES256\-SHA \& \& TLS_ECDHE_RSA_WITH_NULL_SHA ECDHE\-RSA\-NULL\-SHA \& TLS_ECDHE_RSA_WITH_RC4_128_SHA ECDHE\-RSA\-RC4\-SHA \& TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA ECDHE\-RSA\-DES\-CBC3\-SHA \& TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA ECDHE\-RSA\-AES128\-SHA \& TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA ECDHE\-RSA\-AES256\-SHA \& \& TLS_ECDHE_ECDSA_WITH_NULL_SHA ECDHE\-ECDSA\-NULL\-SHA \& TLS_ECDHE_ECDSA_WITH_RC4_128_SHA ECDHE\-ECDSA\-RC4\-SHA \& TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA ECDHE\-ECDSA\-DES\-CBC3\-SHA \& TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA ECDHE\-ECDSA\-AES128\-SHA \& TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA ECDHE\-ECDSA\-AES256\-SHA \& \& TLS_ECDH_anon_WITH_NULL_SHA AECDH\-NULL\-SHA \& TLS_ECDH_anon_WITH_RC4_128_SHA AECDH\-RC4\-SHA \& TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA AECDH\-DES\-CBC3\-SHA \& TLS_ECDH_anon_WITH_AES_128_CBC_SHA AECDH\-AES128\-SHA \& TLS_ECDH_anon_WITH_AES_256_CBC_SHA AECDH\-AES256\-SHA .Ve .SS "\s-1TLS\s0 v1.2 cipher suites" .IX Subsection "TLS v1.2 cipher suites" .Vb 1 \& TLS_RSA_WITH_NULL_SHA256 NULL\-SHA256 \& \& TLS_RSA_WITH_AES_128_CBC_SHA256 AES128\-SHA256 \& TLS_RSA_WITH_AES_256_CBC_SHA256 AES256\-SHA256 \& TLS_RSA_WITH_AES_128_GCM_SHA256 AES128\-GCM\-SHA256 \& TLS_RSA_WITH_AES_256_GCM_SHA384 AES256\-GCM\-SHA384 \& \& TLS_DH_RSA_WITH_AES_128_CBC_SHA256 DH\-RSA\-AES128\-SHA256 \& TLS_DH_RSA_WITH_AES_256_CBC_SHA256 DH\-RSA\-AES256\-SHA256 \& TLS_DH_RSA_WITH_AES_128_GCM_SHA256 DH\-RSA\-AES128\-GCM\-SHA256 \& TLS_DH_RSA_WITH_AES_256_GCM_SHA384 DH\-RSA\-AES256\-GCM\-SHA384 \& \& TLS_DH_DSS_WITH_AES_128_CBC_SHA256 DH\-DSS\-AES128\-SHA256 \& TLS_DH_DSS_WITH_AES_256_CBC_SHA256 DH\-DSS\-AES256\-SHA256 \& TLS_DH_DSS_WITH_AES_128_GCM_SHA256 DH\-DSS\-AES128\-GCM\-SHA256 \& TLS_DH_DSS_WITH_AES_256_GCM_SHA384 DH\-DSS\-AES256\-GCM\-SHA384 \& \& TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 DHE\-RSA\-AES128\-SHA256 \& TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 DHE\-RSA\-AES256\-SHA256 \& TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 DHE\-RSA\-AES128\-GCM\-SHA256 \& TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 DHE\-RSA\-AES256\-GCM\-SHA384 \& \& TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 DHE\-DSS\-AES128\-SHA256 \& TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 DHE\-DSS\-AES256\-SHA256 \& TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 DHE\-DSS\-AES128\-GCM\-SHA256 \& TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 DHE\-DSS\-AES256\-GCM\-SHA384 \& \& TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 ECDH\-RSA\-AES128\-SHA256 \& TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 ECDH\-RSA\-AES256\-SHA384 \& TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 ECDH\-RSA\-AES128\-GCM\-SHA256 \& TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 ECDH\-RSA\-AES256\-GCM\-SHA384 \& \& TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 ECDH\-ECDSA\-AES128\-SHA256 \& TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 ECDH\-ECDSA\-AES256\-SHA384 \& TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 ECDH\-ECDSA\-AES128\-GCM\-SHA256 \& TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 ECDH\-ECDSA\-AES256\-GCM\-SHA384 \& \& TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 ECDHE\-RSA\-AES128\-SHA256 \& TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 ECDHE\-RSA\-AES256\-SHA384 \& TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ECDHE\-RSA\-AES128\-GCM\-SHA256 \& TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 ECDHE\-RSA\-AES256\-GCM\-SHA384 \& \& TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 ECDHE\-ECDSA\-AES128\-SHA256 \& TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 ECDHE\-ECDSA\-AES256\-SHA384 \& TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 ECDHE\-ECDSA\-AES128\-GCM\-SHA256 \& TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 ECDHE\-ECDSA\-AES256\-GCM\-SHA384 \& \& TLS_DH_anon_WITH_AES_128_CBC_SHA256 ADH\-AES128\-SHA256 \& TLS_DH_anon_WITH_AES_256_CBC_SHA256 ADH\-AES256\-SHA256 \& TLS_DH_anon_WITH_AES_128_GCM_SHA256 ADH\-AES128\-GCM\-SHA256 \& TLS_DH_anon_WITH_AES_256_GCM_SHA384 ADH\-AES256\-GCM\-SHA384 .Ve .SS "Pre shared keying (\s-1PSK\s0) cipheruites" .IX Subsection "Pre shared keying (PSK) cipheruites" .Vb 4 \& TLS_PSK_WITH_RC4_128_SHA PSK\-RC4\-SHA \& TLS_PSK_WITH_3DES_EDE_CBC_SHA PSK\-3DES\-EDE\-CBC\-SHA \& TLS_PSK_WITH_AES_128_CBC_SHA PSK\-AES128\-CBC\-SHA \& TLS_PSK_WITH_AES_256_CBC_SHA PSK\-AES256\-CBC\-SHA .Ve .SS "Deprecated \s-1SSL\s0 v2.0 cipher suites." .IX Subsection "Deprecated SSL v2.0 cipher suites." .Vb 7 \& SSL_CK_RC4_128_WITH_MD5 RC4\-MD5 \& SSL_CK_RC4_128_EXPORT40_WITH_MD5 Not implemented. \& SSL_CK_RC2_128_CBC_WITH_MD5 RC2\-CBC\-MD5 \& SSL_CK_RC2_128_CBC_EXPORT40_WITH_MD5 Not implemented. \& SSL_CK_IDEA_128_CBC_WITH_MD5 IDEA\-CBC\-MD5 \& SSL_CK_DES_64_CBC_WITH_MD5 Not implemented. \& SSL_CK_DES_192_EDE3_CBC_WITH_MD5 DES\-CBC3\-MD5 .Ve .SH "NOTES" .IX Header "NOTES" Some compiled versions of OpenSSL may not include all the ciphers listed here because some ciphers were excluded at compile time. .SH "EXAMPLES" .IX Header "EXAMPLES" Verbose listing of all OpenSSL ciphers including \s-1NULL\s0 ciphers: .PP .Vb 1 \& openssl ciphers \-v \*(AqALL:eNULL\*(Aq .Ve .PP Include all ciphers except \s-1NULL\s0 and anonymous \s-1DH\s0 then sort by strength: .PP .Vb 1 \& openssl ciphers \-v \*(AqALL:!ADH:@STRENGTH\*(Aq .Ve .PP Include all ciphers except ones with no encryption (eNULL) or no authentication (aNULL): .PP .Vb 1 \& openssl ciphers \-v \*(AqALL:!aNULL\*(Aq .Ve .PP Include only 3DES ciphers and then place \s-1RSA\s0 ciphers last: .PP .Vb 1 \& openssl ciphers \-v \*(Aq3DES:+RSA\*(Aq .Ve .PP Include all \s-1RC4\s0 ciphers but leave out those without authentication: .PP .Vb 1 \& openssl ciphers \-v \*(AqRC4:!COMPLEMENTOFDEFAULT\*(Aq .Ve .PP Include all chiphers with \s-1RSA\s0 authentication but leave out ciphers without encryption. .PP .Vb 1 \& openssl ciphers \-v \*(AqRSA:!COMPLEMENTOFALL\*(Aq .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIs_client\fR\|(1), \fIs_server\fR\|(1), \fIssl\fR\|(3) .SH "HISTORY" .IX Header "HISTORY" The \fB\s-1COMPLENTOFALL\s0\fR and \fB\s-1COMPLEMENTOFDEFAULT\s0\fR selection options for cipherlist strings were added in OpenSSL 0.9.7. The \fB\-V\fR option for the \fBciphers\fR command was added in OpenSSL 1.0.0. man1/rand.1000064400000012323147210533270006413 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RAND 1" .TH RAND 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-rand, rand \- generate pseudo\-random bytes .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl rand\fR [\fB\-out\fR \fIfile\fR] [\fB\-rand\fR \fIfile(s)\fR] [\fB\-base64\fR] [\fB\-hex\fR] \&\fInum\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBrand\fR command outputs \fInum\fR pseudo-random bytes after seeding the random number generator once. As in other \fBopenssl\fR command line tools, \s-1PRNG\s0 seeding uses the file \fI\f(CI$HOME\fI/\fR\fB.rnd\fR or \fB.rnd\fR in addition to the files given in the \fB\-rand\fR option. A new \&\fI\f(CI$HOME\fI\fR/\fB.rnd\fR or \fB.rnd\fR file will be written back if enough seeding was obtained from these sources. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-out\fR \fIfile\fR" 4 .IX Item "-out file" Write to \fIfile\fR instead of standard output. .IP "\fB\-rand\fR \fIfile(s)\fR" 4 .IX Item "-rand file(s)" Use specified file or files or \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)) for seeding the random number generator. Multiple files can be specified separated by a OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fB\-base64\fR" 4 .IX Item "-base64" Perform base64 encoding on the output. .IP "\fB\-hex\fR" 4 .IX Item "-hex" Show the output as a hex string. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIRAND_bytes\fR\|(3) man1/speed.1000064400000011763147210533270006576 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SPEED 1" .TH SPEED 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-speed, speed \- test library performance .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl speed\fR [\fB\-engine id\fR] [\fBmd2\fR] [\fBmdc2\fR] [\fBmd5\fR] [\fBhmac\fR] [\fBsha1\fR] [\fBrmd160\fR] [\fBidea-cbc\fR] [\fBrc2\-cbc\fR] [\fBrc5\-cbc\fR] [\fBbf-cbc\fR] [\fBdes-cbc\fR] [\fBdes\-ede3\fR] [\fBrc4\fR] [\fBrsa512\fR] [\fBrsa1024\fR] [\fBrsa2048\fR] [\fBrsa4096\fR] [\fBdsa512\fR] [\fBdsa1024\fR] [\fBdsa2048\fR] [\fBidea\fR] [\fBrc2\fR] [\fBdes\fR] [\fBrsa\fR] [\fBblowfish\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" This command is used to test the performance of cryptographic algorithms. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBspeed\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .IP "\fB[zero or more test algorithms]\fR" 4 .IX Item "[zero or more test algorithms]" If any options are given, \fBspeed\fR tests those algorithms, otherwise all of the above are tested. man1/passwd.1000064400000013705147210533270006775 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PASSWD 1" .TH PASSWD 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-passwd, passwd \- compute password hashes .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl passwd\fR [\fB\-crypt\fR] [\fB\-1\fR] [\fB\-apr1\fR] [\fB\-salt\fR \fIstring\fR] [\fB\-in\fR \fIfile\fR] [\fB\-stdin\fR] [\fB\-noverify\fR] [\fB\-quiet\fR] [\fB\-table\fR] {\fIpassword\fR} .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBpasswd\fR command computes the hash of a password typed at run-time or the hash of each password in a list. The password list is taken from the named file for option \fB\-in file\fR, from stdin for option \fB\-stdin\fR, or from the command line, or from the terminal otherwise. The Unix standard algorithm \fBcrypt\fR and the MD5\-based \s-1BSD\s0 password algorithm \fB1\fR and its Apache variant \fBapr1\fR are available. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-crypt\fR" 4 .IX Item "-crypt" Use the \fBcrypt\fR algorithm (default). .IP "\fB\-1\fR" 4 .IX Item "-1" Use the \s-1MD5\s0 based \s-1BSD\s0 password algorithm \fB1\fR. .IP "\fB\-apr1\fR" 4 .IX Item "-apr1" Use the \fBapr1\fR algorithm (Apache variant of the \s-1BSD\s0 algorithm). .IP "\fB\-salt\fR \fIstring\fR" 4 .IX Item "-salt string" Use the specified salt. When reading a password from the terminal, this implies \fB\-noverify\fR. .IP "\fB\-in\fR \fIfile\fR" 4 .IX Item "-in file" Read passwords from \fIfile\fR. .IP "\fB\-stdin\fR" 4 .IX Item "-stdin" Read passwords from \fBstdin\fR. .IP "\fB\-noverify\fR" 4 .IX Item "-noverify" Don't verify when reading a password from the terminal. .IP "\fB\-quiet\fR" 4 .IX Item "-quiet" Don't output warnings when passwords given at the command line are truncated. .IP "\fB\-table\fR" 4 .IX Item "-table" In the output list, prepend the cleartext password and a \s-1TAB\s0 character to each password hash. .SH "EXAMPLES" .IX Header "EXAMPLES" \&\fBopenssl passwd \-crypt \-salt xx password\fR prints \fBxxj31ZMTZzkVA\fR. .PP \&\fBopenssl passwd \-1 \-salt xxxxxxxx password\fR prints \fB\f(CB$1\fB$xxxxxxxx$UYCIxa628.9qXjpQCjM4a.\fR. .PP \&\fBopenssl passwd \-apr1 \-salt xxxxxxxx password\fR prints \fB\f(CB$apr1\fB$xxxxxxxx$dxHfLAsjHkDRmG83UXe8K0\fR. man1/openssl.1000064400000037274147210533270007166 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "OPENSSL 1" .TH OPENSSL 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl \- OpenSSL command line tool .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \&\fIcommand\fR [ \fIcommand_opts\fR ] [ \fIcommand_args\fR ] .PP \&\fBopenssl\fR [ \fBlist-standard-commands\fR | \fBlist-message-digest-commands\fR | \fBlist-cipher-commands\fR | \fBlist-cipher-algorithms\fR | \fBlist-message-digest-algorithms\fR | \fBlist-public-key-algorithms\fR] .PP \&\fBopenssl\fR \fBno\-\fR\fI\s-1XXX\s0\fR [ \fIarbitrary options\fR ] .SH "DESCRIPTION" .IX Header "DESCRIPTION" OpenSSL is a cryptography toolkit implementing the Secure Sockets Layer (\s-1SSL\s0 v2/v3) and Transport Layer Security (\s-1TLS\s0 v1) network protocols and related cryptography standards required by them. .PP The \fBopenssl\fR program is a command line tool for using the various cryptography functions of OpenSSL's \fBcrypto\fR library from the shell. It can be used for .PP .Vb 8 \& o Creation and management of private keys, public keys and parameters \& o Public key cryptographic operations \& o Creation of X.509 certificates, CSRs and CRLs \& o Calculation of Message Digests \& o Encryption and Decryption with Ciphers \& o SSL/TLS Client and Server Tests \& o Handling of S/MIME signed or encrypted mail \& o Time Stamp requests, generation and verification .Ve .SH "COMMAND SUMMARY" .IX Header "COMMAND SUMMARY" The \fBopenssl\fR program provides a rich variety of commands (\fIcommand\fR in the \&\s-1SYNOPSIS\s0 above), each of which often has a wealth of options and arguments (\fIcommand_opts\fR and \fIcommand_args\fR in the \s-1SYNOPSIS\s0). .PP The pseudo-commands \fBlist-standard-commands\fR, \fBlist-message-digest-commands\fR, and \fBlist-cipher-commands\fR output a list (one entry per line) of the names of all standard commands, message digest commands, or cipher commands, respectively, that are available in the present \fBopenssl\fR utility. .PP The pseudo-commands \fBlist-cipher-algorithms\fR and \&\fBlist-message-digest-algorithms\fR list all cipher and message digest names, one entry per line. Aliases are listed as: .PP .Vb 1 \& from => to .Ve .PP The pseudo-command \fBlist-public-key-algorithms\fR lists all supported public key algorithms. .PP The pseudo-command \fBno\-\fR\fI\s-1XXX\s0\fR tests whether a command of the specified name is available. If no command named \fI\s-1XXX\s0\fR exists, it returns 0 (success) and prints \fBno\-\fR\fI\s-1XXX\s0\fR; otherwise it returns 1 and prints \fI\s-1XXX\s0\fR. In both cases, the output goes to \fBstdout\fR and nothing is printed to \fBstderr\fR. Additional command line arguments are always ignored. Since for each cipher there is a command of the same name, this provides an easy way for shell scripts to test for the availability of ciphers in the \fBopenssl\fR program. (\fBno\-\fR\fI\s-1XXX\s0\fR is not able to detect pseudo-commands such as \fBquit\fR, \&\fBlist\-\fR\fI...\fR\fB\-commands\fR, or \fBno\-\fR\fI\s-1XXX\s0\fR itself.) .SS "\s-1STANDARD COMMANDS\s0" .IX Subsection "STANDARD COMMANDS" .IP "\fBasn1parse\fR" 10 .IX Item "asn1parse" Parse an \s-1ASN.1\s0 sequence. .IP "\fBca\fR" 10 .IX Item "ca" Certificate Authority (\s-1CA\s0) Management. .IP "\fBciphers\fR" 10 .IX Item "ciphers" Cipher Suite Description Determination. .IP "\fBcms\fR" 10 .IX Item "cms" \&\s-1CMS \s0(Cryptographic Message Syntax) utility .IP "\fBcrl\fR" 10 .IX Item "crl" Certificate Revocation List (\s-1CRL\s0) Management. .IP "\fBcrl2pkcs7\fR" 10 .IX Item "crl2pkcs7" \&\s-1CRL\s0 to PKCS#7 Conversion. .IP "\fBdgst\fR" 10 .IX Item "dgst" Message Digest Calculation. .IP "\fBdh\fR" 10 .IX Item "dh" Diffie-Hellman Parameter Management. Obsoleted by \fBdhparam\fR. .IP "\fBdhparam\fR" 10 .IX Item "dhparam" Generation and Management of Diffie-Hellman Parameters. Superseded by \&\fBgenpkey\fR and \fBpkeyparam\fR .IP "\fBdsa\fR" 10 .IX Item "dsa" \&\s-1DSA\s0 Data Management. .IP "\fBdsaparam\fR" 10 .IX Item "dsaparam" \&\s-1DSA\s0 Parameter Generation and Management. Superseded by \&\fBgenpkey\fR and \fBpkeyparam\fR .IP "\fBec\fR" 10 .IX Item "ec" \&\s-1EC \s0(Elliptic curve) key processing .IP "\fBecparam\fR" 10 .IX Item "ecparam" \&\s-1EC\s0 parameter manipulation and generation .IP "\fBenc\fR" 10 .IX Item "enc" Encoding with Ciphers. .IP "\fBengine\fR" 10 .IX Item "engine" Engine (loadble module) information and manipulation. .IP "\fBerrstr\fR" 10 .IX Item "errstr" Error Number to Error String Conversion. .IP "\fBgendh\fR" 10 .IX Item "gendh" Generation of Diffie-Hellman Parameters. Obsoleted by \fBdhparam\fR. .IP "\fBgendsa\fR" 10 .IX Item "gendsa" Generation of \s-1DSA\s0 Private Key from Parameters. Superseded by \&\fBgenpkey\fR and \fBpkey\fR .IP "\fBgenpkey\fR" 10 .IX Item "genpkey" Generation of Private Key or Parameters. .IP "\fBgenrsa\fR" 10 .IX Item "genrsa" Generation of \s-1RSA\s0 Private Key. Superceded by \fBgenpkey\fR. .IP "\fBnseq\fR" 10 .IX Item "nseq" Create or examine a netscape certificate sequence .IP "\fBocsp\fR" 10 .IX Item "ocsp" Online Certificate Status Protocol utility. .IP "\fBpasswd\fR" 10 .IX Item "passwd" Generation of hashed passwords. .IP "\fBpkcs12\fR" 10 .IX Item "pkcs12" PKCS#12 Data Management. .IP "\fBpkcs7\fR" 10 .IX Item "pkcs7" PKCS#7 Data Management. .IP "\fBpkey\fR" 10 .IX Item "pkey" Public and private key management. .IP "\fBpkeyparam\fR" 10 .IX Item "pkeyparam" Public key algorithm parameter management. .IP "\fBpkeyutl\fR" 10 .IX Item "pkeyutl" Public key algorithm cryptographic operation utility. .IP "\fBrand\fR" 10 .IX Item "rand" Generate pseudo-random bytes. .IP "\fBreq\fR" 10 .IX Item "req" PKCS#10 X.509 Certificate Signing Request (\s-1CSR\s0) Management. .IP "\fBrsa\fR" 10 .IX Item "rsa" \&\s-1RSA\s0 key management. .IP "\fBrsautl\fR" 10 .IX Item "rsautl" \&\s-1RSA\s0 utility for signing, verification, encryption, and decryption. Superseded by \fBpkeyutl\fR .IP "\fBs_client\fR" 10 .IX Item "s_client" This implements a generic \s-1SSL/TLS\s0 client which can establish a transparent connection to a remote server speaking \s-1SSL/TLS.\s0 It's intended for testing purposes only and provides only rudimentary interface functionality but internally uses mostly all functionality of the OpenSSL \fBssl\fR library. .IP "\fBs_server\fR" 10 .IX Item "s_server" This implements a generic \s-1SSL/TLS\s0 server which accepts connections from remote clients speaking \s-1SSL/TLS.\s0 It's intended for testing purposes only and provides only rudimentary interface functionality but internally uses mostly all functionality of the OpenSSL \fBssl\fR library. It provides both an own command line oriented protocol for testing \s-1SSL\s0 functions and a simple \s-1HTTP\s0 response facility to emulate an SSL/TLS\-aware webserver. .IP "\fBs_time\fR" 10 .IX Item "s_time" \&\s-1SSL\s0 Connection Timer. .IP "\fBsess_id\fR" 10 .IX Item "sess_id" \&\s-1SSL\s0 Session Data Management. .IP "\fBsmime\fR" 10 .IX Item "smime" S/MIME mail processing. .IP "\fBspeed\fR" 10 .IX Item "speed" Algorithm Speed Measurement. .IP "\fBspkac\fR" 10 .IX Item "spkac" \&\s-1SPKAC\s0 printing and generating utility .IP "\fBts\fR" 10 .IX Item "ts" Time Stamping Authority tool (client/server) .IP "\fBverify\fR" 10 .IX Item "verify" X.509 Certificate Verification. .IP "\fBversion\fR" 10 .IX Item "version" OpenSSL Version Information. .IP "\fBx509\fR" 10 .IX Item "x509" X.509 Certificate Data Management. .SS "\s-1MESSAGE DIGEST COMMANDS\s0" .IX Subsection "MESSAGE DIGEST COMMANDS" .IP "\fBmd2\fR" 10 .IX Item "md2" \&\s-1MD2\s0 Digest .IP "\fBmd5\fR" 10 .IX Item "md5" \&\s-1MD5\s0 Digest .IP "\fBmdc2\fR" 10 .IX Item "mdc2" \&\s-1MDC2\s0 Digest .IP "\fBrmd160\fR" 10 .IX Item "rmd160" \&\s-1RMD\-160\s0 Digest .IP "\fBsha\fR" 10 .IX Item "sha" \&\s-1SHA\s0 Digest .IP "\fBsha1\fR" 10 .IX Item "sha1" \&\s-1SHA\-1\s0 Digest .IP "\fBsha224\fR" 10 .IX Item "sha224" \&\s-1SHA\-224\s0 Digest .IP "\fBsha256\fR" 10 .IX Item "sha256" \&\s-1SHA\-256\s0 Digest .IP "\fBsha384\fR" 10 .IX Item "sha384" \&\s-1SHA\-384\s0 Digest .IP "\fBsha512\fR" 10 .IX Item "sha512" \&\s-1SHA\-512\s0 Digest .SS "\s-1ENCODING AND CIPHER COMMANDS\s0" .IX Subsection "ENCODING AND CIPHER COMMANDS" .IP "\fBbase64\fR" 10 .IX Item "base64" Base64 Encoding .IP "\fBbf bf-cbc bf-cfb bf-ecb bf-ofb\fR" 10 .IX Item "bf bf-cbc bf-cfb bf-ecb bf-ofb" Blowfish Cipher .IP "\fBcast cast-cbc\fR" 10 .IX Item "cast cast-cbc" \&\s-1CAST\s0 Cipher .IP "\fBcast5\-cbc cast5\-cfb cast5\-ecb cast5\-ofb\fR" 10 .IX Item "cast5-cbc cast5-cfb cast5-ecb cast5-ofb" \&\s-1CAST5\s0 Cipher .IP "\fBdes des-cbc des-cfb des-ecb des-ede des-ede-cbc des-ede-cfb des-ede-ofb des-ofb\fR" 10 .IX Item "des des-cbc des-cfb des-ecb des-ede des-ede-cbc des-ede-cfb des-ede-ofb des-ofb" \&\s-1DES\s0 Cipher .IP "\fBdes3 desx des\-ede3 des\-ede3\-cbc des\-ede3\-cfb des\-ede3\-ofb\fR" 10 .IX Item "des3 desx des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb" Triple-DES Cipher .IP "\fBidea idea-cbc idea-cfb idea-ecb idea-ofb\fR" 10 .IX Item "idea idea-cbc idea-cfb idea-ecb idea-ofb" \&\s-1IDEA\s0 Cipher .IP "\fBrc2 rc2\-cbc rc2\-cfb rc2\-ecb rc2\-ofb\fR" 10 .IX Item "rc2 rc2-cbc rc2-cfb rc2-ecb rc2-ofb" \&\s-1RC2\s0 Cipher .IP "\fBrc4\fR" 10 .IX Item "rc4" \&\s-1RC4\s0 Cipher .IP "\fBrc5 rc5\-cbc rc5\-cfb rc5\-ecb rc5\-ofb\fR" 10 .IX Item "rc5 rc5-cbc rc5-cfb rc5-ecb rc5-ofb" \&\s-1RC5\s0 Cipher .SH "PASS PHRASE ARGUMENTS" .IX Header "PASS PHRASE ARGUMENTS" Several commands accept password arguments, typically using \fB\-passin\fR and \fB\-passout\fR for input and output passwords respectively. These allow the password to be obtained from a variety of sources. Both of these options take a single argument whose format is described below. If no password argument is given and a password is required then the user is prompted to enter one: this will typically be read from the current terminal with echoing turned off. .IP "\fBpass:password\fR" 10 .IX Item "pass:password" the actual password is \fBpassword\fR. Since the password is visible to utilities (like 'ps' under Unix) this form should only be used where security is not important. .IP "\fBenv:var\fR" 10 .IX Item "env:var" obtain the password from the environment variable \fBvar\fR. Since the environment of other processes is visible on certain platforms (e.g. ps under certain Unix OSes) this option should be used with caution. .IP "\fBfile:pathname\fR" 10 .IX Item "file:pathname" the first line of \fBpathname\fR is the password. If the same \fBpathname\fR argument is supplied to \fB\-passin\fR and \fB\-passout\fR arguments then the first line will be used for the input password and the next line for the output password. \fBpathname\fR need not refer to a regular file: it could for example refer to a device or named pipe. .IP "\fBfd:number\fR" 10 .IX Item "fd:number" read the password from the file descriptor \fBnumber\fR. This can be used to send the data via a pipe for example. .IP "\fBstdin\fR" 10 .IX Item "stdin" read the password from standard input. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIasn1parse\fR\|(1), \fIca\fR\|(1), \fIconfig\fR\|(5), \&\fIcrl\fR\|(1), \fIcrl2pkcs7\fR\|(1), \fIdgst\fR\|(1), \&\fIdhparam\fR\|(1), \fIdsa\fR\|(1), \fIdsaparam\fR\|(1), \&\fIenc\fR\|(1), \fIgendsa\fR\|(1), \fIgenpkey\fR\|(1), \&\fIgenrsa\fR\|(1), \fInseq\fR\|(1), \fIopenssl\fR\|(1), \&\fIpasswd\fR\|(1), \&\fIpkcs12\fR\|(1), \fIpkcs7\fR\|(1), \fIpkcs8\fR\|(1), \&\fIrand\fR\|(1), \fIreq\fR\|(1), \fIrsa\fR\|(1), \&\fIrsautl\fR\|(1), \fIs_client\fR\|(1), \&\fIs_server\fR\|(1), \fIs_time\fR\|(1), \&\fIsmime\fR\|(1), \fIspkac\fR\|(1), \&\fIverify\fR\|(1), \fIversion\fR\|(1), \fIx509\fR\|(1), \&\fIcrypto\fR\|(3), \fIssl\fR\|(3), \fIx509v3_config\fR\|(5) .SH "HISTORY" .IX Header "HISTORY" The \fIopenssl\fR\|(1) document appeared in OpenSSL 0.9.2. The \fBlist\-\fR\fI\s-1XXX\s0\fR\fB\-commands\fR pseudo-commands were added in OpenSSL 0.9.3; The \fBlist\-\fR\fI\s-1XXX\s0\fR\fB\-algorithms\fR pseudo-commands were added in OpenSSL 1.0.0; the \fBno\-\fR\fI\s-1XXX\s0\fR pseudo-commands were added in OpenSSL 0.9.5a. For notes on the availability of other commands, see their individual manual pages. man1/dsaparam.1000064400000016356147210533270007271 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DSAPARAM 1" .TH DSAPARAM 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-dsaparam, dsaparam \- DSA parameter manipulation and generation .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl dsaparam\fR [\fB\-inform DER|PEM\fR] [\fB\-outform DER|PEM\fR] [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-noout\fR] [\fB\-text\fR] [\fB\-C\fR] [\fB\-rand file(s)\fR] [\fB\-genkey\fR] [\fB\-engine id\fR] [\fBnumbits\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" This command is used to manipulate or generate \s-1DSA\s0 parameter files. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-inform DER|PEM\fR" 4 .IX Item "-inform DER|PEM" This specifies the input format. The \fB\s-1DER\s0\fR option uses an \s-1ASN1 DER\s0 encoded form compatible with \s-1RFC2459 \s0(\s-1PKIX\s0) DSS-Parms that is a \s-1SEQUENCE\s0 consisting of p, q and g respectively. The \s-1PEM\s0 form is the default format: it consists of the \fB\s-1DER\s0\fR format base64 encoded with additional header and footer lines. .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read parameters from or standard input if this option is not specified. If the \fBnumbits\fR parameter is included then this option will be ignored. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" This specifies the output filename parameters to. Standard output is used if this option is not present. The output filename should \fBnot\fR be the same as the input filename. .IP "\fB\-noout\fR" 4 .IX Item "-noout" this option inhibits the output of the encoded version of the parameters. .IP "\fB\-text\fR" 4 .IX Item "-text" this option prints out the \s-1DSA\s0 parameters in human readable form. .IP "\fB\-C\fR" 4 .IX Item "-C" this option converts the parameters into C code. The parameters can then be loaded by calling the \fB\f(BIget_dsaXXX()\fB\fR function. .IP "\fB\-genkey\fR" 4 .IX Item "-genkey" this option will generate a \s-1DSA\s0 either using the specified or generated parameters. .IP "\fB\-rand file(s)\fR" 4 .IX Item "-rand file(s)" a file or files containing random data used to seed the random number generator, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). Multiple files can be specified separated by a OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fBnumbits\fR" 4 .IX Item "numbits" this option specifies that a parameter set should be generated of size \&\fBnumbits\fR. It must be the last option. If this option is included then the input file (if any) is ignored. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBdsaparam\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .SH "NOTES" .IX Header "NOTES" \&\s-1PEM\s0 format \s-1DSA\s0 parameters use the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN DSA PARAMETERS\-\-\-\-\- \& \-\-\-\-\-END DSA PARAMETERS\-\-\-\-\- .Ve .PP \&\s-1DSA\s0 parameter generation is a slow process and as a result the same set of \&\s-1DSA\s0 parameters is often used to generate several distinct keys. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIgendsa\fR\|(1), \fIdsa\fR\|(1), \fIgenrsa\fR\|(1), \&\fIrsa\fR\|(1) man1/gendsa.1000064400000014036147210533270006733 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "GENDSA 1" .TH GENDSA 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-gendsa, gendsa \- generate a DSA private key from a set of parameters .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBgendsa\fR [\fB\-out filename\fR] [\fB\-aes128\fR] [\fB\-aes192\fR] [\fB\-aes256\fR] [\fB\-camellia128\fR] [\fB\-camellia192\fR] [\fB\-camellia256\fR] [\fB\-des\fR] [\fB\-des3\fR] [\fB\-idea\fR] [\fB\-rand file(s)\fR] [\fB\-engine id\fR] [\fBparamfile\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBgendsa\fR command generates a \s-1DSA\s0 private key from a \s-1DSA\s0 parameter file (which will be typically generated by the \fBopenssl dsaparam\fR command). .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-aes128|\-aes192|\-aes256|\-camellia128|\-camellia192|\-camellia256|\-des|\-des3|\-idea\fR" 4 .IX Item "-aes128|-aes192|-aes256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea" These options encrypt the private key with specified cipher before outputting it. A pass phrase is prompted for. If none of these options is specified no encryption is used. .IP "\fB\-rand file(s)\fR" 4 .IX Item "-rand file(s)" a file or files containing random data used to seed the random number generator, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). Multiple files can be specified separated by a OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBgendsa\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .IP "\fBparamfile\fR" 4 .IX Item "paramfile" This option specifies the \s-1DSA\s0 parameter file to use. The parameters in this file determine the size of the private key. \s-1DSA\s0 parameters can be generated and examined using the \fBopenssl dsaparam\fR command. .SH "NOTES" .IX Header "NOTES" \&\s-1DSA\s0 key generation is little more than random number generation so it is much quicker that \s-1RSA\s0 key generation for example. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdsaparam\fR\|(1), \fIdsa\fR\|(1), \fIgenrsa\fR\|(1), \&\fIrsa\fR\|(1) man1/rsa.1000064400000025653147210533270006266 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RSA 1" .TH RSA 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-rsa, rsa \- RSA key processing tool .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBrsa\fR [\fB\-inform PEM|NET|DER\fR] [\fB\-outform PEM|NET|DER\fR] [\fB\-in filename\fR] [\fB\-passin arg\fR] [\fB\-out filename\fR] [\fB\-passout arg\fR] [\fB\-sgckey\fR] [\fB\-aes128\fR] [\fB\-aes192\fR] [\fB\-aes256\fR] [\fB\-camellia128\fR] [\fB\-camellia192\fR] [\fB\-camellia256\fR] [\fB\-des\fR] [\fB\-des3\fR] [\fB\-idea\fR] [\fB\-text\fR] [\fB\-noout\fR] [\fB\-modulus\fR] [\fB\-check\fR] [\fB\-pubin\fR] [\fB\-pubout\fR] [\fB\-RSAPublicKey_in\fR] [\fB\-RSAPublicKey_out\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBrsa\fR command processes \s-1RSA\s0 keys. They can be converted between various forms and their components printed out. \fBNote\fR this command uses the traditional SSLeay compatible format for private key encryption: newer applications should use the more secure PKCS#8 format using the \fBpkcs8\fR utility. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-inform DER|NET|PEM\fR" 4 .IX Item "-inform DER|NET|PEM" This specifies the input format. The \fB\s-1DER\s0\fR option uses an \s-1ASN1 DER\s0 encoded form compatible with the PKCS#1 RSAPrivateKey or SubjectPublicKeyInfo format. The \fB\s-1PEM\s0\fR form is the default format: it consists of the \fB\s-1DER\s0\fR format base64 encoded with additional header and footer lines. On input PKCS#8 format private keys are also accepted. The \fB\s-1NET\s0\fR form is a format is described in the \fB\s-1NOTES\s0\fR section. .IP "\fB\-outform DER|NET|PEM\fR" 4 .IX Item "-outform DER|NET|PEM" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read a key from or standard input if this option is not specified. If the key is encrypted a pass phrase will be prompted for. .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the input file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" This specifies the output filename to write a key to or standard output if this option is not specified. If any encryption options are set then a pass phrase will be prompted for. The output filename should \fBnot\fR be the same as the input filename. .IP "\fB\-passout password\fR" 4 .IX Item "-passout password" the output file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-sgckey\fR" 4 .IX Item "-sgckey" use the modified \s-1NET\s0 algorithm used with some versions of Microsoft \s-1IIS\s0 and \s-1SGC\s0 keys. .IP "\fB\-aes128|\-aes192|\-aes256|\-camellia128|\-camellia192|\-camellia256|\-des|\-des3|\-idea\fR" 4 .IX Item "-aes128|-aes192|-aes256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea" These options encrypt the private key with the specified cipher before outputting it. A pass phrase is prompted for. If none of these options is specified the key is written in plain text. This means that using the \fBrsa\fR utility to read in an encrypted key with no encryption option can be used to remove the pass phrase from a key, or by setting the encryption options it can be use to add or change the pass phrase. These options can only be used with \s-1PEM\s0 format output files. .IP "\fB\-text\fR" 4 .IX Item "-text" prints out the various public or private key components in plain text in addition to the encoded version. .IP "\fB\-noout\fR" 4 .IX Item "-noout" this option prevents output of the encoded version of the key. .IP "\fB\-modulus\fR" 4 .IX Item "-modulus" this option prints out the value of the modulus of the key. .IP "\fB\-check\fR" 4 .IX Item "-check" this option checks the consistency of an \s-1RSA\s0 private key. .IP "\fB\-pubin\fR" 4 .IX Item "-pubin" by default a private key is read from the input file: with this option a public key is read instead. .IP "\fB\-pubout\fR" 4 .IX Item "-pubout" by default a private key is output: with this option a public key will be output instead. This option is automatically set if the input is a public key. .IP "\fB\-RSAPublicKey_in\fR, \fB\-RSAPublicKey_out\fR" 4 .IX Item "-RSAPublicKey_in, -RSAPublicKey_out" like \fB\-pubin\fR and \fB\-pubout\fR except \fBRSAPublicKey\fR format is used instead. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBrsa\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .SH "NOTES" .IX Header "NOTES" The \s-1PEM\s0 private key format uses the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN RSA PRIVATE KEY\-\-\-\-\- \& \-\-\-\-\-END RSA PRIVATE KEY\-\-\-\-\- .Ve .PP The \s-1PEM\s0 public key format uses the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN PUBLIC KEY\-\-\-\-\- \& \-\-\-\-\-END PUBLIC KEY\-\-\-\-\- .Ve .PP The \s-1PEM \s0\fBRSAPublicKey\fR format uses the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN RSA PUBLIC KEY\-\-\-\-\- \& \-\-\-\-\-END RSA PUBLIC KEY\-\-\-\-\- .Ve .PP The \fB\s-1NET\s0\fR form is a format compatible with older Netscape servers and Microsoft \s-1IIS \s0.key files, this uses unsalted \s-1RC4\s0 for its encryption. It is not very secure and so should only be used when necessary. .PP Some newer version of \s-1IIS\s0 have additional data in the exported .key files. To use these with the utility, view the file with a binary editor and look for the string \*(L"private-key\*(R", then trace back to the byte sequence 0x30, 0x82 (this is an \s-1ASN1 SEQUENCE\s0). Copy all the data from this point onwards to another file and use that as the input to the \fBrsa\fR utility with the \fB\-inform \s-1NET\s0\fR option. If you get an error after entering the password try the \fB\-sgckey\fR option. .SH "EXAMPLES" .IX Header "EXAMPLES" To remove the pass phrase on an \s-1RSA\s0 private key: .PP .Vb 1 \& openssl rsa \-in key.pem \-out keyout.pem .Ve .PP To encrypt a private key using triple \s-1DES:\s0 .PP .Vb 1 \& openssl rsa \-in key.pem \-des3 \-out keyout.pem .Ve .PP To convert a private key from \s-1PEM\s0 to \s-1DER\s0 format: .PP .Vb 1 \& openssl rsa \-in key.pem \-outform DER \-out keyout.der .Ve .PP To print out the components of a private key to standard output: .PP .Vb 1 \& openssl rsa \-in key.pem \-text \-noout .Ve .PP To just output the public part of a private key: .PP .Vb 1 \& openssl rsa \-in key.pem \-pubout \-out pubkey.pem .Ve .PP Output the public part of a private key in \fBRSAPublicKey\fR format: .PP .Vb 1 \& openssl rsa \-in key.pem \-RSAPublicKey_out \-out pubkey.pem .Ve .SH "BUGS" .IX Header "BUGS" The command line password arguments don't currently work with \&\fB\s-1NET\s0\fR format. .PP There should be an option that automatically handles .key files, without having to manually edit them. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIpkcs8\fR\|(1), \fIdsa\fR\|(1), \fIgenrsa\fR\|(1), \&\fIgendsa\fR\|(1) man1/cms.1000064400000072015147210533270006255 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CMS 1" .TH CMS 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-cms, cms \- CMS utility .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBcms\fR [\fB\-encrypt\fR] [\fB\-decrypt\fR] [\fB\-sign\fR] [\fB\-verify\fR] [\fB\-cmsout\fR] [\fB\-resign\fR] [\fB\-data_create\fR] [\fB\-data_out\fR] [\fB\-digest_create\fR] [\fB\-digest_verify\fR] [\fB\-compress\fR] [\fB\-uncompress\fR] [\fB\-EncryptedData_encrypt\fR] [\fB\-sign_receipt\fR] [\fB\-verify_receipt receipt\fR] [\fB\-in filename\fR] [\fB\-inform SMIME|PEM|DER\fR] [\fB\-rctform SMIME|PEM|DER\fR] [\fB\-out filename\fR] [\fB\-outform SMIME|PEM|DER\fR] [\fB\-stream \-indef \-noindef\fR] [\fB\-noindef\fR] [\fB\-content filename\fR] [\fB\-text\fR] [\fB\-noout\fR] [\fB\-print\fR] [\fB\-CAfile file\fR] [\fB\-CApath dir\fR] [\fB\-no_alt_chains\fR] [\fB\-md digest\fR] [\fB\-[cipher]\fR] [\fB\-nointern\fR] [\fB\-no_signer_cert_verify\fR] [\fB\-nocerts\fR] [\fB\-noattr\fR] [\fB\-nosmimecap\fR] [\fB\-binary\fR] [\fB\-nodetach\fR] [\fB\-certfile file\fR] [\fB\-certsout file\fR] [\fB\-signer file\fR] [\fB\-recip file\fR] [\fB\-keyid\fR] [\fB\-receipt_request_all \-receipt_request_first\fR] [\fB\-receipt_request_from emailaddress\fR] [\fB\-receipt_request_to emailaddress\fR] [\fB\-receipt_request_print\fR] [\fB\-secretkey key\fR] [\fB\-secretkeyid id\fR] [\fB\-econtent_type type\fR] [\fB\-inkey file\fR] [\fB\-keyopt name:parameter\fR] [\fB\-passin arg\fR] [\fB\-rand file(s)\fR] [\fBcert.pem...\fR] [\fB\-to addr\fR] [\fB\-from addr\fR] [\fB\-subject subj\fR] [cert.pem]... .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBcms\fR command handles S/MIME v3.1 mail. It can encrypt, decrypt, sign and verify, compress and uncompress S/MIME messages. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" There are fourteen operation options that set the type of operation to be performed. The meaning of the other options varies according to the operation type. .IP "\fB\-encrypt\fR" 4 .IX Item "-encrypt" encrypt mail for the given recipient certificates. Input file is the message to be encrypted. The output file is the encrypted mail in \s-1MIME\s0 format. The actual \s-1CMS\s0 type is EnvelopedData. .Sp Note that no revocation check is done for the recipient cert, so if that key has been compromised, others may be able to decrypt the text. .IP "\fB\-decrypt\fR" 4 .IX Item "-decrypt" decrypt mail using the supplied certificate and private key. Expects an encrypted mail message in \s-1MIME\s0 format for the input file. The decrypted mail is written to the output file. .IP "\fB\-debug_decrypt\fR" 4 .IX Item "-debug_decrypt" this option sets the \fB\s-1CMS_DEBUG_DECRYPT\s0\fR flag. This option should be used with caution: see the notes section below. .IP "\fB\-sign\fR" 4 .IX Item "-sign" sign mail using the supplied certificate and private key. Input file is the message to be signed. The signed message in \s-1MIME\s0 format is written to the output file. .IP "\fB\-verify\fR" 4 .IX Item "-verify" verify signed mail. Expects a signed mail message on input and outputs the signed data. Both clear text and opaque signing is supported. .IP "\fB\-cmsout\fR" 4 .IX Item "-cmsout" takes an input message and writes out a \s-1PEM\s0 encoded \s-1CMS\s0 structure. .IP "\fB\-resign\fR" 4 .IX Item "-resign" resign a message: take an existing message and one or more new signers. .IP "\fB\-data_create\fR" 4 .IX Item "-data_create" Create a \s-1CMS \s0\fBData\fR type. .IP "\fB\-data_out\fR" 4 .IX Item "-data_out" \&\fBData\fR type and output the content. .IP "\fB\-digest_create\fR" 4 .IX Item "-digest_create" Create a \s-1CMS \s0\fBDigestedData\fR type. .IP "\fB\-digest_verify\fR" 4 .IX Item "-digest_verify" Verify a \s-1CMS \s0\fBDigestedData\fR type and output the content. .IP "\fB\-compress\fR" 4 .IX Item "-compress" Create a \s-1CMS \s0\fBCompressedData\fR type. OpenSSL must be compiled with \fBzlib\fR support for this option to work, otherwise it will output an error. .IP "\fB\-uncompress\fR" 4 .IX Item "-uncompress" Uncompress a \s-1CMS \s0\fBCompressedData\fR type and output the content. OpenSSL must be compiled with \fBzlib\fR support for this option to work, otherwise it will output an error. .IP "\fB\-EncryptedData_encrypt\fR" 4 .IX Item "-EncryptedData_encrypt" Encrypt content using supplied symmetric key and algorithm using a \s-1CMS \&\s0\fBEncrytedData\fR type and output the content. .IP "\fB\-sign_receipt\fR" 4 .IX Item "-sign_receipt" Generate and output a signed receipt for the supplied message. The input message \fBmust\fR contain a signed receipt request. Functionality is otherwise similar to the \fB\-sign\fR operation. .IP "\fB\-verify_receipt receipt\fR" 4 .IX Item "-verify_receipt receipt" Verify a signed receipt in filename \fBreceipt\fR. The input message \fBmust\fR contain the original receipt request. Functionality is otherwise similar to the \fB\-verify\fR operation. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" the input message to be encrypted or signed or the message to be decrypted or verified. .IP "\fB\-inform SMIME|PEM|DER\fR" 4 .IX Item "-inform SMIME|PEM|DER" this specifies the input format for the \s-1CMS\s0 structure. The default is \fB\s-1SMIME\s0\fR which reads an S/MIME format message. \fB\s-1PEM\s0\fR and \fB\s-1DER\s0\fR format change this to expect \s-1PEM\s0 and \s-1DER\s0 format \s-1CMS\s0 structures instead. This currently only affects the input format of the \s-1CMS\s0 structure, if no \s-1CMS\s0 structure is being input (for example with \&\fB\-encrypt\fR or \fB\-sign\fR) this option has no effect. .IP "\fB\-rctform SMIME|PEM|DER\fR" 4 .IX Item "-rctform SMIME|PEM|DER" specify the format for a signed receipt for use with the \fB\-receipt_verify\fR operation. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" the message text that has been decrypted or verified or the output \s-1MIME\s0 format message that has been signed or verified. .IP "\fB\-outform SMIME|PEM|DER\fR" 4 .IX Item "-outform SMIME|PEM|DER" this specifies the output format for the \s-1CMS\s0 structure. The default is \fB\s-1SMIME\s0\fR which writes an S/MIME format message. \fB\s-1PEM\s0\fR and \fB\s-1DER\s0\fR format change this to write \s-1PEM\s0 and \s-1DER\s0 format \s-1CMS\s0 structures instead. This currently only affects the output format of the \s-1CMS\s0 structure, if no \s-1CMS\s0 structure is being output (for example with \&\fB\-verify\fR or \fB\-decrypt\fR) this option has no effect. .IP "\fB\-stream \-indef \-noindef\fR" 4 .IX Item "-stream -indef -noindef" the \fB\-stream\fR and \fB\-indef\fR options are equivalent and enable streaming I/O for encoding operations. This permits single pass processing of data without the need to hold the entire contents in memory, potentially supporting very large files. Streaming is automatically set for S/MIME signing with detached data if the output format is \fB\s-1SMIME\s0\fR it is currently off by default for all other operations. .IP "\fB\-noindef\fR" 4 .IX Item "-noindef" disable streaming I/O where it would produce and indefinite length constructed encoding. This option currently has no effect. In future streaming will be enabled by default on all relevant operations and this option will disable it. .IP "\fB\-content filename\fR" 4 .IX Item "-content filename" This specifies a file containing the detached content, this is only useful with the \fB\-verify\fR command. This is only usable if the \s-1CMS\s0 structure is using the detached signature form where the content is not included. This option will override any content if the input format is S/MIME and it uses the multipart/signed \s-1MIME\s0 content type. .IP "\fB\-text\fR" 4 .IX Item "-text" this option adds plain text (text/plain) \s-1MIME\s0 headers to the supplied message if encrypting or signing. If decrypting or verifying it strips off text headers: if the decrypted or verified message is not of \s-1MIME \s0 type text/plain then an error occurs. .IP "\fB\-noout\fR" 4 .IX Item "-noout" for the \fB\-cmsout\fR operation do not output the parsed \s-1CMS\s0 structure. This is useful when combined with the \fB\-print\fR option or if the syntax of the \s-1CMS\s0 structure is being checked. .IP "\fB\-print\fR" 4 .IX Item "-print" for the \fB\-cmsout\fR operation print out all fields of the \s-1CMS\s0 structure. This is mainly useful for testing purposes. .IP "\fB\-CAfile file\fR" 4 .IX Item "-CAfile file" a file containing trusted \s-1CA\s0 certificates, only used with \fB\-verify\fR. .IP "\fB\-CApath dir\fR" 4 .IX Item "-CApath dir" a directory containing trusted \s-1CA\s0 certificates, only used with \&\fB\-verify\fR. This directory must be a standard certificate directory: that is a hash of each subject name (using \fBx509 \-hash\fR) should be linked to each certificate. .IP "\fB\-md digest\fR" 4 .IX Item "-md digest" digest algorithm to use when signing or resigning. If not present then the default digest algorithm for the signing key will be used (usually \s-1SHA1\s0). .IP "\fB\-[cipher]\fR" 4 .IX Item "-[cipher]" the encryption algorithm to use. For example triple \s-1DES \s0(168 bits) \- \fB\-des3\fR or 256 bit \s-1AES \- \s0\fB\-aes256\fR. Any standard algorithm name (as used by the \&\fIEVP_get_cipherbyname()\fR function) can also be used preceded by a dash, for example \fB\-aes_128_cbc\fR. See \fBenc\fR for a list of ciphers supported by your version of OpenSSL. .Sp If not specified triple \s-1DES\s0 is used. Only used with \fB\-encrypt\fR and \&\fB\-EncryptedData_create\fR commands. .IP "\fB\-nointern\fR" 4 .IX Item "-nointern" when verifying a message normally certificates (if any) included in the message are searched for the signing certificate. With this option only the certificates specified in the \fB\-certfile\fR option are used. The supplied certificates can still be used as untrusted CAs however. .IP "\fB\-no_signer_cert_verify\fR" 4 .IX Item "-no_signer_cert_verify" do not verify the signers certificate of a signed message. .IP "\fB\-nocerts\fR" 4 .IX Item "-nocerts" when signing a message the signer's certificate is normally included with this option it is excluded. This will reduce the size of the signed message but the verifier must have a copy of the signers certificate available locally (passed using the \fB\-certfile\fR option for example). .IP "\fB\-noattr\fR" 4 .IX Item "-noattr" normally when a message is signed a set of attributes are included which include the signing time and supported symmetric algorithms. With this option they are not included. .IP "\fB\-nosmimecap\fR" 4 .IX Item "-nosmimecap" exclude the list of supported algorithms from signed attributes, other options such as signing time and content type are still included. .IP "\fB\-binary\fR" 4 .IX Item "-binary" normally the input message is converted to \*(L"canonical\*(R" format which is effectively using \s-1CR\s0 and \s-1LF\s0 as end of line: as required by the S/MIME specification. When this option is present no translation occurs. This is useful when handling binary data which may not be in \s-1MIME\s0 format. .IP "\fB\-nodetach\fR" 4 .IX Item "-nodetach" when signing a message use opaque signing: this form is more resistant to translation by mail relays but it cannot be read by mail agents that do not support S/MIME. Without this option cleartext signing with the \s-1MIME\s0 type multipart/signed is used. .IP "\fB\-certfile file\fR" 4 .IX Item "-certfile file" allows additional certificates to be specified. When signing these will be included with the message. When verifying these will be searched for the signers certificates. The certificates should be in \s-1PEM\s0 format. .IP "\fB\-certsout file\fR" 4 .IX Item "-certsout file" any certificates contained in the message are written to \fBfile\fR. .IP "\fB\-signer file\fR" 4 .IX Item "-signer file" a signing certificate when signing or resigning a message, this option can be used multiple times if more than one signer is required. If a message is being verified then the signers certificates will be written to this file if the verification was successful. .IP "\fB\-recip file\fR" 4 .IX Item "-recip file" when decrypting a message this specifies the recipients certificate. The certificate must match one of the recipients of the message or an error occurs. .Sp When encrypting a message this option may be used multiple times to specify each recipient. This form \fBmust\fR be used if customised parameters are required (for example to specify RSA-OAEP). .Sp Only certificates carrying \s-1RSA,\s0 Diffie-Hellman or \s-1EC\s0 keys are supported by this option. .IP "\fB\-keyid\fR" 4 .IX Item "-keyid" use subject key identifier to identify certificates instead of issuer name and serial number. The supplied certificate \fBmust\fR include a subject key identifier extension. Supported by \fB\-sign\fR and \fB\-encrypt\fR options. .IP "\fB\-receipt_request_all \-receipt_request_first\fR" 4 .IX Item "-receipt_request_all -receipt_request_first" for \fB\-sign\fR option include a signed receipt request. Indicate requests should be provided by all receipient or first tier recipients (those mailed directly and not from a mailing list). Ignored it \fB\-receipt_request_from\fR is included. .IP "\fB\-receipt_request_from emailaddress\fR" 4 .IX Item "-receipt_request_from emailaddress" for \fB\-sign\fR option include a signed receipt request. Add an explicit email address where receipts should be supplied. .IP "\fB\-receipt_request_to emailaddress\fR" 4 .IX Item "-receipt_request_to emailaddress" Add an explicit email address where signed receipts should be sent to. This option \fBmust\fR but supplied if a signed receipt it requested. .IP "\fB\-receipt_request_print\fR" 4 .IX Item "-receipt_request_print" For the \fB\-verify\fR operation print out the contents of any signed receipt requests. .IP "\fB\-secretkey key\fR" 4 .IX Item "-secretkey key" specify symmetric key to use. The key must be supplied in hex format and be consistent with the algorithm used. Supported by the \fB\-EncryptedData_encrypt\fR \&\fB\-EncrryptedData_decrypt\fR, \fB\-encrypt\fR and \fB\-decrypt\fR options. When used with \fB\-encrypt\fR or \fB\-decrypt\fR the supplied key is used to wrap or unwrap the content encryption key using an \s-1AES\s0 key in the \fBKEKRecipientInfo\fR type. .IP "\fB\-secretkeyid id\fR" 4 .IX Item "-secretkeyid id" the key identifier for the supplied symmetric key for \fBKEKRecipientInfo\fR type. This option \fBmust\fR be present if the \fB\-secretkey\fR option is used with \&\fB\-encrypt\fR. With \fB\-decrypt\fR operations the \fBid\fR is used to locate the relevant key if it is not supplied then an attempt is used to decrypt any \&\fBKEKRecipientInfo\fR structures. .IP "\fB\-econtent_type type\fR" 4 .IX Item "-econtent_type type" set the encapsulated content type to \fBtype\fR if not supplied the \fBData\fR type is used. The \fBtype\fR argument can be any valid \s-1OID\s0 name in either text or numerical format. .IP "\fB\-inkey file\fR" 4 .IX Item "-inkey file" the private key to use when signing or decrypting. This must match the corresponding certificate. If this option is not specified then the private key must be included in the certificate file specified with the \fB\-recip\fR or \fB\-signer\fR file. When signing this option can be used multiple times to specify successive keys. .IP "\fB\-keyopt name:opt\fR" 4 .IX Item "-keyopt name:opt" for signing and encryption this option can be used multiple times to set customised parameters for the preceding key or certificate. It can currently be used to set RSA-PSS for signing, RSA-OAEP for encryption or to modify default parameters for \s-1ECDH.\s0 .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the private key password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-rand file(s)\fR" 4 .IX Item "-rand file(s)" a file or files containing random data used to seed the random number generator, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). Multiple files can be specified separated by a OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fBcert.pem...\fR" 4 .IX Item "cert.pem..." one or more certificates of message recipients: used when encrypting a message. .IP "\fB\-to, \-from, \-subject\fR" 4 .IX Item "-to, -from, -subject" the relevant mail headers. These are included outside the signed portion of a message so they may be included manually. If signing then many S/MIME mail clients check the signers certificate's email address matches that specified in the From: address. .IP "\fB\-purpose, \-ignore_critical, \-issuer_checks, \-crl_check, \-crl_check_all, \-policy_check, \-extended_crl, \-x509_strict, \-policy \-check_ss_sig \-no_alt_chains\fR" 4 .IX Item "-purpose, -ignore_critical, -issuer_checks, -crl_check, -crl_check_all, -policy_check, -extended_crl, -x509_strict, -policy -check_ss_sig -no_alt_chains" Set various certificate chain valiadition option. See the \&\fBverify\fR manual page for details. .SH "NOTES" .IX Header "NOTES" The \s-1MIME\s0 message must be sent without any blank lines between the headers and the output. Some mail programs will automatically add a blank line. Piping the mail directly to sendmail is one way to achieve the correct format. .PP The supplied message to be signed or encrypted must include the necessary \s-1MIME\s0 headers or many S/MIME clients wont display it properly (if at all). You can use the \fB\-text\fR option to automatically add plain text headers. .PP A \*(L"signed and encrypted\*(R" message is one where a signed message is then encrypted. This can be produced by encrypting an already signed message: see the examples section. .PP This version of the program only allows one signer per message but it will verify multiple signers on received messages. Some S/MIME clients choke if a message contains multiple signers. It is possible to sign messages \*(L"in parallel\*(R" by signing an already signed message. .PP The options \fB\-encrypt\fR and \fB\-decrypt\fR reflect common usage in S/MIME clients. Strictly speaking these process \s-1CMS\s0 enveloped data: \s-1CMS\s0 encrypted data is used for other purposes. .PP The \fB\-resign\fR option uses an existing message digest when adding a new signer. This means that attributes must be present in at least one existing signer using the same message digest or this operation will fail. .PP The \fB\-stream\fR and \fB\-indef\fR options enable experimental streaming I/O support. As a result the encoding is \s-1BER\s0 using indefinite length constructed encoding and no longer \s-1DER.\s0 Streaming is supported for the \fB\-encrypt\fR operation and the \&\fB\-sign\fR operation if the content is not detached. .PP Streaming is always used for the \fB\-sign\fR operation with detached data but since the content is no longer part of the \s-1CMS\s0 structure the encoding remains \s-1DER.\s0 .PP If the \fB\-decrypt\fR option is used without a recipient certificate then an attempt is made to locate the recipient by trying each potential recipient in turn using the supplied private key. To thwart the \s-1MMA\s0 attack (Bleichenbacher's attack on \s-1PKCS\s0 #1 v1.5 \s-1RSA\s0 padding) all recipients are tried whether they succeed or not and if no recipients match the message is \*(L"decrypted\*(R" using a random key which will typically output garbage. The \fB\-debug_decrypt\fR option can be used to disable the \s-1MMA\s0 attack protection and return an error if no recipient can be found: this option should be used with caution. For a fuller description see \fICMS_decrypt\fR\|(3)). .SH "EXIT CODES" .IX Header "EXIT CODES" .IP "0" 4 the operation was completely successfully. .IP "1" 4 .IX Item "1" an error occurred parsing the command options. .IP "2" 4 .IX Item "2" one of the input files could not be read. .IP "3" 4 .IX Item "3" an error occurred creating the \s-1CMS\s0 file or when reading the \s-1MIME\s0 message. .IP "4" 4 .IX Item "4" an error occurred decrypting or verifying the message. .IP "5" 4 .IX Item "5" the message was verified correctly but an error occurred writing out the signers certificates. .SH "COMPATIBILITY WITH PKCS#7 format." .IX Header "COMPATIBILITY WITH PKCS#7 format." The \fBsmime\fR utility can only process the older \fBPKCS#7\fR format. The \fBcms\fR utility supports Cryptographic Message Syntax format. Use of some features will result in messages which cannot be processed by applications which only support the older format. These are detailed below. .PP The use of the \fB\-keyid\fR option with \fB\-sign\fR or \fB\-encrypt\fR. .PP The \fB\-outform \s-1PEM\s0\fR option uses different headers. .PP The \fB\-compress\fR option. .PP The \fB\-secretkey\fR option when used with \fB\-encrypt\fR. .PP The use of \s-1PSS\s0 with \fB\-sign\fR. .PP The use of \s-1OAEP\s0 or non-RSA keys with \fB\-encrypt\fR. .PP Additionally the \fB\-EncryptedData_create\fR and \fB\-data_create\fR type cannot be processed by the older \fBsmime\fR command. .SH "EXAMPLES" .IX Header "EXAMPLES" Create a cleartext signed message: .PP .Vb 2 \& openssl cms \-sign \-in message.txt \-text \-out mail.msg \e \& \-signer mycert.pem .Ve .PP Create an opaque signed message .PP .Vb 2 \& openssl cms \-sign \-in message.txt \-text \-out mail.msg \-nodetach \e \& \-signer mycert.pem .Ve .PP Create a signed message, include some additional certificates and read the private key from another file: .PP .Vb 2 \& openssl cms \-sign \-in in.txt \-text \-out mail.msg \e \& \-signer mycert.pem \-inkey mykey.pem \-certfile mycerts.pem .Ve .PP Create a signed message with two signers, use key identifier: .PP .Vb 2 \& openssl cms \-sign \-in message.txt \-text \-out mail.msg \e \& \-signer mycert.pem \-signer othercert.pem \-keyid .Ve .PP Send a signed message under Unix directly to sendmail, including headers: .PP .Vb 3 \& openssl cms \-sign \-in in.txt \-text \-signer mycert.pem \e \& \-from steve@openssl.org \-to someone@somewhere \e \& \-subject "Signed message" | sendmail someone@somewhere .Ve .PP Verify a message and extract the signer's certificate if successful: .PP .Vb 1 \& openssl cms \-verify \-in mail.msg \-signer user.pem \-out signedtext.txt .Ve .PP Send encrypted mail using triple \s-1DES:\s0 .PP .Vb 3 \& openssl cms \-encrypt \-in in.txt \-from steve@openssl.org \e \& \-to someone@somewhere \-subject "Encrypted message" \e \& \-des3 user.pem \-out mail.msg .Ve .PP Sign and encrypt mail: .PP .Vb 4 \& openssl cms \-sign \-in ml.txt \-signer my.pem \-text \e \& | openssl cms \-encrypt \-out mail.msg \e \& \-from steve@openssl.org \-to someone@somewhere \e \& \-subject "Signed and Encrypted message" \-des3 user.pem .Ve .PP Note: the encryption command does not include the \fB\-text\fR option because the message being encrypted already has \s-1MIME\s0 headers. .PP Decrypt mail: .PP .Vb 1 \& openssl cms \-decrypt \-in mail.msg \-recip mycert.pem \-inkey key.pem .Ve .PP The output from Netscape form signing is a PKCS#7 structure with the detached signature format. You can use this program to verify the signature by line wrapping the base64 encoded structure and surrounding it with: .PP .Vb 2 \& \-\-\-\-\-BEGIN PKCS7\-\-\-\-\- \& \-\-\-\-\-END PKCS7\-\-\-\-\- .Ve .PP and using the command, .PP .Vb 1 \& openssl cms \-verify \-inform PEM \-in signature.pem \-content content.txt .Ve .PP alternatively you can base64 decode the signature and use .PP .Vb 1 \& openssl cms \-verify \-inform DER \-in signature.der \-content content.txt .Ve .PP Create an encrypted message using 128 bit Camellia: .PP .Vb 1 \& openssl cms \-encrypt \-in plain.txt \-camellia128 \-out mail.msg cert.pem .Ve .PP Add a signer to an existing message: .PP .Vb 1 \& openssl cms \-resign \-in mail.msg \-signer newsign.pem \-out mail2.msg .Ve .PP Sign mail using RSA-PSS: .PP .Vb 2 \& openssl cms \-sign \-in message.txt \-text \-out mail.msg \e \& \-signer mycert.pem \-keyopt rsa_padding_mode:pss .Ve .PP Create encrypted mail using RSA-OAEP: .PP .Vb 2 \& openssl cms \-encrypt \-in plain.txt \-out mail.msg \e \& \-recip cert.pem \-keyopt rsa_padding_mode:oaep .Ve .PP Use \s-1SHA256 KDF\s0 with an \s-1ECDH\s0 certificate: .PP .Vb 2 \& openssl cms \-encrypt \-in plain.txt \-out mail.msg \e \& \-recip ecdhcert.pem \-keyopt ecdh_kdf_md:sha256 .Ve .SH "BUGS" .IX Header "BUGS" The \s-1MIME\s0 parser isn't very clever: it seems to handle most messages that I've thrown at it but it may choke on others. .PP The code currently will only write out the signer's certificate to a file: if the signer has a separate encryption certificate this must be manually extracted. There should be some heuristic that determines the correct encryption certificate. .PP Ideally a database should be maintained of a certificates for each email address. .PP The code doesn't currently take note of the permitted symmetric encryption algorithms as supplied in the SMIMECapabilities signed attribute. this means the user has to manually include the correct encryption algorithm. It should store the list of permitted ciphers in a database and only use those. .PP No revocation checking is done on the signer's certificate. .SH "HISTORY" .IX Header "HISTORY" The use of multiple \fB\-signer\fR options and the \fB\-resign\fR command were first added in OpenSSL 1.0.0. .PP The \fBkeyopt\fR option was first added in OpenSSL 1.0.2. .PP Support for RSA-OAEP and RSA-PSS was first added to OpenSSL 1.0.2. .PP The use of non-RSA keys with \fB\-encrypt\fR and \fB\-decrypt\fR was first added to OpenSSL 1.0.2. .PP The \-no_alt_chains options was first added to OpenSSL 1.0.2b. man1/crl.1000064400000016110147210533270006245 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CRL 1" .TH CRL 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-crl, crl \- CRL utility .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBcrl\fR [\fB\-inform PEM|DER\fR] [\fB\-outform PEM|DER\fR] [\fB\-text\fR] [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-nameopt option\fR] [\fB\-noout\fR] [\fB\-hash\fR] [\fB\-issuer\fR] [\fB\-lastupdate\fR] [\fB\-nextupdate\fR] [\fB\-CAfile file\fR] [\fB\-CApath dir\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBcrl\fR command processes \s-1CRL\s0 files in \s-1DER\s0 or \s-1PEM\s0 format. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-inform DER|PEM\fR" 4 .IX Item "-inform DER|PEM" This specifies the input format. \fB\s-1DER\s0\fR format is \s-1DER\s0 encoded \s-1CRL\s0 structure. \fB\s-1PEM\s0\fR (the default) is a base64 encoded version of the \s-1DER\s0 form with header and footer lines. .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read from or standard input if this option is not specified. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" specifies the output filename to write to or standard output by default. .IP "\fB\-text\fR" 4 .IX Item "-text" print out the \s-1CRL\s0 in text form. .IP "\fB\-nameopt option\fR" 4 .IX Item "-nameopt option" option which determines how the subject or issuer names are displayed. See the description of \fB\-nameopt\fR in \fIx509\fR\|(1). .IP "\fB\-noout\fR" 4 .IX Item "-noout" don't output the encoded version of the \s-1CRL.\s0 .IP "\fB\-hash\fR" 4 .IX Item "-hash" output a hash of the issuer name. This can be use to lookup CRLs in a directory by issuer name. .IP "\fB\-hash_old\fR" 4 .IX Item "-hash_old" outputs the \*(L"hash\*(R" of the \s-1CRL\s0 issuer name using the older algorithm as used by OpenSSL versions before 1.0.0. .IP "\fB\-issuer\fR" 4 .IX Item "-issuer" output the issuer name. .IP "\fB\-lastupdate\fR" 4 .IX Item "-lastupdate" output the lastUpdate field. .IP "\fB\-nextupdate\fR" 4 .IX Item "-nextupdate" output the nextUpdate field. .IP "\fB\-CAfile file\fR" 4 .IX Item "-CAfile file" verify the signature on a \s-1CRL\s0 by looking up the issuing certificate in \&\fBfile\fR .IP "\fB\-CApath dir\fR" 4 .IX Item "-CApath dir" verify the signature on a \s-1CRL\s0 by looking up the issuing certificate in \&\fBdir\fR. This directory must be a standard certificate directory: that is a hash of each subject name (using \fBx509 \-hash\fR) should be linked to each certificate. .SH "NOTES" .IX Header "NOTES" The \s-1PEM CRL\s0 format uses the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN X509 CRL\-\-\-\-\- \& \-\-\-\-\-END X509 CRL\-\-\-\-\- .Ve .SH "EXAMPLES" .IX Header "EXAMPLES" Convert a \s-1CRL\s0 file from \s-1PEM\s0 to \s-1DER:\s0 .PP .Vb 1 \& openssl crl \-in crl.pem \-outform DER \-out crl.der .Ve .PP Output the text form of a \s-1DER\s0 encoded certificate: .PP .Vb 1 \& openssl crl \-in crl.der \-inform DER \-text \-noout .Ve .SH "BUGS" .IX Header "BUGS" Ideally it should be possible to create a \s-1CRL\s0 using appropriate options and files too. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIcrl2pkcs7\fR\|(1), \fIca\fR\|(1), \fIx509\fR\|(1) man1/x509.1000064400000106737147210533270006211 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "X509 1" .TH X509 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-x509, x509 \- Certificate display and signing utility .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBx509\fR [\fB\-inform DER|PEM|NET\fR] [\fB\-outform DER|PEM|NET\fR] [\fB\-keyform DER|PEM\fR] [\fB\-CAform DER|PEM\fR] [\fB\-CAkeyform DER|PEM\fR] [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-serial\fR] [\fB\-hash\fR] [\fB\-subject_hash\fR] [\fB\-issuer_hash\fR] [\fB\-ocspid\fR] [\fB\-subject\fR] [\fB\-issuer\fR] [\fB\-nameopt option\fR] [\fB\-email\fR] [\fB\-ocsp_uri\fR] [\fB\-startdate\fR] [\fB\-enddate\fR] [\fB\-purpose\fR] [\fB\-dates\fR] [\fB\-checkend num\fR] [\fB\-modulus\fR] [\fB\-pubkey\fR] [\fB\-fingerprint\fR] [\fB\-alias\fR] [\fB\-noout\fR] [\fB\-trustout\fR] [\fB\-clrtrust\fR] [\fB\-clrreject\fR] [\fB\-addtrust arg\fR] [\fB\-addreject arg\fR] [\fB\-setalias arg\fR] [\fB\-days arg\fR] [\fB\-set_serial n\fR] [\fB\-signkey filename\fR] [\fB\-passin arg\fR] [\fB\-x509toreq\fR] [\fB\-req\fR] [\fB\-CA filename\fR] [\fB\-CAkey filename\fR] [\fB\-CAcreateserial\fR] [\fB\-CAserial filename\fR] [\fB\-force_pubkey key\fR] [\fB\-text\fR] [\fB\-certopt option\fR] [\fB\-C\fR] [\fB\-md2|\-md5|\-sha1|\-mdc2\fR] [\fB\-clrext\fR] [\fB\-extfile filename\fR] [\fB\-extensions section\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBx509\fR command is a multi purpose certificate utility. It can be used to display certificate information, convert certificates to various forms, sign certificate requests like a \*(L"mini \s-1CA\*(R"\s0 or edit certificate trust settings. .PP Since there are a large number of options they will split up into various sections. .SH "OPTIONS" .IX Header "OPTIONS" .SS "\s-1INPUT, OUTPUT AND GENERAL PURPOSE OPTIONS\s0" .IX Subsection "INPUT, OUTPUT AND GENERAL PURPOSE OPTIONS" .IP "\fB\-inform DER|PEM|NET\fR" 4 .IX Item "-inform DER|PEM|NET" This specifies the input format normally the command will expect an X509 certificate but this can change if other options such as \fB\-req\fR are present. The \s-1DER\s0 format is the \s-1DER\s0 encoding of the certificate and \s-1PEM\s0 is the base64 encoding of the \s-1DER\s0 encoding with header and footer lines added. The \s-1NET\s0 option is an obscure Netscape server format that is now obsolete. .IP "\fB\-outform DER|PEM|NET\fR" 4 .IX Item "-outform DER|PEM|NET" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read a certificate from or standard input if this option is not specified. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" This specifies the output filename to write to or standard output by default. .IP "\fB\-md2|\-md5|\-sha1|\-mdc2\fR" 4 .IX Item "-md2|-md5|-sha1|-mdc2" the digest to use. This affects any signing or display option that uses a message digest, such as the \fB\-fingerprint\fR, \fB\-signkey\fR and \fB\-CA\fR options. If not specified then \s-1SHA1\s0 is used. If the key being used to sign with is a \s-1DSA\s0 key then this option has no effect: \s-1SHA1\s0 is always used with \s-1DSA\s0 keys. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBx509\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .SS "\s-1DISPLAY OPTIONS\s0" .IX Subsection "DISPLAY OPTIONS" Note: the \fB\-alias\fR and \fB\-purpose\fR options are also display options but are described in the \fB\s-1TRUST SETTINGS\s0\fR section. .IP "\fB\-text\fR" 4 .IX Item "-text" prints out the certificate in text form. Full details are output including the public key, signature algorithms, issuer and subject names, serial number any extensions present and any trust settings. .IP "\fB\-certopt option\fR" 4 .IX Item "-certopt option" customise the output format used with \fB\-text\fR. The \fBoption\fR argument can be a single option or multiple options separated by commas. The \fB\-certopt\fR switch may be also be used more than once to set multiple options. See the \fB\s-1TEXT OPTIONS\s0\fR section for more information. .IP "\fB\-noout\fR" 4 .IX Item "-noout" this option prevents output of the encoded version of the request. .IP "\fB\-pubkey\fR" 4 .IX Item "-pubkey" outputs the the certificate's SubjectPublicKeyInfo block in \s-1PEM\s0 format. .IP "\fB\-modulus\fR" 4 .IX Item "-modulus" this option prints out the value of the modulus of the public key contained in the certificate. .IP "\fB\-serial\fR" 4 .IX Item "-serial" outputs the certificate serial number. .IP "\fB\-subject_hash\fR" 4 .IX Item "-subject_hash" outputs the \*(L"hash\*(R" of the certificate subject name. This is used in OpenSSL to form an index to allow certificates in a directory to be looked up by subject name. .IP "\fB\-issuer_hash\fR" 4 .IX Item "-issuer_hash" outputs the \*(L"hash\*(R" of the certificate issuer name. .IP "\fB\-ocspid\fR" 4 .IX Item "-ocspid" outputs the \s-1OCSP\s0 hash values for the subject name and public key. .IP "\fB\-hash\fR" 4 .IX Item "-hash" synonym for \*(L"\-subject_hash\*(R" for backward compatibility reasons. .IP "\fB\-subject_hash_old\fR" 4 .IX Item "-subject_hash_old" outputs the \*(L"hash\*(R" of the certificate subject name using the older algorithm as used by OpenSSL versions before 1.0.0. .IP "\fB\-issuer_hash_old\fR" 4 .IX Item "-issuer_hash_old" outputs the \*(L"hash\*(R" of the certificate issuer name using the older algorithm as used by OpenSSL versions before 1.0.0. .IP "\fB\-subject\fR" 4 .IX Item "-subject" outputs the subject name. .IP "\fB\-issuer\fR" 4 .IX Item "-issuer" outputs the issuer name. .IP "\fB\-nameopt option\fR" 4 .IX Item "-nameopt option" option which determines how the subject or issuer names are displayed. The \&\fBoption\fR argument can be a single option or multiple options separated by commas. Alternatively the \fB\-nameopt\fR switch may be used more than once to set multiple options. See the \fB\s-1NAME OPTIONS\s0\fR section for more information. .IP "\fB\-email\fR" 4 .IX Item "-email" outputs the email address(es) if any. .IP "\fB\-ocsp_uri\fR" 4 .IX Item "-ocsp_uri" outputs the \s-1OCSP\s0 responder address(es) if any. .IP "\fB\-startdate\fR" 4 .IX Item "-startdate" prints out the start date of the certificate, that is the notBefore date. .IP "\fB\-enddate\fR" 4 .IX Item "-enddate" prints out the expiry date of the certificate, that is the notAfter date. .IP "\fB\-dates\fR" 4 .IX Item "-dates" prints out the start and expiry dates of a certificate. .IP "\fB\-checkend arg\fR" 4 .IX Item "-checkend arg" checks if the certificate expires within the next \fBarg\fR seconds and exits non-zero if yes it will expire or zero if not. .IP "\fB\-fingerprint\fR" 4 .IX Item "-fingerprint" Calculates and outputs the digest of the \s-1DER\s0 encoded version of the entire certificate (see digest options). This is commonly called a \*(L"fingerprint\*(R". Because of the nature of message digests, the fingerprint of a certificate is unique to that certificate and two certificates with the same fingerprint can be considered to be the same. .IP "\fB\-C\fR" 4 .IX Item "-C" this outputs the certificate in the form of a C source file. .SS "\s-1TRUST SETTINGS\s0" .IX Subsection "TRUST SETTINGS" Please note these options are currently experimental and may well change. .PP A \fBtrusted certificate\fR is an ordinary certificate which has several additional pieces of information attached to it such as the permitted and prohibited uses of the certificate and an \*(L"alias\*(R". .PP Normally when a certificate is being verified at least one certificate must be \*(L"trusted\*(R". By default a trusted certificate must be stored locally and must be a root \s-1CA:\s0 any certificate chain ending in this \s-1CA\s0 is then usable for any purpose. .PP Trust settings currently are only used with a root \s-1CA.\s0 They allow a finer control over the purposes the root \s-1CA\s0 can be used for. For example a \s-1CA\s0 may be trusted for \s-1SSL\s0 client but not \s-1SSL\s0 server use. .PP See the description of the \fBverify\fR utility for more information on the meaning of trust settings. .PP Future versions of OpenSSL will recognize trust settings on any certificate: not just root CAs. .IP "\fB\-trustout\fR" 4 .IX Item "-trustout" this causes \fBx509\fR to output a \fBtrusted\fR certificate. An ordinary or trusted certificate can be input but by default an ordinary certificate is output and any trust settings are discarded. With the \&\fB\-trustout\fR option a trusted certificate is output. A trusted certificate is automatically output if any trust settings are modified. .IP "\fB\-setalias arg\fR" 4 .IX Item "-setalias arg" sets the alias of the certificate. This will allow the certificate to be referred to using a nickname for example \*(L"Steve's Certificate\*(R". .IP "\fB\-alias\fR" 4 .IX Item "-alias" outputs the certificate alias, if any. .IP "\fB\-clrtrust\fR" 4 .IX Item "-clrtrust" clears all the permitted or trusted uses of the certificate. .IP "\fB\-clrreject\fR" 4 .IX Item "-clrreject" clears all the prohibited or rejected uses of the certificate. .IP "\fB\-addtrust arg\fR" 4 .IX Item "-addtrust arg" adds a trusted certificate use. Any object name can be used here but currently only \fBclientAuth\fR (\s-1SSL\s0 client use), \fBserverAuth\fR (\s-1SSL\s0 server use) and \fBemailProtection\fR (S/MIME email) are used. Other OpenSSL applications may define additional uses. .IP "\fB\-addreject arg\fR" 4 .IX Item "-addreject arg" adds a prohibited use. It accepts the same values as the \fB\-addtrust\fR option. .IP "\fB\-purpose\fR" 4 .IX Item "-purpose" this option performs tests on the certificate extensions and outputs the results. For a more complete description see the \fB\s-1CERTIFICATE EXTENSIONS\s0\fR section. .SS "\s-1SIGNING OPTIONS\s0" .IX Subsection "SIGNING OPTIONS" The \fBx509\fR utility can be used to sign certificates and requests: it can thus behave like a \*(L"mini \s-1CA\*(R".\s0 .IP "\fB\-signkey filename\fR" 4 .IX Item "-signkey filename" this option causes the input file to be self signed using the supplied private key. .Sp If the input file is a certificate it sets the issuer name to the subject name (i.e. makes it self signed) changes the public key to the supplied value and changes the start and end dates. The start date is set to the current time and the end date is set to a value determined by the \fB\-days\fR option. Any certificate extensions are retained unless the \fB\-clrext\fR option is supplied. .Sp If the input is a certificate request then a self signed certificate is created using the supplied private key using the subject name in the request. .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the key password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-clrext\fR" 4 .IX Item "-clrext" delete any extensions from a certificate. This option is used when a certificate is being created from another certificate (for example with the \fB\-signkey\fR or the \fB\-CA\fR options). Normally all extensions are retained. .IP "\fB\-keyform PEM|DER\fR" 4 .IX Item "-keyform PEM|DER" specifies the format (\s-1DER\s0 or \s-1PEM\s0) of the private key file used in the \&\fB\-signkey\fR option. .IP "\fB\-days arg\fR" 4 .IX Item "-days arg" specifies the number of days to make a certificate valid for. The default is 30 days. .IP "\fB\-x509toreq\fR" 4 .IX Item "-x509toreq" converts a certificate into a certificate request. The \fB\-signkey\fR option is used to pass the required private key. .IP "\fB\-req\fR" 4 .IX Item "-req" by default a certificate is expected on input. With this option a certificate request is expected instead. .IP "\fB\-set_serial n\fR" 4 .IX Item "-set_serial n" specifies the serial number to use. This option can be used with either the \fB\-signkey\fR or \fB\-CA\fR options. If used in conjunction with the \fB\-CA\fR option the serial number file (as specified by the \fB\-CAserial\fR or \&\fB\-CAcreateserial\fR options) is not used. .Sp The serial number can be decimal or hex (if preceded by \fB0x\fR). Negative serial numbers can also be specified but their use is not recommended. .IP "\fB\-CA filename\fR" 4 .IX Item "-CA filename" specifies the \s-1CA\s0 certificate to be used for signing. When this option is present \fBx509\fR behaves like a \*(L"mini \s-1CA\*(R".\s0 The input file is signed by this \&\s-1CA\s0 using this option: that is its issuer name is set to the subject name of the \s-1CA\s0 and it is digitally signed using the CAs private key. .Sp This option is normally combined with the \fB\-req\fR option. Without the \&\fB\-req\fR option the input is a certificate which must be self signed. .IP "\fB\-CAkey filename\fR" 4 .IX Item "-CAkey filename" sets the \s-1CA\s0 private key to sign a certificate with. If this option is not specified then it is assumed that the \s-1CA\s0 private key is present in the \s-1CA\s0 certificate file. .IP "\fB\-CAserial filename\fR" 4 .IX Item "-CAserial filename" sets the \s-1CA\s0 serial number file to use. .Sp When the \fB\-CA\fR option is used to sign a certificate it uses a serial number specified in a file. This file consist of one line containing an even number of hex digits with the serial number to use. After each use the serial number is incremented and written out to the file again. .Sp The default filename consists of the \s-1CA\s0 certificate file base name with \&\*(L".srl\*(R" appended. For example if the \s-1CA\s0 certificate file is called \&\*(L"mycacert.pem\*(R" it expects to find a serial number file called \*(L"mycacert.srl\*(R". .IP "\fB\-CAcreateserial\fR" 4 .IX Item "-CAcreateserial" with this option the \s-1CA\s0 serial number file is created if it does not exist: it will contain the serial number \*(L"02\*(R" and the certificate being signed will have the 1 as its serial number. Normally if the \fB\-CA\fR option is specified and the serial number file does not exist it is an error. .IP "\fB\-extfile filename\fR" 4 .IX Item "-extfile filename" file containing certificate extensions to use. If not specified then no extensions are added to the certificate. .IP "\fB\-extensions section\fR" 4 .IX Item "-extensions section" the section to add certificate extensions from. If this option is not specified then the extensions should either be contained in the unnamed (default) section or the default section should contain a variable called \&\*(L"extensions\*(R" which contains the section to use. See the \&\fIx509v3_config\fR\|(5) manual page for details of the extension section format. .IP "\fB\-force_pubkey key\fR" 4 .IX Item "-force_pubkey key" when a certificate is created set its public key to \fBkey\fR instead of the key in the certificate or certificate request. This option is useful for creating certificates where the algorithm can't normally sign requests, for example \s-1DH.\s0 .Sp The format or \fBkey\fR can be specified using the \fB\-keyform\fR option. .SS "\s-1NAME OPTIONS\s0" .IX Subsection "NAME OPTIONS" The \fBnameopt\fR command line switch determines how the subject and issuer names are displayed. If no \fBnameopt\fR switch is present the default \*(L"oneline\*(R" format is used which is compatible with previous versions of OpenSSL. Each option is described in detail below, all options can be preceded by a \fB\-\fR to turn the option off. Only the first four will normally be used. .IP "\fBcompat\fR" 4 .IX Item "compat" use the old format. This is equivalent to specifying no name options at all. .IP "\fB\s-1RFC2253\s0\fR" 4 .IX Item "RFC2253" displays names compatible with \s-1RFC2253\s0 equivalent to \fBesc_2253\fR, \fBesc_ctrl\fR, \&\fBesc_msb\fR, \fButf8\fR, \fBdump_nostr\fR, \fBdump_unknown\fR, \fBdump_der\fR, \&\fBsep_comma_plus\fR, \fBdn_rev\fR and \fBsname\fR. .IP "\fBoneline\fR" 4 .IX Item "oneline" a oneline format which is more readable than \s-1RFC2253.\s0 It is equivalent to specifying the \fBesc_2253\fR, \fBesc_ctrl\fR, \fBesc_msb\fR, \fButf8\fR, \fBdump_nostr\fR, \&\fBdump_der\fR, \fBuse_quote\fR, \fBsep_comma_plus_space\fR, \fBspace_eq\fR and \fBsname\fR options. .IP "\fBmultiline\fR" 4 .IX Item "multiline" a multiline format. It is equivalent \fBesc_ctrl\fR, \fBesc_msb\fR, \fBsep_multiline\fR, \&\fBspace_eq\fR, \fBlname\fR and \fBalign\fR. .IP "\fBesc_2253\fR" 4 .IX Item "esc_2253" escape the \*(L"special\*(R" characters required by \s-1RFC2253\s0 in a field That is \&\fB,+"<>;\fR. Additionally \fB#\fR is escaped at the beginning of a string and a space character at the beginning or end of a string. .IP "\fBesc_ctrl\fR" 4 .IX Item "esc_ctrl" escape control characters. That is those with \s-1ASCII\s0 values less than 0x20 (space) and the delete (0x7f) character. They are escaped using the \&\s-1RFC2253\s0 \eXX notation (where \s-1XX\s0 are two hex digits representing the character value). .IP "\fBesc_msb\fR" 4 .IX Item "esc_msb" escape characters with the \s-1MSB\s0 set, that is with \s-1ASCII\s0 values larger than 127. .IP "\fBuse_quote\fR" 4 .IX Item "use_quote" escapes some characters by surrounding the whole string with \fB"\fR characters, without the option all escaping is done with the \fB\e\fR character. .IP "\fButf8\fR" 4 .IX Item "utf8" convert all strings to \s-1UTF8\s0 format first. This is required by \s-1RFC2253.\s0 If you are lucky enough to have a \s-1UTF8\s0 compatible terminal then the use of this option (and \fBnot\fR setting \fBesc_msb\fR) may result in the correct display of multibyte (international) characters. Is this option is not present then multibyte characters larger than 0xff will be represented using the format \eUXXXX for 16 bits and \eWXXXXXXXX for 32 bits. Also if this option is off any UTF8Strings will be converted to their character form first. .IP "\fBignore_type\fR" 4 .IX Item "ignore_type" this option does not attempt to interpret multibyte characters in any way. That is their content octets are merely dumped as though one octet represents each character. This is useful for diagnostic purposes but will result in rather odd looking output. .IP "\fBshow_type\fR" 4 .IX Item "show_type" show the type of the \s-1ASN1\s0 character string. The type precedes the field contents. For example \*(L"\s-1BMPSTRING:\s0 Hello World\*(R". .IP "\fBdump_der\fR" 4 .IX Item "dump_der" when this option is set any fields that need to be hexdumped will be dumped using the \s-1DER\s0 encoding of the field. Otherwise just the content octets will be displayed. Both options use the \s-1RFC2253 \&\s0\fB#XXXX...\fR format. .IP "\fBdump_nostr\fR" 4 .IX Item "dump_nostr" dump non character string types (for example \s-1OCTET STRING\s0) if this option is not set then non character string types will be displayed as though each content octet represents a single character. .IP "\fBdump_all\fR" 4 .IX Item "dump_all" dump all fields. This option when used with \fBdump_der\fR allows the \&\s-1DER\s0 encoding of the structure to be unambiguously determined. .IP "\fBdump_unknown\fR" 4 .IX Item "dump_unknown" dump any field whose \s-1OID\s0 is not recognised by OpenSSL. .IP "\fBsep_comma_plus\fR, \fBsep_comma_plus_space\fR, \fBsep_semi_plus_space\fR, \fBsep_multiline\fR" 4 .IX Item "sep_comma_plus, sep_comma_plus_space, sep_semi_plus_space, sep_multiline" these options determine the field separators. The first character is between RDNs and the second between multiple AVAs (multiple AVAs are very rare and their use is discouraged). The options ending in \&\*(L"space\*(R" additionally place a space after the separator to make it more readable. The \fBsep_multiline\fR uses a linefeed character for the \s-1RDN\s0 separator and a spaced \fB+\fR for the \s-1AVA\s0 separator. It also indents the fields by four characters. If no field separator is specified then \fBsep_comma_plus_space\fR is used by default. .IP "\fBdn_rev\fR" 4 .IX Item "dn_rev" reverse the fields of the \s-1DN.\s0 This is required by \s-1RFC2253.\s0 As a side effect this also reverses the order of multiple AVAs but this is permissible. .IP "\fBnofname\fR, \fBsname\fR, \fBlname\fR, \fBoid\fR" 4 .IX Item "nofname, sname, lname, oid" these options alter how the field name is displayed. \fBnofname\fR does not display the field at all. \fBsname\fR uses the \*(L"short name\*(R" form (\s-1CN\s0 for commonName for example). \fBlname\fR uses the long form. \&\fBoid\fR represents the \s-1OID\s0 in numerical form and is useful for diagnostic purpose. .IP "\fBalign\fR" 4 .IX Item "align" align field values for a more readable output. Only usable with \&\fBsep_multiline\fR. .IP "\fBspace_eq\fR" 4 .IX Item "space_eq" places spaces round the \fB=\fR character which follows the field name. .SS "\s-1TEXT OPTIONS\s0" .IX Subsection "TEXT OPTIONS" As well as customising the name output format, it is also possible to customise the actual fields printed using the \fBcertopt\fR options when the \fBtext\fR option is present. The default behaviour is to print all fields. .IP "\fBcompatible\fR" 4 .IX Item "compatible" use the old format. This is equivalent to specifying no output options at all. .IP "\fBno_header\fR" 4 .IX Item "no_header" don't print header information: that is the lines saying \*(L"Certificate\*(R" and \*(L"Data\*(R". .IP "\fBno_version\fR" 4 .IX Item "no_version" don't print out the version number. .IP "\fBno_serial\fR" 4 .IX Item "no_serial" don't print out the serial number. .IP "\fBno_signame\fR" 4 .IX Item "no_signame" don't print out the signature algorithm used. .IP "\fBno_validity\fR" 4 .IX Item "no_validity" don't print the validity, that is the \fBnotBefore\fR and \fBnotAfter\fR fields. .IP "\fBno_subject\fR" 4 .IX Item "no_subject" don't print out the subject name. .IP "\fBno_issuer\fR" 4 .IX Item "no_issuer" don't print out the issuer name. .IP "\fBno_pubkey\fR" 4 .IX Item "no_pubkey" don't print out the public key. .IP "\fBno_sigdump\fR" 4 .IX Item "no_sigdump" don't give a hexadecimal dump of the certificate signature. .IP "\fBno_aux\fR" 4 .IX Item "no_aux" don't print out certificate trust information. .IP "\fBno_extensions\fR" 4 .IX Item "no_extensions" don't print out any X509V3 extensions. .IP "\fBext_default\fR" 4 .IX Item "ext_default" retain default extension behaviour: attempt to print out unsupported certificate extensions. .IP "\fBext_error\fR" 4 .IX Item "ext_error" print an error message for unsupported certificate extensions. .IP "\fBext_parse\fR" 4 .IX Item "ext_parse" \&\s-1ASN1\s0 parse unsupported extensions. .IP "\fBext_dump\fR" 4 .IX Item "ext_dump" hex dump unsupported extensions. .IP "\fBca_default\fR" 4 .IX Item "ca_default" the value used by the \fBca\fR utility, equivalent to \fBno_issuer\fR, \fBno_pubkey\fR, \&\fBno_header\fR, and \fBno_version\fR. .SH "EXAMPLES" .IX Header "EXAMPLES" Note: in these examples the '\e' means the example should be all on one line. .PP Display the contents of a certificate: .PP .Vb 1 \& openssl x509 \-in cert.pem \-noout \-text .Ve .PP Display the certificate serial number: .PP .Vb 1 \& openssl x509 \-in cert.pem \-noout \-serial .Ve .PP Display the certificate subject name: .PP .Vb 1 \& openssl x509 \-in cert.pem \-noout \-subject .Ve .PP Display the certificate subject name in \s-1RFC2253\s0 form: .PP .Vb 1 \& openssl x509 \-in cert.pem \-noout \-subject \-nameopt RFC2253 .Ve .PP Display the certificate subject name in oneline form on a terminal supporting \s-1UTF8:\s0 .PP .Vb 1 \& openssl x509 \-in cert.pem \-noout \-subject \-nameopt oneline,\-esc_msb .Ve .PP Display the certificate \s-1SHA1\s0 fingerprint: .PP .Vb 1 \& openssl x509 \-sha1 \-in cert.pem \-noout \-fingerprint .Ve .PP Convert a certificate from \s-1PEM\s0 to \s-1DER\s0 format: .PP .Vb 1 \& openssl x509 \-in cert.pem \-inform PEM \-out cert.der \-outform DER .Ve .PP Convert a certificate to a certificate request: .PP .Vb 1 \& openssl x509 \-x509toreq \-in cert.pem \-out req.pem \-signkey key.pem .Ve .PP Convert a certificate request into a self signed certificate using extensions for a \s-1CA:\s0 .PP .Vb 2 \& openssl x509 \-req \-in careq.pem \-extfile openssl.cnf \-extensions v3_ca \e \& \-signkey key.pem \-out cacert.pem .Ve .PP Sign a certificate request using the \s-1CA\s0 certificate above and add user certificate extensions: .PP .Vb 2 \& openssl x509 \-req \-in req.pem \-extfile openssl.cnf \-extensions v3_usr \e \& \-CA cacert.pem \-CAkey key.pem \-CAcreateserial .Ve .PP Set a certificate to be trusted for \s-1SSL\s0 client use and change set its alias to \&\*(L"Steve's Class 1 \s-1CA\*(R"\s0 .PP .Vb 2 \& openssl x509 \-in cert.pem \-addtrust clientAuth \e \& \-setalias "Steve\*(Aqs Class 1 CA" \-out trust.pem .Ve .SH "NOTES" .IX Header "NOTES" The \s-1PEM\s0 format uses the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN CERTIFICATE\-\-\-\-\- \& \-\-\-\-\-END CERTIFICATE\-\-\-\-\- .Ve .PP it will also handle files containing: .PP .Vb 2 \& \-\-\-\-\-BEGIN X509 CERTIFICATE\-\-\-\-\- \& \-\-\-\-\-END X509 CERTIFICATE\-\-\-\-\- .Ve .PP Trusted certificates have the lines .PP .Vb 2 \& \-\-\-\-\-BEGIN TRUSTED CERTIFICATE\-\-\-\-\- \& \-\-\-\-\-END TRUSTED CERTIFICATE\-\-\-\-\- .Ve .PP The conversion to \s-1UTF8\s0 format used with the name options assumes that T61Strings use the \s-1ISO8859\-1\s0 character set. This is wrong but Netscape and \s-1MSIE\s0 do this as do many certificates. So although this is incorrect it is more likely to display the majority of certificates correctly. .PP The \fB\-email\fR option searches the subject name and the subject alternative name extension. Only unique email addresses will be printed out: it will not print the same address more than once. .SH "CERTIFICATE EXTENSIONS" .IX Header "CERTIFICATE EXTENSIONS" The \fB\-purpose\fR option checks the certificate extensions and determines what the certificate can be used for. The actual checks done are rather complex and include various hacks and workarounds to handle broken certificates and software. .PP The same code is used when verifying untrusted certificates in chains so this section is useful if a chain is rejected by the verify code. .PP The basicConstraints extension \s-1CA\s0 flag is used to determine whether the certificate can be used as a \s-1CA.\s0 If the \s-1CA\s0 flag is true then it is a \s-1CA,\s0 if the \s-1CA\s0 flag is false then it is not a \s-1CA. \s0\fBAll\fR CAs should have the \&\s-1CA\s0 flag set to true. .PP If the basicConstraints extension is absent then the certificate is considered to be a \*(L"possible \s-1CA\*(R"\s0 other extensions are checked according to the intended use of the certificate. A warning is given in this case because the certificate should really not be regarded as a \s-1CA:\s0 however it is allowed to be a \s-1CA\s0 to work around some broken software. .PP If the certificate is a V1 certificate (and thus has no extensions) and it is self signed it is also assumed to be a \s-1CA\s0 but a warning is again given: this is to work around the problem of Verisign roots which are V1 self signed certificates. .PP If the keyUsage extension is present then additional restraints are made on the uses of the certificate. A \s-1CA\s0 certificate \fBmust\fR have the keyCertSign bit set if the keyUsage extension is present. .PP The extended key usage extension places additional restrictions on the certificate uses. If this extension is present (whether critical or not) the key can only be used for the purposes specified. .PP A complete description of each test is given below. The comments about basicConstraints and keyUsage and V1 certificates above apply to \fBall\fR \&\s-1CA\s0 certificates. .IP "\fB\s-1SSL\s0 Client\fR" 4 .IX Item "SSL Client" The extended key usage extension must be absent or include the \*(L"web client authentication\*(R" \s-1OID. \s0 keyUsage must be absent or it must have the digitalSignature bit set. Netscape certificate type must be absent or it must have the \s-1SSL\s0 client bit set. .IP "\fB\s-1SSL\s0 Client \s-1CA\s0\fR" 4 .IX Item "SSL Client CA" The extended key usage extension must be absent or include the \*(L"web client authentication\*(R" \s-1OID.\s0 Netscape certificate type must be absent or it must have the \s-1SSL CA\s0 bit set: this is used as a work around if the basicConstraints extension is absent. .IP "\fB\s-1SSL\s0 Server\fR" 4 .IX Item "SSL Server" The extended key usage extension must be absent or include the \*(L"web server authentication\*(R" and/or one of the \s-1SGC\s0 OIDs. keyUsage must be absent or it must have the digitalSignature, the keyEncipherment set or both bits set. Netscape certificate type must be absent or have the \s-1SSL\s0 server bit set. .IP "\fB\s-1SSL\s0 Server \s-1CA\s0\fR" 4 .IX Item "SSL Server CA" The extended key usage extension must be absent or include the \*(L"web server authentication\*(R" and/or one of the \s-1SGC\s0 OIDs. Netscape certificate type must be absent or the \s-1SSL CA\s0 bit must be set: this is used as a work around if the basicConstraints extension is absent. .IP "\fBNetscape \s-1SSL\s0 Server\fR" 4 .IX Item "Netscape SSL Server" For Netscape \s-1SSL\s0 clients to connect to an \s-1SSL\s0 server it must have the keyEncipherment bit set if the keyUsage extension is present. This isn't always valid because some cipher suites use the key for digital signing. Otherwise it is the same as a normal \s-1SSL\s0 server. .IP "\fBCommon S/MIME Client Tests\fR" 4 .IX Item "Common S/MIME Client Tests" The extended key usage extension must be absent or include the \*(L"email protection\*(R" \s-1OID.\s0 Netscape certificate type must be absent or should have the S/MIME bit set. If the S/MIME bit is not set in netscape certificate type then the \s-1SSL\s0 client bit is tolerated as an alternative but a warning is shown: this is because some Verisign certificates don't set the S/MIME bit. .IP "\fBS/MIME Signing\fR" 4 .IX Item "S/MIME Signing" In addition to the common S/MIME client tests the digitalSignature bit must be set if the keyUsage extension is present. .IP "\fBS/MIME Encryption\fR" 4 .IX Item "S/MIME Encryption" In addition to the common S/MIME tests the keyEncipherment bit must be set if the keyUsage extension is present. .IP "\fBS/MIME \s-1CA\s0\fR" 4 .IX Item "S/MIME CA" The extended key usage extension must be absent or include the \*(L"email protection\*(R" \s-1OID.\s0 Netscape certificate type must be absent or must have the S/MIME \s-1CA\s0 bit set: this is used as a work around if the basicConstraints extension is absent. .IP "\fB\s-1CRL\s0 Signing\fR" 4 .IX Item "CRL Signing" The keyUsage extension must be absent or it must have the \s-1CRL\s0 signing bit set. .IP "\fB\s-1CRL\s0 Signing \s-1CA\s0\fR" 4 .IX Item "CRL Signing CA" The normal \s-1CA\s0 tests apply. Except in this case the basicConstraints extension must be present. .SH "BUGS" .IX Header "BUGS" Extensions in certificates are not transferred to certificate requests and vice versa. .PP It is possible to produce invalid certificates or requests by specifying the wrong private key or using inconsistent options in some cases: these should be checked. .PP There should be options to explicitly set such things as start and end dates rather than an offset from the current time. .PP The code to implement the verify behaviour described in the \fB\s-1TRUST SETTINGS\s0\fR is currently being developed. It thus describes the intended behaviour rather than the current behaviour. It is hoped that it will represent reality in OpenSSL 0.9.5 and later. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIreq\fR\|(1), \fIca\fR\|(1), \fIgenrsa\fR\|(1), \&\fIgendsa\fR\|(1), \fIverify\fR\|(1), \&\fIx509v3_config\fR\|(5) .SH "HISTORY" .IX Header "HISTORY" Before OpenSSL 0.9.8, the default digest for \s-1RSA\s0 keys was \s-1MD5.\s0 .PP The hash algorithm used in the \fB\-subject_hash\fR and \fB\-issuer_hash\fR options before OpenSSL 1.0.0 was based on the deprecated \s-1MD5\s0 algorithm and the encoding of the distinguished name. In OpenSSL 1.0.0 and later it is based on a canonical version of the \s-1DN\s0 using \s-1SHA1.\s0 This means that any directories using the old form must have their links rebuilt using \fBc_rehash\fR or similar. man1/ca.1000064400000074040147210533270006056 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CA 1" .TH CA 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-ca, ca \- sample minimal CA application .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBca\fR [\fB\-verbose\fR] [\fB\-config filename\fR] [\fB\-name section\fR] [\fB\-gencrl\fR] [\fB\-revoke file\fR] [\fB\-status serial\fR] [\fB\-updatedb\fR] [\fB\-crl_reason reason\fR] [\fB\-crl_hold instruction\fR] [\fB\-crl_compromise time\fR] [\fB\-crl_CA_compromise time\fR] [\fB\-crldays days\fR] [\fB\-crlhours hours\fR] [\fB\-crlexts section\fR] [\fB\-startdate date\fR] [\fB\-enddate date\fR] [\fB\-days arg\fR] [\fB\-md arg\fR] [\fB\-policy arg\fR] [\fB\-keyfile arg\fR] [\fB\-keyform PEM|DER\fR] [\fB\-key arg\fR] [\fB\-passin arg\fR] [\fB\-cert file\fR] [\fB\-selfsign\fR] [\fB\-in file\fR] [\fB\-out file\fR] [\fB\-notext\fR] [\fB\-outdir dir\fR] [\fB\-infiles\fR] [\fB\-spkac file\fR] [\fB\-ss_cert file\fR] [\fB\-preserveDN\fR] [\fB\-noemailDN\fR] [\fB\-batch\fR] [\fB\-msie_hack\fR] [\fB\-extensions section\fR] [\fB\-extfile section\fR] [\fB\-engine id\fR] [\fB\-subj arg\fR] [\fB\-utf8\fR] [\fB\-multivalue\-rdn\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBca\fR command is a minimal \s-1CA\s0 application. It can be used to sign certificate requests in a variety of forms and generate CRLs it also maintains a text database of issued certificates and their status. .PP The options descriptions will be divided into each purpose. .SH "CA OPTIONS" .IX Header "CA OPTIONS" .IP "\fB\-config filename\fR" 4 .IX Item "-config filename" specifies the configuration file to use. .IP "\fB\-name section\fR" 4 .IX Item "-name section" specifies the configuration file section to use (overrides \&\fBdefault_ca\fR in the \fBca\fR section). .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" an input filename containing a single certificate request to be signed by the \s-1CA.\s0 .IP "\fB\-ss_cert filename\fR" 4 .IX Item "-ss_cert filename" a single self signed certificate to be signed by the \s-1CA.\s0 .IP "\fB\-spkac filename\fR" 4 .IX Item "-spkac filename" a file containing a single Netscape signed public key and challenge and additional field values to be signed by the \s-1CA.\s0 See the \fB\s-1SPKAC FORMAT\s0\fR section for information on the required input and output format. .IP "\fB\-infiles\fR" 4 .IX Item "-infiles" if present this should be the last option, all subsequent arguments are assumed to the the names of files containing certificate requests. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" the output file to output certificates to. The default is standard output. The certificate details will also be printed out to this file in \s-1PEM\s0 format (except that \fB\-spkac\fR outputs \s-1DER\s0 format). .IP "\fB\-outdir directory\fR" 4 .IX Item "-outdir directory" the directory to output certificates to. The certificate will be written to a filename consisting of the serial number in hex with \&\*(L".pem\*(R" appended. .IP "\fB\-cert\fR" 4 .IX Item "-cert" the \s-1CA\s0 certificate file. .IP "\fB\-keyfile filename\fR" 4 .IX Item "-keyfile filename" the private key to sign requests with. .IP "\fB\-keyform PEM|DER\fR" 4 .IX Item "-keyform PEM|DER" the format of the data in the private key file. The default is \s-1PEM.\s0 .IP "\fB\-key password\fR" 4 .IX Item "-key password" the password used to encrypt the private key. Since on some systems the command line arguments are visible (e.g. Unix with the 'ps' utility) this option should be used with caution. .IP "\fB\-selfsign\fR" 4 .IX Item "-selfsign" indicates the issued certificates are to be signed with the key the certificate requests were signed with (given with \fB\-keyfile\fR). Cerificate requests signed with a different key are ignored. If \&\fB\-spkac\fR, \fB\-ss_cert\fR or \fB\-gencrl\fR are given, \fB\-selfsign\fR is ignored. .Sp A consequence of using \fB\-selfsign\fR is that the self-signed certificate appears among the entries in the certificate database (see the configuration option \fBdatabase\fR), and uses the same serial number counter as all other certificates sign with the self-signed certificate. .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the key password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-verbose\fR" 4 .IX Item "-verbose" this prints extra details about the operations being performed. .IP "\fB\-notext\fR" 4 .IX Item "-notext" don't output the text form of a certificate to the output file. .IP "\fB\-startdate date\fR" 4 .IX Item "-startdate date" this allows the start date to be explicitly set. The format of the date is \s-1YYMMDDHHMMSSZ \s0(the same as an \s-1ASN1\s0 UTCTime structure). .IP "\fB\-enddate date\fR" 4 .IX Item "-enddate date" this allows the expiry date to be explicitly set. The format of the date is \s-1YYMMDDHHMMSSZ \s0(the same as an \s-1ASN1\s0 UTCTime structure). .IP "\fB\-days arg\fR" 4 .IX Item "-days arg" the number of days to certify the certificate for. .IP "\fB\-md alg\fR" 4 .IX Item "-md alg" the message digest to use. Possible values include md5, sha1 and mdc2. This option also applies to CRLs. .IP "\fB\-policy arg\fR" 4 .IX Item "-policy arg" this option defines the \s-1CA \s0\*(L"policy\*(R" to use. This is a section in the configuration file which decides which fields should be mandatory or match the \s-1CA\s0 certificate. Check out the \fB\s-1POLICY FORMAT\s0\fR section for more information. .IP "\fB\-msie_hack\fR" 4 .IX Item "-msie_hack" this is a legacy option to make \fBca\fR work with very old versions of the \s-1IE\s0 certificate enrollment control \*(L"certenr3\*(R". It used UniversalStrings for almost everything. Since the old control has various security bugs its use is strongly discouraged. The newer control \*(L"Xenroll\*(R" does not need this option. .IP "\fB\-preserveDN\fR" 4 .IX Item "-preserveDN" Normally the \s-1DN\s0 order of a certificate is the same as the order of the fields in the relevant policy section. When this option is set the order is the same as the request. This is largely for compatibility with the older \s-1IE\s0 enrollment control which would only accept certificates if their DNs match the order of the request. This is not needed for Xenroll. .IP "\fB\-noemailDN\fR" 4 .IX Item "-noemailDN" The \s-1DN\s0 of a certificate can contain the \s-1EMAIL\s0 field if present in the request \s-1DN,\s0 however it is good policy just having the e\-mail set into the altName extension of the certificate. When this option is set the \&\s-1EMAIL\s0 field is removed from the certificate' subject and set only in the, eventually present, extensions. The \fBemail_in_dn\fR keyword can be used in the configuration file to enable this behaviour. .IP "\fB\-batch\fR" 4 .IX Item "-batch" this sets the batch mode. In this mode no questions will be asked and all certificates will be certified automatically. .IP "\fB\-extensions section\fR" 4 .IX Item "-extensions section" the section of the configuration file containing certificate extensions to be added when a certificate is issued (defaults to \fBx509_extensions\fR unless the \fB\-extfile\fR option is used). If no extension section is present then, a V1 certificate is created. If the extension section is present (even if it is empty), then a V3 certificate is created. See the \&\fIx509v3_config\fR\|(5) manual page for details of the extension section format. .IP "\fB\-extfile file\fR" 4 .IX Item "-extfile file" an additional configuration file to read certificate extensions from (using the default section unless the \fB\-extensions\fR option is also used). .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBca\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .IP "\fB\-subj arg\fR" 4 .IX Item "-subj arg" supersedes subject name given in the request. The arg must be formatted as \fI/type0=value0/type1=value1/type2=...\fR, characters may be escaped by \e (backslash), no spaces are skipped. .IP "\fB\-utf8\fR" 4 .IX Item "-utf8" this option causes field values to be interpreted as \s-1UTF8\s0 strings, by default they are interpreted as \s-1ASCII.\s0 This means that the field values, whether prompted from a terminal or obtained from a configuration file, must be valid \s-1UTF8\s0 strings. .IP "\fB\-multivalue\-rdn\fR" 4 .IX Item "-multivalue-rdn" this option causes the \-subj argument to be interpretedt with full support for multivalued RDNs. Example: .Sp \&\fI/DC=org/DC=OpenSSL/DC=users/UID=123456+CN=John Doe\fR .Sp If \-multi\-rdn is not used then the \s-1UID\s0 value is \fI123456+CN=John Doe\fR. .SH "CRL OPTIONS" .IX Header "CRL OPTIONS" .IP "\fB\-gencrl\fR" 4 .IX Item "-gencrl" this option generates a \s-1CRL\s0 based on information in the index file. .IP "\fB\-crldays num\fR" 4 .IX Item "-crldays num" the number of days before the next \s-1CRL\s0 is due. That is the days from now to place in the \s-1CRL\s0 nextUpdate field. .IP "\fB\-crlhours num\fR" 4 .IX Item "-crlhours num" the number of hours before the next \s-1CRL\s0 is due. .IP "\fB\-revoke filename\fR" 4 .IX Item "-revoke filename" a filename containing a certificate to revoke. .IP "\fB\-status serial\fR" 4 .IX Item "-status serial" displays the revocation status of the certificate with the specified serial number and exits. .IP "\fB\-updatedb\fR" 4 .IX Item "-updatedb" Updates the database index to purge expired certificates. .IP "\fB\-crl_reason reason\fR" 4 .IX Item "-crl_reason reason" revocation reason, where \fBreason\fR is one of: \fBunspecified\fR, \fBkeyCompromise\fR, \&\fBCACompromise\fR, \fBaffiliationChanged\fR, \fBsuperseded\fR, \fBcessationOfOperation\fR, \&\fBcertificateHold\fR or \fBremoveFromCRL\fR. The matching of \fBreason\fR is case insensitive. Setting any revocation reason will make the \s-1CRL\s0 v2. .Sp In practive \fBremoveFromCRL\fR is not particularly useful because it is only used in delta CRLs which are not currently implemented. .IP "\fB\-crl_hold instruction\fR" 4 .IX Item "-crl_hold instruction" This sets the \s-1CRL\s0 revocation reason code to \fBcertificateHold\fR and the hold instruction to \fBinstruction\fR which must be an \s-1OID.\s0 Although any \s-1OID\s0 can be used only \fBholdInstructionNone\fR (the use of which is discouraged by \s-1RFC2459\s0) \&\fBholdInstructionCallIssuer\fR or \fBholdInstructionReject\fR will normally be used. .IP "\fB\-crl_compromise time\fR" 4 .IX Item "-crl_compromise time" This sets the revocation reason to \fBkeyCompromise\fR and the compromise time to \&\fBtime\fR. \fBtime\fR should be in GeneralizedTime format that is \fB\s-1YYYYMMDDHHMMSSZ\s0\fR. .IP "\fB\-crl_CA_compromise time\fR" 4 .IX Item "-crl_CA_compromise time" This is the same as \fBcrl_compromise\fR except the revocation reason is set to \&\fBCACompromise\fR. .IP "\fB\-crlexts section\fR" 4 .IX Item "-crlexts section" the section of the configuration file containing \s-1CRL\s0 extensions to include. If no \s-1CRL\s0 extension section is present then a V1 \s-1CRL\s0 is created, if the \s-1CRL\s0 extension section is present (even if it is empty) then a V2 \s-1CRL\s0 is created. The \s-1CRL\s0 extensions specified are \&\s-1CRL\s0 extensions and \fBnot\fR \s-1CRL\s0 entry extensions. It should be noted that some software (for example Netscape) can't handle V2 CRLs. See \&\fIx509v3_config\fR\|(5) manual page for details of the extension section format. .SH "CONFIGURATION FILE OPTIONS" .IX Header "CONFIGURATION FILE OPTIONS" The section of the configuration file containing options for \fBca\fR is found as follows: If the \fB\-name\fR command line option is used, then it names the section to be used. Otherwise the section to be used must be named in the \fBdefault_ca\fR option of the \fBca\fR section of the configuration file (or in the default section of the configuration file). Besides \fBdefault_ca\fR, the following options are read directly from the \fBca\fR section: \s-1RANDFILE \&\s0 preserve msie_hack With the exception of \fB\s-1RANDFILE\s0\fR, this is probably a bug and may change in future releases. .PP Many of the configuration file options are identical to command line options. Where the option is present in the configuration file and the command line the command line value is used. Where an option is described as mandatory then it must be present in the configuration file or the command line equivalent (if any) used. .IP "\fBoid_file\fR" 4 .IX Item "oid_file" This specifies a file containing additional \fB\s-1OBJECT IDENTIFIERS\s0\fR. Each line of the file should consist of the numerical form of the object identifier followed by white space then the short name followed by white space and finally the long name. .IP "\fBoid_section\fR" 4 .IX Item "oid_section" This specifies a section in the configuration file containing extra object identifiers. Each line should consist of the short name of the object identifier followed by \fB=\fR and the numerical form. The short and long names are the same when this option is used. .IP "\fBnew_certs_dir\fR" 4 .IX Item "new_certs_dir" the same as the \fB\-outdir\fR command line option. It specifies the directory where new certificates will be placed. Mandatory. .IP "\fBcertificate\fR" 4 .IX Item "certificate" the same as \fB\-cert\fR. It gives the file containing the \s-1CA\s0 certificate. Mandatory. .IP "\fBprivate_key\fR" 4 .IX Item "private_key" same as the \fB\-keyfile\fR option. The file containing the \&\s-1CA\s0 private key. Mandatory. .IP "\fB\s-1RANDFILE\s0\fR" 4 .IX Item "RANDFILE" a file used to read and write random number seed information, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). .IP "\fBdefault_days\fR" 4 .IX Item "default_days" the same as the \fB\-days\fR option. The number of days to certify a certificate for. .IP "\fBdefault_startdate\fR" 4 .IX Item "default_startdate" the same as the \fB\-startdate\fR option. The start date to certify a certificate for. If not set the current time is used. .IP "\fBdefault_enddate\fR" 4 .IX Item "default_enddate" the same as the \fB\-enddate\fR option. Either this option or \&\fBdefault_days\fR (or the command line equivalents) must be present. .IP "\fBdefault_crl_hours default_crl_days\fR" 4 .IX Item "default_crl_hours default_crl_days" the same as the \fB\-crlhours\fR and the \fB\-crldays\fR options. These will only be used if neither command line option is present. At least one of these must be present to generate a \s-1CRL.\s0 .IP "\fBdefault_md\fR" 4 .IX Item "default_md" the same as the \fB\-md\fR option. The message digest to use. Mandatory. .IP "\fBdatabase\fR" 4 .IX Item "database" the text database file to use. Mandatory. This file must be present though initially it will be empty. .IP "\fBunique_subject\fR" 4 .IX Item "unique_subject" if the value \fByes\fR is given, the valid certificate entries in the database must have unique subjects. if the value \fBno\fR is given, several valid certificate entries may have the exact same subject. The default value is \fByes\fR, to be compatible with older (pre 0.9.8) versions of OpenSSL. However, to make \s-1CA\s0 certificate roll-over easier, it's recommended to use the value \fBno\fR, especially if combined with the \fB\-selfsign\fR command line option. .Sp Note that it is valid in some circumstances for certificates to be created without any subject. In the case where there are multiple certificates without subjects this does not count as a duplicate. .IP "\fBserial\fR" 4 .IX Item "serial" a text file containing the next serial number to use in hex. Mandatory. This file must be present and contain a valid serial number. .IP "\fBcrlnumber\fR" 4 .IX Item "crlnumber" a text file containing the next \s-1CRL\s0 number to use in hex. The crl number will be inserted in the CRLs only if this file exists. If this file is present, it must contain a valid \s-1CRL\s0 number. .IP "\fBx509_extensions\fR" 4 .IX Item "x509_extensions" the same as \fB\-extensions\fR. .IP "\fBcrl_extensions\fR" 4 .IX Item "crl_extensions" the same as \fB\-crlexts\fR. .IP "\fBpreserve\fR" 4 .IX Item "preserve" the same as \fB\-preserveDN\fR .IP "\fBemail_in_dn\fR" 4 .IX Item "email_in_dn" the same as \fB\-noemailDN\fR. If you want the \s-1EMAIL\s0 field to be removed from the \s-1DN\s0 of the certificate simply set this to 'no'. If not present the default is to allow for the \s-1EMAIL\s0 filed in the certificate's \s-1DN.\s0 .IP "\fBmsie_hack\fR" 4 .IX Item "msie_hack" the same as \fB\-msie_hack\fR .IP "\fBpolicy\fR" 4 .IX Item "policy" the same as \fB\-policy\fR. Mandatory. See the \fB\s-1POLICY FORMAT\s0\fR section for more information. .IP "\fBname_opt\fR, \fBcert_opt\fR" 4 .IX Item "name_opt, cert_opt" these options allow the format used to display the certificate details when asking the user to confirm signing. All the options supported by the \fBx509\fR utilities \fB\-nameopt\fR and \fB\-certopt\fR switches can be used here, except the \fBno_signame\fR and \fBno_sigdump\fR are permanently set and cannot be disabled (this is because the certificate signature cannot be displayed because the certificate has not been signed at this point). .Sp For convenience the values \fBca_default\fR are accepted by both to produce a reasonable output. .Sp If neither option is present the format used in earlier versions of OpenSSL is used. Use of the old format is \fBstrongly\fR discouraged because it only displays fields mentioned in the \fBpolicy\fR section, mishandles multicharacter string types and does not display extensions. .IP "\fBcopy_extensions\fR" 4 .IX Item "copy_extensions" determines how extensions in certificate requests should be handled. If set to \fBnone\fR or this option is not present then extensions are ignored and not copied to the certificate. If set to \fBcopy\fR then any extensions present in the request that are not already present are copied to the certificate. If set to \fBcopyall\fR then all extensions in the request are copied to the certificate: if the extension is already present in the certificate it is deleted first. See the \fB\s-1WARNINGS\s0\fR section before using this option. .Sp The main use of this option is to allow a certificate request to supply values for certain extensions such as subjectAltName. .SH "POLICY FORMAT" .IX Header "POLICY FORMAT" The policy section consists of a set of variables corresponding to certificate \s-1DN\s0 fields. If the value is \*(L"match\*(R" then the field value must match the same field in the \s-1CA\s0 certificate. If the value is \&\*(L"supplied\*(R" then it must be present. If the value is \*(L"optional\*(R" then it may be present. Any fields not mentioned in the policy section are silently deleted, unless the \fB\-preserveDN\fR option is set but this can be regarded more of a quirk than intended behaviour. .SH "SPKAC FORMAT" .IX Header "SPKAC FORMAT" The input to the \fB\-spkac\fR command line option is a Netscape signed public key and challenge. This will usually come from the \fB\s-1KEYGEN\s0\fR tag in an \s-1HTML\s0 form to create a new private key. It is however possible to create SPKACs using the \fBspkac\fR utility. .PP The file should contain the variable \s-1SPKAC\s0 set to the value of the \s-1SPKAC\s0 and also the required \s-1DN\s0 components as name value pairs. If you need to include the same component twice then it can be preceded by a number and a '.'. .PP When processing \s-1SPKAC\s0 format, the output is \s-1DER\s0 if the \fB\-out\fR flag is used, but \s-1PEM\s0 format if sending to stdout or the \fB\-outdir\fR flag is used. .SH "EXAMPLES" .IX Header "EXAMPLES" Note: these examples assume that the \fBca\fR directory structure is already set up and the relevant files already exist. This usually involves creating a \s-1CA\s0 certificate and private key with \fBreq\fR, a serial number file and an empty index file and placing them in the relevant directories. .PP To use the sample configuration file below the directories demoCA, demoCA/private and demoCA/newcerts would be created. The \s-1CA\s0 certificate would be copied to demoCA/cacert.pem and its private key to demoCA/private/cakey.pem. A file demoCA/serial would be created containing for example \*(L"01\*(R" and the empty index file demoCA/index.txt. .PP Sign a certificate request: .PP .Vb 1 \& openssl ca \-in req.pem \-out newcert.pem .Ve .PP Sign a certificate request, using \s-1CA\s0 extensions: .PP .Vb 1 \& openssl ca \-in req.pem \-extensions v3_ca \-out newcert.pem .Ve .PP Generate a \s-1CRL\s0 .PP .Vb 1 \& openssl ca \-gencrl \-out crl.pem .Ve .PP Sign several requests: .PP .Vb 1 \& openssl ca \-infiles req1.pem req2.pem req3.pem .Ve .PP Certify a Netscape \s-1SPKAC:\s0 .PP .Vb 1 \& openssl ca \-spkac spkac.txt .Ve .PP A sample \s-1SPKAC\s0 file (the \s-1SPKAC\s0 line has been truncated for clarity): .PP .Vb 5 \& SPKAC=MIG0MGAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAn7PDhCeV/xIxUg8V70YRxK2A5 \& CN=Steve Test \& emailAddress=steve@openssl.org \& 0.OU=OpenSSL Group \& 1.OU=Another Group .Ve .PP A sample configuration file with the relevant sections for \fBca\fR: .PP .Vb 2 \& [ ca ] \& default_ca = CA_default # The default ca section \& \& [ CA_default ] \& \& dir = ./demoCA # top dir \& database = $dir/index.txt # index file. \& new_certs_dir = $dir/newcerts # new certs dir \& \& certificate = $dir/cacert.pem # The CA cert \& serial = $dir/serial # serial no file \& private_key = $dir/private/cakey.pem# CA private key \& RANDFILE = $dir/private/.rand # random number file \& \& default_days = 365 # how long to certify for \& default_crl_days= 30 # how long before next CRL \& default_md = md5 # md to use \& \& policy = policy_any # default policy \& email_in_dn = no # Don\*(Aqt add the email into cert DN \& \& name_opt = ca_default # Subject name display option \& cert_opt = ca_default # Certificate display option \& copy_extensions = none # Don\*(Aqt copy extensions from request \& \& [ policy_any ] \& countryName = supplied \& stateOrProvinceName = optional \& organizationName = optional \& organizationalUnitName = optional \& commonName = supplied \& emailAddress = optional .Ve .SH "FILES" .IX Header "FILES" Note: the location of all files can change either by compile time options, configuration file entries, environment variables or command line options. The values below reflect the default values. .PP .Vb 10 \& /usr/local/ssl/lib/openssl.cnf \- master configuration file \& ./demoCA \- main CA directory \& ./demoCA/cacert.pem \- CA certificate \& ./demoCA/private/cakey.pem \- CA private key \& ./demoCA/serial \- CA serial number file \& ./demoCA/serial.old \- CA serial number backup file \& ./demoCA/index.txt \- CA text database file \& ./demoCA/index.txt.old \- CA text database backup file \& ./demoCA/certs \- certificate output file \& ./demoCA/.rnd \- CA random seed information .Ve .SH "ENVIRONMENT VARIABLES" .IX Header "ENVIRONMENT VARIABLES" \&\fB\s-1OPENSSL_CONF\s0\fR reflects the location of master configuration file it can be overridden by the \fB\-config\fR command line option. .SH "RESTRICTIONS" .IX Header "RESTRICTIONS" The text database index file is a critical part of the process and if corrupted it can be difficult to fix. It is theoretically possible to rebuild the index file from all the issued certificates and a current \&\s-1CRL:\s0 however there is no option to do this. .PP V2 \s-1CRL\s0 features like delta CRLs are not currently supported. .PP Although several requests can be input and handled at once it is only possible to include one \s-1SPKAC\s0 or self signed certificate. .SH "BUGS" .IX Header "BUGS" The use of an in memory text database can cause problems when large numbers of certificates are present because, as the name implies the database has to be kept in memory. .PP The \fBca\fR command really needs rewriting or the required functionality exposed at either a command or interface level so a more friendly utility (perl script or \s-1GUI\s0) can handle things properly. The scripts \fB\s-1CA\s0.sh\fR and \&\fB\s-1CA\s0.pl\fR help a little but not very much. .PP Any fields in a request that are not present in a policy are silently deleted. This does not happen if the \fB\-preserveDN\fR option is used. To enforce the absence of the \s-1EMAIL\s0 field within the \s-1DN,\s0 as suggested by RFCs, regardless the contents of the request' subject the \fB\-noemailDN\fR option can be used. The behaviour should be more friendly and configurable. .PP Cancelling some commands by refusing to certify a certificate can create an empty file. .SH "WARNINGS" .IX Header "WARNINGS" The \fBca\fR command is quirky and at times downright unfriendly. .PP The \fBca\fR utility was originally meant as an example of how to do things in a \s-1CA.\s0 It was not supposed to be used as a full blown \s-1CA\s0 itself: nevertheless some people are using it for this purpose. .PP The \fBca\fR command is effectively a single user command: no locking is done on the various files and attempts to run more than one \fBca\fR command on the same database can have unpredictable results. .PP The \fBcopy_extensions\fR option should be used with caution. If care is not taken then it can be a security risk. For example if a certificate request contains a basicConstraints extension with \s-1CA:TRUE\s0 and the \&\fBcopy_extensions\fR value is set to \fBcopyall\fR and the user does not spot this when the certificate is displayed then this will hand the requestor a valid \s-1CA\s0 certificate. .PP This situation can be avoided by setting \fBcopy_extensions\fR to \fBcopy\fR and including basicConstraints with \s-1CA:FALSE\s0 in the configuration file. Then if the request contains a basicConstraints extension it will be ignored. .PP It is advisable to also include values for other extensions such as \fBkeyUsage\fR to prevent a request supplying its own values. .PP Additional restrictions can be placed on the \s-1CA\s0 certificate itself. For example if the \s-1CA\s0 certificate has: .PP .Vb 1 \& basicConstraints = CA:TRUE, pathlen:0 .Ve .PP then even if a certificate is issued with \s-1CA:TRUE\s0 it will not be valid. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIreq\fR\|(1), \fIspkac\fR\|(1), \fIx509\fR\|(1), \s-1\fICA\s0.pl\fR\|(1), \&\fIconfig\fR\|(5), \fIx509v3_config\fR\|(5) man1/pkcs8.1000064400000033122147210533270006517 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PKCS8 1" .TH PKCS8 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-pkcs8, pkcs8 \- PKCS#8 format private key conversion tool .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBpkcs8\fR [\fB\-topk8\fR] [\fB\-inform PEM|DER\fR] [\fB\-outform PEM|DER\fR] [\fB\-in filename\fR] [\fB\-passin arg\fR] [\fB\-out filename\fR] [\fB\-passout arg\fR] [\fB\-noiter\fR] [\fB\-nocrypt\fR] [\fB\-nooct\fR] [\fB\-embed\fR] [\fB\-nsdb\fR] [\fB\-v2 alg\fR] [\fB\-v2prf alg\fR] [\fB\-v1 alg\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBpkcs8\fR command processes private keys in PKCS#8 format. It can handle both unencrypted PKCS#8 PrivateKeyInfo format and EncryptedPrivateKeyInfo format with a variety of PKCS#5 (v1.5 and v2.0) and PKCS#12 algorithms. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-topk8\fR" 4 .IX Item "-topk8" Normally a PKCS#8 private key is expected on input and a traditional format private key will be written. With the \fB\-topk8\fR option the situation is reversed: it reads a traditional format private key and writes a PKCS#8 format key. .IP "\fB\-inform DER|PEM\fR" 4 .IX Item "-inform DER|PEM" This specifies the input format. If a PKCS#8 format key is expected on input then either a \fB\s-1DER\s0\fR or \fB\s-1PEM\s0\fR encoded version of a PKCS#8 key will be expected. Otherwise the \fB\s-1DER\s0\fR or \fB\s-1PEM\s0\fR format of the traditional format private key is used. .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read a key from or standard input if this option is not specified. If the key is encrypted a pass phrase will be prompted for. .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the input file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" This specifies the output filename to write a key to or standard output by default. If any encryption options are set then a pass phrase will be prompted for. The output filename should \fBnot\fR be the same as the input filename. .IP "\fB\-passout arg\fR" 4 .IX Item "-passout arg" the output file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-nocrypt\fR" 4 .IX Item "-nocrypt" PKCS#8 keys generated or input are normally PKCS#8 EncryptedPrivateKeyInfo structures using an appropriate password based encryption algorithm. With this option an unencrypted PrivateKeyInfo structure is expected or output. This option does not encrypt private keys at all and should only be used when absolutely necessary. Certain software such as some versions of Java code signing software used unencrypted private keys. .IP "\fB\-nooct\fR" 4 .IX Item "-nooct" This option generates \s-1RSA\s0 private keys in a broken format that some software uses. Specifically the private key should be enclosed in a \s-1OCTET STRING\s0 but some software just includes the structure itself without the surrounding \s-1OCTET STRING.\s0 .IP "\fB\-embed\fR" 4 .IX Item "-embed" This option generates \s-1DSA\s0 keys in a broken format. The \s-1DSA\s0 parameters are embedded inside the PrivateKey structure. In this form the \s-1OCTET STRING\s0 contains an \s-1ASN1 SEQUENCE\s0 consisting of two structures: a \s-1SEQUENCE\s0 containing the parameters and an \s-1ASN1 INTEGER\s0 containing the private key. .IP "\fB\-nsdb\fR" 4 .IX Item "-nsdb" This option generates \s-1DSA\s0 keys in a broken format compatible with Netscape private key databases. The PrivateKey contains a \s-1SEQUENCE\s0 consisting of the public and private keys respectively. .IP "\fB\-v2 alg\fR" 4 .IX Item "-v2 alg" This option enables the use of PKCS#5 v2.0 algorithms. Normally PKCS#8 private keys are encrypted with the password based encryption algorithm called \fBpbeWithMD5AndDES\-CBC\fR this uses 56 bit \s-1DES\s0 encryption but it was the strongest encryption algorithm supported in PKCS#5 v1.5. Using the \fB\-v2\fR option PKCS#5 v2.0 algorithms are used which can use any encryption algorithm such as 168 bit triple \s-1DES\s0 or 128 bit \s-1RC2\s0 however not many implementations support PKCS#5 v2.0 yet. If you are just using private keys with OpenSSL then this doesn't matter. .Sp The \fBalg\fR argument is the encryption algorithm to use, valid values include \&\fBdes\fR, \fBdes3\fR and \fBrc2\fR. It is recommended that \fBdes3\fR is used. .IP "\fB\-v2prf alg\fR" 4 .IX Item "-v2prf alg" This option sets the \s-1PRF\s0 algorithm to use with PKCS#5 v2.0. A typical value values would be \fBhmacWithSHA256\fR. If this option isn't set then the default for the cipher is used or \fBhmacWithSHA1\fR if there is no default. .IP "\fB\-v1 alg\fR" 4 .IX Item "-v1 alg" This option specifies a PKCS#5 v1.5 or PKCS#12 algorithm to use. A complete list of possible algorithms is included below. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBpkcs8\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .SH "NOTES" .IX Header "NOTES" The encrypted form of a \s-1PEM\s0 encode PKCS#8 files uses the following headers and footers: .PP .Vb 2 \& \-\-\-\-\-BEGIN ENCRYPTED PRIVATE KEY\-\-\-\-\- \& \-\-\-\-\-END ENCRYPTED PRIVATE KEY\-\-\-\-\- .Ve .PP The unencrypted form uses: .PP .Vb 2 \& \-\-\-\-\-BEGIN PRIVATE KEY\-\-\-\-\- \& \-\-\-\-\-END PRIVATE KEY\-\-\-\-\- .Ve .PP Private keys encrypted using PKCS#5 v2.0 algorithms and high iteration counts are more secure that those encrypted using the traditional SSLeay compatible formats. So if additional security is considered important the keys should be converted. .PP The default encryption is only 56 bits because this is the encryption that most current implementations of PKCS#8 will support. .PP Some software may use PKCS#12 password based encryption algorithms with PKCS#8 format private keys: these are handled automatically but there is no option to produce them. .PP It is possible to write out \s-1DER\s0 encoded encrypted private keys in PKCS#8 format because the encryption details are included at an \s-1ASN1\s0 level whereas the traditional format includes them at a \s-1PEM\s0 level. .SH "PKCS#5 v1.5 and PKCS#12 algorithms." .IX Header "PKCS#5 v1.5 and PKCS#12 algorithms." Various algorithms can be used with the \fB\-v1\fR command line option, including PKCS#5 v1.5 and PKCS#12. These are described in more detail below. .IP "\fB\s-1PBE\-MD2\-DES PBE\-MD5\-DES\s0\fR" 4 .IX Item "PBE-MD2-DES PBE-MD5-DES" These algorithms were included in the original PKCS#5 v1.5 specification. They only offer 56 bits of protection since they both use \s-1DES.\s0 .IP "\fB\s-1PBE\-SHA1\-RC2\-64 PBE\-MD2\-RC2\-64 PBE\-MD5\-RC2\-64 PBE\-SHA1\-DES\s0\fR" 4 .IX Item "PBE-SHA1-RC2-64 PBE-MD2-RC2-64 PBE-MD5-RC2-64 PBE-SHA1-DES" These algorithms are not mentioned in the original PKCS#5 v1.5 specification but they use the same key derivation algorithm and are supported by some software. They are mentioned in PKCS#5 v2.0. They use either 64 bit \s-1RC2\s0 or 56 bit \s-1DES.\s0 .IP "\fB\s-1PBE\-SHA1\-RC4\-128 PBE\-SHA1\-RC4\-40 PBE\-SHA1\-3DES PBE\-SHA1\-2DES PBE\-SHA1\-RC2\-128 PBE\-SHA1\-RC2\-40\s0\fR" 4 .IX Item "PBE-SHA1-RC4-128 PBE-SHA1-RC4-40 PBE-SHA1-3DES PBE-SHA1-2DES PBE-SHA1-RC2-128 PBE-SHA1-RC2-40" These algorithms use the PKCS#12 password based encryption algorithm and allow strong encryption algorithms like triple \s-1DES\s0 or 128 bit \s-1RC2\s0 to be used. .SH "EXAMPLES" .IX Header "EXAMPLES" Convert a private from traditional to PKCS#5 v2.0 format using triple \&\s-1DES:\s0 .PP .Vb 1 \& openssl pkcs8 \-in key.pem \-topk8 \-v2 des3 \-out enckey.pem .Ve .PP Convert a private from traditional to PKCS#5 v2.0 format using \s-1AES\s0 with 256 bits in \s-1CBC\s0 mode and \fBhmacWithSHA256\fR \s-1PRF:\s0 .PP .Vb 1 \& openssl pkcs8 \-in key.pem \-topk8 \-v2 aes\-256\-cbc \-v2prf hmacWithSHA256 \-out enckey.pem .Ve .PP Convert a private key to PKCS#8 using a PKCS#5 1.5 compatible algorithm (\s-1DES\s0): .PP .Vb 1 \& openssl pkcs8 \-in key.pem \-topk8 \-out enckey.pem .Ve .PP Convert a private key to PKCS#8 using a PKCS#12 compatible algorithm (3DES): .PP .Vb 1 \& openssl pkcs8 \-in key.pem \-topk8 \-out enckey.pem \-v1 PBE\-SHA1\-3DES .Ve .PP Read a \s-1DER\s0 unencrypted PKCS#8 format private key: .PP .Vb 1 \& openssl pkcs8 \-inform DER \-nocrypt \-in key.der \-out key.pem .Ve .PP Convert a private key from any PKCS#8 format to traditional format: .PP .Vb 1 \& openssl pkcs8 \-in pk8.pem \-out key.pem .Ve .SH "STANDARDS" .IX Header "STANDARDS" Test vectors from this PKCS#5 v2.0 implementation were posted to the pkcs-tng mailing list using triple \s-1DES, DES\s0 and \s-1RC2\s0 with high iteration counts, several people confirmed that they could decrypt the private keys produced and Therefore it can be assumed that the PKCS#5 v2.0 implementation is reasonably accurate at least as far as these algorithms are concerned. .PP The format of PKCS#8 \s-1DSA \s0(and other) private keys is not well documented: it is hidden away in PKCS#11 v2.01, section 11.9. OpenSSL's default \s-1DSA\s0 PKCS#8 private key format complies with this standard. .SH "BUGS" .IX Header "BUGS" There should be an option that prints out the encryption algorithm in use and other details such as the iteration count. .PP PKCS#8 using triple \s-1DES\s0 and PKCS#5 v2.0 should be the default private key format for OpenSSL: for compatibility several of the utilities use the old format at present. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdsa\fR\|(1), \fIrsa\fR\|(1), \fIgenrsa\fR\|(1), \&\fIgendsa\fR\|(1) man1/s_time.1000064400000025031147210533270006747 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "S_TIME 1" .TH S_TIME 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-s_time, s_time \- SSL/TLS performance timing program .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBs_time\fR [\fB\-connect host:port\fR] [\fB\-www page\fR] [\fB\-cert filename\fR] [\fB\-key filename\fR] [\fB\-CApath directory\fR] [\fB\-CAfile filename\fR] [\fB\-reuse\fR] [\fB\-new\fR] [\fB\-verify depth\fR] [\fB\-nbio\fR] [\fB\-time seconds\fR] [\fB\-ssl2\fR] [\fB\-ssl3\fR] [\fB\-bugs\fR] [\fB\-cipher cipherlist\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBs_time\fR command implements a generic \s-1SSL/TLS\s0 client which connects to a remote host using \s-1SSL/TLS.\s0 It can request a page from the server and includes the time to transfer the payload data in its timing measurements. It measures the number of connections within a given timeframe, the amount of data transferred (if any), and calculates the average time spent for one connection. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-connect host:port\fR" 4 .IX Item "-connect host:port" This specifies the host and optional port to connect to. .IP "\fB\-www page\fR" 4 .IX Item "-www page" This specifies the page to \s-1GET\s0 from the server. A value of '/' gets the index.htm[l] page. If this parameter is not specified, then \fBs_time\fR will only perform the handshake to establish \s-1SSL\s0 connections but not transfer any payload data. .IP "\fB\-cert certname\fR" 4 .IX Item "-cert certname" The certificate to use, if one is requested by the server. The default is not to use a certificate. The file is in \s-1PEM\s0 format. .IP "\fB\-key keyfile\fR" 4 .IX Item "-key keyfile" The private key to use. If not specified then the certificate file will be used. The file is in \s-1PEM\s0 format. .IP "\fB\-verify depth\fR" 4 .IX Item "-verify depth" The verify depth to use. This specifies the maximum length of the server certificate chain and turns on server certificate verification. Currently the verify operation continues after errors so all the problems with a certificate chain can be seen. As a side effect the connection will never fail due to a server certificate verify failure. .IP "\fB\-CApath directory\fR" 4 .IX Item "-CApath directory" The directory to use for server certificate verification. This directory must be in \*(L"hash format\*(R", see \fBverify\fR for more information. These are also used when building the client certificate chain. .IP "\fB\-CAfile file\fR" 4 .IX Item "-CAfile file" A file containing trusted certificates to use during server authentication and to use when attempting to build the client certificate chain. .IP "\fB\-new\fR" 4 .IX Item "-new" performs the timing test using a new session \s-1ID\s0 for each connection. If neither \fB\-new\fR nor \fB\-reuse\fR are specified, they are both on by default and executed in sequence. .IP "\fB\-reuse\fR" 4 .IX Item "-reuse" performs the timing test using the same session \s-1ID\s0; this can be used as a test that session caching is working. If neither \fB\-new\fR nor \fB\-reuse\fR are specified, they are both on by default and executed in sequence. .IP "\fB\-nbio\fR" 4 .IX Item "-nbio" turns on non-blocking I/O. .IP "\fB\-ssl2\fR, \fB\-ssl3\fR" 4 .IX Item "-ssl2, -ssl3" these options disable the use of certain \s-1SSL\s0 or \s-1TLS\s0 protocols. By default the initial handshake uses a method which should be compatible with all servers and permit them to use \s-1SSL\s0 v3, \s-1SSL\s0 v2 or \s-1TLS\s0 as appropriate. The timing program is not as rich in options to turn protocols on and off as the \fIs_client\fR\|(1) program and may not connect to all servers. .Sp Unfortunately there are a lot of ancient and broken servers in use which cannot handle this technique and will fail to connect. Some servers only work if \s-1TLS\s0 is turned off with the \fB\-ssl3\fR option; others will only support \s-1SSL\s0 v2 and may need the \fB\-ssl2\fR option. .IP "\fB\-bugs\fR" 4 .IX Item "-bugs" there are several known bug in \s-1SSL\s0 and \s-1TLS\s0 implementations. Adding this option enables various workarounds. .IP "\fB\-cipher cipherlist\fR" 4 .IX Item "-cipher cipherlist" this allows the cipher list sent by the client to be modified. Although the server determines which cipher suite is used it should take the first supported cipher in the list sent by the client. See the \fIciphers\fR\|(1) command for more information. .IP "\fB\-time length\fR" 4 .IX Item "-time length" specifies how long (in seconds) \fBs_time\fR should establish connections and optionally transfer payload data from a server. Server and client performance and the link speed determine how many connections \fBs_time\fR can establish. .SH "NOTES" .IX Header "NOTES" \&\fBs_time\fR can be used to measure the performance of an \s-1SSL\s0 connection. To connect to an \s-1SSL HTTP\s0 server and get the default page the command .PP .Vb 1 \& openssl s_time \-connect servername:443 \-www / \-CApath yourdir \-CAfile yourfile.pem \-cipher commoncipher [\-ssl3] .Ve .PP would typically be used (https uses port 443). 'commoncipher' is a cipher to which both client and server can agree, see the \fIciphers\fR\|(1) command for details. .PP If the handshake fails then there are several possible causes, if it is nothing obvious like no client certificate then the \fB\-bugs\fR, \fB\-ssl2\fR, \&\fB\-ssl3\fR options can be tried in case it is a buggy server. In particular you should play with these options \fBbefore\fR submitting a bug report to an OpenSSL mailing list. .PP A frequent problem when attempting to get client certificates working is that a web client complains it has no certificates or gives an empty list to choose from. This is normally because the server is not sending the clients certificate authority in its \*(L"acceptable \s-1CA\s0 list\*(R" when it requests a certificate. By using \fIs_client\fR\|(1) the \s-1CA\s0 list can be viewed and checked. However some servers only request client authentication after a specific \s-1URL\s0 is requested. To obtain the list in this case it is necessary to use the \fB\-prexit\fR option of \fIs_client\fR\|(1) and send an \s-1HTTP\s0 request for an appropriate page. .PP If a certificate is specified on the command line using the \fB\-cert\fR option it will not be used unless the server specifically requests a client certificate. Therefor merely including a client certificate on the command line is no guarantee that the certificate works. .SH "BUGS" .IX Header "BUGS" Because this program does not have all the options of the \&\fIs_client\fR\|(1) program to turn protocols on and off, you may not be able to measure the performance of all protocols with all servers. .PP The \fB\-verify\fR option should really exit if the server verification fails. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIs_client\fR\|(1), \fIs_server\fR\|(1), \fIciphers\fR\|(1) man1/smime.1000064400000051120147210533270006577 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SMIME 1" .TH SMIME 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-smime, smime \- S/MIME utility .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBsmime\fR [\fB\-encrypt\fR] [\fB\-decrypt\fR] [\fB\-sign\fR] [\fB\-resign\fR] [\fB\-verify\fR] [\fB\-pk7out\fR] [\fB\-[cipher]\fR] [\fB\-in file\fR] [\fB\-no_alt_chains\fR] [\fB\-certfile file\fR] [\fB\-signer file\fR] [\fB\-recip file\fR] [\fB\-inform SMIME|PEM|DER\fR] [\fB\-passin arg\fR] [\fB\-inkey file\fR] [\fB\-out file\fR] [\fB\-outform SMIME|PEM|DER\fR] [\fB\-content file\fR] [\fB\-to addr\fR] [\fB\-from ad\fR] [\fB\-subject s\fR] [\fB\-text\fR] [\fB\-indef\fR] [\fB\-noindef\fR] [\fB\-stream\fR] [\fB\-rand file(s)\fR] [\fB\-md digest\fR] [cert.pem]... .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBsmime\fR command handles S/MIME mail. It can encrypt, decrypt, sign and verify S/MIME messages. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" There are six operation options that set the type of operation to be performed. The meaning of the other options varies according to the operation type. .IP "\fB\-encrypt\fR" 4 .IX Item "-encrypt" encrypt mail for the given recipient certificates. Input file is the message to be encrypted. The output file is the encrypted mail in \s-1MIME\s0 format. .Sp Note that no revocation check is done for the recipient cert, so if that key has been compromised, others may be able to decrypt the text. .IP "\fB\-decrypt\fR" 4 .IX Item "-decrypt" decrypt mail using the supplied certificate and private key. Expects an encrypted mail message in \s-1MIME\s0 format for the input file. The decrypted mail is written to the output file. .IP "\fB\-sign\fR" 4 .IX Item "-sign" sign mail using the supplied certificate and private key. Input file is the message to be signed. The signed message in \s-1MIME\s0 format is written to the output file. .IP "\fB\-verify\fR" 4 .IX Item "-verify" verify signed mail. Expects a signed mail message on input and outputs the signed data. Both clear text and opaque signing is supported. .IP "\fB\-pk7out\fR" 4 .IX Item "-pk7out" takes an input message and writes out a \s-1PEM\s0 encoded PKCS#7 structure. .IP "\fB\-resign\fR" 4 .IX Item "-resign" resign a message: take an existing message and one or more new signers. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" the input message to be encrypted or signed or the \s-1MIME\s0 message to be decrypted or verified. .IP "\fB\-inform SMIME|PEM|DER\fR" 4 .IX Item "-inform SMIME|PEM|DER" this specifies the input format for the PKCS#7 structure. The default is \fB\s-1SMIME\s0\fR which reads an S/MIME format message. \fB\s-1PEM\s0\fR and \fB\s-1DER\s0\fR format change this to expect \s-1PEM\s0 and \s-1DER\s0 format PKCS#7 structures instead. This currently only affects the input format of the PKCS#7 structure, if no PKCS#7 structure is being input (for example with \&\fB\-encrypt\fR or \fB\-sign\fR) this option has no effect. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" the message text that has been decrypted or verified or the output \s-1MIME\s0 format message that has been signed or verified. .IP "\fB\-outform SMIME|PEM|DER\fR" 4 .IX Item "-outform SMIME|PEM|DER" this specifies the output format for the PKCS#7 structure. The default is \fB\s-1SMIME\s0\fR which write an S/MIME format message. \fB\s-1PEM\s0\fR and \fB\s-1DER\s0\fR format change this to write \s-1PEM\s0 and \s-1DER\s0 format PKCS#7 structures instead. This currently only affects the output format of the PKCS#7 structure, if no PKCS#7 structure is being output (for example with \&\fB\-verify\fR or \fB\-decrypt\fR) this option has no effect. .IP "\fB\-stream \-indef \-noindef\fR" 4 .IX Item "-stream -indef -noindef" the \fB\-stream\fR and \fB\-indef\fR options are equivalent and enable streaming I/O for encoding operations. This permits single pass processing of data without the need to hold the entire contents in memory, potentially supporting very large files. Streaming is automatically set for S/MIME signing with detached data if the output format is \fB\s-1SMIME\s0\fR it is currently off by default for all other operations. .IP "\fB\-noindef\fR" 4 .IX Item "-noindef" disable streaming I/O where it would produce and indefinite length constructed encoding. This option currently has no effect. In future streaming will be enabled by default on all relevant operations and this option will disable it. .IP "\fB\-content filename\fR" 4 .IX Item "-content filename" This specifies a file containing the detached content, this is only useful with the \fB\-verify\fR command. This is only usable if the PKCS#7 structure is using the detached signature form where the content is not included. This option will override any content if the input format is S/MIME and it uses the multipart/signed \s-1MIME\s0 content type. .IP "\fB\-text\fR" 4 .IX Item "-text" this option adds plain text (text/plain) \s-1MIME\s0 headers to the supplied message if encrypting or signing. If decrypting or verifying it strips off text headers: if the decrypted or verified message is not of \s-1MIME \s0 type text/plain then an error occurs. .IP "\fB\-CAfile file\fR" 4 .IX Item "-CAfile file" a file containing trusted \s-1CA\s0 certificates, only used with \fB\-verify\fR. .IP "\fB\-CApath dir\fR" 4 .IX Item "-CApath dir" a directory containing trusted \s-1CA\s0 certificates, only used with \&\fB\-verify\fR. This directory must be a standard certificate directory: that is a hash of each subject name (using \fBx509 \-hash\fR) should be linked to each certificate. .IP "\fB\-md digest\fR" 4 .IX Item "-md digest" digest algorithm to use when signing or resigning. If not present then the default digest algorithm for the signing key will be used (usually \s-1SHA1\s0). .IP "\fB\-[cipher]\fR" 4 .IX Item "-[cipher]" the encryption algorithm to use. For example \s-1DES \s0(56 bits) \- \fB\-des\fR, triple \s-1DES \s0(168 bits) \- \fB\-des3\fR, \&\fIEVP_get_cipherbyname()\fR function) can also be used preceded by a dash, for example \fB\-aes_128_cbc\fR. See \fBenc\fR for list of ciphers supported by your version of OpenSSL. .Sp If not specified triple \s-1DES\s0 is used. Only used with \fB\-encrypt\fR. .IP "\fB\-nointern\fR" 4 .IX Item "-nointern" when verifying a message normally certificates (if any) included in the message are searched for the signing certificate. With this option only the certificates specified in the \fB\-certfile\fR option are used. The supplied certificates can still be used as untrusted CAs however. .IP "\fB\-noverify\fR" 4 .IX Item "-noverify" do not verify the signers certificate of a signed message. .IP "\fB\-nochain\fR" 4 .IX Item "-nochain" do not do chain verification of signers certificates: that is don't use the certificates in the signed message as untrusted CAs. .IP "\fB\-nosigs\fR" 4 .IX Item "-nosigs" don't try to verify the signatures on the message. .IP "\fB\-nocerts\fR" 4 .IX Item "-nocerts" when signing a message the signer's certificate is normally included with this option it is excluded. This will reduce the size of the signed message but the verifier must have a copy of the signers certificate available locally (passed using the \fB\-certfile\fR option for example). .IP "\fB\-noattr\fR" 4 .IX Item "-noattr" normally when a message is signed a set of attributes are included which include the signing time and supported symmetric algorithms. With this option they are not included. .IP "\fB\-binary\fR" 4 .IX Item "-binary" normally the input message is converted to \*(L"canonical\*(R" format which is effectively using \s-1CR\s0 and \s-1LF\s0 as end of line: as required by the S/MIME specification. When this option is present no translation occurs. This is useful when handling binary data which may not be in \s-1MIME\s0 format. .IP "\fB\-nodetach\fR" 4 .IX Item "-nodetach" when signing a message use opaque signing: this form is more resistant to translation by mail relays but it cannot be read by mail agents that do not support S/MIME. Without this option cleartext signing with the \s-1MIME\s0 type multipart/signed is used. .IP "\fB\-certfile file\fR" 4 .IX Item "-certfile file" allows additional certificates to be specified. When signing these will be included with the message. When verifying these will be searched for the signers certificates. The certificates should be in \s-1PEM\s0 format. .IP "\fB\-signer file\fR" 4 .IX Item "-signer file" a signing certificate when signing or resigning a message, this option can be used multiple times if more than one signer is required. If a message is being verified then the signers certificates will be written to this file if the verification was successful. .IP "\fB\-recip file\fR" 4 .IX Item "-recip file" the recipients certificate when decrypting a message. This certificate must match one of the recipients of the message or an error occurs. .IP "\fB\-inkey file\fR" 4 .IX Item "-inkey file" the private key to use when signing or decrypting. This must match the corresponding certificate. If this option is not specified then the private key must be included in the certificate file specified with the \fB\-recip\fR or \fB\-signer\fR file. When signing this option can be used multiple times to specify successive keys. .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the private key password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-rand file(s)\fR" 4 .IX Item "-rand file(s)" a file or files containing random data used to seed the random number generator, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). Multiple files can be specified separated by a OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fBcert.pem...\fR" 4 .IX Item "cert.pem..." one or more certificates of message recipients: used when encrypting a message. .IP "\fB\-to, \-from, \-subject\fR" 4 .IX Item "-to, -from, -subject" the relevant mail headers. These are included outside the signed portion of a message so they may be included manually. If signing then many S/MIME mail clients check the signers certificate's email address matches that specified in the From: address. .IP "\fB\-purpose, \-ignore_critical, \-issuer_checks, \-crl_check, \-crl_check_all, \-policy_check, \-extended_crl, \-x509_strict, \-policy \-check_ss_sig \-no_alt_chains\fR" 4 .IX Item "-purpose, -ignore_critical, -issuer_checks, -crl_check, -crl_check_all, -policy_check, -extended_crl, -x509_strict, -policy -check_ss_sig -no_alt_chains" Set various options of certificate chain verification. See \&\fBverify\fR manual page for details. .SH "NOTES" .IX Header "NOTES" The \s-1MIME\s0 message must be sent without any blank lines between the headers and the output. Some mail programs will automatically add a blank line. Piping the mail directly to sendmail is one way to achieve the correct format. .PP The supplied message to be signed or encrypted must include the necessary \s-1MIME\s0 headers or many S/MIME clients wont display it properly (if at all). You can use the \fB\-text\fR option to automatically add plain text headers. .PP A \*(L"signed and encrypted\*(R" message is one where a signed message is then encrypted. This can be produced by encrypting an already signed message: see the examples section. .PP This version of the program only allows one signer per message but it will verify multiple signers on received messages. Some S/MIME clients choke if a message contains multiple signers. It is possible to sign messages \*(L"in parallel\*(R" by signing an already signed message. .PP The options \fB\-encrypt\fR and \fB\-decrypt\fR reflect common usage in S/MIME clients. Strictly speaking these process PKCS#7 enveloped data: PKCS#7 encrypted data is used for other purposes. .PP The \fB\-resign\fR option uses an existing message digest when adding a new signer. This means that attributes must be present in at least one existing signer using the same message digest or this operation will fail. .PP The \fB\-stream\fR and \fB\-indef\fR options enable experimental streaming I/O support. As a result the encoding is \s-1BER\s0 using indefinite length constructed encoding and no longer \s-1DER.\s0 Streaming is supported for the \fB\-encrypt\fR operation and the \&\fB\-sign\fR operation if the content is not detached. .PP Streaming is always used for the \fB\-sign\fR operation with detached data but since the content is no longer part of the PKCS#7 structure the encoding remains \s-1DER.\s0 .SH "EXIT CODES" .IX Header "EXIT CODES" .IP "0" 4 the operation was completely successfully. .IP "1" 4 .IX Item "1" an error occurred parsing the command options. .IP "2" 4 .IX Item "2" one of the input files could not be read. .IP "3" 4 .IX Item "3" an error occurred creating the PKCS#7 file or when reading the \s-1MIME\s0 message. .IP "4" 4 .IX Item "4" an error occurred decrypting or verifying the message. .IP "5" 4 .IX Item "5" the message was verified correctly but an error occurred writing out the signers certificates. .SH "EXAMPLES" .IX Header "EXAMPLES" Create a cleartext signed message: .PP .Vb 2 \& openssl smime \-sign \-in message.txt \-text \-out mail.msg \e \& \-signer mycert.pem .Ve .PP Create an opaque signed message: .PP .Vb 2 \& openssl smime \-sign \-in message.txt \-text \-out mail.msg \-nodetach \e \& \-signer mycert.pem .Ve .PP Create a signed message, include some additional certificates and read the private key from another file: .PP .Vb 2 \& openssl smime \-sign \-in in.txt \-text \-out mail.msg \e \& \-signer mycert.pem \-inkey mykey.pem \-certfile mycerts.pem .Ve .PP Create a signed message with two signers: .PP .Vb 2 \& openssl smime \-sign \-in message.txt \-text \-out mail.msg \e \& \-signer mycert.pem \-signer othercert.pem .Ve .PP Send a signed message under Unix directly to sendmail, including headers: .PP .Vb 3 \& openssl smime \-sign \-in in.txt \-text \-signer mycert.pem \e \& \-from steve@openssl.org \-to someone@somewhere \e \& \-subject "Signed message" | sendmail someone@somewhere .Ve .PP Verify a message and extract the signer's certificate if successful: .PP .Vb 1 \& openssl smime \-verify \-in mail.msg \-signer user.pem \-out signedtext.txt .Ve .PP Send encrypted mail using triple \s-1DES:\s0 .PP .Vb 3 \& openssl smime \-encrypt \-in in.txt \-from steve@openssl.org \e \& \-to someone@somewhere \-subject "Encrypted message" \e \& \-des3 user.pem \-out mail.msg .Ve .PP Sign and encrypt mail: .PP .Vb 4 \& openssl smime \-sign \-in ml.txt \-signer my.pem \-text \e \& | openssl smime \-encrypt \-out mail.msg \e \& \-from steve@openssl.org \-to someone@somewhere \e \& \-subject "Signed and Encrypted message" \-des3 user.pem .Ve .PP Note: the encryption command does not include the \fB\-text\fR option because the message being encrypted already has \s-1MIME\s0 headers. .PP Decrypt mail: .PP .Vb 1 \& openssl smime \-decrypt \-in mail.msg \-recip mycert.pem \-inkey key.pem .Ve .PP The output from Netscape form signing is a PKCS#7 structure with the detached signature format. You can use this program to verify the signature by line wrapping the base64 encoded structure and surrounding it with: .PP .Vb 2 \& \-\-\-\-\-BEGIN PKCS7\-\-\-\-\- \& \-\-\-\-\-END PKCS7\-\-\-\-\- .Ve .PP and using the command: .PP .Vb 1 \& openssl smime \-verify \-inform PEM \-in signature.pem \-content content.txt .Ve .PP Alternatively you can base64 decode the signature and use: .PP .Vb 1 \& openssl smime \-verify \-inform DER \-in signature.der \-content content.txt .Ve .PP Create an encrypted message using 128 bit Camellia: .PP .Vb 1 \& openssl smime \-encrypt \-in plain.txt \-camellia128 \-out mail.msg cert.pem .Ve .PP Add a signer to an existing message: .PP .Vb 1 \& openssl smime \-resign \-in mail.msg \-signer newsign.pem \-out mail2.msg .Ve .SH "BUGS" .IX Header "BUGS" The \s-1MIME\s0 parser isn't very clever: it seems to handle most messages that I've thrown at it but it may choke on others. .PP The code currently will only write out the signer's certificate to a file: if the signer has a separate encryption certificate this must be manually extracted. There should be some heuristic that determines the correct encryption certificate. .PP Ideally a database should be maintained of a certificates for each email address. .PP The code doesn't currently take note of the permitted symmetric encryption algorithms as supplied in the SMIMECapabilities signed attribute. This means the user has to manually include the correct encryption algorithm. It should store the list of permitted ciphers in a database and only use those. .PP No revocation checking is done on the signer's certificate. .PP The current code can only handle S/MIME v2 messages, the more complex S/MIME v3 structures may cause parsing errors. .SH "HISTORY" .IX Header "HISTORY" The use of multiple \fB\-signer\fR options and the \fB\-resign\fR command were first added in OpenSSL 1.0.0 .PP The \-no_alt_chains options was first added to OpenSSL 1.0.2b. man1/ecparam.1000064400000023075147210533270007105 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ECPARAM 1" .TH ECPARAM 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-ecparam, ecparam \- EC parameter manipulation and generation .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl ecparam\fR [\fB\-inform DER|PEM\fR] [\fB\-outform DER|PEM\fR] [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-noout\fR] [\fB\-text\fR] [\fB\-C\fR] [\fB\-check\fR] [\fB\-name arg\fR] [\fB\-list_curves\fR] [\fB\-conv_form arg\fR] [\fB\-param_enc arg\fR] [\fB\-no_seed\fR] [\fB\-rand file(s)\fR] [\fB\-genkey\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" This command is used to manipulate or generate \s-1EC\s0 parameter files. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-inform DER|PEM\fR" 4 .IX Item "-inform DER|PEM" This specifies the input format. The \fB\s-1DER\s0\fR option uses an \s-1ASN.1 DER\s0 encoded form compatible with \s-1RFC 3279\s0 EcpkParameters. The \s-1PEM\s0 form is the default format: it consists of the \fB\s-1DER\s0\fR format base64 encoded with additional header and footer lines. .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read parameters from or standard input if this option is not specified. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" This specifies the output filename parameters to. Standard output is used if this option is not present. The output filename should \fBnot\fR be the same as the input filename. .IP "\fB\-noout\fR" 4 .IX Item "-noout" This option inhibits the output of the encoded version of the parameters. .IP "\fB\-text\fR" 4 .IX Item "-text" This option prints out the \s-1EC\s0 parameters in human readable form. .IP "\fB\-C\fR" 4 .IX Item "-C" This option converts the \s-1EC\s0 parameters into C code. The parameters can then be loaded by calling the \fB\f(BIget_ec_group_XXX()\fB\fR function. .IP "\fB\-check\fR" 4 .IX Item "-check" Validate the elliptic curve parameters. .IP "\fB\-name arg\fR" 4 .IX Item "-name arg" Use the \s-1EC\s0 parameters with the specified 'short' name. Use \fB\-list_curves\fR to get a list of all currently implemented \s-1EC\s0 parameters. .IP "\fB\-list_curves\fR" 4 .IX Item "-list_curves" If this options is specified \fBecparam\fR will print out a list of all currently implemented \s-1EC\s0 parameters names and exit. .IP "\fB\-conv_form\fR" 4 .IX Item "-conv_form" This specifies how the points on the elliptic curve are converted into octet strings. Possible values are: \fBcompressed\fR, \fBuncompressed\fR (the default value) and \fBhybrid\fR. For more information regarding the point conversion forms please read the X9.62 standard. \&\fBNote\fR Due to patent issues the \fBcompressed\fR option is disabled by default for binary curves and can be enabled by defining the preprocessor macro \fB\s-1OPENSSL_EC_BIN_PT_COMP\s0\fR at compile time. .IP "\fB\-param_enc arg\fR" 4 .IX Item "-param_enc arg" This specifies how the elliptic curve parameters are encoded. Possible value are: \fBnamed_curve\fR, i.e. the ec parameters are specified by a \s-1OID,\s0 or \fBexplicit\fR where the ec parameters are explicitly given (see \s-1RFC 3279\s0 for the definition of the \&\s-1EC\s0 parameters structures). The default value is \fBnamed_curve\fR. \&\fBNote\fR the \fBimplicitlyCA\fR alternative ,as specified in \s-1RFC 3279,\s0 is currently not implemented in OpenSSL. .IP "\fB\-no_seed\fR" 4 .IX Item "-no_seed" This option inhibits that the 'seed' for the parameter generation is included in the ECParameters structure (see \s-1RFC 3279\s0). .IP "\fB\-genkey\fR" 4 .IX Item "-genkey" This option will generate a \s-1EC\s0 private key using the specified parameters. .IP "\fB\-rand file(s)\fR" 4 .IX Item "-rand file(s)" a file or files containing random data used to seed the random number generator, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). Multiple files can be specified separated by a OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBecparam\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .SH "NOTES" .IX Header "NOTES" \&\s-1PEM\s0 format \s-1EC\s0 parameters use the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN EC PARAMETERS\-\-\-\-\- \& \-\-\-\-\-END EC PARAMETERS\-\-\-\-\- .Ve .PP OpenSSL is currently not able to generate new groups and therefore \&\fBecparam\fR can only create \s-1EC\s0 parameters from known (named) curves. .SH "EXAMPLES" .IX Header "EXAMPLES" To create \s-1EC\s0 parameters with the group 'prime192v1': .PP .Vb 1 \& openssl ecparam \-out ec_param.pem \-name prime192v1 .Ve .PP To create \s-1EC\s0 parameters with explicit parameters: .PP .Vb 1 \& openssl ecparam \-out ec_param.pem \-name prime192v1 \-param_enc explicit .Ve .PP To validate given \s-1EC\s0 parameters: .PP .Vb 1 \& openssl ecparam \-in ec_param.pem \-check .Ve .PP To create \s-1EC\s0 parameters and a private key: .PP .Vb 1 \& openssl ecparam \-out ec_key.pem \-name prime192v1 \-genkey .Ve .PP To change the point encoding to 'compressed': .PP .Vb 1 \& openssl ecparam \-in ec_in.pem \-out ec_out.pem \-conv_form compressed .Ve .PP To print out the \s-1EC\s0 parameters to standard output: .PP .Vb 1 \& openssl ecparam \-in ec_param.pem \-noout \-text .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIec\fR\|(1), \fIdsaparam\fR\|(1) .SH "HISTORY" .IX Header "HISTORY" The ecparam command was first introduced in OpenSSL 0.9.8. .SH "AUTHOR" .IX Header "AUTHOR" Nils Larsch for the OpenSSL project (http://www.openssl.org) man1/ocsp.1000064400000047255147210533270006447 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "OCSP 1" .TH OCSP 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-ocsp, ocsp \- Online Certificate Status Protocol utility .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBocsp\fR [\fB\-out file\fR] [\fB\-issuer file\fR] [\fB\-cert file\fR] [\fB\-serial n\fR] [\fB\-signer file\fR] [\fB\-signkey file\fR] [\fB\-sign_other file\fR] [\fB\-no_certs\fR] [\fB\-req_text\fR] [\fB\-resp_text\fR] [\fB\-text\fR] [\fB\-reqout file\fR] [\fB\-respout file\fR] [\fB\-reqin file\fR] [\fB\-respin file\fR] [\fB\-nonce\fR] [\fB\-no_nonce\fR] [\fB\-url \s-1URL\s0\fR] [\fB\-host host:n\fR] [\fB\-header name value\fR] [\fB\-path\fR] [\fB\-CApath dir\fR] [\fB\-CAfile file\fR] [\fB\-no_alt_chains\fR] [\fB\-VAfile file\fR] [\fB\-validity_period n\fR] [\fB\-status_age n\fR] [\fB\-noverify\fR] [\fB\-verify_other file\fR] [\fB\-trust_other\fR] [\fB\-no_intern\fR] [\fB\-no_signature_verify\fR] [\fB\-no_cert_verify\fR] [\fB\-no_chain\fR] [\fB\-no_cert_checks\fR] [\fB\-no_explicit\fR] [\fB\-port num\fR] [\fB\-index file\fR] [\fB\-CA file\fR] [\fB\-rsigner file\fR] [\fB\-rkey file\fR] [\fB\-rother file\fR] [\fB\-resp_no_certs\fR] [\fB\-nmin n\fR] [\fB\-ndays n\fR] [\fB\-resp_key_id\fR] [\fB\-nrequest n\fR] [\fB\-md5|\-sha1|...\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The Online Certificate Status Protocol (\s-1OCSP\s0) enables applications to determine the (revocation) state of an identified certificate (\s-1RFC 2560\s0). .PP The \fBocsp\fR command performs many common \s-1OCSP\s0 tasks. It can be used to print out requests and responses, create requests and send queries to an \s-1OCSP\s0 responder and behave like a mini \s-1OCSP\s0 server itself. .SH "OCSP CLIENT OPTIONS" .IX Header "OCSP CLIENT OPTIONS" .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" specify output filename, default is standard output. .IP "\fB\-issuer filename\fR" 4 .IX Item "-issuer filename" This specifies the current issuer certificate. This option can be used multiple times. The certificate specified in \fBfilename\fR must be in \&\s-1PEM\s0 format. This option \fB\s-1MUST\s0\fR come before any \fB\-cert\fR options. .IP "\fB\-cert filename\fR" 4 .IX Item "-cert filename" Add the certificate \fBfilename\fR to the request. The issuer certificate is taken from the previous \fBissuer\fR option, or an error occurs if no issuer certificate is specified. .IP "\fB\-serial num\fR" 4 .IX Item "-serial num" Same as the \fBcert\fR option except the certificate with serial number \&\fBnum\fR is added to the request. The serial number is interpreted as a decimal integer unless preceded by \fB0x\fR. Negative integers can also be specified by preceding the value by a \fB\-\fR sign. .IP "\fB\-signer filename\fR, \fB\-signkey filename\fR" 4 .IX Item "-signer filename, -signkey filename" Sign the \s-1OCSP\s0 request using the certificate specified in the \fBsigner\fR option and the private key specified by the \fBsignkey\fR option. If the \fBsignkey\fR option is not present then the private key is read from the same file as the certificate. If neither option is specified then the \s-1OCSP\s0 request is not signed. .IP "\fB\-sign_other filename\fR" 4 .IX Item "-sign_other filename" Additional certificates to include in the signed request. .IP "\fB\-nonce\fR, \fB\-no_nonce\fR" 4 .IX Item "-nonce, -no_nonce" Add an \s-1OCSP\s0 nonce extension to a request or disable \s-1OCSP\s0 nonce addition. Normally if an \s-1OCSP\s0 request is input using the \fBrespin\fR option no nonce is added: using the \fBnonce\fR option will force addition of a nonce. If an \s-1OCSP\s0 request is being created (using \fBcert\fR and \fBserial\fR options) a nonce is automatically added specifying \fBno_nonce\fR overrides this. .IP "\fB\-req_text\fR, \fB\-resp_text\fR, \fB\-text\fR" 4 .IX Item "-req_text, -resp_text, -text" print out the text form of the \s-1OCSP\s0 request, response or both respectively. .IP "\fB\-reqout file\fR, \fB\-respout file\fR" 4 .IX Item "-reqout file, -respout file" write out the \s-1DER\s0 encoded certificate request or response to \fBfile\fR. .IP "\fB\-reqin file\fR, \fB\-respin file\fR" 4 .IX Item "-reqin file, -respin file" read \s-1OCSP\s0 request or response file from \fBfile\fR. These option are ignored if \s-1OCSP\s0 request or response creation is implied by other options (for example with \fBserial\fR, \fBcert\fR and \fBhost\fR options). .IP "\fB\-url responder_url\fR" 4 .IX Item "-url responder_url" specify the responder \s-1URL.\s0 Both \s-1HTTP\s0 and \s-1HTTPS \s0(\s-1SSL/TLS\s0) URLs can be specified. .IP "\fB\-host hostname:port\fR, \fB\-path pathname\fR" 4 .IX Item "-host hostname:port, -path pathname" if the \fBhost\fR option is present then the \s-1OCSP\s0 request is sent to the host \&\fBhostname\fR on port \fBport\fR. \fBpath\fR specifies the \s-1HTTP\s0 path name to use or \*(L"/\*(R" by default. .IP "\fB\-header name value\fR" 4 .IX Item "-header name value" If sending a request to an \s-1OCSP\s0 server, then the specified header name and value are added to the \s-1HTTP\s0 request. Note that the \fBname\fR and \fBvalue\fR must be specified as two separate parameters, not as a single quoted string, and that the header name does not have the trailing colon. Some \s-1OCSP\s0 responders require a Host header; use this flag to provide it. .IP "\fB\-timeout seconds\fR" 4 .IX Item "-timeout seconds" connection timeout to the \s-1OCSP\s0 responder in seconds .IP "\fB\-CAfile file\fR, \fB\-CApath pathname\fR" 4 .IX Item "-CAfile file, -CApath pathname" file or pathname containing trusted \s-1CA\s0 certificates. These are used to verify the signature on the \s-1OCSP\s0 response. .IP "\fB\-no_alt_chains\fR" 4 .IX Item "-no_alt_chains" See \fBverify\fR manual page for details. .IP "\fB\-verify_other file\fR" 4 .IX Item "-verify_other file" file containing additional certificates to search when attempting to locate the \s-1OCSP\s0 response signing certificate. Some responders omit the actual signer's certificate from the response: this option can be used to supply the necessary certificate in such cases. .IP "\fB\-trust_other\fR" 4 .IX Item "-trust_other" the certificates specified by the \fB\-verify_other\fR option should be explicitly trusted and no additional checks will be performed on them. This is useful when the complete responder certificate chain is not available or trusting a root \s-1CA\s0 is not appropriate. .IP "\fB\-VAfile file\fR" 4 .IX Item "-VAfile file" file containing explicitly trusted responder certificates. Equivalent to the \&\fB\-verify_other\fR and \fB\-trust_other\fR options. .IP "\fB\-noverify\fR" 4 .IX Item "-noverify" don't attempt to verify the \s-1OCSP\s0 response signature or the nonce values. This option will normally only be used for debugging since it disables all verification of the responders certificate. .IP "\fB\-no_intern\fR" 4 .IX Item "-no_intern" ignore certificates contained in the \s-1OCSP\s0 response when searching for the signers certificate. With this option the signers certificate must be specified with either the \fB\-verify_other\fR or \fB\-VAfile\fR options. .IP "\fB\-no_signature_verify\fR" 4 .IX Item "-no_signature_verify" don't check the signature on the \s-1OCSP\s0 response. Since this option tolerates invalid signatures on \s-1OCSP\s0 responses it will normally only be used for testing purposes. .IP "\fB\-no_cert_verify\fR" 4 .IX Item "-no_cert_verify" don't verify the \s-1OCSP\s0 response signers certificate at all. Since this option allows the \s-1OCSP\s0 response to be signed by any certificate it should only be used for testing purposes. .IP "\fB\-no_chain\fR" 4 .IX Item "-no_chain" do not use certificates in the response as additional untrusted \s-1CA\s0 certificates. .IP "\fB\-no_explicit\fR" 4 .IX Item "-no_explicit" do not explicitly trust the root \s-1CA\s0 if it is set to be trusted for \s-1OCSP\s0 signing. .IP "\fB\-no_cert_checks\fR" 4 .IX Item "-no_cert_checks" don't perform any additional checks on the \s-1OCSP\s0 response signers certificate. That is do not make any checks to see if the signers certificate is authorised to provide the necessary status information: as a result this option should only be used for testing purposes. .IP "\fB\-validity_period nsec\fR, \fB\-status_age age\fR" 4 .IX Item "-validity_period nsec, -status_age age" these options specify the range of times, in seconds, which will be tolerated in an \s-1OCSP\s0 response. Each certificate status response includes a \fBnotBefore\fR time and an optional \fBnotAfter\fR time. The current time should fall between these two values, but the interval between the two times may be only a few seconds. In practice the \s-1OCSP\s0 responder and clients clocks may not be precisely synchronised and so such a check may fail. To avoid this the \fB\-validity_period\fR option can be used to specify an acceptable error range in seconds, the default value is 5 minutes. .Sp If the \fBnotAfter\fR time is omitted from a response then this means that new status information is immediately available. In this case the age of the \fBnotBefore\fR field is checked to see it is not older than \fBage\fR seconds old. By default this additional check is not performed. .IP "\fB\-md5|\-sha1|\-sha256|\-ripemod160|...\fR" 4 .IX Item "-md5|-sha1|-sha256|-ripemod160|..." this option sets digest algorithm to use for certificate identification in the \s-1OCSP\s0 request. By default \s-1SHA\-1\s0 is used. .SH "OCSP SERVER OPTIONS" .IX Header "OCSP SERVER OPTIONS" .IP "\fB\-index indexfile\fR" 4 .IX Item "-index indexfile" \&\fBindexfile\fR is a text index file in \fBca\fR format containing certificate revocation information. .Sp If the \fBindex\fR option is specified the \fBocsp\fR utility is in responder mode, otherwise it is in client mode. The request(s) the responder processes can be either specified on the command line (using \fBissuer\fR and \fBserial\fR options), supplied in a file (using the \&\fBrespin\fR option) or via external \s-1OCSP\s0 clients (if \fBport\fR or \fBurl\fR is specified). .Sp If the \fBindex\fR option is present then the \fB\s-1CA\s0\fR and \fBrsigner\fR options must also be present. .IP "\fB\-CA file\fR" 4 .IX Item "-CA file" \&\s-1CA\s0 certificate corresponding to the revocation information in \fBindexfile\fR. .IP "\fB\-rsigner file\fR" 4 .IX Item "-rsigner file" The certificate to sign \s-1OCSP\s0 responses with. .IP "\fB\-rother file\fR" 4 .IX Item "-rother file" Additional certificates to include in the \s-1OCSP\s0 response. .IP "\fB\-resp_no_certs\fR" 4 .IX Item "-resp_no_certs" Don't include any certificates in the \s-1OCSP\s0 response. .IP "\fB\-resp_key_id\fR" 4 .IX Item "-resp_key_id" Identify the signer certificate using the key \s-1ID,\s0 default is to use the subject name. .IP "\fB\-rkey file\fR" 4 .IX Item "-rkey file" The private key to sign \s-1OCSP\s0 responses with: if not present the file specified in the \&\fBrsigner\fR option is used. .IP "\fB\-port portnum\fR" 4 .IX Item "-port portnum" Port to listen for \s-1OCSP\s0 requests on. The port may also be specified using the \fBurl\fR option. .IP "\fB\-nrequest number\fR" 4 .IX Item "-nrequest number" The \s-1OCSP\s0 server will exit after receiving \fBnumber\fR requests, default unlimited. .IP "\fB\-nmin minutes\fR, \fB\-ndays days\fR" 4 .IX Item "-nmin minutes, -ndays days" Number of minutes or days when fresh revocation information is available: used in the \&\fBnextUpdate\fR field. If neither option is present then the \fBnextUpdate\fR field is omitted meaning fresh revocation information is immediately available. .SH "OCSP Response verification." .IX Header "OCSP Response verification." \&\s-1OCSP\s0 Response follows the rules specified in \s-1RFC2560.\s0 .PP Initially the \s-1OCSP\s0 responder certificate is located and the signature on the \s-1OCSP\s0 request checked using the responder certificate's public key. .PP Then a normal certificate verify is performed on the \s-1OCSP\s0 responder certificate building up a certificate chain in the process. The locations of the trusted certificates used to build the chain can be specified by the \fBCAfile\fR and \fBCApath\fR options or they will be looked for in the standard OpenSSL certificates directory. .PP If the initial verify fails then the \s-1OCSP\s0 verify process halts with an error. .PP Otherwise the issuing \s-1CA\s0 certificate in the request is compared to the \s-1OCSP\s0 responder certificate: if there is a match then the \s-1OCSP\s0 verify succeeds. .PP Otherwise the \s-1OCSP\s0 responder certificate's \s-1CA\s0 is checked against the issuing \&\s-1CA\s0 certificate in the request. If there is a match and the OCSPSigning extended key usage is present in the \s-1OCSP\s0 responder certificate then the \&\s-1OCSP\s0 verify succeeds. .PP Otherwise, if \fB\-no_explicit\fR is \fBnot\fR set the root \s-1CA\s0 of the \s-1OCSP\s0 responders \&\s-1CA\s0 is checked to see if it is trusted for \s-1OCSP\s0 signing. If it is the \s-1OCSP\s0 verify succeeds. .PP If none of these checks is successful then the \s-1OCSP\s0 verify fails. .PP What this effectively means if that if the \s-1OCSP\s0 responder certificate is authorised directly by the \s-1CA\s0 it is issuing revocation information about (and it is correctly configured) then verification will succeed. .PP If the \s-1OCSP\s0 responder is a \*(L"global responder\*(R" which can give details about multiple CAs and has its own separate certificate chain then its root \&\s-1CA\s0 can be trusted for \s-1OCSP\s0 signing. For example: .PP .Vb 1 \& openssl x509 \-in ocspCA.pem \-addtrust OCSPSigning \-out trustedCA.pem .Ve .PP Alternatively the responder certificate itself can be explicitly trusted with the \fB\-VAfile\fR option. .SH "NOTES" .IX Header "NOTES" As noted, most of the verify options are for testing or debugging purposes. Normally only the \fB\-CApath\fR, \fB\-CAfile\fR and (if the responder is a 'global \&\s-1VA\s0') \fB\-VAfile\fR options need to be used. .PP The \s-1OCSP\s0 server is only useful for test and demonstration purposes: it is not really usable as a full \s-1OCSP\s0 responder. It contains only a very simple \s-1HTTP\s0 request handling and can only handle the \s-1POST\s0 form of \s-1OCSP\s0 queries. It also handles requests serially meaning it cannot respond to new requests until it has processed the current one. The text index file format of revocation is also inefficient for large quantities of revocation data. .PP It is possible to run the \fBocsp\fR application in responder mode via a \s-1CGI\s0 script using the \fBrespin\fR and \fBrespout\fR options. .SH "EXAMPLES" .IX Header "EXAMPLES" Create an \s-1OCSP\s0 request and write it to a file: .PP .Vb 1 \& openssl ocsp \-issuer issuer.pem \-cert c1.pem \-cert c2.pem \-reqout req.der .Ve .PP Send a query to an \s-1OCSP\s0 responder with \s-1URL\s0 http://ocsp.myhost.com/ save the response to a file and print it out in text form .PP .Vb 2 \& openssl ocsp \-issuer issuer.pem \-cert c1.pem \-cert c2.pem \e \& \-url http://ocsp.myhost.com/ \-resp_text \-respout resp.der .Ve .PP Read in an \s-1OCSP\s0 response and print out text form: .PP .Vb 1 \& openssl ocsp \-respin resp.der \-text .Ve .PP \&\s-1OCSP\s0 server on port 8888 using a standard \fBca\fR configuration, and a separate responder certificate. All requests and responses are printed to a file. .PP .Vb 2 \& openssl ocsp \-index demoCA/index.txt \-port 8888 \-rsigner rcert.pem \-CA demoCA/cacert.pem \& \-text \-out log.txt .Ve .PP As above but exit after processing one request: .PP .Vb 2 \& openssl ocsp \-index demoCA/index.txt \-port 8888 \-rsigner rcert.pem \-CA demoCA/cacert.pem \& \-nrequest 1 .Ve .PP Query status information using internally generated request: .PP .Vb 2 \& openssl ocsp \-index demoCA/index.txt \-rsigner rcert.pem \-CA demoCA/cacert.pem \& \-issuer demoCA/cacert.pem \-serial 1 .Ve .PP Query status information using request read from a file, write response to a second file. .PP .Vb 2 \& openssl ocsp \-index demoCA/index.txt \-rsigner rcert.pem \-CA demoCA/cacert.pem \& \-reqin req.der \-respout resp.der .Ve .SH "HISTORY" .IX Header "HISTORY" The \-no_alt_chains options was first added to OpenSSL 1.0.2b. man1/nseq.1000064400000013513147210533270006437 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "NSEQ 1" .TH NSEQ 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-nseq, nseq \- create or examine a netscape certificate sequence .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBnseq\fR [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-toseq\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBnseq\fR command takes a file containing a Netscape certificate sequence and prints out the certificates contained in it or takes a file of certificates and converts it into a Netscape certificate sequence. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read or standard input if this option is not specified. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" specifies the output filename or standard output by default. .IP "\fB\-toseq\fR" 4 .IX Item "-toseq" normally a Netscape certificate sequence will be input and the output is the certificates contained in it. With the \fB\-toseq\fR option the situation is reversed: a Netscape certificate sequence is created from a file of certificates. .SH "EXAMPLES" .IX Header "EXAMPLES" Output the certificates in a Netscape certificate sequence .PP .Vb 1 \& openssl nseq \-in nseq.pem \-out certs.pem .Ve .PP Create a Netscape certificate sequence .PP .Vb 1 \& openssl nseq \-in certs.pem \-toseq \-out nseq.pem .Ve .SH "NOTES" .IX Header "NOTES" The \fB\s-1PEM\s0\fR encoded form uses the same headers and footers as a certificate: .PP .Vb 2 \& \-\-\-\-\-BEGIN CERTIFICATE\-\-\-\-\- \& \-\-\-\-\-END CERTIFICATE\-\-\-\-\- .Ve .PP A Netscape certificate sequence is a Netscape specific form that can be sent to browsers as an alternative to the standard PKCS#7 format when several certificates are sent to the browser: for example during certificate enrollment. It is used by Netscape certificate server for example. .SH "BUGS" .IX Header "BUGS" This program needs a few more options: like allowing \s-1DER\s0 or \s-1PEM\s0 input and output files and allowing multiple certificate files to be used. man1/pkeyutl.1000064400000027012147210533270007165 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PKEYUTL 1" .TH PKEYUTL 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-pkeyutl, pkeyutl \- public key algorithm utility .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBpkeyutl\fR [\fB\-in file\fR] [\fB\-out file\fR] [\fB\-sigfile file\fR] [\fB\-inkey file\fR] [\fB\-keyform PEM|DER\fR] [\fB\-passin arg\fR] [\fB\-peerkey file\fR] [\fB\-peerform PEM|DER\fR] [\fB\-pubin\fR] [\fB\-certin\fR] [\fB\-rev\fR] [\fB\-sign\fR] [\fB\-verify\fR] [\fB\-verifyrecover\fR] [\fB\-encrypt\fR] [\fB\-decrypt\fR] [\fB\-derive\fR] [\fB\-pkeyopt opt:value\fR] [\fB\-hexdump\fR] [\fB\-asn1parse\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBpkeyutl\fR command can be used to perform public key operations using any supported algorithm. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read data from or standard input if this option is not specified. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" specifies the output filename to write to or standard output by default. .IP "\fB\-inkey file\fR" 4 .IX Item "-inkey file" the input key file, by default it should be a private key. .IP "\fB\-keyform PEM|DER\fR" 4 .IX Item "-keyform PEM|DER" the key format \s-1PEM, DER\s0 or \s-1ENGINE.\s0 .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the input key password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-peerkey file\fR" 4 .IX Item "-peerkey file" the peer key file, used by key derivation (agreement) operations. .IP "\fB\-peerform PEM|DER\fR" 4 .IX Item "-peerform PEM|DER" the peer key format \s-1PEM, DER\s0 or \s-1ENGINE.\s0 .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBpkeyutl\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .IP "\fB\-pubin\fR" 4 .IX Item "-pubin" the input file is a public key. .IP "\fB\-certin\fR" 4 .IX Item "-certin" the input is a certificate containing a public key. .IP "\fB\-rev\fR" 4 .IX Item "-rev" reverse the order of the input buffer. This is useful for some libraries (such as CryptoAPI) which represent the buffer in little endian format. .IP "\fB\-sign\fR" 4 .IX Item "-sign" sign the input data and output the signed result. This requires a private key. .IP "\fB\-verify\fR" 4 .IX Item "-verify" verify the input data against the signature file and indicate if the verification succeeded or failed. .IP "\fB\-verifyrecover\fR" 4 .IX Item "-verifyrecover" verify the input data and output the recovered data. .IP "\fB\-encrypt\fR" 4 .IX Item "-encrypt" encrypt the input data using a public key. .IP "\fB\-decrypt\fR" 4 .IX Item "-decrypt" decrypt the input data using a private key. .IP "\fB\-derive\fR" 4 .IX Item "-derive" derive a shared secret using the peer key. .IP "\fB\-hexdump\fR" 4 .IX Item "-hexdump" hex dump the output data. .IP "\fB\-asn1parse\fR" 4 .IX Item "-asn1parse" asn1parse the output data, this is useful when combined with the \&\fB\-verifyrecover\fR option when an \s-1ASN1\s0 structure is signed. .SH "NOTES" .IX Header "NOTES" The operations and options supported vary according to the key algorithm and its implementation. The OpenSSL operations and options are indicated below. .PP Unless otherwise mentioned all algorithms support the \fBdigest:alg\fR option which specifies the digest in use for sign, verify and verifyrecover operations. The value \fBalg\fR should represent a digest name as used in the \&\fIEVP_get_digestbyname()\fR function for example \fBsha1\fR. This value is used only for sanity-checking the lengths of data passed in to the \fBpkeyutl\fR and for creating the structures that make up the signature (e.g. \fBDigestInfo\fR in \s-1RSASSA\s0 PKCS#1 v1.5 signatures). In case of \s-1RSA, ECDSA\s0 and \s-1DSA\s0 signatures, this utility will not perform hashing on input data but rather use the data directly as input of signature algorithm. Depending on key type, signature type and mode of padding, the maximum acceptable lengths of input data differ. In general, with \s-1RSA\s0 the signed data can't be longer than the key modulus, in case of \s-1ECDSA\s0 and \s-1DSA\s0 the data shouldn't be longer than field size, otherwise it will be silently truncated to field size. .PP In other words, if the value of digest is \fBsha1\fR the input should be 20 bytes long binary encoding of \s-1SHA\-1\s0 hash function output. .SH "RSA ALGORITHM" .IX Header "RSA ALGORITHM" The \s-1RSA\s0 algorithm supports encrypt, decrypt, sign, verify and verifyrecover operations in general. Some padding modes only support some of these operations however. .IP "\-\fBrsa_padding_mode:mode\fR" 4 .IX Item "-rsa_padding_mode:mode" This sets the \s-1RSA\s0 padding mode. Acceptable values for \fBmode\fR are \fBpkcs1\fR for PKCS#1 padding, \fBsslv23\fR for SSLv23 padding, \fBnone\fR for no padding, \fBoaep\fR for \fB\s-1OAEP\s0\fR mode, \fBx931\fR for X9.31 mode and \fBpss\fR for \s-1PSS.\s0 .Sp In PKCS#1 padding if the message digest is not set then the supplied data is signed or verified directly instead of using a \fBDigestInfo\fR structure. If a digest is set then the a \fBDigestInfo\fR structure is used and its the length must correspond to the digest type. .Sp For \fBoeap\fR mode only encryption and decryption is supported. .Sp For \fBx931\fR if the digest type is set it is used to format the block data otherwise the first byte is used to specify the X9.31 digest \s-1ID.\s0 Sign, verify and verifyrecover are can be performed in this mode. .Sp For \fBpss\fR mode only sign and verify are supported and the digest type must be specified. .IP "\fBrsa_pss_saltlen:len\fR" 4 .IX Item "rsa_pss_saltlen:len" For \fBpss\fR mode only this option specifies the salt length. Two special values are supported: \-1 sets the salt length to the digest length. When signing \-2 sets the salt length to the maximum permissible value. When verifying \-2 causes the salt length to be automatically determined based on the \fB\s-1PSS\s0\fR block structure. .SH "DSA ALGORITHM" .IX Header "DSA ALGORITHM" The \s-1DSA\s0 algorithm supports signing and verification operations only. Currently there are no additional options other than \fBdigest\fR. Only the \s-1SHA1\s0 digest can be used and this digest is assumed by default. .SH "DH ALGORITHM" .IX Header "DH ALGORITHM" The \s-1DH\s0 algorithm only supports the derivation operation and no additional options. .SH "EC ALGORITHM" .IX Header "EC ALGORITHM" The \s-1EC\s0 algorithm supports sign, verify and derive operations. The sign and verify operations use \s-1ECDSA\s0 and derive uses \s-1ECDH.\s0 Currently there are no additional options other than \fBdigest\fR. Only the \s-1SHA1\s0 digest can be used and this digest is assumed by default. .SH "EXAMPLES" .IX Header "EXAMPLES" Sign some data using a private key: .PP .Vb 1 \& openssl pkeyutl \-sign \-in file \-inkey key.pem \-out sig .Ve .PP Recover the signed data (e.g. if an \s-1RSA\s0 key is used): .PP .Vb 1 \& openssl pkeyutl \-verifyrecover \-in sig \-inkey key.pem .Ve .PP Verify the signature (e.g. a \s-1DSA\s0 key): .PP .Vb 1 \& openssl pkeyutl \-verify \-in file \-sigfile sig \-inkey key.pem .Ve .PP Sign data using a message digest value (this is currently only valid for \s-1RSA\s0): .PP .Vb 1 \& openssl pkeyutl \-sign \-in file \-inkey key.pem \-out sig \-pkeyopt digest:sha256 .Ve .PP Derive a shared secret value: .PP .Vb 1 \& openssl pkeyutl \-derive \-inkey key.pem \-peerkey pubkey.pem \-out secret .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIgenpkey\fR\|(1), \fIpkey\fR\|(1), \fIrsautl\fR\|(1) \&\fIdgst\fR\|(1), \fIrsa\fR\|(1), \fIgenrsa\fR\|(1) man1/genrsa.1000064400000017107147210533270006753 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "GENRSA 1" .TH GENRSA 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-genrsa, genrsa \- generate an RSA private key .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBgenrsa\fR [\fB\-help\fR] [\fB\-out filename\fR] [\fB\-passout arg\fR] [\fB\-aes128\fR] [\fB\-aes192\fR] [\fB\-aes256\fR] [\fB\-aria128\fR] [\fB\-aria192\fR] [\fB\-aria256\fR] [\fB\-camellia128\fR] [\fB\-camellia192\fR] [\fB\-camellia256\fR] [\fB\-des\fR] [\fB\-des3\fR] [\fB\-idea\fR] [\fB\-f4\fR] [\fB\-3\fR] [\fB\-rand file(s)\fR] [\fB\-engine id\fR] [\fBnumbits\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBgenrsa\fR command generates an \s-1RSA\s0 private key. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-help\fR" 4 .IX Item "-help" Print out a usage message. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" Output the key to the specified file. If this argument is not specified then standard output is used. .IP "\fB\-passout arg\fR" 4 .IX Item "-passout arg" the output file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-aes128|\-aes192|\-aes256|\-aria128|\-aria192|\-aria256|\-camellia128|\-camellia192|\-camellia256|\-des|\-des3|\-idea\fR" 4 .IX Item "-aes128|-aes192|-aes256|-aria128|-aria192|-aria256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea" These options encrypt the private key with specified cipher before outputting it. If none of these options is specified no encryption is used. If encryption is used a pass phrase is prompted for if it is not supplied via the \fB\-passout\fR argument. .IP "\fB\-F4|\-3\fR" 4 .IX Item "-F4|-3" the public exponent to use, either 65537 or 3. The default is 65537. .IP "\fB\-rand file(s)\fR" 4 .IX Item "-rand file(s)" a file or files containing random data used to seed the random number generator, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). Multiple files can be specified separated by an OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBgenrsa\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .IP "\fBnumbits\fR" 4 .IX Item "numbits" the size of the private key to generate in bits. This must be the last option specified. The default is 2048. .SH "NOTES" .IX Header "NOTES" \&\s-1RSA\s0 private key generation essentially involves the generation of two prime numbers. When generating a private key various symbols will be output to indicate the progress of the generation. A \fB.\fR represents each number which has passed an initial sieve test, \fB+\fR means a number has passed a single round of the Miller-Rabin primality test. A newline means that the number has passed all the prime tests (the actual number depends on the key size). .PP Because key generation is a random process the time taken to generate a key may vary somewhat. .SH "BUGS" .IX Header "BUGS" A quirk of the prime generation algorithm is that it cannot generate small primes. Therefore the number of bits should not be less that 64. For typical private keys this will not matter because for security reasons they will be much larger (typically 1024 bits). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIgendsa\fR\|(1) .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2000\-2017 The OpenSSL Project Authors. All Rights Reserved. .PP Licensed under the OpenSSL license (the \*(L"License\*(R"). You may not use this file except in compliance with the License. You can obtain a copy in the file \s-1LICENSE\s0 in the source distribution or at . man1/genpkey.1000064400000035305147210533270007136 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "GENPKEY 1" .TH GENPKEY 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-genpkey, genpkey \- generate a private key .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBgenpkey\fR [\fB\-out filename\fR] [\fB\-outform PEM|DER\fR] [\fB\-pass arg\fR] [\fB\-\f(BIcipher\fB\fR] [\fB\-engine id\fR] [\fB\-paramfile file\fR] [\fB\-algorithm alg\fR] [\fB\-pkeyopt opt:value\fR] [\fB\-genparam\fR] [\fB\-text\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBgenpkey\fR command generates a private key. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" the output filename. If this argument is not specified then standard output is used. .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the output format \s-1DER\s0 or \s-1PEM.\s0 The default format is \s-1PEM.\s0 .IP "\fB\-pass arg\fR" 4 .IX Item "-pass arg" The output file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-\f(BIcipher\fB\fR" 4 .IX Item "-cipher" This option encrypts the private key with the supplied cipher. Any algorithm name accepted by \fIEVP_get_cipherbyname()\fR is acceptable such as \fBdes3\fR. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" Specifying an engine (by its unique \fBid\fR string) will cause \fBgenpkey\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. If used this option should precede all other options. .IP "\fB\-algorithm alg\fR" 4 .IX Item "-algorithm alg" Public key algorithm to use such as \s-1RSA, DSA\s0 or \s-1DH.\s0 If used this option must precede any \fB\-pkeyopt\fR options. The options \fB\-paramfile\fR and \fB\-algorithm\fR are mutually exclusive. Engines may add algorithms in addition to the standard built-in ones. .Sp Valid built-in algorithm names for private key generation are \s-1RSA\s0 and \s-1EC.\s0 .Sp Valid built-in algorithm names for parameter generation (see the \fB\-genparam\fR option) are \s-1DH, DSA\s0 and \s-1EC.\s0 .Sp Note that the algorithm name X9.42 \s-1DH\s0 may be used as a synonym for the \s-1DH\s0 algorithm. These are identical and do not indicate the type of parameters that will be generated. Use the \fBdh_paramgen_type\fR option to indicate whether PKCS#3 or X9.42 \s-1DH\s0 parameters are required. See \*(L"\s-1DH\s0 Parameter Generation Options\*(R" below for more details. .IP "\fB\-pkeyopt opt:value\fR" 4 .IX Item "-pkeyopt opt:value" Set the public key algorithm option \fBopt\fR to \fBvalue\fR. The precise set of options supported depends on the public key algorithm used and its implementation. See \*(L"\s-1KEY GENERATION OPTIONS\*(R"\s0 and \&\*(L"\s-1PARAMETER GENERATION OPTIONS\*(R"\s0 below for more details. .IP "\fB\-genparam\fR" 4 .IX Item "-genparam" Generate a set of parameters instead of a private key. If used this option must precede any \fB\-algorithm\fR, \fB\-paramfile\fR or \fB\-pkeyopt\fR options. .IP "\fB\-paramfile filename\fR" 4 .IX Item "-paramfile filename" Some public key algorithms generate a private key based on a set of parameters. They can be supplied using this option. If this option is used the public key algorithm used is determined by the parameters. If used this option must precede and \fB\-pkeyopt\fR options. The options \fB\-paramfile\fR and \fB\-algorithm\fR are mutually exclusive. .IP "\fB\-text\fR" 4 .IX Item "-text" Print an (unencrypted) text representation of private and public keys and parameters along with the \s-1PEM\s0 or \s-1DER\s0 structure. .SH "KEY GENERATION OPTIONS" .IX Header "KEY GENERATION OPTIONS" The options supported by each algorith and indeed each implementation of an algorithm can vary. The options for the OpenSSL implementations are detailed below. .SS "\s-1RSA\s0 Key Generation Options" .IX Subsection "RSA Key Generation Options" .IP "\fBrsa_keygen_bits:numbits\fR" 4 .IX Item "rsa_keygen_bits:numbits" The number of bits in the generated key. If not specified 2048 is used. .IP "\fBrsa_keygen_pubexp:value\fR" 4 .IX Item "rsa_keygen_pubexp:value" The \s-1RSA\s0 public exponent value. This can be a large decimal or hexadecimal value if preceded by \fB0x\fR. Default value is 65537. .SS "\s-1EC\s0 Key Generation Options" .IX Subsection "EC Key Generation Options" The \s-1EC\s0 key generation options can also be used for parameter generation. .IP "\fBec_paramgen_curve:curve\fR" 4 .IX Item "ec_paramgen_curve:curve" The \s-1EC\s0 curve to use. OpenSSL supports \s-1NIST\s0 curve names such as \*(L"P\-256\*(R". .IP "\fBec_param_enc:encoding\fR" 4 .IX Item "ec_param_enc:encoding" The encoding to use for parameters. The \*(L"encoding\*(R" parameter must be either \&\*(L"named_curve\*(R" or \*(L"explicit\*(R". The default value is \*(L"named_curve\*(R". .SH "PARAMETER GENERATION OPTIONS" .IX Header "PARAMETER GENERATION OPTIONS" The options supported by each algorithm and indeed each implementation of an algorithm can vary. The options for the OpenSSL implementations are detailed below. .SS "\s-1DSA\s0 Parameter Generation Options" .IX Subsection "DSA Parameter Generation Options" .IP "\fBdsa_paramgen_bits:numbits\fR" 4 .IX Item "dsa_paramgen_bits:numbits" The number of bits in the generated prime. If not specified 2048 is used. .IP "\fBdsa_paramgen_q_bits:numbits\fR" 4 .IX Item "dsa_paramgen_q_bits:numbits" The number of bits in the q parameter. Must be one of 160, 224 or 256. If not specified 224 is used. .IP "\fBdsa_paramgen_md:digest\fR" 4 .IX Item "dsa_paramgen_md:digest" The digest to use during parameter generation. Must be one of \fBsha1\fR, \fBsha224\fR or \fBsha256\fR. If set, then the number of bits in \fBq\fR will match the output size of the specified digest and the \fBdsa_paramgen_q_bits\fR parameter will be ignored. If not set, then a digest will be used that gives an output matching the number of bits in \fBq\fR, i.e. \fBsha1\fR if q length is 160, \fBsha224\fR if it 224 or \fBsha256\fR if it is 256. .SS "\s-1DH\s0 Parameter Generation Options" .IX Subsection "DH Parameter Generation Options" .IP "\fBdh_paramgen_prime_len:numbits\fR" 4 .IX Item "dh_paramgen_prime_len:numbits" The number of bits in the prime parameter \fBp\fR. The default is 2048. .IP "\fBdh_paramgen_subprime_len:numbits\fR" 4 .IX Item "dh_paramgen_subprime_len:numbits" The number of bits in the sub prime parameter \fBq\fR. The default is 256 if the prime is at least 2048 bits long or 160 otherwise. Only relevant if used in conjunction with the \fBdh_paramgen_type\fR option to generate X9.42 \s-1DH\s0 parameters. .IP "\fBdh_paramgen_generator:value\fR" 4 .IX Item "dh_paramgen_generator:value" The value to use for the generator \fBg\fR. The default is 2. .IP "\fBdh_paramgen_type:value\fR" 4 .IX Item "dh_paramgen_type:value" The type of \s-1DH\s0 parameters to generate. Use 0 for PKCS#3 \s-1DH\s0 and 1 for X9.42 \s-1DH.\s0 The default is 0. .IP "\fBdh_rfc5114:num\fR" 4 .IX Item "dh_rfc5114:num" If this option is set, then the appropriate \s-1RFC5114\s0 parameters are used instead of generating new parameters. The value \fBnum\fR can take the values 1, 2 or 3 corresponding to \s-1RFC5114 DH\s0 parameters consisting of 1024 bit group with 160 bit subgroup, 2048 bit group with 224 bit subgroup and 2048 bit group with 256 bit subgroup as mentioned in \s-1RFC5114\s0 sections 2.1, 2.2 and 2.3 respectively. If present this overrides all other \s-1DH\s0 parameter options. .SS "\s-1EC\s0 Parameter Generation Options" .IX Subsection "EC Parameter Generation Options" The \s-1EC\s0 parameter generation options are the same as for key generation. See \&\*(L"\s-1EC\s0 Key Generation Options\*(R" above. .SH "GOST2001 KEY GENERATION AND PARAMETER OPTIONS" .IX Header "GOST2001 KEY GENERATION AND PARAMETER OPTIONS" Gost 2001 support is not enabled by default. To enable this algorithm, one should load the ccgost engine in the OpenSSL configuration file. See \s-1README\s0.gost file in the engines/ccgost directiry of the source distribution for more details. .PP Use of a parameter file for the \s-1GOST R 34.10\s0 algorithm is optional. Parameters can be specified during key generation directly as well as during generation of parameter file. .IP "\fBparamset:name\fR" 4 .IX Item "paramset:name" Specifies \s-1GOST R 34.10\-2001\s0 parameter set according to \s-1RFC 4357.\s0 Parameter set can be specified using abbreviated name, object short name or numeric \s-1OID.\s0 Following parameter sets are supported: .Sp .Vb 7 \& paramset OID Usage \& A 1.2.643.2.2.35.1 Signature \& B 1.2.643.2.2.35.2 Signature \& C 1.2.643.2.2.35.3 Signature \& XA 1.2.643.2.2.36.0 Key exchange \& XB 1.2.643.2.2.36.1 Key exchange \& test 1.2.643.2.2.35.0 Test purposes .Ve .SH "NOTES" .IX Header "NOTES" The use of the genpkey program is encouraged over the algorithm specific utilities because additional algorithm options and \s-1ENGINE\s0 provided algorithms can be used. .SH "EXAMPLES" .IX Header "EXAMPLES" Generate an \s-1RSA\s0 private key using default parameters: .PP .Vb 1 \& openssl genpkey \-algorithm RSA \-out key.pem .Ve .PP Encrypt output private key using 128 bit \s-1AES\s0 and the passphrase \*(L"hello\*(R": .PP .Vb 1 \& openssl genpkey \-algorithm RSA \-out key.pem \-aes\-128\-cbc \-pass pass:hello .Ve .PP Generate a 2048 bit \s-1RSA\s0 key using 3 as the public exponent: .PP .Vb 2 \& openssl genpkey \-algorithm RSA \-out key.pem \-pkeyopt rsa_keygen_bits:2048 \e \& \-pkeyopt rsa_keygen_pubexp:3 .Ve .PP Generate 2048 bit \s-1DSA\s0 parameters: .PP .Vb 2 \& openssl genpkey \-genparam \-algorithm DSA \-out dsap.pem \e \& \-pkeyopt dsa_paramgen_bits:2048 .Ve .PP Generate \s-1DSA\s0 key from parameters: .PP .Vb 1 \& openssl genpkey \-paramfile dsap.pem \-out dsakey.pem .Ve .PP Generate 2048 bit \s-1DH\s0 parameters: .PP .Vb 2 \& openssl genpkey \-genparam \-algorithm DH \-out dhp.pem \e \& \-pkeyopt dh_paramgen_prime_len:2048 .Ve .PP Generate 2048 bit X9.42 \s-1DH\s0 parameters: .PP .Vb 3 \& openssl genpkey \-genparam \-algorithm DH \-out dhpx.pem \e \& \-pkeyopt dh_paramgen_prime_len:2048 \e \& \-pkeyopt dh_paramgen_type:1 .Ve .PP Output \s-1RFC5114 2048\s0 bit \s-1DH\s0 parameters with 224 bit subgroup: .PP .Vb 1 \& openssl genpkey \-genparam \-algorithm DH \-out dhp.pem \-pkeyopt dh_rfc5114:2 .Ve .PP Generate \s-1DH\s0 key from parameters: .PP .Vb 1 \& openssl genpkey \-paramfile dhp.pem \-out dhkey.pem .Ve .PP Generate \s-1EC\s0 key directly: .PP .Vb 3 \& openssl genpkey \-algorithm EC \-out eckey.pem \e \& \-pkeyopt ec_paramgen_curve:P\-384 \e \& \-pkeyopt ec_param_enc:named_curve .Ve .SH "HISTORY" .IX Header "HISTORY" The ability to use \s-1NIST\s0 curve names, and to generate an \s-1EC\s0 key directly, were added in OpenSSL 1.0.2. man1/pkeyparam.1000064400000013223147210533270007460 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PKEYPARAM 1" .TH PKEYPARAM 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-pkeyparam, pkeyparam \- public key algorithm parameter processing tool .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBpkeyparam\fR [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-text\fR] [\fB\-noout\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBpkey\fR command processes public or private keys. They can be converted between various forms and their components printed out. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read parameters from or standard input if this option is not specified. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" This specifies the output filename to write parameters to or standard output if this option is not specified. .IP "\fB\-text\fR" 4 .IX Item "-text" prints out the parameters in plain text in addition to the encoded version. .IP "\fB\-noout\fR" 4 .IX Item "-noout" do not output the encoded version of the parameters. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBpkeyparam\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .SH "EXAMPLE" .IX Header "EXAMPLE" Print out text version of parameters: .PP .Vb 1 \& openssl pkeyparam \-in param.pem \-text .Ve .SH "NOTES" .IX Header "NOTES" There are no \fB\-inform\fR or \fB\-outform\fR options for this command because only \&\s-1PEM\s0 format is supported because the key type is determined by the \s-1PEM\s0 headers. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIgenpkey\fR\|(1), \fIrsa\fR\|(1), \fIpkcs8\fR\|(1), \&\fIdsa\fR\|(1), \fIgenrsa\fR\|(1), \fIgendsa\fR\|(1) man1/rsautl.1000064400000023411147210533270007001 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "RSAUTL 1" .TH RSAUTL 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-rsautl, rsautl \- RSA utility .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBrsautl\fR [\fB\-in file\fR] [\fB\-out file\fR] [\fB\-inkey file\fR] [\fB\-pubin\fR] [\fB\-certin\fR] [\fB\-sign\fR] [\fB\-verify\fR] [\fB\-encrypt\fR] [\fB\-decrypt\fR] [\fB\-pkcs\fR] [\fB\-ssl\fR] [\fB\-raw\fR] [\fB\-hexdump\fR] [\fB\-asn1parse\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBrsautl\fR command can be used to sign, verify, encrypt and decrypt data using the \s-1RSA\s0 algorithm. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read data from or standard input if this option is not specified. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" specifies the output filename to write to or standard output by default. .IP "\fB\-inkey file\fR" 4 .IX Item "-inkey file" the input key file, by default it should be an \s-1RSA\s0 private key. .IP "\fB\-pubin\fR" 4 .IX Item "-pubin" the input file is an \s-1RSA\s0 public key. .IP "\fB\-certin\fR" 4 .IX Item "-certin" the input is a certificate containing an \s-1RSA\s0 public key. .IP "\fB\-sign\fR" 4 .IX Item "-sign" sign the input data and output the signed result. This requires and \s-1RSA\s0 private key. .IP "\fB\-verify\fR" 4 .IX Item "-verify" verify the input data and output the recovered data. .IP "\fB\-encrypt\fR" 4 .IX Item "-encrypt" encrypt the input data using an \s-1RSA\s0 public key. .IP "\fB\-decrypt\fR" 4 .IX Item "-decrypt" decrypt the input data using an \s-1RSA\s0 private key. .IP "\fB\-pkcs, \-oaep, \-ssl, \-raw\fR" 4 .IX Item "-pkcs, -oaep, -ssl, -raw" the padding to use: PKCS#1 v1.5 (the default), PKCS#1 \s-1OAEP,\s0 special padding used in \s-1SSL\s0 v2 backwards compatible handshakes, or no padding, respectively. For signatures, only \fB\-pkcs\fR and \fB\-raw\fR can be used. .IP "\fB\-hexdump\fR" 4 .IX Item "-hexdump" hex dump the output data. .IP "\fB\-asn1parse\fR" 4 .IX Item "-asn1parse" asn1parse the output data, this is useful when combined with the \&\fB\-verify\fR option. .SH "NOTES" .IX Header "NOTES" \&\fBrsautl\fR because it uses the \s-1RSA\s0 algorithm directly can only be used to sign or verify small pieces of data. .SH "EXAMPLES" .IX Header "EXAMPLES" Sign some data using a private key: .PP .Vb 1 \& openssl rsautl \-sign \-in file \-inkey key.pem \-out sig .Ve .PP Recover the signed data .PP .Vb 1 \& openssl rsautl \-verify \-in sig \-inkey key.pem .Ve .PP Examine the raw signed data: .PP .Vb 1 \& openssl rsautl \-verify \-in sig \-inkey key.pem \-raw \-hexdump \& \& 0000 \- 00 01 ff ff ff ff ff ff\-ff ff ff ff ff ff ff ff ................ \& 0010 \- ff ff ff ff ff ff ff ff\-ff ff ff ff ff ff ff ff ................ \& 0020 \- ff ff ff ff ff ff ff ff\-ff ff ff ff ff ff ff ff ................ \& 0030 \- ff ff ff ff ff ff ff ff\-ff ff ff ff ff ff ff ff ................ \& 0040 \- ff ff ff ff ff ff ff ff\-ff ff ff ff ff ff ff ff ................ \& 0050 \- ff ff ff ff ff ff ff ff\-ff ff ff ff ff ff ff ff ................ \& 0060 \- ff ff ff ff ff ff ff ff\-ff ff ff ff ff ff ff ff ................ \& 0070 \- ff ff ff ff 00 68 65 6c\-6c 6f 20 77 6f 72 6c 64 .....hello world .Ve .PP The PKCS#1 block formatting is evident from this. If this was done using encrypt and decrypt the block would have been of type 2 (the second byte) and random padding data visible instead of the 0xff bytes. .PP It is possible to analyse the signature of certificates using this utility in conjunction with \fBasn1parse\fR. Consider the self signed example in certs/pca\-cert.pem . Running \fBasn1parse\fR as follows yields: .PP .Vb 1 \& openssl asn1parse \-in pca\-cert.pem \& \& 0:d=0 hl=4 l= 742 cons: SEQUENCE \& 4:d=1 hl=4 l= 591 cons: SEQUENCE \& 8:d=2 hl=2 l= 3 cons: cont [ 0 ] \& 10:d=3 hl=2 l= 1 prim: INTEGER :02 \& 13:d=2 hl=2 l= 1 prim: INTEGER :00 \& 16:d=2 hl=2 l= 13 cons: SEQUENCE \& 18:d=3 hl=2 l= 9 prim: OBJECT :md5WithRSAEncryption \& 29:d=3 hl=2 l= 0 prim: NULL \& 31:d=2 hl=2 l= 92 cons: SEQUENCE \& 33:d=3 hl=2 l= 11 cons: SET \& 35:d=4 hl=2 l= 9 cons: SEQUENCE \& 37:d=5 hl=2 l= 3 prim: OBJECT :countryName \& 42:d=5 hl=2 l= 2 prim: PRINTABLESTRING :AU \& .... \& 599:d=1 hl=2 l= 13 cons: SEQUENCE \& 601:d=2 hl=2 l= 9 prim: OBJECT :md5WithRSAEncryption \& 612:d=2 hl=2 l= 0 prim: NULL \& 614:d=1 hl=3 l= 129 prim: BIT STRING .Ve .PP The final \s-1BIT STRING\s0 contains the actual signature. It can be extracted with: .PP .Vb 1 \& openssl asn1parse \-in pca\-cert.pem \-out sig \-noout \-strparse 614 .Ve .PP The certificate public key can be extracted with: .PP .Vb 1 \& openssl x509 \-in test/testx509.pem \-pubkey \-noout >pubkey.pem .Ve .PP The signature can be analysed with: .PP .Vb 1 \& openssl rsautl \-in sig \-verify \-asn1parse \-inkey pubkey.pem \-pubin \& \& 0:d=0 hl=2 l= 32 cons: SEQUENCE \& 2:d=1 hl=2 l= 12 cons: SEQUENCE \& 4:d=2 hl=2 l= 8 prim: OBJECT :md5 \& 14:d=2 hl=2 l= 0 prim: NULL \& 16:d=1 hl=2 l= 16 prim: OCTET STRING \& 0000 \- f3 46 9e aa 1a 4a 73 c9\-37 ea 93 00 48 25 08 b5 .F...Js.7...H%.. .Ve .PP This is the parsed version of an \s-1ASN1\s0 DigestInfo structure. It can be seen that the digest used was md5. The actual part of the certificate that was signed can be extracted with: .PP .Vb 1 \& openssl asn1parse \-in pca\-cert.pem \-out tbs \-noout \-strparse 4 .Ve .PP and its digest computed with: .PP .Vb 2 \& openssl md5 \-c tbs \& MD5(tbs)= f3:46:9e:aa:1a:4a:73:c9:37:ea:93:00:48:25:08:b5 .Ve .PP which it can be seen agrees with the recovered value above. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdgst\fR\|(1), \fIrsa\fR\|(1), \fIgenrsa\fR\|(1) man1/dhparam.1000064400000021226147210533270007105 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DHPARAM 1" .TH DHPARAM 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-dhparam, dhparam \- DH parameter manipulation and generation .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl dhparam\fR [\fB\-inform DER|PEM\fR] [\fB\-outform DER|PEM\fR] [\fB\-in\fR \fIfilename\fR] [\fB\-out\fR \fIfilename\fR] [\fB\-dsaparam\fR] [\fB\-check\fR] [\fB\-noout\fR] [\fB\-text\fR] [\fB\-C\fR] [\fB\-2\fR] [\fB\-5\fR] [\fB\-rand\fR \fIfile(s)\fR] [\fB\-engine id\fR] [\fInumbits\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" This command is used to manipulate \s-1DH\s0 parameter files. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-inform DER|PEM\fR" 4 .IX Item "-inform DER|PEM" This specifies the input format. The \fB\s-1DER\s0\fR option uses an \s-1ASN1 DER\s0 encoded form compatible with the PKCS#3 DHparameter structure. The \s-1PEM\s0 form is the default format: it consists of the \fB\s-1DER\s0\fR format base64 encoded with additional header and footer lines. .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in\fR \fIfilename\fR" 4 .IX Item "-in filename" This specifies the input filename to read parameters from or standard input if this option is not specified. .IP "\fB\-out\fR \fIfilename\fR" 4 .IX Item "-out filename" This specifies the output filename parameters to. Standard output is used if this option is not present. The output filename should \fBnot\fR be the same as the input filename. .IP "\fB\-dsaparam\fR" 4 .IX Item "-dsaparam" If this option is used, \s-1DSA\s0 rather than \s-1DH\s0 parameters are read or created; they are converted to \s-1DH\s0 format. Otherwise, \*(L"strong\*(R" primes (such that (p\-1)/2 is also prime) will be used for \s-1DH\s0 parameter generation. .Sp \&\s-1DH\s0 parameter generation with the \fB\-dsaparam\fR option is much faster, and the recommended exponent length is shorter, which makes \s-1DH\s0 key exchange more efficient. Beware that with such DSA-style \s-1DH\s0 parameters, a fresh \s-1DH\s0 key should be created for each use to avoid small-subgroup attacks that may be possible otherwise. .IP "\fB\-check\fR" 4 .IX Item "-check" check if the parameters are valid primes and generator. .IP "\fB\-2\fR, \fB\-5\fR" 4 .IX Item "-2, -5" The generator to use, either 2 or 5. If present then the input file is ignored and parameters are generated instead. If not present but \fBnumbits\fR is present, parameters are generated with the default generator 2. .IP "\fB\-rand\fR \fIfile(s)\fR" 4 .IX Item "-rand file(s)" a file or files containing random data used to seed the random number generator, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). Multiple files can be specified separated by a OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fInumbits\fR" 4 .IX Item "numbits" this option specifies that a parameter set should be generated of size \&\fInumbits\fR. It must be the last option. If this option is present then the input file is ignored and parameters are generated instead. If this option is not present but a generator (\fB\-2\fR or \fB\-5\fR) is present, parameters are generated with a default length of 2048 bits. .IP "\fB\-noout\fR" 4 .IX Item "-noout" this option inhibits the output of the encoded version of the parameters. .IP "\fB\-text\fR" 4 .IX Item "-text" this option prints out the \s-1DH\s0 parameters in human readable form. .IP "\fB\-C\fR" 4 .IX Item "-C" this option converts the parameters into C code. The parameters can then be loaded by calling the \fBget_dh\fR\fInumbits\fR\fB()\fR function. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBdhparam\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .SH "WARNINGS" .IX Header "WARNINGS" The program \fBdhparam\fR combines the functionality of the programs \fBdh\fR and \&\fBgendh\fR in previous versions of OpenSSL and SSLeay. The \fBdh\fR and \fBgendh\fR programs are retained for now but may have different purposes in future versions of OpenSSL. .SH "NOTES" .IX Header "NOTES" \&\s-1PEM\s0 format \s-1DH\s0 parameters use the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN DH PARAMETERS\-\-\-\-\- \& \-\-\-\-\-END DH PARAMETERS\-\-\-\-\- .Ve .PP OpenSSL currently only supports the older PKCS#3 \s-1DH,\s0 not the newer X9.42 \&\s-1DH.\s0 .PP This program manipulates \s-1DH\s0 parameters not keys. .SH "BUGS" .IX Header "BUGS" There should be a way to generate and manipulate \s-1DH\s0 keys. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdsaparam\fR\|(1) .SH "HISTORY" .IX Header "HISTORY" The \fBdhparam\fR command was added in OpenSSL 0.9.5. The \fB\-dsaparam\fR option was added in OpenSSL 0.9.6. man1/dsa.1000064400000022300147210533270006232 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DSA 1" .TH DSA 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-dsa, dsa \- DSA key processing .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBdsa\fR [\fB\-inform PEM|DER\fR] [\fB\-outform PEM|DER\fR] [\fB\-in filename\fR] [\fB\-passin arg\fR] [\fB\-out filename\fR] [\fB\-passout arg\fR] [\fB\-aes128\fR] [\fB\-aes192\fR] [\fB\-aes256\fR] [\fB\-camellia128\fR] [\fB\-camellia192\fR] [\fB\-camellia256\fR] [\fB\-des\fR] [\fB\-des3\fR] [\fB\-idea\fR] [\fB\-text\fR] [\fB\-noout\fR] [\fB\-modulus\fR] [\fB\-pubin\fR] [\fB\-pubout\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBdsa\fR command processes \s-1DSA\s0 keys. They can be converted between various forms and their components printed out. \fBNote\fR This command uses the traditional SSLeay compatible format for private key encryption: newer applications should use the more secure PKCS#8 format using the \fBpkcs8\fR .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-inform DER|PEM\fR" 4 .IX Item "-inform DER|PEM" This specifies the input format. The \fB\s-1DER\s0\fR option with a private key uses an \s-1ASN1 DER\s0 encoded form of an \s-1ASN.1 SEQUENCE\s0 consisting of the values of version (currently zero), p, q, g, the public and private key components respectively as \s-1ASN.1\s0 INTEGERs. When used with a public key it uses a SubjectPublicKeyInfo structure: it is an error if the key is not \s-1DSA.\s0 .Sp The \fB\s-1PEM\s0\fR form is the default format: it consists of the \fB\s-1DER\s0\fR format base64 encoded with additional header and footer lines. In the case of a private key PKCS#8 format is also accepted. .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read a key from or standard input if this option is not specified. If the key is encrypted a pass phrase will be prompted for. .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the input file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" This specifies the output filename to write a key to or standard output by is not specified. If any encryption options are set then a pass phrase will be prompted for. The output filename should \fBnot\fR be the same as the input filename. .IP "\fB\-passout arg\fR" 4 .IX Item "-passout arg" the output file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-aes128|\-aes192|\-aes256|\-camellia128|\-camellia192|\-camellia256|\-des|\-des3|\-idea\fR" 4 .IX Item "-aes128|-aes192|-aes256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea" These options encrypt the private key with the specified cipher before outputting it. A pass phrase is prompted for. If none of these options is specified the key is written in plain text. This means that using the \fBdsa\fR utility to read in an encrypted key with no encryption option can be used to remove the pass phrase from a key, or by setting the encryption options it can be use to add or change the pass phrase. These options can only be used with \s-1PEM\s0 format output files. .IP "\fB\-text\fR" 4 .IX Item "-text" prints out the public, private key components and parameters. .IP "\fB\-noout\fR" 4 .IX Item "-noout" this option prevents output of the encoded version of the key. .IP "\fB\-modulus\fR" 4 .IX Item "-modulus" this option prints out the value of the public key component of the key. .IP "\fB\-pubin\fR" 4 .IX Item "-pubin" by default a private key is read from the input file: with this option a public key is read instead. .IP "\fB\-pubout\fR" 4 .IX Item "-pubout" by default a private key is output. With this option a public key will be output instead. This option is automatically set if the input is a public key. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBdsa\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .SH "NOTES" .IX Header "NOTES" The \s-1PEM\s0 private key format uses the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN DSA PRIVATE KEY\-\-\-\-\- \& \-\-\-\-\-END DSA PRIVATE KEY\-\-\-\-\- .Ve .PP The \s-1PEM\s0 public key format uses the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN PUBLIC KEY\-\-\-\-\- \& \-\-\-\-\-END PUBLIC KEY\-\-\-\-\- .Ve .SH "EXAMPLES" .IX Header "EXAMPLES" To remove the pass phrase on a \s-1DSA\s0 private key: .PP .Vb 1 \& openssl dsa \-in key.pem \-out keyout.pem .Ve .PP To encrypt a private key using triple \s-1DES:\s0 .PP .Vb 1 \& openssl dsa \-in key.pem \-des3 \-out keyout.pem .Ve .PP To convert a private key from \s-1PEM\s0 to \s-1DER\s0 format: .PP .Vb 1 \& openssl dsa \-in key.pem \-outform DER \-out keyout.der .Ve .PP To print out the components of a private key to standard output: .PP .Vb 1 \& openssl dsa \-in key.pem \-text \-noout .Ve .PP To just output the public part of a private key: .PP .Vb 1 \& openssl dsa \-in key.pem \-pubout \-out pubkey.pem .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIdsaparam\fR\|(1), \fIgendsa\fR\|(1), \fIrsa\fR\|(1), \&\fIgenrsa\fR\|(1) man1/sess_id.1000064400000020463147210533270007124 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SESS_ID 1" .TH SESS_ID 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-sess_id, sess_id \- SSL/TLS session handling utility .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBsess_id\fR [\fB\-inform PEM|DER\fR] [\fB\-outform PEM|DER\fR] [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-text\fR] [\fB\-noout\fR] [\fB\-context \s-1ID\s0\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBsess_id\fR process the encoded version of the \s-1SSL\s0 session structure and optionally prints out \s-1SSL\s0 session details (for example the \s-1SSL\s0 session master key) in human readable format. Since this is a diagnostic tool that needs some knowledge of the \s-1SSL\s0 protocol to use properly, most users will not need to use it. .IP "\fB\-inform DER|PEM\fR" 4 .IX Item "-inform DER|PEM" This specifies the input format. The \fB\s-1DER\s0\fR option uses an \s-1ASN1 DER\s0 encoded format containing session details. The precise format can vary from one version to the next. The \fB\s-1PEM\s0\fR form is the default format: it consists of the \fB\s-1DER\s0\fR format base64 encoded with additional header and footer lines. .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read session information from or standard input by default. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" This specifies the output filename to write session information to or standard output if this option is not specified. .IP "\fB\-text\fR" 4 .IX Item "-text" prints out the various public or private key components in plain text in addition to the encoded version. .IP "\fB\-cert\fR" 4 .IX Item "-cert" if a certificate is present in the session it will be output using this option, if the \fB\-text\fR option is also present then it will be printed out in text form. .IP "\fB\-noout\fR" 4 .IX Item "-noout" this option prevents output of the encoded version of the session. .IP "\fB\-context \s-1ID\s0\fR" 4 .IX Item "-context ID" this option can set the session id so the output session information uses the supplied \s-1ID.\s0 The \s-1ID\s0 can be any string of characters. This option wont normally be used. .SH "OUTPUT" .IX Header "OUTPUT" Typical output: .PP .Vb 10 \& SSL\-Session: \& Protocol : TLSv1 \& Cipher : 0016 \& Session\-ID: 871E62626C554CE95488823752CBD5F3673A3EF3DCE9C67BD916C809914B40ED \& Session\-ID\-ctx: 01000000 \& Master\-Key: A7CEFC571974BE02CAC305269DC59F76EA9F0B180CB6642697A68251F2D2BB57E51DBBB4C7885573192AE9AEE220FACD \& Key\-Arg : None \& Start Time: 948459261 \& Timeout : 300 (sec) \& Verify return code 0 (ok) .Ve .PP Theses are described below in more detail. .IP "\fBProtocol\fR" 4 .IX Item "Protocol" this is the protocol in use TLSv1, SSLv3 or SSLv2. .IP "\fBCipher\fR" 4 .IX Item "Cipher" the cipher used this is the actual raw \s-1SSL\s0 or \s-1TLS\s0 cipher code, see the \s-1SSL\s0 or \s-1TLS\s0 specifications for more information. .IP "\fBSession-ID\fR" 4 .IX Item "Session-ID" the \s-1SSL\s0 session \s-1ID\s0 in hex format. .IP "\fBSession-ID-ctx\fR" 4 .IX Item "Session-ID-ctx" the session \s-1ID\s0 context in hex format. .IP "\fBMaster-Key\fR" 4 .IX Item "Master-Key" this is the \s-1SSL\s0 session master key. .IP "\fBKey-Arg\fR" 4 .IX Item "Key-Arg" the key argument, this is only used in \s-1SSL\s0 v2. .IP "\fBStart Time\fR" 4 .IX Item "Start Time" this is the session start time represented as an integer in standard Unix format. .IP "\fBTimeout\fR" 4 .IX Item "Timeout" the timeout in seconds. .IP "\fBVerify return code\fR" 4 .IX Item "Verify return code" this is the return code when an \s-1SSL\s0 client certificate is verified. .SH "NOTES" .IX Header "NOTES" The \s-1PEM\s0 encoded session format uses the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN SSL SESSION PARAMETERS\-\-\-\-\- \& \-\-\-\-\-END SSL SESSION PARAMETERS\-\-\-\-\- .Ve .PP Since the \s-1SSL\s0 session output contains the master key it is possible to read the contents of an encrypted session using this information. Therefore appropriate security precautions should be taken if the information is being output by a \*(L"real\*(R" application. This is however strongly discouraged and should only be used for debugging purposes. .SH "BUGS" .IX Header "BUGS" The cipher and start time should be printed out in human readable form. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIciphers\fR\|(1), \fIs_server\fR\|(1) man1/pkey.1000064400000017415147210533270006446 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PKEY 1" .TH PKEY 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-pkey, pkey \- public or private key processing tool .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBpkey\fR [\fB\-inform PEM|DER\fR] [\fB\-outform PEM|DER\fR] [\fB\-in filename\fR] [\fB\-passin arg\fR] [\fB\-out filename\fR] [\fB\-passout arg\fR] [\fB\-cipher\fR] [\fB\-text\fR] [\fB\-text_pub\fR] [\fB\-noout\fR] [\fB\-pubin\fR] [\fB\-pubout\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBpkey\fR command processes public or private keys. They can be converted between various forms and their components printed out. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-inform DER|PEM\fR" 4 .IX Item "-inform DER|PEM" This specifies the input format \s-1DER\s0 or \s-1PEM.\s0 .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read a key from or standard input if this option is not specified. If the key is encrypted a pass phrase will be prompted for. .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the input file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" This specifies the output filename to write a key to or standard output if this option is not specified. If any encryption options are set then a pass phrase will be prompted for. The output filename should \fBnot\fR be the same as the input filename. .IP "\fB\-passout password\fR" 4 .IX Item "-passout password" the output file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-cipher\fR" 4 .IX Item "-cipher" These options encrypt the private key with the supplied cipher. Any algorithm name accepted by \fIEVP_get_cipherbyname()\fR is acceptable such as \fBdes3\fR. .IP "\fB\-text\fR" 4 .IX Item "-text" prints out the various public or private key components in plain text in addition to the encoded version. .IP "\fB\-text_pub\fR" 4 .IX Item "-text_pub" print out only public key components even if a private key is being processed. .IP "\fB\-noout\fR" 4 .IX Item "-noout" do not output the encoded version of the key. .IP "\fB\-pubin\fR" 4 .IX Item "-pubin" by default a private key is read from the input file: with this option a public key is read instead. .IP "\fB\-pubout\fR" 4 .IX Item "-pubout" by default a private key is output: with this option a public key will be output instead. This option is automatically set if the input is a public key. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBpkey\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .SH "EXAMPLES" .IX Header "EXAMPLES" To remove the pass phrase on an \s-1RSA\s0 private key: .PP .Vb 1 \& openssl pkey \-in key.pem \-out keyout.pem .Ve .PP To encrypt a private key using triple \s-1DES:\s0 .PP .Vb 1 \& openssl pkey \-in key.pem \-des3 \-out keyout.pem .Ve .PP To convert a private key from \s-1PEM\s0 to \s-1DER\s0 format: .PP .Vb 1 \& openssl pkey \-in key.pem \-outform DER \-out keyout.der .Ve .PP To print out the components of a private key to standard output: .PP .Vb 1 \& openssl pkey \-in key.pem \-text \-noout .Ve .PP To print out the public components of a private key to standard output: .PP .Vb 1 \& openssl pkey \-in key.pem \-text_pub \-noout .Ve .PP To just output the public part of a private key: .PP .Vb 1 \& openssl pkey \-in key.pem \-pubout \-out pubkey.pem .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIgenpkey\fR\|(1), \fIrsa\fR\|(1), \fIpkcs8\fR\|(1), \&\fIdsa\fR\|(1), \fIgenrsa\fR\|(1), \fIgendsa\fR\|(1) man1/ts.1000064400000064270147210533270006125 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "TS 1" .TH TS 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-ts, ts \- Time Stamping Authority tool (client/server) .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBts\fR \&\fB\-query\fR [\fB\-rand\fR file:file...] [\fB\-config\fR configfile] [\fB\-data\fR file_to_hash] [\fB\-digest\fR digest_bytes] [\fB\-md2\fR|\fB\-md4\fR|\fB\-md5\fR|\fB\-sha\fR|\fB\-sha1\fR|\fB\-mdc2\fR|\fB\-ripemd160\fR|\fB...\fR] [\fB\-policy\fR object_id] [\fB\-no_nonce\fR] [\fB\-cert\fR] [\fB\-in\fR request.tsq] [\fB\-out\fR request.tsq] [\fB\-text\fR] .PP \&\fBopenssl\fR \fBts\fR \&\fB\-reply\fR [\fB\-config\fR configfile] [\fB\-section\fR tsa_section] [\fB\-queryfile\fR request.tsq] [\fB\-passin\fR password_src] [\fB\-signer\fR tsa_cert.pem] [\fB\-inkey\fR private.pem] [\fB\-chain\fR certs_file.pem] [\fB\-policy\fR object_id] [\fB\-in\fR response.tsr] [\fB\-token_in\fR] [\fB\-out\fR response.tsr] [\fB\-token_out\fR] [\fB\-text\fR] [\fB\-engine\fR id] .PP \&\fBopenssl\fR \fBts\fR \&\fB\-verify\fR [\fB\-data\fR file_to_hash] [\fB\-digest\fR digest_bytes] [\fB\-queryfile\fR request.tsq] [\fB\-in\fR response.tsr] [\fB\-token_in\fR] [\fB\-CApath\fR trusted_cert_path] [\fB\-CAfile\fR trusted_certs.pem] [\fB\-untrusted\fR cert_file.pem] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBts\fR command is a basic Time Stamping Authority (\s-1TSA\s0) client and server application as specified in \s-1RFC 3161 \s0(Time-Stamp Protocol, \s-1TSP\s0). A \&\s-1TSA\s0 can be part of a \s-1PKI\s0 deployment and its role is to provide long term proof of the existence of a certain datum before a particular time. Here is a brief description of the protocol: .IP "1." 4 The \s-1TSA\s0 client computes a one-way hash value for a data file and sends the hash to the \s-1TSA.\s0 .IP "2." 4 The \s-1TSA\s0 attaches the current date and time to the received hash value, signs them and sends the time stamp token back to the client. By creating this token the \s-1TSA\s0 certifies the existence of the original data file at the time of response generation. .IP "3." 4 The \s-1TSA\s0 client receives the time stamp token and verifies the signature on it. It also checks if the token contains the same hash value that it had sent to the \s-1TSA.\s0 .PP There is one \s-1DER\s0 encoded protocol data unit defined for transporting a time stamp request to the \s-1TSA\s0 and one for sending the time stamp response back to the client. The \fBts\fR command has three main functions: creating a time stamp request based on a data file, creating a time stamp response based on a request, verifying if a response corresponds to a particular request or a data file. .PP There is no support for sending the requests/responses automatically over \s-1HTTP\s0 or \s-1TCP\s0 yet as suggested in \s-1RFC 3161.\s0 The users must send the requests either by ftp or e\-mail. .SH "OPTIONS" .IX Header "OPTIONS" .SS "Time Stamp Request generation" .IX Subsection "Time Stamp Request generation" The \fB\-query\fR switch can be used for creating and printing a time stamp request with the following options: .IP "\fB\-rand\fR file:file..." 4 .IX Item "-rand file:file..." The files containing random data for seeding the random number generator. Multiple files can be specified, the separator is \fB;\fR for MS-Windows, \fB,\fR for \s-1VMS\s0 and \fB:\fR for all other platforms. (Optional) .IP "\fB\-config\fR configfile" 4 .IX Item "-config configfile" The configuration file to use, this option overrides the \&\fB\s-1OPENSSL_CONF\s0\fR environment variable. Only the \s-1OID\s0 section of the config file is used with the \fB\-query\fR command. (Optional) .IP "\fB\-data\fR file_to_hash" 4 .IX Item "-data file_to_hash" The data file for which the time stamp request needs to be created. stdin is the default if neither the \fB\-data\fR nor the \fB\-digest\fR parameter is specified. (Optional) .IP "\fB\-digest\fR digest_bytes" 4 .IX Item "-digest digest_bytes" It is possible to specify the message imprint explicitly without the data file. The imprint must be specified in a hexadecimal format, two characters per byte, the bytes optionally separated by colons (e.g. 1A:F6:01:... or 1AF601...). The number of bytes must match the message digest algorithm in use. (Optional) .IP "\fB\-md2\fR|\fB\-md4\fR|\fB\-md5\fR|\fB\-sha\fR|\fB\-sha1\fR|\fB\-mdc2\fR|\fB\-ripemd160\fR|\fB...\fR" 4 .IX Item "-md2|-md4|-md5|-sha|-sha1|-mdc2|-ripemd160|..." The message digest to apply to the data file, it supports all the message digest algorithms that are supported by the openssl \fBdgst\fR command. The default is \s-1SHA\-1. \s0(Optional) .IP "\fB\-policy\fR object_id" 4 .IX Item "-policy object_id" The policy that the client expects the \s-1TSA\s0 to use for creating the time stamp token. Either the dotted \s-1OID\s0 notation or \s-1OID\s0 names defined in the config file can be used. If no policy is requested the \s-1TSA\s0 will use its own default policy. (Optional) .IP "\fB\-no_nonce\fR" 4 .IX Item "-no_nonce" No nonce is specified in the request if this option is given. Otherwise a 64 bit long pseudo-random none is included in the request. It is recommended to use nonce to protect against replay-attacks. (Optional) .IP "\fB\-cert\fR" 4 .IX Item "-cert" The \s-1TSA\s0 is expected to include its signing certificate in the response. (Optional) .IP "\fB\-in\fR request.tsq" 4 .IX Item "-in request.tsq" This option specifies a previously created time stamp request in \s-1DER\s0 format that will be printed into the output file. Useful when you need to examine the content of a request in human-readable .Sp format. (Optional) .IP "\fB\-out\fR request.tsq" 4 .IX Item "-out request.tsq" Name of the output file to which the request will be written. Default is stdout. (Optional) .IP "\fB\-text\fR" 4 .IX Item "-text" If this option is specified the output is human-readable text format instead of \s-1DER. \s0(Optional) .SS "Time Stamp Response generation" .IX Subsection "Time Stamp Response generation" A time stamp response (TimeStampResp) consists of a response status and the time stamp token itself (ContentInfo), if the token generation was successful. The \fB\-reply\fR command is for creating a time stamp response or time stamp token based on a request and printing the response/token in human-readable format. If \fB\-token_out\fR is not specified the output is always a time stamp response (TimeStampResp), otherwise it is a time stamp token (ContentInfo). .IP "\fB\-config\fR configfile" 4 .IX Item "-config configfile" The configuration file to use, this option overrides the \&\fB\s-1OPENSSL_CONF\s0\fR environment variable. See \fB\s-1CONFIGURATION FILE OPTIONS\s0\fR for configurable variables. (Optional) .IP "\fB\-section\fR tsa_section" 4 .IX Item "-section tsa_section" The name of the config file section conatining the settings for the response generation. If not specified the default \s-1TSA\s0 section is used, see \fB\s-1CONFIGURATION FILE OPTIONS\s0\fR for details. (Optional) .IP "\fB\-queryfile\fR request.tsq" 4 .IX Item "-queryfile request.tsq" The name of the file containing a \s-1DER\s0 encoded time stamp request. (Optional) .IP "\fB\-passin\fR password_src" 4 .IX Item "-passin password_src" Specifies the password source for the private key of the \s-1TSA.\s0 See \&\fB\s-1PASS PHRASE ARGUMENTS\s0\fR in \fIopenssl\fR\|(1). (Optional) .IP "\fB\-signer\fR tsa_cert.pem" 4 .IX Item "-signer tsa_cert.pem" The signer certificate of the \s-1TSA\s0 in \s-1PEM\s0 format. The \s-1TSA\s0 signing certificate must have exactly one extended key usage assigned to it: timeStamping. The extended key usage must also be critical, otherwise the certificate is going to be refused. Overrides the \fBsigner_cert\fR variable of the config file. (Optional) .IP "\fB\-inkey\fR private.pem" 4 .IX Item "-inkey private.pem" The signer private key of the \s-1TSA\s0 in \s-1PEM\s0 format. Overrides the \&\fBsigner_key\fR config file option. (Optional) .IP "\fB\-chain\fR certs_file.pem" 4 .IX Item "-chain certs_file.pem" The collection of certificates in \s-1PEM\s0 format that will all be included in the response in addition to the signer certificate if the \fB\-cert\fR option was used for the request. This file is supposed to contain the certificate chain for the signer certificate from its issuer upwards. The \fB\-reply\fR command does not build a certificate chain automatically. (Optional) .IP "\fB\-policy\fR object_id" 4 .IX Item "-policy object_id" The default policy to use for the response unless the client explicitly requires a particular \s-1TSA\s0 policy. The \s-1OID\s0 can be specified either in dotted notation or with its name. Overrides the \&\fBdefault_policy\fR config file option. (Optional) .IP "\fB\-in\fR response.tsr" 4 .IX Item "-in response.tsr" Specifies a previously created time stamp response or time stamp token (if \fB\-token_in\fR is also specified) in \s-1DER\s0 format that will be written to the output file. This option does not require a request, it is useful e.g. when you need to examine the content of a response or token or you want to extract the time stamp token from a response. If the input is a token and the output is a time stamp response a default \&'granted' status info is added to the token. (Optional) .IP "\fB\-token_in\fR" 4 .IX Item "-token_in" This flag can be used together with the \fB\-in\fR option and indicates that the input is a \s-1DER\s0 encoded time stamp token (ContentInfo) instead of a time stamp response (TimeStampResp). (Optional) .IP "\fB\-out\fR response.tsr" 4 .IX Item "-out response.tsr" The response is written to this file. The format and content of the file depends on other options (see \fB\-text\fR, \fB\-token_out\fR). The default is stdout. (Optional) .IP "\fB\-token_out\fR" 4 .IX Item "-token_out" The output is a time stamp token (ContentInfo) instead of time stamp response (TimeStampResp). (Optional) .IP "\fB\-text\fR" 4 .IX Item "-text" If this option is specified the output is human-readable text format instead of \s-1DER. \s0(Optional) .IP "\fB\-engine\fR id" 4 .IX Item "-engine id" Specifying an engine (by its unique \fBid\fR string) will cause \fBts\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. Default is builtin. (Optional) .SS "Time Stamp Response verification" .IX Subsection "Time Stamp Response verification" The \fB\-verify\fR command is for verifying if a time stamp response or time stamp token is valid and matches a particular time stamp request or data file. The \fB\-verify\fR command does not use the configuration file. .IP "\fB\-data\fR file_to_hash" 4 .IX Item "-data file_to_hash" The response or token must be verified against file_to_hash. The file is hashed with the message digest algorithm specified in the token. The \fB\-digest\fR and \fB\-queryfile\fR options must not be specified with this one. (Optional) .IP "\fB\-digest\fR digest_bytes" 4 .IX Item "-digest digest_bytes" The response or token must be verified against the message digest specified with this option. The number of bytes must match the message digest algorithm specified in the token. The \fB\-data\fR and \fB\-queryfile\fR options must not be specified with this one. (Optional) .IP "\fB\-queryfile\fR request.tsq" 4 .IX Item "-queryfile request.tsq" The original time stamp request in \s-1DER\s0 format. The \fB\-data\fR and \fB\-digest\fR options must not be specified with this one. (Optional) .IP "\fB\-in\fR response.tsr" 4 .IX Item "-in response.tsr" The time stamp response that needs to be verified in \s-1DER\s0 format. (Mandatory) .IP "\fB\-token_in\fR" 4 .IX Item "-token_in" This flag can be used together with the \fB\-in\fR option and indicates that the input is a \s-1DER\s0 encoded time stamp token (ContentInfo) instead of a time stamp response (TimeStampResp). (Optional) .IP "\fB\-CApath\fR trusted_cert_path" 4 .IX Item "-CApath trusted_cert_path" The name of the directory containing the trused \s-1CA\s0 certificates of the client. See the similar option of \fIverify\fR\|(1) for additional details. Either this option or \fB\-CAfile\fR must be specified. (Optional) .IP "\fB\-CAfile\fR trusted_certs.pem" 4 .IX Item "-CAfile trusted_certs.pem" The name of the file containing a set of trusted self-signed \s-1CA \s0 certificates in \s-1PEM\s0 format. See the similar option of \&\fIverify\fR\|(1) for additional details. Either this option or \fB\-CApath\fR must be specified. (Optional) .IP "\fB\-untrusted\fR cert_file.pem" 4 .IX Item "-untrusted cert_file.pem" Set of additional untrusted certificates in \s-1PEM\s0 format which may be needed when building the certificate chain for the \s-1TSA\s0's signing certificate. This file must contain the \s-1TSA\s0 signing certificate and all intermediate \s-1CA\s0 certificates unless the response includes them. (Optional) .SH "CONFIGURATION FILE OPTIONS" .IX Header "CONFIGURATION FILE OPTIONS" The \fB\-query\fR and \fB\-reply\fR commands make use of a configuration file defined by the \fB\s-1OPENSSL_CONF\s0\fR environment variable. See \fIconfig\fR\|(5) for a general description of the syntax of the config file. The \&\fB\-query\fR command uses only the symbolic \s-1OID\s0 names section and it can work without it. However, the \fB\-reply\fR command needs the config file for its operation. .PP When there is a command line switch equivalent of a variable the switch always overrides the settings in the config file. .IP "\fBtsa\fR section, \fBdefault_tsa\fR" 4 .IX Item "tsa section, default_tsa" This is the main section and it specifies the name of another section that contains all the options for the \fB\-reply\fR command. This default section can be overridden with the \fB\-section\fR command line switch. (Optional) .IP "\fBoid_file\fR" 4 .IX Item "oid_file" See \fIca\fR\|(1) for description. (Optional) .IP "\fBoid_section\fR" 4 .IX Item "oid_section" See \fIca\fR\|(1) for description. (Optional) .IP "\fB\s-1RANDFILE\s0\fR" 4 .IX Item "RANDFILE" See \fIca\fR\|(1) for description. (Optional) .IP "\fBserial\fR" 4 .IX Item "serial" The name of the file containing the hexadecimal serial number of the last time stamp response created. This number is incremented by 1 for each response. If the file does not exist at the time of response generation a new file is created with serial number 1. (Mandatory) .IP "\fBcrypto_device\fR" 4 .IX Item "crypto_device" Specifies the OpenSSL engine that will be set as the default for all available algorithms. The default value is builtin, you can specify any other engines supported by OpenSSL (e.g. use chil for the NCipher \s-1HSM\s0). (Optional) .IP "\fBsigner_cert\fR" 4 .IX Item "signer_cert" \&\s-1TSA\s0 signing certificate in \s-1PEM\s0 format. The same as the \fB\-signer\fR command line option. (Optional) .IP "\fBcerts\fR" 4 .IX Item "certs" A file containing a set of \s-1PEM\s0 encoded certificates that need to be included in the response. The same as the \fB\-chain\fR command line option. (Optional) .IP "\fBsigner_key\fR" 4 .IX Item "signer_key" The private key of the \s-1TSA\s0 in \s-1PEM\s0 format. The same as the \fB\-inkey\fR command line option. (Optional) .IP "\fBdefault_policy\fR" 4 .IX Item "default_policy" The default policy to use when the request does not mandate any policy. The same as the \fB\-policy\fR command line option. (Optional) .IP "\fBother_policies\fR" 4 .IX Item "other_policies" Comma separated list of policies that are also acceptable by the \s-1TSA\s0 and used only if the request explicitly specifies one of them. (Optional) .IP "\fBdigests\fR" 4 .IX Item "digests" The list of message digest algorithms that the \s-1TSA\s0 accepts. At least one algorithm must be specified. (Mandatory) .IP "\fBaccuracy\fR" 4 .IX Item "accuracy" The accuracy of the time source of the \s-1TSA\s0 in seconds, milliseconds and microseconds. E.g. secs:1, millisecs:500, microsecs:100. If any of the components is missing zero is assumed for that field. (Optional) .IP "\fBclock_precision_digits\fR" 4 .IX Item "clock_precision_digits" Specifies the maximum number of digits, which represent the fraction of seconds, that need to be included in the time field. The trailing zeroes must be removed from the time, so there might actually be fewer digits, or no fraction of seconds at all. Supported only on \s-1UNIX\s0 platforms. The maximum value is 6, default is 0. (Optional) .IP "\fBordering\fR" 4 .IX Item "ordering" If this option is yes the responses generated by this \s-1TSA\s0 can always be ordered, even if the time difference between two responses is less than the sum of their accuracies. Default is no. (Optional) .IP "\fBtsa_name\fR" 4 .IX Item "tsa_name" Set this option to yes if the subject name of the \s-1TSA\s0 must be included in the \s-1TSA\s0 name field of the response. Default is no. (Optional) .IP "\fBess_cert_id_chain\fR" 4 .IX Item "ess_cert_id_chain" The SignedData objects created by the \s-1TSA\s0 always contain the certificate identifier of the signing certificate in a signed attribute (see \s-1RFC 2634,\s0 Enhanced Security Services). If this option is set to yes and either the \fBcerts\fR variable or the \fB\-chain\fR option is specified then the certificate identifiers of the chain will also be included in the SigningCertificate signed attribute. If this variable is set to no, only the signing certificate identifier is included. Default is no. (Optional) .SH "ENVIRONMENT VARIABLES" .IX Header "ENVIRONMENT VARIABLES" \&\fB\s-1OPENSSL_CONF\s0\fR contains the path of the configuration file and can be overridden by the \fB\-config\fR command line option. .SH "EXAMPLES" .IX Header "EXAMPLES" All the examples below presume that \fB\s-1OPENSSL_CONF\s0\fR is set to a proper configuration file, e.g. the example configuration file openssl/apps/openssl.cnf will do. .SS "Time Stamp Request" .IX Subsection "Time Stamp Request" To create a time stamp request for design1.txt with \s-1SHA\-1 \s0 without nonce and policy and no certificate is required in the response: .PP .Vb 2 \& openssl ts \-query \-data design1.txt \-no_nonce \e \& \-out design1.tsq .Ve .PP To create a similar time stamp request with specifying the message imprint explicitly: .PP .Vb 2 \& openssl ts \-query \-digest b7e5d3f93198b38379852f2c04e78d73abdd0f4b \e \& \-no_nonce \-out design1.tsq .Ve .PP To print the content of the previous request in human readable format: .PP .Vb 1 \& openssl ts \-query \-in design1.tsq \-text .Ve .PP To create a time stamp request which includes the \s-1MD\-5\s0 digest of design2.txt, requests the signer certificate and nonce, specifies a policy id (assuming the tsa_policy1 name is defined in the \&\s-1OID\s0 section of the config file): .PP .Vb 2 \& openssl ts \-query \-data design2.txt \-md5 \e \& \-policy tsa_policy1 \-cert \-out design2.tsq .Ve .SS "Time Stamp Response" .IX Subsection "Time Stamp Response" Before generating a response a signing certificate must be created for the \s-1TSA\s0 that contains the \fBtimeStamping\fR critical extended key usage extension without any other key usage extensions. You can add the \&'extendedKeyUsage = critical,timeStamping' line to the user certificate section of the config file to generate a proper certificate. See \fIreq\fR\|(1), \&\fIca\fR\|(1), \fIx509\fR\|(1) for instructions. The examples below assume that cacert.pem contains the certificate of the \s-1CA,\s0 tsacert.pem is the signing certificate issued by cacert.pem and tsakey.pem is the private key of the \s-1TSA.\s0 .PP To create a time stamp response for a request: .PP .Vb 2 \& openssl ts \-reply \-queryfile design1.tsq \-inkey tsakey.pem \e \& \-signer tsacert.pem \-out design1.tsr .Ve .PP If you want to use the settings in the config file you could just write: .PP .Vb 1 \& openssl ts \-reply \-queryfile design1.tsq \-out design1.tsr .Ve .PP To print a time stamp reply to stdout in human readable format: .PP .Vb 1 \& openssl ts \-reply \-in design1.tsr \-text .Ve .PP To create a time stamp token instead of time stamp response: .PP .Vb 1 \& openssl ts \-reply \-queryfile design1.tsq \-out design1_token.der \-token_out .Ve .PP To print a time stamp token to stdout in human readable format: .PP .Vb 1 \& openssl ts \-reply \-in design1_token.der \-token_in \-text \-token_out .Ve .PP To extract the time stamp token from a response: .PP .Vb 1 \& openssl ts \-reply \-in design1.tsr \-out design1_token.der \-token_out .Ve .PP To add 'granted' status info to a time stamp token thereby creating a valid response: .PP .Vb 1 \& openssl ts \-reply \-in design1_token.der \-token_in \-out design1.tsr .Ve .SS "Time Stamp Verification" .IX Subsection "Time Stamp Verification" To verify a time stamp reply against a request: .PP .Vb 2 \& openssl ts \-verify \-queryfile design1.tsq \-in design1.tsr \e \& \-CAfile cacert.pem \-untrusted tsacert.pem .Ve .PP To verify a time stamp reply that includes the certificate chain: .PP .Vb 2 \& openssl ts \-verify \-queryfile design2.tsq \-in design2.tsr \e \& \-CAfile cacert.pem .Ve .PP To verify a time stamp token against the original data file: openssl ts \-verify \-data design2.txt \-in design2.tsr \e \-CAfile cacert.pem .PP To verify a time stamp token against a message imprint: openssl ts \-verify \-digest b7e5d3f93198b38379852f2c04e78d73abdd0f4b \e \-in design2.tsr \-CAfile cacert.pem .PP You could also look at the 'test' directory for more examples. .SH "BUGS" .IX Header "BUGS" If you find any bugs or you have suggestions please write to Zoltan Glozik . Known issues: .IP "\(bu" 4 No support for time stamps over \s-1SMTP,\s0 though it is quite easy to implement an automatic e\-mail based \s-1TSA\s0 with \fIprocmail\fR\|(1) and \fIperl\fR\|(1). \s-1HTTP\s0 server support is provided in the form of a separate apache module. \s-1HTTP\s0 client support is provided by \&\fItsget\fR\|(1). Pure \s-1TCP/IP\s0 protocol is not supported. .IP "\(bu" 4 The file containing the last serial number of the \s-1TSA\s0 is not locked when being read or written. This is a problem if more than one instance of \fIopenssl\fR\|(1) is trying to create a time stamp response at the same time. This is not an issue when using the apache server module, it does proper locking. .IP "\(bu" 4 Look for the \s-1FIXME\s0 word in the source files. .IP "\(bu" 4 The source code should really be reviewed by somebody else, too. .IP "\(bu" 4 More testing is needed, I have done only some basic tests (see test/testtsa). .SH "AUTHOR" .IX Header "AUTHOR" Zoltan Glozik , OpenTSA project (http://www.opentsa.org) .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fItsget\fR\|(1), \fIopenssl\fR\|(1), \fIreq\fR\|(1), \&\fIx509\fR\|(1), \fIca\fR\|(1), \fIgenrsa\fR\|(1), \&\fIconfig\fR\|(5) man1/tsget.1000064400000025671147210533270006627 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "TSGET 1" .TH TSGET 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-tsget, tsget \- Time Stamping HTTP/HTTPS client .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBtsget\fR \&\fB\-h\fR server_url [\fB\-e\fR extension] [\fB\-o\fR output] [\fB\-v\fR] [\fB\-d\fR] [\fB\-k\fR private_key.pem] [\fB\-p\fR key_password] [\fB\-c\fR client_cert.pem] [\fB\-C\fR CA_certs.pem] [\fB\-P\fR CA_path] [\fB\-r\fR file:file...] [\fB\-g\fR EGD_socket] [request]... .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBtsget\fR command can be used for sending a time stamp request, as specified in \fB\s-1RFC 3161\s0\fR, to a time stamp server over \s-1HTTP\s0 or \s-1HTTPS\s0 and storing the time stamp response in a file. This tool cannot be used for creating the requests and verifying responses, you can use the OpenSSL \fB\f(BIts\fB\|(1)\fR command to do that. \fBtsget\fR can send several requests to the server without closing the \s-1TCP\s0 connection if more than one requests are specified on the command line. .PP The tool sends the following \s-1HTTP\s0 request for each time stamp request: .PP .Vb 7 \& POST url HTTP/1.1 \& User\-Agent: OpenTSA tsget.pl/ \& Host: : \& Pragma: no\-cache \& Content\-Type: application/timestamp\-query \& Accept: application/timestamp\-reply \& Content\-Length: length of body \& \& ...binary request specified by the user... .Ve .PP \&\fBtsget\fR expects a response of type application/timestamp\-reply, which is written to a file without any interpretation. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-h\fR server_url" 4 .IX Item "-h server_url" The \s-1URL\s0 of the \s-1HTTP/HTTPS\s0 server listening for time stamp requests. .IP "\fB\-e\fR extension" 4 .IX Item "-e extension" If the \fB\-o\fR option is not given this argument specifies the extension of the output files. The base name of the output file will be the same as those of the input files. Default extension is '.tsr'. (Optional) .IP "\fB\-o\fR output" 4 .IX Item "-o output" This option can be specified only when just one request is sent to the server. The time stamp response will be written to the given output file. '\-' means standard output. In case of multiple time stamp requests or the absence of this argument the names of the output files will be derived from the names of the input files and the default or specified extension argument. (Optional) .IP "\fB\-v\fR" 4 .IX Item "-v" The name of the currently processed request is printed on standard error. (Optional) .IP "\fB\-d\fR" 4 .IX Item "-d" Switches on verbose mode for the underlying \fBcurl\fR library. You can see detailed debug messages for the connection. (Optional) .IP "\fB\-k\fR private_key.pem" 4 .IX Item "-k private_key.pem" (\s-1HTTPS\s0) In case of certificate-based client authentication over \s-1HTTPS\s0 must contain the private key of the user. The private key file can optionally be protected by a passphrase. The \fB\-c\fR option must also be specified. (Optional) .IP "\fB\-p\fR key_password" 4 .IX Item "-p key_password" (\s-1HTTPS\s0) Specifies the passphrase for the private key specified by the \fB\-k\fR argument. If this option is omitted and the key is passphrase protected \fBtsget\fR will ask for it. (Optional) .IP "\fB\-c\fR client_cert.pem" 4 .IX Item "-c client_cert.pem" (\s-1HTTPS\s0) In case of certificate-based client authentication over \s-1HTTPS\s0 must contain the X.509 certificate of the user. The \fB\-k\fR option must also be specified. If this option is not specified no certificate-based client authentication will take place. (Optional) .IP "\fB\-C\fR CA_certs.pem" 4 .IX Item "-C CA_certs.pem" (\s-1HTTPS\s0) The trusted \s-1CA\s0 certificate store. The certificate chain of the peer's certificate must include one of the \s-1CA\s0 certificates specified in this file. Either option \fB\-C\fR or option \fB\-P\fR must be given in case of \s-1HTTPS. \s0(Optional) .IP "\fB\-P\fR CA_path" 4 .IX Item "-P CA_path" (\s-1HTTPS\s0) The path containing the trusted \s-1CA\s0 certificates to verify the peer's certificate. The directory must be prepared with the \fBc_rehash\fR OpenSSL utility. Either option \fB\-C\fR or option \fB\-P\fR must be given in case of \&\s-1HTTPS. \s0(Optional) .IP "\fB\-rand\fR file:file..." 4 .IX Item "-rand file:file..." The files containing random data for seeding the random number generator. Multiple files can be specified, the separator is \fB;\fR for MS-Windows, \fB,\fR for \s-1VMS\s0 and \fB:\fR for all other platforms. (Optional) .IP "\fB\-g\fR EGD_socket" 4 .IX Item "-g EGD_socket" The name of an \s-1EGD\s0 socket to get random data from. (Optional) .IP "[request]..." 4 .IX Item "[request]..." List of files containing \fB\s-1RFC 3161\s0\fR DER-encoded time stamp requests. If no requests are specified only one request will be sent to the server and it will be read from the standard input. (Optional) .SH "ENVIRONMENT VARIABLES" .IX Header "ENVIRONMENT VARIABLES" The \fB\s-1TSGET\s0\fR environment variable can optionally contain default arguments. The content of this variable is added to the list of command line arguments. .SH "EXAMPLES" .IX Header "EXAMPLES" The examples below presume that \fBfile1.tsq\fR and \fBfile2.tsq\fR contain valid time stamp requests, tsa.opentsa.org listens at port 8080 for \s-1HTTP\s0 requests and at port 8443 for \s-1HTTPS\s0 requests, the \s-1TSA\s0 service is available at the /tsa absolute path. .PP Get a time stamp response for file1.tsq over \s-1HTTP,\s0 output is written to file1.tsr: .PP .Vb 1 \& tsget \-h http://tsa.opentsa.org:8080/tsa file1.tsq .Ve .PP Get a time stamp response for file1.tsq and file2.tsq over \s-1HTTP\s0 showing progress, output is written to file1.reply and file2.reply respectively: .PP .Vb 2 \& tsget \-h http://tsa.opentsa.org:8080/tsa \-v \-e .reply \e \& file1.tsq file2.tsq .Ve .PP Create a time stamp request, write it to file3.tsq, send it to the server and write the response to file3.tsr: .PP .Vb 3 \& openssl ts \-query \-data file3.txt \-cert | tee file3.tsq \e \& | tsget \-h http://tsa.opentsa.org:8080/tsa \e \& \-o file3.tsr .Ve .PP Get a time stamp response for file1.tsq over \s-1HTTPS\s0 without client authentication: .PP .Vb 2 \& tsget \-h https://tsa.opentsa.org:8443/tsa \e \& \-C cacerts.pem file1.tsq .Ve .PP Get a time stamp response for file1.tsq over \s-1HTTPS\s0 with certificate-based client authentication (it will ask for the passphrase if client_key.pem is protected): .PP .Vb 2 \& tsget \-h https://tsa.opentsa.org:8443/tsa \-C cacerts.pem \e \& \-k client_key.pem \-c client_cert.pem file1.tsq .Ve .PP You can shorten the previous command line if you make use of the \fB\s-1TSGET\s0\fR environment variable. The following commands do the same as the previous example: .PP .Vb 4 \& TSGET=\*(Aq\-h https://tsa.opentsa.org:8443/tsa \-C cacerts.pem \e \& \-k client_key.pem \-c client_cert.pem\*(Aq \& export TSGET \& tsget file1.tsq .Ve .SH "AUTHOR" .IX Header "AUTHOR" Zoltan Glozik , OpenTSA project (http://www.opentsa.org) .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIopenssl\fR\|(1), \fIts\fR\|(1), \fIcurl\fR\|(1), \&\fB\s-1RFC 3161\s0\fR man1/pkcs7.1000064400000015264147210533270006525 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PKCS7 1" .TH PKCS7 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-pkcs7, pkcs7 \- PKCS#7 utility .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBpkcs7\fR [\fB\-inform PEM|DER\fR] [\fB\-outform PEM|DER\fR] [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-print_certs\fR] [\fB\-text\fR] [\fB\-noout\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBpkcs7\fR command processes PKCS#7 files in \s-1DER\s0 or \s-1PEM\s0 format. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-inform DER|PEM\fR" 4 .IX Item "-inform DER|PEM" This specifies the input format. \fB\s-1DER\s0\fR format is \s-1DER\s0 encoded PKCS#7 v1.5 structure.\fB\s-1PEM\s0\fR (the default) is a base64 encoded version of the \s-1DER\s0 form with header and footer lines. .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read from or standard input if this option is not specified. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" specifies the output filename to write to or standard output by default. .IP "\fB\-print_certs\fR" 4 .IX Item "-print_certs" prints out any certificates or CRLs contained in the file. They are preceded by their subject and issuer names in one line format. .IP "\fB\-text\fR" 4 .IX Item "-text" prints out certificates details in full rather than just subject and issuer names. .IP "\fB\-noout\fR" 4 .IX Item "-noout" don't output the encoded version of the PKCS#7 structure (or certificates is \fB\-print_certs\fR is set). .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBpkcs7\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .SH "EXAMPLES" .IX Header "EXAMPLES" Convert a PKCS#7 file from \s-1PEM\s0 to \s-1DER:\s0 .PP .Vb 1 \& openssl pkcs7 \-in file.pem \-outform DER \-out file.der .Ve .PP Output all certificates in a file: .PP .Vb 1 \& openssl pkcs7 \-in file.pem \-print_certs \-out certs.pem .Ve .SH "NOTES" .IX Header "NOTES" The \s-1PEM\s0 PKCS#7 format uses the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN PKCS7\-\-\-\-\- \& \-\-\-\-\-END PKCS7\-\-\-\-\- .Ve .PP For compatibility with some CAs it will also accept: .PP .Vb 2 \& \-\-\-\-\-BEGIN CERTIFICATE\-\-\-\-\- \& \-\-\-\-\-END CERTIFICATE\-\-\-\-\- .Ve .SH "RESTRICTIONS" .IX Header "RESTRICTIONS" There is no option to print out all the fields of a PKCS#7 file. .PP This PKCS#7 routines only understand PKCS#7 v 1.5 as specified in \s-1RFC2315\s0 they cannot currently parse, for example, the new \s-1CMS\s0 as described in \s-1RFC2630.\s0 .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIcrl2pkcs7\fR\|(1) man1/enc.1000064400000035674147210533270006252 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ENC 1" .TH ENC 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-enc, enc \- symmetric cipher routines .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl enc \-ciphername\fR [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-pass arg\fR] [\fB\-e\fR] [\fB\-d\fR] [\fB\-a/\-base64\fR] [\fB\-A\fR] [\fB\-k password\fR] [\fB\-kfile filename\fR] [\fB\-K key\fR] [\fB\-iv \s-1IV\s0\fR] [\fB\-S salt\fR] [\fB\-salt\fR] [\fB\-nosalt\fR] [\fB\-z\fR] [\fB\-md\fR] [\fB\-p\fR] [\fB\-P\fR] [\fB\-bufsize number\fR] [\fB\-nopad\fR] [\fB\-debug\fR] [\fB\-none\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The symmetric cipher commands allow data to be encrypted or decrypted using various block and stream ciphers using keys based on passwords or explicitly provided. Base64 encoding or decoding can also be performed either by itself or in addition to the encryption or decryption. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" the input filename, standard input by default. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" the output filename, standard output by default. .IP "\fB\-pass arg\fR" 4 .IX Item "-pass arg" the password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-salt\fR" 4 .IX Item "-salt" use a salt in the key derivation routines. This is the default. .IP "\fB\-nosalt\fR" 4 .IX Item "-nosalt" don't use a salt in the key derivation routines. This option \fB\s-1SHOULD NOT\s0\fR be used except for test purposes or compatibility with ancient versions of OpenSSL and SSLeay. .IP "\fB\-e\fR" 4 .IX Item "-e" encrypt the input data: this is the default. .IP "\fB\-d\fR" 4 .IX Item "-d" decrypt the input data. .IP "\fB\-a\fR" 4 .IX Item "-a" base64 process the data. This means that if encryption is taking place the data is base64 encoded after encryption. If decryption is set then the input data is base64 decoded before being decrypted. .IP "\fB\-base64\fR" 4 .IX Item "-base64" same as \fB\-a\fR .IP "\fB\-A\fR" 4 .IX Item "-A" if the \fB\-a\fR option is set then base64 process the data on one line. .IP "\fB\-k password\fR" 4 .IX Item "-k password" the password to derive the key from. This is for compatibility with previous versions of OpenSSL. Superseded by the \fB\-pass\fR argument. .IP "\fB\-kfile filename\fR" 4 .IX Item "-kfile filename" read the password to derive the key from the first line of \fBfilename\fR. This is for compatibility with previous versions of OpenSSL. Superseded by the \fB\-pass\fR argument. .IP "\fB\-nosalt\fR" 4 .IX Item "-nosalt" do not use a salt .IP "\fB\-salt\fR" 4 .IX Item "-salt" use salt (randomly generated or provide with \fB\-S\fR option) when encrypting (this is the default). .IP "\fB\-S salt\fR" 4 .IX Item "-S salt" the actual salt to use: this must be represented as a string of hex digits. .IP "\fB\-K key\fR" 4 .IX Item "-K key" the actual key to use: this must be represented as a string comprised only of hex digits. If only the key is specified, the \s-1IV\s0 must additionally specified using the \fB\-iv\fR option. When both a key and a password are specified, the key given with the \fB\-K\fR option will be used and the \s-1IV\s0 generated from the password will be taken. It probably does not make much sense to specify both key and password. .IP "\fB\-iv \s-1IV\s0\fR" 4 .IX Item "-iv IV" the actual \s-1IV\s0 to use: this must be represented as a string comprised only of hex digits. When only the key is specified using the \fB\-K\fR option, the \&\s-1IV\s0 must explicitly be defined. When a password is being specified using one of the other options, the \s-1IV\s0 is generated from this password. .IP "\fB\-p\fR" 4 .IX Item "-p" print out the key and \s-1IV\s0 used. .IP "\fB\-P\fR" 4 .IX Item "-P" print out the key and \s-1IV\s0 used then immediately exit: don't do any encryption or decryption. .IP "\fB\-bufsize number\fR" 4 .IX Item "-bufsize number" set the buffer size for I/O .IP "\fB\-nopad\fR" 4 .IX Item "-nopad" disable standard block padding .IP "\fB\-debug\fR" 4 .IX Item "-debug" debug the BIOs used for I/O. .IP "\fB\-z\fR" 4 .IX Item "-z" Compress or decompress clear text using zlib before encryption or after decryption. This option exists only if OpenSSL with compiled with zlib or zlib-dynamic option. .IP "\fB\-none\fR" 4 .IX Item "-none" Use \s-1NULL\s0 cipher (no encryption or decryption of input). .SH "NOTES" .IX Header "NOTES" The program can be called either as \fBopenssl ciphername\fR or \&\fBopenssl enc \-ciphername\fR. But the first form doesn't work with engine-provided ciphers, because this form is processed before the configuration file is read and any ENGINEs loaded. .PP Engines which provide entirely new encryption algorithms (such as ccgost engine which provides gost89 algorithm) should be configured in the configuration file. Engines, specified in the command line using \-engine options can only be used for hadrware-assisted implementations of ciphers, which are supported by OpenSSL core or other engine, specified in the configuration file. .PP When enc command lists supported ciphers, ciphers provided by engines, specified in the configuration files are listed too. .PP A password will be prompted for to derive the key and \s-1IV\s0 if necessary. .PP The \fB\-salt\fR option should \fB\s-1ALWAYS\s0\fR be used if the key is being derived from a password unless you want compatibility with previous versions of OpenSSL and SSLeay. .PP Without the \fB\-salt\fR option it is possible to perform efficient dictionary attacks on the password and to attack stream cipher encrypted data. The reason for this is that without the salt the same password always generates the same encryption key. When the salt is being used the first eight bytes of the encrypted data are reserved for the salt: it is generated at random when encrypting a file and read from the encrypted file when it is decrypted. .PP Some of the ciphers do not have large keys and others have security implications if not used correctly. A beginner is advised to just use a strong block cipher in \s-1CBC\s0 mode such as bf or des3. .PP All the block ciphers normally use PKCS#5 padding also known as standard block padding: this allows a rudimentary integrity or password check to be performed. However since the chance of random data passing the test is better than 1 in 256 it isn't a very good test. .PP If padding is disabled then the input data must be a multiple of the cipher block length. .PP All \s-1RC2\s0 ciphers have the same key and effective key length. .PP Blowfish and \s-1RC5\s0 algorithms use a 128 bit key. .SH "SUPPORTED CIPHERS" .IX Header "SUPPORTED CIPHERS" Note that some of these ciphers can be disabled at compile time and some are available only if an appropriate engine is configured in the configuration file. The output of the \fBenc\fR command run with unsupported options (for example \fBopenssl enc \-help\fR) includes a list of ciphers, supported by your versesion of OpenSSL, including ones provided by configured engines. .PP The \fBenc\fR program does not support authenticated encryption modes like \s-1CCM\s0 and \s-1GCM.\s0 The utility does not store or retrieve the authentication tag. .PP .Vb 1 \& base64 Base 64 \& \& bf\-cbc Blowfish in CBC mode \& bf Alias for bf\-cbc \& bf\-cfb Blowfish in CFB mode \& bf\-ecb Blowfish in ECB mode \& bf\-ofb Blowfish in OFB mode \& \& cast\-cbc CAST in CBC mode \& cast Alias for cast\-cbc \& cast5\-cbc CAST5 in CBC mode \& cast5\-cfb CAST5 in CFB mode \& cast5\-ecb CAST5 in ECB mode \& cast5\-ofb CAST5 in OFB mode \& \& des\-cbc DES in CBC mode \& des Alias for des\-cbc \& des\-cfb DES in CBC mode \& des\-ofb DES in OFB mode \& des\-ecb DES in ECB mode \& \& des\-ede\-cbc Two key triple DES EDE in CBC mode \& des\-ede Two key triple DES EDE in ECB mode \& des\-ede\-cfb Two key triple DES EDE in CFB mode \& des\-ede\-ofb Two key triple DES EDE in OFB mode \& \& des\-ede3\-cbc Three key triple DES EDE in CBC mode \& des\-ede3 Three key triple DES EDE in ECB mode \& des3 Alias for des\-ede3\-cbc \& des\-ede3\-cfb Three key triple DES EDE CFB mode \& des\-ede3\-ofb Three key triple DES EDE in OFB mode \& \& desx DESX algorithm. \& \& gost89 GOST 28147\-89 in CFB mode (provided by ccgost engine) \& gost89\-cnt \`GOST 28147\-89 in CNT mode (provided by ccgost engine) \& \& idea\-cbc IDEA algorithm in CBC mode \& idea same as idea\-cbc \& idea\-cfb IDEA in CFB mode \& idea\-ecb IDEA in ECB mode \& idea\-ofb IDEA in OFB mode \& \& rc2\-cbc 128 bit RC2 in CBC mode \& rc2 Alias for rc2\-cbc \& rc2\-cfb 128 bit RC2 in CFB mode \& rc2\-ecb 128 bit RC2 in ECB mode \& rc2\-ofb 128 bit RC2 in OFB mode \& rc2\-64\-cbc 64 bit RC2 in CBC mode \& rc2\-40\-cbc 40 bit RC2 in CBC mode \& \& rc4 128 bit RC4 \& rc4\-64 64 bit RC4 \& rc4\-40 40 bit RC4 \& \& rc5\-cbc RC5 cipher in CBC mode \& rc5 Alias for rc5\-cbc \& rc5\-cfb RC5 cipher in CFB mode \& rc5\-ecb RC5 cipher in ECB mode \& rc5\-ofb RC5 cipher in OFB mode \& \& aes\-[128|192|256]\-cbc 128/192/256 bit AES in CBC mode \& aes\-[128|192|256] Alias for aes\-[128|192|256]\-cbc \& aes\-[128|192|256]\-cfb 128/192/256 bit AES in 128 bit CFB mode \& aes\-[128|192|256]\-cfb1 128/192/256 bit AES in 1 bit CFB mode \& aes\-[128|192|256]\-cfb8 128/192/256 bit AES in 8 bit CFB mode \& aes\-[128|192|256]\-ecb 128/192/256 bit AES in ECB mode \& aes\-[128|192|256]\-ofb 128/192/256 bit AES in OFB mode .Ve .SH "EXAMPLES" .IX Header "EXAMPLES" Just base64 encode a binary file: .PP .Vb 1 \& openssl base64 \-in file.bin \-out file.b64 .Ve .PP Decode the same file .PP .Vb 1 \& openssl base64 \-d \-in file.b64 \-out file.bin .Ve .PP Encrypt a file using triple \s-1DES\s0 in \s-1CBC\s0 mode using a prompted password: .PP .Vb 1 \& openssl des3 \-salt \-in file.txt \-out file.des3 .Ve .PP Decrypt a file using a supplied password: .PP .Vb 1 \& openssl des3 \-d \-salt \-in file.des3 \-out file.txt \-k mypassword .Ve .PP Encrypt a file then base64 encode it (so it can be sent via mail for example) using Blowfish in \s-1CBC\s0 mode: .PP .Vb 1 \& openssl bf \-a \-salt \-in file.txt \-out file.bf .Ve .PP Base64 decode a file then decrypt it: .PP .Vb 1 \& openssl bf \-d \-salt \-a \-in file.bf \-out file.txt .Ve .PP Decrypt some data using a supplied 40 bit \s-1RC4\s0 key: .PP .Vb 1 \& openssl rc4\-40 \-in file.rc4 \-out file.txt \-K 0102030405 .Ve .SH "BUGS" .IX Header "BUGS" The \fB\-A\fR option when used with large files doesn't work properly. .PP There should be an option to allow an iteration count to be included. .PP The \fBenc\fR program only supports a fixed number of algorithms with certain parameters. So if, for example, you want to use \s-1RC2\s0 with a 76 bit key or \s-1RC4\s0 with an 84 bit key you can't use this program. man1/crl2pkcs7.1000064400000015440147210533270007304 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CRL2PKCS7 1" .TH CRL2PKCS7 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-crl2pkcs7, crl2pkcs7 \- Create a PKCS#7 structure from a CRL and certificates. .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBcrl2pkcs7\fR [\fB\-inform PEM|DER\fR] [\fB\-outform PEM|DER\fR] [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-certfile filename\fR] [\fB\-nocrl\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBcrl2pkcs7\fR command takes an optional \s-1CRL\s0 and one or more certificates and converts them into a PKCS#7 degenerate \*(L"certificates only\*(R" structure. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-inform DER|PEM\fR" 4 .IX Item "-inform DER|PEM" This specifies the \s-1CRL\s0 input format. \fB\s-1DER\s0\fR format is \s-1DER\s0 encoded \s-1CRL\s0 structure.\fB\s-1PEM\s0\fR (the default) is a base64 encoded version of the \s-1DER\s0 form with header and footer lines. .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the PKCS#7 structure output format. \fB\s-1DER\s0\fR format is \s-1DER\s0 encoded PKCS#7 structure.\fB\s-1PEM\s0\fR (the default) is a base64 encoded version of the \s-1DER\s0 form with header and footer lines. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read a \s-1CRL\s0 from or standard input if this option is not specified. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" specifies the output filename to write the PKCS#7 structure to or standard output by default. .IP "\fB\-certfile filename\fR" 4 .IX Item "-certfile filename" specifies a filename containing one or more certificates in \fB\s-1PEM\s0\fR format. All certificates in the file will be added to the PKCS#7 structure. This option can be used more than once to read certificates form multiple files. .IP "\fB\-nocrl\fR" 4 .IX Item "-nocrl" normally a \s-1CRL\s0 is included in the output file. With this option no \s-1CRL\s0 is included in the output file and a \s-1CRL\s0 is not read from the input file. .SH "EXAMPLES" .IX Header "EXAMPLES" Create a PKCS#7 structure from a certificate and \s-1CRL:\s0 .PP .Vb 1 \& openssl crl2pkcs7 \-in crl.pem \-certfile cert.pem \-out p7.pem .Ve .PP Creates a PKCS#7 structure in \s-1DER\s0 format with no \s-1CRL\s0 from several different certificates: .PP .Vb 2 \& openssl crl2pkcs7 \-nocrl \-certfile newcert.pem \& \-certfile demoCA/cacert.pem \-outform DER \-out p7.der .Ve .SH "NOTES" .IX Header "NOTES" The output file is a PKCS#7 signed data structure containing no signers and just certificates and an optional \s-1CRL.\s0 .PP This utility can be used to send certificates and CAs to Netscape as part of the certificate enrollment process. This involves sending the \s-1DER\s0 encoded output as \s-1MIME\s0 type application/x\-x509\-user\-cert. .PP The \fB\s-1PEM\s0\fR encoded form with the header and footer lines removed can be used to install user certificates and CAs in \s-1MSIE\s0 using the Xenroll control. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIpkcs7\fR\|(1) man1/verify.1000064400000057247147210533270007011 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "VERIFY 1" .TH VERIFY 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-verify, verify \- Utility to verify certificates. .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBverify\fR [\fB\-CApath directory\fR] [\fB\-CAfile file\fR] [\fB\-purpose purpose\fR] [\fB\-policy arg\fR] [\fB\-ignore_critical\fR] [\fB\-attime timestamp\fR] [\fB\-check_ss_sig\fR] [\fB\-CRLfile file\fR] [\fB\-crl_download\fR] [\fB\-crl_check\fR] [\fB\-crl_check_all\fR] [\fB\-policy_check\fR] [\fB\-explicit_policy\fR] [\fB\-inhibit_any\fR] [\fB\-inhibit_map\fR] [\fB\-x509_strict\fR] [\fB\-extended_crl\fR] [\fB\-use_deltas\fR] [\fB\-policy_print\fR] [\fB\-no_alt_chains\fR] [\fB\-allow_proxy_certs\fR] [\fB\-untrusted file\fR] [\fB\-help\fR] [\fB\-issuer_checks\fR] [\fB\-trusted file\fR] [\fB\-verbose\fR] [\fB\-\fR] [certificates] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBverify\fR command verifies certificate chains. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-CApath directory\fR" 4 .IX Item "-CApath directory" A directory of trusted certificates. The certificates should have names of the form: hash.0 or have symbolic links to them of this form (\*(L"hash\*(R" is the hashed certificate subject name: see the \fB\-hash\fR option of the \fBx509\fR utility). Under Unix the \fBc_rehash\fR script will automatically create symbolic links to a directory of certificates. .IP "\fB\-CAfile file\fR A file of trusted certificates. The file should contain multiple certificates in \s-1PEM\s0 format concatenated together." 4 .IX Item "-CAfile file A file of trusted certificates. The file should contain multiple certificates in PEM format concatenated together." .PD 0 .IP "\fB\-attime timestamp\fR" 4 .IX Item "-attime timestamp" .PD Perform validation checks using time specified by \fBtimestamp\fR and not current system time. \fBtimestamp\fR is the number of seconds since 01.01.1970 (\s-1UNIX\s0 time). .IP "\fB\-check_ss_sig\fR" 4 .IX Item "-check_ss_sig" Verify the signature on the self-signed root \s-1CA.\s0 This is disabled by default because it doesn't add any security. .IP "\fB\-CRLfile file\fR" 4 .IX Item "-CRLfile file" File containing one or more \s-1CRL\s0's (in \s-1PEM\s0 format) to load. .IP "\fB\-crl_download\fR" 4 .IX Item "-crl_download" Attempt to download \s-1CRL\s0 information for this certificate. .IP "\fB\-crl_check\fR" 4 .IX Item "-crl_check" Checks end entity certificate validity by attempting to look up a valid \s-1CRL.\s0 If a valid \s-1CRL\s0 cannot be found an error occurs. .IP "\fB\-untrusted file\fR" 4 .IX Item "-untrusted file" A file of untrusted certificates. The file should contain multiple certificates in \s-1PEM\s0 format concatenated together. .IP "\fB\-purpose purpose\fR" 4 .IX Item "-purpose purpose" The intended use for the certificate. If this option is not specified, \&\fBverify\fR will not consider certificate purpose during chain verification. Currently accepted uses are \fBsslclient\fR, \fBsslserver\fR, \fBnssslserver\fR, \&\fBsmimesign\fR, \fBsmimeencrypt\fR. See the \fB\s-1VERIFY OPERATION\s0\fR section for more information. .IP "\fB\-help\fR" 4 .IX Item "-help" Print out a usage message. .IP "\fB\-verbose\fR" 4 .IX Item "-verbose" Print extra information about the operations being performed. .IP "\fB\-issuer_checks\fR" 4 .IX Item "-issuer_checks" Print out diagnostics relating to searches for the issuer certificate of the current certificate. This shows why each candidate issuer certificate was rejected. The presence of rejection messages does not itself imply that anything is wrong; during the normal verification process, several rejections may take place. .IP "\fB\-policy arg\fR" 4 .IX Item "-policy arg" Enable policy processing and add \fBarg\fR to the user-initial-policy-set (see \&\s-1RFC5280\s0). The policy \fBarg\fR can be an object name an \s-1OID\s0 in numeric form. This argument can appear more than once. .IP "\fB\-policy_check\fR" 4 .IX Item "-policy_check" Enables certificate policy processing. .IP "\fB\-explicit_policy\fR" 4 .IX Item "-explicit_policy" Set policy variable require-explicit-policy (see \s-1RFC5280\s0). .IP "\fB\-inhibit_any\fR" 4 .IX Item "-inhibit_any" Set policy variable inhibit-any-policy (see \s-1RFC5280\s0). .IP "\fB\-inhibit_map\fR" 4 .IX Item "-inhibit_map" Set policy variable inhibit-policy-mapping (see \s-1RFC5280\s0). .IP "\fB\-no_alt_chains\fR" 4 .IX Item "-no_alt_chains" When building a certificate chain, if the first certificate chain found is not trusted, then OpenSSL will continue to check to see if an alternative chain can be found that is trusted. With this option that behaviour is suppressed so that only the first chain found is ever used. Using this option will force the behaviour to match that of previous OpenSSL versions. .IP "\fB\-allow_proxy_certs\fR" 4 .IX Item "-allow_proxy_certs" Allow the verification of proxy certificates. .IP "\fB\-trusted file\fR" 4 .IX Item "-trusted file" A file of additional trusted certificates. The file should contain multiple certificates in \s-1PEM\s0 format concatenated together. .IP "\fB\-policy_print\fR" 4 .IX Item "-policy_print" Print out diagnostics related to policy processing. .IP "\fB\-crl_check\fR" 4 .IX Item "-crl_check" Checks end entity certificate validity by attempting to look up a valid \s-1CRL.\s0 If a valid \s-1CRL\s0 cannot be found an error occurs. .IP "\fB\-crl_check_all\fR" 4 .IX Item "-crl_check_all" Checks the validity of \fBall\fR certificates in the chain by attempting to look up valid CRLs. .IP "\fB\-ignore_critical\fR" 4 .IX Item "-ignore_critical" Normally if an unhandled critical extension is present which is not supported by OpenSSL the certificate is rejected (as required by \s-1RFC5280\s0). If this option is set critical extensions are ignored. .IP "\fB\-x509_strict\fR" 4 .IX Item "-x509_strict" For strict X.509 compliance, disable non-compliant workarounds for broken certificates. .IP "\fB\-extended_crl\fR" 4 .IX Item "-extended_crl" Enable extended \s-1CRL\s0 features such as indirect CRLs and alternate \s-1CRL\s0 signing keys. .IP "\fB\-use_deltas\fR" 4 .IX Item "-use_deltas" Enable support for delta CRLs. .IP "\fB\-check_ss_sig\fR" 4 .IX Item "-check_ss_sig" Verify the signature on the self-signed root \s-1CA.\s0 This is disabled by default because it doesn't add any security. .IP "\fB\-\fR" 4 .IX Item "-" Indicates the last option. All arguments following this are assumed to be certificate files. This is useful if the first certificate filename begins with a \fB\-\fR. .IP "\fBcertificates\fR" 4 .IX Item "certificates" One or more certificates to verify. If no certificates are given, \fBverify\fR will attempt to read a certificate from standard input. Certificates must be in \s-1PEM\s0 format. .SH "VERIFY OPERATION" .IX Header "VERIFY OPERATION" The \fBverify\fR program uses the same functions as the internal \s-1SSL\s0 and S/MIME verification, therefore this description applies to these verify operations too. .PP There is one crucial difference between the verify operations performed by the \fBverify\fR program: wherever possible an attempt is made to continue after an error whereas normally the verify operation would halt on the first error. This allows all the problems with a certificate chain to be determined. .PP The verify operation consists of a number of separate steps. .PP Firstly a certificate chain is built up starting from the supplied certificate and ending in the root \s-1CA.\s0 It is an error if the whole chain cannot be built up. The chain is built up by looking up the issuers certificate of the current certificate. If a certificate is found which is its own issuer it is assumed to be the root \s-1CA.\s0 .PP The process of 'looking up the issuers certificate' itself involves a number of steps. In versions of OpenSSL before 0.9.5a the first certificate whose subject name matched the issuer of the current certificate was assumed to be the issuers certificate. In OpenSSL 0.9.6 and later all certificates whose subject name matches the issuer name of the current certificate are subject to further tests. The relevant authority key identifier components of the current certificate (if present) must match the subject key identifier (if present) and issuer and serial number of the candidate issuer, in addition the keyUsage extension of the candidate issuer (if present) must permit certificate signing. .PP The lookup first looks in the list of untrusted certificates and if no match is found the remaining lookups are from the trusted certificates. The root \s-1CA\s0 is always looked up in the trusted certificate list: if the certificate to verify is a root certificate then an exact match must be found in the trusted list. .PP The second operation is to check every untrusted certificate's extensions for consistency with the supplied purpose. If the \fB\-purpose\fR option is not included then no checks are done. The supplied or \*(L"leaf\*(R" certificate must have extensions compatible with the supplied purpose and all other certificates must also be valid \&\s-1CA\s0 certificates. The precise extensions required are described in more detail in the \fB\s-1CERTIFICATE EXTENSIONS\s0\fR section of the \fBx509\fR utility. .PP The third operation is to check the trust settings on the root \s-1CA.\s0 The root \&\s-1CA\s0 should be trusted for the supplied purpose. For compatibility with previous versions of SSLeay and OpenSSL a certificate with no trust settings is considered to be valid for all purposes. .PP The final operation is to check the validity of the certificate chain. The validity period is checked against the current system time and the notBefore and notAfter dates in the certificate. The certificate signatures are also checked at this point. .PP If all operations complete successfully then certificate is considered valid. If any operation fails then the certificate is not valid. .SH "DIAGNOSTICS" .IX Header "DIAGNOSTICS" When a verify operation fails the output messages can be somewhat cryptic. The general form of the error message is: .PP .Vb 2 \& server.pem: /C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test CA (1024 bit) \& error 24 at 1 depth lookup:invalid CA certificate .Ve .PP The first line contains the name of the certificate being verified followed by the subject name of the certificate. The second line contains the error number and the depth. The depth is number of the certificate being verified when a problem was detected starting with zero for the certificate being verified itself then 1 for the \s-1CA\s0 that signed the certificate and so on. Finally a text version of the error number is presented. .PP An exhaustive list of the error codes and messages is shown below, this also includes the name of the error code as defined in the header file x509_vfy.h Some of the error codes are defined but never returned: these are described as \*(L"unused\*(R". .IP "\fB0 X509_V_OK: ok\fR" 4 .IX Item "0 X509_V_OK: ok" the operation was successful. .IP "\fB2 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: unable to get issuer certificate\fR" 4 .IX Item "2 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: unable to get issuer certificate" the issuer certificate of a looked up certificate could not be found. This normally means the list of trusted certificates is not complete. .IP "\fB3 X509_V_ERR_UNABLE_TO_GET_CRL: unable to get certificate \s-1CRL\s0\fR" 4 .IX Item "3 X509_V_ERR_UNABLE_TO_GET_CRL: unable to get certificate CRL" the \s-1CRL\s0 of a certificate could not be found. .IP "\fB4 X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE: unable to decrypt certificate's signature\fR" 4 .IX Item "4 X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE: unable to decrypt certificate's signature" the certificate signature could not be decrypted. This means that the actual signature value could not be determined rather than it not matching the expected value, this is only meaningful for \s-1RSA\s0 keys. .IP "\fB5 X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE: unable to decrypt \s-1CRL\s0's signature\fR" 4 .IX Item "5 X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE: unable to decrypt CRL's signature" the \s-1CRL\s0 signature could not be decrypted: this means that the actual signature value could not be determined rather than it not matching the expected value. Unused. .IP "\fB6 X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY: unable to decode issuer public key\fR" 4 .IX Item "6 X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY: unable to decode issuer public key" the public key in the certificate SubjectPublicKeyInfo could not be read. .IP "\fB7 X509_V_ERR_CERT_SIGNATURE_FAILURE: certificate signature failure\fR" 4 .IX Item "7 X509_V_ERR_CERT_SIGNATURE_FAILURE: certificate signature failure" the signature of the certificate is invalid. .IP "\fB8 X509_V_ERR_CRL_SIGNATURE_FAILURE: \s-1CRL\s0 signature failure\fR" 4 .IX Item "8 X509_V_ERR_CRL_SIGNATURE_FAILURE: CRL signature failure" the signature of the certificate is invalid. .IP "\fB9 X509_V_ERR_CERT_NOT_YET_VALID: certificate is not yet valid\fR" 4 .IX Item "9 X509_V_ERR_CERT_NOT_YET_VALID: certificate is not yet valid" the certificate is not yet valid: the notBefore date is after the current time. .IP "\fB10 X509_V_ERR_CERT_HAS_EXPIRED: certificate has expired\fR" 4 .IX Item "10 X509_V_ERR_CERT_HAS_EXPIRED: certificate has expired" the certificate has expired: that is the notAfter date is before the current time. .IP "\fB11 X509_V_ERR_CRL_NOT_YET_VALID: \s-1CRL\s0 is not yet valid\fR" 4 .IX Item "11 X509_V_ERR_CRL_NOT_YET_VALID: CRL is not yet valid" the \s-1CRL\s0 is not yet valid. .IP "\fB12 X509_V_ERR_CRL_HAS_EXPIRED: \s-1CRL\s0 has expired\fR" 4 .IX Item "12 X509_V_ERR_CRL_HAS_EXPIRED: CRL has expired" the \s-1CRL\s0 has expired. .IP "\fB13 X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD: format error in certificate's notBefore field\fR" 4 .IX Item "13 X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD: format error in certificate's notBefore field" the certificate notBefore field contains an invalid time. .IP "\fB14 X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD: format error in certificate's notAfter field\fR" 4 .IX Item "14 X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD: format error in certificate's notAfter field" the certificate notAfter field contains an invalid time. .IP "\fB15 X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD: format error in \s-1CRL\s0's lastUpdate field\fR" 4 .IX Item "15 X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD: format error in CRL's lastUpdate field" the \s-1CRL\s0 lastUpdate field contains an invalid time. .IP "\fB16 X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD: format error in \s-1CRL\s0's nextUpdate field\fR" 4 .IX Item "16 X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD: format error in CRL's nextUpdate field" the \s-1CRL\s0 nextUpdate field contains an invalid time. .IP "\fB17 X509_V_ERR_OUT_OF_MEM: out of memory\fR" 4 .IX Item "17 X509_V_ERR_OUT_OF_MEM: out of memory" an error occurred trying to allocate memory. This should never happen. .IP "\fB18 X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT: self signed certificate\fR" 4 .IX Item "18 X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT: self signed certificate" the passed certificate is self signed and the same certificate cannot be found in the list of trusted certificates. .IP "\fB19 X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN: self signed certificate in certificate chain\fR" 4 .IX Item "19 X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN: self signed certificate in certificate chain" the certificate chain could be built up using the untrusted certificates but the root could not be found locally. .IP "\fB20 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY: unable to get local issuer certificate\fR" 4 .IX Item "20 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY: unable to get local issuer certificate" the issuer certificate could not be found: this occurs if the issuer certificate of an untrusted certificate cannot be found. .IP "\fB21 X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE: unable to verify the first certificate\fR" 4 .IX Item "21 X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE: unable to verify the first certificate" no signatures could be verified because the chain contains only one certificate and it is not self signed. .IP "\fB22 X509_V_ERR_CERT_CHAIN_TOO_LONG: certificate chain too long\fR" 4 .IX Item "22 X509_V_ERR_CERT_CHAIN_TOO_LONG: certificate chain too long" the certificate chain length is greater than the supplied maximum depth. Unused. .IP "\fB23 X509_V_ERR_CERT_REVOKED: certificate revoked\fR" 4 .IX Item "23 X509_V_ERR_CERT_REVOKED: certificate revoked" the certificate has been revoked. .IP "\fB24 X509_V_ERR_INVALID_CA: invalid \s-1CA\s0 certificate\fR" 4 .IX Item "24 X509_V_ERR_INVALID_CA: invalid CA certificate" a \s-1CA\s0 certificate is invalid. Either it is not a \s-1CA\s0 or its extensions are not consistent with the supplied purpose. .IP "\fB25 X509_V_ERR_PATH_LENGTH_EXCEEDED: path length constraint exceeded\fR" 4 .IX Item "25 X509_V_ERR_PATH_LENGTH_EXCEEDED: path length constraint exceeded" the basicConstraints pathlength parameter has been exceeded. .IP "\fB26 X509_V_ERR_INVALID_PURPOSE: unsupported certificate purpose\fR" 4 .IX Item "26 X509_V_ERR_INVALID_PURPOSE: unsupported certificate purpose" the supplied certificate cannot be used for the specified purpose. .IP "\fB27 X509_V_ERR_CERT_UNTRUSTED: certificate not trusted\fR" 4 .IX Item "27 X509_V_ERR_CERT_UNTRUSTED: certificate not trusted" the root \s-1CA\s0 is not marked as trusted for the specified purpose. .IP "\fB28 X509_V_ERR_CERT_REJECTED: certificate rejected\fR" 4 .IX Item "28 X509_V_ERR_CERT_REJECTED: certificate rejected" the root \s-1CA\s0 is marked to reject the specified purpose. .IP "\fB29 X509_V_ERR_SUBJECT_ISSUER_MISMATCH: subject issuer mismatch\fR" 4 .IX Item "29 X509_V_ERR_SUBJECT_ISSUER_MISMATCH: subject issuer mismatch" the current candidate issuer certificate was rejected because its subject name did not match the issuer name of the current certificate. Only displayed when the \fB\-issuer_checks\fR option is set. .IP "\fB30 X509_V_ERR_AKID_SKID_MISMATCH: authority and subject key identifier mismatch\fR" 4 .IX Item "30 X509_V_ERR_AKID_SKID_MISMATCH: authority and subject key identifier mismatch" the current candidate issuer certificate was rejected because its subject key identifier was present and did not match the authority key identifier current certificate. Only displayed when the \fB\-issuer_checks\fR option is set. .IP "\fB31 X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH: authority and issuer serial number mismatch\fR" 4 .IX Item "31 X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH: authority and issuer serial number mismatch" the current candidate issuer certificate was rejected because its issuer name and serial number was present and did not match the authority key identifier of the current certificate. Only displayed when the \fB\-issuer_checks\fR option is set. .IP "\fB32 X509_V_ERR_KEYUSAGE_NO_CERTSIGN:key usage does not include certificate signing\fR" 4 .IX Item "32 X509_V_ERR_KEYUSAGE_NO_CERTSIGN:key usage does not include certificate signing" the current candidate issuer certificate was rejected because its keyUsage extension does not permit certificate signing. .IP "\fB50 X509_V_ERR_APPLICATION_VERIFICATION: application verification failure\fR" 4 .IX Item "50 X509_V_ERR_APPLICATION_VERIFICATION: application verification failure" an application specific error. Unused. .SH "BUGS" .IX Header "BUGS" Although the issuer checks are a considerable improvement over the old technique they still suffer from limitations in the underlying X509_LOOKUP \s-1API.\s0 One consequence of this is that trusted certificates with matching subject name must either appear in a file (as specified by the \&\fB\-CAfile\fR option) or a directory (as specified by \fB\-CApath\fR. If they occur in both then only the certificates in the file will be recognised. .PP Previous versions of OpenSSL assume certificates with matching subject name are identical and mishandled them. .PP Previous versions of this documentation swapped the meaning of the \&\fBX509_V_ERR_UNABLE_TO_GET_ISSUER_CERT\fR and \&\fB20 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY\fR error codes. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIx509\fR\|(1) .SH "HISTORY" .IX Header "HISTORY" The \-no_alt_chains options was first added to OpenSSL 1.0.2b. man1/errstr.1000064400000011303147210533270007005 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ERRSTR 1" .TH ERRSTR 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-errstr, errstr \- lookup error codes .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl errstr error_code\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" Sometimes an application will not load error message and only numerical forms will be available. The \fBerrstr\fR utility can be used to display the meaning of the hex code. The hex code is the hex digits after the second colon. .SH "EXAMPLE" .IX Header "EXAMPLE" The error code: .PP .Vb 1 \& 27594:error:2006D080:lib(32):func(109):reason(128):bss_file.c:107: .Ve .PP can be displayed with: .PP .Vb 1 \& openssl errstr 2006D080 .Ve .PP to produce the error message: .PP .Vb 1 \& error:2006D080:BIO routines:BIO_new_file:no such file .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIerr\fR\|(3), \&\fIERR_load_crypto_strings\fR\|(3), \&\fISSL_load_error_strings\fR\|(3) man1/asn1parse.1000064400000023626147210533270007374 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ASN1PARSE 1" .TH ASN1PARSE 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-asn1parse, asn1parse \- ASN.1 parsing tool .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBasn1parse\fR [\fB\-inform PEM|DER\fR] [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-noout\fR] [\fB\-offset number\fR] [\fB\-length number\fR] [\fB\-i\fR] [\fB\-oid filename\fR] [\fB\-dump\fR] [\fB\-dlimit num\fR] [\fB\-strparse offset\fR] [\fB\-genstr string\fR] [\fB\-genconf file\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBasn1parse\fR command is a diagnostic utility that can parse \s-1ASN.1\s0 structures. It can also be used to extract data from \s-1ASN.1\s0 formatted data. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-inform\fR \fBDER|PEM\fR" 4 .IX Item "-inform DER|PEM" the input format. \fB\s-1DER\s0\fR is binary format and \fB\s-1PEM\s0\fR (the default) is base64 encoded. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" the input file, default is standard input .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" output file to place the \s-1DER\s0 encoded data into. If this option is not present then no data will be output. This is most useful when combined with the \fB\-strparse\fR option. .IP "\fB\-noout\fR" 4 .IX Item "-noout" don't output the parsed version of the input file. .IP "\fB\-offset number\fR" 4 .IX Item "-offset number" starting offset to begin parsing, default is start of file. .IP "\fB\-length number\fR" 4 .IX Item "-length number" number of bytes to parse, default is until end of file. .IP "\fB\-i\fR" 4 .IX Item "-i" indents the output according to the \*(L"depth\*(R" of the structures. .IP "\fB\-oid filename\fR" 4 .IX Item "-oid filename" a file containing additional \s-1OBJECT\s0 IDENTIFIERs (OIDs). The format of this file is described in the \s-1NOTES\s0 section below. .IP "\fB\-dump\fR" 4 .IX Item "-dump" dump unknown data in hex format. .IP "\fB\-dlimit num\fR" 4 .IX Item "-dlimit num" like \fB\-dump\fR, but only the first \fBnum\fR bytes are output. .IP "\fB\-strparse offset\fR" 4 .IX Item "-strparse offset" parse the contents octets of the \s-1ASN.1\s0 object starting at \fBoffset\fR. This option can be used multiple times to \*(L"drill down\*(R" into a nested structure. .IP "\fB\-genstr string\fR, \fB\-genconf file\fR" 4 .IX Item "-genstr string, -genconf file" generate encoded data based on \fBstring\fR, \fBfile\fR or both using \&\fIASN1_generate_nconf\fR\|(3) format. If \fBfile\fR only is present then the string is obtained from the default section using the name \&\fBasn1\fR. The encoded data is passed through the \s-1ASN1\s0 parser and printed out as though it came from a file, the contents can thus be examined and written to a file using the \fBout\fR option. .SS "\s-1OUTPUT\s0" .IX Subsection "OUTPUT" The output will typically contain lines like this: .PP .Vb 1 \& 0:d=0 hl=4 l= 681 cons: SEQUENCE .Ve .PP \&..... .PP .Vb 10 \& 229:d=3 hl=3 l= 141 prim: BIT STRING \& 373:d=2 hl=3 l= 162 cons: cont [ 3 ] \& 376:d=3 hl=3 l= 159 cons: SEQUENCE \& 379:d=4 hl=2 l= 29 cons: SEQUENCE \& 381:d=5 hl=2 l= 3 prim: OBJECT :X509v3 Subject Key Identifier \& 386:d=5 hl=2 l= 22 prim: OCTET STRING \& 410:d=4 hl=2 l= 112 cons: SEQUENCE \& 412:d=5 hl=2 l= 3 prim: OBJECT :X509v3 Authority Key Identifier \& 417:d=5 hl=2 l= 105 prim: OCTET STRING \& 524:d=4 hl=2 l= 12 cons: SEQUENCE .Ve .PP \&..... .PP This example is part of a self signed certificate. Each line starts with the offset in decimal. \fBd=XX\fR specifies the current depth. The depth is increased within the scope of any \s-1SET\s0 or \s-1SEQUENCE. \s0\fBhl=XX\fR gives the header length (tag and length octets) of the current type. \fBl=XX\fR gives the length of the contents octets. .PP The \fB\-i\fR option can be used to make the output more readable. .PP Some knowledge of the \s-1ASN.1\s0 structure is needed to interpret the output. .PP In this example the \s-1BIT STRING\s0 at offset 229 is the certificate public key. The contents octets of this will contain the public key information. This can be examined using the option \fB\-strparse 229\fR to yield: .PP .Vb 3 \& 0:d=0 hl=3 l= 137 cons: SEQUENCE \& 3:d=1 hl=3 l= 129 prim: INTEGER :E5D21E1F5C8D208EA7A2166C7FAF9F6BDF2059669C60876DDB70840F1A5AAFA59699FE471F379F1DD6A487E7D5409AB6A88D4A9746E24B91D8CF55DB3521015460C8EDE44EE8A4189F7A7BE77D6CD3A9AF2696F486855CF58BF0EDF2B4068058C7A947F52548DDF7E15E96B385F86422BEA9064A3EE9E1158A56E4A6F47E5897 \& 135:d=1 hl=2 l= 3 prim: INTEGER :010001 .Ve .SH "NOTES" .IX Header "NOTES" If an \s-1OID\s0 is not part of OpenSSL's internal table it will be represented in numerical form (for example 1.2.3.4). The file passed to the \fB\-oid\fR option allows additional OIDs to be included. Each line consists of three columns, the first column is the \s-1OID\s0 in numerical format and should be followed by white space. The second column is the \*(L"short name\*(R" which is a single word followed by white space. The final column is the rest of the line and is the \&\*(L"long name\*(R". \fBasn1parse\fR displays the long name. Example: .PP \&\f(CW\*(C`1.2.3.4 shortName A long name\*(C'\fR .SH "EXAMPLES" .IX Header "EXAMPLES" Parse a file: .PP .Vb 1 \& openssl asn1parse \-in file.pem .Ve .PP Parse a \s-1DER\s0 file: .PP .Vb 1 \& openssl asn1parse \-inform DER \-in file.der .Ve .PP Generate a simple UTF8String: .PP .Vb 1 \& openssl asn1parse \-genstr \*(AqUTF8:Hello World\*(Aq .Ve .PP Generate and write out a UTF8String, don't print parsed output: .PP .Vb 1 \& openssl asn1parse \-genstr \*(AqUTF8:Hello World\*(Aq \-noout \-out utf8.der .Ve .PP Generate using a config file: .PP .Vb 1 \& openssl asn1parse \-genconf asn1.cnf \-noout \-out asn1.der .Ve .PP Example config file: .PP .Vb 1 \& asn1=SEQUENCE:seq_sect \& \& [seq_sect] \& \& field1=BOOL:TRUE \& field2=EXP:0, UTF8:some random string .Ve .SH "BUGS" .IX Header "BUGS" There should be options to change the format of output lines. The output of some \&\s-1ASN.1\s0 types is not well handled (if at all). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIASN1_generate_nconf\fR\|(3) man1/pkcs12.1000064400000042461147210533270006600 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PKCS12 1" .TH PKCS12 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-pkcs12, pkcs12 \- PKCS#12 file utility .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBpkcs12\fR [\fB\-export\fR] [\fB\-chain\fR] [\fB\-inkey filename\fR] [\fB\-certfile filename\fR] [\fB\-name name\fR] [\fB\-caname name\fR] [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-noout\fR] [\fB\-nomacver\fR] [\fB\-nocerts\fR] [\fB\-clcerts\fR] [\fB\-cacerts\fR] [\fB\-nokeys\fR] [\fB\-info\fR] [\fB\-des | \-des3 | \-idea | \-aes128 | \-aes192 | \-aes256 | \-camellia128 | \-camellia192 | \-camellia256 | \-nodes\fR] [\fB\-noiter\fR] [\fB\-maciter | \-nomaciter | \-nomac\fR] [\fB\-twopass\fR] [\fB\-descert\fR] [\fB\-certpbe cipher\fR] [\fB\-keypbe cipher\fR] [\fB\-macalg digest\fR] [\fB\-keyex\fR] [\fB\-keysig\fR] [\fB\-password arg\fR] [\fB\-passin arg\fR] [\fB\-passout arg\fR] [\fB\-rand file(s)\fR] [\fB\-CAfile file\fR] [\fB\-CApath dir\fR] [\fB\-CSP name\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBpkcs12\fR command allows PKCS#12 files (sometimes referred to as \&\s-1PFX\s0 files) to be created and parsed. PKCS#12 files are used by several programs including Netscape, \s-1MSIE\s0 and \s-1MS\s0 Outlook. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" There are a lot of options the meaning of some depends of whether a PKCS#12 file is being created or parsed. By default a PKCS#12 file is parsed. A PKCS#12 file can be created by using the \fB\-export\fR option (see below). .SH "PARSING OPTIONS" .IX Header "PARSING OPTIONS" .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies filename of the PKCS#12 file to be parsed. Standard input is used by default. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" The filename to write certificates and private keys to, standard output by default. They are all written in \s-1PEM\s0 format. .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the PKCS#12 file (i.e. input file) password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \&\fIopenssl\fR\|(1). .IP "\fB\-passout arg\fR" 4 .IX Item "-passout arg" pass phrase source to encrypt any outputted private keys with. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-password arg\fR" 4 .IX Item "-password arg" With \-export, \-password is equivalent to \-passout. Otherwise, \-password is equivalent to \-passin. .IP "\fB\-noout\fR" 4 .IX Item "-noout" this option inhibits output of the keys and certificates to the output file version of the PKCS#12 file. .IP "\fB\-clcerts\fR" 4 .IX Item "-clcerts" only output client certificates (not \s-1CA\s0 certificates). .IP "\fB\-cacerts\fR" 4 .IX Item "-cacerts" only output \s-1CA\s0 certificates (not client certificates). .IP "\fB\-nocerts\fR" 4 .IX Item "-nocerts" no certificates at all will be output. .IP "\fB\-nokeys\fR" 4 .IX Item "-nokeys" no private keys will be output. .IP "\fB\-info\fR" 4 .IX Item "-info" output additional information about the PKCS#12 file structure, algorithms used and iteration counts. .IP "\fB\-des\fR" 4 .IX Item "-des" use \s-1DES\s0 to encrypt private keys before outputting. .IP "\fB\-des3\fR" 4 .IX Item "-des3" use triple \s-1DES\s0 to encrypt private keys before outputting, this is the default. .IP "\fB\-idea\fR" 4 .IX Item "-idea" use \s-1IDEA\s0 to encrypt private keys before outputting. .IP "\fB\-aes128\fR, \fB\-aes192\fR, \fB\-aes256\fR" 4 .IX Item "-aes128, -aes192, -aes256" use \s-1AES\s0 to encrypt private keys before outputting. .IP "\fB\-camellia128\fR, \fB\-camellia192\fR, \fB\-camellia256\fR" 4 .IX Item "-camellia128, -camellia192, -camellia256" use Camellia to encrypt private keys before outputting. .IP "\fB\-nodes\fR" 4 .IX Item "-nodes" don't encrypt the private keys at all. .IP "\fB\-nomacver\fR" 4 .IX Item "-nomacver" don't attempt to verify the integrity \s-1MAC\s0 before reading the file. .IP "\fB\-twopass\fR" 4 .IX Item "-twopass" prompt for separate integrity and encryption passwords: most software always assumes these are the same so this option will render such PKCS#12 files unreadable. .SH "FILE CREATION OPTIONS" .IX Header "FILE CREATION OPTIONS" .IP "\fB\-export\fR" 4 .IX Item "-export" This option specifies that a PKCS#12 file will be created rather than parsed. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" This specifies filename to write the PKCS#12 file to. Standard output is used by default. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" The filename to read certificates and private keys from, standard input by default. They must all be in \s-1PEM\s0 format. The order doesn't matter but one private key and its corresponding certificate should be present. If additional certificates are present they will also be included in the PKCS#12 file. .IP "\fB\-inkey filename\fR" 4 .IX Item "-inkey filename" file to read private key from. If not present then a private key must be present in the input file. .IP "\fB\-name friendlyname\fR" 4 .IX Item "-name friendlyname" This specifies the \*(L"friendly name\*(R" for the certificate and private key. This name is typically displayed in list boxes by software importing the file. .IP "\fB\-certfile filename\fR" 4 .IX Item "-certfile filename" A filename to read additional certificates from. .IP "\fB\-caname friendlyname\fR" 4 .IX Item "-caname friendlyname" This specifies the \*(L"friendly name\*(R" for other certificates. This option may be used multiple times to specify names for all certificates in the order they appear. Netscape ignores friendly names on other certificates whereas \s-1MSIE\s0 displays them. .IP "\fB\-pass arg\fR, \fB\-passout arg\fR" 4 .IX Item "-pass arg, -passout arg" the PKCS#12 file (i.e. output file) password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \&\fIopenssl\fR\|(1). .IP "\fB\-passin password\fR" 4 .IX Item "-passin password" pass phrase source to decrypt any input private keys with. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \&\fIopenssl\fR\|(1). .IP "\fB\-chain\fR" 4 .IX Item "-chain" if this option is present then an attempt is made to include the entire certificate chain of the user certificate. The standard \s-1CA\s0 store is used for this search. If the search fails it is considered a fatal error. .IP "\fB\-descert\fR" 4 .IX Item "-descert" encrypt the certificate using triple \s-1DES,\s0 this may render the PKCS#12 file unreadable by some \*(L"export grade\*(R" software. By default the private key is encrypted using triple \s-1DES\s0 and the certificate using 40 bit \s-1RC2.\s0 .IP "\fB\-keypbe alg\fR, \fB\-certpbe alg\fR" 4 .IX Item "-keypbe alg, -certpbe alg" these options allow the algorithm used to encrypt the private key and certificates to be selected. Any PKCS#5 v1.5 or PKCS#12 \s-1PBE\s0 algorithm name can be used (see \fB\s-1NOTES\s0\fR section for more information). If a cipher name (as output by the \fBlist-cipher-algorithms\fR command is specified then it is used with PKCS#5 v2.0. For interoperability reasons it is advisable to only use PKCS#12 algorithms. .IP "\fB\-keyex|\-keysig\fR" 4 .IX Item "-keyex|-keysig" specifies that the private key is to be used for key exchange or just signing. This option is only interpreted by \s-1MSIE\s0 and similar \s-1MS\s0 software. Normally \&\*(L"export grade\*(R" software will only allow 512 bit \s-1RSA\s0 keys to be used for encryption purposes but arbitrary length keys for signing. The \fB\-keysig\fR option marks the key for signing only. Signing only keys can be used for S/MIME signing, authenticode (ActiveX control signing) and \s-1SSL\s0 client authentication, however due to a bug only \s-1MSIE 5.0\s0 and later support the use of signing only keys for \s-1SSL\s0 client authentication. .IP "\fB\-macalg digest\fR" 4 .IX Item "-macalg digest" specify the \s-1MAC\s0 digest algorithm. If not included them \s-1SHA1\s0 will be used. .IP "\fB\-nomaciter\fR, \fB\-noiter\fR" 4 .IX Item "-nomaciter, -noiter" these options affect the iteration counts on the \s-1MAC\s0 and key algorithms. Unless you wish to produce files compatible with \s-1MSIE 4.0\s0 you should leave these options alone. .Sp To discourage attacks by using large dictionaries of common passwords the algorithm that derives keys from passwords can have an iteration count applied to it: this causes a certain part of the algorithm to be repeated and slows it down. The \s-1MAC\s0 is used to check the file integrity but since it will normally have the same password as the keys and certificates it could also be attacked. By default both \s-1MAC\s0 and encryption iteration counts are set to 2048, using these options the \s-1MAC\s0 and encryption iteration counts can be set to 1, since this reduces the file security you should not use these options unless you really have to. Most software supports both \s-1MAC\s0 and key iteration counts. \&\s-1MSIE 4.0\s0 doesn't support \s-1MAC\s0 iteration counts so it needs the \fB\-nomaciter\fR option. .IP "\fB\-maciter\fR" 4 .IX Item "-maciter" This option is included for compatibility with previous versions, it used to be needed to use \s-1MAC\s0 iterations counts but they are now used by default. .IP "\fB\-nomac\fR" 4 .IX Item "-nomac" don't attempt to provide the \s-1MAC\s0 integrity. .IP "\fB\-rand file(s)\fR" 4 .IX Item "-rand file(s)" a file or files containing random data used to seed the random number generator, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). Multiple files can be specified separated by a OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fB\-CAfile file\fR" 4 .IX Item "-CAfile file" \&\s-1CA\s0 storage as a file. .IP "\fB\-CApath dir\fR" 4 .IX Item "-CApath dir" \&\s-1CA\s0 storage as a directory. This directory must be a standard certificate directory: that is a hash of each subject name (using \fBx509 \-hash\fR) should be linked to each certificate. .IP "\fB\-CSP name\fR" 4 .IX Item "-CSP name" write \fBname\fR as a Microsoft \s-1CSP\s0 name. .SH "NOTES" .IX Header "NOTES" Although there are a large number of options most of them are very rarely used. For PKCS#12 file parsing only \fB\-in\fR and \fB\-out\fR need to be used for PKCS#12 file creation \fB\-export\fR and \fB\-name\fR are also used. .PP If none of the \fB\-clcerts\fR, \fB\-cacerts\fR or \fB\-nocerts\fR options are present then all certificates will be output in the order they appear in the input PKCS#12 files. There is no guarantee that the first certificate present is the one corresponding to the private key. Certain software which requires a private key and certificate and assumes the first certificate in the file is the one corresponding to the private key: this may not always be the case. Using the \fB\-clcerts\fR option will solve this problem by only outputting the certificate corresponding to the private key. If the \s-1CA\s0 certificates are required then they can be output to a separate file using the \fB\-nokeys \-cacerts\fR options to just output \s-1CA\s0 certificates. .PP The \fB\-keypbe\fR and \fB\-certpbe\fR algorithms allow the precise encryption algorithms for private keys and certificates to be specified. Normally the defaults are fine but occasionally software can't handle triple \s-1DES\s0 encrypted private keys, then the option \fB\-keypbe \s-1PBE\-SHA1\-RC2\-40\s0\fR can be used to reduce the private key encryption to 40 bit \s-1RC2. A\s0 complete description of all algorithms is contained in the \fBpkcs8\fR manual page. .SH "EXAMPLES" .IX Header "EXAMPLES" Parse a PKCS#12 file and output it to a file: .PP .Vb 1 \& openssl pkcs12 \-in file.p12 \-out file.pem .Ve .PP Output only client certificates to a file: .PP .Vb 1 \& openssl pkcs12 \-in file.p12 \-clcerts \-out file.pem .Ve .PP Don't encrypt the private key: .PP .Vb 1 \& openssl pkcs12 \-in file.p12 \-out file.pem \-nodes .Ve .PP Print some info about a PKCS#12 file: .PP .Vb 1 \& openssl pkcs12 \-in file.p12 \-info \-noout .Ve .PP Create a PKCS#12 file: .PP .Vb 1 \& openssl pkcs12 \-export \-in file.pem \-out file.p12 \-name "My Certificate" .Ve .PP Include some extra certificates: .PP .Vb 2 \& openssl pkcs12 \-export \-in file.pem \-out file.p12 \-name "My Certificate" \e \& \-certfile othercerts.pem .Ve .SH "BUGS" .IX Header "BUGS" Some would argue that the PKCS#12 standard is one big bug :\-) .PP Versions of OpenSSL before 0.9.6a had a bug in the PKCS#12 key generation routines. Under rare circumstances this could produce a PKCS#12 file encrypted with an invalid key. As a result some PKCS#12 files which triggered this bug from other implementations (\s-1MSIE\s0 or Netscape) could not be decrypted by OpenSSL and similarly OpenSSL could produce PKCS#12 files which could not be decrypted by other implementations. The chances of producing such a file are relatively small: less than 1 in 256. .PP A side effect of fixing this bug is that any old invalidly encrypted PKCS#12 files cannot no longer be parsed by the fixed version. Under such circumstances the \fBpkcs12\fR utility will report that the \s-1MAC\s0 is \s-1OK\s0 but fail with a decryption error when extracting private keys. .PP This problem can be resolved by extracting the private keys and certificates from the PKCS#12 file using an older version of OpenSSL and recreating the PKCS#12 file from the keys and certificates using a newer version of OpenSSL. For example: .PP .Vb 2 \& old\-openssl \-in bad.p12 \-out keycerts.pem \& openssl \-in keycerts.pem \-export \-name "My PKCS#12 file" \-out fixed.p12 .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIpkcs8\fR\|(1) man1/spkac.1000064400000017660147210533270006601 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SPKAC 1" .TH SPKAC 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-spkac, spkac \- SPKAC printing and generating utility .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBspkac\fR [\fB\-in filename\fR] [\fB\-out filename\fR] [\fB\-key keyfile\fR] [\fB\-passin arg\fR] [\fB\-challenge string\fR] [\fB\-pubkey\fR] [\fB\-spkac spkacname\fR] [\fB\-spksect section\fR] [\fB\-noout\fR] [\fB\-verify\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBspkac\fR command processes Netscape signed public key and challenge (\s-1SPKAC\s0) files. It can print out their contents, verify the signature and produce its own SPKACs from a supplied private key. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read from or standard input if this option is not specified. Ignored if the \fB\-key\fR option is used. .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" specifies the output filename to write to or standard output by default. .IP "\fB\-key keyfile\fR" 4 .IX Item "-key keyfile" create an \s-1SPKAC\s0 file using the private key in \fBkeyfile\fR. The \&\fB\-in\fR, \fB\-noout\fR, \fB\-spksect\fR and \fB\-verify\fR options are ignored if present. .IP "\fB\-passin password\fR" 4 .IX Item "-passin password" the input file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-challenge string\fR" 4 .IX Item "-challenge string" specifies the challenge string if an \s-1SPKAC\s0 is being created. .IP "\fB\-spkac spkacname\fR" 4 .IX Item "-spkac spkacname" allows an alternative name form the variable containing the \&\s-1SPKAC.\s0 The default is \*(L"\s-1SPKAC\*(R".\s0 This option affects both generated and input \s-1SPKAC\s0 files. .IP "\fB\-spksect section\fR" 4 .IX Item "-spksect section" allows an alternative name form the section containing the \&\s-1SPKAC.\s0 The default is the default section. .IP "\fB\-noout\fR" 4 .IX Item "-noout" don't output the text version of the \s-1SPKAC \s0(not used if an \&\s-1SPKAC\s0 is being created). .IP "\fB\-pubkey\fR" 4 .IX Item "-pubkey" output the public key of an \s-1SPKAC \s0(not used if an \s-1SPKAC\s0 is being created). .IP "\fB\-verify\fR" 4 .IX Item "-verify" verifies the digital signature on the supplied \s-1SPKAC.\s0 .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBspkac\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .SH "EXAMPLES" .IX Header "EXAMPLES" Print out the contents of an \s-1SPKAC:\s0 .PP .Vb 1 \& openssl spkac \-in spkac.cnf .Ve .PP Verify the signature of an \s-1SPKAC:\s0 .PP .Vb 1 \& openssl spkac \-in spkac.cnf \-noout \-verify .Ve .PP Create an \s-1SPKAC\s0 using the challenge string \*(L"hello\*(R": .PP .Vb 1 \& openssl spkac \-key key.pem \-challenge hello \-out spkac.cnf .Ve .PP Example of an \s-1SPKAC, \s0(long lines split up for clarity): .PP .Vb 5 \& SPKAC=MIG5MGUwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA1cCoq2Wa3Ixs47uI7F\e \& PVwHVIPDx5yso105Y6zpozam135a8R0CpoRvkkigIyXfcCjiVi5oWk+6FfPaD03u\e \& PFoQIDAQABFgVoZWxsbzANBgkqhkiG9w0BAQQFAANBAFpQtY/FojdwkJh1bEIYuc\e \& 2EeM2KHTWPEepWYeawvHD0gQ3DngSC75YCWnnDdq+NQ3F+X4deMx9AaEglZtULwV\e \& 4= .Ve .SH "NOTES" .IX Header "NOTES" A created \s-1SPKAC\s0 with suitable \s-1DN\s0 components appended can be fed into the \fBca\fR utility. .PP SPKACs are typically generated by Netscape when a form is submitted containing the \fB\s-1KEYGEN\s0\fR tag as part of the certificate enrollment process. .PP The challenge string permits a primitive form of proof of possession of private key. By checking the \s-1SPKAC\s0 signature and a random challenge string some guarantee is given that the user knows the private key corresponding to the public key being certified. This is important in some applications. Without this it is possible for a previous \s-1SPKAC\s0 to be used in a \*(L"replay attack\*(R". .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIca\fR\|(1) man1/s_server.1000064400000045700147210533270007324 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "S_SERVER 1" .TH S_SERVER 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-s_server, s_server \- SSL/TLS server program .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBs_server\fR [\fB\-accept port\fR] [\fB\-context id\fR] [\fB\-verify depth\fR] [\fB\-Verify depth\fR] [\fB\-crl_check\fR] [\fB\-crl_check_all\fR] [\fB\-cert filename\fR] [\fB\-certform DER|PEM\fR] [\fB\-key keyfile\fR] [\fB\-keyform DER|PEM\fR] [\fB\-pass arg\fR] [\fB\-dcert filename\fR] [\fB\-dcertform DER|PEM\fR] [\fB\-dkey keyfile\fR] [\fB\-dkeyform DER|PEM\fR] [\fB\-dpass arg\fR] [\fB\-dhparam filename\fR] [\fB\-nbio\fR] [\fB\-nbio_test\fR] [\fB\-crlf\fR] [\fB\-debug\fR] [\fB\-msg\fR] [\fB\-state\fR] [\fB\-CApath directory\fR] [\fB\-CAfile filename\fR] [\fB\-no_alt_chains\fR] [\fB\-nocert\fR] [\fB\-client_sigalgs sigalglist\fR] [\fB\-named_curve curve\fR] [\fB\-cipher cipherlist\fR] [\fB\-serverpref\fR] [\fB\-quiet\fR] [\fB\-no_tmp_rsa\fR] [\fB\-ssl2\fR] [\fB\-ssl3\fR] [\fB\-tls1\fR] [\fB\-no_ssl2\fR] [\fB\-no_ssl3\fR] [\fB\-no_tls1\fR] [\fB\-no_dhe\fR] [\fB\-no_ecdhe\fR] [\fB\-bugs\fR] [\fB\-hack\fR] [\fB\-www\fR] [\fB\-WWW\fR] [\fB\-HTTP\fR] [\fB\-engine id\fR] [\fB\-tlsextdebug\fR] [\fB\-no_ticket\fR] [\fB\-id_prefix arg\fR] [\fB\-rand file(s)\fR] [\fB\-serverinfo file\fR] [\fB\-no_resumption_on_reneg\fR] [\fB\-status\fR] [\fB\-status_verbose\fR] [\fB\-status_timeout nsec\fR] [\fB\-status_url url\fR] [\fB\-alpn protocols\fR] [\fB\-nextprotoneg protocols\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBs_server\fR command implements a generic \s-1SSL/TLS\s0 server which listens for connections on a given port using \s-1SSL/TLS.\s0 .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-accept port\fR" 4 .IX Item "-accept port" the \s-1TCP\s0 port to listen on for connections. If not specified 4433 is used. .IP "\fB\-context id\fR" 4 .IX Item "-context id" sets the \s-1SSL\s0 context id. It can be given any string value. If this option is not present a default value will be used. .IP "\fB\-cert certname\fR" 4 .IX Item "-cert certname" The certificate to use, most servers cipher suites require the use of a certificate and some require a certificate with a certain public key type: for example the \s-1DSS\s0 cipher suites require a certificate containing a \s-1DSS \&\s0(\s-1DSA\s0) key. If not specified then the filename \*(L"server.pem\*(R" will be used. .IP "\fB\-certform format\fR" 4 .IX Item "-certform format" The certificate format to use: \s-1DER\s0 or \s-1PEM. PEM\s0 is the default. .IP "\fB\-key keyfile\fR" 4 .IX Item "-key keyfile" The private key to use. If not specified then the certificate file will be used. .IP "\fB\-keyform format\fR" 4 .IX Item "-keyform format" The private format to use: \s-1DER\s0 or \s-1PEM. PEM\s0 is the default. .IP "\fB\-pass arg\fR" 4 .IX Item "-pass arg" the private key password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-dcert filename\fR, \fB\-dkey keyname\fR" 4 .IX Item "-dcert filename, -dkey keyname" specify an additional certificate and private key, these behave in the same manner as the \fB\-cert\fR and \fB\-key\fR options except there is no default if they are not specified (no additional certificate and key is used). As noted above some cipher suites require a certificate containing a key of a certain type. Some cipher suites need a certificate carrying an \s-1RSA\s0 key and some a \s-1DSS \s0(\s-1DSA\s0) key. By using \s-1RSA\s0 and \s-1DSS\s0 certificates and keys a server can support clients which only support \s-1RSA\s0 or \s-1DSS\s0 cipher suites by using an appropriate certificate. .IP "\fB\-dcertform format\fR, \fB\-dkeyform format\fR, \fB\-dpass arg\fR" 4 .IX Item "-dcertform format, -dkeyform format, -dpass arg" additional certificate and private key format and passphrase respectively. .IP "\fB\-nocert\fR" 4 .IX Item "-nocert" if this option is set then no certificate is used. This restricts the cipher suites available to the anonymous ones (currently just anonymous \&\s-1DH\s0). .IP "\fB\-dhparam filename\fR" 4 .IX Item "-dhparam filename" the \s-1DH\s0 parameter file to use. The ephemeral \s-1DH\s0 cipher suites generate keys using a set of \s-1DH\s0 parameters. If not specified then an attempt is made to load the parameters from the server certificate file. If this fails then a static set of parameters hard coded into the s_server program will be used. .IP "\fB\-no_dhe\fR" 4 .IX Item "-no_dhe" if this option is set then no \s-1DH\s0 parameters will be loaded effectively disabling the ephemeral \s-1DH\s0 cipher suites. .IP "\fB\-no_ecdhe\fR" 4 .IX Item "-no_ecdhe" if this option is set then no \s-1ECDH\s0 parameters will be selected, effectively disabling the ephemeral \s-1ECDH\s0 cipher suites. .IP "\fB\-no_tmp_rsa\fR" 4 .IX Item "-no_tmp_rsa" certain export cipher suites sometimes use a temporary \s-1RSA\s0 key, this option disables temporary \s-1RSA\s0 key generation. .IP "\fB\-verify depth\fR, \fB\-Verify depth\fR" 4 .IX Item "-verify depth, -Verify depth" The verify depth to use. This specifies the maximum length of the client certificate chain and makes the server request a certificate from the client. With the \fB\-verify\fR option a certificate is requested but the client does not have to send one, with the \fB\-Verify\fR option the client must supply a certificate or an error occurs. .Sp If the ciphersuite cannot request a client certificate (for example an anonymous ciphersuite or \s-1PSK\s0) this option has no effect. .IP "\fB\-crl_check\fR, \fB\-crl_check_all\fR" 4 .IX Item "-crl_check, -crl_check_all" Check the peer certificate has not been revoked by its \s-1CA.\s0 The \s-1CRL\s0(s) are appended to the certificate file. With the \fB\-crl_check_all\fR option all CRLs of all CAs in the chain are checked. .IP "\fB\-CApath directory\fR" 4 .IX Item "-CApath directory" The directory to use for client certificate verification. This directory must be in \*(L"hash format\*(R", see \fBverify\fR for more information. These are also used when building the server certificate chain. .IP "\fB\-CAfile file\fR" 4 .IX Item "-CAfile file" A file containing trusted certificates to use during client authentication and to use when attempting to build the server certificate chain. The list is also used in the list of acceptable client CAs passed to the client when a certificate is requested. .IP "\fB\-no_alt_chains\fR" 4 .IX Item "-no_alt_chains" See the \fBverify\fR manual page for details. .IP "\fB\-state\fR" 4 .IX Item "-state" prints out the \s-1SSL\s0 session states. .IP "\fB\-debug\fR" 4 .IX Item "-debug" print extensive debugging information including a hex dump of all traffic. .IP "\fB\-msg\fR" 4 .IX Item "-msg" show all protocol messages with hex dump. .IP "\fB\-nbio_test\fR" 4 .IX Item "-nbio_test" tests non blocking I/O .IP "\fB\-nbio\fR" 4 .IX Item "-nbio" turns on non blocking I/O .IP "\fB\-crlf\fR" 4 .IX Item "-crlf" this option translated a line feed from the terminal into \s-1CR+LF.\s0 .IP "\fB\-quiet\fR" 4 .IX Item "-quiet" inhibit printing of session and certificate information. .IP "\fB\-psk_hint hint\fR" 4 .IX Item "-psk_hint hint" Use the \s-1PSK\s0 identity hint \fBhint\fR when using a \s-1PSK\s0 cipher suite. .IP "\fB\-psk key\fR" 4 .IX Item "-psk key" Use the \s-1PSK\s0 key \fBkey\fR when using a \s-1PSK\s0 cipher suite. The key is given as a hexadecimal number without leading 0x, for example \-psk 1a2b3c4d. This option must be provided in order to use a \s-1PSK\s0 cipher. .IP "\fB\-ssl2\fR, \fB\-ssl3\fR, \fB\-tls1\fR, \fB\-tls1_1\fR, \fB\-tls1_2\fR, \fB\-no_ssl2\fR, \fB\-no_ssl3\fR, \fB\-no_tls1\fR, \fB\-no_tls1_1\fR, \fB\-no_tls1_2\fR" 4 .IX Item "-ssl2, -ssl3, -tls1, -tls1_1, -tls1_2, -no_ssl2, -no_ssl3, -no_tls1, -no_tls1_1, -no_tls1_2" These options require or disable the use of the specified \s-1SSL\s0 or \s-1TLS\s0 protocols. By default the initial handshake uses a \fIversion-flexible\fR method which will negotiate the highest mutually supported protocol version. .IP "\fB\-bugs\fR" 4 .IX Item "-bugs" there are several known bug in \s-1SSL\s0 and \s-1TLS\s0 implementations. Adding this option enables various workarounds. .IP "\fB\-hack\fR" 4 .IX Item "-hack" this option enables a further workaround for some some early Netscape \&\s-1SSL\s0 code (?). .IP "\fB\-client_sigalgs sigalglist\fR" 4 .IX Item "-client_sigalgs sigalglist" Signature algorithms to support for client certificate authentication (colon-separated list) .IP "\fB\-named_curve curve\fR" 4 .IX Item "-named_curve curve" Specifies the elliptic curve to use. \s-1NOTE:\s0 this is single curve, not a list. For a list of all possible curves, use: .Sp .Vb 1 \& $ openssl ecparam \-list_curves .Ve .IP "\fB\-cipher cipherlist\fR" 4 .IX Item "-cipher cipherlist" this allows the cipher list used by the server to be modified. When the client sends a list of supported ciphers the first client cipher also included in the server list is used. Because the client specifies the preference order, the order of the server cipherlist irrelevant. See the \fBciphers\fR command for more information. .IP "\fB\-serverpref\fR" 4 .IX Item "-serverpref" use the server's cipher preferences, rather than the client's preferences. .IP "\fB\-tlsextdebug\fR" 4 .IX Item "-tlsextdebug" print out a hex dump of any \s-1TLS\s0 extensions received from the server. .IP "\fB\-no_ticket\fR" 4 .IX Item "-no_ticket" disable RFC4507bis session ticket support. .IP "\fB\-www\fR" 4 .IX Item "-www" sends a status message back to the client when it connects. This includes lots of information about the ciphers used and various session parameters. The output is in \s-1HTML\s0 format so this option will normally be used with a web browser. .IP "\fB\-WWW\fR" 4 .IX Item "-WWW" emulates a simple web server. Pages will be resolved relative to the current directory, for example if the \s-1URL\s0 https://myhost/page.html is requested the file ./page.html will be loaded. .IP "\fB\-HTTP\fR" 4 .IX Item "-HTTP" emulates a simple web server. Pages will be resolved relative to the current directory, for example if the \s-1URL\s0 https://myhost/page.html is requested the file ./page.html will be loaded. The files loaded are assumed to contain a complete and correct \s-1HTTP\s0 response (lines that are part of the \s-1HTTP\s0 response line and headers must end with \s-1CRLF\s0). .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBs_server\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .IP "\fB\-id_prefix arg\fR" 4 .IX Item "-id_prefix arg" generate \s-1SSL/TLS\s0 session IDs prefixed by \fBarg\fR. This is mostly useful for testing any \s-1SSL/TLS\s0 code (eg. proxies) that wish to deal with multiple servers, when each of which might be generating a unique range of session IDs (eg. with a certain prefix). .IP "\fB\-rand file(s)\fR" 4 .IX Item "-rand file(s)" a file or files containing random data used to seed the random number generator, or an \s-1EGD\s0 socket (see \fIRAND_egd\fR\|(3)). Multiple files can be specified separated by a OS-dependent character. The separator is \fB;\fR for MS-Windows, \fB,\fR for OpenVMS, and \fB:\fR for all others. .IP "\fB\-serverinfo file\fR" 4 .IX Item "-serverinfo file" a file containing one or more blocks of \s-1PEM\s0 data. Each \s-1PEM\s0 block must encode a \s-1TLS\s0 ServerHello extension (2 bytes type, 2 bytes length, followed by \*(L"length\*(R" bytes of extension data). If the client sends an empty \s-1TLS\s0 ClientHello extension matching the type, the corresponding ServerHello extension will be returned. .IP "\fB\-no_resumption_on_reneg\fR" 4 .IX Item "-no_resumption_on_reneg" set \s-1SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION\s0 flag. .IP "\fB\-status\fR" 4 .IX Item "-status" enables certificate status request support (aka \s-1OCSP\s0 stapling). .IP "\fB\-status_verbose\fR" 4 .IX Item "-status_verbose" enables certificate status request support (aka \s-1OCSP\s0 stapling) and gives a verbose printout of the \s-1OCSP\s0 response. .IP "\fB\-status_timeout nsec\fR" 4 .IX Item "-status_timeout nsec" sets the timeout for \s-1OCSP\s0 response to \fBnsec\fR seconds. .IP "\fB\-status_url url\fR" 4 .IX Item "-status_url url" sets a fallback responder \s-1URL\s0 to use if no responder \s-1URL\s0 is present in the server certificate. Without this option an error is returned if the server certificate does not contain a responder address. .IP "\fB\-alpn protocols\fR, \fB\-nextprotoneg protocols\fR" 4 .IX Item "-alpn protocols, -nextprotoneg protocols" these flags enable the Enable the Application-Layer Protocol Negotiation or Next Protocol Negotiation extension, respectively. \s-1ALPN\s0 is the \s-1IETF\s0 standard and replaces \s-1NPN.\s0 The \fBprotocols\fR list is a comma-separated list of supported protocol names. The list should contain most wanted protocols first. Protocol names are printable \s-1ASCII\s0 strings, for example \*(L"http/1.1\*(R" or \&\*(L"spdy/3\*(R". .SH "CONNECTED COMMANDS" .IX Header "CONNECTED COMMANDS" If a connection request is established with an \s-1SSL\s0 client and neither the \&\fB\-www\fR nor the \fB\-WWW\fR option has been used then normally any data received from the client is displayed and any key presses will be sent to the client. .PP Certain single letter commands are also recognized which perform special operations: these are listed below. .IP "\fBq\fR" 4 .IX Item "q" end the current \s-1SSL\s0 connection but still accept new connections. .IP "\fBQ\fR" 4 .IX Item "Q" end the current \s-1SSL\s0 connection and exit. .IP "\fBr\fR" 4 .IX Item "r" renegotiate the \s-1SSL\s0 session. .IP "\fBR\fR" 4 .IX Item "R" renegotiate the \s-1SSL\s0 session and request a client certificate. .IP "\fBP\fR" 4 .IX Item "P" send some plain text down the underlying \s-1TCP\s0 connection: this should cause the client to disconnect due to a protocol violation. .IP "\fBS\fR" 4 .IX Item "S" print out some session cache status information. .SH "NOTES" .IX Header "NOTES" \&\fBs_server\fR can be used to debug \s-1SSL\s0 clients. To accept connections from a web browser the command: .PP .Vb 1 \& openssl s_server \-accept 443 \-www .Ve .PP can be used for example. .PP Although specifying an empty list of CAs when requesting a client certificate is strictly speaking a protocol violation, some \s-1SSL\s0 clients interpret this to mean any \s-1CA\s0 is acceptable. This is useful for debugging purposes. .PP The session parameters can printed out using the \fBsess_id\fR program. .SH "BUGS" .IX Header "BUGS" Because this program has a lot of options and also because some of the techniques used are rather old, the C source of s_server is rather hard to read and not a model of how things should be done. A typical \&\s-1SSL\s0 server program would be much simpler. .PP The output of common ciphers is wrong: it just gives the list of ciphers that OpenSSL recognizes and the client supports. .PP There should be a way for the \fBs_server\fR program to print out details of any unknown cipher suites a client says it supports. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIsess_id\fR\|(1), \fIs_client\fR\|(1), \fIciphers\fR\|(1) .SH "HISTORY" .IX Header "HISTORY" The \-no_alt_chains options was first added to OpenSSL 1.0.2b. man1/c_rehash.1000064400000017130147210533270007244 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "C_REHASH 1" .TH C_REHASH 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" c_rehash \- Create symbolic links to files named by the hash values .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBc_rehash\fR \&\fB[\-old]\fR \&\fB[\-h]\fR \&\fB[\-n]\fR \&\fB[\-v]\fR [ \fIdirectory\fR...] .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBc_rehash\fR scans directories and calculates a hash value of each \&\f(CW\*(C`.pem\*(C'\fR, \f(CW\*(C`.crt\*(C'\fR, \f(CW\*(C`.cer\*(C'\fR, or \f(CW\*(C`.crl\*(C'\fR file in the specified directory list and creates symbolic links for each file, where the name of the link is the hash value. (If the platform does not support symbolic links, a copy is made.) This utility is useful as many programs that use OpenSSL require directories to be set up like this in order to find certificates. .PP If any directories are named on the command line, then those are processed in turn. If not, then the \fB\s-1SSL_CERT_DIR\s0\fR environment variable is consulted; this shold be a colon-separated list of directories, like the Unix \fB\s-1PATH\s0\fR variable. If that is not set then the default directory (installation-specific but often \fB/usr/local/ssl/certs\fR) is processed. .PP In order for a directory to be processed, the user must have write permissions on that directory, otherwise it will be skipped. The links created are of the form \f(CW\*(C`HHHHHHHH.D\*(C'\fR, where each \fBH\fR is a hexadecimal character and \fBD\fR is a single decimal digit. When processing a directory, \fBc_rehash\fR will first remove all links that have a name in that syntax. If you have links in that format used for other purposes, they will be removed. To skip the removal step, use the \fB\-n\fR flag. Hashes for \s-1CRL\s0's look similar except the letter \fBr\fR appears after the period, like this: \f(CW\*(C`HHHHHHHH.rD\*(C'\fR. .PP Multiple objects may have the same hash; they will be indicated by incrementing the \fBD\fR value. Duplicates are found by comparing the full \s-1SHA\-1\s0 fingerprint. A warning will be displayed if a duplicate is found. .PP A warning will also be displayed if there are files that cannot be parsed as either a certificate or a \s-1CRL.\s0 .PP The program uses the \fBopenssl\fR program to compute the hashes and fingerprints. If not found in the user's \fB\s-1PATH\s0\fR, then set the \&\fB\s-1OPENSSL\s0\fR environment variable to the full pathname. Any program can be used, it will be invoked as follows for either a certificate or \s-1CRL:\s0 .PP .Vb 2 \& $OPENSSL x509 \-hash \-fingerprint \-noout \-in FILENAME \& $OPENSSL crl \-hash \-fingerprint \-noout \-in FILENAME .Ve .PP where \fB\s-1FILENAME\s0\fR is the filename. It must output the hash of the file on the first line, and the fingerprint on the second, optionally prefixed with some text and an equals sign. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-old\fR" 4 .IX Item "-old" Use old-style hashing (\s-1MD5,\s0 as opposed to \s-1SHA\-1\s0) for generating links for releases before 1.0.0. Note that current versions will not use the old style. .IP "\fB\-h\fR" 4 .IX Item "-h" Display a brief usage message. .IP "\fB\-n\fR" 4 .IX Item "-n" Do not remove existing links. This is needed when keeping new and old-style links in the same directory. .IP "\fB\-v\fR" 4 .IX Item "-v" Print messages about old links removed and new links created. By default, \fBc_rehash\fR only lists each directory as it is processed. .SH "ENVIRONMENT" .IX Header "ENVIRONMENT" .IP "\fB\s-1OPENSSL\s0\fR" 4 .IX Item "OPENSSL" The path to an executable to use to generate hashes and fingerprints (see above). .IP "\fB\s-1SSL_CERT_DIR\s0\fR" 4 .IX Item "SSL_CERT_DIR" Colon separated list of directories to operate on. Ignored if directories are listed on the command line. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIopenssl\fR\|(1), \&\fIcrl\fR\|(1). \&\fIx509\fR\|(1). man1/ec.1000064400000024426147210533270006065 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "EC 1" .TH EC 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" openssl\-ec, ec \- EC key processing .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBopenssl\fR \fBec\fR [\fB\-inform PEM|DER\fR] [\fB\-outform PEM|DER\fR] [\fB\-in filename\fR] [\fB\-passin arg\fR] [\fB\-out filename\fR] [\fB\-passout arg\fR] [\fB\-des\fR] [\fB\-des3\fR] [\fB\-idea\fR] [\fB\-text\fR] [\fB\-noout\fR] [\fB\-param_out\fR] [\fB\-pubin\fR] [\fB\-pubout\fR] [\fB\-conv_form arg\fR] [\fB\-param_enc arg\fR] [\fB\-engine id\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fBec\fR command processes \s-1EC\s0 keys. They can be converted between various forms and their components printed out. \fBNote\fR OpenSSL uses the private key format specified in '\s-1SEC 1:\s0 Elliptic Curve Cryptography' (http://www.secg.org/). To convert a OpenSSL \s-1EC\s0 private key into the PKCS#8 private key format use the \fBpkcs8\fR command. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB\-inform DER|PEM\fR" 4 .IX Item "-inform DER|PEM" This specifies the input format. The \fB\s-1DER\s0\fR option with a private key uses an \s-1ASN.1 DER\s0 encoded \s-1SEC1\s0 private key. When used with a public key it uses the SubjectPublicKeyInfo structure as specified in \s-1RFC 3280.\s0 The \fB\s-1PEM\s0\fR form is the default format: it consists of the \fB\s-1DER\s0\fR format base64 encoded with additional header and footer lines. In the case of a private key PKCS#8 format is also accepted. .IP "\fB\-outform DER|PEM\fR" 4 .IX Item "-outform DER|PEM" This specifies the output format, the options have the same meaning as the \&\fB\-inform\fR option. .IP "\fB\-in filename\fR" 4 .IX Item "-in filename" This specifies the input filename to read a key from or standard input if this option is not specified. If the key is encrypted a pass phrase will be prompted for. .IP "\fB\-passin arg\fR" 4 .IX Item "-passin arg" the input file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-out filename\fR" 4 .IX Item "-out filename" This specifies the output filename to write a key to or standard output by is not specified. If any encryption options are set then a pass phrase will be prompted for. The output filename should \fBnot\fR be the same as the input filename. .IP "\fB\-passout arg\fR" 4 .IX Item "-passout arg" the output file password source. For more information about the format of \fBarg\fR see the \fB\s-1PASS PHRASE ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1). .IP "\fB\-des|\-des3|\-idea\fR" 4 .IX Item "-des|-des3|-idea" These options encrypt the private key with the \s-1DES,\s0 triple \s-1DES, IDEA\s0 or any other cipher supported by OpenSSL before outputting it. A pass phrase is prompted for. If none of these options is specified the key is written in plain text. This means that using the \fBec\fR utility to read in an encrypted key with no encryption option can be used to remove the pass phrase from a key, or by setting the encryption options it can be use to add or change the pass phrase. These options can only be used with \s-1PEM\s0 format output files. .IP "\fB\-text\fR" 4 .IX Item "-text" prints out the public, private key components and parameters. .IP "\fB\-noout\fR" 4 .IX Item "-noout" this option prevents output of the encoded version of the key. .IP "\fB\-modulus\fR" 4 .IX Item "-modulus" this option prints out the value of the public key component of the key. .IP "\fB\-pubin\fR" 4 .IX Item "-pubin" by default a private key is read from the input file: with this option a public key is read instead. .IP "\fB\-pubout\fR" 4 .IX Item "-pubout" by default a private key is output. With this option a public key will be output instead. This option is automatically set if the input is a public key. .IP "\fB\-conv_form\fR" 4 .IX Item "-conv_form" This specifies how the points on the elliptic curve are converted into octet strings. Possible values are: \fBcompressed\fR (the default value), \fBuncompressed\fR and \fBhybrid\fR. For more information regarding the point conversion forms please read the X9.62 standard. \&\fBNote\fR Due to patent issues the \fBcompressed\fR option is disabled by default for binary curves and can be enabled by defining the preprocessor macro \fB\s-1OPENSSL_EC_BIN_PT_COMP\s0\fR at compile time. .IP "\fB\-param_enc arg\fR" 4 .IX Item "-param_enc arg" This specifies how the elliptic curve parameters are encoded. Possible value are: \fBnamed_curve\fR, i.e. the ec parameters are specified by a \s-1OID,\s0 or \fBexplicit\fR where the ec parameters are explicitly given (see \s-1RFC 3279\s0 for the definition of the \&\s-1EC\s0 parameters structures). The default value is \fBnamed_curve\fR. \&\fBNote\fR the \fBimplicitlyCA\fR alternative ,as specified in \s-1RFC 3279,\s0 is currently not implemented in OpenSSL. .IP "\fB\-engine id\fR" 4 .IX Item "-engine id" specifying an engine (by its unique \fBid\fR string) will cause \fBec\fR to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. .SH "NOTES" .IX Header "NOTES" The \s-1PEM\s0 private key format uses the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN EC PRIVATE KEY\-\-\-\-\- \& \-\-\-\-\-END EC PRIVATE KEY\-\-\-\-\- .Ve .PP The \s-1PEM\s0 public key format uses the header and footer lines: .PP .Vb 2 \& \-\-\-\-\-BEGIN PUBLIC KEY\-\-\-\-\- \& \-\-\-\-\-END PUBLIC KEY\-\-\-\-\- .Ve .SH "EXAMPLES" .IX Header "EXAMPLES" To encrypt a private key using triple \s-1DES:\s0 .PP .Vb 1 \& openssl ec \-in key.pem \-des3 \-out keyout.pem .Ve .PP To convert a private key from \s-1PEM\s0 to \s-1DER\s0 format: .PP .Vb 1 \& openssl ec \-in key.pem \-outform DER \-out keyout.der .Ve .PP To print out the components of a private key to standard output: .PP .Vb 1 \& openssl ec \-in key.pem \-text \-noout .Ve .PP To just output the public part of a private key: .PP .Vb 1 \& openssl ec \-in key.pem \-pubout \-out pubkey.pem .Ve .PP To change the parameters encoding to \fBexplicit\fR: .PP .Vb 1 \& openssl ec \-in key.pem \-param_enc explicit \-out keyout.pem .Ve .PP To change the point conversion form to \fBcompressed\fR: .PP .Vb 1 \& openssl ec \-in key.pem \-conv_form compressed \-out keyout.pem .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIecparam\fR\|(1), \fIdsa\fR\|(1), \fIrsa\fR\|(1) .SH "HISTORY" .IX Header "HISTORY" The ec command was first introduced in OpenSSL 0.9.8. .SH "AUTHOR" .IX Header "AUTHOR" Nils Larsch for the OpenSSL project (http://www.openssl.org). man1/CA.pl.1000064400000024167147210533270006375 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CA.PL 1" .TH CA.PL 1 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" CA.pl \- friendlier interface for OpenSSL certificate programs .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fB\s-1CA\s0.pl\fR [\fB\-?\fR] [\fB\-h\fR] [\fB\-help\fR] [\fB\-newcert\fR] [\fB\-newreq\fR] [\fB\-newreq\-nodes\fR] [\fB\-newca\fR] [\fB\-xsign\fR] [\fB\-sign\fR] [\fB\-signreq\fR] [\fB\-signcert\fR] [\fB\-verify\fR] [\fBfiles\fR] .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \fB\s-1CA\s0.pl\fR script is a perl script that supplies the relevant command line arguments to the \fBopenssl\fR command for some common certificate operations. It is intended to simplify the process of certificate creation and management by the use of some simple options. .SH "COMMAND OPTIONS" .IX Header "COMMAND OPTIONS" .IP "\fB?\fR, \fB\-h\fR, \fB\-help\fR" 4 .IX Item "?, -h, -help" prints a usage message. .IP "\fB\-newcert\fR" 4 .IX Item "-newcert" creates a new self signed certificate. The private key is written to the file \&\*(L"newkey.pem\*(R" and the request written to the file \*(L"newreq.pem\*(R". .IP "\fB\-newreq\fR" 4 .IX Item "-newreq" creates a new certificate request. The private key is written to the file \&\*(L"newkey.pem\*(R" and the request written to the file \*(L"newreq.pem\*(R". .IP "\fB\-newreq\-nodes\fR" 4 .IX Item "-newreq-nodes" is like \fB\-newreq\fR except that the private key will not be encrypted. .IP "\fB\-newca\fR" 4 .IX Item "-newca" creates a new \s-1CA\s0 hierarchy for use with the \fBca\fR program (or the \fB\-signcert\fR and \fB\-xsign\fR options). The user is prompted to enter the filename of the \s-1CA\s0 certificates (which should also contain the private key) or by hitting \s-1ENTER\s0 details of the \s-1CA\s0 will be prompted for. The relevant files and directories are created in a directory called \*(L"demoCA\*(R" in the current directory. .IP "\fB\-pkcs12\fR" 4 .IX Item "-pkcs12" create a PKCS#12 file containing the user certificate, private key and \s-1CA\s0 certificate. It expects the user certificate and private key to be in the file \*(L"newcert.pem\*(R" and the \s-1CA\s0 certificate to be in the file demoCA/cacert.pem, it creates a file \*(L"newcert.p12\*(R". This command can thus be called after the \&\fB\-sign\fR option. The PKCS#12 file can be imported directly into a browser. If there is an additional argument on the command line it will be used as the \&\*(L"friendly name\*(R" for the certificate (which is typically displayed in the browser list box), otherwise the name \*(L"My Certificate\*(R" is used. .IP "\fB\-sign\fR, \fB\-signreq\fR, \fB\-xsign\fR" 4 .IX Item "-sign, -signreq, -xsign" calls the \fBca\fR program to sign a certificate request. It expects the request to be in the file \*(L"newreq.pem\*(R". The new certificate is written to the file \&\*(L"newcert.pem\*(R" except in the case of the \fB\-xsign\fR option when it is written to standard output. .IP "\fB\-signCA\fR" 4 .IX Item "-signCA" this option is the same as the \fB\-signreq\fR option except it uses the configuration file section \fBv3_ca\fR and so makes the signed request a valid \s-1CA\s0 certificate. This is useful when creating intermediate \s-1CA\s0 from a root \s-1CA.\s0 .IP "\fB\-signcert\fR" 4 .IX Item "-signcert" this option is the same as \fB\-sign\fR except it expects a self signed certificate to be present in the file \*(L"newreq.pem\*(R". .IP "\fB\-verify\fR" 4 .IX Item "-verify" verifies certificates against the \s-1CA\s0 certificate for \*(L"demoCA\*(R". If no certificates are specified on the command line it tries to verify the file \*(L"newcert.pem\*(R". .IP "\fBfiles\fR" 4 .IX Item "files" one or more optional certificate file names for use with the \fB\-verify\fR command. .SH "EXAMPLES" .IX Header "EXAMPLES" Create a \s-1CA\s0 hierarchy: .PP .Vb 1 \& CA.pl \-newca .Ve .PP Complete certificate creation example: create a \s-1CA,\s0 create a request, sign the request and finally create a PKCS#12 file containing it. .PP .Vb 4 \& CA.pl \-newca \& CA.pl \-newreq \& CA.pl \-signreq \& CA.pl \-pkcs12 "My Test Certificate" .Ve .SH "DSA CERTIFICATES" .IX Header "DSA CERTIFICATES" Although the \fB\s-1CA\s0.pl\fR creates \s-1RSA\s0 CAs and requests it is still possible to use it with \s-1DSA\s0 certificates and requests using the \fIreq\fR\|(1) command directly. The following example shows the steps that would typically be taken. .PP Create some \s-1DSA\s0 parameters: .PP .Vb 1 \& openssl dsaparam \-out dsap.pem 1024 .Ve .PP Create a \s-1DSA CA\s0 certificate and private key: .PP .Vb 1 \& openssl req \-x509 \-newkey dsa:dsap.pem \-keyout cacert.pem \-out cacert.pem .Ve .PP Create the \s-1CA\s0 directories and files: .PP .Vb 1 \& CA.pl \-newca .Ve .PP enter cacert.pem when prompted for the \s-1CA\s0 file name. .PP Create a \s-1DSA\s0 certificate request and private key (a different set of parameters can optionally be created first): .PP .Vb 1 \& openssl req \-out newreq.pem \-newkey dsa:dsap.pem .Ve .PP Sign the request: .PP .Vb 1 \& CA.pl \-signreq .Ve .SH "NOTES" .IX Header "NOTES" Most of the filenames mentioned can be modified by editing the \fB\s-1CA\s0.pl\fR script. .PP If the demoCA directory already exists then the \fB\-newca\fR command will not overwrite it and will do nothing. This can happen if a previous call using the \fB\-newca\fR option terminated abnormally. To get the correct behaviour delete the demoCA directory if it already exists. .PP Under some environments it may not be possible to run the \fB\s-1CA\s0.pl\fR script directly (for example Win32) and the default configuration file location may be wrong. In this case the command: .PP .Vb 1 \& perl \-S CA.pl .Ve .PP can be used and the \fB\s-1OPENSSL_CONF\s0\fR environment variable changed to point to the correct path of the configuration file \*(L"openssl.cnf\*(R". .PP The script is intended as a simple front end for the \fBopenssl\fR program for use by a beginner. Its behaviour isn't always what is wanted. For more control over the behaviour of the certificate commands call the \fBopenssl\fR command directly. .SH "ENVIRONMENT VARIABLES" .IX Header "ENVIRONMENT VARIABLES" The variable \fB\s-1OPENSSL_CONF\s0\fR if defined allows an alternative configuration file location to be specified, it should contain the full path to the configuration file, not just its directory. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIx509\fR\|(1), \fIca\fR\|(1), \fIreq\fR\|(1), \fIpkcs12\fR\|(1), \&\fIconfig\fR\|(5) man5/config.5000064400000041675147210533270006760 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CONFIG 5" .TH CONFIG 5 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" config \- OpenSSL CONF library configuration files .SH "DESCRIPTION" .IX Header "DESCRIPTION" The OpenSSL \s-1CONF\s0 library can be used to read configuration files. It is used for the OpenSSL master configuration file \fBopenssl.cnf\fR and in a few other places like \fB\s-1SPKAC\s0\fR files and certificate extension files for the \fBx509\fR utility. OpenSSL applications can also use the \&\s-1CONF\s0 library for their own purposes. .PP A configuration file is divided into a number of sections. Each section starts with a line \fB[ section_name ]\fR and ends when a new section is started or end of file is reached. A section name can consist of alphanumeric characters and underscores. .PP The first section of a configuration file is special and is referred to as the \fBdefault\fR section. This section is usually unnamed and spans from the start of file until the first named section. When a name is being looked up it is first looked up in a named section (if any) and then the default section. .PP The environment is mapped onto a section called \fB\s-1ENV\s0\fR. .PP Comments can be included by preceding them with the \fB#\fR character .PP Each section in a configuration file consists of a number of name and value pairs of the form \fBname=value\fR .PP The \fBname\fR string can contain any alphanumeric characters as well as a few punctuation symbols such as \fB.\fR \fB,\fR \fB;\fR and \fB_\fR. .PP The \fBvalue\fR string consists of the string following the \fB=\fR character until end of line with any leading and trailing white space removed. .PP The value string undergoes variable expansion. This can be done by including the form \fB\f(CB$var\fB\fR or \fB${var}\fR: this will substitute the value of the named variable in the current section. It is also possible to substitute a value from another section using the syntax \fB\f(CB$section::name\fB\fR or \fB${section::name}\fR. By using the form \fB\f(CB$ENV::name\fB\fR environment variables can be substituted. It is also possible to assign values to environment variables by using the name \fBENV::name\fR, this will work if the program looks up environment variables using the \fB\s-1CONF\s0\fR library instead of calling \fB\f(BIgetenv()\fB\fR directly. The value string must not exceed 64k in length after variable expansion. Otherwise an error will occur. .PP It is possible to escape certain characters by using any kind of quote or the \fB\e\fR character. By making the last character of a line a \fB\e\fR a \fBvalue\fR string can be spread across multiple lines. In addition the sequences \fB\en\fR, \fB\er\fR, \fB\eb\fR and \fB\et\fR are recognized. .SH "OPENSSL LIBRARY CONFIGURATION" .IX Header "OPENSSL LIBRARY CONFIGURATION" In OpenSSL 0.9.7 and later applications can automatically configure certain aspects of OpenSSL using the master OpenSSL configuration file, or optionally an alternative configuration file. The \fBopenssl\fR utility includes this functionality: any sub command uses the master OpenSSL configuration file unless an option is used in the sub command to use an alternative configuration file. .PP To enable library configuration the default section needs to contain an appropriate line which points to the main configuration section. The default name is \fBopenssl_conf\fR which is used by the \fBopenssl\fR utility. Other applications may use an alternative name such as \fBmyapplicaton_conf\fR. .PP The configuration section should consist of a set of name value pairs which contain specific module configuration information. The \fBname\fR represents the name of the \fIconfiguration module\fR the meaning of the \fBvalue\fR is module specific: it may, for example, represent a further configuration section containing configuration module specific information. E.g. .PP .Vb 1 \& openssl_conf = openssl_init \& \& [openssl_init] \& \& oid_section = new_oids \& engines = engine_section \& \& [new_oids] \& \& ... new oids here ... \& \& [engine_section] \& \& ... engine stuff here ... .Ve .PP The features of each configuration module are described below. .SS "\s-1ASN1 OBJECT CONFIGURATION MODULE\s0" .IX Subsection "ASN1 OBJECT CONFIGURATION MODULE" This module has the name \fBoid_section\fR. The value of this variable points to a section containing name value pairs of OIDs: the name is the \s-1OID\s0 short and long name, the value is the numerical form of the \s-1OID.\s0 Although some of the \fBopenssl\fR utility sub commands already have their own \s-1ASN1 OBJECT\s0 section functionality not all do. By using the \s-1ASN1 OBJECT\s0 configuration module \&\fBall\fR the \fBopenssl\fR utility sub commands can see the new objects as well as any compliant applications. For example: .PP .Vb 1 \& [new_oids] \& \& some_new_oid = 1.2.3.4 \& some_other_oid = 1.2.3.5 .Ve .PP In OpenSSL 0.9.8 it is also possible to set the value to the long name followed by a comma and the numerical \s-1OID\s0 form. For example: .PP .Vb 1 \& shortName = some object long name, 1.2.3.4 .Ve .SS "\s-1ENGINE CONFIGURATION MODULE\s0" .IX Subsection "ENGINE CONFIGURATION MODULE" This \s-1ENGINE\s0 configuration module has the name \fBengines\fR. The value of this variable points to a section containing further \s-1ENGINE\s0 configuration information. .PP The section pointed to by \fBengines\fR is a table of engine names (though see \&\fBengine_id\fR below) and further sections containing configuration information specific to each \s-1ENGINE.\s0 .PP Each \s-1ENGINE\s0 specific section is used to set default algorithms, load dynamic, perform initialization and send ctrls. The actual operation performed depends on the \fIcommand\fR name which is the name of the name value pair. The currently supported commands are listed below. .PP For example: .PP .Vb 1 \& [engine_section] \& \& # Configure ENGINE named "foo" \& foo = foo_section \& # Configure ENGINE named "bar" \& bar = bar_section \& \& [foo_section] \& ... foo ENGINE specific commands ... \& \& [bar_section] \& ... "bar" ENGINE specific commands ... .Ve .PP The command \fBengine_id\fR is used to give the \s-1ENGINE\s0 name. If used this command must be first. For example: .PP .Vb 3 \& [engine_section] \& # This would normally handle an ENGINE named "foo" \& foo = foo_section \& \& [foo_section] \& # Override default name and use "myfoo" instead. \& engine_id = myfoo .Ve .PP The command \fBdynamic_path\fR loads and adds an \s-1ENGINE\s0 from the given path. It is equivalent to sending the ctrls \fB\s-1SO_PATH\s0\fR with the path argument followed by \fB\s-1LIST_ADD\s0\fR with value 2 and \fB\s-1LOAD\s0\fR to the dynamic \s-1ENGINE.\s0 If this is not the required behaviour then alternative ctrls can be sent directly to the dynamic \s-1ENGINE\s0 using ctrl commands. .PP The command \fBinit\fR determines whether to initialize the \s-1ENGINE.\s0 If the value is \fB0\fR the \s-1ENGINE\s0 will not be initialized, if \fB1\fR and attempt it made to initialized the \s-1ENGINE\s0 immediately. If the \fBinit\fR command is not present then an attempt will be made to initialize the \s-1ENGINE\s0 after all commands in its section have been processed. .PP The command \fBdefault_algorithms\fR sets the default algorithms an \s-1ENGINE\s0 will supply using the functions \fB\f(BIENGINE_set_default_string()\fB\fR .PP If the name matches none of the above command names it is assumed to be a ctrl command which is sent to the \s-1ENGINE.\s0 The value of the command is the argument to the ctrl command. If the value is the string \fB\s-1EMPTY\s0\fR then no value is sent to the command. .PP For example: .PP .Vb 1 \& [engine_section] \& \& # Configure ENGINE named "foo" \& foo = foo_section \& \& [foo_section] \& # Load engine from DSO \& dynamic_path = /some/path/fooengine.so \& # A foo specific ctrl. \& some_ctrl = some_value \& # Another ctrl that doesn\*(Aqt take a value. \& other_ctrl = EMPTY \& # Supply all default algorithms \& default_algorithms = ALL .Ve .SS "\s-1EVP CONFIGURATION MODULE\s0" .IX Subsection "EVP CONFIGURATION MODULE" This modules has the name \fBalg_section\fR which points to a section containing algorithm commands. .PP Currently the only algorithm command supported is \fBfips_mode\fR whose value should be a boolean string such as \fBon\fR or \fBoff\fR. If the value is \&\fBon\fR this attempt to enter \s-1FIPS\s0 mode. If the call fails or the library is not \s-1FIPS\s0 capable then an error occurs. .PP For example: .PP .Vb 1 \& alg_section = evp_settings \& \& [evp_settings] \& \& fips_mode = on .Ve .SH "NOTES" .IX Header "NOTES" If a configuration file attempts to expand a variable that doesn't exist then an error is flagged and the file will not load. This can happen if an attempt is made to expand an environment variable that doesn't exist. For example in a previous version of OpenSSL the default OpenSSL master configuration file used the value of \fB\s-1HOME\s0\fR which may not be defined on non Unix systems and would cause an error. .PP This can be worked around by including a \fBdefault\fR section to provide a default value: then if the environment lookup fails the default value will be used instead. For this to work properly the default value must be defined earlier in the configuration file than the expansion. See the \fB\s-1EXAMPLES\s0\fR section for an example of how to do this. .PP If the same variable exists in the same section then all but the last value will be silently ignored. In certain circumstances such as with DNs the same field may occur multiple times. This is usually worked around by ignoring any characters before an initial \fB.\fR e.g. .PP .Vb 2 \& 1.OU="My first OU" \& 2.OU="My Second OU" .Ve .SH "EXAMPLES" .IX Header "EXAMPLES" Here is a sample configuration file using some of the features mentioned above. .PP .Vb 1 \& # This is the default section. \& \& HOME=/temp \& RANDFILE= ${ENV::HOME}/.rnd \& configdir=$ENV::HOME/config \& \& [ section_one ] \& \& # We are now in section one. \& \& # Quotes permit leading and trailing whitespace \& any = " any variable name " \& \& other = A string that can \e \& cover several lines \e \& by including \e\e characters \& \& message = Hello World\en \& \& [ section_two ] \& \& greeting = $section_one::message .Ve .PP This next example shows how to expand environment variables safely. .PP Suppose you want a variable called \fBtmpfile\fR to refer to a temporary filename. The directory it is placed in can determined by the the \fB\s-1TEMP\s0\fR or \fB\s-1TMP\s0\fR environment variables but they may not be set to any value at all. If you just include the environment variable names and the variable doesn't exist then this will cause an error when an attempt is made to load the configuration file. By making use of the default section both values can be looked up with \fB\s-1TEMP\s0\fR taking priority and \fB/tmp\fR used if neither is defined: .PP .Vb 5 \& TMP=/tmp \& # The above value is used if TMP isn\*(Aqt in the environment \& TEMP=$ENV::TMP \& # The above value is used if TEMP isn\*(Aqt in the environment \& tmpfile=${ENV::TEMP}/tmp.filename .Ve .PP Simple OpenSSL library configuration example to enter \s-1FIPS\s0 mode: .PP .Vb 3 \& # Default appname: should match "appname" parameter (if any) \& # supplied to CONF_modules_load_file et al. \& openssl_conf = openssl_conf_section \& \& [openssl_conf_section] \& # Configuration module list \& alg_section = evp_sect \& \& [evp_sect] \& # Set to "yes" to enter FIPS mode if supported \& fips_mode = yes .Ve .PP Note: in the above example you will get an error in non \s-1FIPS\s0 capable versions of OpenSSL. .PP More complex OpenSSL library configuration. Add \s-1OID\s0 and don't enter \s-1FIPS\s0 mode: .PP .Vb 3 \& # Default appname: should match "appname" parameter (if any) \& # supplied to CONF_modules_load_file et al. \& openssl_conf = openssl_conf_section \& \& [openssl_conf_section] \& # Configuration module list \& alg_section = evp_sect \& oid_section = new_oids \& \& [evp_sect] \& # This will have no effect as FIPS mode is off by default. \& # Set to "yes" to enter FIPS mode, if supported \& fips_mode = no \& \& [new_oids] \& # New OID, just short name \& newoid1 = 1.2.3.4.1 \& # New OID shortname and long name \& newoid2 = New OID 2 long name, 1.2.3.4.2 .Ve .PP The above examples can be used with with any application supporting library configuration if \*(L"openssl_conf\*(R" is modified to match the appropriate \*(L"appname\*(R". .PP For example if the second sample file above is saved to \*(L"example.cnf\*(R" then the command line: .PP .Vb 1 \& OPENSSL_CONF=example.cnf openssl asn1parse \-genstr OID:1.2.3.4.1 .Ve .PP will output: .PP .Vb 1 \& 0:d=0 hl=2 l= 4 prim: OBJECT :newoid1 .Ve .PP showing that the \s-1OID \s0\*(L"newoid1\*(R" has been added as \*(L"1.2.3.4.1\*(R". .SH "BUGS" .IX Header "BUGS" Currently there is no way to include characters using the octal \fB\ennn\fR form. Strings are all null terminated so nulls cannot form part of the value. .PP The escaping isn't quite right: if you want to use sequences like \fB\en\fR you can't use any quote escaping on the same line. .PP Files are loaded in a single pass. This means that an variable expansion will only work if the variables referenced are defined earlier in the file. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIx509\fR\|(1), \fIreq\fR\|(1), \fIca\fR\|(1) man5/x509v3_config.5000064400000054066147210533270010014 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "X509V3_CONFIG 5" .TH X509V3_CONFIG 5 "2019-12-20" "1.0.2u" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" x509v3_config \- X509 V3 certificate extension configuration format .SH "DESCRIPTION" .IX Header "DESCRIPTION" Several of the OpenSSL utilities can add extensions to a certificate or certificate request based on the contents of a configuration file. .PP Typically the application will contain an option to point to an extension section. Each line of the extension section takes the form: .PP .Vb 1 \& extension_name=[critical,] extension_options .Ve .PP If \fBcritical\fR is present then the extension will be critical. .PP The format of \fBextension_options\fR depends on the value of \fBextension_name\fR. .PP There are four main types of extension: \fIstring\fR extensions, \fImulti-valued\fR extensions, \fIraw\fR and \fIarbitrary\fR extensions. .PP String extensions simply have a string which contains either the value itself or how it is obtained. .PP For example: .PP .Vb 1 \& nsComment="This is a Comment" .Ve .PP Multi-valued extensions have a short form and a long form. The short form is a list of names and values: .PP .Vb 1 \& basicConstraints=critical,CA:true,pathlen:1 .Ve .PP The long form allows the values to be placed in a separate section: .PP .Vb 1 \& basicConstraints=critical,@bs_section \& \& [bs_section] \& \& CA=true \& pathlen=1 .Ve .PP Both forms are equivalent. .PP The syntax of raw extensions is governed by the extension code: it can for example contain data in multiple sections. The correct syntax to use is defined by the extension code itself: check out the certificate policies extension for an example. .PP If an extension type is unsupported then the \fIarbitrary\fR extension syntax must be used, see the \s-1ARBITRARY EXTENSIONS\s0 section for more details. .SH "STANDARD EXTENSIONS" .IX Header "STANDARD EXTENSIONS" The following sections describe each supported extension in detail. .SS "Basic Constraints." .IX Subsection "Basic Constraints." This is a multi valued extension which indicates whether a certificate is a \s-1CA\s0 certificate. The first (mandatory) name is \fB\s-1CA\s0\fR followed by \fB\s-1TRUE\s0\fR or \&\fB\s-1FALSE\s0\fR. If \fB\s-1CA\s0\fR is \fB\s-1TRUE\s0\fR then an optional \fBpathlen\fR name followed by an non-negative value can be included. .PP For example: .PP .Vb 1 \& basicConstraints=CA:TRUE \& \& basicConstraints=CA:FALSE \& \& basicConstraints=critical,CA:TRUE, pathlen:0 .Ve .PP A \s-1CA\s0 certificate \fBmust\fR include the basicConstraints value with the \s-1CA\s0 field set to \s-1TRUE.\s0 An end user certificate must either set \s-1CA\s0 to \s-1FALSE\s0 or exclude the extension entirely. Some software may require the inclusion of basicConstraints with \s-1CA\s0 set to \s-1FALSE\s0 for end entity certificates. .PP The pathlen parameter indicates the maximum number of CAs that can appear below this one in a chain. So if you have a \s-1CA\s0 with a pathlen of zero it can only be used to sign end user certificates and not further CAs. .SS "Key Usage." .IX Subsection "Key Usage." Key usage is a multi valued extension consisting of a list of names of the permitted key usages. .PP The supporte names are: digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment, keyAgreement, keyCertSign, cRLSign, encipherOnly and decipherOnly. .PP Examples: .PP .Vb 1 \& keyUsage=digitalSignature, nonRepudiation \& \& keyUsage=critical, keyCertSign .Ve .SS "Extended Key Usage." .IX Subsection "Extended Key Usage." This extensions consists of a list of usages indicating purposes for which the certificate public key can be used for, .PP These can either be object short names or the dotted numerical form of OIDs. While any \s-1OID\s0 can be used only certain values make sense. In particular the following \s-1PKIX, NS\s0 and \s-1MS\s0 values are meaningful: .PP .Vb 10 \& Value Meaning \& \-\-\-\-\- \-\-\-\-\-\-\- \& serverAuth SSL/TLS Web Server Authentication. \& clientAuth SSL/TLS Web Client Authentication. \& codeSigning Code signing. \& emailProtection E\-mail Protection (S/MIME). \& timeStamping Trusted Timestamping \& msCodeInd Microsoft Individual Code Signing (authenticode) \& msCodeCom Microsoft Commercial Code Signing (authenticode) \& msCTLSign Microsoft Trust List Signing \& msSGC Microsoft Server Gated Crypto \& msEFS Microsoft Encrypted File System \& nsSGC Netscape Server Gated Crypto .Ve .PP Examples: .PP .Vb 2 \& extendedKeyUsage=critical,codeSigning,1.2.3.4 \& extendedKeyUsage=nsSGC,msSGC .Ve .SS "Subject Key Identifier." .IX Subsection "Subject Key Identifier." This is really a string extension and can take two possible values. Either the word \fBhash\fR which will automatically follow the guidelines in \s-1RFC3280\s0 or a hex string giving the extension value to include. The use of the hex string is strongly discouraged. .PP Example: .PP .Vb 1 \& subjectKeyIdentifier=hash .Ve .SS "Authority Key Identifier." .IX Subsection "Authority Key Identifier." The authority key identifier extension permits two options. keyid and issuer: both can take the optional value \*(L"always\*(R". .PP If the keyid option is present an attempt is made to copy the subject key identifier from the parent certificate. If the value \*(L"always\*(R" is present then an error is returned if the option fails. .PP The issuer option copies the issuer and serial number from the issuer certificate. This will only be done if the keyid option fails or is not included unless the \*(L"always\*(R" flag will always include the value. .PP Example: .PP .Vb 1 \& authorityKeyIdentifier=keyid,issuer .Ve .SS "Subject Alternative Name." .IX Subsection "Subject Alternative Name." The subject alternative name extension allows various literal values to be included in the configuration file. These include \fBemail\fR (an email address) \&\fB\s-1URI\s0\fR a uniform resource indicator, \fB\s-1DNS\s0\fR (a \s-1DNS\s0 domain name), \fB\s-1RID\s0\fR (a registered \s-1ID: OBJECT IDENTIFIER\s0), \fB\s-1IP\s0\fR (an \s-1IP\s0 address), \fBdirName\fR (a distinguished name) and otherName. .PP The email option include a special 'copy' value. This will automatically include and email addresses contained in the certificate subject name in the extension. .PP The \s-1IP\s0 address used in the \fB\s-1IP\s0\fR options can be in either IPv4 or IPv6 format. .PP The value of \fBdirName\fR should point to a section containing the distinguished name to use as a set of name value pairs. Multi values AVAs can be formed by prefacing the name with a \fB+\fR character. .PP otherName can include arbitrary data associated with an \s-1OID:\s0 the value should be the \s-1OID\s0 followed by a semicolon and the content in standard \&\fIASN1_generate_nconf\fR\|(3) format. .PP Examples: .PP .Vb 5 \& subjectAltName=email:copy,email:my@other.address,URI:http://my.url.here/ \& subjectAltName=IP:192.168.7.1 \& subjectAltName=IP:13::17 \& subjectAltName=email:my@other.address,RID:1.2.3.4 \& subjectAltName=otherName:1.2.3.4;UTF8:some other identifier \& \& subjectAltName=dirName:dir_sect \& \& [dir_sect] \& C=UK \& O=My Organization \& OU=My Unit \& CN=My Name .Ve .SS "Issuer Alternative Name." .IX Subsection "Issuer Alternative Name." The issuer alternative name option supports all the literal options of subject alternative name. It does \fBnot\fR support the email:copy option because that would not make sense. It does support an additional issuer:copy option that will copy all the subject alternative name values from the issuer certificate (if possible). .PP Example: .PP .Vb 1 \& issuserAltName = issuer:copy .Ve .SS "Authority Info Access." .IX Subsection "Authority Info Access." The authority information access extension gives details about how to access certain information relating to the \s-1CA.\s0 Its syntax is accessOID;location where \fIlocation\fR has the same syntax as subject alternative name (except that email:copy is not supported). accessOID can be any valid \s-1OID\s0 but only certain values are meaningful, for example \s-1OCSP\s0 and caIssuers. .PP Example: .PP .Vb 2 \& authorityInfoAccess = OCSP;URI:http://ocsp.my.host/ \& authorityInfoAccess = caIssuers;URI:http://my.ca/ca.html .Ve .SS "\s-1CRL\s0 distribution points." .IX Subsection "CRL distribution points." This is a multi-valued extension whose options can be either in name:value pair using the same form as subject alternative name or a single value representing a section name containing all the distribution point fields. .PP For a name:value pair a new DistributionPoint with the fullName field set to the given value both the cRLissuer and reasons fields are omitted in this case. .PP In the single option case the section indicated contains values for each field. In this section: .PP If the name is \*(L"fullname\*(R" the value field should contain the full name of the distribution point in the same format as subject alternative name. .PP If the name is \*(L"relativename\*(R" then the value field should contain a section name whose contents represent a \s-1DN\s0 fragment to be placed in this field. .PP The name \*(L"CRLIssuer\*(R" if present should contain a value for this field in subject alternative name format. .PP If the name is \*(L"reasons\*(R" the value field should consist of a comma separated field containing the reasons. Valid reasons are: \*(L"keyCompromise\*(R", \&\*(L"CACompromise\*(R", \*(L"affiliationChanged\*(R", \*(L"superseded\*(R", \*(L"cessationOfOperation\*(R", \&\*(L"certificateHold\*(R", \*(L"privilegeWithdrawn\*(R" and \*(L"AACompromise\*(R". .PP Simple examples: .PP .Vb 2 \& crlDistributionPoints=URI:http://myhost.com/myca.crl \& crlDistributionPoints=URI:http://my.com/my.crl,URI:http://oth.com/my.crl .Ve .PP Full distribution point example: .PP .Vb 1 \& crlDistributionPoints=crldp1_section \& \& [crldp1_section] \& \& fullname=URI:http://myhost.com/myca.crl \& CRLissuer=dirName:issuer_sect \& reasons=keyCompromise, CACompromise \& \& [issuer_sect] \& C=UK \& O=Organisation \& CN=Some Name .Ve .SS "Issuing Distribution Point" .IX Subsection "Issuing Distribution Point" This extension should only appear in CRLs. It is a multi valued extension whose syntax is similar to the \*(L"section\*(R" pointed to by the \s-1CRL\s0 distribution points extension with a few differences. .PP The names \*(L"reasons\*(R" and \*(L"CRLissuer\*(R" are not recognized. .PP The name \*(L"onlysomereasons\*(R" is accepted which sets this field. The value is in the same format as the \s-1CRL\s0 distribution point \*(L"reasons\*(R" field. .PP The names \*(L"onlyuser\*(R", \*(L"onlyCA\*(R", \*(L"onlyAA\*(R" and \*(L"indirectCRL\*(R" are also accepted the values should be a boolean value (\s-1TRUE\s0 or \s-1FALSE\s0) to indicate the value of the corresponding field. .PP Example: .PP .Vb 1 \& issuingDistributionPoint=critical, @idp_section \& \& [idp_section] \& \& fullname=URI:http://myhost.com/myca.crl \& indirectCRL=TRUE \& onlysomereasons=keyCompromise, CACompromise \& \& [issuer_sect] \& C=UK \& O=Organisation \& CN=Some Name .Ve .SS "Certificate Policies." .IX Subsection "Certificate Policies." This is a \fIraw\fR extension. All the fields of this extension can be set by using the appropriate syntax. .PP If you follow the \s-1PKIX\s0 recommendations and just using one \s-1OID\s0 then you just include the value of that \s-1OID.\s0 Multiple OIDs can be set separated by commas, for example: .PP .Vb 1 \& certificatePolicies= 1.2.4.5, 1.1.3.4 .Ve .PP If you wish to include qualifiers then the policy \s-1OID\s0 and qualifiers need to be specified in a separate section: this is done by using the \f(CW@section\fR syntax instead of a literal \s-1OID\s0 value. .PP The section referred to must include the policy \s-1OID\s0 using the name policyIdentifier, cPSuri qualifiers can be included using the syntax: .PP .Vb 1 \& CPS.nnn=value .Ve .PP userNotice qualifiers can be set using the syntax: .PP .Vb 1 \& userNotice.nnn=@notice .Ve .PP The value of the userNotice qualifier is specified in the relevant section. This section can include explicitText, organization and noticeNumbers options. explicitText and organization are text strings, noticeNumbers is a comma separated list of numbers. The organization and noticeNumbers options (if included) must \s-1BOTH\s0 be present. If you use the userNotice option with \s-1IE5\s0 then you need the 'ia5org' option at the top level to modify the encoding: otherwise it will not be interpreted properly. .PP Example: .PP .Vb 1 \& certificatePolicies=ia5org,1.2.3.4,1.5.6.7.8,@polsect \& \& [polsect] \& \& policyIdentifier = 1.3.5.8 \& CPS.1="http://my.host.name/" \& CPS.2="http://my.your.name/" \& userNotice.1=@notice \& \& [notice] \& \& explicitText="Explicit Text Here" \& organization="Organisation Name" \& noticeNumbers=1,2,3,4 .Ve .PP The \fBia5org\fR option changes the type of the \fIorganization\fR field. In \s-1RFC2459\s0 it can only be of type DisplayText. In \s-1RFC3280\s0 IA5Strring is also permissible. Some software (for example some versions of \s-1MSIE\s0) may require ia5org. .SS "Policy Constraints" .IX Subsection "Policy Constraints" This is a multi-valued extension which consisting of the names \&\fBrequireExplicitPolicy\fR or \fBinhibitPolicyMapping\fR and a non negative intger value. At least one component must be present. .PP Example: .PP .Vb 1 \& policyConstraints = requireExplicitPolicy:3 .Ve .SS "Inhibit Any Policy" .IX Subsection "Inhibit Any Policy" This is a string extension whose value must be a non negative integer. .PP Example: .PP .Vb 1 \& inhibitAnyPolicy = 2 .Ve .SS "Name Constraints" .IX Subsection "Name Constraints" The name constraints extension is a multi-valued extension. The name should begin with the word \fBpermitted\fR or \fBexcluded\fR followed by a \fB;\fR. The rest of the name and the value follows the syntax of subjectAltName except email:copy is not supported and the \fB\s-1IP\s0\fR form should consist of an \s-1IP\s0 addresses and subnet mask separated by a \fB/\fR. .PP Examples: .PP .Vb 1 \& nameConstraints=permitted;IP:192.168.0.0/255.255.0.0 \& \& nameConstraints=permitted;email:.somedomain.com \& \& nameConstraints=excluded;email:.com .Ve .SS "\s-1OCSP\s0 No Check" .IX Subsection "OCSP No Check" The \s-1OCSP\s0 No Check extension is a string extension but its value is ignored. .PP Example: .PP .Vb 1 \& noCheck = ignored .Ve .SH "DEPRECATED EXTENSIONS" .IX Header "DEPRECATED EXTENSIONS" The following extensions are non standard, Netscape specific and largely obsolete. Their use in new applications is discouraged. .SS "Netscape String extensions." .IX Subsection "Netscape String extensions." Netscape Comment (\fBnsComment\fR) is a string extension containing a comment which will be displayed when the certificate is viewed in some browsers. .PP Example: .PP .Vb 1 \& nsComment = "Some Random Comment" .Ve .PP Other supported extensions in this category are: \fBnsBaseUrl\fR, \&\fBnsRevocationUrl\fR, \fBnsCaRevocationUrl\fR, \fBnsRenewalUrl\fR, \fBnsCaPolicyUrl\fR and \fBnsSslServerName\fR. .SS "Netscape Certificate Type" .IX Subsection "Netscape Certificate Type" This is a multi-valued extensions which consists of a list of flags to be included. It was used to indicate the purposes for which a certificate could be used. The basicConstraints, keyUsage and extended key usage extensions are now used instead. .PP Acceptable values for nsCertType are: \fBclient\fR, \fBserver\fR, \fBemail\fR, \&\fBobjsign\fR, \fBreserved\fR, \fBsslCA\fR, \fBemailCA\fR, \fBobjCA\fR. .SH "ARBITRARY EXTENSIONS" .IX Header "ARBITRARY EXTENSIONS" If an extension is not supported by the OpenSSL code then it must be encoded using the arbitrary extension format. It is also possible to use the arbitrary format for supported extensions. Extreme care should be taken to ensure that the data is formatted correctly for the given extension type. .PP There are two ways to encode arbitrary extensions. .PP The first way is to use the word \s-1ASN1\s0 followed by the extension content using the same syntax as \fIASN1_generate_nconf\fR\|(3). For example: .PP .Vb 1 \& 1.2.3.4=critical,ASN1:UTF8String:Some random data \& \& 1.2.3.4=ASN1:SEQUENCE:seq_sect \& \& [seq_sect] \& \& field1 = UTF8:field1 \& field2 = UTF8:field2 .Ve .PP It is also possible to use the word \s-1DER\s0 to include the raw encoded data in any extension. .PP .Vb 2 \& 1.2.3.4=critical,DER:01:02:03:04 \& 1.2.3.4=DER:01020304 .Ve .PP The value following \s-1DER\s0 is a hex dump of the \s-1DER\s0 encoding of the extension Any extension can be placed in this form to override the default behaviour. For example: .PP .Vb 1 \& basicConstraints=critical,DER:00:01:02:03 .Ve .SH "WARNING" .IX Header "WARNING" There is no guarantee that a specific implementation will process a given extension. It may therefore be sometimes possible to use certificates for purposes prohibited by their extensions because a specific application does not recognize or honour the values of the relevant extensions. .PP The \s-1DER\s0 and \s-1ASN1\s0 options should be used with caution. It is possible to create totally invalid extensions if they are not used carefully. .SH "NOTES" .IX Header "NOTES" If an extension is multi-value and a field value must contain a comma the long form must be used otherwise the comma would be misinterpreted as a field separator. For example: .PP .Vb 1 \& subjectAltName=URI:ldap://somehost.com/CN=foo,OU=bar .Ve .PP will produce an error but the equivalent form: .PP .Vb 1 \& subjectAltName=@subject_alt_section \& \& [subject_alt_section] \& subjectAltName=URI:ldap://somehost.com/CN=foo,OU=bar .Ve .PP is valid. .PP Due to the behaviour of the OpenSSL \fBconf\fR library the same field name can only occur once in a section. This means that: .PP .Vb 1 \& subjectAltName=@alt_section \& \& [alt_section] \& \& email=steve@here \& email=steve@there .Ve .PP will only recognize the last value. This can be worked around by using the form: .PP .Vb 1 \& [alt_section] \& \& email.1=steve@here \& email.2=steve@there .Ve .SH "HISTORY" .IX Header "HISTORY" The X509v3 extension code was first added to OpenSSL 0.9.2. .PP Policy mappings, inhibit any policy and name constraints support was added in OpenSSL 0.9.8 .PP The \fBdirectoryName\fR and \fBotherName\fR option as well as the \fB\s-1ASN1\s0\fR option for arbitrary extensions was added in OpenSSL 0.9.8 .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIreq\fR\|(1), \fIca\fR\|(1), \fIx509\fR\|(1), \&\fIASN1_generate_nconf\fR\|(3) man3/mcrypt.3000064400000060470147221677050007026 0ustar00.TH MCRYPT 3 "10 March 2002" .SH NAME libmcrypt \- encryption/decryption library .SH SYNOPSIS [see also .I mcrypt.h for more information] .SH DESCRIPTION The .I libmcrypt is a data encryption library. The library is thread safe and provides encryption and decryption functions. This version of the library supports many encryption algorithms and encryption modes. Some algorithms which are supported: SERPENT, RIJNDAEL, 3DES, GOST, SAFER+, CAST-256, RC2, XTEA, 3WAY, TWOFISH, BLOWFISH, ARCFOUR, WAKE and more. .LP OFB, CBC, ECB, nOFB, nCFB and CFB are the modes that all algorithms may function. ECB, CBC, encrypt in blocks but CTR, nCFB, nOFB, CFB and OFB in bytes (streams). Note that CFB and OFB in the rest of the document represent the "8bit CFB or OFB" mode. nOFB and nCFB modes represents a n-bit OFB/CFB mode, n is used to represent the algorithm's block size. The library supports an extra STREAM mode to include some stream algorithms like WAKE or ARCFOUR. In this version of the library all modes and algorithms are modular, which means that the algorithm and the mode is loaded at run-time. This way you can add algorithms and modes faster, and much easier. .I LibMcrypt includes the following symmetric (block) algorithms: .B DES: The traditional DES algorithm designed by IBM and US NSA. Uses 56 bit key and 64 bit block. It is now considered a weak algorithm, due to its small key size (it was never intended for use with classified data). .B 3DES or Triple DES: DES but with multiple (triple) encryption. It encrypts the plaintext once, then decrypts it with the second key, and encrypts it again with the third key (outer cbc mode used for cbc). Much better than traditional DES since the key is now 168 bits (actually the effective key length is 112 bits due to the meet-in-the-middle attack). .B CAST-128: CAST was designed in Canada by Carlisle Adams and Stafford Tavares. The original algorithm used a 64bit key and block. The algorithm here is CAST-128 (also called CAST5) which has a 128bit key and 64bit block size. .B CAST-256: CAST-256 was designed by Carlisle Adams. It is a symmetric cipher designed in accordance with the CAST design procedure. It is an extention of the CAST-128, having a 128 bit block size, and up to 256 bit key size. .B xTEA: TEA stands for the Tiny Encryption Algorithm. It is a feistel cipher designed by David Wheeler & Roger M. Needham. The original TEA was intended for use in applications where code size is at a premium, or where it is necessary for someone to remember the algorithm and code it on an arbitrary machine at a later time. The algorithm used here is extended TEA and has a 128bit key size and 64bit block size. .B 3-WAY: The 3way algorithm designed by Joan Daemen. It uses key and block size of 96 bits. .B SKIPJACK: SKIPJACK was designed by the US NSA. It was part of the ill-fated "Clipper" Escrowed Encryption Standard (EES) (FIPS 185) proposal. It operates on 64bit blocks and uses a key of 80 bits. SKIPJACK is provided only as an extra module to libmcrypt. .B BLOWFISH: The Blowfish algorithm designed by Bruce Schneier. It is better and faster than DES. It can use a key up to 448 bits. .B TWOFISH: Twofish was designed by Bruce Schneier, Doug Whiting, John Kelsey, Chris Hall, David Wagner for Counterpane systems. Intended to be highly secure and highly flexible. It uses a 128bit block size and 128,192,256 bit key size. (Twofish is the default algorithm) .B LOKI97: LOKI97 was designed by Lawrie Brown and Josef Pieprzyk. It has a 128-bit block length and a 256bit key schedule, which can be initialized using 128, 192 or 256 bit keys. It has evolved from the earlier LOKI89 and LOKI91 64-bit block ciphers, with a strengthened key schedule and a larger keyspace. .B RC2: RC2 (RC stands for Rivest Cipher) was designed by Ron Rivest. It uses block size of 64 bit and a key size from 8 to 1024 bits. It is optimized for 16bit microprocessors (reflecting its age). It is described in the RFC2268. .B ARCFOUR: RC4 was designed by Ron Rivest. For several years this algorithm was considered a trade secret and details were not available. In September 1994 someone posted the source code in the cypherpunks mailing list. Although the source code is now available RC4 is trademarked by RSADSI so a compatible cipher named ARCFOUR is included in the mcrypt distribution. It is a stream cipher and has a maximum key of 2048 bits. .B RC6: RC6 was designed by Ron Rivest for RSA labs. In mcrypt it uses block size of 128 bit and a key size of 128/192/256 bits. Refer to RSA Labs and Ron Rivest for any copyright, patent or license issues for the RC6 algorithm. RC6 is provided only as an extra module to libmcrypt. .B RIJNDAEL: Rijndael is a block cipher, designed by Joan Daemen and Vincent Rijmen, and was approved for the USA's NIST Advanced Encryption Standard, FIPS-197. The cipher has a variable block length and key length. Rijndael can be implemented very efficiently on a wide range of processors and in hardware. The design of Rijndael was strongly influenced by the design of the block cipher Square. There exist three versions of this algorithm, namely: .B RIJNDAEL-128 (the AES winner) , .B RIJNDAEL-192 , .B RIJNDAEL-256 The numerals 128, 192 and 256 stand for the length of the block size. .B MARS: MARS is a 128-bit block cipher designed by IBM as a candidate for the Advanced Encryption Standard. Refer to IBM for any copyright, patent or license issues for the MARS algorithm. MARS is provided only as an extra module to libmcrypt. .B PANAMA: PANAMA is a cryptographic module that can be used both as a cryptographic hash function and as a stream cipher. It designed by Joan Daemen and Craig Clapp. PANAMA (the stream cipher) is included in libmcrypt. .B WAKE: WAKE stands for Word Auto Key Encryption, and is an encryption system for medium speed encryption of blocks and of high security. WAKE was designed by David J. Wheeler. It is intended to be fast on most computers and relies on repeated table use and having a large state space. .B SERPENT: Serpent is a 128-bit block cipher designed by Ross Anderson, Eli Biham and Lars Knudsen as a candidate for the Advanced Encryption Standard. Serpent's design was limited to well understood mechanisms, so that could rely on the wide experience of block cipher cryptanalysis, and achieve the highest practical level of assurance that no shortcut attack will be found. Serpent has twice as many rounds as are necessary, to block all currently known shortcut attacks. Despite these exacting design constraints, Serpent is faster than DES. .B IDEA: IDEA stands for International Data Encryption Algorithm and was designed by Xuejia Lai and James Massey. It operates on 64bit blocks and uses a key of 128 bits. Refer to Ascom-Tech AG for any copyright, patent or license issues for the IDEA algorithm. IDEA is provided only as an extra module to libmcrypt. .B ENIGMA (UNIX crypt): A one-rotor machine designed along the lines of Enigma but considerable trivialized. Very easy to break for a skilled cryptanalyst. I suggest against using it. Added just for completeness. .B GOST: A former soviet union's algorithm. An acronym for "Gosudarstvennyi Standard" or Government Standard. It uses a 256 bit key and a 64 bit block. The S-boxes used here are described in the Applied Cryptography book by Bruce Schneier. They were used in an application for the Central Bank of the Russian Federation. Some quotes from gost.c: The standard is written by A. Zabotin (project leader), G.P. Glazkov, and V.B. Isaeva. It was accepted and introduced into use by the action of the State Standards Committee of the USSR on 2 June 1989 as No. 1409. It was to be reviewed in 1993, but whether anyone wishes to take on this obligation from the USSR is questionable. This code is based on the 25 November 1993 draft translation by Aleksandr Malchik, with Whitfield Diffie, of the Government Standard of the U.S.S.R. GOST 28149-89, "Cryptographic Transformation Algorithm", effective 1 July 1990. (Whitfield.Diffie@eng.sun.com) Some details have been cleared up by the paper "Soviet Encryption Algorithm" by Josef Pieprzyk and Leonid Tombak of the University of Wollongong, New South Wales. (josef/leo@cs.adfa.oz.au) .B SAFER: SAFER (Secure And Fast Encryption Routine) is a block cipher developed by Prof. J.L. Massey at the Swiss Federal Institute of Technology. There exist four versions of this algorithm, namely: .B SAFER K-64 , .B SAFER K-128 , .B SAFER SK-64 and .B SAFER SK-128. The numerals 64 and 128 stand for the length of the user-selected key, 'K' stands for the original key schedule and 'SK' stands for the strengthened key schedule (in which some of the "weaknesses" of the original key schedule have been removed). In mcrypt only SAFER SK-64 and SAFER SK-128 are used. .B SAFER+: SAFER+ was designed by Prof. J.L. Massey, Prof. Gurgen H. Khachatrian and Dr. Melsik K. Kuregian for Cylink. SAFER+ is based on the existing SAFER family of ciphers and provides for a block size of 128bits and 128, 192 and 256 bits key length. .LP A short description of the modes supported by libmcrypt: .B STREAM: The mode used with stream ciphers. In this mode the keystream from the cipher is XORed with the plaintext. Thus you should NOT ever use the same key. .B ECB: The Electronic CodeBook mode. It is the simplest mode to use with a block cipher. Encrypts each block independently. It is a block mode so plaintext length should be a multiple of blocksize (n*blocksize). .B CBC: The Cipher Block Chaining mode. It is better than ECB since the plaintext is XOR'ed with the previous ciphertext. A random block should be placed as the first block (IV) so the same block or messages always encrypt to something different. It is a block mode so plaintext length should be a multiple of blocksize (n*blocksize). .B CFB: The Cipher-Feedback Mode (in 8bit). This is a self-synchronizing stream cipher implemented from a block cipher. This is the best mode to use for encrypting strings or streams. This mode requires an IV. .B OFB: The Output-Feedback Mode (in 8bit). This is a synchronous stream cipher implemented from a block cipher. It is intended for use in noisy lines, because corrupted ciphertext blocks do not corrupt the plaintext blocks that follow. Insecure (because used in 8bit mode) so it is recommended not to use it. Added just for completeness. .B nOFB: The Output-Feedback Mode (in nbit). n Is the size of the block of the algorithm. This is a synchronous stream cipher implemented from a block cipher. It is intended for use in noisy lines, because corrupted ciphertext blocks do not corrupt the plaintext blocks that follow. This mode operates in streams. .B nCFB: The Cipher-Feedback Mode (in nbit). n Is the size of the block of the algorithm. This is a self synchronizing stream cipher implemented from a block cipher. This mode operates in streams. .B CTR: The Counter Mode. This is a stream cipher implemented from a block cipher. This mode uses the cipher to encrypt a set of input blocks, called counters, to produce blocks that will be XORed with the plaintext. In libmcrypt the counter is the given IV which is incremented at each step. This mode operates in streams. .B Error Recovery in these modes: If bytes are removed or lost from the file or stream in ECB, CTR, CBC and OFB modes, are impossible to recover, although CFB and nCFB modes will recover. If some bytes are altered then a full block of plaintext is affected in ECB, nOFB and CTR modes, two blocks in CBC, nCFB and CFB modes, but only the corresponding byte in OFB mode. .LP Encryption can be done as follows: A call to function: .B MCRYPT mcrypt_module_open( char *algorithm, char* algorithm_directory, .B char* mode, char* mode_directory); This function associates the algorithm and the mode specified. The name of the algorithm is specified in algorithm, eg "twofish", and the algorithm_directory is the directory where the algorithm is (it may be null if it is the default). The same applies for the mode. The library is closed by calling mcrypt_module_close(), but you should not call that function if mcrypt_generic_end() is called before. Normally it returns an encryption descriptor, or MCRYPT_FAILED on error. A call to function: .B int mcrypt_generic_init( MCRYPT td, void *key, .B int lenofkey, .B void *IV); This function initializes all buffers for the specified thread The maximum value of lenofkey should be the one obtained by calling mcrypt_get_key_size() and every value smaller than this is legal. Note that Lenofkey should be specified in bytes not bits. The IV should normally have the size of the algorithms block size, but you must obtain the size by calling mcrypt_get_iv_size(). IV is ignored in ECB. IV MUST exist in CFB, CBC, STREAM, nOFB and OFB modes. It needs to be random and unique (but not secret). The same IV must be used for encryption/decryption. After calling this function you can use the descriptor for encryption or decryption (not both). Returns a negative value on error. To encrypt now call: .B int mcrypt_generic( MCRYPT td, void *plaintext, int len); This is the main encryption function. td is the encryption descriptor returned by mcrypt_generic_init(). Plaintext is the plaintext you wish to encrypt and len should be the length (in bytes) of the plaintext and it should be k*algorithms_block_size if used in a mode which operated in blocks (cbc, ecb, nofb), or whatever when used in cfb or ofb which operate in streams. The plaintext is replaced by the ciphertext. Returns 0 on success. To decrypt you can call: .B int mdecrypt_generic( MCRYPT td, void *ciphertext, int len); The decryption function. It is almost the same with mcrypt_generic. Returns 0 on success. When you're finished you should call: .B int mcrypt_generic_end( MCRYPT td); This function terminates encryption specified by the encryption descriptor (td). Actually it clears all buffers, and closes all the modules used. Returns a negative value on error. .B This function is deprecated. Use mcrypt_generic_deinit() and mcrypt_module_close() instead. .B int mcrypt_generic_deinit( MCRYPT td); This function terminates encryption specified by the encryption descriptor (td). Actually it clears all buffers. The difference with mcrypt_generic_end() is that this function does not close the modules used. Thus you should use mcrypt_module_close(). Using this function you gain in speed if you use the same modules for several encryptions. Returns a negative value on error. .B int mcrypt_module_close( MCRYPT td); This function closes the modules used by the descriptor td. .P These are some extra functions that operate on modules that have been opened: These functions have the prefix mcrypt_enc_*. .B int mcrypt_enc_set_state(MCRYPT td, void *state, int size); This function sets the state of the algorithm. Can be used only with block algorithms and certain modes like CBC, CFB etc. It is usefully if you want to restart or start a different encryption quickly. Returns zero on success. The state is the output of mcrypt_enc_get_state(). .B int mcrypt_enc_get_state(MCRYPT td, void *state, int *size); This function returns the state of the algorithm. Can be used only certain modes and algorithms. The size will hold the size of the state and the state must have enough bytes to hold it. Returns zero on success. .B int mcrypt_enc_self_test( MCRYPT td); This function runs the self test on the algorithm specified by the descriptor td. If the self test succeeds it returns zero. .B int mcrypt_enc_is_block_algorithm_mode( MCRYPT td); Returns 1 if the mode is for use with block algorithms, otherwise it returns 0. (eg. 0 for stream, and 1 for cbc, cfb, ofb) .B int mcrypt_enc_is_block_algorithm( MCRYPT td); Returns 1 if the algorithm is a block algorithm or 0 if it is a stream algorithm. .B int mcrypt_enc_is_block_mode( MCRYPT td); Returns 1 if the mode outputs blocks of bytes or 0 if it outputs bytes. (eg. 1 for cbc and ecb, and 0 for cfb and stream) .B int mcrypt_enc_get_block_size( MCRYPT td); Returns the block size of the algorithm specified by the encryption descriptor in bytes. The algorithm MUST be opened using mcrypt_module_open(). .B int mcrypt_enc_get_key_size( MCRYPT td); Returns the maximum supported key size of the algorithm specified by the encryption descriptor in bytes. The algorithm MUST be opened using mcrypt_module_open(). .B int* mcrypt_enc_get_supported_key_sizes( MCRYPT td, int* sizes) Returns the key sizes supported by the algorithm specified by the encryption descriptor. If sizes is zero and returns NULL then all key sizes between 1 and mcrypt_get_key_size() are supported by the algorithm. If it is 1 then only the mcrypt_get_key_size() size is supported and sizes[0] is equal to it. If it is greater than 1 then that number specifies the number of elements in sizes which are the key sizes that the algorithm supports. The returned value is allocated with malloc, so you should not forget to free it. .B int mcrypt_enc_get_iv_size( MCRYPT td); Returns size of the IV of the algorithm specified by the encryption descriptor in bytes. The algorithm MUST be opened using mcrypt_module_open(). If it is '0' then the IV is ignored in that algorithm. IV is used in CBC, CFB, OFB modes, and in some algorithms in STREAM mode. .B int mcrypt_enc_mode_has_iv( MCRYPT td); Returns 1 if the mode needs an IV, 0 otherwise. Some 'stream' algorithms may need an IV even if the mode itself does not need an IV. .B char* mcrypt_enc_get_algorithms_name( MCRYPT td); Returns a character array containing the name of the algorithm. The returned value is allocated with malloc, so you should not forget to free it. .B char* mcrypt_enc_get_modes_name( MCRYPT td); Returns a character array containing the name of the mode. The returned value is allocated with malloc, so you should not forget to free it. .P These are some extra functions that operate on modules: These functions have the prefix mcrypt_module_*. .B int mcrypt_module_self_test (char* algorithm, char* directory); This function runs the self test on the specified algorithm. If the self test succeeds it returns zero. .B int mcrypt_module_is_block_algorithm_mode( char* algorithm, char* directory); Returns 1 if the mode is for use with block algorithms, otherwise it returns 0. (eg. 0 for stream, and 1 for cbc, cfb, ofb) .B int mcrypt_module_is_block_algorithm( char* mode, char* directory); Returns 1 if the algorithm is a block algorithm or 0 if it is a stream algorithm. .B int mcrypt_module_is_block_mode( char* mode, char* directory); Returns 1 if the mode outputs blocks of bytes or 0 if it outputs bytes. (eg. 1 for cbc and ecb, and 0 for cfb and stream) .B int mcrypt_module_get_algo_block_size( char* algorithm, char* directory); Returns the block size of the algorithm. .B int mcrypt_module_get_algo_key_size( char* algorithm, char* directory); Returns the maximum supported key size of the algorithm. .B int* mcrypt_module_get_algo_supported_key_sizes( char* algorithm, char* directory, int* sizes); Returns the key sizes supported by the algorithm. If sizes is zero and returns NULL then all key sizes between 1 and mcrypt_get_key_size() are supported by the algorithm. If it is 1 then only the mcrypt_get_key_size() size is supported and sizes[0] is equal to it. If it is greater than 1 then that number specifies the number of elements in sizes which are the key sizes that the algorithm supports. This function differs to mcrypt_enc_get_supported_key_sizes(), because the return value here is allocated (not static), thus it should be freed. .LP .B char** mcrypt_list_algorithms ( char* libdir, int* size); Returns a pointer to a character array containing all the mcrypt algorithms located in the libdir, or if it is NULL, in the default directory. The size is the number of the character arrays. The arrays are allocated internally and should be freed by using mcrypt_free_p(). .B char** mcrypt_list_modes ( char* libdir, int *size); Returns a pointer to a character array containing all the mcrypt modes located in the libdir, or if it is NULL, in the default directory. The size is the number of the character arrays. The arrays should be freed by using mcrypt_free_p(). .B void mcrypt_free_p (char **p, int size); Frees the pointer to array returned by previous functions. .B void mcrypt_free (void *ptr); Frees the memory used by the pointer. .B void mcrypt_perror(int err); This function prints a human readable description of the error 'err' in the stderr. The err should be a value returned by mcrypt_generic_init(). .B const char* mcrypt_strerror(int err); This function returns a human readable description of the error 'err'. The err should be a value returned by mcrypt_generic_init(). .B int mcrypt_mutex_register ( void (*mutex_lock)(void) , void (*mutex_unlock)(void) ); This function is only used in multithreaded application and only if compiled with dynamic module loading support. This is actually used internally in libltdl. Except for the dynamic module loading libmcrypt is thread safe. .LP Some example programs follow here. Compile as "cc prog.c -lmcrypt", or "cc prog.c -lmcrypt -lltdl" depending on your installation. Libltdl is used for opening dynamic libraries (modules). .nf /* First example: Encrypts stdin to stdout using TWOFISH with 128 bit key and CFB */ #include #include #include /* #include */ main() { MCRYPT td; int i; char *key; char password[20]; char block_buffer; char *IV; int keysize=16; /* 128 bits */ key=calloc(1, keysize); strcpy(password, "A_large_key"); /* Generate the key using the password */ /* mhash_keygen( KEYGEN_MCRYPT, MHASH_MD5, key, keysize, NULL, 0, password, strlen(password)); */ memmove( key, password, strlen(password)); td = mcrypt_module_open("twofish", NULL, "cfb", NULL); if (td==MCRYPT_FAILED) { return 1; } IV = malloc(mcrypt_enc_get_iv_size(td)); /* Put random data in IV. Note these are not real random data, * consider using /dev/random or /dev/urandom. */ /* srand(time(0)); */ for (i=0; i< mcrypt_enc_get_iv_size( td); i++) { IV[i]=rand(); } i=mcrypt_generic_init( td, key, keysize, IV); if (i<0) { mcrypt_perror(i); return 1; } /* Encryption in CFB is performed in bytes */ while ( fread (&block_buffer, 1, 1, stdin) == 1 ) { mcrypt_generic (td, &block_buffer, 1); /* Comment above and uncomment this to decrypt */ /* mdecrypt_generic (td, &block_buffer, 1); */ fwrite ( &block_buffer, 1, 1, stdout); } /* Deinit the encryption thread, and unload the module */ mcrypt_generic_end(td); return 0; } /* Second Example: encrypts using CBC and SAFER+ with 192 bits key */ #include #include #include main() { MCRYPT td; int i; char *key; /* created using mcrypt_gen_key */ char *block_buffer; char *IV; int blocksize; int keysize = 24; /* 192 bits == 24 bytes */ key = calloc(1, keysize); strcpy(key, "A_large_and_random_key"); td = mcrypt_module_open("saferplus", NULL, "cbc", NULL); blocksize = mcrypt_enc_get_block_size(td); block_buffer = malloc(blocksize); /* but unfortunately this does not fill all the key so the rest bytes are * padded with zeros. Try to use large keys or convert them with mcrypt_gen_key(). */ IV=malloc(mcrypt_enc_get_iv_size(td)); /* Put random data in IV. Note these are not real random data, * consider using /dev/random or /dev/urandom. */ /* srand(time(0)); */ for (i=0; i < mcrypt_enc_get_iv_size(td); i++) { IV[i]=rand(); } mcrypt_generic_init( td, key, keysize, IV); /* Encryption in CBC is performed in blocks */ while ( fread (block_buffer, 1, blocksize, stdin) == blocksize ) { mcrypt_generic (td, block_buffer, blocksize); /* mdecrypt_generic (td, block_buffer, blocksize); */ fwrite ( block_buffer, 1, blocksize, stdout); } /* deinitialize the encryption thread */ mcrypt_generic_deinit (td); /* Unload the loaded module */ mcrypt_module_close(td); return 0; } .fi .LP The library does not install any signal handler. .LP Questions about libmcrypt should be sent to: .IP mcrypt-dev@lists.hellug.gr or, if this fails, to the author addresses given below. The mcrypt home page is: .IP http://mcrypt.hellug.gr .LP .SH AUTHORS Version 2.4 Copyright (C) 1998-1999 Nikos Mavroyanopoulos (nmav@hellug.gr). .LP Thanks to all the people who reported problems and suggested various improvements for mcrypt; who are too numerous to cite here. .LP .\" end of man page passenger-config.1000064400000001641147222162010010057 0ustar00.TH "passenger-config" "1" "2.0" "Phusion Passenger" "User Commands" .SH "NAME" .LP passenger\-config \- Show configuration settings for Phusion Passenger .SH "SYNOPSIS" .LP \fBpassenger\-config\fR \fI\-\-root\fR | \fI\-\-version\fR .SH "DESCRIPTION" .LP \fBpassenger\-config\fR shows the current configuration settings for Phusion Passenger. You need to select one of the following options. .SH "OPTIONS" .TP \fB\-\-root\fR Shows the Phusion Passenger root directory .TP \fB\-\-version\fR Shows the current Phusion Passenger version number .SH "SEE ALSO" .LP passenger\-memory\-stats(1), passenger\-stress\-test(1), passenger\-status(8) .LP User guide at https://www.phusionpassenger.com/documentation_and_support .SH "AUTHOR" .LP Phusion Passenger is written by Phusion (http://www.phusion.nl) .LP This manual page was written by Neil Wilson for the Ubuntu project (but may be used by others). passenger-status.8000064400000004013147222162010010140 0ustar00.TH "passenger-status" "8" "2.0" "Phusion Passenger" "Adminstration Commands" .SH "NAME" .LP passenger\-status \- inspect Phusion Passenger's internal status .SH "SYNOPSIS" .LP \fBpassenger\-status\fR [\fIpid\fR] .SH "DESCRIPTION" .LP \fBpassenger\-status\fR looks at the current status of a Phusion Passenger installation. It will locate Phusion Passenger automatically if it is running and will give you a list of instances if there is more than one Phusion Passenger instance running. You can then select the instance by specifying the relevant PID on the command line. .LP The \fIgeneral information\fR section shows the following details: .TP max The maximum number of application instances that Phusion Passenger will spawn. This equals the value given for \fIPassengerMaxPoolSize\fR in the configuration. .TP count The number of application instances that are currently alive. This value is always less than or equal to \fImax\fR. .TP active The number of application instances that are currently processing requests. This value is always less than or equal to \fIcount\fR. .TP inactive The number of application instances that are currently not processing requests, i.e. are idle. Idle application instances will be shutdown after a while, as can be specified with \fIPassengerPoolIdleTime\fR in the configuration. The value of \fIinactive\fR equals \fIcount\fR \- \fIactive\fR. .LP The \fIapplications\fR section shows each application instance, which directory it belongs to. The \fIsessions\fR field shows how many HTTP client are currently being processed by that application instance. .SH "OPTIONS" .LP .TP \fBpid\fR The process ID of the Phusion Passenger instance you want to look at .SH "SEE ALSO" .LP passenger\-memory\-stats(8), ps(1), top(1) .LP User guide at https://www.phusionpassenger.com/documentation_and_support .SH "AUTHOR" .LP Phusion Passenger is written by Phusion (http://www.phusion.nl) .LP This manual page was written by Neil Wilson for the Ubuntu project (but may be used by others). passenger-memory-stats.8000064400000003164147222162010011267 0ustar00.TH "passenger-memory-stats" "8" "2.0" "Phusion Passenger" "Administration Commands" .SH "NAME" .LP passenger\-memory\-stats \- reports a snapshot of the Apache and Phusion Passenger memory statistcs .SH "SYNOPSIS" .LP \fBpassenger\-memory\-stats\fR .SH "DESCRIPTION" .LP \fBpassenger\-memory\-stats\fR allows you to easily analyze the real memory usage of Phusion Passenger and Apache. .LP Process inspection tools such as \fIps\fR and \fItop\fR are useful, but they rarely show the correct memory usage. The real memory usage is usually lower than what \fIps\fR and \fItop\fR report. .LP There are many technical reasons why this is so, but an explanation is beyond the scope of this page. We refer the interested reader to operating systems literature about virtual memory and copy\-on\-write. .LP When you run this tool the \fIPrivate\fR or \fIprivate dirty RSS\fR field shows the real memory usage of processes. .SH "ENVIRONMENT VARIABLES" .LP .TP \fBHTTPD\fR The full filename to the Apache executable. By default, Passenger will attempt to autodetect the Apache executable. If autodetection fails for whatever reason, then Apache processes will not be shown in the memory statistics. In that case, you may manually specify the location to the Apache executable using this environment variable. .SH "SEE ALSO" .LP passenger\-status(8), ps(1), top(1), .LP User guide at https://www.phusionpassenger.com/documentation_and_support .SH "AUTHOR" .LP Phusion Passenger is written by Phusion (http://www.phusion.nl) .LP This manual page was written by Neil Wilson for the Ubuntu project (but may be used by others). man1/sqlite3.1000064400000010364147222257650007066 0ustar00.\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .TH SQLITE3 1 "Fri Aug 11 23:50:12 CET 2023" .\" Please adjust this date whenever revising the manpage. .\" .\" Some roff macros, for reference: .\" .nh disable hyphenation .\" .hy enable hyphenation .\" .ad l left justify .\" .ad b justify to both left and right margins .\" .nf disable filling .\" .fi enable filling .\" .br insert line break .\" .sp insert n+1 empty lines .\" for manpage-specific macros, see man(7) .SH NAME .B sqlite3 \- A command line interface for SQLite version 3 .SH SYNOPSIS .B sqlite3 .RI [ options ] .RI [ databasefile ] .RI [ SQL ] .SH SUMMARY .PP .B sqlite3 is a terminal-based front-end to the SQLite library that can evaluate queries interactively and display the results in multiple formats. .B sqlite3 can also be used within shell scripts and other applications to provide batch processing features. .SH DESCRIPTION To start a .B sqlite3 interactive session, invoke the .B sqlite3 command and optionally provide the name of a database file. If the database file does not exist, it will be created. If the database file does exist, it will be opened. For example, to create a new database file named "mydata.db", create a table named "memos" and insert a couple of records into that table: .sp $ .B sqlite3 mydata.db .br SQLite version 3.43.0 2023-08-11 17:45:23 .br Enter ".help" for usage hints. .br sqlite> .B create table memos(text, priority INTEGER); .br sqlite> .B insert into memos values('deliver project description', 10); .br sqlite> .B insert into memos values('lunch with Christine', 100); .br sqlite> .B select * from memos; .br deliver project description|10 .br lunch with Christine|100 .br sqlite> .sp If no database name is supplied, the ATTACH sql command can be used to attach to existing or create new database files. ATTACH can also be used to attach to multiple databases within the same interactive session. This is useful for migrating data between databases, possibly changing the schema along the way. Optionally, a SQL statement or set of SQL statements can be supplied as a single argument. Multiple statements should be separated by semi-colons. For example: .sp $ .B sqlite3 -line mydata.db 'select * from memos where priority > 20;' .br text = lunch with Christine .br priority = 100 .br .sp .SS SQLITE META-COMMANDS .PP The interactive interpreter offers a set of meta-commands that can be used to control the output format, examine the currently attached database files, or perform administrative operations upon the attached databases (such as rebuilding indices). Meta-commands are always prefixed with a dot (.). A list of available meta-commands can be viewed at any time by issuing the '.help' command. For example: .sp sqlite> .B .help .nf .tr %. ... .sp .fi The available commands differ by version and build options, so they are not listed here. Please refer to your local copy for all available options. .SH INIT FILE .B sqlite3 reads an initialization file to set the configuration of the interactive environment. Throughout initialization, any previously specified setting can be overridden. The sequence of initialization is as follows: o The default configuration is established as follows: .sp .nf .cc | mode = LIST separator = "|" main prompt = "sqlite> " continue prompt = " ...> " |cc . .sp .fi o If the file .B ${XDG_CONFIG_HOME}/sqlite3/sqliterc or .B ~/.sqliterc exists, the first of those to be found is processed during startup. It should generally only contain meta-commands. o If the -init option is present, the specified file is processed. o All other command line options are processed. .SH SEE ALSO https://sqlite.org/cli.html .br https://sqlite.org/fiddle (a WebAssembly build of the CLI app) .br The sqlite3-doc package. .SH AUTHOR This manual page was originally written by Andreas Rottmann , for the Debian GNU/Linux system (but may be used by others). It was subsequently revised by Bill Bumgarner , Laszlo Boszormenyi , and the sqlite3 developers. usr/bin/man000075500000310700147547460700006645 0ustar00ELF>T@@@@8 @@@@@@88@8@@@cc mmama\ mmama  TT@T@DDPtdFFAFAQtdRtdmmama@@/lib64/ld-linux-x86-64.so.2GNU GNU3$G(bp[Z$_} V O%@ ۑ|ȾqX|S3BE9VNA#  Qi 0>gUaSF1)N H ssq;yN  T TA Q [A '+40{EZ V K^~ i9k   fq @MyI e LX`Wr 5 >sjB,_. *H75| ]BK FZ: ' PZ ' \, .9/bq jLA"a 5@5@a0=@ a a"a aa7@I a06@Saha aa$a07@alibmandb-2.6.3.sohashtable_freedatabasexreallochashtable_createhashtable_removexmallocxstrdupxalloc_die__gmon_start__appendstrpush_cleanuphashtable_lookupxasprintfxzallocxregcompdbfhashtable_installdblookup_pattern_finicompare_ids_initfree_mandata_structdbver_rdman_gdbm_open_wrapperdblookup_allman_gdbm_closedbprintfdbdeletelibman-2.6.3.sopipeline_runpipecmd_argpipeline_want_outpipeline_new_commandspipeline_peeklinepipecmd_new_functionpipecmd_new_argstrpipeline_newget_source_encodingget_locale_charsetargp_err_exit_statusrpl_globdecompress_openargp_state_helpget_default_devicecheck_preprocessor_encodingregain_effective_privsget_canonical_charset_nameargp_parsemdir_namepop_cleanupis_changeddecompress_fdopendirectory_on_pathxstrndupdrop_effective_privsdebug_errorremove_directoryinit_localeget_page_encodingfind_charset_localebase_namepop_all_cleanupsget_output_encodingget_line_lengthdo_system_drop_privsargp_program_bug_addressis_directoryinit_debugrpl_globfreeis_roff_devicecreate_tempdircanonicalize_filename_modecomp_listdebug_levelargp_errorget_less_charsetget_groff_preconvxgetcwdlang_dirget_roff_encodingescape_shellget_jless_charsetargp_program_versionlibgdbm.so.4libpipeline.so.1pipecmd_argfpipeline_commandpipecmd_newpipecmd_nicepipeline_get_commandpipeline_pumppipeline_get_ncommandspipeline_ignore_signalspipecmd_argspipecmd_argvpipecmd_new_passthroughpipeline_command_argspipeline_startpipecmd_argstrpipecmd_freepipeline_connectpipeline_command_argstrpipeline_readlinepipecmd_setenvpipecmd_new_sequencepipeline_freepipeline_readpipeline_new_command_argspipeline_peek_skippipecmd_discard_errpipeline_set_commandpipecmd_sequence_commandpipeline_tostringpipecmd_new_argspipeline_dumppipeline_waitpipeline_install_post_forkpipeline_peeklibc.so.6strcasestr__stpcpy_chkfflushstrcpy__rawmemchr__printf_chkfnmatchreaddir_IO_putcsetlocalefopenstrncmpstrrchrregexecdcgettextclosedirstrncpyregfree__stack_chk_fail__lxstatunlinkabortstdinchmod__assert_failmkstempstrtokstrtolisattystrlenstrstrstrcspn__errno_locationtcsetattrchdir__fprintf_chkstdoutfputsmemcpyfcloseumaskstrcasecmpopendir__ctype_b_locgetenvsscanfstderrfreopenstrncasecmp__fxstatstrncat__getdelimfwriteiconv_closerenamestrchrutimeiconvqsortcanonicalize_file_nameiconv_opentcgetattr__ctype_toupper_locbsearch__xstat_nl_msg_cat_cntraccess_IO_getcstrcmp__libc_start_mainferrorstpcpy__cxa_atexit_edata__bss_start_end/usr/lib64/man-dbGLIBC_2.3.4GLIBC_2.14GLIBC_2.4GLIBC_2.2.5GLIBC_2.3Pti ) 5 ii @ ui J ii V oaU aaaaaapa pa(pa0pa8pa@paHpaPpaXpa`pa hpa ppa xpa pa papapapapapapapapapapapapapapaqaqaqaqa qa(qa 0qa!8qa@qa"Hqa#Pqa$Xqa%`qa&hqa'pqa(xqa)qa*qa+qa,qa-qa.qa/qa0qa1qa2qa3qa4qa5qa6qa7qa8qa9ra:ra;ra<ra= ra>(ra?0ra@8raA@raBHraCPraDXraE`raFhraGpraHxraIraJraKraLraMraNraOraPraQraRraSraTraVraWraXraYraZsa[sa\sa]sa^ sa_(sa`0saa8sab@sacHsadPsaeXsaf`saghsahpsaixsajsaksalsamsansaosapsaqsarsassatsausavsawsaxsaysazta{tata|ta} ta~(ta0ta8ta@taHtaPtaXta`tahtaptaxtatatatatatatatatatatatatatatatatauauauaua ua(ua0ua8ua@uaHuaPuaXua`uahuapuaxuauauauauauauauauauauauauauauaHH:!Ht H5:!%:!@%:!h%:!h%:!h%:!h%:!h%:!h%:!h%:!hp%:!h`%z:!h P%r:!h @%j:!h 0%b:!h %Z:!h %R:!h%J:!h%B:!h%::!h%2:!h%*:!h%":!h%:!h%:!h% :!hp%:!h`%9!hP%9!h@%9!h0%9!h %9!h%9!h%9!h%9!h %9!h!%9!h"%9!h#%9!h$%9!h%%9!h&%9!h'p%9!h(`%z9!h)P%r9!h*@%j9!h+0%b9!h, %Z9!h-%R9!h.%J9!h/%B9!h0%:9!h1%29!h2%*9!h3%"9!h4%9!h5%9!h6% 9!h7p%9!h8`%8!h9P%8!h:@%8!h;0%8!h< %8!h=%8!h>%8!h?%8!h@%8!hA%8!hB%8!hC%8!hD%8!hE%8!hF%8!hGp%8!hH`%z8!hIP%r8!hJ@%j8!hK0%b8!hL %Z8!hM%R8!hN%J8!hO%B8!hP%:8!hQ%28!hR%*8!hS%"8!hT%8!hU%8!hV% 8!hWp%8!hX`%7!hYP%7!hZ@%7!h[0%7!h\ %7!h]%7!h^%7!h_%7!h`%7!ha%7!hb%7!hc%7!hd%7!he%7!hf%7!hgp%7!hh`%z7!hiP%r7!hj@%j7!hk0%b7!hl %Z7!hm%R7!hn%J7!ho%B7!hp%:7!hq%27!hr%*7!hs%"7!ht%7!hu%7!hv% 7!hwp%7!hx`%6!hyP%6!hz@%6!h{0%6!h| %6!h}%6!h~%6!h%6!h%6!h%6!h%6!h%6!h%6!h%6!h%6!hp%6!h`%z6!hP%r6!h@%j6!h0%b6!h %Z6!h%R6!h%J6!h%B6!h%:6!h%26!h%*6!h%"6!h%6!h%6!h% 6!hp%6!h`%5!hP%5!h@%5!h0%5!h %5!h%5!h%5!h%5!h%5!h%5!h%5!h%5!h%5!h%5!h%5!hp%5!h`%z5!hP%r5!h@%j5!h0%b5!h %Z5!h%R5!h%J5!h%B5!h%:5!h%25!h%*5!h%"5!h%5!h%5!h% 5!hp%5!h`%4!hP%4!h@%.!fSHA1HH11ATIUHSH0Ht$HAdH%(HD$(1HL$HT$HD$ ?HHu0H1.A1n16LD$ HL$HT$Ht$H1HuHl$L)HHH\$(dH3%(t_H0[]A\ATUSAHIHHt7H߾)2A҃蜆H޿0A1A1H[]LA\PAWAVAUATUSH8|$0H>dH %(H$(1Ht$(KHJ!O0=@1HHH?!98CAHHH$1H?!f3H$GfH$(HHC!?H=>!AH`8WH)IA$HHI!HEMM AVIt$ \uAV 9IuA?HcHcLHDyHE1E1H޿@vadxgDM9tDDkHAMcI9IHLNl(LH IEIAAVHDq uM~MHT$(t$0E1A4a@va C=B=!u1H=B!@萚H=a=!H=;!HH=!Ht1ɾAH1NH=!Ht1ɾAH11H =!Ht1ɾAH1H=!Ht1ɾAH1HhA!Ht1ɾfAH1Hc7!H8HH= :!HR?HH=9!H-9!1 HH59!1)AH=w9! a=9!U1ۉHD$(H4!9D$0MHL$(P&4!L8!1DP/H KLMH5Q!1f.lohpik@H!qA!1,@Xacd!1CDEDHH5H!KH4!H5!1fDw1Y!!1IfS)T-AHHEH!!1fH[]A\p7yrH5!1DDQ!5[!L! !D!A<2EuD!1ED !)2A3AHD$EA7AHDEA;ALDȅɹ?ALDҺ/AHDȅCAHDEH<$HD11 HžA1HHH1G9! /!)2AɺLAHD׾XAHD111HžA1uHHH11nfDmWH5p!1QW?!16fDH0A!HEH3!1 @v!1H5!1fH.AHEAHIHHtEVHH{H$!1HAH!HSzHHuL*1c!1O!17!1^!X!1X!R!L!F!!F!@!:!P!!!!!!!H!o!H\!H9!H!HC!H!H!Hj!H!H!H!H!f2!1I!1fDfH<!aA2!1sZ_!!1L@u7!1.fD7a!1fDRH5P!%!1f.^!1B!1H5!1fHtH5!!(!1H!AnfD!1WH5!1Bfsu3>'H5+!fD!1fDHrPHߺzgDH51!1f.! !1DH5!1fUHSHH=X!HtC?t>HO!Ht:uE@HHHlHHHH[]DH=!1Ht̀?tH1AHff.H=!Ht,HtHfDHi!H@s!St5AHH1!t^H[f[/HH+Ht.@H1ҾA1aHH&p!fDH1[@AUATUHSH(dH%(HD$1u_5!IA$ !vLA1 !L`!A11VfD1ۋ !Ht4DA1cI0HL11zf.HL$dH3 %(4H([]A\A]H-1AI(0HL11Df+A111H$Hc !HD$HLJ@1AoI0LL11LH1A*Ib0MHL11>{fHD$afD[f.ATIUSHHT$0HL$8LD$@LL$Ht7)D$P)L$`)T$p)$)$)$)$)$TAHdH%(HD$1HH$HH$D$0HD$HD$ HD$Ht(H%HHtHH¾XA}HտHLHD$dH3%(u H[]A\Iff.AWAVAUIATIUSHHHI4HHt HHtH-@2A7AHDLHHIEAG( i t ʃ-)2ALLHItQHT$ Hƿu;HL$xIVPH9t-L0$ALLuAD$fM6M$D$`E1DHs Hu[L=!Mt,LkLLծtHIItL輮u#HL$H|$E1H$M1ҾHAHHuH$dH3 %(DH[]A\A]A^A_ÐIvHHDt$fD1X$A臫DH111覱L11脮H H= 1jHH!HҳAH=!H5 1$AV x u=j 5X E1[ H|$H5 A踱HLH=v HHLXH=)!̯H1fDv@~HH4 H= 蓯H H5 1AI葪XLHHH@L1H= HJ1HL貲 DLAH= HLI H5 H|$,HA@AWAVIAUIATUSH8Ht$(HL$] H\$(1LAH訩D 1H޿$AE= Ճ Ń= Ѓ 1j1HALLGH1HaH;E1D$$fDHH;X蒯H;LHH!HItxHE [ E1H;1L]HH3HHD$&LL$T$$H|$1BMLE(H,$ADžaL HEHIHIEDt Dt  t@& u豰H8[]A\A]A^A_ÿA1$fWfDHL$Ht$(LLtxO@= uU5@ uDH=$ u:H= u0Ht$(ALLHHtMfD1/AHL$Ht$(LL n@AWAVAUATIUHSHH(HHIe  1L1H質11HH褪1HHL1LHH  AątO.AA#At菩L1H1@1HL1豣L蹥H豥AAuH([]A\A]A^A_ҮEtH蕣1Hú$AIHD11 HHD$mA+HH$H<$oL蔧.HIHtH<$cE1AL.AH1yLI1LʫADHS1L1H1HL1uL}HuAċ EH= 迦1AHHD$ͫHHH1EAW%HHHIE1h.A AA%H|$0ۍHIHƿA1@LAYH|$0AIH1 LA.AAA蝈ȅE1HD$.A2 AAl.AP AAS.AO AA:.A AA!Ht$&A1E1MD#rM|}HA@f.AWAVAUATUSHH-. dH%(H$1辉;- u_{uYE1A1Ҿ)2A1E1 E- H$dH3%(DH[]A\A]A^A_fDH5a >t#1AXL%I LYYHT$ H޿菉AD$8@ HIH蘇;/IT藎HFH1Hھ.A1芈IL识LH E1E111LHu AH= LH ݂;0Hٺ^/A11ADH谅HID$-L}D$O@A1臄HE1輂0LH11蛊&Hٺ^/A11AtH IHٺ^/A11A4HLh'AI1.1LD-HIt8uD'A1 L胁L{fDہ0Hٺ^/A11踉WHLHD$>$HH$H a@@Ht tDfDHtH|$ aA al3Ht$LH= HtI藀I>HuH4$ aHH<$uLt$HHOSHHfO2 Hz!a 辂@f.AWAVAUIATUSHH(H=% dH%(HD$1HD$Q/L脂Ht?L'uH\$dH3%(H([]A\A]A^A_f.H5 H H= Ht;D# af.H5 HL$HLH}AD#HuH|$HiH1fDH@0HHuH;IfD1AMf 17AFL~M|$0A?-AD$(f.IV I61RA } C Mn M&hH=A |HH GLLH= E1蔁Iv E11L1HH$L<$1'ALq|Li}I~LLL<$H| ?I~H4$IE1LHM$tLyH=G yLH4 yLyD<$ffDH|$+L5 I>*H= Ht/D# a@I6HL$HLH}AD#HuII>uH= I~LE1H1LAExLAxH=M |I~7ALL蛛HHH$(A1zH$I~MD$@L1XALLPx;p.A A Ar{IULmA1zzp.A A+A<{=Q I~փ-HIvHH$|L$u$Lw|;Z11iLLǹ7ALLD$舚LD$H$LwwH$H7Hֿ(A1yH$fAWAVAUATUHHSHHt$0L$8dH%(HD$x1;{HƿAHD$(HD$@HD$H8D$tHt$(.AD$DT$8L|$(A.A.AELHD`LL|$0HD$?.A1LyLH膁HHD$ DL$EhH|$(AZHHD$Ht$@H~Ld$@HI4H= >H= HT$HLd$@HHL E1f|$HLt$`H9\$PtHt$@H+t$hHzL|$@L+|$hHT$HHLd$@HL ,HL H HH\$PLd$hHL$XLD$`MsH|$ LD$HHL$XHT$hHt$PHD$HAvL+d$HHLd$HDD$8EguD( IHt$@HHD$@}HT$@I9t HvH@Ht$@HHD$@J}Ld$@&Ht$@HHD$@*}HT$@L9t IIvHT$HHHL D$1ۅH|$ |H|$(.tH\$xdH3%(aHĈ[]A\A]A^A_fDktD(ATAEHD$`L5O D$>I9th0tH IHT$pLD$}H9D$pwH= tt"h/A1u1H¿1{D$A$|$>EATAwHT$@He u uBH H|$0H~Hþ/A1!uJ ;IT/A117{|DHA H|$LD$pHL$`11HD$pAHD$`sL+t$pH= H9|$`H|$Lt$prH H|$LID(|H9D$pwH=r Mst"h/A1Xt1H¿1wzE,$PfD|$L5} L&H5s LE1PwHT$HD$>HD$HHHD$`HT$pHD$`fDH1 H|$HT$HLD$pHL$`Ht$XHD$pHD$XmrH+T$pHHT$ptOHD$`L5 E1D$>H|$@^D$H|$xqD(AT,|$?!HD$tHR tHD RsqH\$(0)/A11HxHpD$XpLD$00H1/A1xH|$(]pD$ (|$? 5 dHT$@H|$0HH {J 8D/AT11kx/fDAUATIUHSHH(wHItEHLH}HL[]A\A]o1H{LHSt HH3HuH[]A\A]UHSHHH;Ht5@H_oH;HuH}NoH}EoHH[]7oHfUH1SH@rrHHsHUHuHHpHH[]xwAWAVIAUIATAAUHSHrHLHuLLD11/A1/AsHLIOrAIHorI$L#H`rH1ɾ/AID$HLH@1lsH11.AL1Vs1HHCH1/A>s=? H~H1Ҿ/A1!sHHپ@H0@ vHHmHHL[]A\A]A^A_uDvqHIHqI$HH1LH@1rH9fH[]A\A]A^A_ÐATIUSH Hu9fH[Ht'9kuH3LquHC[]A\f.[]1A\fAUAATIUH SHpHHpLHpHCHR DkHCHtHXH== H. t H[]A\A]ÐH! H[]A\A]@f.USHH Hu )@HH;-lH{$lHkHlHuH H H[]fDAWAVAUIATUSHHHt$?H|$LoH|$H$oH<$HH<$:JnHL`H$fD;HHvHIuHLuHIt}HmM4At1<:uIVHA111WpHILjL9As/A:IGt"f.H8:uH9uMt3:LfmHtHPLI1@H<$wjH|$HJou7}tL1H1A1oIHAjHL[]A\A]A^A_À}HT$1AA)2AILL/ALE1lE1~H|$ftH|$H[]A\A]A^A_m_6A/A2Alf.H0A1k1H¿1HqfDAWAVAUATUSH L IMttLx1`aMfH;L%nt&HH;td~zH;LmuL10AkI}HtDIhIHuHL[]A\A]A^A_hLqxRt"tkIMfMrf. u1[0AjLH111p1O0AjLH1sLy0A1jL[lHvAWAVAAUATUSHHHl$0Ld$pHD$ dH%(H$x1HEHD$(H$fHt$(H|$ Hٺ lHL|$ rHM fDIAEDQ ut9<#t50ALu,2 LjgHD$ |@L0ALL8t10ALnC1H꾱0ALm1LH0ALm1LH0ALmt8 1ALz1AH gHjIME LH|0ALH1A1hL=fH|$ H|$ )fH$xdH3%(HĈ[]A\A]A^A_HT$11ALlD$i H|$ `1LH61ALlA)2AH҃IDK1ALH1hH|$ )2AH0AH1gH|$ LH\0ALJiI183AAgA1AHH111Zml1LH3ALH1VgH|$ ]L,$LhLINj H!%tDHJHDHH+$Hz khIH/var/cat.AIEAEmanLmHHtWHֿ2Au zt,cBtLHT$fHT$I|AD/Hd1.A>mHHuLck1Lb1ALjtz1Ls1ALjtcHT$11ALjuD$H|$  )fHT$11ALUjlD$H|$  LDoH|$ `3A1beLH111k3A1@eH¹1A11ZkH|$ UHSHHtCH_@H[Ht'CuH3HguHH[]H1[]HP fDATU1SH; HufH[HtO{uH;ikxeuK uL#13Aed1H11LjH[HuHtI[H]A\uH3HHL#1O0A dLH1lZ[]A\1Aeff.AWHH)AVAUATIUSHH=%H%HIHHh'« HHVaH]HHQjxMtˀ;/fklHI.A1HL1[fHI$1A1Itcf1O0AcHH1kkD1[0AbHH111i?HdHI$L`HL[]A\A]A^A_fDHT$HT$@13AobI`0L1hAWAVAUATUSHHH4$?u H<$H[]A\A]A^A_ dfc1AHHD$ iHIE1GA|$au>A|$nu6A|$u.H4$LI11AhHIA<$mtH,$Ht1D Htu:HaHItmHHH)InKhIE1L.ALH1PdLH^HgtHta11AiHuH^7H1bI뙐1[0A`HH111f?f1A1`LHyIH|$V^Mt7HL[]A\A]A^A_ÿA^HH)H|$^4A1` fUHSHHHt H[]fDHHuHܐHHm H11fDH@HtPuH@HutdHHcH9w{HFaH HHu "HRHt9JuH:HH~HRHuHHfHHcH9wH`뚿aDf.ATHUHS:v_HHXE1#:HS_HHt;H@HHþH1Ht$LHqIHu[]LA\Ð1@HHuLH;IfD[E1]LA\D1cfUHSHHHFHFHF%<_<.H<_t<.t HuH9HH)dHE<_t><.t<@H}H}H}H[]f.CH{H<.u @<.t HuHH)6dHE<.uCH{Hf.HuHH)cHE<@KH{^HE9^HE()2A^HEH[]ÿ)2A^HE )2A^HE11I@SHH?DZH{;ZH{2ZH{[(ZAWAVAUATUSHHHhHt$dH%(HD$X1Ht$>Cu~tAuubHt$H>tH|$(\uLLIH|$01cE1fDH|$WH|$lLH|$\u1f66ZfDAV1AUATIMUSHHH4AYHt;u[]A\LA]A^f.Hh[HI9:HYHHXLE12Ht{:HYHHH@HHÀ}tH11APYHLHHtMHL1ɾ1A1[IHVHuLVgAL[HH MtZHL1ɾ1A1[IHKV[]A\LA]A^1FHHZI1fH(ZI밾gALHHuE1fDz tDAT11U`@Sl\H=M HYHHtAAH^HIt$H޿2A1WL>L6WH^UA1A?^HHtg1A2A1WH1HVHժ Ht'KHS1H3*2AzWH[Hu[] A\ft1Ap4A1KWf14AV1AH11\p@2AVTHH1ɺ2A11YHfAWAVAAUATUSHdH%(H$1TXHIHD:HVHItE<.|1H:2AeV1HHHN2A1CVHsHoYH/overrides@ fpHH H{HHHHuMIl$BLZSE H= 1`aHf.HUH;lHuHcVH IIHtH`aHHDULcHLLM@XHMeRHEH]AE:HuAD$LH$dH3%(H[]A\A]A^A_@}zMIl$@)2AnV@1`5ATH HuH[H{uH3HWH/overridH@ HesfPcH;[f1e2ADT/HTHIt1HH꿀2AH)1XHHZH~Q112AH1VHHpZt`HSQMt-LH꿉2AH)1iXHH>Zt.H!Q1H12A1^VHHZHufHtk14AIl$eSH޺HVH/overrides@ HfHH3H+HPMz3HfP5A1R SDUSH2AH-PH8uO tHHH[]12AGR1H11iXHHHHHHOHH[]Ë" t1H@12AQ1H11WAVAUATUH1S2ADOHH<:HQ|:R2AHYH{ Lpt{HHHILIHLILE1ɺ1AH11*THHNLNLNH[]A\A]A^[H]A\A]A^015AP1AH111V\5˜ u$5A1P1AH111VHHHI1HLH11hSHH NLNH[]A\A]A^f B u$5A1P1AH111"VHHHI<1HHL{@ u$6A1O1AH111UHH[]A\A]A^7AWAVAUIATIUSHH5HHH)RVLHHLaHH]IM:HOHHuHLLL,HH;HttDPHL+HM4$Mt,L9t'L;LLLuQtQHLuMtH9u1DMtLkLHCHDH;Hu uH[]A\A]A^A_IH1M)L)LHIL(6ANH;LHSHHtfDHHHPHuHgE112ADNI4$Ht21I^/A+NI4$Ht1IANI4$HuH(2A1[]A\A]A^A_MDf.SHH?Ht@HGKH;HCHu[DSH 1Hu/H[HtKQwH3H H[Hu[@f.AWAVAUATUSHH HIAfEt{tH[Ht{uL+LLLHLIKuH{N/LHUMHK<7fDH8/tH9wH9HBH1;/HHH)BS1HHI1POLHI2AHuH1Ҿ7A1HOH1HHH1[]A\A]A^A_NH1[]A\A]A^A_K471Df.ATIUSH* Hu;H[Ht/{uH+HKHHLIu[]A\f[]1A\fUSHHHt*HWHGHH9s"HHJHHKH MHH[]ÐHHHHWH?KHSHUHS1HHtfDHEHFfD=I ,6A1EIFCHL$0L11#KH|$BH<$BL-i D@LxFHHH$6A1DH=5 pBH$H% IDHpDE1HL.A1H1GHHD$)BH|$1JH=Η BH|$1LHD$H H|$A1fL- HT$ L|$ L2D= 16ACHB0LH11IDHt$1ɺA11FHHrHHD$KAHD$1H8 JH HD$HD$H8HhHtHAH}HuH|$@1=9 EA8Hú16AB3HL11IE1= S1H-I ABH@0HH11H1H- AtBH@0HH11H+H=ߕ @HD$1H8JHD$H 16ABLH111=HsBW7AW6A6ABAf.H! H* H S L HЋ@, L9seDӖ H=Ė HcА1@tHc;AH4RHH @AHcf?AHEDEHL9uD| H=m Ðf.H H HHH H@H HHK M HH > fHHH= 7A1HHUSHH= Ht^H HCH; v H[]kHcH4EHH tTHع1H- HHH[]f@hDHH tHHz Hw 냿7A#SHGHH HtOHL HHH9t:Ht# H HHQ  HJ Hxڔ [HtH Hf.HSHtWHȔ HtH̔ HH;8t+C$u H[=H{=H[=fDH[@f.HtEHGG HG@HGG,G<HGH0 Ht H4 H; I9AL$8^M)IHH H- Hc*D H= Hc~)HcH H=ӂ H H1Ҁ|7 ‰P,H Ā Հ 5> H-O L%S >fDHcy H-* L%3 ~H X JT| B,k ف " H= Hc~)HcHҁ H= H H1Ҁ|7 ‰P,H   04f H-w L%{ ffDU Hc2 H! HXHc H 1) : ((\n[.x] == 1) & (\n[.y] > 20)) : ((\n[.x] == 1) & (\n[.y] == 20) & (\n[.Y] >= 2)))) \{\ . warn (\n[.warn] - (\n[.warn] / 1048576 %% 2 * 1048576)) . mso %s.tmac .\} .hla %s candidate: %d %d %s %s %s %c %s %s %s search: %d %d %s %s %s %c %s %s %s (dup: %d) other duplicate is at least as good this duplicate is better; removing old one add_output_iconv: source %s, target %s tr '\255\267\264\327' '\055\157\047\170'Succeeded in opening %s O_RDONLY %s needs to be recached: %ld %ld mandb command failed with exit status %dtrying section %s with globbing can't create temporary directorycommand exited with status %d: %scouldn't execute any browser from %secho .nh && echo .de hy && echo ..echo .na && echo .de ad && echo ..pipeline_get_ncommands (decomp) <= 1Terminal width %d within cat page range [%d, %d] Terminal width %d not within cat page range [%d, %d] ignoring unknown preprocessor `%c'--Man-- next: %s [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ] format: %d, save_cat: %d, found: %d cannot write to %s in catman modecreating temporary cat for %s can't write to temporary cat for %s can't create temporary cat for %scat-saver exited with status %d recalculating manpath for executable in %s no useful manpath for executable found ultimate source file %s %s: relying on whatis refs is deprecated Checking physical location: %s internal error: candidate type %d out of rangemain(): locale = %s, internal_locale = %s Manual page $MAN_PN ?ltline %lt?L/%L.:byte %bB?s/%s..?e (END):?pB %pB\%.. (press h for help or q to quit)manpath search path (with duplicates) = %s No manual entry for %s in section %s use this user configuration filereset all options to their default valuesprint physical location of man page(s)print physical location of cat file(s)interpret PAGE argument(s) as local filename(s)used by catman to reformat out of date cat pagesoutput source page encoded in ENCODINGdefine the locale for this particular man searchuse manual pages from other systemsset search path for manual pages to PATHuse colon separated section listlimit search to extension type EXTENSIONlook for pages case-insensitively (default)look for pages case-sensitivelyshow all pages matching wildcardmake --regex and --wildcard match page names only, not descriptionsfind all matching manual pagesforce a cache consistency checkdon't try subpages, e.g. 'man foo bar' => 'man foo-bar'use program PAGER to display outputprovide the `less' pager with a promptdisplay ASCII translation of certain latin1 charsSTRING indicates which preprocessors to run: e - [n]eqn, p - pic, t - tbl, g - grap, r - refer, v - vgrinduse %s or BROWSER to display HTML outputuse groff and display through gxditview (X11): -X = -TX75, -X100 = -TX100, -X100-12 = -TX100-12use groff and force it to produce ditroffsort_candidatesformat_displaymake_roff_commanddisplaygroff[SECTION] PAGE...maciconv_open ("UTF-8", "%s")UTF-8//IGNOREUTF-8//trying encoding %s -> %s iconv_open ("%s", "%s")iconv_open ("%s", "UTF-8")byte %jd: iconvbyte %jd: %scan't write to standard outputiconv: incomplete character at end of buffer -f /usr/libexec/man-db/manconvUTF-8: -t -qmanp.c%s:%s reduced to %s%s%s manpath list too longAdded section `%s'. %s is already in the manpath warning: %swarning: %s isn't a directoryadding %s to manpath UserGlobalNOCACHENOMANBIN %*sMANDATORY_MANPATH %49sMandatory mandir `%s'. MANPATH_MAP %49s %511sMANDB_MAP %49s %511sFSSTND/usr%s mandir `%s', catdir `%s'. DEFINE %49s %511[^ ]Defined `%s' as `%s'. SECTION %511[^ ]SECTIONS %511[^ ]MINCATWIDTH %dMAXCATWIDTH %d/etc/man_db.conf/usr/manadding %s to manpathlist ,:can't stat %schecking for locale %s HOME/.manpathFrom the config file %s: `%s' `%s' `%d' path directory %s is in the config file is not in the config file %.*s/man%.*s/share/manwarning: $PATH not setwarning: empty $PATHMANPATH::final search path = (!oldpath || *oldpath) && appendagePath `%s' mapped to mandir `%s'. warning: %s does not begin with %scan't parse directory list `%s'can't make sense of the manpath configuration file %swarning: mandatory directory %s doesn't existcan't determine current directoryadd_system_manpath(): internal manpath equates to NULL add_nls_manpaths(): processing %s can't open %s; continuing anyway can't open the manpath configuration file %sbut does have a ../man, man, ../share/man, or share/man subdirectory and doesn't have ../man, man, ../share/man, or share/man subdirectories adding mandatory man directories warning: $MANPATH set, prepending %swarning: $MANPATH set, appending %swarning: $MANPATH set, inserting %swarning: $MANPATH set, ignoring %sRemoving duplicate manpath entry %s (%td) -> %s (%td) pathappend ult_src: File %s in mantree %s warning: %s is a dangling symlinkcan't resolve %sult_src.cbufult_softlink: (%s) slashcan't search directory %sult_hardlink: (%s) %s is self referencing.\".soult_src: points to %s ult_hardlinkult_srcbad buffer in yy_scan_bytes()trying %s opening %s (parent path: %s) opening %s opened %s .so %s .lf 1 %s .lf %d %s .\" out of dynamic memory in yyensure_buffer_stack()out of dynamic memory in yy_create_buffer()out of dynamic memory in yy_scan_buffer()out of dynamic memory in yy_scan_bytes()%s:%d: .so requests nested too deeply or are recursive%s:%d: warning: failed .so request%s:%d: warning: newline in .so request, ignoring%s:%d: warning: malformed .lf request, ignoring%s:%d: warning: newline in .lf request, ignoringfatal flex scanner internal error--end of buffer missedfatal error - scanner input buffer overflowout of dynamic memory in yy_get_next_buffer()fatal flex scanner internal error--no action found AX A A AAAAAAAA`A0AApAAA`APAAA AA` A A A A A A A A                      !  ! """"""""""" ######$##%#& '('''''''' ''''''''' ))))))))))) )))*))))))) +, - .- /0//////// 1 ///////// """"""""""" 22222222222 22222232222 444444445444 666666666676 '('''''''' ))))))))))) 88888888888 +, .- /0//////// 1 22222222222 9:999999999 ;;;;;;;;;;; < =========== > 88888888888 99999999999 9:999999999 ;;;;;;;;;;; < =========== >;y r C8H8P(p h( `!!!"* h+P+pH,x./ / 1 6 6 X78 7` h= = = > Ap HB HC G8 HJ Q j( ox w0(H(H؂8@x@8xP(hX(HؔH@ȚpءpȣHh`(xxXرH(@xx(p8HXhx 8Phȶض hXh8h(zRx K *zRx $ FJ w?;*3$"tD BJB D(A0W (A BBBG h (A BBBI O (A BBNF V (A BBBA 4p BMA G  AABA .A<  BJA D(D0 (A ABBJ L 'A],l AJD d DAH | BBB E(D0A8G@ 8D0A(B BBBE f 8C0A(B BBBF ` 8D0A(B BBBC DBDA M DBF Z FBN A LBQ $dHFADF qDAph L`eBBB E(A0A8I? 8A0A(B BBBA L $BBE E(A0D8G{ 8A0A(B BBBA 4\`BEA Gp  AABH DR 4(BAA D0L  AABH ,"ADD D DAF L#=PM K Kl0#Go J [<#%BBA D(DP (A ABBH 4%BDA G  AABA x&p&EBBB E(D0A8G@> 8D0A(B BBBF S 8D0A(B BBBH [ 8D0A(B BBBH c 8C0A(B BBBA L((BEB B(A0A8Gl 8A0A(B BBBF , ,D$4-ZADG uGAL\P-BBE B(D0C8J( 8A0A(B BBBB 2_2<3BKD G0b  AABB E DABL`3HBBB B(D0A8GP 8D0A(B BBBF 4l`6eAID c AAE jAA<6BED A(D0 (D ABBI LX7lBBB B(D0D8G= 8A0A(B BBBB L4x;BBE E(A0A8Dp 8C0A(B BBBA L=BBB B(D0D8G` 8A0A(B BBBE L8DrBEB B(D0D8G 8A0A(B BBBC L$ h]rBBB B(A0A8J{ 8A0A(B BBBG Lt aBBB E(A0A8G`g 8A0A(B BBBK 4 kBBB B(A0A8G, BDD DP AABL, iJBBB B(A0G8G( 8A0A(B BBBG L| pxBBD D(G0d (D ABBH i(A ABB, pNADD v DAE $ pHAFD sDAd$ qBBE J(G0D8D@ 8G0A(B BBBJ D8A0A(B BBB4 PrWBDC y ABK AADL xrBED I(D0P (A ABBB K(A ABB$ rZAAD QAAd< r3BBB E(A0A8DP 8D0A(B BBBA J 8A0A(B BBBE  t*Da, fBAC UAEL tMBBB B(A0A8D@ 8D0A(B BBBM L< u@BBE B(A0A8J 8A0A(B BBBA 4 zZADD r DAH D CAA 4 zBAC x DBD ABL p{BHB B(D0A8DP 8D0A(B BBBG dL|BBB B(A0A8DPZ 8A0A(B BBBN  8D0A(B BBBA ,h~?AIG N AAG x~D C <HBDD n AEB q DEF 4DADD  AAK  AAA |P(AbL`BBB B(A0A8Jb 8A0A(B BBBH LBDB G(A0[ (A BEBK  (A BEBH ,<~REH  ALC LlPBBE B(A0A8G  8A0A(B BBBE 4AAL f GAL R DAA t9BBB A(F0 (A BBBD A (D BBBE  (A BBBJ (A BBBdl`BBB E(D0A8G@ 8A0A(B BBBA 8H0A(B BBB+AiBA@d(QBBB B(A0A8D@ 8F0A(B BBBL D 8C0A(B BBBA 4| WBDA ~ AGC AAD,H`AAG s AAB $x>ADF lAAL BEE B(D0D8JB 8A0A(B BBBD \ tG)D4AAD d AAD { AAC pvAb A $ЙbDl H M K Q$U4<`jBBD A(G0S(A ABB,tYBDI | ABA ,ȚAAG k AAJ (D,\BAA TABD$țLED f ABB AADM ,l qBAD R ABA pANph`XP4HL@d8|0($ AAD AA4BAA s ABF aADLTBBB E(D0D8D`: 8A0A(B BBBE LaBBB B(A0A8D` 8A0A(B BBBA ذO U  AZ,45BDI bABdAODeBEE E(H0H8M@l8A0A(B BBBU@pU@cP 5@ LAmamao@@P@ ` pa#@"@ o"@oo @maV5@f5@v5@5@5@5@5@5@5@5@5@6@6@&6@66@F6@V6@f6@v6@6@6@6@6@6@6@6@6@7@7@&7@67@F7@V7@f7@v7@7@7@7@7@7@7@7@7@8@8@&8@68@F8@V8@f8@v8@8@8@8@8@8@8@8@8@9@9@&9@69@F9@V9@f9@v9@9@9@9@9@9@9@9@9@:@:@&:@6:@F:@V:@f:@v:@:@:@:@:@:@:@:@:@;@;@&;@6;@F;@V;@f;@v;@;@;@;@;@;@;@;@;@<@<@&<@6<@F<@V<@f<@v<@<@<@<@<@<@<@<@<@=@=@&=@6=@F=@V=@f=@v=@=@=@=@=@=@=@=@=@>@>@&>@6>@F>@V>@f>@v>@>@>@>@>@>@>@>@>@?@?@&?@6?@F?@V?@f?@v?@?@?@?@?@?@?@?@?@@@@@&@@6@@F@@V@@f@@v@@@@@@@@@@@@@@@@@@tA)2Avah@.A@VACbAX)AgAdmAAD)AAAAA AfAAkAAKA"Aw)A 2A(A1AW)A;AHAl*ASAc0*A ZARaAh*AjAALA*AAmA*A2AM2A*AASA +AsAeAH+AAix+AAI+AAAA+AA+A Aa8,A AuX,A Ax,A AAPA,A= ArD A,AK A7-Ae AEaAQ An A} A A A A A ApD A8-A+!At A AT A AAHA-A!!AX!A-A)!AZ8.Ah1!AE!AA2A0AAM!AO!AQ!A1AS!AU!AW!A APPman.debug7zXZִF!t/ ]?Eh=ڊ̓ND4:~wa[̉T1ޞȶ5E`_zI {^"ˌAg7EEH>JM11?mv,̀˧09H ?; "6E[TI]$N΢ $0P,2҅7:0F81ah0o[e߉a-➯ɴG;#iQ//o%2 j{6IlzzU(\!x;J ~ tJz ǑÅť=q4@俄TອK^շ̟b{DI]7k ػ-I.ALb 'Y_J`ӽ}!J(0lD+nCNWJFR378Ȝ0A\6n*ښkwF)/%E"V ͫR@SO*n;%B;8{ìT6!%F],u4IV-7o`K_7-PJrwUO0^ّltL\ĖŹrAȤ241IwsBeF jniK.@E><.Q&} EpkZ 3R0e<|4[ЎBao&*{2<6kkHЮrluv(Jo7ʎ71"t SXTB9cJ:@CcC}T+Y`dF S+XA\ Vb9QÁ96}&"K0dZ;VϬɒ?ob,mPt !wX0P+o Z_F1ksp&; ;[յw L.cZ$Xvtpn kSxoIo}skBZheԠMDƅ(I[R&2ALNZ=n.SK+=I4ɡgé~.l鶞̙@؝XS-|I努gAv7\ B22(>`Ukg,NojLrCJi=/"׳^Y;?ںEKal YW_"dY㮴W+ybB)R[\cJj1DqH).@oV9%]5]ڎ>7Z!F0?ꢪe)׍BgJh`AvU(6zP\$fn]c{R3éq.71Gwխ•0wlޡԝ>b+D6+ܹ/:4 ] 2Y&gF28u8:x 0OF"]9x6S՝[$+Og aZ?dIP%fhd@BFa2H(E":RF)$`QE3`OhZFOh^me~u5ri$~a B%aߧ`Lw$E:ppb?+p$.kW⋌`M{X+hy &qz^~*#,?Q)-b/=L)ä"Gu);ۆcC'>E`k;s~A eX}aK >o9{,M8g̰k'd+7oQP;yib~Gz @<·m!WaJ)b7BP t4밮W2?@Ji0m7zC=!/ #{UM->u1;%\mR7, a\_|5ٮ.cpeKDb{-*݉g@+4\cWʲ)kvx|א0 yf<"/9jA@@-RFd.0Sc ~fEĨǰA`gYZ.shstrtab.interp.note.ABI-tag.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.got.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.jcr.dynamic.got.plt.data.bss.gnu_debuglink.gnu_debugdata 8@8T@T !t@t$4o@> P@P8F@` No @ [o"@"`j"@"tB#@#~5@5y@5@@5 A@AA@A:LAL `A`&1 FAF`JA`J,mammammammam oaopapvav  ah , ,TIFFReadRGBAStrip.3tiff.html000064400000016471147561453440011474 0ustar00 TIFFReadRGBAStrip

TIFFReadRGBAStrip

NAME
SYNOPSIS
DESCRIPTION
NOTES
RETURN VALUES
DIAGNOSTICS
SEE ALSO

NAME

TIFFReadRGBAStrip − read and decode an image strip into a fixed-format raster

SYNOPSIS

#include <tiffio.h>

#define TIFFGetR(abgr) ((abgr) & 0xff)
#define TIFFGetG(abgr) (((abgr) >> 8) & 0xff)
#define TIFFGetB(abgr) (((abgr) >> 16) & 0xff)
#define TIFFGetA(abgr) (((abgr) >> 24) & 0xff)

int TIFFReadRGBAStrip(TIFF *tif, uint32 row, uint32 *raster)

DESCRIPTION

TIFFReadRGBAStrip reads a single strip of a strip-based image into memory, storing the result in the user supplied RGBA raster. The raster is assumed to be an array of width times rowsperstrip 32-bit entries, where width is the width of the image (TIFFTAG_IMAGEWIDTH) and rowsperstrip is the maximum lines in a strip (TIFFTAG_ROWSPERSTRIP).

The row value should be the row of the first row in the strip (strip * rowsperstrip, zero based).

Note that the raster is assume to be organized such that the pixel at location (x,y) is raster[y*width+x]; with the raster origin in the lower-left hand corner of the strip. That is bottom to top organization. When reading a partial last strip in the file the last line of the image will begin at the beginning of the buffer.

Raster pixels are 8-bit packed red, green, blue, alpha samples. The macros TIFFGetR, TIFFGetG, TIFFGetB, and TIFFGetA should be used to access individual samples. Images without Associated Alpha matting information have a constant Alpha of 1.0 (255).

See the TIFFRGBAImage(3TIFF) page for more details on how various image types are converted to RGBA values.

NOTES

Samples must be either 1, 2, 4, 8, or 16 bits. Colorimetric samples/pixel must be either 1, 3, or 4 (i.e. SamplesPerPixel minus ExtraSamples).

Palette image colormaps that appear to be incorrectly written as 8-bit values are automatically scaled to 16-bits.

TIFFReadRGBAStrip is just a wrapper around the more general TIFFRGBAImage(3TIFF) facilities. It’s main advantage over the similar TIFFReadRGBAImage() function is that for large images a single buffer capable of holding the whole image doesn’t need to be allocated, only enough for one strip. The TIFFReadRGBATile() function does a similar operation for tiled images.

RETURN VALUES

1 is returned if the image was successfully read and converted. Otherwise, 0 is returned if an error was encountered.

DIAGNOSTICS

All error messages are directed to the TIFFError(3TIFF) routine.

Sorry, can not handle %d-bit pictures. The image had BitsPerSample other than 1, 2, 4, 8, or 16.

Sorry, can not handle %d-channel images. The image had SamplesPerPixel other than 1, 3, or 4.

Missing needed "PhotometricInterpretation" tag. The image did not have a tag that describes how to display the data.

No "PhotometricInterpretation" tag, assuming RGB. The image was missing a tag that describes how to display it, but because it has 3 or 4 samples/pixel, it is assumed to be RGB.

No "PhotometricInterpretation" tag, assuming min-is-black. The image was missing a tag that describes how to display it, but because it has 1 sample/pixel, it is assumed to be a grayscale or bilevel image.

No space for photometric conversion table. There was insufficient memory for a table used to convert image samples to 8-bit RGB.

Missing required "Colormap" tag. A Palette image did not have a required Colormap tag.

No space for tile buffer. There was insufficient memory to allocate an i/o buffer.

No space for strip buffer. There was insufficient memory to allocate an i/o buffer.

Can not handle format. The image has a format (combination of BitsPerSample, SamplesPerPixel, and PhotometricInterpretation) that TIFFReadRGBAImage can not handle.

No space for B&W mapping table. There was insufficient memory to allocate a table used to map grayscale data to RGB.

No space for Palette mapping table. There was insufficient memory to allocate a table used to map data to 8-bit RGB.

SEE ALSO

TIFFOpen(3TIFF), TIFFRGBAImage(3TIFF), TIFFReadRGBAImage(3TIFF), TIFFReadRGBATile(3TIFF), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


tiff2ps.1.html000064400000031422147561453440007165 0ustar00 TIFF2PS

TIFF2PS

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
EXAMPLES
BUGS
SEE ALSO

NAME

tiff2ps − convert a TIFF image to PostScript™

SYNOPSIS

tiff2ps [ options ] input.tif ...

DESCRIPTION

tiff2ps reads TIFF images and writes PostScript or Encapsulated PostScript (EPS) on the standard output. By default, tiff2ps writes Encapsulated PostScript for the first image in the specified TIFF image file.

By default, tiff2ps will generate PostScript that fills a printed area specified by the TIFF tags in the input file. If the file does not contain XResolution or YResolution tags, then the printed area is set according to the image dimensions. The −w and −h options (see below) can be used to set the dimensions of the printed area in inches; overriding any relevant TIFF tags.

The PostScript generated for RGB, palette, and CMYK images uses the colorimage operator. The PostScript generated for greyscale and bilevel images uses the image operator. When the colorimage operator is used, PostScript code to emulate this operator on older PostScript printers is also generated. Note that this emulation code can be very slow.

Color images with associated alpha data are composited over a white background.

OPTIONS

−1

Generate PostScript Level 1 (the default).

−2

Generate PostScript Level 2.

−3

Generate PostScript Level 3. It basically allows one to use the /flateDecode filter for ZIP compressed TIFF images.

−a

Generate output for all IFDs (pages) in the input file.

−b

Specify the bottom margin for the output (in inches). This does not affect the height of the printed image.

−c

Center the image in the output. This option only shows an effect if both the −w and the −h option are given.

−d

Set the initial TIFF directory to the specified directory number. (NB: Directories are numbered starting at zero.) This option is useful for selecting individual pages in a multi-page (e.g. facsimile) file.

−e

Force the generation of Encapsulated PostScript (implies −z).

−h

Specify the vertical size of the printed area (in inches).

−H

Specify the maximum height of image (in inches). Images with larger sizes will be split in several pages. Option −L may be used for specifying size of split images overlapping.

−i

Enable/disable pixel interpolation. This option requires a single numeric value: zero to disable pixel interpolation and non-zero to enable. The default is enabled.

−L

Specify the size of overlapping for split images (in inches). Used in conjunction with −H option.

−l

Specify the left margin for the output (in inches). This does not affect the width of the printed image.

−m

Where possible render using the imagemask PostScript operator instead of the image operator. When this option is specified tiff2ps will use imagemask for rendering 1 bit deep images. If this option is not specified or if the image depth is greater than 1 then the image operator is used.

−o

Set the initial TIFF directory to the IFD at the specified file offset. This option is useful for selecting thumbnail images and the like which are hidden using the SubIFD tag.

−p

Force the generation of (non-Encapsulated) PostScript.

−r

Rotate image by 180 degrees.

−s

Generate output for a single IFD (page) in the input file.

−w

Specify the horizontal size of the printed area (in inches).

−x

Override resolution units specified in the TIFF as centimeters.

−y

Override resolution units specified in the TIFF as inches.

−z

When generating PostScript Level 2, data is scaled so that it does not image into the deadzone on a page (the outer margin that the printing device is unable to mark). This option suppresses this behavior. When PostScript Level 1 is generated, data is imaged to the entire printed page and this option has no affect.

EXAMPLES

The following generates PostScript Level 2 for all pages of a facsimile:

tiff2ps −a2 fax.tif | lpr

Note also that if you have version 2.6.1 or newer of Ghostscript then you can efficiently preview facsimile generated with the above command.

To generate Encapsulated PostScript for a the image at directory 2 of an image use:

tiff2ps −d 1 foo.tif

(Notice that directories are numbered starting at zero.)

If you have a long image, it may be split in several pages:

tiff2ps −h11 −w8.5 −H14 −L.5 foo.tif > foo.ps

The page size is set to 8.5x11 by −w and −h options. We will accept a small amount of vertical compression, so −H set to 14. Any pages between 11 and 14 inches will be fit onto one page. Pages longer than 14 inches are cut off at 11 and continued on the next page. The −L.5 option says to repeat a half inch on the next page (to improve readability).

BUGS

Because PostScript does not support the notion of a colormap, 8-bit palette images produce 24-bit PostScript images. This conversion results in output that is six times bigger than the original image and which takes a long time to send to a printer over a serial line. Matters are even worse for 4-, 2-, and 1-bit palette images.

Does not handle tiled images when generating PostScript Level I output.

SEE ALSO

pal2rgb(1), tiffinfo(1), tiffcp(1), tiffgt(1), tiffmedian(1), tiff2bw(1), tiffsv(1), libtiff(3)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFReadDirectory.3tiff.html000064400000017646147561453440011710 0ustar00 TIFFReadDirectory

TIFFReadDirectory

NAME
SYNOPSIS
DESCRIPTION
NOTES
RETURN VALUES
DIAGNOSTICS
SEE ALSO

NAME

TIFFReadDirectory − get the contents of the next directory in an open TIFF file

SYNOPSIS

#include <tiffio.h>

int TIFFReadDirectory(TIFF *tif)

DESCRIPTION

Read the next directory in the specified file and make it the current directory. Applications only need to call TIFFReadDirectory to read multiple subfiles in a single TIFF file— the first directory in a file is automatically read when TIFFOpen is called.

NOTES

If the library is compiled with STRIPCHOP_SUPPORT enabled, then images that have a single uncompressed strip or tile of data are automatically treated as if they were made up of multiple strips or tiles of approximately 8 kilobytes each. This operation is done only in-memory; it does not alter the contents of the file. However, the construction of the ‘‘chopped strips’’ is visible to the application through the number of strips [tiles] returned by TIFFNumberOfStrips [TIFFNumberOfTiles].

RETURN VALUES

If the next directory was successfully read, 1 is returned. Otherwise, 0 is returned if an error was encountered, or if there are no more directories to be read.

DIAGNOSTICS

All error messages are directed to the TIFFError(3TIFF) routine. All warning messages are directed to the TIFFWarning(3TIFF) routine.

Seek error accessing TIFF directory. An error occurred while positioning to the location of the directory.

Wrong data type %d for field "%s". The tag entry in the directory had an incorrect data type. For example, an ImageDescription tag with a SHORT data type.

TIFF directory is missing required "%s" field. The specified tag is required to be present by the TIFF 5.0 specification, but is missing. The directory is (usually) unusable.

%s: Rational with zero denominator. A directory tag has a RATIONAL value whose denominator is zero.

Incorrect count %d for field "%s" (%lu, expecting %lu); tag ignored. The specified tag’s count field is bad. For example, a count other than 1 for a SubFileType tag.

Cannot handle different per-sample values for field "%s". The tag has SamplesPerPixel values and they are not all the same; e.g. BitsPerSample. The library is unable to handle images of this sort.

Count mismatch for field "%s"; expecting %d, got %d. The count field in a tag does not agree with the number expected by the library. This should never happen, so if it does, the library refuses to read the directory.

Invalid TIFF directory; tags are not sorted in ascending order. The directory tags are not properly sorted as specified in the TIFF 5.0 specification. This error is not fatal.

Ignoring unknown field with tag %d (0x%x). An unknown tag was encountered in the directory; the library ignores all such tags.

TIFF directory is missing requred "ImageLength" field. The image violates the specification by not having a necessary field. There is no way for the library to recover from this error.

TIFF directory is missing requred "PlanarConfig" field. The image violates the specification by not having a necessary field. There is no way for the library to recover from this error.

TIFF directory is missing requred "StripOffsets" field. The image has multiple strips, but is missing the tag that specifies the file offset to each strip of data. There is no way for the library to recover from this error.

TIFF directory is missing requred "TileOffsets" field. The image has multiple tiles, but is missing the tag that specifies the file offset to each tile of data. There is no way for the library to recover from this error.

TIFF directory is missing required "StripByteCounts" field. The image has multiple strips, but is missing the tag that specifies the size of each strip of data. There is no way for the library to recover from this error.

TIFF directory is missing required "StripByteCounts" field, calculating from imagelength. The image violates the specification by not having a necessary field. However, when the image is comprised of only one strip or tile, the library will estimate the missing value based on the file size.

Bogus "StripByteCounts" field, ignoring and calculating from imagelength. Certain vendors violate the specification by writing zero for the StripByteCounts tag when they want to leave the value unspecified. If the image has a single strip, the library will estimate the missing value based on the file size.

SEE ALSO

TIFFOpen(3TIFF), TIFFWriteDirectory(3TIFF), TIFFSetDirectory(3TIFF), TIFFSetSubDirectory(3TIFF), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFError.3tiff.html000064400000006257147561453440010235 0ustar00 TIFFError

TIFFError

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUES
SEE ALSO

NAME

TIFFError, TIFFSetErrorHandler − library error handling interface

SYNOPSIS

#include <tiffio.h>

void TIFFError(const char *module, const char *fmt, ...)

#include <stdarg.h>

typedef void (*TIFFErrorHandler)(const char *module, const char *fmt, va_list ap);
TIFFErrorHandler TIFFSetErrorHandler(TIFFErrorHandler handler);

DESCRIPTION

TIFFError invokes the library-wide error handling function to (normally) write an error message to the stderr. The fmt parameter is a printf(3S) format string, and any number arguments can be supplied. The module parameter, if non-zero, is printed before the message; it typically is used to identify the software module in which an error is detected.

Applications that desire to capture control in the event of an error should use TIFFSetErrorHandler to override the default error handler. A NULL (0) error handling function may be installed to suppress error messages.

RETURN VALUES

TIFFSetErrorHandler returns a reference to the previous error handling function.

SEE ALSO

TIFFWarning(3TIFF), libtiff(3TIFF), printf(3)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFWriteEncodedTile.3tiff.html000064400000011436147561453440012331 0ustar00 TIFFWriteEncodedTile

TIFFWriteEncodedTile

NAME
SYNOPSIS
DESCRIPTION
NOTES
RETURN VALUES
DIAGNOSTICS
SEE ALSO

NAME

TIFFWritedEncodedTile − compress and write a tile of data to an open TIFF file

SYNOPSIS

#include <tiffio.h>

tsize_t TIFFWriteEncodedTile(TIFF *tif, ttile_t tile, tdata_t buf, tsize_t size)

DESCRIPTION

Compress size bytes of raw data from buf and append the result to the end of the specified tile. Note that the value of tile is a ‘‘raw tile number.’’ That is, the caller must take into account whether or not the data are organized in separate places (PlanarConfiguration=2). TIFFComputeTile automatically does this when converting an (x,y,z,sample) coordinate quadruple to a tile number.

NOTES

The library writes encoded data using the native machine byte order. Correctly implemented TIFF readers are expected to do any necessary byte-swapping to correctly process image data with BitsPerSample greater than 8.

RETURN VALUES

−1 is returned if an error was encountered. Otherwise, the value of size is returned.

DIAGNOSTICS

All error messages are directed to the TIFFError(3TIFF) routine.

%s: File not open for writing. The file was opened for reading, not writing.

Can not write tiles to a stripped image. The image is assumed to be organized in strips because neither of the TileWidth or TileLength tags have been set with TIFFSetField(3TIFF).

%s: Must set "ImageWidth" before writing data. The image’s width has not be set before the first write. See TIFFSetField(3TIFF) for information on how to do this.

%s: Must set "PlanarConfiguration" before writing data. The organization of data has not be defined before the first write. See TIFFSetField(3TIFF) for information on how to do this.

%s: No space for tile arrays". There was not enough space for the arrays that hold tile offsets and byte counts.

SEE ALSO

TIFFOpen(3TIFF), TIFFWriteTile(3TIFF), TIFFWriteRawTile(3TIFF), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


tiffcmp.1.html000064400000010461147561453440007240 0ustar00 TIFFCMP

TIFFCMP

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
BUGS
SEE ALSO

NAME

tiffcmp − compare two TIFF files

SYNOPSIS

tiffcmp [ options ] file1.tif file2.tif

DESCRIPTION

Tiffcmp compares the tags and data in two files created according to the Tagged Image File Format, Revision 6.0. The schemes used for compressing data in each file are immaterial when data are compared−data are compared on a scanline-by-scanline basis after decompression. Most directory tags are checked; notable exceptions are: GrayResponseCurve, ColorResponseCurve, and ColorMap tags. Data will not be compared if any of the BitsPerSample, SamplesPerPixel, or ImageWidth values are not equal. By default, tiffcmp will terminate if it encounters any difference.

OPTIONS

−l

List each byte of image data that differs between the files.

−z number

List specified number of image data bytes that differs between the files.

−t

Ignore any differences in directory tags.

BUGS

Tags that are not recognized by the library are not compared; they may also generate spurious diagnostics.

The image data of tiled files is not compared, since the TIFFReadScanline() function is used. An error will be reported for tiled files.

The pixel and/or sample number reported in differences may be off in some exotic cases.

SEE ALSO

pal2rgb(1), tiffcp(1), tiffmedian(1), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFswab.3tiff.html000064400000006644147561453440010100 0ustar00 SWAB

SWAB

NAME
SYNOPSIS
DESCRIPTION
DIAGNOSTICS
SEE ALSO

NAME

TIFFGetBitRevTable, TIFFReverseBits, TIFFSwabShort, TIFFSwabLong, TIFFSwabArrayOfShort, TIFFSwabArrayOfLong − byte- and bit-swapping routines

SYNOPSIS

#include <tiffio.h>

const unsigned char* TIFFGetBitRevTable(int reversed)
void TIFFReverseBits(u_char *
data, unsigned long nbytes)
void TIFFSwabShort(uint16 *
data)
void TIFFSwabLong(uint32 *
data)
void TIFFSwabArrayOfShort(uint16 *
data, unsigned long nshorts)
void TIFFSwabArrayOfLong(uint32 *
data, unsigned long nlongs)

DESCRIPTION

The following routines are used by the library to swap 16- and 32-bit data and to reverse the order of bits in bytes.

TIFFSwabShort and TIFFSwabLong swap the bytes in a single 16-bit and 32-bit item, respectively. TIFFSwabArrayOfShort and TIFFSwabArrayOfLong swap the bytes in an array of 16-bit and 32-bit items, respectively.

TIFFReverseBits replaces each byte in data with the equivalent bit-reversed value. This operation is performed with a lookup table, which is returned using the TIFFGetBitRevTable function. reversed parameter specifies which table should be returned. Supply 1 if you want bit reversal table. Supply 0 to get the table that do not reverse bit values. It is a lookup table that can be used as an identity function; i.e. TIFFNoBitRevTable[n] == n.

DIAGNOSTICS

None.

SEE ALSO

libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


libtiff.3tiff.html000064400000060000147561453440010074 0ustar00 INTRO

INTRO

NAME
SYNOPSIS
DESCRIPTION
DATA TYPES
LIST OF ROUTINES
TAG USAGE
PSEUDO TAGS
DIAGNOSTICS
SEE ALSO
BUGS

NAME

libtiff − introduction to libtiff, a library for reading and writing TIFF files

SYNOPSIS

#include <tiffio.h>

cc file.c -ltiff

DESCRIPTION

libtiff is a library for reading and writing data files encoded with the Tag Image File format, Revision 6.0 (or revision 5.0 or revision 4.0). This file format is suitable for archiving multi-color and monochromatic image data.

The library supports several compression algorithms, as indicated by the Compression field, including: no compression (1), CCITT 1D Huffman compression (2), CCITT Group 3 Facsimile compression (3), CCITT Group 4 Facsimile compression (4), Lempel-Ziv & Welch compression (5), baseline JPEG compression (7), word-aligned 1D Huffman compression (32771), and PackBits compression (32773). In addition, several nonstandard compression algorithms are supported: the 4-bit compression algorithm used by the ThunderScan program (32809) (decompression only), NeXT’s 2-bit compression algorithm (32766) (decompression only), an experimental LZ-style algorithm known as Deflate (32946), and an experimental CIE LogLuv compression scheme designed for images with high dynamic range (32845 for LogL and 32845 for LogLuv). Directory information may be in either little- or big-endian byte order−byte swapping is automatically done by the library. Data bit ordering may be either Most Significant Bit ( MSB ) to Least Significant Bit ( LSB ) or LSB to MSB. Finally, the library does not support files in which the BitsPerSample, Compression, MinSampleValue, or MaxSampleValue fields are defined differently on a per-sample basis (in Rev. 6.0 the Compression tag is not defined on a per-sample basis, so this is immaterial).

DATA TYPES

The library makes extensive use of C typedefs to promote portability. Two sets of typedefs are used, one for communication with clients of the library and one for internal data structures and parsing of the TIFF format. The following typedefs are exposed to users either through function definitions or through parameters passed through the varargs interfaces.

typedef unsigned short uint16;

16-bit unsigned integer

typedef unsigned <thing> uint32;

32-bit unsigned integer

typedef unsigned int ttag_t;

directory tag

typedef uint16 tdir_t;

directory index

typedef uint16 tsample_t;

sample number

typedef uint32 tstrip_t;

strip number

typedef uint32 ttile_t;

tile number

typedef int32 tsize_t;

i/o size in bytes

typedef void* tdata_t;

image data ref

typedef void* thandle_t;

client data handle

typedef int32 toff_t;

file offset

Note that tstrip_t, ttile_t, and tsize_t are constrained to be no more than 32-bit quantities by 32-bit fields they are stored in in the TIFF image. Likewise tsample_t is limited by the 16-bit field used to store the SamplesPerPixel tag. tdir_t constrains the maximum number of IFDs that may appear in an image and may be an arbitrary size (w/o penalty). ttag_t must be either int, unsigned int, pointer, or double because the library uses a varargs interface and ANSI C restricts the type of the parameter before an ellipsis to be a promoted type. toff_t is defined as int32 because TIFF file offsets are (unsigned) 32-bit quantities. A signed value is used because some interfaces return −1 on error. Finally, note that user-specified data references are passed as opaque handles and only cast at the lowest layers where their type is presumed.

LIST OF ROUTINES

The following routines are part of the library. Consult specific manual pages for details on their operation; on most systems doing ‘‘man function-name’’ will work.

Name Description

TIFFCheckpointDirectory

writes the current state of the directory

TIFFCheckTile

very x,y,z,sample is within image

TIFFCIELabToRGBInit

initialize CIE L*a*b* 1976 to RGB conversion state

TIFFCIELabToXYZ

perform CIE L*a*b* 1976 to CIE XYZ conversion

TIFFClientOpen

open a file for reading or writing

TIFFClose

close an open file

TIFFComputeStrip

return strip containing y,sample

TIFFComputeTile

return tile containing x,y,z,sample

TIFFCurrentDirectory

return index of current directory

TIFFCurrentRow

return index of current scanline

TIFFCurrentStrip

return index of current strip

TIFFCurrentTile

return index of current tile

TIFFDataWidth

return the size of TIFF data types

TIFFError

library error handler

TIFFFdOpen

open a file for reading or writing

TIFFFileName

return name of open file

TIFFFileno

return open file descriptor

TIFFFindCODEC

find standard codec for the specific scheme

TIFFFlush

flush all pending writes

TIFFFlushData

flush pending data writes

TIFFGetBitRevTable

return bit reversal table

TIFFGetField

return tag value in current directory

TIFFGetFieldDefaulted

return tag value in current directory

TIFFGetMode

return open file mode

TIFFGetVersion

return library version string

TIFFIsCODECConfigured

check, whether we have working codec

TIFFIsMSB2LSB

return true if image data is being returned

with bit 0 as the most significant bit

TIFFIsTiled

return true if image data is tiled

TIFFIsByteSwapped

return true if image data is byte-swapped

TIFFNumberOfStrips

return number of strips in an image

TIFFNumberOfTiles

return number of tiles in an image

TIFFOpen

open a file for reading or writing

TIFFPrintDirectory

print description of the current directory

TIFFReadBufferSetup

specify i/o buffer for reading

TIFFReadDirectory

read the next directory

TIFFReadEncodedStrip

read and decode a strip of data

TIFFReadEncodedTile

read and decode a tile of data

TIFFReadRawStrip

read a raw strip of data

TIFFReadRawTile

read a raw tile of data

TIFFReadRGBAImage

read an image into a fixed format raster

TIFFReadScanline

read and decode a row of data

TIFFReadTile

read and decode a tile of data

TIFFRegisterCODEC

override standard codec for the specific scheme

TIFFReverseBits

reverse bits in an array of bytes

TIFFRGBAImageBegin

setup decoder state for TIFFRGBAImageGet

TIFFRGBAImageEnd

release TIFFRGBAImage decoder state

TIFFRGBAImageGet

read and decode an image

TIFFRGBAImageOK

is image readable by TIFFRGBAImageGet

TIFFScanlineSize

return size of a scanline

TIFFSetDirectory

set the current directory

TIFFSetSubDirectory

set the current directory

TIFFSetErrorHandler

set error handler function

TIFFSetField

set a tag’s value in the current directory

TIFFSetWarningHandler

set warning handler function

TIFFStripSize

returns size of a strip

TIFFRawStripSize

returns the number of bytes in a raw strip

TIFFSwabShort

swap bytes of short

TIFFSwabLong

swap bytes of long

TIFFSwabArrayOfShort

swap bytes of an array of shorts

TIFFSwabArrayOfLong

swap bytes of an array of longs

TIFFTileRowSize

return size of a row in a tile

TIFFTileSize

return size of a tile

TIFFUnRegisterCODEC

unregisters the codec

TIFFVGetField

return tag value in current directory

TIFFVGetFieldDefaulted

return tag value in current directory

TIFFVSetField

set a tag’s value in the current directory

TIFFVStripSize

returns the number of bytes in a strip

TIFFWarning

library warning handler

TIFFWriteDirectory

write the current directory

TIFFWriteEncodedStrip

compress and write a strip of data

TIFFWriteEncodedTile

compress and write a tile of data

TIFFWriteRawStrip

write a raw strip of data

TIFFWriteRawTile

write a raw tile of data

TIFFWriteScanline

write a scanline of data

TIFFWriteTile

compress and write a tile of data

TIFFXYZToRGB

perform CIE XYZ to RGB conversion

TIFFYCbCrToRGBInit

initialize YCbCr to RGB conversion state

TIFFYCbCrtoRGB

perform YCbCr to RGB conversion

Auxiliary functions:

_TIFFfree

free memory buffer

_TIFFmalloc

dynamically allocate memory buffer

_TIFFmemcmp

compare contents of the memory buffers

_TIFFmemcpy

copy contents of the one buffer to another

_TIFFmemset

fill memory buffer with a constant byte

_TIFFrealloc

dynamically reallocate memory buffer

TAG USAGE

}gs; \& shift @outer; \& foreach $r (@outer) { \& @bits = $r =~ m{(.*?)}gs; \& for ($x = 0; $x < @bits; $x++) { \& $b = $bits[$x]; \& @v = split /\es*
\es*/, $b; \& foreach (@v) { s/^\es+//; s/\es+$// } \& push @{$data[$x]}, @v; \& } \& } \& \& for ($y = 0; $y < @{$data[0]}; $y++) { \& $data{$data[1][$y]} = { \& NAME => $data[1][$y], \& RANK => $data[0][$y], \& POP => comma_free($data[2][$y]), \& AREA => comma_free($data[3][$y]), \& DENS => comma_free($data[4][$y]), \& }; \& } \& \& store(\e%data, "cities.dat"); \& \& sub comma_free { \& my $n = shift; \& $n =~ s/,//; \& return $n; \& } .Ve .PP \&\f(CW\*(C`plague_of_coffee\*(C'\fR .PP .Vb 1 \& #!/usr/bin/perl \-w \& \& use WWW::Mechanize; \& use strict; \& use Storable; \& \& $SIG{_\|_WARN_\|_} = sub {} ; # ssssssh \& \& my $Cities = retrieve("cities.dat"); \& \& my $m = WWW::Mechanize\->new(); \& $m\->get("http://local.yahoo.com/"); \& \& my @cities = sort { $Cities\->{$a}{RANK} <=> $Cities\->{$b}{RANK} } keys %$Cities; \& foreach my $c ( @cities ) { \& my $fields = { \& \*(Aqstx\*(Aq => "starbucks", \& \*(Aqcsz\*(Aq => $c, \& }; \& \& my $r = $m\->submit_form(form_number => 2, \& fields => $fields); \& die "Couldn\*(Aqt submit form" unless $r\->is_success; \& \& my $hits = number_of_hits($r); \& # my $ppl = sprintf("%d", 1000 * $Cities\->{$c}{POP} / $hits); \& # print "$c has $hits Starbucks. That\*(Aqs one for every $ppl people.\en"; \& my $density = sprintf("%.1f", $Cities\->{$c}{AREA} / $hits); \& print "$c : $density\en"; \& } \& \& sub number_of_hits { \& my $r = shift; \& my $c = $r\->content; \& if ($c =~ m{\ed+ out of (\ed+) total results for}) { \& return $1; \& } \& if ($c =~ m{Sorry, no .*? found in or near}) { \& return 0; \& } \& if ($c =~ m{Your search matched multiple cities}) { \& warn "Your search matched multiple cities\en"; \& return 0; \& } \& if ($c =~ m{Sorry we couldn.t find that location}) { \& warn "No cities\en"; \& return 0; \& } \& if ($c =~ m{Could not find.*?, showing results for}) { \& warn "No matches\en"; \& return 0; \& } \& die "Unknown response\en$c\en"; \& } .Ve .SS "pb-upload, by John Beppu" .IX Subsection "pb-upload, by John Beppu" This program takes filenames of images from the command line and uploads them to a www.photobucket.com folder. John Beppu, the author, says: .Sp .RS 4 I had 92 pictures I wanted to upload, and doing it through a browser would've been torture. But thanks to mech, all I had to do was `./pb.upload *.jpg` and watch it do its thing. It felt good. If I had more time, I'd implement WWW::Photobucket on top of WWW::Mechanize. .RE .PP .Vb 1 \& #!/usr/bin/perl \-w \-T \& \& use strict; \& use WWW::Mechanize; \& \& my $login = "login_name"; \& my $password = "password"; \& my $folder = "folder"; \& \& my $url = "http://img78.photobucket.com/albums/v281/$login/$folder/"; \& \& # login to your photobucket.com account \& my $mech = WWW::Mechanize\->new(); \& $mech\->get($url); \& $mech\->submit_form( \& form_number => 1, \& fields => { password => $password }, \& ); \& die unless ($mech\->success); \& \& # upload image files specified on command line \& foreach (@ARGV) { \& print "$_\en"; \& $mech\->form_number(2); \& $mech\->field(\*(Aqthe_file[]\*(Aq => $_); \& $mech\->submit(); \& } .Ve .SS "listmod, by Ian Langworth" .IX Subsection "listmod, by Ian Langworth" Ian Langworth contributes this little gem that will bring joy to beleaguered mailing list admins. It discards spam messages through mailman's web interface. .PP .Vb 8 \& #!/arch/unix/bin/perl \& use strict; \& use warnings; \& # \& # listmod \- fast alternative to mailman list interface \& # \& # usage: listmod crew XXXXXXXX \& # \& \& die "usage: $0 \en" unless @ARGV == 2; \& my ($listname, $password) = @ARGV; \& \& use CGI qw(unescape); \& \& use WWW::Mechanize; \& my $m = WWW::Mechanize\->new( autocheck => 1 ); \& \& use Term::ReadLine; \& my $term = Term::ReadLine\->new($0); \& \& # submit the form, get the cookie, go to the list admin page \& $m\->get("https://lists.ccs.neu.edu/bin/admindb/$listname"); \& $m\->set_visible( $password ); \& $m\->click; \& \& # exit if nothing to do \& print "There are no pending requests.\en" and exit \& if $m\->content =~ /There are no pending requests/; \& \& # select the first form and examine its contents \& $m\->form_number(1); \& my $f = $m\->current_form or die "Couldn\*(Aqt get first form!\en"; \& \& # get me the base form element for each email item \& my @items = map {m/^.+?\-(.+)/} grep {m/senderbanp/} $f\->param \& or die "Couldn\*(Aqt get items in first form!\en"; \& \& # iterate through items, prompt user, commit actions \& foreach my $item (@items) { \& \& # show item info \& my $sender = unescape($item); \& my ($subject) = [$f\->find_input("senderbanp\-$item")\->value_names]\->[1] \& =~ /Subject:\es+(.+?)\es+Size:/g; \& \& # prompt user \& my $choice = \*(Aq\*(Aq; \& while ( $choice !~ /^[DAX]$/ ) { \& print "$sender\e: \*(Aq$subject\*(Aq\en"; \& $choice = uc $term\->readline("Action: defer/accept/discard [dax]: "); \& print "\en\en"; \& } \& \& # set button \& $m\->field("senderaction\-$item" => {D=>0,A=>1,X=>3}\->{$choice}); \& } \& \& # submit actions \& $m\->click; .Ve .SS "ccdl, by Andy Lester" .IX Subsection "ccdl, by Andy Lester" Steve McConnell, author of the landmark \fICode Complete\fR has put up the chapters for the 2nd edition in \s-1PDF\s0 format on his website. I needed to download them to take to Kinko's to have printed. This little program did it for me. .PP .Vb 1 \& #!/usr/bin/perl \-w \& \& use strict; \& use WWW::Mechanize; \& \& my $start = "http://www.stevemcconnell.com/cc2/cc.htm"; \& \& my $mech = WWW::Mechanize\->new( autocheck => 1 ); \& $mech\->get( $start ); \& \& my @links = $mech\->find_all_links( url_regex => qr/\ed+.+\e.pdf$/ ); \& \& for my $link ( @links ) { \& my $url = $link\->url_abs; \& my $filename = $url; \& $filename =~ s[^.+/][]; \& \& print "Fetching $url"; \& $mech\->get( $url, \*(Aq:content_file\*(Aq => $filename ); \& \& print " ", \-s $filename, " bytes\en"; \& } .Ve .SS "quotes.pl, by Andy Lester" .IX Subsection "quotes.pl, by Andy Lester" This was a program that was going to get a hack in \fISpidering Hacks\fR, but got cut at the last minute, probably because it's against \s-1IMDB\s0's \s-1TOS\s0 to scrape from it. I present it here as an example, not a suggestion that you break their \s-1TOS.\s0 .PP Last I checked, it didn't work because their \s-1HTML\s0 didn't match, but it's still good as sample code. .PP .Vb 1 \& #!/usr/bin/perl \-w \& \& use strict; \& \& use WWW::Mechanize; \& use Getopt::Long; \& use Text::Wrap; \& \& my $match = undef; \& my $random = undef; \& GetOptions( \& "match=s" => \e$match, \& "random" => \e$random, \& ) or exit 1; \& \& my $movie = shift @ARGV or die "Must specify a movie\en"; \& \& my $quotes_page = get_quotes_page( $movie ); \& my @quotes = extract_quotes( $quotes_page ); \& \& if ( $match ) { \& $match = quotemeta($match); \& @quotes = grep /$match/i, @quotes; \& } \& \& if ( $random ) { \& print $quotes[rand @quotes]; \& } \& else { \& print join( "\en", @quotes ); \& } \& \& \& sub get_quotes_page { \& my $movie = shift; \& \& my $mech = WWW::Mechanize\->new; \& $mech\->get( "http://www.imdb.com/search" ); \& $mech\->success or die "Can\*(Aqt get the search page"; \& \& $mech\->submit_form( \& form_number => 2, \& fields => { \& title => $movie, \& restrict => "Movies only", \& }, \& ); \& \& my @links = $mech\->find_all_links( url_regex => qr[^/Title] ) \& or die "No matches for \e"$movie\e" were found.\en"; \& \& # Use the first link \& my ( $url, $title ) = @{$links[0]}; \& \& warn "Checking $title...\en"; \& \& $mech\->get( $url ); \& my $link = $mech\->find_link( text_regex => qr/Memorable Quotes/i ) \& or die qq{"$title" has no quotes in IMDB!\en}; \& \& warn "Fetching quotes...\en\en"; \& $mech\->get( $link\->[0] ); \& \& return $mech\->content; \& } \& \& \& sub extract_quotes { \& my $page = shift; \& \& # Nibble away at the unwanted HTML at the beginnning... \& $page =~ s/.+Memorable Quotes//si; \& $page =~ s/.+?( tag \& my @quotes = split( //, $page ); \& \& for my $quote ( @quotes ) { \& my @lines = split( /
/, $quote ); \& for ( @lines ) { \& s/<[^>]+>//g; # Strip HTML tags \& s/\es+/ /g; # Squash whitespace \& s/^ //; # Strip leading space \& s/ $//; # Strip trailing space \& s/"/"/g; # Replace HTML entity quotes \& \& # Word\-wrap to fit in 72 columns \& $Text::Wrap::columns = 72; \& $_ = wrap( \*(Aq\*(Aq, \*(Aq \*(Aq, $_ ); \& } \& $quote = join( "\en", @lines ); \& } \& \& return @quotes; \& } .Ve .SS "cpansearch.pl, by Ed Silva" .IX Subsection "cpansearch.pl, by Ed Silva" A quick little utility to search the \s-1CPAN\s0 and fire up a browser with a results page. .PP .Vb 1 \& #!/usr/bin/perl \& \& # turn on perl\*(Aqs safety features \& use strict; \& use warnings; \& \& # work out the name of the module we\*(Aqre looking for \& my $module_name = $ARGV[0] \& or die "Must specify module name on command line"; \& \& # create a new browser \& use WWW::Mechanize; \& my $browser = WWW::Mechanize\->new(); \& \& # tell it to get the main page \& $browser\->get("http://search.cpan.org/"); \& \& # okay, fill in the box with the name of the \& # module we want to look up \& $browser\->form_number(1); \& $browser\->field("query", $module_name); \& $browser\->click(); \& \& # click on the link that matches the module name \& $browser\->follow_link( text_regex => $module_name ); \& \& my $url = $browser\->uri; \& \& # launch a browser... \& system(\*(Aqgaleon\*(Aq, $url); \& \& exit(0); .Ve .SS "lj_friends.cgi, by Matt Cashner" .IX Subsection "lj_friends.cgi, by Matt Cashner" .Vb 1 \& #!/usr/bin/perl \& \& # Provides an rss feed of a paid user\*(Aqs LiveJournal friends list \& # Full entries, protected entries, etc. \& # Add to your favorite rss reader as \& # http://your.site.com/cgi\-bin/lj_friends.cgi?user=USER&password=PASSWORD \& \& use warnings; \& use strict; \& \& use WWW::Mechanize; \& use CGI; \& \& my $cgi = CGI\->new(); \& my $form = $cgi\->Vars; \& \& my $agent = WWW::Mechanize\->new(); \& \& $agent\->get(\*(Aqhttp://www.livejournal.com/login.bml\*(Aq); \& $agent\->form_number(\*(Aq3\*(Aq); \& $agent\->field(\*(Aquser\*(Aq,$form\->{user}); \& $agent\->field(\*(Aqpassword\*(Aq,$form\->{password}); \& $agent\->submit(); \& $agent\->get(\*(Aqhttp://www.livejournal.com/customview.cgi?user=\*(Aq.$form\->{user}.\*(Aq&styleid=225596&checkcookies=1\*(Aq); \& print "Content\-type: text/plain\en\en"; \& print $agent\->content(); .Ve .SS "Hacking Movable Type, by Dan Rinzel" .IX Subsection "Hacking Movable Type, by Dan Rinzel" .Vb 2 \& use strict; \& use WWW::Mechanize; \& \& # a tool to automatically post entries to a moveable type weblog, and set arbitrary creation dates \& \& my $mech = WWW::Mechanize\->new(); \& my $entry; \& $entry\->{title} = "Test AutoEntry Title"; \& $entry\->{btext} = "Test AutoEntry Body"; \& $entry\->{date} = \*(Aq2002\-04\-15 14:18:00\*(Aq; \& my $start = qq|http://my.blog.site/mt.cgi|; \& \& $mech\->get($start); \& $mech\->field(\*(Aqusername\*(Aq,\*(Aqund3f1n3d\*(Aq); \& $mech\->field(\*(Aqpassword\*(Aq,\*(Aqobscur3d\*(Aq); \& $mech\->submit(); # to get login cookie \& $mech\->get(qq|$start?_\|_mode=view&_type=entry&blog_id=1|); \& $mech\->form_name(\*(Aqentry_form\*(Aq); \& $mech\->field(\*(Aqtitle\*(Aq,$entry\->{title}); \& $mech\->field(\*(Aqcategory_id\*(Aq,1); # adjust as needed \& $mech\->field(\*(Aqtext\*(Aq,$entry\->{btext}); \& $mech\->field(\*(Aqstatus\*(Aq,2); # publish, or 1 = draft \& $results = $mech\->submit(); \& \& # if we\*(Aqre ok with this entry being datestamped "NOW" (no {date} in %entry) \& # we\*(Aqre done. Otherwise, time to be tricksy \& # MT returns a 302 redirect from this form. the redirect itself contains a handler \& # which takes the user to an editable version of the form where the create date can be edited \& # MT date format of YYYY\-MM\-DD HH:MI:SS is the only one that won\*(Aqt error out \& \& if ($entry\->{date} && $entry\->{date} =~ /^\ed{4}\-\ed{2}\-\ed{2}\es+\ed{2}:\ed{2}:\ed{2}/) { \& # travel the redirect \& $results = $mech\->get($results\->{_headers}\->{location}); \& $results\->{_content} =~ /get($start.$1); \& $mech\->form_name(\*(Aqentry_form\*(Aq); \& $mech\->field(\*(Aqcreated_on_manual\*(Aq,$entry\->{date}); \& $mech\->submit(); \& } .Ve .SS "get-despair, by Randal Schwartz" .IX Subsection "get-despair, by Randal Schwartz" Randal submitted this bot that walks the despair.com site sucking down all the pictures. .PP .Vb 2 \& use strict; \& $|++; \& \& use WWW::Mechanize; \& use File::Basename; \& \& my $m = WWW::Mechanize\->new; \& \& $m\->get("http://www.despair.com/indem.html"); \& \& my @top_links = @{$m\->links}; \& \& for my $top_link_num (0..$#top_links) { \& next unless $top_links[$top_link_num][0] =~ /^http:/; \& \& $m\->follow_link( n=>$top_link_num ) or die "can\*(Aqt follow $top_link_num"; \& \& print $m\->uri, "\en"; \& for my $image (grep m{^http://store4}, map $_\->[0], @{$m\->links}) { \& my $local = basename $image; \& print " $image...", $m\->mirror($image, $local)\->message, "\en" \& } \& \& $m\->back or die "can\*(Aqt go back"; \& } .Ve .SH "AUTHOR" .IX Header "AUTHOR" Andy Lester .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is copyright (c) 2004\-2016 by Andy Lester. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. man3/Module::Build::Notes.3pm000044400000011122147645265660011631 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Module::Build::Notes 3" .TH Module::Build::Notes 3 "2020-03-05" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Module::Build::Notes \- Create persistent distribution configuration modules .SH "DESCRIPTION" .IX Header "DESCRIPTION" This module is used internally by Module::Build to create persistent configuration files that can be installed with a distribution. See Module::Build::ConfigData for an example. .SH "AUTHOR" .IX Header "AUTHOR" Ken Williams .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 2001\-2006 Ken Williams. All rights reserved. .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIperl\fR\|(1), Module::Build(3) man3/Module::Build::Platform::Windows.3pm000044400000010661147645265660014073 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Module::Build::Platform::Windows 3" .TH Module::Build::Platform::Windows 3 "2020-03-05" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Module::Build::Platform::Windows \- Builder class for Windows platforms .SH "DESCRIPTION" .IX Header "DESCRIPTION" The sole purpose of this module is to inherit from \&\f(CW\*(C`Module::Build::Base\*(C'\fR and override a few methods. Please see Module::Build for the docs. .SH "AUTHOR" .IX Header "AUTHOR" Ken Williams , Randy W. Sims .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIperl\fR\|(1), \fIModule::Build\fR\|(3) man3/Digest::MD5.3pm000044400000040222147645265660007757 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "MD5 3" .TH MD5 3 "2016-03-09" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Digest::MD5 \- Perl interface to the MD5 Algorithm .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& # Functional style \& use Digest::MD5 qw(md5 md5_hex md5_base64); \& \& $digest = md5($data); \& $digest = md5_hex($data); \& $digest = md5_base64($data); \& \& # OO style \& use Digest::MD5; \& \& $ctx = Digest::MD5\->new; \& \& $ctx\->add($data); \& $ctx\->addfile($file_handle); \& \& $digest = $ctx\->digest; \& $digest = $ctx\->hexdigest; \& $digest = $ctx\->b64digest; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \f(CW\*(C`Digest::MD5\*(C'\fR module allows you to use the \s-1RSA\s0 Data Security Inc. \s-1MD5\s0 Message Digest algorithm from within Perl programs. The algorithm takes as input a message of arbitrary length and produces as output a 128\-bit \*(L"fingerprint\*(R" or \*(L"message digest\*(R" of the input. .PP Note that the \s-1MD5\s0 algorithm is not as strong as it used to be. It has since 2005 been easy to generate different messages that produce the same \s-1MD5\s0 digest. It still seems hard to generate messages that produce a given digest, but it is probably wise to move to stronger algorithms for applications that depend on the digest to uniquely identify a message. .PP The \f(CW\*(C`Digest::MD5\*(C'\fR module provide a procedural interface for simple use, as well as an object oriented interface that can handle messages of arbitrary length and which can read files directly. .SH "FUNCTIONS" .IX Header "FUNCTIONS" The following functions are provided by the \f(CW\*(C`Digest::MD5\*(C'\fR module. None of these functions are exported by default. .IP "md5($data,...)" 4 .IX Item "md5($data,...)" This function will concatenate all arguments, calculate the \s-1MD5\s0 digest of this \*(L"message\*(R", and return it in binary form. The returned string will be 16 bytes long. .Sp The result of md5(\*(L"a\*(R", \*(L"b\*(R", \*(L"c\*(R") will be exactly the same as the result of md5(\*(L"abc\*(R"). .IP "md5_hex($data,...)" 4 .IX Item "md5_hex($data,...)" Same as \fImd5()\fR, but will return the digest in hexadecimal form. The length of the returned string will be 32 and it will only contain characters from this set: '0'..'9' and 'a'..'f'. .IP "md5_base64($data,...)" 4 .IX Item "md5_base64($data,...)" Same as \fImd5()\fR, but will return the digest as a base64 encoded string. The length of the returned string will be 22 and it will only contain characters from this set: 'A'..'Z', 'a'..'z', '0'..'9', '+' and \&'/'. .Sp Note that the base64 encoded string returned is not padded to be a multiple of 4 bytes long. If you want interoperability with other base64 encoded md5 digests you might want to append the redundant string \*(L"==\*(R" to the result. .SH "METHODS" .IX Header "METHODS" The object oriented interface to \f(CW\*(C`Digest::MD5\*(C'\fR is described in this section. After a \f(CW\*(C`Digest::MD5\*(C'\fR object has been created, you will add data to it and finally ask for the digest in a suitable format. A single object can be used to calculate multiple digests. .PP The following methods are provided: .ie n .IP "$md5 = Digest::MD5\->new" 4 .el .IP "\f(CW$md5\fR = Digest::MD5\->new" 4 .IX Item "$md5 = Digest::MD5->new" The constructor returns a new \f(CW\*(C`Digest::MD5\*(C'\fR object which encapsulate the state of the \s-1MD5\s0 message-digest algorithm. .Sp If called as an instance method (i.e. \f(CW$md5\fR\->new) it will just reset the state the object to the state of a newly created object. No new object is created in this case. .ie n .IP "$md5\->reset" 4 .el .IP "\f(CW$md5\fR\->reset" 4 .IX Item "$md5->reset" This is just an alias for \f(CW$md5\fR\->new. .ie n .IP "$md5\->clone" 4 .el .IP "\f(CW$md5\fR\->clone" 4 .IX Item "$md5->clone" This a copy of the \f(CW$md5\fR object. It is useful when you do not want to destroy the digests state, but need an intermediate value of the digest, e.g. when calculating digests iteratively on a continuous data stream. Example: .Sp .Vb 5 \& my $md5 = Digest::MD5\->new; \& while (<>) { \& $md5\->add($_); \& print "Line $.: ", $md5\->clone\->hexdigest, "\en"; \& } .Ve .ie n .IP "$md5\->add($data,...)" 4 .el .IP "\f(CW$md5\fR\->add($data,...)" 4 .IX Item "$md5->add($data,...)" The \f(CW$data\fR provided as argument are appended to the message we calculate the digest for. The return value is the \f(CW$md5\fR object itself. .Sp All these lines will have the same effect on the state of the \f(CW$md5\fR object: .Sp .Vb 4 \& $md5\->add("a"); $md5\->add("b"); $md5\->add("c"); \& $md5\->add("a")\->add("b")\->add("c"); \& $md5\->add("a", "b", "c"); \& $md5\->add("abc"); .Ve .ie n .IP "$md5\->addfile($io_handle)" 4 .el .IP "\f(CW$md5\fR\->addfile($io_handle)" 4 .IX Item "$md5->addfile($io_handle)" The \f(CW$io_handle\fR will be read until \s-1EOF\s0 and its content appended to the message we calculate the digest for. The return value is the \f(CW$md5\fR object itself. .Sp The \fIaddfile()\fR method will \fIcroak()\fR if it fails reading data for some reason. If it croaks it is unpredictable what the state of the \f(CW$md5\fR object will be in. The \fIaddfile()\fR method might have been able to read the file partially before it failed. It is probably wise to discard or reset the \f(CW$md5\fR object if this occurs. .Sp In most cases you want to make sure that the \f(CW$io_handle\fR is in \&\f(CW\*(C`binmode\*(C'\fR before you pass it as argument to the \fIaddfile()\fR method. .ie n .IP "$md5\->add_bits($data, $nbits)" 4 .el .IP "\f(CW$md5\fR\->add_bits($data, \f(CW$nbits\fR)" 4 .IX Item "$md5->add_bits($data, $nbits)" .PD 0 .ie n .IP "$md5\->add_bits($bitstring)" 4 .el .IP "\f(CW$md5\fR\->add_bits($bitstring)" 4 .IX Item "$md5->add_bits($bitstring)" .PD Since the \s-1MD5\s0 algorithm is byte oriented you might only add bits as multiples of 8, so you probably want to just use \fIadd()\fR instead. The \&\fIadd_bits()\fR method is provided for compatibility with other digest implementations. See Digest for description of the arguments that \fIadd_bits()\fR take. .ie n .IP "$md5\->digest" 4 .el .IP "\f(CW$md5\fR\->digest" 4 .IX Item "$md5->digest" Return the binary digest for the message. The returned string will be 16 bytes long. .Sp Note that the \f(CW\*(C`digest\*(C'\fR operation is effectively a destructive, read-once operation. Once it has been performed, the \f(CW\*(C`Digest::MD5\*(C'\fR object is automatically \f(CW\*(C`reset\*(C'\fR and can be used to calculate another digest value. Call \f(CW$md5\fR\->clone\->digest if you want to calculate the digest without resetting the digest state. .ie n .IP "$md5\->hexdigest" 4 .el .IP "\f(CW$md5\fR\->hexdigest" 4 .IX Item "$md5->hexdigest" Same as \f(CW$md5\fR\->digest, but will return the digest in hexadecimal form. The length of the returned string will be 32 and it will only contain characters from this set: '0'..'9' and 'a'..'f'. .ie n .IP "$md5\->b64digest" 4 .el .IP "\f(CW$md5\fR\->b64digest" 4 .IX Item "$md5->b64digest" Same as \f(CW$md5\fR\->digest, but will return the digest as a base64 encoded string. The length of the returned string will be 22 and it will only contain characters from this set: 'A'..'Z', 'a'..'z', '0'..'9', '+' and '/'. .Sp The base64 encoded string returned is not padded to be a multiple of 4 bytes long. If you want interoperability with other base64 encoded md5 digests you might want to append the string \*(L"==\*(R" to the result. .ie n .IP "@ctx = $md5\->context" 4 .el .IP "\f(CW@ctx\fR = \f(CW$md5\fR\->context" 4 .IX Item "@ctx = $md5->context" .PD 0 .ie n .IP "$md5\->context(@ctx)" 4 .el .IP "\f(CW$md5\fR\->context(@ctx)" 4 .IX Item "$md5->context(@ctx)" .PD Saves or restores the internal state. When called with no arguments, returns a 3\-element list: number of blocks processed, a 16\-byte internal state buffer, then up to 63 bytes of unprocessed data. When passed those same arguments, restores the state. This is only useful for specialised operations. .SH "EXAMPLES" .IX Header "EXAMPLES" The simplest way to use this library is to import the \fImd5_hex()\fR function (or one of its cousins): .PP .Vb 2 \& use Digest::MD5 qw(md5_hex); \& print "Digest is ", md5_hex("foobarbaz"), "\en"; .Ve .PP The above example would print out the message: .PP .Vb 1 \& Digest is 6df23dc03f9b54cc38a0fc1483df6e21 .Ve .PP The same checksum can also be calculated in \s-1OO\s0 style: .PP .Vb 1 \& use Digest::MD5; \& \& $md5 = Digest::MD5\->new; \& $md5\->add(\*(Aqfoo\*(Aq, \*(Aqbar\*(Aq); \& $md5\->add(\*(Aqbaz\*(Aq); \& $digest = $md5\->hexdigest; \& \& print "Digest is $digest\en"; .Ve .PP With \s-1OO\s0 style, you can break the message arbitrarily. This means that we are no longer limited to have space for the whole message in memory, i.e. we can handle messages of any size. .PP This is useful when calculating checksum for files: .PP .Vb 1 \& use Digest::MD5; \& \& my $filename = shift || "/etc/passwd"; \& open (my $fh, \*(Aq<\*(Aq, $filename) or die "Can\*(Aqt open \*(Aq$filename\*(Aq: $!"; \& binmode($fh); \& \& $md5 = Digest::MD5\->new; \& while (<$fh>) { \& $md5\->add($_); \& } \& close($fh); \& print $md5\->b64digest, " $filename\en"; .Ve .PP Or we can use the addfile method for more efficient reading of the file: .PP .Vb 1 \& use Digest::MD5; \& \& my $filename = shift || "/etc/passwd"; \& open (my $fh, \*(Aq<\*(Aq, $filename) or die "Can\*(Aqt open \*(Aq$filename\*(Aq: $!"; \& binmode ($fh); \& \& print Digest::MD5\->new\->addfile($fh)\->hexdigest, " $filename\en"; .Ve .PP Since the \s-1MD5\s0 algorithm is only defined for strings of bytes, it can not be used on strings that contains chars with ordinal number above 255 (Unicode strings). The \s-1MD5\s0 functions and methods will croak if you try to feed them such input data: .PP .Vb 1 \& use Digest::MD5 qw(md5_hex); \& \& my $str = "abc\ex{300}"; \& print md5_hex($str), "\en"; # croaks \& # Wide character in subroutine entry .Ve .PP What you can do is calculate the \s-1MD5\s0 checksum of the \s-1UTF\-8\s0 representation of such strings. This is achieved by filtering the string through \fIencode_utf8()\fR function: .PP .Vb 2 \& use Digest::MD5 qw(md5_hex); \& use Encode qw(encode_utf8); \& \& my $str = "abc\ex{300}"; \& print md5_hex(encode_utf8($str)), "\en"; \& # 8c2d46911f3f5a326455f0ed7a8ed3b3 .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" Digest, Digest::MD2, Digest::SHA, Digest::HMAC .PP \&\fImd5sum\fR\|(1) .PP \&\s-1RFC 1321\s0 .PP http://en.wikipedia.org/wiki/MD5 .PP The paper \*(L"How to Break \s-1MD5\s0 and Other Hash Functions\*(R" by Xiaoyun Wang and Hongbo Yu. .SH "COPYRIGHT" .IX Header "COPYRIGHT" This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP .Vb 3 \& Copyright 1998\-2003 Gisle Aas. \& Copyright 1995\-1996 Neil Winton. \& Copyright 1991\-1992 RSA Data Security, Inc. .Ve .PP The \s-1MD5\s0 algorithm is defined in \s-1RFC 1321.\s0 This implementation is derived from the reference C code in \s-1RFC 1321\s0 which is covered by the following copyright statement: .IP "\(bu" 4 Copyright (C) 1991\-2, \s-1RSA\s0 Data Security, Inc. Created 1991. All rights reserved. .Sp License to copy and use this software is granted provided that it is identified as the \*(L"\s-1RSA\s0 Data Security, Inc. \s-1MD5\s0 Message-Digest Algorithm\*(R" in all material mentioning or referencing this software or this function. .Sp License is also granted to make and use derivative works provided that such works are identified as \*(L"derived from the \s-1RSA\s0 Data Security, Inc. \s-1MD5\s0 Message-Digest Algorithm\*(R" in all material mentioning or referencing the derived work. .Sp \&\s-1RSA\s0 Data Security, Inc. makes no representations concerning either the merchantability of this software or the suitability of this software for any particular purpose. It is provided \*(L"as is\*(R" without express or implied warranty of any kind. .Sp These notices must be retained in any copies of any part of this documentation and/or software. .PP This copyright does not prohibit distribution of any version of Perl containing this extension under the terms of the \s-1GNU\s0 or Artistic licenses. .SH "AUTHORS" .IX Header "AUTHORS" The original \f(CW\*(C`MD5\*(C'\fR interface was written by Neil Winton (\f(CW\*(C`N.Winton@axion.bt.co.uk\*(C'\fR). .PP The \f(CW\*(C`Digest::MD5\*(C'\fR module is written by Gisle Aas . man3/JSON::backportPP::Compat5006.3pm000044400000010620147645265660012633 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "JSON::backportPP::Compat5006 3" .TH JSON::backportPP::Compat5006 3 "2017-12-21" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" JSON::PP56 \- Helper module in using JSON::PP in Perl 5.6 .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\s-1JSON::PP\s0 calls internally. .SH "AUTHOR" .IX Header "AUTHOR" Makamaka Hannyaharamitu, .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" Copyright 2007\-2012 by Makamaka Hannyaharamitu .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. man3/HTML::Element::traverse.3pm000044400000037163147645265660012262 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "HTML::Element::traverse 3" .TH HTML::Element::traverse 3 "2020-03-05" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" HTML::Element::traverse \- discussion of HTML::Element's traverse method .SH "VERSION" .IX Header "VERSION" This document describes version 5.07 of HTML::Element::traverse, released August 31, 2017 as part of HTML-Tree. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& # $element\->traverse is unnecessary and obscure. \& # Don\*(Aqt use it in new code. .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\f(CW\*(C`HTML::Element\*(C'\fR provides a method \f(CW\*(C`traverse\*(C'\fR that traverses the tree and calls user-specified callbacks for each node, in pre\- or post-order. However, use of the method is quite superfluous: if you want to recursively visit every node in the tree, it's almost always simpler to write a subroutine does just that, than it is to bundle up the pre\- and/or post-order code in callbacks for the \f(CW\*(C`traverse\*(C'\fR method. .SH "EXAMPLES" .IX Header "EXAMPLES" Suppose you want to traverse at/under a node \f(CW$tree\fR and give elements an 'id' attribute unless they already have one. .PP You can use the \f(CW\*(C`traverse\*(C'\fR method: .PP .Vb 10 \& { \& my $counter = \*(Aqx0000\*(Aq; \& $start_node\->traverse( \& [ # Callbacks; \& # pre\-order callback: \& sub { \& my $x = $_[0]; \& $x\->attr(\*(Aqid\*(Aq, $counter++) unless defined $x\->attr(\*(Aqid\*(Aq); \& return HTML::Element::OK; # keep traversing \& }, \& # post\-order callback: \& undef \& ], \& 1, # don\*(Aqt call the callbacks for text nodes \& ); \& } .Ve .PP or you can just be simple and clear (and not have to understand the calling format for \f(CW\*(C`traverse\*(C'\fR) by writing a sub that traverses the tree by just calling itself: .PP .Vb 11 \& { \& my $counter = \*(Aqx0000\*(Aq; \& sub give_id { \& my $x = $_[0]; \& $x\->attr(\*(Aqid\*(Aq, $counter++) unless defined $x\->attr(\*(Aqid\*(Aq); \& foreach my $c ($x\->content_list) { \& give_id($c) if ref $c; # ignore text nodes \& } \& }; \& give_id($start_node); \& } .Ve .PP See, isn't that nice and clear? .PP But, if you really need to know: .SH "THE TRAVERSE METHOD" .IX Header "THE TRAVERSE METHOD" The \f(CW\*(C`traverse()\*(C'\fR method is a general object-method for traversing a tree or subtree and calling user-specified callbacks. It accepts the following syntaxes: .ie n .IP "$h\->traverse(\e&callback)" 4 .el .IP "\f(CW$h\fR\->traverse(\e&callback)" 4 .IX Item "$h->traverse(&callback)" .PD 0 .ie n .IP "or $h\->traverse(\e&callback, $ignore_text)" 4 .el .IP "or \f(CW$h\fR\->traverse(\e&callback, \f(CW$ignore_text\fR)" 4 .IX Item "or $h->traverse(&callback, $ignore_text)" .ie n .IP "or $h\->traverse( [\e&pre_callback,\e&post_callback] , $ignore_text)" 4 .el .IP "or \f(CW$h\fR\->traverse( [\e&pre_callback,\e&post_callback] , \f(CW$ignore_text\fR)" 4 .IX Item "or $h->traverse( [&pre_callback,&post_callback] , $ignore_text)" .PD .PP These all mean to traverse the element and all of its children. That is, this method starts at node \f(CW$h\fR, \*(L"pre-order visits\*(R" \f(CW$h\fR, traverses its children, and then will \*(L"post-order visit\*(R" \f(CW$h\fR. \*(L"Visiting\*(R" means that the callback routine is called, with these arguments: .PP .Vb 3 \& $_[0] : the node (element or text segment), \& $_[1] : a startflag, and \& $_[2] : the depth .Ve .PP If the \f(CW$ignore_text\fR parameter is given and true, then the pre-order call \fIwill not\fR be happen for text content. .PP The startflag is 1 when we enter a node (i.e., in pre-order calls) and 0 when we leave the node (in post-order calls). .PP Note, however, that post-order calls don't happen for nodes that are text segments or are elements that are prototypically empty (like \*(L"br\*(R", \&\*(L"hr\*(R", etc.). .PP If we visit text nodes (i.e., unless \f(CW$ignore_text\fR is given and true), then when text nodes are visited, we will also pass two extra arguments to the callback: .PP .Vb 4 \& $_[3] : the element that\*(Aqs the parent \& of this text node \& $_[4] : the index of this text node \& in its parent\*(Aqs content list .Ve .PP Note that you can specify that the pre-order routine can be a different routine from the post-order one: .PP .Vb 1 \& $h\->traverse( [\e&pre_callback,\e&post_callback], ...); .Ve .PP You can also specify that no post-order calls are to be made, by providing a false value as the post-order routine: .PP .Vb 1 \& $h\->traverse([ \e&pre_callback,0 ], ...); .Ve .PP And similarly for suppressing pre-order callbacks: .PP .Vb 1 \& $h\->traverse([ 0,\e&post_callback ], ...); .Ve .PP Note that these two syntaxes specify the same operation: .PP .Vb 2 \& $h\->traverse([\e&foo,\e&foo], ...); \& $h\->traverse( \e&foo , ...); .Ve .PP The return values from calls to your pre\- or post-order routines are significant, and are used to control recursion into the tree. .PP These are the values you can return, listed in descending order of my estimation of their usefulness: .IP "HTML::Element::OK, 1, or any other true value" 4 .IX Item "HTML::Element::OK, 1, or any other true value" \&...to keep on traversing. .Sp Note that \f(CW\*(C`HTML::Element::OK\*(C'\fR et al are constants. So if you're running under \f(CW\*(C`use strict\*(C'\fR (as I hope you are), and you say: \&\f(CW\*(C`return HTML::Element::PRUEN\*(C'\fR the compiler will flag this as an error (an unallowable bareword, specifically), whereas if you spell \s-1PRUNE\s0 correctly, the compiler will not complain. .IP "undef, 0, '0', '', or HTML::Element::PRUNE" 4 .IX Item "undef, 0, '0', '', or HTML::Element::PRUNE" \&...to block traversing under the current element's content. (This is ignored if received from a post-order callback, since by then the recursion has already happened.) If this is returned by a pre-order callback, no post-order callback for the current node will happen. (Recall that if your callback exits with just \f(CW\*(C`return;\*(C'\fR, it is returning undef \*(-- at least in scalar context, and \&\f(CW\*(C`traverse\*(C'\fR always calls your callbacks in scalar context.) .IP "HTML::Element::ABORT" 4 .IX Item "HTML::Element::ABORT" \&...to abort the whole traversal immediately. This is often useful when you're looking for just the first node in the tree that meets some criterion of yours. .IP "HTML::Element::PRUNE_UP" 4 .IX Item "HTML::Element::PRUNE_UP" \&...to abort continued traversal into this node and its parent node. No post-order callback for the current or parent node will happen. .IP "HTML::Element::PRUNE_SOFTLY" 4 .IX Item "HTML::Element::PRUNE_SOFTLY" Like \s-1PRUNE,\s0 except that the post-order call for the current node is not blocked. .PP Almost every task to do with extracting information from a tree can be expressed in terms of traverse operations (usually in only one pass, and usually paying attention to only pre-order, or to only post-order), or operations based on traversing. (In fact, many of the other methods in this class are basically calls to \fItraverse()\fR with particular arguments.) .PP The source code for HTML::Element and HTML::TreeBuilder contain several examples of the use of the \*(L"traverse\*(R" method to gather information about the content of trees and subtrees. .PP (Note: you should not change the structure of a tree \fIwhile\fR you are traversing it.) .PP [End of documentation for the \f(CW\*(C`traverse()\*(C'\fR method] .SS "Traversing with Recursive Anonymous Routines" .IX Subsection "Traversing with Recursive Anonymous Routines" Now, if you've been reading \&\fIStructure and Interpretation of Computer Programs\fR too much, maybe you even want a recursive lambda. Go ahead: .PP .Vb 10 \& { \& my $counter = \*(Aqx0000\*(Aq; \& my $give_id; \& $give_id = sub { \& my $x = $_[0]; \& $x\->attr(\*(Aqid\*(Aq, $counter++) unless defined $x\->attr(\*(Aqid\*(Aq); \& foreach my $c ($x\->content_list) { \& $give_id\->($c) if ref $c; # ignore text nodes \& } \& }; \& $give_id\->($start_node); \& undef $give_id; \& } .Ve .PP It's a bit nutty, and it's \fIstill\fR more concise than a call to the \&\f(CW\*(C`traverse\*(C'\fR method! .PP It is left as an exercise to the reader to figure out how to do the same thing without using a \f(CW$give_id\fR symbol at all. .PP It is also left as an exercise to the reader to figure out why I undefine \f(CW$give_id\fR, above; and why I could achieved the same effect with any of: .PP .Vb 5 \& $give_id = \*(AqI like pie!\*(Aq; \& # or... \& $give_id = []; \& # or even; \& $give_id = sub { print "Mmmm pie!\en" }; .Ve .PP But not: .PP .Vb 5 \& $give_id = sub { print "I\*(Aqm $give_id and I like pie!\en" }; \& # nor... \& $give_id = \e$give_id; \& # nor... \& $give_id = { \*(Aqpie\*(Aq => \e$give_id, \*(Aqmode\*(Aq => \*(Aqa la\*(Aq }; .Ve .SS "Doing Recursive Things Iteratively" .IX Subsection "Doing Recursive Things Iteratively" Note that you may at times see an iterative implementation of pre-order traversal, like so: .PP .Vb 4 \& { \& my @to_do = ($tree); # start\-node \& while(@to_do) { \& my $this = shift @to_do; \& \& # "Visit" the node: \& $this\->attr(\*(Aqid\*(Aq, $counter++) \& unless defined $this\->attr(\*(Aqid\*(Aq); \& \& unshift @to_do, grep ref $_, $this\->content_list; \& # Put children on the stack \-\- they\*(Aqll be visited next \& } \& } .Ve .PP This can \fIunder certain circumstances\fR be more efficient than just a normal recursive routine, but at the cost of being rather obscure. It gains efficiency by avoiding the overhead of function-calling, but since there are several method dispatches however you do it (to \&\f(CW\*(C`attr\*(C'\fR and \f(CW\*(C`content_list\*(C'\fR), the overhead for a simple function call is insignificant. .SS "Pruning and Whatnot" .IX Subsection "Pruning and Whatnot" The \f(CW\*(C`traverse\*(C'\fR method does have the fairly neat features of the \f(CW\*(C`ABORT\*(C'\fR, \f(CW\*(C`PRUNE_UP\*(C'\fR and \f(CW\*(C`PRUNE_SOFTLY\*(C'\fR signals. None of these can be implemented \fItotally\fR straightforwardly with recursive routines, but it is quite possible. \f(CW\*(C`ABORT\*(C'\fR\-like behavior can be implemented either with using non-local returning with \f(CW\*(C`eval\*(C'\fR/\f(CW\*(C`die\*(C'\fR: .PP .Vb 10 \& my $died_on; # if you need to know where... \& sub thing { \& ... visits $_[0]... \& ... maybe set $died_on to $_[0] and die "ABORT_TRAV" ... \& ... else call thing($child) for each child... \& ...any post\-order visiting $_[0]... \& } \& eval { thing($node) }; \& if($@) { \& if($@ =~ m<^ABORT_TRAV>) { \& ...it died (aborted) on $died_on... \& } else { \& die $@; # some REAL error happened \& } \& } .Ve .PP or you can just do it with flags: .PP .Vb 11 \& my($abort_flag, $died_on); \& sub thing { \& ... visits $_[0]... \& ... maybe set $abort_flag = 1; $died_on = $_[0]; return; \& foreach my $c ($_[0]\->content_list) { \& thing($c); \& return if $abort_flag; \& } \& ...any post\-order visiting $_[0]... \& return; \& } \& \& $abort_flag = $died_on = undef; \& thing($node); \& ...if defined $abort_flag, it died on $died_on .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" HTML::Element .SH "AUTHOR" .IX Header "AUTHOR" Current maintainers: .IP "\(bu" 4 Christopher J. Madsen \f(CW\*(C`\*(C'\fR .IP "\(bu" 4 Jeff Fearn \f(CW\*(C`\*(C'\fR .PP Original HTML-Tree author: .IP "\(bu" 4 Gisle Aas .PP Former maintainers: .IP "\(bu" 4 Sean M. Burke .IP "\(bu" 4 Andy Lester .IP "\(bu" 4 Pete Krawczyk \f(CW\*(C`\*(C'\fR .PP You can follow or contribute to HTML-Tree's development at . .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2000,2001 Sean M. Burke man3/Test2::Event::Pass.3pm000044400000011666147645265660011262 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test2::Event::Pass 3" .TH Test2::Event::Pass 3 "2019-09-06" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test2::Event::Pass \- Event for a simple passing assertion .SH "DESCRIPTION" .IX Header "DESCRIPTION" This is an optimal representation of a passing assertion. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use Test2::API qw/context/; \& \& sub pass { \& my ($name) = @_; \& my $ctx = context(); \& $ctx\->pass($name); \& $ctx\->release; \& } .Ve .SH "SOURCE" .IX Header "SOURCE" The source code repository for Test2 can be found at \&\fIhttp://github.com/Test\-More/test\-more/\fR. .SH "MAINTAINERS" .IX Header "MAINTAINERS" .IP "Chad Granum " 4 .IX Item "Chad Granum " .SH "AUTHORS" .IX Header "AUTHORS" .PD 0 .IP "Chad Granum " 4 .IX Item "Chad Granum " .PD .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2019 Chad Granum . .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP See \fIhttp://dev.perl.org/licenses/\fR man3/Module::Build::Authoring.3pm000044400000041723147645265660012513 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Module::Build::Authoring 3" .TH Module::Build::Authoring 3 "2020-03-05" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Module::Build::Authoring \- Authoring Module::Build modules .SH "DESCRIPTION" .IX Header "DESCRIPTION" When creating a \f(CW\*(C`Build.PL\*(C'\fR script for a module, something like the following code will typically be used: .PP .Vb 12 \& use Module::Build; \& my $build = Module::Build\->new \& ( \& module_name => \*(AqFoo::Bar\*(Aq, \& license => \*(Aqperl\*(Aq, \& requires => { \& \*(Aqperl\*(Aq => \*(Aq5.6.1\*(Aq, \& \*(AqSome::Module\*(Aq => \*(Aq1.23\*(Aq, \& \*(AqOther::Module\*(Aq => \*(Aq>= 1.2, != 1.5, < 2.0\*(Aq, \& }, \& ); \& $build\->create_build_script; .Ve .PP A simple module could get away with something as short as this for its \&\f(CW\*(C`Build.PL\*(C'\fR script: .PP .Vb 5 \& use Module::Build; \& Module::Build\->new( \& module_name => \*(AqFoo::Bar\*(Aq, \& license => \*(Aqperl\*(Aq, \& )\->create_build_script; .Ve .PP The model used by \f(CW\*(C`Module::Build\*(C'\fR is a lot like the \f(CW\*(C`MakeMaker\*(C'\fR metaphor, with the following correspondences: .PP .Vb 5 \& In Module::Build In ExtUtils::MakeMaker \& \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- \& Build.PL (initial script) Makefile.PL (initial script) \& Build (a short perl script) Makefile (a long Makefile) \& _build/ (saved state info) various config text in the Makefile .Ve .PP Any customization can be done simply by subclassing \f(CW\*(C`Module::Build\*(C'\fR and adding a method called (for example) \f(CW\*(C`ACTION_test\*(C'\fR, overriding the default 'test' action. You could also add a method called \&\f(CW\*(C`ACTION_whatever\*(C'\fR, and then you could perform the action \f(CW\*(C`Build whatever\*(C'\fR. .PP For information on providing compatibility with \&\f(CW\*(C`ExtUtils::MakeMaker\*(C'\fR, see Module::Build::Compat and . .SH "STRUCTURE" .IX Header "STRUCTURE" Module::Build creates a class hierarchy conducive to customization. Here is the parent-child class hierarchy in classy \s-1ASCII\s0 art: .PP .Vb 10 \& /\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\e \& | Your::Parent | (If you subclass Module::Build) \& \e\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-/ \& | \& | \& /\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\e (Doesn\*(Aqt define any functionality \& | Module::Build | of its own \- just figures out what \& \e\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-/ other modules to load.) \& | \& | \& /\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\e (Some values of $^O may \& | Module::Build::Platform::$^O | define specialized functionality. \& \e\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-/ Otherwise it\*(Aqs ...::Default, a \& | pass\-through class.) \& | \& /\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\e \& | Module::Build::Base | (Most of the functionality of \& \e\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-/ Module::Build is defined here.) .Ve .SH "SUBCLASSING" .IX Header "SUBCLASSING" Right now, there are two ways to subclass Module::Build. The first way is to create a regular module (in a \f(CW\*(C`.pm\*(C'\fR file) that inherits from Module::Build, and use that module's class instead of using Module::Build directly: .PP .Vb 2 \& \-\-\-\-\-\- in Build.PL: \-\-\-\-\-\-\-\-\-\- \& #!/usr/bin/perl \& \& use lib q(/nonstandard/library/path); \& use My::Builder; # Or whatever you want to call it \& \& my $build = My::Builder\->new \& ( \& module_name => \*(AqFoo::Bar\*(Aq, # All the regular args... \& license => \*(Aqperl\*(Aq, \& dist_author => \*(AqA N Other \*(Aq, \& requires => { Carp => 0 } \& ); \& $build\->create_build_script; .Ve .PP This is relatively straightforward, and is the best way to do things if your My::Builder class contains lots of code. The \&\f(CW\*(C`create_build_script()\*(C'\fR method will ensure that the current value of \&\f(CW@INC\fR (including the \f(CW\*(C`/nonstandard/library/path\*(C'\fR) is propagated to the Build script, so that My::Builder can be found when running build actions. If you find that you need to \f(CW\*(C`chdir\*(C'\fR into a different directories in your subclass methods or actions, be sure to always return to the original directory (available via the \f(CW\*(C`base_dir()\*(C'\fR method) before returning control to the parent class. This is important to avoid data serialization problems. .PP For very small additions, Module::Build provides a \f(CW\*(C`subclass()\*(C'\fR method that lets you subclass Module::Build more conveniently, without creating a separate file for your module: .PP .Vb 2 \& \-\-\-\-\-\- in Build.PL: \-\-\-\-\-\-\-\-\-\- \& #!/usr/bin/perl \& \& use Module::Build; \& my $class = Module::Build\->subclass \& ( \& class => \*(AqMy::Builder\*(Aq, \& code => q{ \& sub ACTION_foo { \& print "I\*(Aqm fooing to death!\en"; \& } \& }, \& ); \& \& my $build = $class\->new \& ( \& module_name => \*(AqFoo::Bar\*(Aq, # All the regular args... \& license => \*(Aqperl\*(Aq, \& dist_author => \*(AqA N Other \*(Aq, \& requires => { Carp => 0 } \& ); \& $build\->create_build_script; .Ve .PP Behind the scenes, this actually does create a \f(CW\*(C`.pm\*(C'\fR file, since the code you provide must persist after Build.PL is run if it is to be very useful. .PP See also the documentation for the \*(L"\fIsubclass()\fR\*(R" in Module::Build::API method. .SH "PREREQUISITES" .IX Header "PREREQUISITES" .SS "Types of prerequisites" .IX Subsection "Types of prerequisites" To specify what versions of other modules are used by this distribution, several types of prerequisites can be defined with the following parameters: .IP "configure_requires" 3 .IX Item "configure_requires" Items that must be installed \fIbefore\fR configuring this distribution (i.e. before running the \fIBuild.PL\fR script). This might be a specific minimum version of \f(CW\*(C`Module::Build\*(C'\fR or any other module the \&\fIBuild.PL\fR needs in order to do its stuff. Clients like \f(CW\*(C`CPAN.pm\*(C'\fR or \f(CW\*(C`CPANPLUS\*(C'\fR will be expected to pick \f(CW\*(C`configure_requires\*(C'\fR out of the \&\fI\s-1META\s0.yml\fR file and install these items before running the \&\f(CW\*(C`Build.PL\*(C'\fR. .Sp If no configure_requires is specified, the current version of Module::Build is automatically added to configure_requires. .IP "build_requires" 3 .IX Item "build_requires" Items that are necessary for building and testing this distribution, but aren't necessary after installation. This can help users who only want to install these items temporarily. It also helps reduce the size of the \s-1CPAN\s0 dependency graph if everything isn't smooshed into \&\f(CW\*(C`requires\*(C'\fR. .IP "requires" 3 .IX Item "requires" Items that are necessary for basic functioning. .IP "recommends" 3 .IX Item "recommends" Items that are recommended for enhanced functionality, but there are ways to use this distribution without having them installed. You might also think of this as \*(L"can use\*(R" or \*(L"is aware of\*(R" or \*(L"changes behavior in the presence of\*(R". .IP "test_requires" 3 .IX Item "test_requires" Items that are necessary for testing. .IP "conflicts" 3 .IX Item "conflicts" Items that can cause problems with this distribution when installed. This is pretty rare. .SS "Format of prerequisites" .IX Subsection "Format of prerequisites" The prerequisites are given in a hash reference, where the keys are the module names and the values are version specifiers: .PP .Vb 6 \& requires => { \& Foo::Module => \*(Aq2.4\*(Aq, \& Bar::Module => 0, \& Ken::Module => \*(Aq>= 1.2, != 1.5, < 2.0\*(Aq, \& perl => \*(Aq5.6.0\*(Aq \& }, .Ve .PP The above four version specifiers have different effects. The value \&\f(CW\*(Aq2.4\*(Aq\fR means that \fBat least\fR version 2.4 of \f(CW\*(C`Foo::Module\*(C'\fR must be installed. The value \f(CW0\fR means that \fBany\fR version of \f(CW\*(C`Bar::Module\*(C'\fR is acceptable, even if \f(CW\*(C`Bar::Module\*(C'\fR doesn't define a version. The more verbose value \f(CW\*(Aq>= 1.2, != 1.5, < 2.0\*(Aq\fR means that \&\f(CW\*(C`Ken::Module\*(C'\fR's version must be \fBat least\fR 1.2, \fBless than\fR 2.0, and \fBnot equal to\fR 1.5. The list of criteria is separated by commas, and all criteria must be satisfied. .PP A special \f(CW\*(C`perl\*(C'\fR entry lets you specify the versions of the Perl interpreter that are supported by your module. The same version dependency-checking semantics are available, except that we also understand perl's new double-dotted version numbers. .SS "\s-1XS\s0 Extensions" .IX Subsection "XS Extensions" Modules which need to compile \s-1XS\s0 code should list \f(CW\*(C`ExtUtils::CBuilder\*(C'\fR as a \f(CW\*(C`build_requires\*(C'\fR element. .SH "SAVING CONFIGURATION INFORMATION" .IX Header "SAVING CONFIGURATION INFORMATION" Module::Build provides a very convenient way to save configuration information that your installed modules (or your regression tests) can access. If your Build process calls the \f(CW\*(C`feature()\*(C'\fR or \&\f(CW\*(C`config_data()\*(C'\fR methods, then a \f(CW\*(C`Foo::Bar::ConfigData\*(C'\fR module will automatically be created for you, where \f(CW\*(C`Foo::Bar\*(C'\fR is the \&\f(CW\*(C`module_name\*(C'\fR parameter as passed to \f(CW\*(C`new()\*(C'\fR. This module provides access to the data saved by these methods, and a way to update the values. There is also a utility script called \f(CW\*(C`config_data\*(C'\fR distributed with Module::Build that provides a command line interface to this same functionality. See also the generated \&\f(CW\*(C`Foo::Bar::ConfigData\*(C'\fR documentation, and the \f(CW\*(C`config_data\*(C'\fR script's documentation, for more information. .SH "STARTING MODULE DEVELOPMENT" .IX Header "STARTING MODULE DEVELOPMENT" When starting development on a new module, it's rarely worth your time to create a tree of all the files by hand. Some automatic module-creators are available: the oldest is \f(CW\*(C`h2xs\*(C'\fR, which has shipped with perl itself for a long time. Its name reflects the fact that modules were originally conceived of as a way to wrap up a C library (thus the \f(CW\*(C`h\*(C'\fR part) into perl extensions (thus the \f(CW\*(C`xs\*(C'\fR part). .PP These days, \f(CW\*(C`h2xs\*(C'\fR has largely been superseded by modules like \&\f(CW\*(C`ExtUtils::ModuleMaker\*(C'\fR, and \f(CW\*(C`Module::Starter\*(C'\fR. They have varying degrees of support for \f(CW\*(C`Module::Build\*(C'\fR. .SH "AUTOMATION" .IX Header "AUTOMATION" One advantage of Module::Build is that since it's implemented as Perl methods, you can invoke these methods directly if you want to install a module non-interactively. For instance, the following Perl script will invoke the entire build/install procedure: .PP .Vb 4 \& my $build = Module::Build\->new(module_name => \*(AqMyModule\*(Aq); \& $build\->dispatch(\*(Aqbuild\*(Aq); \& $build\->dispatch(\*(Aqtest\*(Aq); \& $build\->dispatch(\*(Aqinstall\*(Aq); .Ve .PP If any of these steps encounters an error, it will throw a fatal exception. .PP You can also pass arguments as part of the build process: .PP .Vb 4 \& my $build = Module::Build\->new(module_name => \*(AqMyModule\*(Aq); \& $build\->dispatch(\*(Aqbuild\*(Aq); \& $build\->dispatch(\*(Aqtest\*(Aq, verbose => 1); \& $build\->dispatch(\*(Aqinstall\*(Aq, sitelib => \*(Aq/my/secret/place/\*(Aq); .Ve .PP Building and installing modules in this way skips creating the \&\f(CW\*(C`Build\*(C'\fR script. .SH "MIGRATION" .IX Header "MIGRATION" Note that if you want to provide both a \fIMakefile.PL\fR and a \&\fIBuild.PL\fR for your distribution, you probably want to add the following to \f(CW\*(C`WriteMakefile\*(C'\fR in your \fIMakefile.PL\fR so that \f(CW\*(C`MakeMaker\*(C'\fR doesn't try to run your \fIBuild.PL\fR as a normal \fI.PL\fR file: .PP .Vb 1 \& PL_FILES => {}, .Ve .PP You may also be interested in looking at the \f(CW\*(C`Module::Build::Compat\*(C'\fR module, which can automatically create various kinds of \fIMakefile.PL\fR compatibility layers. .SH "AUTHOR" .IX Header "AUTHOR" Ken Williams .PP Development questions, bug reports, and patches should be sent to the Module-Build mailing list at . .PP Bug reports are also welcome at . .PP The latest development version is available from the Git repository at .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIperl\fR\|(1), Module::Build(3), Module::Build::API(3), Module::Build::Cookbook(3), ExtUtils::MakeMaker(3), \s-1YAML\s0(3) .PP \&\fI\s-1META\s0.yml\fR Specification: CPAN::Meta::Spec .PP .PP man3/TAP::Parser::ResultFactory.3pm000044400000016237147645265660012757 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "TAP::Parser::ResultFactory 3" .TH TAP::Parser::ResultFactory 3 "2018-03-19" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" TAP::Parser::ResultFactory \- Factory for creating TAP::Parser output objects .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 4 \& use TAP::Parser::ResultFactory; \& my $token = {...}; \& my $factory = TAP::Parser::ResultFactory\->new; \& my $result = $factory\->make_result( $token ); .Ve .SH "VERSION" .IX Header "VERSION" Version 3.42 .SS "\s-1DESCRIPTION\s0" .IX Subsection "DESCRIPTION" This is a simple factory class which returns a TAP::Parser::Result subclass representing the current bit of test data from \s-1TAP \s0(usually a single line). It is used primarily by TAP::Parser::Grammar. Unless you're subclassing, you probably won't need to use this module directly. .SS "\s-1METHODS\s0" .IX Subsection "METHODS" .SS "Class Methods" .IX Subsection "Class Methods" \fI\f(CI\*(C`new\*(C'\fI\fR .IX Subsection "new" .PP Creates a new factory class. \&\fINote:\fR You currently don't need to instantiate a factory in order to use it. .PP \fI\f(CI\*(C`make_result\*(C'\fI\fR .IX Subsection "make_result" .PP Returns an instance the appropriate class for the test token passed in. .PP .Vb 1 \& my $result = TAP::Parser::ResultFactory\->make_result($token); .Ve .PP Can also be called as an instance method. .PP \fI\f(CI\*(C`class_for\*(C'\fI\fR .IX Subsection "class_for" .PP Takes one argument: \f(CW$type\fR. Returns the class for this \f(CW$type\fR, or \f(CW\*(C`croak\*(C'\fRs with an error. .PP \fI\f(CI\*(C`register_type\*(C'\fI\fR .IX Subsection "register_type" .PP Takes two arguments: \f(CW$type\fR, \f(CW$class\fR .PP This lets you override an existing type with your own custom type, or register a completely new type, eg: .PP .Vb 4 \& # create a custom result type: \& package MyResult; \& use strict; \& use base \*(AqTAP::Parser::Result\*(Aq; \& \& # register with the factory: \& TAP::Parser::ResultFactory\->register_type( \*(Aqmy_type\*(Aq => _\|_PACKAGE_\|_ ); \& \& # use it: \& my $r = TAP::Parser::ResultFactory\->( { type => \*(Aqmy_type\*(Aq } ); .Ve .PP Your custom type should then be picked up automatically by the TAP::Parser. .SH "SUBCLASSING" .IX Header "SUBCLASSING" Please see \*(L"\s-1SUBCLASSING\*(R"\s0 in TAP::Parser for a subclassing overview. .PP There are a few things to bear in mind when creating your own \&\f(CW\*(C`ResultFactory\*(C'\fR: .IP "1." 4 The factory itself is never instantiated (this \fImay\fR change in the future). This means that \f(CW\*(C`_initialize\*(C'\fR is never called. .IP "2." 4 \&\f(CW\*(C`TAP::Parser::Result\->new\*(C'\fR is never called, \f(CW$tokens\fR are reblessed. This \fIwill\fR change in a future version! .IP "3." 4 TAP::Parser::Result subclasses will register themselves with TAP::Parser::ResultFactory directly: .Sp .Vb 2 \& package MyFooResult; \& TAP::Parser::ResultFactory\->register_type( foo => _\|_PACKAGE_\|_ ); .Ve .Sp Of course, it's up to you to decide whether or not to ignore them. .SS "Example" .IX Subsection "Example" .Vb 1 \& package MyResultFactory; \& \& use strict; \& \& use MyResult; \& \& use base \*(AqTAP::Parser::ResultFactory\*(Aq; \& \& # force all results to be \*(AqMyResult\*(Aq \& sub class_for { \& return \*(AqMyResult\*(Aq; \& } \& \& 1; .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" TAP::Parser, TAP::Parser::Result, TAP::Parser::Grammar man3/CGI::HTML::Functions.3pm000044400000225527147645265660011413 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CGI::HTML::Functions 3" .TH CGI::HTML::Functions 3 "2019-03-15" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" CGI::HTML::Functions \- Documentation for CGI.pm Legacy HTML Functionality .SH "SYNOPSIS" .IX Header "SYNOPSIS" Nothing here \- please do not use this functionality, it is considered to be legacy and essentially deprecated. This documentation exists solely to aid in maintenance and migration of legacy code using this functionality and you are strongly encouraged to migrate away from it. If you are working on new code you should be using a template engine. For more information see CGI::Alternatives. .PP If you really want to continue using the \s-1HTML\s0 generation functionality of \s-1CGI\s0.pm then you should take a look at HTML::Tiny instead, which may give you a migration path away from \s-1CGI\s0.pm's html generation functions; i strongly encourage you to move towards template driven page generation for anything involving markup as it will make porting your app to other frameworks much easier in the long run. .SH "DESCRIPTION" .IX Header "DESCRIPTION" The documentation here should be considered an addendum to the sections in the \&\s-1CGI\s0 documentation \- the sections here are named the same as those within the \&\s-1CGI\s0 perldoc. .SH "Calling CGI.pm routines" .IX Header "Calling CGI.pm routines" \&\s-1HTML\s0 tag functions have both attributes (the attribute=\*(L"value\*(R" pairs within the tag itself) and contents (the part between the opening and closing pairs). To distinguish between attributes and contents, \s-1CGI\s0.pm uses the convention of passing \s-1HTML\s0 attributes as a hash reference as the first argument, and the contents, if any, as any subsequent arguments. It works out like this: .PP .Vb 6 \& Code Generated HTML \& \-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\-\-\- \& h1()

\& h1(\*(Aqsome\*(Aq,\*(Aqcontents\*(Aq);

some contents

\& h1({\-align=>left});

\& h1({\-align=>left},\*(Aqcontents\*(Aq);

contents

.Ve .PP Many newcomers to \s-1CGI\s0.pm are puzzled by the difference between the calling conventions for the \s-1HTML\s0 shortcuts, which require curly braces around the \s-1HTML\s0 tag attributes, and the calling conventions for other routines, which manage to generate attributes without the curly brackets. Don't be confused. As a convenience the curly braces are optional in all but the \s-1HTML\s0 shortcuts. If you like, you can use curly braces when calling any routine that takes named arguments. For example: .PP .Vb 1 \& print $q\->header( { \-type => \*(Aqimage/gif\*(Aq, \-expires => \*(Aq+3d\*(Aq } ); .Ve .PP If you use warnings, you will be warned that some \s-1CGI\s0.pm argument names conflict with built-in perl functions. The most frequent of these is the \&\-values argument, used to create multi-valued menus, radio button clusters and the like. To get around this warning, you have several choices: .IP "1." 4 Use another name for the argument, if one is available. For example, \-value is an alias for \-values. .IP "2." 4 Change the capitalization, e.g. \-Values .IP "3." 4 Put quotes around the argument name, e.g. '\-values' .SS "Function-oriented interface \s-1HTML\s0 exports" .IX Subsection "Function-oriented interface HTML exports" Here is a list of the \s-1HTML\s0 related function sets you can import: .IP "\fB:form\fR" 4 .IX Item ":form" Import all fill-out form generating methods, such as \fB\f(BItextfield()\fB\fR. .IP "\fB:html2\fR" 4 .IX Item ":html2" Import all methods that generate \s-1HTML 2.0\s0 standard elements. .IP "\fB:html3\fR" 4 .IX Item ":html3" Import all methods that generate \s-1HTML 3.0\s0 elements (such as

The table below lists the TIFF tags that are recognized and handled by the library. If no use is indicated in the table, then the library reads and writes the tag, but does not use it internally. Note that some tags are meaningful only when a particulTIFFWriteTile.3tiff.html000064400000007066147561453440011053 0ustar00 TIFFWriteTile

TIFFWriteTile

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUES
DIAGNOSTICS
SEE ALSO

NAME

TIFFWriteTile − encode and write a tile of data to an open TIFF file

SYNOPSIS

#include <tiffio.h>

tsize_t TIFFWriteTile(TIFF *tif, tdata_t buf, uint32 x, uint32 y, uint32 z, tsample_t sample)

DESCRIPTION

Write the data for the tile containing the specified coordinates. The data in buf are is (potentially) compressed, and written to the indicated file, normally being appended to the end of the file. The buffer must be contain an entire tile of data. Applications should call the routine TIFFTileSize to find out the size (in bytes) of a tile buffer. The x and y parameters are always used by TIFFWriteTile. The z parameter is used if the image is deeper than 1 slice (ImageDepth>1). The sample parameter is used only if data are organized in separate planes (PlanarConfiguration=2).

RETURN VALUES

TIFFWriteTile returns −1 if it detects an error; otherwise the number of bytes in the tile is returned.

DIAGNOSTICS

All error messages are directed to the TIFFError(3TIFF) routine.

SEE ALSO

TIFFCheckTile(3TIFF), TIFFComputeTile(3TIFF), TIFFOpen(3TIFF), TIFFReadTile(3TIFF), TIFFWriteScanline(3TIFF), TIFFWriteEncodedTile(3TIFF), TIFFWriteRawTile(3TIFF), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFGetField.3tiff.html000064400000101262147561453440010617 0ustar00 TIFFGetField

TIFFGetField

NAME
SYNOPSIS
DESCRIPTION
AUTOREGISTERED TAGS
RETURN VALUES
DIAGNOSTICS
SEE ALSO

NAME

TIFFGetField, TIFFVGetField − get the value(s) of a tag in an open TIFF file

SYNOPSIS

#include <tiffio.h>

int TIFFGetField(TIFF *tif, ttag_t tag, ...)

#include <stdarg.h>

int TIFFVGetField(TIFF *tif, ttag_t tag, va_list ap)
int TIFFGetFieldDefaulted(TIFF *
tif, ttag_t tag, ...)
int TIFFVGetFieldDefaulted(TIFF *
tif, ttag_t tag, va_list ap)

DESCRIPTION

TIFFGetField returns the value of a tag or pseudo-tag associated with the the current directory of the opened TIFF file tif. (A pseudo-tag is a parameter that is used to control the operation of the TIFF library but whose value is not read or written to the underlying file.) The file must have been previously opened with TIFFOpen(3TIFF). The tag is identified by tag, one of the values defined in the include file tiff.h (see also the table below). The type and number of values returned is dependent on the tag being requested. The programming interface uses a variable argument list as prescribed by the stdarg(3) interface. The returned values should only be interpreted if TIFFGetField returns 1.

TIFFVGetField is functionally equivalent to TIFFGetField except that it takes a pointer to a variable argument list. TIFFVGetField is useful for layering interfaces on top of the functionality provided by TIFFGetField.

TIFFGetFieldDefaulted and TIFFVGetFieldDefaulted are identical to TIFFGetField and TIFFVGetField, except that if a tag is not defined in the current directory and it has a default value, then the default value is returned.

The tags understood by libtiff(3TIFF), the number of parameter values, and the types for the returned values are shown below. The data types are specified as in C and correspond to the types used to specify tag values to TIFFSetField(3TIFF). Remember that TIFFGetField returns parameter values, so all the listed data types are pointers to storage where values should be returned. Consult the TIFF specification (or relevant industry specification) for information on the meaning of each tag and their possible values.

Tag Name

Count

Types

Notes

TIFFTAG_ARTIST

1

char**

TIFFTAG_BADFAXLINES

1

uint32*

TIFFTAG_BITSPERSAMPLE

1

uint16*

TIFFTAG_CLEANFAXDATA

1

uint16*

TIFFTAG_COLORMAP

3

uint16**

1<<BitsPerSample arrays

TIFFTAG_COMPRESSION

1

uint16*

TIFFTAG_CONSECUTIVEBADFAXLINES

1

uint32*

TIFFTAG_COPYRIGHT

1

char**

TIFFTAG_DATATYPE

1

uint16*

TIFFTAG_DATETIME

1

char**

TIFFTAG_DOCUMENTNAME

1

char**

TIFFTAG_DOTRANGE

2

uint16*

TIFFTAG_EXTRASAMPLES

2

uint16*,uint16**

count & types array

TIFFTAG_FAXFILLFUNC

1

TIFFFaxFillFunc*

G3/G4 compression pseudo-tag

TIFFTAG_FAXMODE

1

int*

G3/G4 compression pseudo-tag

TIFFTAG_FILLORDER

1

uint16*

TIFFTAG_GROUP3OPTIONS

1

uint32*

TIFFTAG_GROUP4OPTIONS

1

uint32*

TIFFTAG_HALFTONEHINTS

2

uint16*

TIFFTAG_HOSTCOMPUTER

1

char**

TIFFTAG_ICCPROFILE

2

uint32*,void**

count, profile data

TIFFTAG_IMAGEDEPTH

1

uint32*

TIFFTAG_IMAGEDESCRIPTION

1

char**

TIFFTAG_IMAGELENGTH

1

uint32*

TIFFTAG_IMAGEWIDTH

1

uint32*

TIFFTAG_INKNAMES

1

char**

TIFFTAG_INKSET

1

uint16*

TIFFTAG_JPEGCOLORMODE

1

int*

JPEG pseudo-tag

TIFFTAG_JPEGQUALITY

1

int*

JPEG pseudo-tag

TIFFTAG_JPEGTABLES

2

uint32*,void**

count & tables

TIFFTAG_JPEGTABLESMODE

1

int*

JPEG pseudo-tag

TIFFTAG_MAKE

1

char**

TIFFTAG_MATTEING

1

uint16*

TIFFTAG_MAXSAMPLEVALUE

1

uint16*

TIFFTAG_MINSAMPLEVALUE

1

uint16*

TIFFTAG_MODEL

1

char**

TIFFTAG_ORIENTATION

1

uint16*

TIFFTAG_PAGENAME

1

char**

TIFFTAG_PAGENUMBER

2

uint16*

TIFFTAG_PHOTOMETRIC

1

uint16*

TIFFTAG_PHOTOSHOP

2

uint32*,void**

count, data

TIFFTAG_PLANARCONFIG

1

uint16*

TIFFTAG_PREDICTOR

1

uint16*

TIFFTAG_PRIMARYCHROMATICITIES

1

float**

6-entry array

TIFFTAG_REFERENCEBLACKWHITE

1

float**

6-entry array

TIFFTAG_RESOLUTIONUNIT

1

uint16*

TIFFTAG_RICHTIFFIPTC

2

uint32*,void**

count, data

TIFFTAG_ROWSPERSTRIP

1

uint32*

TIFFTAG_SAMPLEFORMAT

1

uint16*

TIFFTAG_SAMPLESPERPIXEL

1

uint16*

TIFFTAG_SMAXSAMPLEVALUE

1

double*

TIFFTAG_SMINSAMPLEVALUE

1

double*

TIFFTAG_SOFTWARE

1

char**

TIFFTAG_STONITS

1

double**

TIFFTAG_STRIPBYTECOUNTS

1

uint32**

TIFFTAG_STRIPOFFSETS

1

uint32**

TIFFTAG_SUBFILETYPE

1

uint32*

TIFFTAG_SUBIFD

2

uint16*,uint32**

count & offsets array

TIFFTAG_TARGETPRINTER

1

char**

TIFFTAG_THRESHHOLDING

1

uint16*

TIFFTAG_TILEBYTECOUNTS

1

uint32**

TIFFTAG_TILEDEPTH

1

uint32*

TIFFTAG_TILELENGTH

1

uint32*

TIFFTAG_TILEOFFSETS

1

uint32**

TIFFTAG_TILEWIDTH

1

uint32*

TIFFTAG_TRANSFERFUNCTION

1 or 3†

uint16**1<<BitsPerSample entry arrays

TIFFTAG_WHITEPOINT

1

float**

2-entry array

TIFFTAG_XMLPACKET

2

uint32*,void**

count, data

TIFFTAG_XPOSITION

1

float*

TIFFTAG_XRESOLUTION

1

float*

TIFFTAG_YCBCRCOEFFICIENTS

1

float**

3-entry array

TIFFTAG_YCBCRPOSITIONING

1

uint16*

TIFFTAG_YCBCRSUBSAMPLING

2

uint16*

TIFFTAG_YPOSITION

1

float*

TIFFTAG_YRESOLUTION

1

float*‡

† If SamplesPerPixel is one, then a single array is returned; otherwise three arrays are returned.
‡ The contents of this field are quite complex. See The ICC Profile Format Specification, Annex B.3 "Embedding ICC Profiles in TIFF Files" (available at http://www.color.org) for an explanation.

AUTOREGISTERED TAGS

If you can’t find the tag in the table above that means this is unsupported tag. But you still be able to read it’s value if you know the data type of that tag. For example, if you want to read the LONG value from the tag 33424 and ASCII string from the tag 36867 you can use the following code:

uint16 count;
void *data;

TIFFGetField(tiff, 33424, &count, &data);
printf("Tag %d: %d, count %d0, 33424, *(uint32 *)data, count);
TIFFGetField(tiff, 36867, &count, &data);
printf("Tag %d: %s, count %d0, 36867, (char *)data, count);

is not supported by libtiff(3TIFF), library

RETURN VALUES

1 is returned if the tag is defined in the current directory; otherwise a 0 is returned.

DIAGNOSTICS

All error messages are directed to the TIFFError(3TIFF) routine.

Unknown field, tag 0x%x. An unknown tag was supplied.

SEE ALSO

TIFFOpen(3TIFF), TIFFSetField(3TIFF), TIFFSetDirectory(3TIFF), TIFFReadDirectory(3TIFF), TIFFWriteDirectory(3TIFF) libtiff(3TIFF),

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFWriteDirectory.3tiff.html000064400000014526147561453440012121 0ustar00 TIFFWriteDirectory

TIFFWriteDirectory

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUES
DIAGNOSTICS
SEE ALSO

NAME

TIFFWriteDirectory, TIFFRewriteDirectory, TIFFCheckpointDirectory − write the current directory in an open TIFF file

SYNOPSIS

#include <tiffio.h>

int TIFFWriteDirectory(TIFF *tif)
int TIFFRewriteDirectory(TIFF *
tif)
int TIFFCheckpointDirectory(TIFF *
tif)

DESCRIPTION

TIFFWriteDirectory will write the contents of the current directory to the file and setup to create a new subfile in the same file. Applications only need to call TIFFWriteDirectory when writing multiple subfiles to a single TIFF file. TIFFWriteDirectory is automatically called by TIFFClose and TIFFFlush to write a modified directory if the file is open for writing.

The TIFFRewriteDirectory function operates similarly to TIFFWriteDirectory, but can be called with directories previously read or written that already have an established location in the file. It will rewrite the directory, but instead of place it at it’s old location (as TIFFWriteDirectory would) it will place them at the end of the file, correcting the pointer from the preceeding directory or file header to point to it’s new location. This is particularly important in cases where the size of the directory and pointed to data has grown, so it won’t fit in the space available at the old location.

The TIFFCheckpointDirectory writes the current state of the tiff directory into the file to make what is currently in the file readable. Unlike TIFFWriteDirectory, TIFFCheckpointDirectory does not free up the directory data structures in memory, so they can be updated (as strips/tiles are written) and written again. Reading such a partial file you will at worst get a tiff read error for the first strip/tile encountered that is incomplete, but you will at least get all the valid data in the file before that. When the file is complete, just use TIFFWriteDirectory as usual to finish it off cleanly.

RETURN VALUES

1 is returned when the contents are successfully written to the file. Otherwise, 0 is returned if an error was encountered when writing the directory contents.

DIAGNOSTICS

All error messages are directed to the TIFFError(3TIFF) routine.

Error post-encoding before directory write. Before writing the contents of the current directory, any pending data are flushed. This message indicates that an error occurred while doing this.

Error flushing data before directory write. Before writing the contents of the current directory, any pending data are flushed. This message indicates that an error occurred while doing this.

Cannot write directory, out of space. There was not enough space to allocate a temporary area for the directory that was to be written.

Error writing directory count. A write error occurred when writing the count of fields in the directory.

Error writing directory contents. A write error occurred when writing the directory fields.

Error writing directory link. A write error occurred when writing the link to the next directory.

Error writing data for field "%s". A write error occurred when writing indirect data for the specified field.

Error writing TIFF header. A write error occurred when re-writing header at the front of the file.

Error fetching directory count. A read error occurred when fetching the directory count field for a previous directory. This can occur when setting up a link to the directory that is being written.

Error fetching directory link. A read error occurred when fetching the directory link field for a previous directory. This can occur when setting up a link to the directory that is being written.

SEE ALSO

TIFFOpen(3TIFF), TIFFError(3TIFF), TIFFReadDirectory(3TIFF), TIFFSetDirectory(3TIFF), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


rgb2ycbcr.1.html000064400000010222147561453440007462 0ustar00 RGB2YCBCR

RGB2YCBCR

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
SEE ALSO

NAME

rgb2ycbcr − convert non-YCbCr TIFF images to a YCbCr TIFF image

SYNOPSIS

rgb2ycbcr [ options ] src1.tif src2.tif ... dst.tif

DESCRIPTION

rgb2ycbcr converts RGB color, greyscale, or bi-level TIFF images to YCbCr images by transforming and sampling pixel data. If multiple files are specified on the command line each source file is converted to a separate directory in the destination file.

By default, chrominance samples are created by sampling 2 by 2 blocks of luminance values; this can be changed with the −h and −v options. Output data are compressed with the PackBits compression scheme, by default; an alternate scheme can be selected with the −c option. By default, output data are compressed in strips with the number of rows in each strip selected so that the size of a strip is never more than 8 kilobytes; the −r option can be used to explicitly set the number of rows per strip.

OPTIONS

−c

Specify a compression scheme to use when writing image data: −c none for no compression, −c packbits for the PackBits compression algorithm (the default), −c jpeg for the JPEG compression algorithm, −c zip for the deflate compression algorithm, and −c lzw for Lempel-Ziv & Welch.

−h

Set the horizontal sampling dimension to one of: 1, 2 (default), or 4.

−r

Write data with a specified number of rows per strip; by default the number of rows/strip is selected so that each strip is approximately 8 kilobytes.

−v

Set the vertical sampling dimension to one of: 1, 2 (default), or 4.

SEE ALSO

tiffinfo(1), tiffcp(1), libtiff(3)

Libtiff library home page: http://www.remotesensing.org/libtiff


TIFFDataWidth.3tiff.html000064400000004774147561453440011017 0ustar00 TIFFDataWidth

TIFFDataWidth

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUES
SEE ALSO

NAME

TIFFDataWidth − Get the size of TIFF data types

SYNOPSIS

#include <tiffio.h>

int TIFFDataWidth(TIFFDataType type)

DESCRIPTION

TIFFDataWidth returns a size of type in bytes. Currently following data types are supported:
TIFF_BYTE
TIFF_ASCII
TIFF_SBYTE
TIFF_UNDEFINED
TIFF_SHORT
TIFF_SSHORT
TIFF_LONG
TIFF_SLONG
TIFF_FLOAT
TIFF_IFD
TIFF_RATIONAL
TIFF_SRATIONAL
TIFF_DOUBLE

RETURN VALUES

TIFFDataWidth returns a number of bytes occupied by the item of given type. 0 returned when uknown data type supplied.

SEE ALSO

libtiff(3TIFF),

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFPrintDirectory.3tiff.html000064400000011175147561453440012120 0ustar00 TIFFPrintDirectory

TIFFPrintDirectory

NAME
SYNOPSIS
DESCRIPTION
NOTES
RETURN VALUES
DIAGNOSTICS
SEE ALSO

NAME

TIFFPrintDirectory − print a description of a TIFF directory

SYNOPSIS

#include <tiffio.h>

void TIFFPrintDirectory(TIFF *tif, FILE *fd, long flags)

DESCRIPTION

TIFFPrintDirectory prints a description of the current directory in the specified TIFF file to the standard I/O output stream fd. The flags parameter is used to control the level of detail of the printed information; it is a bit-or of the flags defined in tiffio.h:

#define TIFFPRINT_NONE 0x0 /* no extra info */

#define

TIFFPRINT_STRIPS

0x1

/* strips/tiles info */

#define

TIFFPRINT_CURVES

0x2

/* color/gray response curves */

#define

TIFFPRINT_COLORMAP

0x4

/* colormap */

#define

TIFFPRINT_JPEGQTABLES

0x100

/* JPEG Q matrices */

#define

TIFFPRINT_JPEGACTABLES

0x200

/* JPEG AC tables */

#define

TIFFPRINT_JPEGDCTABLES

0x200

/* JPEG DC tables */

NOTES

In C++ the flags parameter defaults to 0.

RETURN VALUES

None.

DIAGNOSTICS

None.

SEE ALSO

libtiff(3TIFF), TIFFOpen(3TIFF), TIFFReadDirectory(3TIFF), TIFFSetDirectory(3TIFF)


TIFFbuffer.3tiff.html000064400000007450147561453440010411 0ustar00 TIFFBUFFER

TIFFBUFFER

NAME
SYNOPSIS
DESCRIPTION
DIAGNOSTICS
SEE ALSO

NAME

TIFFReadBufferSetup, TIFFWriteBufferSetup − I/O buffering control routines

SYNOPSIS

#include <tiffio.h>

int TIFFReadBufferSetup(TIFF *tif, tdata_t buffer, tsize_t size);
int TIFFWriteBufferSetup(TIFF *tif, tdata_t buffer, tsize_t size);

DESCRIPTION

The following routines are provided for client-control of the I/O buffers used by the library. Applications need never use these routines; they are provided only for ‘‘intelligent clients’’ that wish to optimize memory usage and/or eliminate potential copy operations that can occur when working with images that have data stored without compression.

TIFFReadBufferSetup sets up the data buffer used to read raw (encoded) data from a file. If the specified pointer is NULL (zero), then a buffer of the appropriate size is allocated. Otherwise the caller must guarantee that the buffer is large enough to hold any individual strip of raw data. TIFFReadBufferSetup returns a non-zero value if the setup was successful and zero otherwise.

TIFFWriteBufferSetup sets up the data buffer used to write raw (encoded) data to a file. If the specified size is −1 then the buffer size is selected to hold a complete tile or strip, or at least 8 kilobytes, whichever is greater. If the specified buffer is NULL (zero), then a buffer of the appropriate size is dynamically allocated. TIFFWriteBufferSetup returns a non-zero value if the setup was successful and zero otherwise.

DIAGNOSTICS

%s: No space for data buffer at scanline %ld. TIFFReadBufferSetup was unable to dynamically allocate space for a data buffer.

%s: No space for output buffer. TIFFWriteBufferSetup was unable to dynamically allocate space for a data buffer.

SEE ALSO

libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


tiffmedian.1.html000064400000012042147561453440007713 0ustar00 TIFFMEDIAN

TIFFMEDIAN

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
NOTES
SEE ALSO

NAME

tiffmedian − apply the median cut algorithm to data in a TIFF file

SYNOPSIS

tiffmedian [ options ] input.tif output.tif

DESCRIPTION

tiffmedian applies the median cut algorithm to an RGB image in input.tif to generate a palette image that is written to output.tif. The generated colormap has, by default, 256 entries. The image data is quantized by mapping each pixel to the closest color values in the colormap.

OPTIONS

−c

Specify the compression to use for data written to the output file: none for no compression, packbits for PackBits compression, lzw for Lempel-Ziv & Welch compression, and zip for Deflate compression. By default tiffmedian will compress data according to the value of the Compression tag found in the source file.

LZW compression can be specified together with a predictor value. A predictor value of 2 causes each scanline of the output image to undergo horizontal differencing before it is encoded; a value of 1 forces each scanline to be encoded without differencing. LZW-specific options are specified by appending a ‘‘:’’-separated list to the ‘‘lzw’’ option; e.g. −c lzw:2 for LZW compression with horizontal differencing.

−C

Specify the number of entries to use in the generated colormap. By default all 256 entries/colors are used.

−f

Apply Floyd-Steinberg dithering before selecting a colormap entry.

−r

Specify the number of rows (scanlines) in each strip of data written to the output file. By default, tiffmedian attempts to set the rows/strip that no more than 8 kilobytes of data appear in a strip.

NOTES

This program is derived from Paul Heckbert’s median program.

SEE ALSO

pal2rgb(1), tiffinfo(1), tiffcp(1), tiffcmp(1), libtiff(3TIFF)

Color Image Quantization for Frame Buffer Display, Paul Heckbert, SIGGRAPH proceedings, 1982, pp. 297-307.

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFFieldReadCount.3tiff.html000064400000005404147561453440011765 0ustar00 TIFFFieldReadCount

TIFFFieldReadCount

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUES
SEE ALSO

NAME

TIFFFieldReadCount − Get number of values to be read from field

SYNOPSIS

#include <tiffio.h>

int TIFFFieldReadCount(const TIFFField* fip)

DESCRIPTION

TIFFFieldReadCount returns the number of values available to be read from the specified TIFF field; that is, the number of arguments that should be supplied to TIFFGetField. For most field types this is a small positive integer, typically 1 or 2, but there are some special values:
TIFF_VARIABLE
indicates that a variable number of values is possible; then, a uint16 count argument and a pointer data argument must be supplied to TIFFGetField.
TIFF_VARIABLE2
is the same as TIFF_VARIABLE except that the count argument must have type uint32.
TIFF_SPP
indicates that the number of arguments is equal to the image’s number of samples per pixel.

fip is a field information pointer previously returned by TIFFFindField, TIFFFieldWithTag, or TIFFFieldWithName.

RETURN VALUES

TIFFFieldReadCount returns an integer.

SEE ALSO

libtiff(3TIFF),

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFcolor.3tiff.html000064400000054353147561453440010262 0ustar00 COLOR

COLOR

NAME
SYNOPSIS
DESCRIPTION
SEE ALSO

NAME

TIFFYCbCrToRGBInit, TIFFYCbCrtoRGB, TIFFCIELabToRGBInit, TIFFCIELabToXYZ, TIFFXYZToRGB − color conversion routines.

SYNOPSIS

#include <tiffio.h>

int TIFFYCbCrToRGBInit(TIFFYCbCrToRGB *ycbcr, float *luma, float *refBlackWhite");"
void TIFFYCbCrtoRGB(TIFFYCbCrToRGB *
ycbcr, uint32 Y, int32 Cb, int32 Cr, uint32 *R, uint32 *G, uint32 *B );

int TIFFCIELabToRGBInit(TIFFCIELabToRGB *cielab, TIFFDisplay *display, float *refWhite);
void TIFFCIELabToXYZ(TIFFCIELabToRGB *
cielab, uint32 L, int32 a, int32 b, float *X, float *Y, float *Z);
void TIFFXYZToRGB(TIFFCIELabToRGB *
cielab, float X, float Y, float Z",uint32*"R, uint32 *G, uint32 *B);

DESCRIPTION

TIFF supports several color spaces for images stored in that format. There is usually a problem of application to handle the data properly and convert between different colorspaces for displaying and printing purposes. To simplify this task libtiff implements several color conversion routines itself. In particular, these routines used in TIFFRGBAImage(3TIFF) interface.

TIFFYCbCrToRGBInit() used to initialize YCbCr to RGB conversion state. Allocating and freeing of the ycbcr structure belongs to programmer. TIFFYCbCrToRGB defined in tiffio.h as

typedef struct {                /* YCbCr->RGB support */
        TIFFRGBValue* clamptab; /* range clamping table */

int*

Cr_r_tab;
int*

Cb_b_tab;
int32*

Cr_g_tab;
int32*

Cb_g_tab;

int32* Y_tab;
} TIFFYCbCrToRGB;

luma is a float array of three values representing proportions of the red, green and blue in luminance, Y (see section 21 of the TIFF 6.0 specification, where the YCbCr images discussed). TIFFTAG_YCBCRCOEFFICIENTS holds that values in TIFF file. refBlackWhite is a float array of 6 values which specifies a pair of headroom and footroom image data values (codes) for each image component (see section 20 of the TIFF 6.0 specification where the colorinmetry fields discussed). TIFFTAG_REFERENCEBLACKWHITE is responsible for storing these values in TIFF file. Following code snippet should helps to understand the the technique:

float *luma, *refBlackWhite;
uint16 hs, vs;

/* Initialize structures */
ycbcr = (TIFFYCbCrToRGB*)

_TIFFmalloc(TIFFroundup(sizeof(TIFFYCbCrToRGB), sizeof(long))

+ 4*256*sizeof(TIFFRGBValue)

+ 2*256*sizeof(int)

+ 3*256*sizeof(int32));

if (ycbcr == NULL) {
TIFFError("YCbCr->RGB",

"No space for YCbCr->RGB conversion state");

exit(0);
}

TIFFGetFieldDefaulted(tif, TIFFTAG_YCBCRCOEFFICIENTS, &luma);
TIFFGetFieldDefaulted(tif, TIFFTAG_REFERENCEBLACKWHITE, &refBlackWhite);
if (TIFFYCbCrToRGBInit(ycbcr, luma, refBlackWhite) < 0)

exit(0);

/* Start conversion */
uint32 r, g, b;
uint32 Y;
int32 Cb, Cr;

for each pixel in image

TIFFYCbCrtoRGB(img->ycbcr, Y, Cb, Cr, &r, &g, &b);

/* Free state structure */
_TIFFfree(ycbcr);

TIFFCIELabToRGBInit() initializes the CIE L*a*b* 1976 to RGB conversion state. TIFFCIELabToRGB defined as

#define CIELABTORGB_TABLE_RANGE 1500

typedef struct {

/* CIE Lab 1976->RGB support */

int

range;

/* Size of conversion table */

float

rstep, gstep, bstep;

float

X0, Y0, Z0;

/* Reference white point */

TIFFDisplay display;

float

Yr2r[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yr to r */

float

Yg2g[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yg to g */

float

Yb2b[CIELABTORGB_TABLE_RANGE + 1]; /* Conversion of Yb to b */

} TIFFCIELabToRGB;

display is a display device description, declared as

typedef struct {

float d_mat[3][3]; /* XYZ -> luminance matrix */

float d_YCR; /* Light o/p for reference white */

float d_YCG;

float d_YCB;

uint32 d_Vrwr; /* Pixel values for ref. white */

uint32 d_Vrwg;

uint32 d_Vrwb;

float d_Y0R; /* Residual light for black pixel */

float d_Y0G;

float d_Y0B;

float d_gammaR; /* Gamma values for the three guns */

float d_gammaG;

float d_gammaB;

} TIFFDisplay;

For example, the one can use sRGB device, which has the following parameters:

TIFFDisplay display_sRGB = {

{ /* XYZ -> luminance matrix */

{ 3.2410F, -1.5374F, -0.4986F },

{ -0.9692F, 1.8760F, 0.0416F },

{ 0.0556F, -0.2040F, 1.0570F }

},

100.0F, 100.0F, 100.0F, /* Light o/p for reference white */

255, 255, 255, /* Pixel values for ref. white */

1.0F, 1.0F, 1.0F, /* Residual light o/p for black pixel */

2.4F, 2.4F, 2.4F, /* Gamma values for the three guns */

};

refWhite is a color temperature of the reference white. The TIFFTAG_WHITEPOINT contains the chromaticity of the white point of the image from where the reference white can be calculated using following formulae:

refWhite_Y = 100.0
refWhite_X = whitePoint_x / whitePoint_y * refWhite_Y
refWhite_Z = (1.0 - whitePoint_x - whitePoint_y) / whitePoint_y * refWhite_X

The conversion itself performed in two steps: at the first one we will convert CIE L*a*b* 1976 to CIE XYZ using TIFFCIELabToXYZ() routine, and at the second step we will convert CIE XYZ to RGB using TIFFXYZToRGB(). Look at the code sample below:

float   *whitePoint;
float   refWhite[3];

/* Initialize structures */
img->cielab = (TIFFCIELabToRGB *)

_TIFFmalloc(sizeof(TIFFCIELabToRGB));

if (!cielab) {

TIFFError("CIE L*a*b*->RGB",

"No space for CIE L*a*b*->RGB conversion state.");

exit(0);

}

TIFFGetFieldDefaulted(tif, TIFFTAG_WHITEPOINT, &whitePoint);
refWhite[1] = 100.0F;
refWhite[0] = whitePoint[0] / whitePoint[1] * refWhite[1];
refWhite[2] = (1.0F - whitePoint[0] - whitePoint[1])

/ whitePoint[1] * refWhite[1];

if (TIFFCIELabToRGBInit(cielab, &display_sRGB, refWhite) < 0) {

TIFFError("CIE L*a*b*->RGB",

"Failed to initialize CIE L*a*b*->RGB conversion state.");

_TIFFfree(cielab);

exit(0);

}

/* Now we can start to convert */
uint32 r, g, b;
uint32 L;
int32 a, b;
float X, Y, Z;

for each pixel in image

TIFFCIELabToXYZ(cielab, L, a, b, &X, &Y, &Z);

TIFFXYZToRGB(cielab, X, Y, Z, &r, &g, &b);

/* Don’t forget to free the state structure */
_TIFFfree(cielab);

SEE ALSO

TIFFRGBAImage(3TIFF) libtiff(3TIFF),

Libtiff library home page: http://www.remotesensing.org/libtiff/


tiff2rgba.1.html000064400000010754147561453440007463 0ustar00 TIFF2RGBA

TIFF2RGBA

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
SEE ALSO

NAME

tiff2rgba − convert a TIFF image to RGBA color space

SYNOPSIS

tiff2rgba [ options ] input.tif output.tif

DESCRIPTION

Tiff2rgba converts a wide variety of TIFF images into an RGBA TIFF image. This includes the ability to translate different color spaces and photometric interpretation into RGBA, support for alpha blending, and translation of many different bit depths into a 32bit RGBA image.

Internally this program is implemented using the TIFFReadRGBAImage() function, and it suffers any limitations of that image. This includes limited support for > 8 BitsPerSample images, and flaws with some esoteric combinations of BitsPerSample, photometric interpretation, block organization and planar configuration.

The generated images are stripped images with four samples per pixel (red, green, blue and alpha) or if the −n flag is used, three samples per pixel (red, green, and blue). The resulting images are always planar configuration contiguous. For this reason, this program is a useful utility for transform exotic TIFF files into a form ingestible by almost any TIFF supporting software.

OPTIONS

−c

Specify a compression scheme to use when writing image data: −c none for no compression (the default), −c packbits for the PackBits compression algorithm, −c zip for the Deflate compression algorithm, −c jpeg for the JPEG compression algorithm, and −c lzw for Lempel-Ziv & Welch.

−r

Write data with a specified number of rows per strip; by default the number of rows/strip is selected so that each strip is approximately 8 kilobytes.

−b

Process the image one block (strip/tile) at a time instead of by reading the whole image into memory at once. This may be necessary for very large images on systems with limited RAM.

−n

Drop the alpha component from the output file, producing a pure RGB file. Currently this does not work if the −b flag is also in effect.

SEE ALSO

tiff2bw(1), TIFFReadRGBAImage(3t), libtiff(3)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFFieldName.3tiff.html000064400000004117147561453440010761 0ustar00 TIFFFieldName

TIFFFieldName

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUES
SEE ALSO

NAME

TIFFFieldName − Get TIFF field name from field information

SYNOPSIS

#include <tiffio.h>

const char* TIFFFieldName(const TIFFField* fip)

DESCRIPTION

TIFFFieldName returns the textual name for a TIFF field.

fip is a field information pointer previously returned by TIFFFindField, TIFFFieldWithTag, or TIFFFieldWithName.

RETURN VALUES

TIFFFieldName returns a constant C string.

SEE ALSO

libtiff(3TIFF),

Libtiff library home page: http://www.remotesensing.org/libtiff/


tiffdump.1.html000064400000010500147561453440007420 0ustar00 TIFFDUMP

TIFFDUMP

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
SEE ALSO

NAME

tiffdump − print verbatim information about TIFF files

SYNOPSIS

tiffdump [ options ] name ...

DESCRIPTION

tiffdump displays directory information from files created according to the Tag Image File Format, Revision 6.0. The header of each TIFF file (magic number, version, and first directory offset) is displayed, followed by the tag contents of each directory in the file. For each tag, the name, data type, count, and value(s) is displayed. When the symbolic name for a tag or data type is known, the symbolic name is displayed followed by it’s numeric (decimal) value. Tag values are displayed enclosed in ‘‘<>’’ characters immediately preceded by the value of the count field. For example, an ImageWidth tag might be displayed as ‘‘ImageWidth (256) SHORT (3) 1<800>’’.

tiffdump is particularly useful for investigating the contents of TIFF files that libtiff does not understand.

OPTIONS

−h

Force numeric data to be printed in hexadecimal rather than the default decimal.

−m items

Change the number of indirect data items that are printed. By default, this will be 24.

−o offset

Dump the contents of the IFD at the a particular file offset. The file offset may be specified using the usual C-style syntax; i.e. a leading ‘‘0x’’ for hexadecimal and a leading ‘‘0’’ for octal.

SEE ALSO

tiffinfo(1), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFReadTile.3tiff.html000064400000010266147561453440010630 0ustar00 TIFFReadTile

TIFFReadTile

NAME
SYNOPSIS
DESCRIPTION
NOTES
RETURN VALUES
DIAGNOSTICS
SEE ALSO

NAME

TIFFReadTile − read and decode a tile of data from an open TIFF file

SYNOPSIS

#include <tiffio.h>

tsize_t TIFFReadTile(TIFF *tif, tdata_t buf, uint32 x, uint32 y, uint32 z, tsample_t sample)

DESCRIPTION

Return the data for the tile containing the specified coordinates. The data placed in buf are returned decompressed and, typically, in the native byte- and bit-ordering, but are otherwise packed (see further below). The buffer must be large enough to hold an entire tile of data. Applications should call the routine TIFFTileSize to find out the size (in bytes) of a tile buffer. The x and y parameters are always used by TIFFReadTile. The z parameter is used if the image is deeper than 1 slice (ImageDepth>1). The sample parameter is used only if data are organized in separate planes (PlanarConfiguration=2).

NOTES

The library attempts to hide bit- and byte-ordering differences between the image and the native machine by converting data to the native machine order. Bit reversal is done if the FillOrder tag is opposite to the native machine bit order. 16- and 32-bit samples are automatically byte-swapped if the file was written with a byte order opposite to the native machine byte order,

RETURN VALUES

TIFFReadTile returns −1 if it detects an error; otherwise the number of bytes in the decoded tile is returned.

DIAGNOSTICS

All error messages are directed to the TIFFError(3TIFF) routine.

SEE ALSO

TIFFCheckTile(3TIFF), TIFFComputeTile(3TIFF), TIFFOpen(3TIFF), TIFFReadEncodedTile(3TIFF), TIFFReadRawTile(3TIFF), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


pal2rgb.1.html000064400000012174147561453440007144 0ustar00 PAL2RGB

PAL2RGB

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
BUGS
SEE ALSO

NAME

pal2rgb − convert a palette color TIFF image to a full color image

SYNOPSIS

pal2rgb [ options ] input.tif output.tif

DESCRIPTION

Pal2rgb converts a palette color TIFF image to a full color image by applying the colormap of the palette image to each sample to generate a full color RGB image.

OPTIONS

Options that affect the interpretation of input data are:

−C

This option overrides the default behavior of pal2rgb in determining whether or not colormap entries contain 16-bit or 8-bit values. By default the colormap is inspected and if no colormap entry greater than 255 is found, the colormap is assumed to have only 8-bit values; otherwise 16-bit values (as required by the TIFF specification) are assumed. The −C option can be used to explicitly specify the number of bits for colormap entries: −C 8 for 8-bit values, −C 16 for 16-bit values.

Options that affect the output file format are:

−p

Explicitly select the planar configuration used in organizing data samples in the output image: −p contig for samples packed contiguously, and −p separate for samples stored separately. By default samples are packed.

−c

Use the specific compression algorithm to encoded image data in the output file: −c packbits for Macintosh Packbits, −c lzw for Lempel-Ziv & Welch, −c zip for Deflate, −c none for no compression. If no compression-related option is specified, the input file’s compression algorithm is used.

−r

Explicitly specify the number of rows in each strip of the output file. If the −r option is not specified, a number is selected such that each output strip has approximately 8 kilobytes of data in it.

BUGS

Only 8-bit images are handled.

SEE ALSO

tiffinfo(1), tiffcp(1), tiffmedian(1), libtiff(3)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFReadRGBATile.3tiff.html000064400000020435147561453440011263 0ustar00 TIFFReadRGBATile

TIFFReadRGBATile

NAME
SYNOPSIS
DESCRIPTION
NOTES
RETURN VALUES
DIAGNOSTICS
SEE ALSO

NAME

TIFFReadRGBATile − read and decode an image tile into a fixed-format raster

SYNOPSIS

#include <tiffio.h>

#define TIFFGetR(abgr)

((abgr) & 0xff)

#define TIFFGetG(abgr)

(((abgr) >> 8) & 0xff)

#define TIFFGetB(abgr)

(((abgr) >> 16) & 0xff)

#define TIFFGetA(abgr)

(((abgr) >> 24) & 0xff)

int TIFFReadRGBATile(TIFF *tif, uint32 x, uint32 y, uint32 *raster)

DESCRIPTION

TIFFReadRGBATile reads a single tile of a tile-based image into memory, storing the result in the user supplied RGBA raster. The raster is assumed to be an array of width times length 32-bit entries, where width is the width of a tile (TIFFTAG_TILEWIDTH) and length is the height of a tile (TIFFTAG_TILELENGTH).

The x and y values are the offsets from the top left corner to the top left corner of the tile to be read. They must be an exact multiple of the tile width and length.

Note that the raster is assume to be organized such that the pixel at location (x,y) is raster[y*width+x]; with the raster origin in the lower-left hand corner of the tile. That is bottom to top organization. Edge tiles which partly fall off the image will be filled out with appropriate zeroed areas.

Raster pixels are 8-bit packed red, green, blue, alpha samples. The macros TIFFGetR, TIFFGetG, TIFFGetB, and TIFFGetA should be used to access individual samples. Images without Associated Alpha matting information have a constant Alpha of 1.0 (255).

See the TIFFRGBAImage(3TIFF) page for more details on how various image types are converted to RGBA values.

NOTES

Samples must be either 1, 2, 4, 8, or 16 bits. Colorimetric samples/pixel must be either 1, 3, or 4 (i.e. SamplesPerPixel minus ExtraSamples).

Palette image colormaps that appear to be incorrectly written as 8-bit values are automatically scaled to 16-bits.

TIFFReadRGBATile is just a wrapper around the more general TIFFRGBAImage(3TIFF) facilities. It’s main advantage over the similar TIFFReadRGBAImage() function is that for large images a single buffer capable of holding the whole image doesn’t need to be allocated, only enough for one tile. The TIFFReadRGBAStrip() function does a similar operation for stripped images.

RETURN VALUES

1 is returned if the image was successfully read and converted. Otherwise, 0 is returned if an error was encountered.

DIAGNOSTICS

All error messages are directed to the TIFFError(3TIFF) routine.

Sorry, can not handle %d-bit pictures. The image had BitsPerSample other than 1, 2, 4, 8, or 16.

Sorry, can not handle %d-channel images. The image had SamplesPerPixel other than 1, 3, or 4.

Missing needed "PhotometricInterpretation" tag. The image did not have a tag that describes how to display the data.

No "PhotometricInterpretation" tag, assuming RGB. The image was missing a tag that describes how to display it, but because it has 3 or 4 samples/pixel, it is assumed to be RGB.

No "PhotometricInterpretation" tag, assuming min-is-black. The image was missing a tag that describes how to display it, but because it has 1 sample/pixel, it is assumed to be a grayscale or bilevel image.

No space for photometric conversion table. There was insufficient memory for a table used to convert image samples to 8-bit RGB.

Missing required "Colormap" tag. A Palette image did not have a required Colormap tag.

No space for tile buffer. There was insufficient memory to allocate an i/o buffer.

No space for strip buffer. There was insufficient memory to allocate an i/o buffer.

Can not handle format. The image has a format (combination of BitsPerSample, SamplesPerPixel, and PhotometricInterpretation) that TIFFReadRGBAImage can not handle.

No space for B&W mapping table. There was insufficient memory to allocate a table used to map grayscale data to RGB.

No space for Palette mapping table. There was insufficient memory to allocate a table used to map data to 8-bit RGB.

SEE ALSO

TIFFOpen(3TIFF), TIFFRGBAImage(3TIFF), TIFFReadRGBAImage(3TIFF), TIFFReadRGBAStrip(3TIFF), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


thumbnail.1.html000064400000007744147561453440007605 0ustar00 THUMBNAIL

THUMBNAIL

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
BUGS
SEE ALSO

NAME

thumbnail − create a TIFF file with thumbnail images

SYNOPSIS

thumbnail [ options ] input.tif output.tif

DESCRIPTION

thumbnail is a program written to show how one might use the SubIFD tag (#330) to store thumbnail images. thumbnail copies a TIFF Class F facsimile file to the output file and for each image an 8-bit greyscale thumbnail sketch. The output file contains the thumbnail image with the associated full-resolution page linked below with the SubIFD tag.

By default, thumbnail images are 216 pixels wide by 274 pixels high. Pixels are calculated by sampling and filtering the input image with each pixel value passed through a contrast curve.

OPTIONS

−w

Specify the width of thumbnail images in pixels.

−h

Specify the height of thumbnail images in pixels.

−c

Specify a contrast curve to apply in generating the thumbnail images. By default pixels values are passed through a linear contrast curve that simply maps the pixel value ranges. Alternative curves are: exp50 for a 50% exponential curve, exp60 for a 60% exponential curve, exp70 for a 70% exponential curve, exp80 for a 80% exponential curve, exp90 for a 90% exponential curve, exp for a pure exponential curve, linear for a linear curve.

BUGS

There are no options to control the format of the saved thumbnail images.

SEE ALSO

tiffdump(1), tiffgt(1), tiffinfo(1), libtiff(3)

Libtiff library home page: http://www.remotesensing.org/libtiff/


tiff2bw.1.html000064400000007731147561453440007161 0ustar00 TIFF2BW

TIFF2BW

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
SEE ALSO

NAME

tiff2bw − convert a color TIFF image to greyscale

SYNOPSIS

tiff2bw [ options ] input.tif output.tif

DESCRIPTION

Tiff2bw converts an RGB or Palette color TIFF image to a greyscale image by combining percentages of the red, green, and blue channels. By default, output samples are created by taking 28% of the red channel, 59% of the green channel, and 11% of the blue channel. To alter these percentages, the −R, −G, and −B options may be used.

OPTIONS

−c

Specify a compression scheme to use when writing image data: −c none for no compression, −c packbits for the PackBits compression algorithm, −c zip for the Deflate compression algorithm, −c g3 for the CCITT Group 3 compression algorithm, −c g4 for the CCITT Group 4 compression algorithm, and −c lzw for Lempel-Ziv & Welch (the default).

−r

Write data with a specified number of rows per strip; by default the number of rows/strip is selected so that each strip is approximately 8 kilobytes.

−R

Specify the percentage of the red channel to use (default 28).

−G

Specify the percentage of the green channel to use (default 59).

−B

Specify the percentage of the blue channel to use (default 11).

SEE ALSO

pal2rgb(1), tiffinfo(1), tiffcp(1), tiffmedian(1), libtiff(3)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFFieldWriteCount.3tiff.html000064400000006110147561453440012177 0ustar00 TIFFFieldWriteCount

TIFFFieldWriteCount

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUES
SEE ALSO

NAME

TIFFFieldWriteCount − Get number of values to be written to field

SYNOPSIS

#include <tiffio.h>

int TIFFFieldWriteCount(const TIFFField* fip)

DESCRIPTION

TIFFFieldWriteCount returns the number of values to be written into the specified TIFF field; that is, the number of arguments that should be supplied to TIFFSetField. For most field types this is a small positive integer, typically 1 or 2, but there are some special values:
TIFF_VARIABLE
indicates that a variable number of values is possible; then, a uint16 count argument and a pointer data argument must be supplied to TIFFSetField.
TIFF_VARIABLE2
is the same as TIFF_VARIABLE except that the count argument must have type uint32. (On most modern machines, this makes no practical difference, and the count argument can simply be an int in either case.)
TIFF_SPP
indicates that the number of arguments must be equal to the image’s number of samples per pixel.

fip is a field information pointer previously returned by TIFFFindField, TIFFFieldWithTag, or TIFFFieldWithName.

For most field types, TIFFFieldWriteCount returns the same value as TIFFFieldReadCount, but there are some exceptions.

RETURN VALUES

TIFFFieldWriteCount returns an integer.

SEE ALSO

libtiff(3TIFF),

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFFieldPassCount.3tiff.html000064400000005064147561453440012022 0ustar00 TIFFFieldPassCount

TIFFFieldPassCount

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUES
SEE ALSO

NAME

TIFFFieldPassCount − Get whether to pass a count to TIFFGet/SetField

SYNOPSIS

#include <tiffio.h>

int TIFFFieldPassCount(const TIFFField* fip)

DESCRIPTION

TIFFFieldPassCount returns true (nonzero) if TIFFGetField and TIFFSetField expect a count value to be passed before the actual data pointer.

fip is a field information pointer previously returned by TIFFFindField, TIFFFieldWithTag, or TIFFFieldWithName.

When a count is required, it will be of type uint32 when TIFFFieldReadCount reports TIFF_VARIABLE2, and of type uint16 otherwise. (This distinction is critical for use of TIFFGetField, but normally not so for use of TIFFSetField.)

RETURN VALUES

TIFFFieldPassCount returns an integer that is always 1 (true) or 0 (false).

SEE ALSO

libtiff(3TIFF),

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFsize.3tiff.html000064400000005274147561453440010114 0ustar00 TIFFSIZE

TIFFSIZE

NAME
SYNOPSIS
DESCRIPTION
DIAGNOSTICS
SEE ALSO

NAME

TIFFScanlineSize, TIFFRasterScanlineSize, − return the size of various items associated with an open TIFF file

SYNOPSIS

#include <tiffio.h>

tsize_t TIFFRasterScanlineSize(TIFF *tif)
tsize_t TIFFScanlineSize(TIFF *
tif)

DESCRIPTION

TIFFScanlineSize returns the size in bytes of a row of data as it would be returned in a call to TIFFReadScanline, or as it would be expected in a call to TIFFWriteScanline.

TIFFRasterScanlineSize returns the size in bytes of a complete decoded and packed raster scanline. Note that this value may be different from the value returned by TIFFScanlineSize if data is stored as separate planes.

DIAGNOSTICS

None.

SEE ALSO

TIFFOpen(3TIFF), TIFFReadScanline(3TIFF), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


tiffcp.1.html000064400000035754147561453440007077 0ustar00 TIFFCP

TIFFCP

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
EXAMPLES
SEE ALSO

NAME

tiffcp − copy (and possibly convert) a TIFF file

SYNOPSIS

tiffcp [ options ] src1.tif ... srcN.tif dst.tif

DESCRIPTION

tiffcp combines one or more files created according to the Tag Image File Format, Revision 6.0 into a single TIFF file. Because the output file may be compressed using a different algorithm than the input files, tiffcp is most often used to convert between different compression schemes.

By default, tiffcp will copy all the understood tags in a TIFF directory of an input file to the associated directory in the output file.

tiffcp can be used to reorganize the storage characteristics of data in a file, but it is explicitly intended to not alter or convert the image data content in any way.

OPTIONS

−b image

subtract the following monochrome image from all others processed. This can be used to remove a noise bias from a set of images. This bias image is typically an image of noise the camera saw with its shutter closed.

−B

Force output to be written with Big-Endian byte order. This option only has an effect when the output file is created or overwritten and not when it is appended to.

−C

Suppress the use of ‘‘strip chopping’’ when reading images that have a single strip/tile of uncompressed data.

−c

Specify the compression to use for data written to the output file: none for no compression, packbits for PackBits compression, lzw for Lempel-Ziv & Welch compression, jpeg for baseline JPEG compression, zip for Deflate compression, g3 for CCITT Group 3 (T.4) compression, and g4 for CCITT Group 4 (T.6) compression. By default tiffcp will compress data according to the value of the Compression tag found in the source file.

The CCITT Group 3 and Group 4 compression algorithms can only be used with bilevel data.

Group 3 compression can be specified together with several T.4-specific options: 1d for 1-dimensional encoding, 2d for 2-dimensional encoding, and fill to force each encoded scanline to be zero-filled so that the terminating EOL code lies on a byte boundary. Group 3-specific options are specified by appending a ‘‘:’’-separated list to the ‘‘g3’’ option; e.g. −c g3:2d:fill to get 2D-encoded data with byte-aligned EOL codes.

LZW compression can be specified together with a predictor value. A predictor value of 2 causes each scanline of the output image to undergo horizontal differencing before it is encoded; a value of 1 forces each scanline to be encoded without differencing. LZW-specific options are specified by appending a ‘‘:’’-separated list to the ‘‘lzw’’ option; e.g. −c lzw:2 for LZW compression with horizontal differencing.

−f

Specify the bit fill order to use in writing output data. By default, tiffcp will create a new file with the same fill order as the original. Specifying −f lsb2msb will force data to be written with the FillOrder tag set to LSB2MSB, while −f msb2lsb will force data to be written with the FillOrder tag set to MSB2LSB.

−i

Ignore non-fatal read errors and continue processing of the input file.

−l

Specify the length of a tile (in pixels). tiffcp attempts to set the tile dimensions so that no more than 8 kilobytes of data appear in a tile.

−L

Force output to be written with Little-Endian byte order. This option only has an effect when the output file is created or overwritten and not when it is appended to.

−M

Suppress the use of memory-mapped files when reading images.

−p

Specify the planar configuration to use in writing image data that has one 8-bit sample per pixel. By default, tiffcp will create a new file with the same planar configuration as the original. Specifying −p contig will force data to be written with multi-sample data packed together, while −p separate will force samples to be written in separate planes.

−r

Specify the number of rows (scanlines) in each strip of data written to the output file. By default (or when value 0 is specified), tiffcp attempts to set the rows/strip that no more than 8 kilobytes of data appear in a strip. If you specify special value −1 it will results in infinite number of the rows per strip. The entire image will be the one strip in that case.

−s

Force the output file to be written with data organized in strips (rather than tiles).

−t

Force the output file to be written with data organized in tiles (rather than strips). options can be used to force the resultant image to be written as strips or tiles of data, respectively.

−w

Specify the width of a tile (in pixels). tiffcp attempts to set the tile dimensions so that no more than 8 kilobytes of data appear in a tile. tiffcp attempts to set the tile dimensions so that no more than 8 kilobytes of data appear in a tile.

−x

Force the output file to be written with PAGENUMBER value in sequence.

−,=character

substitute character for ‘,’ in parsing image directory indices in files. This is necessary if filenames contain commas. Note that −,= with whitespace immediately following will disable the special meaning of the ‘,’ entirely. See examples.

EXAMPLES

The following concatenates two files and writes the result using LZW encoding:

tiffcp −c lzw a.tif b.tif result.tif

To convert a G3 1d-encoded TIFF to a single strip of G4-encoded data the following might be used:

tiffcp −c g4 −r 10000 g3.tif g4.tif

(1000 is just a number that is larger than the number of rows in the source file.)

To extract a selected set of images from a multi-image TIFF file, the file name may be immediately followed by a ‘,’ separated list of image directory indices. The first image is always in directory 0. Thus, to copy the 1st and 3rd images of image file ‘‘album.tif’’ to ‘‘result.tif’’:

tiffcp album.tif,0,2 result.tif

A trailing comma denotes remaining images in sequence. The following command will copy all image with except the first one:

tiffcp album.tif,1, result.tif

Given file ‘‘CCD.tif’’ whose first image is a noise bias followed by images which include that bias, subtract the noise from all those images following it (while decompressing) with the command:

tiffcp −c none −b CCD.tif CCD.tif,1, result.tif

If the file above were named ‘‘CCD,X.tif’’, the −,= option would be required to correctly parse this filename with image numbers, as follows:

tiffcp −c none −,=% −b CCD,X.tif CCD,X%1%.tif result.tif

SEE ALSO

pal2rgb(1), tiffinfo(1), tiffcmp(1), tiffmedian(1), tiffsplit(1), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFtile.3tiff.html000064400000011626147561453440010075 0ustar00 TIFFTILE

TIFFTILE

NAME
SYNOPSIS
DESCRIPTION
DIAGNOSTICS
SEE ALSO

NAME

TIFFTileSize, TIFFTileRowSize, TIFFVTileSize, TIFFDefaultTileSize, TIFFComputeTile, TIFFCheckTile, TIFFNumberOfTiles − tile-related utility routines

SYNOPSIS

#include <tiffio.h>

void TIFFDefaultTileSize(TIFF *tif, uint32 *tw, uint32 *th)
tsize_t TIFFTileSize(TIFF *
tif)
tsize_t TIFFTileRowSize(TIFF *
tif)
tsize_t TIFFVTileSize(TIFF *
tif, uint32 nrows)
ttile_t TIFFComputeTile(TIFF *
tif, uint32 x, uint32 y, uint32 z, tsample_t sample)
int TIFFCheckTile(TIFF *
tif, uint32 x, uint32 y, uint32 z, tsample_t sample)
ttile_t TIFFNumberOfTiles(TIFF *
tif)

DESCRIPTION

TIFFDefaultTileSize returns the pixel width and height of a reasonable-sized tile; suitable for setting up the TileWidth and TileLength tags. If the tw and th values passed in are non-zero, then they are adjusted to reflect any compression-specific requirements. The returned width and height are constrained to be a multiple of 16 pixels to conform with the TIFF specification.

TIFFTileSize returns the equivalent size for a tile of data as it would be returned in a call to TIFFReadTile or as it would be expected in a call to TIFFWriteTile.

TIFFVTileSize returns the number of bytes in a row-aligned tile with nrows of data.

TIFFTileRowSize returns the number of bytes of a row of data in a tile.

TIFFComputeTile returns the tile that contains the specified coordinates. A valid tile is always returned; out-of-range coordinate values are clamped to the bounds of the image. The x and y parameters are always used in calculating a tile. The z parameter is used if the image is deeper than 1 slice (ImageDepth>1). The sample parameter is used only if data are organized in separate planes (PlanarConfiguration=2).

TIFFCheckTile returns a non-zero value if the supplied coordinates are within the bounds of the image and zero otherwise. The x parameter is checked against the value of the ImageWidth tag. The y parameter is checked against the value of the ImageLength tag. The z parameter is checked against the value of the ImageDepth tag (if defined). The sample parameter is checked against the value of the SamplesPerPixel parameter if the data are organized in separate planes.

TIFFNumberOfTiles returns the number of tiles in the image.

DIAGNOSTICS

None.

SEE ALSO

TIFFReadEncodedTile(3TIFF), TIFFReadRawTile(3TIFF), TIFFReadTile(3TIFF), TIFFWriteEncodedTile(3TIFF), TIFFWriteRawTile(3TIFF), TIFFWriteTile(3TIFF), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFSetField.3tiff.html000064400000074565147561453440010652 0ustar00 TIFFSetField

TIFFSetField

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUES
DIAGNOSTICS
SEE ALSO

NAME

TIFFSetField, TIFFVSetField − set the value(s) of a tag in a TIFF file open for writing

SYNOPSIS

#include <tiffio.h>

int TIFFSetField(TIFF *tif, ttag_t tag, ...)

#include <stdarg.h>

int TIFFVSetField(TIFF *tif, ttag_t tag, va_list ap)

DESCRIPTION

TIFFSetField sets the value of a field or pseudo-tag in the current directory associated with the open TIFF file tif. (A pseudo-tag is a parameter that is used to control the operation of the TIFF library but whose value is not read or written to the underlying file.) To set the value of a field the file must have been previously opened for writing with TIFFOpen(3TIFF); pseudo-tags can be set whether the file was opened for reading or writing. The field is identified by tag, one of the values defined in the include file tiff.h (see also the table below). The actual value is specified using a variable argument list, as prescribed by the stdarg(3) interface (or, on some machines, the varargs(3) interface.)

TIFFVSetField is functionally equivalent to TIFFSetField except that it takes a pointer to a variable argument list. TIFFVSetField is useful for writing routines that are layered on top of the functionality provided by TIFFSetField.

The tags understood by libtiff, the number of parameter values, and the expected types for the parameter values are shown below. The data types are: char* is null-terminated string and corresponds to the ASCII data type; uint16 is an unsigned 16-bit value; uint32 is an unsigned 32-bit value; uint16* is an array of unsigned 16-bit values. void* is an array of data values of unspecified type.

Consult the TIFF specification for information on the meaning of each tag.

Tag Name

Count

Types

Notes

TIFFTAG_ARTIST

1

char*

TIFFTAG_BADFAXLINES

1

uint32

TIFFTAG_BITSPERSAMPLE

1

uint16

TIFFTAG_CLEANFAXDATA

1

uint16

TIFFTAG_COLORMAP

3

uint16*

1<<BitsPerSample arrays

TIFFTAG_COMPRESSION

1

uint16

TIFFTAG_CONSECUTIVEBADFAXLINES

1

uint32

TIFFTAG_COPYRIGHT

1

char*

TIFFTAG_DATETIME

1

char*

TIFFTAG_DOCUMENTNAME

1

char*

TIFFTAG_DOTRANGE

2

uint16

TIFFTAG_EXTRASAMPLES

2

uint16,uint16*

† count & types array

TIFFTAG_FAXFILLFUNC

1

TIFFFaxFillFunc

G3/G4 compression pseudo-tag

TIFFTAG_FAXMODE

1

int

† G3/G4 compression pseudo-tag

TIFFTAG_FILLORDER

1

uint16

TIFFTAG_GROUP3OPTIONS

1

uint32

TIFFTAG_GROUP4OPTIONS

1

uint32

TIFFTAG_HALFTONEHINTS

2

uint16

TIFFTAG_HOSTCOMPUTER

1

char*

TIFFTAG_ICCPROFILE

2

uint32,void*

count, profile data

TIFFTAG_IMAGEDEPTH

1

uint32

TIFFTAG_IMAGEDESCRIPTION

1

char*

TIFFTAG_IMAGELENGTH

1

uint32

TIFFTAG_IMAGEWIDTH

1

uint32

TIFFTAG_INKNAMES

2

uint16, char*

TIFFTAG_INKSET

1

uint16

TIFFTAG_JPEGCOLORMODE

1

int

† JPEG pseudo-tag

TIFFTAG_JPEGQUALITY

1

int

JPEG pseudo-tag

TIFFTAG_JPEGTABLES

2

uint32*,void*

† count & tables

TIFFTAG_JPEGTABLESMODE

1

int

† JPEG pseudo-tag

TIFFTAG_MAKE

1

char*

TIFFTAG_MATTEING

1

uint16

TIFFTAG_MAXSAMPLEVALUE

1

uint16

TIFFTAG_MINSAMPLEVALUE

1

uint16

TIFFTAG_MODEL

1

char*

TIFFTAG_ORIENTATION

1

uint16

TIFFTAG_PAGENAME

1

char*

TIFFTAG_PAGENUMBER

2

uint16

TIFFTAG_PHOTOMETRIC

1

uint16

TIFFTAG_PHOTOSHOP

?

uint32,void*

count, data

TIFFTAG_PLANARCONFIG

1

uint16

TIFFTAG_PREDICTOR

1

uint16

TIFFTAG_PRIMARYCHROMATICITIES

1

float*

6-entry array

TIFFTAG_REFERENCEBLACKWHITE

1

float*

† 6-entry array

TIFFTAG_RESOLUTIONUNIT

1

uint16

TIFFTAG_RICHTIFFIPTC

2

uint32,void*

count, data

TIFFTAG_ROWSPERSTRIP

1

uint32

† must be > 0

TIFFTAG_SAMPLEFORMAT

1

uint16

TIFFTAG_SAMPLESPERPIXEL

1

uint16

† value must be <= 4

TIFFTAG_SMAXSAMPLEVALUE

1

double

TIFFTAG_SMINSAMPLEVALUE

1

double

TIFFTAG_SOFTWARE

1

char*

TIFFTAG_STONITS

1

double

TIFFTAG_SUBFILETYPE

1

uint32

TIFFTAG_SUBIFD

2

uint16,uint32*

count & offsets array

TIFFTAG_TARGETPRINTER

1

char*

TIFFTAG_THRESHHOLDING

1

uint16

TIFFTAG_TILEDEPTH

1

uint32

TIFFTAG_TILELENGTH

1

uint32

† must be a multiple of 8

TIFFTAG_TILEWIDTH

1

uint32

† must be a multiple of 8

TIFFTAG_TRANSFERFUNCTION

1 or 3‡ uint16*

1<<BitsPerSample entry arrays

TIFFTAG_WHITEPOINT

1

float*

2-entry array

TIFFTAG_XMLPACKET

2

uint32,void*

count, data

TIFFTAG_XPOSITION

1

float

TIFFTAG_XRESOLUTION

1

float

TIFFTAG_YCBCRCOEFFICIENTS

1

float*

† 3-entry array

TIFFTAG_YCBCRPOSITIONING

1

uint16

TIFFTAG_YCBCRSAMPLING

2

uint16

TIFFTAG_YPOSITION

1

float

TIFFTAG_YRESOLUTION

1

float

† Tag may not have its values changed once data is written.
‡ If SamplesPerPixel is one, then a single array is passed; otherwise three arrays should be passed.
* The contents of this field are quite complex. See The ICC Profile Format Specification, Annex B.3 "Embedding ICC Profiles in TIFF Files" (available at http://www.color.org) for an explanation.

RETURN VALUES

1 is returned if the operation was successful. Otherwise, 0 is returned if an error was detected.

DIAGNOSTICS

All error messages are directed to the TIFFError(3TIFF) routine.

%s: Cannot modify tag "%s" while writing. Data has already been written to the file, so the specified tag’s value can not be changed. This restriction is applied to all tags that affect the format of written data.

%d: Bad value for "%s". An invalid value was supplied for the named tag.

SEE ALSO

TIFFOpen(3TIFF), TIFFGetField(3TIFF), TIFFSetDirectory(3TIFF), TIFFWriteDirectory(3TIFF), TIFFReadDirectory(3TIFF), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


tiffset.1.html000064400000011470147561453440007255 0ustar00 TIFFSET

TIFFSET

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
EXAMPLES
SEE ALSO

NAME

tiffset − set a field in a TIFF header

SYNOPSIS

tiffset [ options ] filename.tif

DESCRIPTION

Tiffset sets the value of a TIFF header to a specified value.

OPTIONS

−s tagnumber [ count ] value ...

Set the value of the named tag to the value or values specified.

−sf tagnumber filename

Set the value of the tag to the contents of filename. This option is supported for ASCII tags only.

EXAMPLES

The following example sets the image description tag (270) of a.tif to the contents of the file descrip:

tiffset −sf 270 descrip a.tif

The following example sets the artist tag (315) of a.tif to the string ‘‘Anonymous’’:

tiffset −s 305 Anonymous a.tif

This example sets the resolution of the file a.tif to 300 dpi:

tiffset −s 296 2 a.tif
tiffset −s 282 300.0 a.tif
tiffset −s 283 300.0 a.tif

SEE ALSO

tiffdump(1), tiffinfo(1), tiffcp(1), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFReadEncodedTile.3tiff.html000064400000010045147561453440012105 0ustar00 TIFFReadEncodedTile

TIFFReadEncodedTile

NAME
SYNOPSIS
DESCRIPTION
NOTES
RETURN VALUES
DIAGNOSTICS
SEE ALSO

NAME

TIFFReadEncodedTile − read and decode a tile of data from an open TIFF file

SYNOPSIS

#include <tiffio.h>

int TIFFReadEncodedTile(TIFF *tif, ttile_t tile, tdata_t buf, tsize_t size)

DESCRIPTION

Read the specified tile of data and place up to size bytes of decompressed information in the (user supplied) data buffer.

NOTES

The value of tile is a ‘‘raw tile number.’’ That is, the caller must take into account whether or not the data are organized in separate planes (PlanarConfiguration=2). TIFFComputeTile automatically does this when converting an (x,y,z,sample) coordinate quadruple to a tile number. To read a full tile of data the data buffer should be at least as large as the value returned by TIFFTileSize.

The library attempts to hide bit- and byte-ordering differences between the image and the native machine by converting data to the native machine order. Bit reversal is done if the FillOrder tag is opposite to the native machine bit order. 16- and 32-bit samples are automatically byte-swapped if the file was written with a byte order opposite to the native machine byte order,

RETURN VALUES

The actual number of bytes of data that were placed in buf is returned; TIFFReadEncodedTile returns −1 if an error was encountered.

DIAGNOSTICS

All error messages are directed to the TIFFError(3TIFF) routine.

SEE ALSO

TIFFOpen(3TIFF), TIFFReadRawTile(3TIFF), TIFFReadTile(3TIFF), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFClose.3tiff.html000064400000004657147561453440010213 0ustar00 TIFFClose

TIFFClose

NAME
SYNOPSIS
DESCRIPTION
DIAGNOSTICS
SEE ALSO

NAME

TIFFClose − close a previously opened TIFF file

SYNOPSIS

#include <tiffio.h>

void TIFFClose(TIFF *tif)

DESCRIPTION

TIFFClose closes a file that was previously opened with TIFFOpen(3TIFF). Any buffered data are flushed to the file, including the contents of the current directory (if modified); and all resources are reclaimed.

DIAGNOSTICS

All error messages are directed to the routine. Likewise, warning messages are directed to the TIFFWarning(3TIFF) routine.

SEE ALSO

libtiff(3TIFF), TIFFOpen(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFReadRawStrip.3tiff.html000064400000006414147561453440011506 0ustar00 TIFFReadRawStrip

TIFFReadRawStrip

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUES
DIAGNOSTICS
SEE ALSO

NAME

TIFFReadRawStrip − return the undecoded contents of a strip of data from an open TIFF file

SYNOPSIS

#include <tiffio.h>

tsize_t TIFFReadRawStrip(TIFF *tif, tstrip_t strip, tdata_t buf, tsize_t size)

DESCRIPTION

Read the contents of the specified strip into the (user supplied) data buffer. Note that the value of strip is a ‘‘raw strip number.’’ That is, the caller must take into account whether or not the data is organized in separate planes (PlanarConfiguration=2). To read a full strip of data the data buffer should typically be at least as large as the number returned by TIFFStripSize.

RETURN VALUES

The actual number of bytes of data that were placed in buf is returned; TIFFReadEncodedStrip returns −1 if an error was encountered.

DIAGNOSTICS

All error messages are directed to the TIFFError(3TIFF) routine.

SEE ALSO

TIFFOpen(3TIFF), TIFFReadEncodedStrip(3TIFF), TIFFReadScanline(3TIFF), TIFFStripSize(3TIFF), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


gif2tiff.1.html000064400000007465147561453440007322 0ustar00 GIF2TIFF

GIF2TIFF

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
NOTES
BUGS
SEE ALSO

NAME

gif2tiff − create a TIFF file from a GIF87 format image file

SYNOPSIS

gif2tiff [ options ] input.gif output.tif

DESCRIPTION

Gif2tiff converts a file in the GIF87 format to TIFF. The TIFF image is created as a palette image, with samples compressed with the Lempel-Ziv & Welch algorithm (Compression=5). These characteristics can overridden, or explicitly specified with the options described below.

OPTIONS

−c

Specify a compression scheme to use when writing image data: −c none for no compression, −c packbits for the PackBits compression algorithm, −c zip for the Deflate compression algorithm, and −c lzw for Lempel-Ziv & Welch (the default).

−r

Write data with a specified number of rows per strip; by default the number of rows/strip is selected so that each strip is approximately 8 kilobytes.

NOTES

The program is based on Paul Haeberli’s fromgif program which, in turn, is based on Marcel J.E. Mol’s GIF reader.

BUGS

Should have more options to control output format.

SEE ALSO

pal2rgb(1), tiffinfo(1), tiffcp(1), tiffmedian(1), libtiff(3)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFquery.3tiff.html000064400000012056147561453440010303 0ustar00 QUERY

QUERY

NAME
SYNOPSIS
DESCRIPTION
DIAGNOSTICS
SEE ALSO

NAME

TIFFCurrentRow, TIFFCurrentStrip, TIFFCurrentTile, TIFFCurrentDirectory, TIFFLastDirectory, TIFFFileno, TIFFFileName, TIFFGetMode, TIFFIsTiled, TIFFIsByteSwapped, TIFFIsUpSampled, TIFFIsMSB2LSB, TIFFGetVersion − query routines

SYNOPSIS

#include <tiffio.h>

uint32 TIFFCurrentRow(TIFF* tif)
tstrip_t TIFFCurrentStrip(TIFF*
tif)
ttile_t TIFFCurrentTile(TIFF*
tif)
tdir_t TIFFCurrentDirectory(TIFF*
tif)
int TIFFLastDirectory(TIFF*
tif)
int TIFFFileno(TIFF*
tif)
char* TIFFFileName(TIFF*
tif)
int TIFFGetMode(TIFF*
tif)
int TIFFIsTiled(TIFF*
tif)
int TIFFIsByteSwapped(TIFF*
tif)
int TIFFIsUpSampled(TIFF*
tif)
int TIFFIsMSB2LSB(TIFF*
tif)
const char* TIFFGetVersion(void)

DESCRIPTION

The following routines return status information about an open TIFF file.

TIFFCurrentDirectory returns the index of the current directory (directories are numbered starting at 0). This number is suitable for use with the TIFFSetDirectory routine.

TIFFLastDirectory returns a non-zero value if the current directory is the last directory in the file; otherwise zero is returned.

TIFFCurrentRow, TIFFCurrentStrip, and TIFFCurrentTile, return the current row, strip, and tile, respectively, that is being read or written. These values are updated each time a read or write is done.

TIFFFileno returns the underlying file descriptor used to access the TIFF image in the filesystem.

TIFFFileName returns the pathname argument passed to TIFFOpen or TIFFFdOpen.

TIFFGetMode returns the mode with which the underlying file was opened. On UNIX systems, this is the value passed to the open(2) system call.

TIFFIsTiled returns a non-zero value if the image data has a tiled organization. Zero is returned if the image data is organized in strips.

TIFFIsByteSwapped returns a non-zero value if the image data was in a different byte-order than the host machine. Zero is returned if the TIFF file and local host byte-orders are the same. Note that TIFFReadTile(), TIFFReadStrip() and TIFFReadScanline() functions already normally perform byte swapping to local host order if needed.

TIFFIsUpSampled returns a non-zero value if image data returned through the read interface routines is being up-sampled. This can be useful to applications that want to calculate I/O buffer sizes to reflect this usage (though the usual strip and tile size routines already do this).

TIFFIsMSB2LSB returns a non-zero value if the image data is being returned with bit 0 as the most significant bit.

TIFFGetVersion returns an ASCII string that has a version stamp for the TIFF library software.

DIAGNOSTICS

None.

SEE ALSO

libtiff(3TIFF), TIFFOpen(3TIFF), TIFFFdOpen(3TIFF)


TIFFcodec.3tiff.html000064400000007164147561453440010217 0ustar00 CODEC

CODEC

NAME
SYNOPSIS
DESCRIPTION
DIAGNOSTICS
SEE ALSO

NAME

TIFFFindCODEC, TIFFRegisterCODEC, TIFFUnRegisterCODEC, TIFFIsCODECConfigured − codec-related utility routines

SYNOPSIS

#include <tiffio.h>

const TIFFCodec* TIFFFindCODEC(uint16 scheme);
TIFFCodec* TIFFRegisterCODEC(uint16
scheme, const char *method, TIFFInitMethod init);
void TIFFUnRegisterCODEC(TIFFCodec *
codec);
int TIFFIsCODECConfigured(uint16
scheme);

DESCRIPTION

libtiff supports a variety of compression schemes implemented by software codecs. Each codec adheres to a modular interface that provides for the decoding and encoding of image data; as well as some other methods for initialization, setup, cleanup, and the control of default strip and tile sizes. Codecs are identified by the associated value of the TIFF Compression tag; e.g. 5 for LZW compression.

The TIFFRegisterCODEC routine can be used to augment or override the set of codecs available to an application. If the specified scheme already has a registered codec then it is overridden and any images with data encoded with this compression scheme will be decoded using the supplied coded.

TIFFIsCODECConfigured returns 1 if the codec is configured and working. Otherwise 0 will be returned.

DIAGNOSTICS

No space to register compression scheme %s. TIFFRegisterCODEC was unable to allocate memory for the data structures needed to register a codec.

Cannot remove compression scheme %s; not registered. TIFFUnRegisterCODEC did not locate the specified codec in the table of registered compression schemes.

SEE ALSO

libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


fax2tiff.1.html000064400000034571147561453440007331 0ustar00 FAX2TIFF

FAX2TIFF

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
DIAGNOSTICS
BUGS
SEE ALSO

NAME

fax2tiff − create a TIFF Class F fax file from raw fax data

SYNOPSIS

fax2tiff [ options ] [ −o output.tif ] input.raw

DESCRIPTION

Fax2tiff creates a TIFF file containing CCITT Group 3 or Group 4 encoded data from one or more files containing ‘‘raw’’ Group 3 or Group 4 encoded data (typically obtained directly from a fax modem). By default, each row of data in the resultant TIFF file is 1-dimensionally encoded and padded or truncated to 1728 pixels, as needed. The resultant image is a set of low resolution (98 lines/inch) or medium resolution (196 lines/inch) pages, each of which is a single strip of data. The generated file conforms to the TIFF Class F ( FAX ) specification for storing facsimile data. This means, in particular, that each page of the data does not include the trailing return to control ( RTC ) code; as required for transmission by the CCITT Group 3 specifications. The old, ‘‘classic’’, format is created if the −c option is used. (The Class F format can also be requested with the −f option.)

The default name of the output image is fax.tif; this can be changed with the −o option. Each input file is assumed to be a separate page of facsimile data from the same document. The order in which input files are specified on the command line is the order in which the resultant pages appear in the output file.

OPTIONS

Options that affect the interpretation of input data are:

−3

Assume input data is CCITT Group 3 encoded (default).

−4

Assume input data is CCITT Group 4 encoded.

−U

Assume input data is uncompressed (Group 3 or Group 4).

−1

Assume input data is encoded with the 1-dimensional version of the CCITT Group 3 Huffman encoding algorithm (default).

−2

Assume input data is 2-dimensional version of the CCITT Group 3 Huffman encoding algorithm.

−P

Assume input data is not EOL-aligned (default). This option has effect with Group 3 encoded input only.

−A

Assume input data is EOL-aligned. This option has effect with Group 3 encoded input only.

−M

Treat input data as having bits filled from most significant bit ( MSB ) to most least bit ( LSB ).

−L

Treat input data as having bits filled from least significant bit ( LSB ) to most significant bit ( MSB ) (default).

−B

Assume input data was encoded with black as 0 and white as 1.

−W

Assume input data was encoded with black as 1 and white as 0 (default).

−R

Specify the vertical resolution, in lines/inch, of the input images. By default input are assumed to have a vertical resolution of 196 lines/inch. If images are low resolution facsimile, a value of 98 lines/inch should be specified.

−X

Specify the width, in pixels, of the input images. By default input are assumed to have a width of 1728 pixels.

Options that affect the output file format are:

−o

Specify the name of the output file.

−7

Force output to be compressed with the CCITT Group 3 Huffman encoding algorithm (default).

−8

Force output to be compressed with the CCITT Group 4 Huffman encoding.

−u

Force output to be uncompressed (Group 3 or Group 4).

−5

Force output to be encoded with the 1-dimensional version of the CCITT Group 3 Huffman encoding algorithm.

−6

Force output to be encoded with the 2-dimensional version of the CCITT Group 3 Huffman encoding algorithm (default).

−a

Force the last bit of each End Of Line ( EOL ) code to land on a byte boundary (default). This ‘‘zero padding’’ will be reflected in the contents of the Group3Options tag of the resultant TIFF file. This option has effect with Group 3 encoded output only.

−p

Do not EOL-align output. This option has effect with Group 3 encoded output only.

−c

Generate "classic" Group 3 TIFF format.

−f

Generate TIFF Class F (TIFF/F) format (default).

−m

Force output data to have bits filled from most significant bit ( MSB ) to most least bit ( LSB ).

−l

Force output data to have bits filled from least significant bit ( LSB ) to most significant bit ( MSB ) (default).

−r

Specify the number of rows (scanlines) in each strip of data written to the output file. By default (or when value 0 is specified), tiffcp attempts to set the rows/strip that no more than 8 kilobytes of data appear in a strip (with except of G3/G4 compression schemes). If you specify special value −1 it will results in infinite number of the rows per strip. The entire image will be the one strip in that case. This is default in case of G3/G4 output compression schemes.

−s

Stretch the input image vertically by writing each input row of data twice to the output file.

−v

Force fax2tiff to print the number of rows of data it retrieved from the input file.

−z

Force output to be compressed with the LZW encoding.

DIAGNOSTICS

The following warnings and errors come from the decoding routines in the library.

Warning, %s: Premature EOL at scanline %d (x %d).\n. The input data had a row that was shorter than the expected width. The row is padded with white.

%s: Premature EOF at scanline %d (x %d).\n. The decoder ran out of data in the middle of a scanline. The resultant row is padded with white.

%s: Bad code word at row %d, x %d\n. An invalid Group 3 code was encountered while decoding the input file. The row number and horizontal position is given. The remainder of the input row is discarded, while the corresponding output row is padded with white.

%s: Bad 2D code word at scanline %d.\n. An invalid Group 4 or 2D Group 3 code was encountered while decoding the input file. The row number and horizontal position is given. The remainder of the input row is discarded, while the corresponding output row is padded with white.

BUGS

Input data are assumed to have a a ‘‘top left’’ orientation; it should be possible to override this assumption from the command line.

SEE ALSO

CCITT Recommendation T.4 (Standardization of Group 3 Facsimile Apparatus for Document Transmission).

The Spirit of TIFF Class F, an appendix to the TIFF 5.0 specification prepared by Cygnet Technologies.

tiffinfo(1), tiffdither(1), tiffgt(1), libtiff(3)

Libtiff library home page: http://www.remotesensing.org/libtiff/


ras2tiff.1.html000064400000007730147561453440007335 0ustar00 RAS2TIFF

RAS2TIFF

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
BUGS
SEE ALSO

NAME

ras2tiff − create a TIFF file from a Sun rasterfile

SYNOPSIS

ras2tiff [ options ] input.ras output.tif

DESCRIPTION

ras2tiff converts a file in the Sun rasterfile format to TIFF. By default, the TIFF image is created with data samples packed (PlanarConfiguration=1), compressed with the Lempel-Ziv & Welch algorithm (Compression=5), and with each strip no more than 8 kilobytes. These characteristics can overridden, or explicitly specified with the options described below.

Any colormap information in the rasterfile is carried over to the TIFF file by including a Colormap tag in the output file. If the rasterfile has a colormap, the PhotometricInterpretation tag is set to 3 (palette); otherwise it is set to 2 (RGB) if the depth is 24 or 1 (min-is-black) if the depth is not 24.

OPTIONS

−c

Specify a compression scheme to use when writing image data: −c none for no compression, −c packbits for the PackBits compression algorithm, −c jpeg for the baseline JPEG compression algorithm, −c zip for the Deflate compression algorithm, and −c lzw for Lempel-Ziv & Welch (the default).

−r

Write data with a specified number of rows per strip; by default the number of rows/strip is selected so that each strip is approximately 8 kilobytes.

BUGS

Does not handle all possible rasterfiles. In particular, ras2tiff does not handle run-length encoded images.

SEE ALSO

pal2rgb(1), tiffinfo(1), tiffcp(1), tiffmedian(1), libtiff(3)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFWriteRawStrip.3tiff.html000064400000010637147561453440011727 0ustar00 TIFFWriteRawstrip

TIFFWriteRawstrip

NAME
SYNOPSIS
DESCRIPTION
NOTES
RETURN VALUES
DIAGNOSTICS
SEE ALSO

NAME

TIFFWriteRawStrip − write a strip of raw data to an open TIFF file

SYNOPSIS

#include <tiffio.h>

tsize_t TIFFWriteRawStrip(TIFF *tif, tstrip_t strip, tdata_t buf, tsize_t size)

DESCRIPTION

Append size bytes of raw data to the specified strip.

NOTES

The strip number must be valid according to the current settings of the ImageLength and RowsPerStrip tags. An image may be dynamically grown by increasing the value of ImageLength prior to each call to TIFFWriteRawStrip.

RETURN VALUES

−1 is returned if an error occurred. Otherwise, the value of size is returned.

DIAGNOSTICS

All error messages are directed to the TIFFError(3TIFF) routine.

%s: File not open for writing. The file was opened for reading, not writing.

Can not write scanlines to a tiled image. The image is assumed to be organized in tiles because the TileWidth and TileLength tags have been set with TIFFSetField(3TIFF).

%s: Must set "ImageWidth" before writing data. The image’s width has not be set before the first write. See TIFFSetField(3TIFF) for information on how to do this.

%s: Must set "PlanarConfiguration" before writing data. The organization of data has not be defined before the first write. See TIFFSetField(3TIFF) for information on how to do this.

%s: No space for strip arrays". There was not enough space for the arrays that hold strip offsets and byte counts.

%s: Strip %d out of range, max %d. The specified strip is not a valid strip according to the currently specified image dimensions.

SEE ALSO

TIFFOpen(3TIFF), TIFFWriteEncodedStrip(3TIFF), TIFFWriteScanline(3TIFF), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


bmp2tiff.1.html000064400000006762147561453440007332 0ustar00 BMP2TIFF

BMP2TIFF

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
SEE ALSO

NAME

bmp2tiff − create a TIFF file from a Microsoft Windows Device Independent Bitmap image file

SYNOPSIS

bmp2tiff [ options ] input.bmp output.tiff

DESCRIPTION

bmp2tiff converts a Microsoft Windows Device Independent Bitmap image file to TIFF. By default, the TIFF image is created with data samples packed (PlanarConfiguration=1), compressed with the PackBits algorithm (Compression=32773), and with each strip no more than 8 kilobytes. These characteristics can overridden, or explicitly specified with the options described below.

OPTIONS

−c

Specify a compression scheme to use when writing image data: −c none for no compression, -c packbits for the PackBits compression algorithm (the default), -c jpeg for the baseline JPEG compression algorithm, -c zip for the Deflate compression algorithm, and −c lzw for Lempel-Ziv & Welch.

−r <number>

Write data with a specified number of rows per strip; by default the number of rows/strip is selected so that each strip is approximately 8 kilobytes.

SEE ALSO

gif2tiff(1), pal2rgb(1), ppm2tiff(1), raw2tiff(1), ras2tiff(1), sgi2tiff(1), libtiff(3TIFF)


TIFFWriteEncodedStrip.3tiff.html000064400000011745147561453440012540 0ustar00 TIFFWriteEncodedStrip

TIFFWriteEncodedStrip

NAME
SYNOPSIS
DESCRIPTION
NOTES
RETURN VALUES
DIAGNOSTICS
SEE ALSO

NAME

TIFFWritedEncodedStrip − compress and write a strip of data to an open TIFF file

SYNOPSIS

#include <tiffio.h>

tsize_t TIFFWriteEncodedStrip(TIFF *tif, tstrip_t strip, tdata_t buf, tsize_t size)

DESCRIPTION

Compress size bytes of raw data from buf and write the result to the specified strip; replacing any previously written data. Note that the value of strip is a ‘‘raw strip number.’’ That is, the caller must take into account whether or not the data are organized in separate planes (PlanarConfiguration=2).

NOTES

The library writes encoded data using the native machine byte order. Correctly implemented TIFF readers are expected to do any necessary byte-swapping to correctly process image data with BitsPerSample greater than 8.

The strip number must be valid according to the current settings of the ImageLength and RowsPerStrip tags. An image may be dynamically grown by increasing the value of ImageLength prior to each call to TIFFWriteEncodedStrip.

RETURN VALUES

−1 is returned if an error was encountered. Otherwise, the value of size is returned.

DIAGNOSTICS

All error messages are directed to the TIFFError(3TIFF) routine.

%s: File not open for writing. The file was opened for reading, not writing.

Can not write scanlines to a tiled image. The image is assumed to be organized in tiles because the TileWidth and TileLength tags have been set with TIFFSetField(3TIFF).

%s: Must set "ImageWidth" before writing data. The image’s width has not be set before the first write. See TIFFSetField(3TIFF) for information on how to do this.

%s: Must set "PlanarConfiguration" before writing data. The organization of data has not be defined before the first write. See TIFFSetField(3TIFF) for information on how to do this.

%s: No space for strip arrays". There was not enough space for the arrays that hold strip offsets and byte counts.

SEE ALSO

TIFFOpen(3TIFF), TIFFWriteScanline(3TIFF), TIFFWriteRawStrip(3TIFF), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFRGBAImage.3tiff.html000064400000030026147561453440010611 0ustar00 TIFFRGBAImage

TIFFRGBAImage

NAME
SYNOPSIS
DESCRIPTION
ALTERNATE RASTER FORMATS
SIMULTANEOUS RASTER STORE AND DISPLAY
SUPPORTING ADDITIONAL TIFF FORMATS
NOTES
RETURN VALUES
DIAGNOSTICS
SEE ALSO

NAME

TIFFRGBAImageOK, TIFFRGBAImageBegin, TIFFRGBAImageGet, TIFFRGBAImageEnd − read and decode an image into a raster

SYNOPSIS

#include <tiffio.h>

typedef unsigned char TIFFRGBValue; typedef struct _TIFFRGBAImage TIFFRGBAImage;

int TIFFRGBAImageOK(TIFF *tif, char emsg[1024])
int TIFFRGBAImageBegin(TIFFRGBAImage *
img, TIFF* tif, int stopOnError, char emsg[1024])
int TIFFRGBAImageGet(TIFFRGBAImage *
img, uint32* raster, uint32 width , uint32 height)
void TIFFRGBAImageEnd(TIFFRGBAImage *
img)

DESCRIPTION

The routines described here provide a high-level interface through which TIFF images may be read into memory. Images may be strip- or tile-based and have a variety of different characteristics: bits/sample, samples/pixel, photometric, etc. Decoding state is encapsulated in a TIFFRGBAImage structure making it possible to capture state for multiple images and quickly switch between them. The target raster format can be customized to a particular application’s needs by installing custom routines that manipulate image data according to application requirements.

The default usage for these routines is: check if an image can be processed using TIFFRGBAImageOK, construct a decoder state block using TIFFRGBAImageBegin, read and decode an image into a target raster using TIFFRGBAImageGet, and then release resources using TIFFRGBAImageEnd. TIFFRGBAImageGet can be called multiple times to decode an image using different state parameters. If multiple images are to be displayed and there is not enough space for each of the decoded rasters, multiple state blocks can be managed and then calls can be made to TIFFRGBAImageGet as needed to display an image.

The generated raster is assumed to be an array of width times height 32-bit entries, where width must be less than or equal to the width of the image (height may be any non-zero size). If the raster dimensions are smaller than the image, the image data is cropped to the raster bounds. If the raster height is greater than that of the image, then the image data are placed in the lower part of the raster. (Note that the raster is assume to be organized such that the pixel at location (x,y) is raster[y*width+x]; with the raster origin in the lower-left hand corner.)

Raster pixels are 8-bit packed red, green, blue, alpha samples. The macros TIFFGetR, TIFFGetG, TIFFGetB, and TIFFGetA should be used to access individual samples. Images without Associated Alpha matting information have a constant Alpha of 1.0 (255).

TIFFRGBAImageGet converts non-8-bit images by scaling sample values. Palette, grayscale, bilevel, CMYK , and YCbCr images are converted to RGB transparently. Raster pixels are returned uncorrected by any colorimetry information present in the directory.

The parameter stopOnError specifies how to act if an error is encountered while reading the image. If stopOnError is non-zero, then an error will terminate the operation; otherwise TIFFRGBAImageGet will continue processing data until all the possible data in the image have been requested.

ALTERNATE RASTER FORMATS

To use the core support for reading and processing TIFF images, but write the resulting raster data in a different format one need only override the ‘‘put methods’’ used to store raster data. These methods are are defined in the TIFFRGBAImage structure and initially setup by TIFFRGBAImageBegin to point to routines that pack raster data in the default ABGR pixel format. Two different routines are used according to the physical organization of the image data in the file: PlanarConfiguration=1 (packed samples), and PlanarConfiguration=2 (separated samples). Note that this mechanism can be used to transform the data before storing it in the raster. For example one can convert data to colormap indices for display on a colormap display.

SIMULTANEOUS RASTER STORE AND DISPLAY

It is simple to display an image as it is being read into memory by overriding the put methods as described above for supporting alternate raster formats. Simply keep a reference to the default put methods setup by TIFFRGBAImageBegin and then invoke them before or after each display operation. For example, the tiffgt(1) utility uses the following put method to update the display as the raster is being filled:

static void
putContigAndDraw(TIFFRGBAImage* img, uint32* raster,
    uint32 x, uint32 y, uint32 w, uint32 h,
    int32 fromskew, int32 toskew,
    unsigned char* cp)
{
    (*putContig)(img, raster, x, y, w, h, fromskew, toskew, cp);
    if (x+w == width) {
     w = width;
     if (img->orientation == ORIENTATION_TOPLEFT)
         lrectwrite(0, y-(h-1), w-1, y, raster-x-(h-1)*w);
     else
         lrectwrite(0, y, w-1, y+h-1, raster);
    }
}

(the original routine provided by the library is saved in the variable putContig.)

SUPPORTING ADDITIONAL TIFF FORMATS

The TIFFRGBAImage routines support the most commonly encountered flavors of TIFF. It is possible to extend this support by overriding the ‘‘get method’’ invoked by TIFFRGBAImageGet to read TIFF image data. Details of doing this are a bit involved, it is best to make a copy of an existing get method and modify it to suit the needs of an application.

NOTES

Samples must be either 1, 2, 4, 8, or 16 bits. Colorimetric samples/pixel must be either 1, 3, or 4 (i.e. SamplesPerPixel minus ExtraSamples).

Palette image colormaps that appear to be incorrectly written as 8-bit values are automatically scaled to 16-bits.

RETURN VALUES

All routines return 1 if the operation was successful. Otherwise, 0 is returned if an error was encountered and stopOnError is zero.

DIAGNOSTICS

All error messages are directed to the TIFFError(3TIFF) routine.

Sorry, can not handle %d-bit pictures. The image had BitsPerSample other than 1, 2, 4, 8, or 16.

Sorry, can not handle %d-channel images. The image had SamplesPerPixel other than 1, 3, or 4.

Missing needed "PhotometricInterpretation" tag. The image did not have a tag that describes how to display the data.

No "PhotometricInterpretation" tag, assuming RGB. The image was missing a tag that describes how to display it, but because it has 3 or 4 samples/pixel, it is assumed to be RGB.

No "PhotometricInterpretation" tag, assuming min-is-black. The image was missing a tag that describes how to display it, but because it has 1 sample/pixel, it is assumed to be a grayscale or bilevel image.

No space for photometric conversion table. There was insufficient memory for a table used to convert image samples to 8-bit RGB.

Missing required "Colormap" tag. A Palette image did not have a required Colormap tag.

No space for tile buffer. There was insufficient memory to allocate an i/o buffer.

No space for strip buffer. There was insufficient memory to allocate an i/o buffer.

Can not handle format. The image has a format (combination of BitsPerSample, SamplesPerPixel, and PhotometricInterpretation) that can not be handled.

No space for B&W mapping table. There was insufficient memory to allocate a table used to map grayscale data to RGB.

No space for Palette mapping table. There was insufficient memory to allocate a table used to map data to 8-bit RGB.

SEE ALSO

TIFFOpen(3TIFF), TIFFReadRGBAImage(3TIFF), TIFFReadRGBAImageOriented(3TIFF), TIFFReadRGBAStrip(3TIFF), TIFFReadRGBATile(3TIFF), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFFieldTag.3tiff.html000064400000004311147561453440010610 0ustar00 TIFFFieldTag

TIFFFieldTag

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUES
SEE ALSO

NAME

TIFFFieldTag − Get TIFF field tag value from field information

SYNOPSIS

#include <tiffio.h>

uint32 TIFFFieldTag(const TIFFField* fip)

DESCRIPTION

TIFFFieldTag returns the numeric tag value for a TIFF field. This can be compared to various constants exported by the libtiff header files, such as TIFFTAG_IMAGEWIDTH.

fip is a field information pointer previously returned by TIFFFindField, TIFFFieldWithTag, or TIFFFieldWithName.

RETURN VALUES

TIFFFieldTag returns an integer tag value.

SEE ALSO

libtiff(3TIFF),

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFWriteScanline.3tiff.html000064400000016333147561453440011707 0ustar00 TIFFWriteScanline

TIFFWriteScanline

NAME
SYNOPSIS
DESCRIPTION
NOTES
RETURN VALUES
DIAGNOSTICS
BUGS
SEE ALSO

NAME

TIFFWriteScanline − write a scanline to an open TIFF file

SYNOPSIS

#include <tiffio.h>

int TIFFWriteScanline(TIFF *tif, tdata_t buf, uint32 row, tsample_t sample)

DESCRIPTION

Write data to a file at the specified row. The sample parameter is used only if data are organized in separate planes (PlanarConfiguration=2). The data are assumed to be uncompressed and in the native bit- and byte-order of the host machine. The data written to the file is compressed according to the compression scheme of the current TIFF directory (see further below). If the current scanline is past the end of the current subfile, the ImageLength field is automatically increased to include the scanline (except for PlanarConfiguration=2, where the ImageLength cannot be changed once the first data are written). If the ImageLength is increased, the StripOffsets and StripByteCounts fields are similarly enlarged to reflect data written past the previous end of image.

NOTES

The library writes encoded data using the native machine byte order. Correctly implemented TIFF readers are expected to do any necessary byte-swapping to correctly process image data with BitsPerSample greater than 8. The library attempts to hide bit-ordering differences between the image and the native machine by converting data from the native machine order.

In C++ the sample parameter defaults to 0.

Once data are written to a file for the current directory, the values of certain tags may not be altered; see TIFFSetField(3TIFF) for more information.

It is not possible to write scanlines to a file that uses a tiled organization. The routine TIFFIsTiled can be used to determine if the file is organized as tiles or strips.

RETURN VALUES

TIFFWriteScanline returns −1 if it immediately detects an error and 1 for a successful write.

DIAGNOSTICS

All error messages are directed to the TIFFError(3TIFF) routine.

%s: File not open for writing . The file was opened for reading, not writing.

Can not write scanlines to a tiled image. An attempt was made to write a scanline to a tiled image. The image is assumed to be organized in tiles because the TileWidth and TileLength tags have been set with TIFFSetField(3TIFF).

Compression algorithm does not support random access. Data was written in a non-sequential order to a file that uses a compression algorithm and that has RowsPerStrip greater than one. That is, data in the image is to be stored in a compressed form, and with multiple rows packed into a strip. In this case, the library does not support random access to the data. The data should either be written as entire strips, sequentially by rows, or the value of RowsPerStrip should be set to one.

%s: Must set "ImageWidth" before writing data. The image’s width has not be set before the first write. See TIFFSetField(3TIFF) for information on how to do this.

%s: Must set "PlanarConfiguration" before writing data. The organization of data has not be defined before the first write. See TIFFSetField(3TIFF) for information on how to do this.

Can not change "ImageLength" when using separate planes. Separate image planes are being used (PlanarConfiguration=2), but the number of rows has not been specified before the first write. The library supports the dynamic growth of an image only when data are organized in a contiguous manner (PlanarConfiguration=1).

%d: Sample out of range, max %d. The sample parameter was greater than the value of the SamplesPerPixel tag.

%s: No space for strip arrays . There was not enough space for the arrays that hold strip offsets and byte counts.

BUGS

Writing subsampled YCbCR data does not work correctly because, for PlanarConfiguration=2 the size of a scanline is not calculated on a per-sample basis, and for PlanarConfiguration=1 the library does not pack the block-interleaved samples.

SEE ALSO

TIFFOpen(3TIFF), TIFFWriteEncodedStrip(3TIFF), TIFFWriteRawStrip(3TIFF), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFReadRGBAImage.3tiff.html000064400000024362147561453440011413 0ustar00 TIFFReadRGBAImage

TIFFReadRGBAImage

NAME
SYNOPSIS
DESCRIPTION
NOTES
RETURN VALUES
DIAGNOSTICS
SEE ALSO

NAME

TIFFReadRGBAImage, TIFFReadRGBAImageOriented − read and decode an image into a fixed-format raster

SYNOPSIS

#include <tiffio.h>

#define TIFFGetR(abgr) ((abgr) & 0xff)
#define TIFFGetG(abgr) (((abgr) >> 8) & 0xff)
#define TIFFGetB(abgr) (((abgr) >> 16) & 0xff)
#define TIFFGetA(abgr) (((abgr) >> 24) & 0xff)

int TIFFReadRGBAImage(TIFF *tif, uint32 width, uint32 height, uint32 *raster, int stopOnError)
int TIFFReadRGBAImageOriented(TIFF *
tif, uint32 width, uint32 height, uint32 *raster, int orientation, int stopOnError)

DESCRIPTION

TIFFReadRGBAImage reads a strip- or tile-based image into memory, storing the result in the user supplied raster. The raster is assumed to be an array of width times height 32-bit entries, where width must be less than or equal to the width of the image (height may be any non-zero size). If the raster dimensions are smaller than the image, the image data is cropped to the raster bounds. If the raster height is greater than that of the image, then the image data are placed in the lower part of the raster. (Note that the raster is assume to be organized such that the pixel at location (x,y) is raster[y*width+x]; with the raster origin in the lower-left hand corner.)

TIFFReadRGBAImageOriented works like TIFFReadRGBAImage with except of that user can specify the raster origin position with the orientation parameter. Four orientations supported:

ORIENTATION_TOPLEFT

origin in top-left corner,

ORIENTATION_TOPRIGHT

origin in top-right corner,

ORIENTATION_BOTLEFT

origin in bottom-left corner and

ORIENTATION_BOTRIGHT

origin in bottom-right corner.

If you choose ORIENTATION_BOTLEFT result will be the same as returned by the TIFFReadRGBAImage.

Raster pixels are 8-bit packed red, green, blue, alpha samples. The macros TIFFGetR, TIFFGetG, TIFFGetB, and TIFFGetA should be used to access individual samples. Images without Associated Alpha matting information have a constant Alpha of 1.0 (255).

TIFFReadRGBAImage converts non-8-bit images by scaling sample values. Palette, grayscale, bilevel, CMYK , and YCbCr images are converted to RGB transparently. Raster pixels are returned uncorrected by any colorimetry information present in the directory.

The paramater stopOnError specifies how to act if an error is encountered while reading the image. If stopOnError is non-zero, then an error will terminate the operation; otherwise TIFFReadRGBAImage will continue processing data until all the possible data in the image have been requested.

NOTES

In C++ the stopOnError parameter defaults to 0.

Samples must be either 1, 2, 4, 8, or 16 bits. Colorimetric samples/pixel must be either 1, 3, or 4 (i.e. SamplesPerPixel minus ExtraSamples).

Palettte image colormaps that appear to be incorrectly written as 8-bit values are automatically scaled to 16-bits.

TIFFReadRGBAImage is just a wrapper around the more general TIFFRGBAImage(3TIFF) facilities.

RETURN VALUES

1 is returned if the image was successfully read and converted. Otherwise, 0 is returned if an error was encountered and stopOnError is zero.

DIAGNOSTICS

All error messages are directed to the TIFFError(3TIFF) routine.

Sorry, can not handle %d-bit pictures. The image had BitsPerSample other than 1, 2, 4, 8, or 16.

Sorry, can not handle %d-channel images. The image had SamplesPerPixel other than 1, 3, or 4.

Missing needed "PhotometricInterpretation" tag. The image did not have a tag that describes how to display the data.

No "PhotometricInterpretation" tag, assuming RGB. The image was missing a tag that describes how to display it, but because it has 3 or 4 samples/pixel, it is assumed to be RGB.

No "PhotometricInterpretation" tag, assuming min-is-black. The image was missing a tag that describes how to display it, but because it has 1 sample/pixel, it is assumed to be a grayscale or bilevel image.

No space for photometric conversion table. There was insufficient memory for a table used to convert image samples to 8-bit RGB.

Missing required "Colormap" tag. A Palette image did not have a required Colormap tag.

No space for tile buffer. There was insufficient memory to allocate an i/o buffer.

No space for strip buffer. There was insufficient memory to allocate an i/o buffer.

Can not handle format. The image has a format (combination of BitsPerSample, SamplesPerPixel, and PhotometricInterpretation) that TIFFReadRGBAImage can not handle.

No space for B&W mapping table. There was insufficient memory to allocate a table used to map grayscale data to RGB.

No space for Palette mapping table. There was insufficient memory to allocate a table used to map data to 8-bit RGB.

SEE ALSO

TIFFOpen(3TIFF), TIFFRGBAImage(3TIFF), TIFFReadRGBAStrip(3TIFF), TIFFReadRGBATile(3TIFF), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


ppm2tiff.1.html000064400000007613147561453440007344 0ustar00 PPM2TIFF

PPM2TIFF

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
SEE ALSO

NAME

ppm2tiff − create a TIFF file from PPM, PGM and PBM image files

SYNOPSIS

ppm2tiff [ options ] [ input.ppm ] output.tif

DESCRIPTION

ppm2tiff converts a file in the PPM, PGM and PBM image formats to TIFF. By default, the TIFF image is created with data samples packed (PlanarConfiguration=1), compressed with the Packbits algorithm (Compression=32773), and with each strip no more than 8 kilobytes. These characteristics can be overridden, or explicitly specified with the options described below

If the PPM file contains greyscale data, then the PhotometricInterpretation tag is set to 1 (min-is-black), otherwise it is set to 2 (RGB).

If no PPM file is specified on the command line, ppm2tiff will read from the standard input.

OPTIONS

−c

Specify a compression scheme to use when writing image data: none for no compression, packbits for PackBits compression (will be used by default), lzw for Lempel-Ziv & Welch compression, jpeg for baseline JPEG compression, zip for Deflate compression, g3 for CCITT Group 3 (T.4) compression, and g4 for CCITT Group 4 (T.6) compression.

−r

Write data with a specified number of rows per strip; by default the number of rows/strip is selected so that each strip is approximately 8 kilobytes.

−R

Mark the resultant image to have the specified X and Y resolution (in dots/inch).

SEE ALSO

tiffinfo(1), tiffcp(1), tiffmedian(1), libtiff(3)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFstrip.3tiff.html000064400000010404147561453440010272 0ustar00 TIFFSTRIP

TIFFSTRIP

NAME
SYNOPSIS
DESCRIPTION
DIAGNOSTICS
SEE ALSO

NAME

TIFFDefaultStripSize, TIFFStripSize, TIFFVStripSize, TIFFRawStripSize, TIFFComputeStrip, TIFFNumberOfStrips − strip-related utility routines

SYNOPSIS

#include <tiffio.h>

uint32 TIFFDefaultStripSize(TIFF *tif, uint32 estimate)
tsize_t TIFFStripSize(TIFF *
tif)
tsize_t TIFFVStripSize(TIFF *
tif, uint32 nrows)
tsize_t TIFFRawStripSize(TIFF *
tif, tstrip_t strip)
tstrip_t TIFFComputeStrip(TIFF *
tif, uint32 row, tsample_t sample)
tstrip_t TIFFNumberOfStrips(TIFF *
tif)

DESCRIPTION

TIFFDefaultStripSize returns the number of rows for a reasonable-sized strip according to the current settings of the ImageWidth, BitsPerSample, SamplesPerPixel, tags and any compression-specific requirements. If the estimate parameter, if non-zero, then it is taken as an estimate of the desired strip size and adjusted according to any compression-specific requirements. The value returned by this function is typically used to define the RowsPerStrip tag. In lieu of any unusual requirements TIFFDefaultStripSize tries to create strips that have approximately 8 kilobytes of uncompressed data.

TIFFStripSize returns the equivalent size for a strip of data as it would be returned in a call to TIFFReadEncodedStrip or as it would be expected in a call to TIFFWriteEncodedStrip.

TIFFVStripSize returns the number of bytes in a strip with nrows rows of data.

TIFFRawStripSize returns the number of bytes in a raw strip (i.e. not decoded).

TIFFComputeStrip returns the strip that contains the specified coordinates. A valid strip is always returned; out-of-range coordinate values are clamped to the bounds of the image. The row parameter is always used in calculating a strip. The sample parameter is used only if data are organized in separate planes (PlanarConfiguration=2).

TIFFNumberOfStrips returns the number of strips in the image.

DIAGNOSTICS

None.

SEE ALSO

TIFFReadEncodedStrip(3TIFF), TIFFReadRawStrip(3TIFF), TIFFWriteEncodedStrip(3TIFF), TIFFWriteRawStrip(3TIFF), libtiff(3TIFF),

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFFlush.3tiff.html000064400000006421147561453440010216 0ustar00 TIFFFlush

TIFFFlush

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUES
DIAGNOSTICS
SEE ALSO

NAME

TIFFFlush, TIFFFlushData − flush pending writes to an open TIFF file

SYNOPSIS

#include <tiffio.h>

int TIFFFlush(TIFF *tif)
int TIFFFlushData(TIFF *
tif)

DESCRIPTION

TIFFFlush causes any pending writes for the specified file (including writes for the current directory) to be done. In normal operation this call is never needed − the library automatically does any flushing required.

TIFFFlushData flushes any pending image data for the specified file to be written out; directory-related data are not flushed. In normal operation this call is never needed − the library automatically does any flushing required.

RETURN VALUES

0 is returned if an error is encountered, otherwise 1 is returned.

DIAGNOSTICS

All error messages are directed to the TIFFError(3TIFF) routine.

SEE ALSO

TIFFOpen(3TIFF), TIFFWriteEncodedStrip(3TIFF), TIFFWriteEncodedTile(3TIFF), TIFFWriteRawStrip(3TIFF), TIFFWriteRawTile(3TIFF), TIFFWriteScanline(3TIFF), TIFFWriteTile(3TIFF) libtiff(3TIFF),

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFmemory.3tiff.html000064400000006761147561453440010454 0ustar00 MEMORY

MEMORY

NAME
SYNOPSIS
DESCRIPTION
DIAGNOSTICS
SEE ALSO

NAME

_TIFFmalloc, _TIFFrealloc, _TIFFfree, _TIFFmemset, _TIFFmemcpy, _TIFFmemcmp, − memory management-related functions for use with TIFF files

SYNOPSIS

#include <tiffio.h>

tdata_t _TIFFmalloc(tsize_t size);
tdata_t _TIFFrealloc(tdata_t
buffer, tsize_t size);
void _TIFFfree(tdata_t
buffer);
void _TIFFmemset(tdata_t
s, int c, tsize_t n);
void _TIFFmemcpy(tdata_t
dest, const tdata_t src, tsize_t n);
int _TIFFmemcmp(const tdata_t
s1, const tdata_t s2, tsize_t n);

DESCRIPTION

These routines are provided for writing portable software that uses libtiff; they hide any memory-management related issues, such as dealing with segmented architectures found on 16-bit machines.

_TIFFmalloc and _TIFFrealloc are used to dynamically allocate and reallocate memory used by libtiff; such as memory passed into the I/O routines. Memory allocated through these interfaces is released back to the system using the _TIFFfree routine.

Memory allocated through one of the above interfaces can be set to a known value using _TIFFmemset, copied to another memory location using _TIFFmemcpy, or compared for equality using _TIFFmemcmp. These routines conform to the equivalent ANSI C routines: memset, memcpy, and memcmp, repsectively.

DIAGNOSTICS

None.

SEE ALSO

malloc(3), memory(3), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFSetDirectory.3tiff.html000064400000007364147561453440011564 0ustar00 TIFFSetDirectory

TIFFSetDirectory

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUES
DIAGNOSTICS
SEE ALSO

NAME

TIFFSetDirectory, TIFFSetSubDirectory − set the current directory for an open TIFF file

SYNOPSIS

#include <tiffio.h>

int TIFFSetDirectory(TIFF *tif, tdir_t dirnum)
int TIFFSetSubDirectory(TIFF *
tif, uint32 diroff)

DESCRIPTION

TIFFSetDirectory changes the current directory and reads its contents with TIFFReadDirectory. The parameter dirnum specifies the subfile/directory as an integer number, with the first directory numbered zero.

TIFFSetSubDirectory acts like TIFFSetDirectory, except the directory is specified as a file offset instead of an index; this is required for accessing subdirectories linked through a SubIFD tag.

RETURN VALUES

On successful return 1 is returned. Otherwise, 0 is returned if dirnum or diroff specifies a non-existent directory, or if an error was encountered while reading the directory’s contents.

DIAGNOSTICS

All error messages are directed to the TIFFError(3TIFF) routine.

%s: Error fetching directory count. An error was encountered while reading the ‘‘directory count’’ field.

%s: Error fetching directory link. An error was encountered while reading the ‘‘link value’’ that points to the next directory in a file.

SEE ALSO

TIFFCurrentDirectory(3TIFF), TIFFOpen(3TIFF), TIFFReadDirectory(3TIFF), TIFFWriteDirectory(3TIFF), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFReadEncodedStrip.3tiff.html000064400000010313147561453440012307 0ustar00 TIFFReadEncodedStrip

TIFFReadEncodedStrip

NAME
SYNOPSIS
DESCRIPTION
NOTES
RETURN VALUES
DIAGNOSTICS
SEE ALSO

NAME

TIFFReadEncodedStrip − read and decode a strip of data from an open TIFF file

SYNOPSIS

#include <tiffio.h>

tsize_t TIFFReadEncodedStrip(TIFF *tif, tstrip_t strip, tdata_t buf, tsize_t size)

DESCRIPTION

Read the specified strip of data and place up to size bytes of decompressed information in the (user supplied) data buffer.

NOTES

The value of strip is a ‘‘raw strip number.’’ That is, the caller must take into account whether or not the data are organized in separate planes (PlanarConfiguration=2). To read a full strip of data the data buffer should typically be at least as large as the number returned by TIFFStripSize(3TIFF). If the -1 passed in size parameter, the whole strip will be read. You should be sure you have enough space allocated for the buffer.

The library attempts to hide bit- and byte-ordering differences between the image and the native machine by converting data to the native machine order. Bit reversal is done if the FillOrder tag is opposite to the native machine bit order. 16- and 32-bit samples are automatically byte-swapped if the file was written with a byte order opposite to the native machine byte order,

RETURN VALUES

The actual number of bytes of data that were placed in buf is returned; TIFFReadEncodedStrip returns −1 if an error was encountered.

DIAGNOSTICS

All error messages are directed to the TIFFError(3TIFF) routine.

SEE ALSO

TIFFOpen(3TIFF), TIFFReadRawStrip(3TIFF), TIFFReadScanline(3TIFF), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFFieldDataType.3tiff.html000064400000004206147561453440011613 0ustar00 TIFFFieldDataType

TIFFFieldDataType

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUES
SEE ALSO

NAME

TIFFFieldDataType − Get TIFF data type from field information

SYNOPSIS

#include <tiffio.h>

TIFFDataType TIFFFieldDataType(const TIFFField* fip)

DESCRIPTION

TIFFFieldDataType returns the data type stored in a TIFF field.

fip is a field information pointer previously returned by TIFFFindField, TIFFFieldWithTag, or TIFFFieldWithName.

RETURN VALUES

TIFFFieldDataType returns a member of the enum type TIFFDataType.

SEE ALSO

libtiff(3TIFF),

Libtiff library home page: http://www.remotesensing.org/libtiff/


tiffsplit.1.html000064400000005557147561453440007626 0ustar00 TIFFSPLIT

TIFFSPLIT

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
BUGS
SEE ALSO

NAME

tiffsplit − split a multi-image TIFF into single-image TIFF files

SYNOPSIS

tiffsplit src.tif [ prefix ]

DESCRIPTION

tiffsplit takes a multi-directory (page) TIFF file and creates one or more single-directory (page) TIFF files from it. The output files are given names created by concatenating a prefix, a lexically ordered suffix in the range [aaa-zzz], the suffix .tif (e.g. xaaa.tif, xaab.tif, xzzz.tif). If a prefix is not specified on the command line, the default prefix of x is used.

OPTIONS

None.

BUGS

Only a select set of ‘‘known tags’’ is copied when splitting.

SEE ALSO

tiffcp(1), tiffinfo(1), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFReadRawTile.3tiff.html000064400000006541147561453440011303 0ustar00 TIFFReadRawTile

TIFFReadRawTile

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUES
DIAGNOSTICS
SEE ALSO

NAME

TIFFReadRawTile − return an undecoded tile of data from an open TIFF file

SYNOPSIS

#include <tiffio.h>

tsize_t TIFFReadRawTile(TIFF *tif, ttile_t tile, tdata_t buf, tsize_t size)

DESCRIPTION

Read the contents of the specified tile into the (user supplied) data buffer. Note that the value of tile is a ‘‘raw tile number.’’ That is, the caller must take into account whether or not the data is organized in separate planes (PlanarConfiguration=2). TIFFComputeTile automatically does this when converting an (x,y,z,sample) coordinate quadruple to a tile number. To read a full tile of data the data buffer should typically be at least as large as the value returned by TIFFTileSize.

RETURN VALUES

The actual number of bytes of data that were placed in buf is returned; TIFFReadEncodedTile returns −1 if an error was encountered.

DIAGNOSTICS

All error messages are directed to the TIFFError(3TIFF) routine.

SEE ALSO

TIFFOpen(3TIFF), TIFFReadEncodedTile(3TIFF), TIFFReadTile(3TIFF), TIFFTileSize(3TIFF), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFOpen.3tiff.html000064400000032604147561453440010040 0ustar00 TIFFOpen

TIFFOpen

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
BYTE ORDER
RETURN VALUES
DIAGNOSTICS
SEE ALSO

NAME

TIFFOpen, TIFFFdOpen, TIFFClientOpen − open a TIFF file for reading or writing

SYNOPSIS

#include <tiffio.h>

TIFF* TIFFOpen(const char *filename, const char *mode)
TIFF* TIFFFdOpen(const int
fd, const char *filename, const char *mode)

typedef tsize_t (*TIFFReadWriteProc)(thandle_t, tdata_t, tsize_t);
typedef toff_t (*TIFFSeekProc)(thandle_t, toff_t, int);
typedef int (*TIFFCloseProc)(thandle_t);
typedef toff_t (*TIFFSizeProc)(thandle_t);
typedef int (*TIFFMapFileProc)(thandle_t, tdata_t*, toff_t*);
typedef void (*TIFFUnmapFileProc)(thandle_t, tdata_t, toff_t);

TIFF* TIFFClientOpen(const char *filename, const char *mode, thandle_t clientdata, TIFFReadWriteProc readproc, TIFFReadWriteProc writeproc, TIFFSeekProc seekproc, TIFFCloseProc closeproc, TIFFSizeProc sizeproc, TIFFMapFileProc mapproc, TIFFUnmapFileProc unmapproc)

DESCRIPTION

TIFFOpen opens a TIFF file whose name is filename and returns a handle to be used in subsequent calls to routines in libtiff. If the open operation fails, then zero is returned. The mode parameter specifies if the file is to be opened for reading (‘‘r’’), writing (‘‘w’’), or appending (‘‘a’’) and, optionally, whether to override certain default aspects of library operation (see below). When a file is opened for appending, existing data will not be touched; instead new data will be written as additional subfiles. If an existing file is opened for writing, all previous data is overwritten.

If a file is opened for reading, the first TIFF directory in the file is automatically read (also see TIFFSetDirectory(3TIFF) for reading directories other than the first). If a file is opened for writing or appending, a default directory is automatically created for writing subsequent data. This directory has all the default values specified in TIFF Revision 6.0: BitsPerSample=1, ThreshHolding=bilevel art scan, FillOrder=1 (most significant bit of each data byte is filled first), Orientation=1 (the 0th row represents the visual top of the image, and the 0th column represents the visual left hand side), SamplesPerPixel=1, RowsPerStrip=infinity, ResolutionUnit=2 (inches), and Compression=1 (no compression). To alter these values, or to define values for additional fields, TIFFSetField(3TIFF) must be used.

TIFFFdOpen is like TIFFOpen except that it opens a TIFF file given an open file descriptor fd. The file’s name and mode must reflect that of the open descriptor. The object associated with the file descriptor must support random access.

TIFFClientOpen is like TIFFOpen except that the caller supplies a collection of functions that the library will use to do UNIX -like I/O operations. The readproc and writeproc are called to read and write data at the current file position. seekproc is called to change the current file position a la lseek(2). closeproc is invoked to release any resources associated with an open file. sizeproc is invoked to obtain the size in bytes of a file. mapproc and unmapproc are called to map and unmap a file’s contents in memory; c.f. mmap(2) and munmap(2). The clientdata parameter is an opaque ‘‘handle’’ passed to the client-specified routines passed as parameters to TIFFClientOpen.

OPTIONS

The open mode parameter can include the following flags in addition to the ‘‘r’’, ‘‘w’’, and ‘‘a’’ flags. Note however that option flags must follow the read-write-append specification.

l

When creating a new file force information be written with Little-Endian byte order (but see below). By default the library will create new files using the native CPU byte order.

b

When creating a new file force information be written with Big-Endian byte order (but see below). By default the library will create new files using the native CPU byte order.

L

Force image data that is read or written to be treated with bits filled from Least Significant Bit ( LSB ) to Most Significant Bit ( MSB ). Note that this is the opposite to the way the library has worked from its inception.

B

Force image data that is read or written to be treated with bits filled from Most Significant Bit ( MSB ) to Least Significant Bit ( LSB ); this is the default.

H

Force image data that is read or written to be treated with bits filled in the same order as the native CPU.

M

Enable the use of memory-mapped files for images opened read-only. If the underlying system does not support memory-mapped files or if the specific image being opened cannot be memory-mapped then the library will fallback to using the normal system interface for reading information. By default the library will attempt to use memory-mapped files.

m

Disable the use of memory-mapped files.

C

Enable the use of ‘‘strip chopping’’ when reading images that are comprised of a single strip or tile of uncompressed data. Strip chopping is a mechanism by which the library will automatically convert the single-strip image to multiple strips, each of which has about 8 Kilobytes of data. This facility can be useful in reducing the amount of memory used to read an image because the library normally reads each strip in its entirety. Strip chopping does however alter the apparent contents of the image because when an image is divided into multiple strips it looks as though the underlying file contains multiple separate strips. Finally, note that default handling of strip chopping is a compile-time configuration parameter. The default behaviour, for backwards compatibility, is to enable strip chopping.

c

Disable the use of strip chopping when reading images.

h

Read TIFF header only, do not load the first image directory. That could be useful in case of the broken first directory. We can open the file and proceed to the other directories.

BYTE ORDER

The TIFF specification (all versions) states that compliant readers must be capable of reading images written in either byte order. Nonetheless some software that claims to support the reading of TIFF images is incapable of reading images in anything but the native CPU byte order on which the software was written. (Especially notorious are applications written to run on Intel-based machines.) By default the library will create new files with the native byte-order of the CPU on which the application is run. This ensures optimal performance and is portable to any application that conforms to the TIFF specification. To force the library to use a specific byte-order when creating a new file the ‘‘b’’ and ‘‘l’’ option flags may be included in the call to open a file; for example, ‘‘wb’’ or ‘‘wl’’.

RETURN VALUES

Upon successful completion TIFFOpen, TIFFFdOpen, and TIFFClientOpen return a TIFF pointer. Otherwise, NULL is returned.

DIAGNOSTICS

All error messages are directed to the TIFFError(3TIFF) routine. Likewise, warning messages are directed to the TIFFWarning(3TIFF) routine.

"%s": Bad mode. The specified mode parameter was not one of ‘‘r’’ (read), ‘‘w’’ (write), or ‘‘a’’ (append).

%s: Cannot open. TIFFOpen() was unable to open the specified filename for read/writing.

Cannot read TIFF header. An error occurred while attempting to read the header information.

Error writing TIFF header. An error occurred while writing the default header information for a new file.

Not a TIFF file, bad magic number %d (0x%x). The magic number in the header was not (hex) 0x4d4d or (hex) 0x4949.

Not a TIFF file, bad version number %d (0x%x). The version field in the header was not 42 (decimal).

Cannot append to file that has opposite byte ordering. A file with a byte ordering opposite to the native byte ordering of the current machine was opened for appending (‘‘a’’). This is a limitation of the library.

SEE ALSO

libtiff(3TIFF), TIFFClose(3TIFF)


tiff2pdf.1.html000064400000043026147561453440007317 0ustar00 TIFF2PDF

TIFF2PDF

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
EXAMPLES
BUGS
SEE ALSO

NAME

tiff2pdf − convert a TIFF image to a PDF document

SYNOPSIS

tiff2pdf [ options ] input.tiff

DESCRIPTION

tiff2pdf opens a TIFF image and writes a PDF document to standard output.

The program converts one TIFF file to one PDF file, including multiple page TIFF files, tiled TIFF files, black and white. grayscale, and color TIFF files that contain data of TIFF photometric interpretations of bilevel, grayscale, RGB, YCbCr, CMYK separation, and ICC L*a*b* as supported by libtiff and PDF.

If you have multiple TIFF files to convert into one PDF file then use tiffcp or other program to concatenate the files into a multiple page TIFF file. If the input TIFF file is of huge dimensions (greater than 10000 pixels height or width) convert the input image to a tiled TIFF if it is not already.

The standard output is standard output. Set the output file name with the −o output.pdf option.

All black and white files are compressed into a single strip CCITT G4 Fax compressed PDF, unless tiled, where tiled black and white images are compressed into tiled CCITT G4 Fax compressed PDF, libtiff CCITT support is assumed.

Color and grayscale data can be compressed using either JPEG compression, ITU-T T.81, or Zip/Deflate LZ77 compression. Set the compression type using the −j or −z options. JPEG compression support requires that libtiff be configured with JPEG support, and Zip/Deflate compression support requires that libtiff be configured with Zip support, in tiffconf.h. Use only one or the other of −j and −z.

If the input TIFF contains single strip CCITT G4 Fax compressed information, then that is written to the PDF file without transcoding, unless the options of no compression and no passthrough are set, −d and −n.

If the input TIFF contains JPEG or single strip Zip/Deflate compressed information, and they are configured, then that is written to the PDF file without transcoding, unless the options of no compression and no passthrough are set.

The default page size upon which the TIFF image is placed is determined by the resolution and extent of the image data. Default values for the TIFF image resolution can be set using the −x and −y options. The page size can be set using the −p option for paper size, or −w and −l for paper width and length, then each page of the TIFF image is centered on its page. The distance unit for default resolution and page width and length can be set by the −u option, the default unit is inch.

Various items of the output document information can be set with the −e, −c, −a, −t, −s, and −k options. Setting the argument of the option to "" for these tags causes the relevant document information field to be not written. Some of the document information values otherwise get their information from the input TIFF image, the software, author, document name, and image description.

The Portable Document Format (PDF) specification is copyrighted by Adobe Systems, Incorporated.

OPTIONS

−o output-file

Set the output to go to file. output-file

−j

Compress with JPEG (requires libjpeg configured with libtiff).

−z

Compress with Zip/Deflate (requires zlib configured with libtiff).

−q quality

Set the compression quality, 1-100 for JPEG.

−n

Do not allow data to be converted without uncompressing, no compressed data passthrough.

−b

Set PDF ‘‘Interpolate’’ user preference.

−d

Do not compress (decompress).

−i

Invert colors.

−p paper-size

Set paper size, e.g., letter, legal, A4.

−u [i|m]

Set distance unit, i for inch, m for centimeter.

−w width

Set width in units.

−l length

Set length in units.

−x xres

Set x/width resolution default.

−y yres

Set y/length resolution default.

−r [d|o]

Set d for resolution default for images without resolution, o for resolution override for all images.

−f

Set PDF ‘‘Fit Window’’ user preference.

−e YYYYMMDDHHMMSS

Set document information date, overrides image or current date/time default, YYYYMMDDHHMMSS.

−c creator

Set document information creator, overrides image software default.

−a author

Set document information author, overrides image artist default.

−t title

Set document information title, overrides image document name default.

−s subject

Set document information subject, overrides image image description default.

−k keywords

Set document information keywords.

−h

List usage reminder to stderr and exit.

EXAMPLES

The following example would generate the file output.pdf from input.tiff.

tiff2pdf −o output.pdf input.tiff

The following example would generate PDF output from input.tiff and write it to standard output.

tiff2pdf input.tiff

The following example would generate the file output.pdf from input.tiff, putting the image pages on a letter sized page, compressing the output with JPEG, with JPEG quality 75, setting the title to ‘‘Document’’, and setting the ‘‘Fit Window’’ option.

tiff2pdf −p letter −j −q 75 −t "Document" −f −o output.pdf input.tiff

BUGS

Please report bugs via the web interface at

http://bugzilla.remotesensing.org/enter_bug.cgi?product=libtiff

SEE ALSO

libtiff(3), tiffcp(1), tiff2ps(1)

Libtiff library home page: http://www.remotesensing.org/libtiff/


tiffinfo.1.html000064400000010546147561453440007420 0ustar00 TIFFINFO

TIFFINFO

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
SEE ALSO

NAME

tiffinfo − print information about TIFF files

SYNOPSIS

tiffinfo [ options ] input.tif ...

DESCRIPTION

Tiffinfo displays information about files created according to the Tag Image File Format, Revision 6.0. By default, the contents of each TIFF directory in each file is displayed, with the value of each tag shown symbolically (where sensible).

OPTIONS

−c

Display the colormap and color/gray response curves, if present.

−D

In addition to displaying the directory tags, read and decompress all the data in each image (but not display it).

−d

In addition to displaying the directory tags, print each byte of decompressed data in hexadecimal.

−j

Display any JPEG -related tags that are present.

−o

Set the initial TIFF directory according to the specified file offset. The file offset may be specified using the usual C-style syntax; i.e. a leading ‘‘0x’’ for hexadecimal and a leading ‘‘0’’ for octal.

−s

Display the offsets and byte counts for each data strip in a directory.

−z

Enable strip chopping when reading image data.

−#

Set the initial TIFF directory to #.

SEE ALSO

pal2rgb(1), tiffcp(1), tiffcmp(1), tiffmedian(1), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFWarning.3tiff.html000064400000006431147561453440010543 0ustar00 TIFFWarning

TIFFWarning

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUES
SEE ALSO

NAME

TIFFWarning, TIFFSetWarningHandler − library warning interface

SYNOPSIS

#include <tiffio.h>

void TIFFWarning(const char *module, const char *fmt, ...)

#include <stdarg.h>

typedef void (*TIFFWarningHandler)(const char *module, const char *fmt, va_list ap);

TIFFWarningHandler TIFFSetWarningHandler(TIFFWarningHandler handler);

DESCRIPTION

TIFFWarning invokes the library-wide warning handler function to (normally) write a warning message to the stderr. The fmt parameter is a printf(3S) format string, and any number arguments can be supplied. The module parameter is interpreted as a string that, if non-zero, should be printed before the message; it typically is used to identify the software module in which a warning is detected.

Applications that desire to capture control in the event of a warning should use TIFFSetWarningHandler to override the default warning handler. A NULL (0) warning handler function may be installed to suppress error messages.

RETURN VALUES

TIFFSetWarningHandler returns a reference to the previous error handling function.

SEE ALSO

TIFFError(3TIFF), libtiff(3TIFF), printf(3)

Libtiff library home page: http://www.remotesensing.org/libtiff/


raw2tiff.1.html000064400000030712147561453440007335 0ustar00 RAW2TIFF

RAW2TIFF

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
GUESSING THE IMAGE GEOMETRY
SEE ALSO

NAME

raw2tiff − create a TIFF file from a raw data

SYNOPSIS

raw2tiff [ options ] input.raw output.tif

DESCRIPTION

raw2tiff converts a raw byte sequence into TIFF. By default, the TIFF image is created with data samples packed (PlanarConfiguration=1), compressed with the PackBits algorithm (Compression=32773), and with each strip no more than 8 kilobytes. These characteristics can overridden, or explicitly specified with the options described below.

OPTIONS

−H number

size of input image file header in bytes (0 by default). This amount of data just will be skipped from the start of file while reading.

−w number

width of input image in pixels (can be guessed, see GUESSING THE IMAGE GEOMETRY below).

−l number

length of input image in lines (can be guessed, see GUESSING THE IMAGE GEOMETRY below).

−b number

number of bands in input image (1 by default).

−d data_type

type of samples in input image, where data_type may be:

byte

8-bit unsigned integer (default),

short

16-bit unsigned integer,

long

32-bit unsigned integer,

sbyte

8-bit signed integer,

sshort

16-bit signed integer,

slong

32-bit signed integer,

float

32-bit IEEE floating point,

double

64-bit IEEE floating point.

−i config

type of samples interleaving in input image, where config may be:

pixel

pixel interleaved data (default),

band

band interleaved data.

−p photo

photometric interpretation (color space) of the input image, where photo may be:

miniswhite

white color represented with 0 value,

minisblack

black color represented with 0 value (default),

rgb

image has RGB color model,

cmyk

image has CMYK (separated) color model,

ycbcr

image has YCbCr color model,

cielab

image has CIE L*a*b color model,

icclab

image has ICC L*a*b color model,

itulab

image has ITU L*a*b color model.

−s

swap bytes fetched from the input file.

−L

input data has LSB2MSB bit order (default).

−M

input data has MSB2LSB bit order.

−c

Specify a compression scheme to use when writing image data: −c none for no compression, −c packbits for the PackBits compression algorithm (the default), −c jpeg for the baseline JPEG compression algorithm, −c zip for the Deflate compression algorithm, and −c lzw for Lempel-Ziv & Welch.

−r number

Write data with a specified number of rows per strip; by default the number of rows/strip is selected so that each strip is approximately 8 kilobytes.

GUESSING THE IMAGE GEOMETRY

raw2tiff can guess image width and height in case one or both of these parameters are not specified. If you omit one of those parameters, the complementary one will be calculated based on the file size (taking into account header size, number of bands and data type). If you omit both parameters, the statistical approach will be used. Utility will compute correlation coefficient between two lines at the image center using several appropriate line sizes and the highest absolute value of the coefficient will indicate the right line size. That is why you should be cautious with the very large images, because guessing process may take a while (depending on your system performance). Of course, the utility can’t guess the header size, number of bands and data type, so it should be specified manually. If you don’t know anything about your image, just try with the several combinations of those options.

There is no magic, it is just a mathematical statistics, so it can be wrong in some cases. But for most ordinary images guessing method will work fine.

SEE ALSO

pal2rgb(1), tiffcp(1), tiffmedian(1), libtiff(3)

Libtiff library home page: http://www.remotesensing.org/libtiff/


fax2ps.1.html000064400000017075147561453440007023 0ustar00 FAX2PS

FAX2PS

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
DIAGNOSTICS
NOTES
BUGS
SEE ALSO

NAME

fax2ps − convert a TIFF facsimile to compressed PostScript™

SYNOPSIS

fax2ps [ options ] [ file ... ]

DESCRIPTION

fax2ps reads one or more TIFF facsimile image files and prints a compressed form of PostScript on the standard output that is suitable for printing.

By default, each page is scaled to reflect the image dimensions and resolutions stored in the file. The −x and −y options can be used to specify the horizontal and vertical image resolutions (lines/inch), respectively. If the −S option is specified, each page is scaled to fill an output page. The default output page is 8.5 by 11 inches. Alternate page dimensions can be specified in inches with the −W and −H options.

By default fax2ps generates PostScript for all pages in the file. The −p option can be used to select one or more pages from a multi-page document.

fax2ps generates a compressed form of PostScript that is optimized for sending pages of text to a PostScript printer attached to a host through a low-speed link (such as a serial line). Each output page is filled with white and then only the black areas are drawn. The PostScript specification of the black drawing operations is optimized by using a special font that encodes the move-draw operations required to fill the black regions on the page. This compression scheme typically results in a substantially reduced PostScript description, relative to the straightforward imaging of the page with a PostScript image operator. This algorithm can, however, be ineffective for continuous-tone and white-on-black images. For these images, it sometimes is more efficient to send the raster bitmap image directly; see tiff2ps(1).

OPTIONS

−p number

Print only the indicated page. Multiple pages may be printed by specifying this option more than once.

−x resolution

Use resolution as the horizontal resolution, in dots/inch, of the image data. By default this value is taken from the file.

−y resolution

Use resolution as the vertical resolution, in lines/inch, of the image data. By default this value is taken from the file.

−S

Scale each page of image data to fill the output page dimensions. By default images are presented according to the dimension information recorded in the TIFF file.

−W width

Use width as the width, in inches, of the output page.

−H height

Use height as the height, in inches, of the output page.

DIAGNOSTICS

Some messages about malformed TIFF images come from the TIFF library.

Various messages about badly formatted facsimile images may be generated due to transmission errors in received facsimile. fax2ps attempts to recover from such data errors by resynchronizing decoding at the end of the current scanline. This can result in long horizontal black lines in the resultant PostScript image.

NOTES

If the destination printer supports PostScript Level II then it is always faster to just send the encoded bitmap generated by the tiff2ps(1) program.

BUGS

fax2ps should probably figure out when it is doing a poor job of compressing the output and just generate PostScript to image the bitmap raster instead.

SEE ALSO

tiff2ps(1), libtiff(3)

Libtiff library home page: http://www.remotesensing.org/libtiff/


tiffcrop.1.html000064400000047662147561453440007441 0ustar00 TIFFCROP

TIFFCROP

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
EXAMPLES
SEE ALSO

NAME

tiffcrop − copy (and possibly convert and crop or process) a TIFF file

SYNOPSIS

tiffcrop [ options ] src1.tif ... srcN.tif dst.tif

DESCRIPTION

tiffcrop combines one or more files created according to the Tag Image File Format, Revision 6.0 into a single TIFF file. The output file may be compressed using a different algorithm than the input files. tiffcrop is most often used to extract portions of an image for processing with bar code recognizer or OCR software when that software cannot restrict the region of interest to a specific portion of the image or to improve efficiency when the regions of interest must be rotated.

By default, tiffcrop will copy all the understood tags in a TIFF directory of an input file to the associated directory in the output file.

tiffcrop can be used to reorganize the storage characteristics of data in a file, and it will alter or convert the image data content as specified at the same time, unlike tiffcp.

tiffcrop will behave exactly like tiffcp if none of the new options are specified.

OPTIONS

−N odd|even|#,#-#,#|last

sequences and ranges of images within file to process. The words odd or even may be used to specify all odd or even numbered images. The word last may be used in place of a number in the sequence to indicate the final image in the file without knowing how many images there are. Ranges of images may be specified with a dash and multiple sets can be indicated by joining them in a comma-separated list. e.g.. use −N 1,5-7,last to process the 1st, 5th through 7th, and final image in the file.

−E top|bottom|left|right

use the top, bottom, left, or right edge as origin reference for width and length of crop regions. May be abbreviated to first letter.

−U in|cm|px

units to apply to dimensions for margins and crop regions. Inches or centimeters are converted to pixels using the resolution unit specified in the TIFF file (which defaults to inches if not specified in the IFD).

−m #,#,#,#

margins to be removed from the image. The order must be top, left, bottom, right with only commas separating the elements of the list. Margins are scaled according to the current units and removed before any other extractions are computed. Capital M was in use.

−X #

horizontal (X-axis) dimension of a region to extract relative to the specified origin reference. If the origin is the top or bottom edge, the X axis value will be assumed to start at the left edge.

−Y #

vertical (Y-axis) dimension of a region to extract relative to the specified origin reference. If the origin is the left or right edge, the Y axis value will be assumed to start at the top.

−Z #:#,#:#

zones of the image designated as position X of Y equal sized portions measured from the reference edge, e.g. 1:3 would be first third of the image starting from the reference edge minus any margins specified for the confining edges. Multiple zones can be specified as a comma separated list but they must reference the same edge. To extract the top quarter and the bottom third of an image you would use −Z 1:4,3:3.

−F horiz|vert

flip, i.e. mirror, the image or extracted region horizontally or vertically.

−R 90|180|270

rotate the image or extracted region 90, 180, or 270 degrees clockwise.

−I

invert the colorspace values for grayscale and bi-level images. This would be used to correct negative images that have incorrect PHOTOMETRIC INTERPRETATION tags. No support for color images.

−b image

subtract the following monochrome image from all others processed. This can be used to remove a noise bias from a set of images. This bias image is typically an image of noise the camera saw with its shutter closed. Bias image support is not available with options for cropping, rotating, or inverting the image.

−B

Force output to be written with Big-Endian byte order. This option only has an effect when the output file is created or overwritten and not when it is appended to.

−C

Suppress the use of ‘‘strip chopping’’ when reading images that have a single strip/tile of uncompressed data.

−c

Specify the compression to use for data written to the output file: none for no compression, packbits for PackBits compression, lzw for Lempel-Ziv & Welch compression, jpeg for baseline JPEG compression, zip for Deflate compression, g3 for CCITT Group 3 (T.4) compression, and g4 for CCITT Group 4 (T.6) compression. By default tiffcrop will compress data according to the value of the Compression tag found in the source file.

The CCITT Group 3 and Group 4 compression algorithms can only be used with bi-level data.

Group 3 compression can be specified together with several T.4-specific options: 1d for 1-dimensional encoding, 2d for 2-dimensional encoding, and fill to force each encoded scanline to be zero-filled so that the terminating EOL code lies on a byte boundary. Group 3-specific options are specified by appending a ‘‘:’’-separated list to the ‘‘g3’’ option; e.g. −c g3:2d:fill to get 2D-encoded data with byte-aligned EOL codes.

LZW compression can be specified together with a predictor value. A predictor value of 2 causes each scanline of the output image to undergo horizontal differencing before it is encoded; a value of 1 forces each scanline to be encoded without differencing. LZW-specific options are specified by appending a ‘‘:’’-separated list to the ‘‘lzw’’ option; e.g. −c lzw:2 for LZW compression with horizontal differencing.

−f

Specify the bit fill order to use in writing output data. By default, tiffcrop will create a new file with the same fill order as the original. Specifying −f lsb2msb will force data to be written with the FillOrder tag set to LSB2MSB, while −f msb2lsb will force data to be written with the FillOrder tag set to MSB2LSB.

−i

Ignore non-fatal read errors and continue processing of the input file.

−l

Specify the length of a tile (in pixels). tiffcrop attempts to set the tile dimensions so that no more than 8 kilobytes of data appear in a tile.

−L

Force output to be written with Little-Endian byte order. This option only has an effect when the output file is created or overwritten and not when it is appended to.

−M

Suppress the use of memory-mapped files when reading images.

−p

Specify the planar configuration to use in writing image data that has one 8-bit sample per pixel. By default, tiffcrop will create a new file with the same planar configuration as the original. Specifying −p contig will force data to be written with multi-sample data packed together, while −p separate will force samples to be written in separate planes.

−r

Specify the number of rows (scanlines) in each strip of data written to the output file. By default (or when value 0 is specified), tiffcrop attempts to set the rows/strip that no more than 8 kilobytes of data appear in a strip. If you specify special value -1 it will results in infinite number of the rows per strip. The entire image will be the one strip in that case.

−s

Force the output file to be written with data organized in strips (rather than tiles).

−t

Force the output file to be written with data organized in tiles (rather than strips). options can be used to force the resultant image to be written as strips or tiles of data, respectively.

−w

Specify the width of a tile (in pixels). tiffcrop attempts to set the tile dimensions so that no more than 8 kilobytes of data appear in a tile. tiffcrop attempts to set the tile dimensions so that no more than 8 kilobytes of data appear in a tile.

−,={character}

substitute {character} for ’,’ in parsing image directory indices in files. This is necessary if filenames contain commas. Note that ’,=’ with whitespace immediately following will disable the special meaning of the ’,’ entirely. See examples.

EXAMPLES

The following concatenates two files and writes the result using LZW encoding:

tiffcrop -c lzw a.tif b.tif result.tif

To convert a G3 1d-encoded TIFF to a single strip of G4-encoded data the following might be used:

tiffcrop -c g4 -r 10000 g3.tif g4.tif

(1000 is just a number that is larger than the number of rows in the source file.)

To extract a selected set of images from a multi-image TIFF file use the -N option described above. Thus, to copy the 1st and 3rd images of image file "album.tif" to "result.tif":

tiffcrop -N 1,3 album.tif result.tif

Given file "CCD.tif" whose first image is a noise bias followed by images which include that bias, subtract the noise from all those images following it (while decompressing) with the command:

tiffcrop -c none -b CCD.tif CCD.tif -d 2 result.tif

SEE ALSO

pal2rgb(1), tiffinfo(1), tiffcmp(1), tiffcp(1), tiffmedian(1), tiffsplit(1), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


TIFFReadScanline.3tiff.html000064400000012211147561453440011457 0ustar00 TIFFReadScanline

TIFFReadScanline

NAME
SYNOPSIS
DESCRIPTION
NOTES
RETURN VALUES
DIAGNOSTICS
BUGS
SEE ALSO

NAME

TIFFReadScanline − read and decode a scanline of data from an open TIFF file

SYNOPSIS

#include <tiffio.h>

int TIFFReadScanline(TIFF *tif, tdata_t buf, uint32 row, tsample_t sample)

DESCRIPTION

Read the data for the specified row into the (user supplied) data buffer buf. The data are returned decompressed and, in the native byte- and bit-ordering, but are otherwise packed (see further below). The buffer must be large enough to hold an entire scanline of data. Applications should call the routine TIFFScanlineSize to find out the size (in bytes) of a scanline buffer. The row parameter is always used by TIFFReadScanline; the sample parameter is used only if data are organized in separate planes (PlanarConfiguration=2).

NOTES

The library attempts to hide bit- and byte-ordering differences between the image and the native machine by converting data to the native machine order. Bit reversal is done if the FillOrder tag is opposite to the native machine bit order. 16- and 32-bit samples are automatically byte-swapped if the file was written with a byte order opposite to the native machine byte order,

In C++ the sample parameter defaults to 0.

RETURN VALUES

TIFFReadScanline returns −1 if it detects an error; otherwise 1 is returned.

DIAGNOSTICS

All error messages are directed to the TIFFError(3TIFF) routine.

Compression algorithm does not support random access. Data was requested in a non-sequential order from a file that uses a compression algorithm and that has RowsPerStrip greater than one. That is, data in the image is stored in a compressed form, and with multiple rows packed into a strip. In this case, the library does not support random access to the data. The data should either be accessed sequentially, or the file should be converted so that each strip is made up of one row of data.

BUGS

Reading subsampled YCbCR data does not work correctly because, for PlanarConfiguration=2 the size of a scanline is not calculated on a per-sample basis, and for PlanarConfiguration=1 the library does not unpack the block-interleaved samples; use the strip- and tile-based interfaces to read these formats.

SEE ALSO

TIFFOpen(3TIFF), TIFFReadEncodedStrip(3TIFF), TIFFReadRawStrip(3TIFF), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


tiffdither.1.html000064400000012664147561453440007747 0ustar00 TIFFDITHER

TIFFDITHER

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
NOTES
SEE ALSO

NAME

tiffdither − convert a greyscale image to bilevel using dithering

SYNOPSIS

tiffdither [ options ] input.tif output.tif

DESCRIPTION

tiffdither converts a single channel 8-bit greyscale image to a bilevel image using Floyd-Steinberg error propagation with thresholding.

OPTIONS

−c

Specify the compression to use for data written to the output file: none for no compression, packbits for PackBits compression, lzw for Lempel-Ziv & Welch compression, zip for Deflate compression, g3 for CCITT Group 3 (T.4) compression, and g4 for CCITT Group 4 (T.6) compression. By default tiffdither will compress data according to the value of the Compression tag found in the source file.

The CCITT Group 3 and Group 4 compression algorithms can only be used with bilevel data.

Group 3 compression can be specified together with several T.4-specific options: 1d for 1-dimensional encoding, 2d for 2-dimensional encoding, and fill to force each encoded scanline to be zero-filled so that the terminating EOL code lies on a byte boundary. Group 3-specific options are specified by appending a ‘‘:’’-separated list to the ‘‘g3’’ option; e.g. −c g3:2d:fill to get 2D-encoded data with byte-aligned EOL codes.

LZW compression can be specified together with a predictor value. A predictor value of 2 causes each scanline of the output image to undergo horizontal differencing before it is encoded; a value of 1 forces each scanline to be encoded without differencing. LZW-specific options are specified by appending a ‘‘:’’-separated list to the ‘‘lzw’’ option; e.g. −c lzw:2 for LZW compression with horizontal differencing.

−f

Specify the bit fill order to use in writing output data. By default, tiffdither will create a new file with the same fill order as the original. Specifying −f lsb2msb will force data to be written with the FillOrder tag set to LSB2MSB , while −f msb2lsb will force data to be written with the Fill- Order tag set to MSB2LSB .

−t

Set the threshold value for dithering. By default the threshold value is 128.

NOTES

The dither algorithm is taken from the tiffmedian(1) program (written by Paul Heckbert).

SEE ALSO

pal2rgb(1), fax2tiff(1), tiffinfo(1), tiffcp(1), tiff2bw(1), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


index.html000064400000007316147561453440006565 0ustar00Libtiff HTML manpage index TIFFWriteRawTile.3tiff.html000064400000007612147561453440011522 0ustar00 TIFFWriteRawtile

TIFFWriteRawtile

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUES
DIAGNOSTICS
SEE ALSO

NAME

TIFFWriteRawTile − write a tile of raw data to an open TIFF file

SYNOPSIS

#include <tiffio.h>

tsize_t TIFFWriteRawTile(TIFF *tif, ttile_t tile, tdata_t buf, tsize_t size)

DESCRIPTION

Append size bytes of raw data to the specified tile.

RETURN VALUES

−1 is returned if an error occurred. Otherwise, the value of size is returned.

DIAGNOSTICS

All error messages are directed to the TIFFError(3TIFF) routine.

%s: File not open for writing. The file was opened for reading, not writing.

Can not write tiles to a stripped image. The image is assumed to be organized in strips because neither of the TileWidth or TileLength tags have been set with TIFFSetField(3TIFF).

%s: Must set "ImageWidth" before writing data. The image’s width has not be set before the first write. See TIFFSetField(3TIFF) for information on how to do this.

%s: Must set "PlanarConfiguration" before writing data. The organization of data has not be defined before the first write. See TIFFSetField(3TIFF) for information on how to do this.

%s: No space for tile arrays". There was not enough space for the arrays that hold tile offsets and byte counts.

%s: Specified tile %d out of range, max %d. The specified tile is not valid according to the currently specified image dimensions.

SEE ALSO

TIFFOpen(3TIFF), TIFFWriteEncodedTile(3TIFF), TIFFWriteScanline(3TIFF), libtiff(3TIFF)

Libtiff library home page: http://www.remotesensing.org/libtiff/


man7/ea-php74.7.gz000064400000002051147562447320007456 0ustar00Vn8+z}II<؋,hP@R1SdAM g WTXBhe-X\XZ̄+%vNsdq:/g/lγPOZ[.sȗ7RZY{פ^76h=xeRjP4~ O/E\P/ ˆoԚ6R)LgԲuO)`KcBJ4B]q8V2ѦYI!@Odaed!p"kp\JʖV;V8=#lW^XTtڟg5Bi1Y2ށqu懄(9]>=㰹y]<${4QH]0Fum\\ ejaJ/(o5R힔6bY3E\5Rtr*!kۭJPb"l&'dôxV֪:l{DaDQgKY*ɪVc f+|[.g&$aEx! 5v<ӊ?e {%ij:8g#sQFyP8Sͭ0~cQ㥒ӝUhgnC.q х\7{֕vh–vCQ{8>E$'>' ֡ b'Y=·'s>al^ZdmDp]-|h8 '|A5GA-8Y0\r+_`cÿ Ei6Ppgqkn'P|22o4Z-wr2 man1/phar.1.gz000064400000005353147562447320007057 0ustar00Zms6_XtLLsھr.o: IYTyZ(UY+A9:(|irbe:A3,R+IJ+#iyiJ ez(ޥL^SE[,Mr[J-"IoJRvLX\kV;'i f:+O/Pjb$RY[~* te5wޕVkyêtim {!$OM5k}S򰧝VsP_r~oa 1*tNX,Qռ9^I0 ̫H5N;'qiHHMd/)y_TNL<;=~(՘ zZea˳߁nfx7$ۏa,Ut$0&bU AeL*K#+}`%f9Ik[RmŔWÌCri ,ЀhDalURJP}YuI֔HTuFN?cx'R(> 9f ԋ8؍㡉fU޼7"Aƥ|d;q/E3n[GܚWTlT em1.]z@z|M}oj&)k>i&?xUYQx2f}B4Nޘ艪oF?v'`X[0#z6"^lV]f1`kfj5q\ TB1MUޕwjIdZR+ Mr͛J^_hx'5⪱xcED -:u͑s |T\]Wd5Y+ ڌRb#3eSw_lLID*T<:qMßKfHQFp(CsVЧCA6EOuȍxo\m儡31lHLL`g@7j*s,aj[1R E̜ ?V~k!>5vzaK3"фyX"01}s  6 &G`m\? ۮQ6[aPy3LN͍hi1FZְ.υuL-:'\ȼ(I\/))Uӟ$w H%'5u7:Lz e6Kޜ:IIarVcnbVpgWA[! VWɟ$Ĝm]l  ScԇZ*JNP)p eh|BEW~;qSiXStܬG+-M#w;;4߁2t*>p ;ω͆A,5&sdSHixOC=B?bJ4c7l79ֽBCsbGo߳(<7)n7IDC4T3FإL4E8vw#53PȩW[.^T_ k| e♯U8PAxt]`c< h3zg\\.* 8 9#Sv 9hÅ]^ܬ>_\!+3 W}mm*50FPWkryZZ. xcޒ$]'ѴB1unJ e34% qg-ܗuw "=K8FnZ=`67B1+2ҷPr:G=N07ܰ3Sky8Lӭ!ݲsqjir)f`%p Vw@tCOcZfb_/–IZ8yf/FZWfU%sKh_Gg9WV0PuH c"3J3I>< $,@8u_N>DŽoFͩu p*qE.ՔB054ӇIb„;gQ=}^ʧc|{@u-Ge:u>en|4|~tpx!LtV˭?p٣ D>Mecݖ}߿^Fdir2m=>?ohoTZi{ =F4x&̂ N=Z>GM:.} M P,X?wT3CC.U{[T61࿅PFٳ ^O3֮&SS2.*man1/php-config.1.gz000064400000001511147562447320010147 0ustar00Tn6}W ,9jPlw68-XFE]DIliR%CJr..C&g93G5o _߯j23xu?/5, lmGX~[fZ\Ir6 1N“C#0M9fG"* w|M]Y(~ܴL0 @r_sΓKc:gP2H~#qv׾>Gf5&w\*}APu071̝sJ*<[@.K*fȊ t zn[@$F)9jAĸ{tx:=5Sw!,j'ʨxSUxa˼=[& 0_Nke̊#TN ъAb!#Ka:;+줆C ctC;nHު>:R8"O Zv:Eh->V3jٻDNk&K=1'>r$u PfICxX.vo0}.Xns?H03{@uWlv*1N⛛a6}xܡ2Q󦵰P*H>}"7k0P(aܼY+Ax=B7uU#%ڒ͈m941'-2dUX,J6J*9Zg`P_rNS72ߐ|} ŒHp~ugҎr8Hecb]KW?"NL-p3UMYk\;GRM"ÁU,1+ɑman1/php.1.gz000064400000007001147562447320006704 0ustar00Z}s۶zgfr^rα=KiFDBj`Ҋr{~@zs"עD?`*s?(u>72Tr-n\D8:s3<7:WʎeMo?ﱵLt{ŕ,\.V\E1Ow^?5zo_{v%{b3? ;/o@0,NLg #5C sT{.[ݺ{8#.x},Mial "K~S֔__z-p@ ):UbةJDl)*[[j USYrJ̲p.T=3֛Ȝ+lҔ4z&)Aߒ$`캶݈\2TOM9Qw gր($Q%UXNr`6ș"0ȢuiM1 Kc ` *)I45 $n&=?sSe)Xҹ#eC-SʙPO2;8U<9=֊̜:I^UaM+I*BEUzA#Pی=1Dxfp%p ;KH2'g2^䊌6\u ɒUFȴ ɸcn Z:JL^JWEfjY@X #.+ i,Z#l8jg#CdRCE>Ķ1DOզYL!X!,{b5NB4i*I.j {+6=cDÖ)Ĥ>m2ݣ.\ZoHLlK1CʎŜSx%",MªWHG.W@ > I,F CA"3 iK03:~]I24'IV)W:ar/ȍx`Cl|scA.ޭsTH_;3"79"D*<bC#P`1!aWKHW-8 K*@! &( ܈=A[ar)Jn/)/|Bv8+Hu_CF[b2U`(\H8)5]h&P0!6@0 dANL2T3_!9ĎK)%#`ǽ`tl~Wqgw Xy9Y@{~&[ͰLIDG @)x*aߵ$cߕVe$ƢOcwdg'JճJ=OdS$9XY|lf{g,PU< ax)rnyr˗1ζ8'H񔀼^Dޭi]*nf!mKA-=_;0z=xqHD%Qs* LEW\Ӗ>'n "Uj2Qr*x34nݯg7~X&uBUJcCbk/`|uG%Ʉ [X_s2%8`0Z%J7aާG:-R,W׏kx uczPS]R+(i 2 Ӱ?:J|8VYљTܐ} [>_8wu%>{spl8-fRӺ%Fl(4n5gF0U( $#VC|MǪwQӂly|>FѭdekS]*:C ^ei>ȥit\l^DpY5u-TztEG7:O f05_=xϛ 5 C0Ƌ7T߾0ؠjM2y~d ;$5g<28fÒxlT}A 1%(@4jLm&xJwI}'4uq}Rk"[ka%ʢ]3/guiy}HX7[ '(H{3ԥS8 \*K4<\ U?q6rFE0,|#mSI{#q~ԴOH⾐fJKPOubq='9Yc [O)b`7׿Ux^?^GP_rkŅ8Erz =4d`4pI1&kiY{qcJfǫho>i5:' cV}B䴑^ [ ٚ3={;#|YsXټHK=]gyUU'Hf2#񃞉w:w%Y+JgZ=r TC "]N#Iꂚ/Z=b!9oMQv{5h*L<q${( MRpbq#n|ɗtu\mLiw$LVS%1INf} á95?^<{ww{y挿tQtV<"i"Puϐ}$ ·<ӝMxF`5z6#+%ˢrI$man1/phpize.1.gz000064400000001105147562447320007413 0ustar00}Ro0~_q⩓ ikFiV"Q4Z$fl+qH_ ]M}L.,TFFa~~`S!$kΊZ+\[ fLܓɢjV5`$ OW$3&,X&te4N6z'o* ~v~7k/G,H`Q>*$rR<#@Eb ;!qx`XR eh*"ws ?bݼ|Nj,ǼJ KE0[fk⧮ QtӇ/nSQaWl [bd1\|rg/{5 l?KMIzي[ٶ{'lE(cx\gyeRihyٝ'ӒDo4* C]U; 'CWol"W~;DG@:fո9|FDO5tc< qςQb "elj4|IY܎7.'7`fb@ ޲L nġLhla`}ӆ%`( [g2P&z ݂ó{vg3Q&~xJ]cu kw"(봦} ٫"͎;MqI'qV vV'@K/@P0iϵ V9OXle,D[][; 7 GA}&Wydz[3HVSr_'sbU.!Ѣ*A[wZ4N$йCZ,/d-U` hrQ^TW|2t'&.$;7=Qt TsYMuBWèq&>Iw)|<&Һ9|lBt',a6)**G k4WaN7.5k:IRj`iJø=5vIETdxd9WW TvZ4b@$'bxU|CK!R]Kz(ԐpWxM= X=x[;jG_66h:akZKmKqҗ8">antJx\5;qW]Ym } B'?yFp\A쪶 2sMQv#t `z'gEqV? " 9 {`?RDkv\HC7MxO6bMW*cuE[5rA3(ė'e4d1@#ZBu 41OƳ3}q|T_TKD`:kJmǚC} OÏzj%qϟ}ŞEwq|> @>{rn̋s=MBOIQK#zAij ; N||{~A5DӲf;+Y 5(Zc:h>sx'?Y!IE,(9`9`JY #1>). ࿷ (tqWv\יman7/ea-php72.7.gz000064400000002050147564052470007453 0ustar00V]O8}ϯ ݆EBȅr[ hEڽR+q ǎl*~4-O%g̙9'و<_~Vْf?fFha9[**2L/$]Mir;^L7W4hνY KWWxl\5oҫkZotgKqo;S!uFI$1ajTK_->2I*Ɋl> ~N%޿,^fl, 5o2|)m#zCMn56IpR @J*^[ム"3Do-'ˤCvNx=·'39I"yiOje!9Dp]-i.9ࣣ8 iT$^قXƃ7^l_|;0@_fKM Nz ~N9޿,ogl, 52|)m#zCMn56IpR{ @J*^[ミ"3DoLwArۤnovvvoXt6i{џ+~(uE.]׽2>8x{aj6+V@~wK2_v tc-HgW|5_p=n惪1{{zs?_ݿl~$NR&L6$rAh(hhTZA1lI5)O.LK/QFΞ2JzN:a?ڥ(P+{#7[Ψf˔x!Q@-dyrA"ZoJ#zLc]aq=17'jmGNR gE ^<%,U{2ߠ0hhp,ĈƔDsGL*pL{xZZWOɼծ^Ө6Y/2FDQTB#,Уz.Ӧ`$$)[bų)k٤|hdl8ET8VOs\AMMHLY  &𹣱SZ^i9"͸|Bw0~Qr?GwiԾЈ-3E1HQu'䲰V+ mO6R[B`9޳4J NmVZd#SW !w""yΧӨ&ONOhn쟌]pḏAß ][-?2-nW4q v=?xdi%;~__]X ]ն=$I}q\?ʉj0Nsz0b7lqD+!ȝT~kG7N]'.矒`dg?d-ũ(_O: man8/passenger-memory-stats.8.gz000064400000001476147564067750012605 0ustar00Tak8_1S {w86 4MBn9,-ڵ%~nKpԶy[:{z;?^qP~l(֦uoUOt12݊ΞwG]fy=8WEl  *<Io)@Ařsb7G]sYϳͧ|/+T׹"GZFTNVI_dג $byWUAWcՒB%  k&v*c #yByH*=@_*hKHHRC,ZޓxP$`Zk*e a e OC:ıSсDsm!IM6UGg=񈭞3A+XgmgwWǜZmS}Y&q +oUR SiVctW> 4ٞz2[lt=N.٭Z tU2%T١~7#պQ <Dj AU AμyqHZ(6(8F?57~"h洘R6qS1d>IjHFY iݹJQt1Gꦶ0&vSf3mo2Cz԰[6>Őogru(o7U1.Go$! p9>_7iPkBMef߆=Ap,Ž/ Q]r!#-)T 9ϗZ;tman7/ea-ruby24.7.gz000064400000001475147564067750007663 0ustar00MO0Mig>j@H$Yiɿ߱Sڲ ]Nwdރ -W)ٚێ\ ejfNHt(h$nkl;COͼmqĒ4LF!s)Ljbbs8jҕ$m) rk\pWnɹvEs+-脗.4`zϦ{#]s-ɻ70man1/irb.1.gz000064400000002760147564067750006707 0ustar00W[oH~8 IѶ*)mJ`4wfLI%$R;`idv-ek$\T ~'d?a"74]Qpr<8A`~@a~"iJUGÜ&TQQxTr|p ')0¿1PE"6pM9wtG+|PwԬ bhdR9[)rODT0L +Jb2%Xө侥H 7bME0X"n Z@Ľ'*i?YѪ"n  eq~t⊏c؟kkѧ1hz\ʬTlpHUt OMM@'Ϟx5N#L؎X4Z?~J +?- u43L6kN;7a EX1MH `r=WlKqm&ŪiksV fDV+s|"E`KA=EQ:q >"o\F̺]QG]Lp{[˶A5}$?Mn%n+E򣇪F崡xaejM p8#ߑ˨`C˪q&8"JrhjGV%A^CH=PS`ioF[)'urnl8ڮ?slb#~K]~u\dn@"F4+bUdԈ26TA ]-p0~r ZZmjA<!nRÒ|%A?.Cye:p] 6:8iwaиR )^HR.Ў$ДD8p;ܯtҼ[x*٨@Cr#3Npw+G4ʋ1OqYD\Gcmв FcRܓb-/E3뀪rEBs,D!+G~8| xع1D}|7T\KwcQ,!m(D ܚ".#v̛ᥕ63 L0gmqxRFN&zgǃDS8ɞI)NN`t}Vr"-==Ub^R,qB/Kf{Wp*KEOc|\Ӈ;|L>ޫsꚊs劙;\{86P4ʾ66 XX`v=[球j!a(QF)aCY,Vtɬre rfzQp+"TFAtHxUK%}O5D< 7HyDcCW -itv('̊}'^Kꭸ6B$-V+3M|mid+mO W\+s  f#SI-3BP ?ۥH.2 y TA*#xs\Z@?̙UNRn*Iv"{j+uH,5 ܧ N,Mfņ$ T%ͣ%Jy 7DyJ-ٝz&--Vaed''z"K '}'#/CJW_NL48Yj_vϷute-6\3+y"2kRJZZ1Y}sB-v9w!TL] ̉VDI탪|U.^ Ukhs&gO>!Y)!>'Ap`€v9Kke3;8 /D7^WcoKJߣ`& )y_yPs.!u.e{`R}j%g^@2u5N( +V45'?hGs5jKJ|QJ#$NT[yMrYH+A\n\mAcr]IԆ lM4/}`a**6gЋ_u-P-+\qC=]!t|z^3jRtD .L,k]ͽ,@ߟ]N.YsIpw_fSIFv|˶a< qHO2K'I @Dk a29=/};bo\_^~-fH&>rXu͢OJ!Z{<u ԳL0I(׋75#,AM"^sv籯=9 b>}1{]~WT @lǒzcdx2·7=6ƢڑTZ *馞6 I)J0gT]ZU I4H=moãre,Uw2띆lU͸qf+_B`FR رq^CcP%Biimi9c>WT(nNP?5C'ͮp^3ݣU?TI7 ;E#FgW,oY *pfY ( man1/passenger-config.1.gz000064400000000722147564067750011361 0ustar00K@ "jS)4 l`ء,?ƏncMe,_#,H\'Aw}py,,$3)XבNip}wt G 0D!I1:'΀#:g0;AC't "wWoe:ܷpwD/ k&.<T [zfU6AK mW]-IҬt1F꠹ܤ_55'mO\ZqĴ[KbB.bKٯTnTAP07iimS`I1ElӠAS̫`zs=heѧBK:6 %Z]DcXY&0Άt4 Ԟ3] e4P(i6! 1*J5oBɢ̕ ̚+5L_B-*Eؓ.3 XW*-um$U70E.ɪ{r-kG uC,-Fb-AV%#y' L B07J1;\Q $1z!.FEVGD@ @%!LͼW/JGseә΄5 BDZ^ARȥ譣X`Pd#:Ux1 @W$)VpddxNoFNMT@Լ,X5={GRL(6&I4p)\H lR)kyrB;rn?թQJFڱk%Jr\<,EDTN@LQՖ,.Q-*VРe:P*3eg2 #RSH [g2n;aAtqI) !&ˌ׹N0Z,T8D% nnS93 G1f4d NP3gz?OLnj2:fed'枷"nED6V4|Edpx7^C!i =&&bTr3idi)Hn(L ƴ<'DiDB NIPK(:#bv*pbRle CKex9yrm/pvArXDV(!҆r~ؤl x Τ" ,2Ƽ+A,euJ[hXPW|B+:'n+] tX"\xsÑ$Pn`8)""m L<1{ †F!!O6}16Wɝ$T`%e.T̲ɍo 2bh+=(%2+0@  G{yP$[ >*n f٧56Qn ִVZ8&ܰc-&d^J0[Ĥ o9|Vw 2 [:?Xc̀G|! Qr4>+YpFd)h$@]({5A؉ͽb~LRC@Gcis݀ceq2}dΗŝXEf^>{F ꦲ`@BXח^YyT.gۤG9cw&L#VzM6Vo SBŽ!S$ ck,(|\Nsf+ _)'g43 ùQـ|# l("eTSڪ:_|#ԡFK**n7_rk\})ۢwg ܐu_B"ClUE_&O9si2ɹ@\DYEDX zϰ@} ;P]LL4-㸑>~J2mday {Αg2q–$QjTCKDlE!Ui}@pMG4|j<SR0"P) {6Du:=z*K9#W`}~Y_mp v`]Zv$*IT}񞖡8CjbC5K4< ש6lRڤaCc֯b[!Id^ZYΛf{muiiR^S]PU5ZuR?%[Rn5To()(Vх)vMO ̯'V(2FG6G;%-6|;|3od&Seað۶fbyt|6<}kpˎ ?iA!Y* +YA B/ޣsDÛޛ&2iצ882Jt4p2:]ZUOwu$h`x/ׁJ\ %g#&Z2 FԙKA8y(Jgk*a$诿 Nm=:W85Xu"GOUNP Seokijϸl ]-? l:D5wW~>r7Oēo눟)g)J 34wvd{e޶[nrLT'2?$4(XؖZ{m_]=p}L_fZ%H`9\Z6lK_?=G&;8ގANG8u^'V]R 2,Jv:]N%[C0ts gGAۿe}L Ty%H!C@,q װǞgx mgO਒TKiiqβ]L8+ ,l!CcS <׹5 ͖0wb.?Uh#x ,YɿzPGu6<9T)l>b붱oNV`0)eeRm+Sx=]YUTJh 4j_6H/\-r8z2w9 !: SJbrcU2ȶ{}Gӱ_HQM<+ez9&`F ?w@)Ҩ~bA"a oWz!(#c$EE0Bu0&#̺% %J܈YDClu!ʭK L4+ ͌\qx-gi`>j+Q6mKm*}WQ]P[щZ:&*?0ܨKz)uoڧiVFZK]M6T@N2Cl佊#ӖQ"Jtdc+:o$dj]:o(rʯرfQ>]lƆ2d:7_΢@ qݨ6\YYRB$=p v "k *'^^y"W +`ˇ4>ܠp=!5*Чe9T @hfcn2Ec;_{a񩓥Xs㹿?ǩӳm:<եrcqvRjPF.wg FDU!kF[EftiT$3ŁdHU@cs(H8dV8'qΓw$*{&C)/Ϭl jLn .x|m,j+(:!&tnRG̥pX Imዑ EC#' H4 7kigW; + mV;(j{) ӇDG^\),\(Vo*FfT%ĉPnywt[8QĒƝs^&F'PZ U6QPu /͚5љRWV￝u\H<:Q7y7LNj g d5Ϋ֤B:C+miol,.Sq3ډLwos&^ƕmݽ㔀Aث'9RsKvѽyX5o}=l2SavﶢWL& ߼8|TWNe4wMU7Eи`Wbq{ND ls1qães'*Sto +}E+3l3EC/իG!xa 3Rxd"`:v{:{7O=T)~n9ʮI`Y spV~:^d"XnSst}]C[  ,uP3OmE/pvn)YܺNg0LBjVé ȘAJ9![G?疱g?5ÇGwn5y= .v]NtqdL>]GQ/}v*:TGD[_#f%w> :LTJ'O'#Wb/ۿww*iD{"]j&SRre?(k,V[咮ܛa*у {NXk'd܄!# hY:ͫmogA5(} 'Xn rYjHԿBء@yi_2iMgdi WV$]eCӤQI4&a/ O?:ev ƺGUoZL[9[S/%??}Yx\+5 GITTy{ӷP{ ,[_I}rviB9 [H=; `"eV/R-~5|;oK.LsyE|[>H߇tC~B!6a%!-r{~z;8{7^ލ㟧o_ NN3& BZcYFͳwKq|vI˫rSFl5gt~0(;Ͼs&=ar>G?~(-݁m߆r˂q4s >?pB2ߎ2bu9 ~qJlqŏ5`iQ9np,0V|Ev/,?/ϊì<. v|fx:uVT~rBڮ;Evv`Nźq ]s>5v1j)GdZ}~Ga1vVH[*H?mFn՚b }8! ?ư7Vb/;yC*㮣aT͏^yKrEqan`ɥ?Sa֎dD͠5&)1i܄f?=&3yD2$$1$!͹wFgL(%\~2(yӉNi] )c:O,D\Ws׾;Wk"6 6kynVzBihIה'!MfVu-gu|85}dǟ?Z%*Zb`'>G /cwJ;IAoHs S'Rd0V6kؿϐs,31 IhGb [)d2 ]n$0_,X6x£CgDTT+ {{3_L'x9X6@^K7;V((E['D4̗V#e0iD[ù3p-7a6PET2R> Nbu -m4S/0Cpv`<;T,[h?XcvI GCFtJA\\=Y _%{4دd5X*# }(ᩃ !h[~+#Jman1/ri.1.gz000064400000004060147564067750006540 0ustar00Xo۸οK^lCI $g;wWCAKEU=$H h*<|_G,Ouu4js28yWߩ2gB;^R\VLX22*篿9w8r|1t[#B/FY_*/X2v:%o,(|2ngKew|9Y#EN}&:mb8Z>YJ{l*쥉/g<)W 22el D ѥ,أu_"nN2zrقeuQU#*Ri$4|1&>Ggj׋pt3\9d<X^#b6r8*TTE]kumIE&h\p{)]q2 _9@6060*ah~@JӾe~&ӶY`"hOGlcHxJ|eϙԇyNq,c?يрxf̏s\ ,S~8 [ 8&XC^挑Jy=նChwm93f-TN8%@*FQ򮒾(QL$#f͇\B#l+Bϑ UWI¾4i9I/QO~(#tXzf 6:ӌ2W|t"~%\#&lz3~/r/f#Fk;1諢P,mŨ; '}D݊Z_Xmm't=,W޽Qpˍo_rp,W{U Gl q@z4a_|x' 8EfCih1`2oo/#{im;} 8:b^Ea&gP9ƒ Fg B-gѼsUQv֒~̤fC86 cخxNZ;B 4w|\e^"IW:t9Lq ZTObTmij޴ժBfDl4]]KY2,Hu_+#>>'; the second prompt (which appears when a command is not complete) is `...'. The prompts can be changed by assignment to .I sys.ps1 or .IR sys.ps2 . The interpreter quits when it reads an EOF at a prompt. When an unhandled exception occurs, a stack trace is printed and control returns to the primary prompt; in non-interactive mode, the interpreter exits after printing the stack trace. The interrupt signal raises the .I Keyboard\%Interrupt exception; other UNIX signals are not caught (except that SIGPIPE is sometimes ignored, in favor of the .I IOError exception). Error messages are written to stderr. .SH FILES AND DIRECTORIES These are subject to difference depending on local installation conventions; ${prefix} and ${exec_prefix} are installation-dependent and should be interpreted as for GNU software; they may be the same. The default for both is \fI/usr/local\fP. .IP \fI${exec_prefix}/bin/python\fP Recommended location of the interpreter. .PP .I ${prefix}/lib/python .br .I ${exec_prefix}/lib/python .RS Recommended locations of the directories containing the standard modules. .RE .PP .I ${prefix}/include/python .br .I ${exec_prefix}/include/python .RS Recommended locations of the directories containing the include files needed for developing Python extensions and embedding the interpreter. .RE .SH ENVIRONMENT VARIABLES .IP PYTHONHOME Change the location of the standard Python libraries. By default, the libraries are searched in ${prefix}/lib/python and ${exec_prefix}/lib/python, where ${prefix} and ${exec_prefix} are installation-dependent directories, both defaulting to \fI/usr/local\fP. When $PYTHONHOME is set to a single directory, its value replaces both ${prefix} and ${exec_prefix}. To specify different values for these, set $PYTHONHOME to ${prefix}:${exec_prefix}. .IP PYTHONPATH Augments the default search path for module files. The format is the same as the shell's $PATH: one or more directory pathnames separated by colons. Non-existent directories are silently ignored. The default search path is installation dependent, but generally begins with ${prefix}/lib/python (see PYTHONHOME above). The default search path is always appended to $PYTHONPATH. If a script argument is given, the directory containing the script is inserted in the path in front of $PYTHONPATH. The search path can be manipulated from within a Python program as the variable .IR sys.path . .IP PYTHONSTARTUP If this is the name of a readable file, the Python commands in that file are executed before the first prompt is displayed in interactive mode. The file is executed in the same name space where interactive commands are executed so that objects defined or imported in it can be used without qualification in the interactive session. You can also change the prompts .I sys.ps1 and .I sys.ps2 in this file. .IP PYTHONOPTIMIZE If this is set to a non-empty string it is equivalent to specifying the \fB\-O\fP option. If set to an integer, it is equivalent to specifying \fB\-O\fP multiple times. .IP PYTHONDEBUG If this is set to a non-empty string it is equivalent to specifying the \fB\-d\fP option. If set to an integer, it is equivalent to specifying \fB\-d\fP multiple times. .IP PYTHONDONTWRITEBYTECODE If this is set to a non-empty string it is equivalent to specifying the \fB\-B\fP option (don't try to write .I .pyc files). .IP PYTHONINSPECT If this is set to a non-empty string it is equivalent to specifying the \fB\-i\fP option. .IP PYTHONIOENCODING If this is set before running the interpreter, it overrides the encoding used for stdin/stdout/stderr, in the syntax .IB encodingname ":" errorhandler The .IB errorhandler part is optional and has the same meaning as in str.encode. For stderr, the .IB errorhandler part is ignored; the handler will always be \'backslashreplace\'. .IP PYTHONNOUSERSITE If this is set to a non-empty string it is equivalent to specifying the \fB\-s\fP option (Don't add the user site directory to sys.path). .IP PYTHONUNBUFFERED If this is set to a non-empty string it is equivalent to specifying the \fB\-u\fP option. .IP PYTHONVERBOSE If this is set to a non-empty string it is equivalent to specifying the \fB\-v\fP option. If set to an integer, it is equivalent to specifying \fB\-v\fP multiple times. .IP PYTHONWARNINGS If this is set to a comma-separated string it is equivalent to specifying the \fB\-W\fP option for each separate value. .IP PYTHONHASHSEED If this variable is set to "random", a random value is used to seed the hashes of str and bytes objects. If PYTHONHASHSEED is set to an integer value, it is used as a fixed seed for generating the hash() of the types covered by the hash randomization. Its purpose is to allow repeatable hashing, such as for selftests for the interpreter itself, or to allow a cluster of python processes to share hash values. The integer must be a decimal number in the range [0,4294967295]. Specifying the value 0 will disable hash randomization. .IP PYTHONMALLOC Set the Python memory allocators and/or install debug hooks. The available memory allocators are .IR malloc and .IR pymalloc . The available debug hooks are .IR debug , .IR malloc_debug , and .IR pymalloc_debug . .IP When Python is compiled in debug mode, the default is .IR pymalloc_debug and the debug hooks are automatically used. Otherwise, the default is .IR pymalloc . .IP PYTHONMALLOCSTATS If set to a non-empty string, Python will print statistics of the pymalloc memory allocator every time a new pymalloc object arena is created, and on shutdown. .IP This variable is ignored if the .RB $ PYTHONMALLOC environment variable is used to force the .BR malloc (3) allocator of the C library, or if Python is configured without pymalloc support. .IP PYTHONASYNCIODEBUG If this environment variable is set to a non-empty string, enable the debug mode of the asyncio module. .IP PYTHONTRACEMALLOC If this environment variable is set to a non-empty string, start tracing Python memory allocations using the tracemalloc module. .IP The value of the variable is the maximum number of frames stored in a traceback of a trace. For example, .IB PYTHONTRACEMALLOC=1 stores only the most recent frame. .IP PYTHONFAULTHANDLER If this environment variable is set to a non-empty string, .IR faulthandler.enable() is called at startup: install a handler for SIGSEGV, SIGFPE, SIGABRT, SIGBUS and SIGILL signals to dump the Python traceback. .IP This is equivalent to the \fB-X faulthandler\fP option. .IP PYTHONEXECUTABLE If this environment variable is set, .IB sys.argv[0] will be set to its value instead of the value got through the C runtime. Only works on Mac OS X. .IP PYTHONUSERBASE Defines the user base directory, which is used to compute the path of the user .IR site-packages directory and Distutils installation paths for .IR "python setup\.py install \-\-user" . .IP PYTHONPROFILEIMPORTTIME If this environment variable is set to a non-empty string, Python will show how long each import takes. This is exactly equivalent to setting \fB\-X importtime\fP on the command line. .IP PYTHONBREAKPOINT If this environment variable is set to 0, it disables the default debugger. It can be set to the callable of your debugger of choice. .SS Debug-mode variables Setting these variables only has an effect in a debug build of Python, that is, if Python was configured with the \fB\--with-pydebug\fP build option. .IP PYTHONTHREADDEBUG If this environment variable is set, Python will print threading debug info. .IP PYTHONDUMPREFS If this environment variable is set, Python will dump objects and reference counts still alive after shutting down the interpreter. .SH AUTHOR The Python Software Foundation: https://www.python.org/psf/ .SH INTERNET RESOURCES Main website: https://www.python.org/ .br Documentation: https://docs.python.org/ .br Developer resources: https://devguide.python.org/ .br Downloads: https://www.python.org/downloads/ .br Module repository: https://pypi.org/ .br Newsgroups: comp.lang.python, comp.lang.python.announce .SH LICENSING Python is distributed under an Open Source license. See the file "LICENSE" in the Python source distribution for information on terms & conditions for accessing and otherwise using Python and for a DISCLAIMER OF ALL WARRANTIES. man1/nghttp.1000064400000021460147577143260007011 0ustar00.\" Man page generated from reStructuredText. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "NGHTTP" "1" "Oct 21, 2024" "1.64.0" "nghttp2" .SH NAME nghttp \- HTTP/2 client .SH SYNOPSIS .sp \fBnghttp\fP [OPTIONS]... ... .SH DESCRIPTION .sp HTTP/2 client .INDENT 0.0 .TP .B Specify URI to access. .UNINDENT .SH OPTIONS .INDENT 0.0 .TP .B \-v, \-\-verbose Print debug information such as reception and transmission of frames and name/value pairs. Specifying this option multiple times increases verbosity. .UNINDENT .INDENT 0.0 .TP .B \-n, \-\-null\-out Discard downloaded data. .UNINDENT .INDENT 0.0 .TP .B \-O, \-\-remote\-name Save download data in the current directory. The filename is derived from URI. If URI ends with \(aq\fI/\fP\(aq, \(aqindex.html\(aq is used as a filename. Not implemented yet. .UNINDENT .INDENT 0.0 .TP .B \-t, \-\-timeout= Timeout each request after . Set 0 to disable timeout. .UNINDENT .INDENT 0.0 .TP .B \-w, \-\-window\-bits= Sets the stream level initial window size to 2**\-1. .UNINDENT .INDENT 0.0 .TP .B \-W, \-\-connection\-window\-bits= Sets the connection level initial window size to 2**\-1. .UNINDENT .INDENT 0.0 .TP .B \-a, \-\-get\-assets Download assets such as stylesheets, images and script files linked from the downloaded resource. Only links whose origins are the same with the linking resource will be downloaded. nghttp prioritizes resources using HTTP/2 dependency based priority. The priority order, from highest to lowest, is html itself, css, javascript and images. .UNINDENT .INDENT 0.0 .TP .B \-s, \-\-stat Print statistics. .UNINDENT .INDENT 0.0 .TP .B \-H, \-\-header=
Add a header to the requests. Example: \fI\%\-H\fP\(aq:method: PUT\(aq .UNINDENT .INDENT 0.0 .TP .B \-\-trailer=
Add a trailer header to the requests.
must not include pseudo header field (header field name starting with \(aq:\(aq). To send trailer, one must use \fI\%\-d\fP option to send request body. Example: \fI\%\-\-trailer\fP \(aqfoo: bar\(aq. .UNINDENT .INDENT 0.0 .TP .B \-\-cert= Use the specified client certificate file. The file must be in PEM format. .UNINDENT .INDENT 0.0 .TP .B \-\-key= Use the client private key file. The file must be in PEM format. .UNINDENT .INDENT 0.0 .TP .B \-d, \-\-data= Post FILE to server. If \(aq\-\(aq is given, data will be read from stdin. .UNINDENT .INDENT 0.0 .TP .B \-m, \-\-multiply= Request each URI times. By default, same URI is not requested twice. This option disables it too. .UNINDENT .INDENT 0.0 .TP .B \-u, \-\-upgrade Perform HTTP Upgrade for HTTP/2. This option is ignored if the request URI has https scheme. If \fI\%\-d\fP is used, the HTTP upgrade request is performed with OPTIONS method. .UNINDENT .INDENT 0.0 .TP .B \-p, \-\-weight= Sets weight of given URI. This option can be used multiple times, and N\-th \fI\%\-p\fP option sets weight of N\-th URI in the command line. If the number of \fI\%\-p\fP option is less than the number of URI, the last \fI\%\-p\fP option value is repeated. If there is no \fI\%\-p\fP option, default weight, 16, is assumed. The valid value range is [1, 256], inclusive. .UNINDENT .INDENT 0.0 .TP .B \-M, \-\-peer\-max\-concurrent\-streams= Use as SETTINGS_MAX_CONCURRENT_STREAMS value of remote endpoint as if it is received in SETTINGS frame. .sp Default: \fB100\fP .UNINDENT .INDENT 0.0 .TP .B \-c, \-\-header\-table\-size= Specify decoder header table size. If this option is used multiple times, and the minimum value among the given values except for last one is strictly less than the last value, that minimum value is set in SETTINGS frame payload before the last value, to simulate multiple header table size change. .UNINDENT .INDENT 0.0 .TP .B \-\-encoder\-header\-table\-size= Specify encoder header table size. The decoder (server) specifies the maximum dynamic table size it accepts. Then the negotiated dynamic table size is the minimum of this option value and the value which server specified. .UNINDENT .INDENT 0.0 .TP .B \-b, \-\-padding= Add at most bytes to a frame payload as padding. Specify 0 to disable padding. .UNINDENT .INDENT 0.0 .TP .B \-r, \-\-har= Output HTTP transactions in HAR format. If \(aq\-\(aq is given, data is written to stdout. .UNINDENT .INDENT 0.0 .TP .B \-\-color Force colored log output. .UNINDENT .INDENT 0.0 .TP .B \-\-continuation Send large header to test CONTINUATION. .UNINDENT .INDENT 0.0 .TP .B \-\-no\-content\-length Don\(aqt send content\-length header field. .UNINDENT .INDENT 0.0 .TP .B \-\-no\-dep Don\(aqt send dependency based priority hint to server. .UNINDENT .INDENT 0.0 .TP .B \-\-hexdump Display the incoming traffic in hexadecimal (Canonical hex+ASCII display). If SSL/TLS is used, decrypted data are used. .UNINDENT .INDENT 0.0 .TP .B \-\-no\-push Disable server push. .UNINDENT .INDENT 0.0 .TP .B \-\-max\-concurrent\-streams= The number of concurrent pushed streams this client accepts. .UNINDENT .INDENT 0.0 .TP .B \-\-expect\-continue Perform an Expect/Continue handshake: wait to send DATA (up to a short timeout) until the server sends a 100 Continue interim response. This option is ignored unless combined with the \fI\%\-d\fP option. .UNINDENT .INDENT 0.0 .TP .B \-y, \-\-no\-verify\-peer Suppress warning on server certificate verification failure. .UNINDENT .INDENT 0.0 .TP .B \-\-ktls Enable ktls. .UNINDENT .INDENT 0.0 .TP .B \-\-no\-rfc7540\-pri Disable RFC7540 priorities. .UNINDENT .INDENT 0.0 .TP .B \-\-version Display version information and exit. .UNINDENT .INDENT 0.0 .TP .B \-h, \-\-help Display this help and exit. .UNINDENT .sp The argument is an integer and an optional unit (e.g., 10K is 10 * 1024). Units are K, M and G (powers of 1024). .sp The argument is an integer and an optional unit (e.g., 1s is 1 second and 500ms is 500 milliseconds). Units are h, m, s or ms (hours, minutes, seconds and milliseconds, respectively). If a unit is omitted, a second is used as unit. .SH DEPENDENCY BASED PRIORITY .sp nghttp sends priority hints to server by default unless \fI\%\-\-no\-dep\fP is used. nghttp mimics the way Firefox employs to manages dependency using idle streams. We follows the behaviour of Firefox Nightly as of April, 2015, and nghttp\(aqs behaviour is very static and could be different from Firefox in detail. But reproducing the same behaviour of Firefox is not our goal. The goal is provide the easy way to test out the dependency priority in server implementation. .sp When connection is established, nghttp sends 5 PRIORITY frames to idle streams 3, 5, 7, 9 and 11 to create \(dqanchor\(dq nodes in dependency tree: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C +\-\-\-\-\-+ |id=0 | +\-\-\-\-\-+ ^ ^ ^ w=201 / | \e w=1 / | \e / w=101| \e +\-\-\-\-\-+ +\-\-\-\-\-+ +\-\-\-\-\-+ |id=3 | |id=5 | |id=7 | +\-\-\-\-\-+ +\-\-\-\-\-+ +\-\-\-\-\-+ ^ ^ w=1 | w=1 | | | +\-\-\-\-\-+ +\-\-\-\-\-+ |id=11| |id=9 | +\-\-\-\-\-+ +\-\-\-\-\-+ .ft P .fi .UNINDENT .UNINDENT .sp In the above figure, \fBid\fP means stream ID, and \fBw\fP means weight. The stream 0 is non\-existence stream, and forms the root of the tree. The stream 7 and 9 are not used for now. .sp The URIs given in the command\-line depend on stream 11 with the weight given in \fI\%\-p\fP option, which defaults to 16. .sp If \fI\%\-a\fP option is used, nghttp parses the resource pointed by URI given in command\-line as html, and extracts resource links from it. When requesting those resources, nghttp uses dependency according to its resource type. .sp For CSS, and Javascript files inside \(dqhead\(dq element, they depend on stream 3 with the weight 2. The Javascript files outside \(dqhead\(dq element depend on stream 5 with the weight 2. The mages depend on stream 11 with the weight 12. The other resources (e.g., icon) depend on stream 11 with the weight 2. .SH SEE ALSO .sp \fBnghttpd(1)\fP, \fBnghttpx(1)\fP, \fBh2load(1)\fP .SH AUTHOR Tatsuhiro Tsujikawa .SH COPYRIGHT 2012, 2015, 2016, Tatsuhiro Tsujikawa .\" Generated by docutils manpage writer. . man1/nghttpx.1000064400000272140147577143260007204 0ustar00.\" Man page generated from reStructuredText. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "NGHTTPX" "1" "Oct 21, 2024" "1.64.0" "nghttp2" .SH NAME nghttpx \- HTTP/2 proxy .SH SYNOPSIS .sp \fBnghttpx\fP [OPTIONS]... [ ] .SH DESCRIPTION .sp A reverse proxy for HTTP/3, HTTP/2, and HTTP/1. .INDENT 0.0 .TP .B Set path to server\(aqs private key. Required unless \(dqno\-tls\(dq parameter is used in \fI\%\-\-frontend\fP option. .UNINDENT .INDENT 0.0 .TP .B Set path to server\(aqs certificate. Required unless \(dqno\-tls\(dq parameter is used in \fI\%\-\-frontend\fP option. To make OCSP stapling work, this must be an absolute path. .UNINDENT .SH OPTIONS .sp The options are categorized into several groups. .SS Connections .INDENT 0.0 .TP .B \-b, \-\-backend=(,|unix:)[;[[:...]][[;]...] Set backend host and port. The multiple backend addresses are accepted by repeating this option. UNIX domain socket can be specified by prefixing path name with \(dqunix:\(dq (e.g., unix:/var/run/backend.sock). .sp Optionally, if s are given, the backend address is only used if request matches the pattern. The pattern matching is closely designed to ServeMux in net/http package of Go programming language. consists of path, host + path or just host. The path must start with \(dq\fI/\fP\(dq. If it ends with \(dq\fI/\fP\(dq, it matches all request path in its subtree. To deal with the request to the directory without trailing slash, the path which ends with \(dq\fI/\fP\(dq also matches the request path which only lacks trailing \(aq\fI/\fP\(aq (e.g., path \(dq\fI/foo/\fP\(dq matches request path \(dq\fI/foo\fP\(dq). If it does not end with \(dq\fI/\fP\(dq, it performs exact match against the request path. If host is given, it performs a match against the request host. For a request received on the frontend listener with \(dqsni\-fwd\(dq parameter enabled, SNI host is used instead of a request host. If host alone is given, \(dq\fI/\fP\(dq is appended to it, so that it matches all request paths under the host (e.g., specifying \(dqnghttp2.org\(dq equals to \(dqnghttp2.org/\(dq). CONNECT method is treated specially. It does not have path, and we don\(aqt allow empty path. To workaround this, we assume that CONNECT method has \(dq\fI/\fP\(dq as path. .sp Patterns with host take precedence over patterns with just path. Then, longer patterns take precedence over shorter ones. .sp Host can include \(dq*\(dq in the left most position to indicate wildcard match (only suffix match is done). The \(dq*\(dq must match at least one character. For example, host pattern \(dq*.nghttp2.org\(dq matches against \(dqwww.nghttp2.org\(dq and \(dqgit.ngttp2.org\(dq, but does not match against \(dqnghttp2.org\(dq. The exact hosts match takes precedence over the wildcard hosts match. .sp If path part ends with \(dq*\(dq, it is treated as wildcard path. The wildcard path behaves differently from the normal path. For normal path, match is made around the boundary of path component separator,\(dq\fI/\fP\(dq. On the other hand, the wildcard path does not take into account the path component separator. All paths which include the wildcard path without last \(dq*\(dq as prefix, and are strictly longer than wildcard path without last \(dq*\(dq are matched. \(dq*\(dq must match at least one character. For example, the pattern \(dq\fI/foo*\fP\(dq matches \(dq\fI/foo/\fP\(dq and \(dq\fI/foobar\fP\(dq. But it does not match \(dq\fI/foo\fP\(dq, or \(dq\fI/fo\fP\(dq. .sp If is omitted or empty string, \(dq\fI/\fP\(dq is used as pattern, which matches all request paths (catch\-all pattern). The catch\-all backend must be given. .sp When doing a match, nghttpx made some normalization to pattern, request host and path. For host part, they are converted to lower case. For path part, percent\-encoded unreserved characters defined in RFC 3986 are decoded, and any dot\-segments (\(dq..\(dq and \(dq.\(dq) are resolved and removed. .sp For example, \fI\%\-b\fP\(aq127.0.0.1,8080;nghttp2.org/httpbin/\(aq matches the request host \(dqnghttp2.org\(dq and the request path \(dq\fI/httpbin/get\fP\(dq, but does not match the request host \(dqnghttp2.org\(dq and the request path \(dq\fI/index.html\fP\(dq. .sp The multiple s can be specified, delimiting them by \(dq:\(dq. Specifying \fI\%\-b\fP\(aq127.0.0.1,8080;nghttp2.org:www.nghttp2.org\(aq has the same effect to specify \fI\%\-b\fP\(aq127.0.0.1,8080;nghttp2.org\(aq and \fI\%\-b\fP\(aq127.0.0.1,8080;www.nghttp2.org\(aq. .sp The backend addresses sharing same are grouped together forming load balancing group. .sp Several parameters are accepted after . The parameters are delimited by \(dq;\(dq. The available parameters are: \(dqproto=\(dq, \(dqtls\(dq, \(dqsni=\(dq, \(dqfall=\(dq, \(dqrise=\(dq, \(dqaffinity=\(dq, \(dqdns\(dq, \(dqredirect\-if\-not\-tls\(dq, \(dqupgrade\-scheme\(dq, \(dqmruby=\(dq, \(dqread\-timeout=\(dq, \(dqwrite\-timeout=\(dq, \(dqgroup=\(dq, \(dqgroup\-weight=\(dq, \(dqweight=\(dq, and \(dqdnf\(dq. The parameter consists of keyword, and optionally followed by \(dq=\(dq and value. For example, the parameter \(dqproto=h2\(dq consists of the keyword \(dqproto\(dq and value \(dqh2\(dq. The parameter \(dqtls\(dq consists of the keyword \(dqtls\(dq without value. Each parameter is described as follows. .sp The backend application protocol can be specified using optional \(dqproto\(dq parameter, and in the form of \(dqproto=\(dq. should be one of the following list without quotes: \(dqh2\(dq, \(dqhttp/1.1\(dq. The default value of is \(dqhttp/1.1\(dq. Note that usually \(dqh2\(dq refers to HTTP/2 over TLS. But in this option, it may mean HTTP/2 over cleartext TCP unless \(dqtls\(dq keyword is used (see below). .sp TLS can be enabled by specifying optional \(dqtls\(dq parameter. TLS is not enabled by default. .sp With \(dqsni=\(dq parameter, it can override the TLS SNI field value with given . This will default to the backend name .sp The feature to detect whether backend is online or offline can be enabled using optional \(dqfall\(dq and \(dqrise\(dq parameters. Using \(dqfall=\(dq parameter, if nghttpx cannot connect to a this backend times in a row, this backend is assumed to be offline, and it is excluded from load balancing. If is 0, this backend never be excluded from load balancing whatever times nghttpx cannot connect to it, and this is the default. There is also \(dqrise=\(dq parameter. After backend was excluded from load balancing group, nghttpx periodically attempts to make a connection to the failed backend, and if the connection is made successfully times in a row, the backend is assumed to be online, and it is now eligible for load balancing target. If is 0, a backend is permanently offline, once it goes in that state, and this is the default behaviour. .sp The session affinity is enabled using \(dqaffinity=\(dq parameter. If \(dqip\(dq is given in , client IP based session affinity is enabled. If \(dqcookie\(dq is given in , cookie based session affinity is enabled. If \(dqnone\(dq is given in , session affinity is disabled, and this is the default. The session affinity is enabled per . If at least one backend has \(dqaffinity\(dq parameter, and its is not \(dqnone\(dq, session affinity is enabled for all backend servers sharing the same . It is advised to set \(dqaffinity\(dq parameter to all backend explicitly if session affinity is desired. The session affinity may break if one of the backend gets unreachable, or backend settings are reloaded or replaced by API. .sp If \(dqaffinity=cookie\(dq is used, the additional configuration is required. \(dqaffinity\-cookie\-name=\(dq must be used to specify a name of cookie to use. Optionally, \(dqaffinity\-cookie\-path=\(dq can be used to specify a path which cookie is applied. The optional \(dqaffinity\-cookie\-secure=\(dq controls the Secure attribute of a cookie. The default value is \(dqauto\(dq, and the Secure attribute is determined by a request scheme. If a request scheme is \(dqhttps\(dq, then Secure attribute is set. Otherwise, it is not set. If is \(dqyes\(dq, the Secure attribute is always set. If is \(dqno\(dq, the Secure attribute is always omitted. \(dqaffinity\-cookie\-stickiness=\(dq controls stickiness of this affinity. If is \(dqloose\(dq, removing or adding a backend server might break the affinity and the request might be forwarded to a different backend server. If is \(dqstrict\(dq, removing the designated backend server breaks affinity, but adding new backend server does not cause breakage. If the designated backend server becomes unavailable, new backend server is chosen as if the request does not have an affinity cookie. defaults to \(dqloose\(dq. .sp By default, name resolution of backend host name is done at start up, or reloading configuration. If \(dqdns\(dq parameter is given, name resolution takes place dynamically. This is useful if backend address changes frequently. If \(dqdns\(dq is given, name resolution of backend host name at start up, or reloading configuration is skipped. .sp If \(dqredirect\-if\-not\-tls\(dq parameter is used, the matched backend requires that frontend connection is TLS encrypted. If it isn\(aqt, nghttpx responds to the request with 308 status code, and https URI the client should use instead is included in Location header field. The port number in redirect URI is 443 by default, and can be changed using \fI\%\-\-redirect\-https\-port\fP option. If at least one backend has \(dqredirect\-if\-not\-tls\(dq parameter, this feature is enabled for all backend servers sharing the same . It is advised to set \(dqredirect\-if\-no\-tls\(dq parameter to all backends explicitly if this feature is desired. .sp If \(dqupgrade\-scheme\(dq parameter is used along with \(dqtls\(dq parameter, HTTP/2 :scheme pseudo header field is changed to \(dqhttps\(dq from \(dqhttp\(dq when forwarding a request to this particular backend. This is a workaround for a backend server which requires \(dqhttps\(dq :scheme pseudo header field on TLS encrypted connection. .sp \(dqmruby=\(dq parameter specifies a path to mruby script file which is invoked when this pattern is matched. All backends which share the same pattern must have the same mruby path. .sp \(dqread\-timeout=\(dq and \(dqwrite\-timeout=\(dq parameters specify the read and write timeout of the backend connection when this pattern is matched. All backends which share the same pattern must have the same timeouts. If these timeouts are entirely omitted for a pattern, \fI\%\-\-backend\-read\-timeout\fP and \fI\%\-\-backend\-write\-timeout\fP are used. .sp \(dqgroup=\(dq parameter specifies the name of group this backend address belongs to. By default, it belongs to the unnamed default group. The name of group is unique per pattern. \(dqgroup\-weight=\(dq parameter specifies the weight of the group. The higher weight gets more frequently selected by the load balancing algorithm. must be [1, 256] inclusive. The weight 8 has 4 times more weight than 2. must be the same for all addresses which share the same . If \(dqgroup\-weight\(dq is omitted in an address, but the other address which belongs to the same group specifies \(dqgroup\-weight\(dq, its weight is used. If no \(dqgroup\-weight\(dq is specified for all addresses, the weight of a group becomes 1. \(dqgroup\(dq and \(dqgroup\-weight\(dq are ignored if session affinity is enabled. .sp \(dqweight=\(dq parameter specifies the weight of the backend address inside a group which this address belongs to. The higher weight gets more frequently selected by the load balancing algorithm. must be [1, 256] inclusive. The weight 8 has 4 times more weight than weight 2. If this parameter is omitted, weight becomes 1. \(dqweight\(dq is ignored if session affinity is enabled. .sp If \(dqdnf\(dq parameter is specified, an incoming request is not forwarded to a backend and just consumed along with the request body (actually a backend server never be contacted). It is expected that the HTTP response is generated by mruby script (see \(dqmruby=\(dq parameter above). \(dqdnf\(dq is an abbreviation of \(dqdo not forward\(dq. .sp Since \(dq;\(dq and \(dq:\(dq are used as delimiter, must not contain these characters. In order to include \(dq:\(dq in , one has to specify \(dq%3A\(dq (which is percent\-encoded from of \(dq:\(dq) instead. Since \(dq;\(dq has special meaning in shell, the option value must be quoted. .sp Default: \fB127.0.0.1,80\fP .UNINDENT .INDENT 0.0 .TP .B \-f, \-\-frontend=(,|unix:)[[;]...] Set frontend host and port. If is \(aq*\(aq, it assumes all addresses including both IPv4 and IPv6. UNIX domain socket can be specified by prefixing path name with \(dqunix:\(dq (e.g., unix:/var/run/nghttpx.sock). This option can be used multiple times to listen to multiple addresses. .sp This option can take 0 or more parameters, which are described below. Note that \(dqapi\(dq and \(dqhealthmon\(dq parameters are mutually exclusive. .sp Optionally, TLS can be disabled by specifying \(dqno\-tls\(dq parameter. TLS is enabled by default. .sp If \(dqsni\-fwd\(dq parameter is used, when performing a match to select a backend server, SNI host name received from the client is used instead of the request host. See \fI\%\-\-backend\fP option about the pattern match. .sp To make this frontend as API endpoint, specify \(dqapi\(dq parameter. This is disabled by default. It is important to limit the access to the API frontend. Otherwise, someone may change the backend server, and break your services, or expose confidential information to the outside the world. .sp To make this frontend as health monitor endpoint, specify \(dqhealthmon\(dq parameter. This is disabled by default. Any requests which come through this address are replied with 200 HTTP status, without no body. .sp To accept PROXY protocol version 1 and 2 on frontend connection, specify \(dqproxyproto\(dq parameter. This is disabled by default. .sp To receive HTTP/3 (QUIC) traffic, specify \(dqquic\(dq parameter. It makes nghttpx listen on UDP port rather than TCP port. UNIX domain socket, \(dqapi\(dq, and \(dqhealthmon\(dq parameters cannot be used with \(dqquic\(dq parameter. .sp Default: \fB*,3000\fP .UNINDENT .INDENT 0.0 .TP .B \-\-backlog= Set listen backlog size. .sp Default: \fB65536\fP .UNINDENT .INDENT 0.0 .TP .B \-\-backend\-address\-family=(auto|IPv4|IPv6) Specify address family of backend connections. If \(dqauto\(dq is given, both IPv4 and IPv6 are considered. If \(dqIPv4\(dq is given, only IPv4 address is considered. If \(dqIPv6\(dq is given, only IPv6 address is considered. .sp Default: \fBauto\fP .UNINDENT .INDENT 0.0 .TP .B \-\-backend\-http\-proxy\-uri= Specify proxy URI in the form \X'tty: link http:/'\fI\%http:/\fP\X'tty: link'/[:@]:. If a proxy requires authentication, specify and . Note that they must be properly percent\-encoded. This proxy is used when the backend connection is HTTP/2. First, make a CONNECT request to the proxy and it connects to the backend on behalf of nghttpx. This forms tunnel. After that, nghttpx performs SSL/TLS handshake with the downstream through the tunnel. The timeouts when connecting and making CONNECT request can be specified by \fI\%\-\-backend\-read\-timeout\fP and \fI\%\-\-backend\-write\-timeout\fP options. .UNINDENT .SS Performance .INDENT 0.0 .TP .B \-n, \-\-workers= Set the number of worker threads. .sp Default: \fB1\fP .UNINDENT .INDENT 0.0 .TP .B \-\-single\-thread Run everything in one thread inside the worker process. This feature is provided for better debugging experience, or for the platforms which lack thread support. If threading is disabled, this option is always enabled. .UNINDENT .INDENT 0.0 .TP .B \-\-read\-rate= Set maximum average read rate on frontend connection. Setting 0 to this option means read rate is unlimited. .sp Default: \fB0\fP .UNINDENT .INDENT 0.0 .TP .B \-\-read\-burst= Set maximum read burst size on frontend connection. Setting 0 to this option means read burst size is unlimited. .sp Default: \fB0\fP .UNINDENT .INDENT 0.0 .TP .B \-\-write\-rate= Set maximum average write rate on frontend connection. Setting 0 to this option means write rate is unlimited. .sp Default: \fB0\fP .UNINDENT .INDENT 0.0 .TP .B \-\-write\-burst= Set maximum write burst size on frontend connection. Setting 0 to this option means write burst size is unlimited. .sp Default: \fB0\fP .UNINDENT .INDENT 0.0 .TP .B \-\-worker\-read\-rate= Set maximum average read rate on frontend connection per worker. Setting 0 to this option means read rate is unlimited. Not implemented yet. .sp Default: \fB0\fP .UNINDENT .INDENT 0.0 .TP .B \-\-worker\-read\-burst= Set maximum read burst size on frontend connection per worker. Setting 0 to this option means read burst size is unlimited. Not implemented yet. .sp Default: \fB0\fP .UNINDENT .INDENT 0.0 .TP .B \-\-worker\-write\-rate= Set maximum average write rate on frontend connection per worker. Setting 0 to this option means write rate is unlimited. Not implemented yet. .sp Default: \fB0\fP .UNINDENT .INDENT 0.0 .TP .B \-\-worker\-write\-burst= Set maximum write burst size on frontend connection per worker. Setting 0 to this option means write burst size is unlimited. Not implemented yet. .sp Default: \fB0\fP .UNINDENT .INDENT 0.0 .TP .B \-\-worker\-frontend\-connections= Set maximum number of simultaneous connections frontend accepts. Setting 0 means unlimited. .sp Default: \fB0\fP .UNINDENT .INDENT 0.0 .TP .B \-\-backend\-connections\-per\-host= Set maximum number of backend concurrent connections (and/or streams in case of HTTP/2) per origin host. This option is meaningful when \fI\%\-\-http2\-proxy\fP option is used. The origin host is determined by authority portion of request URI (or :authority header field for HTTP/2). To limit the number of connections per frontend for default mode, use \fI\%\-\-backend\-connections\-per\-frontend\fP\&. .sp Default: \fB8\fP .UNINDENT .INDENT 0.0 .TP .B \-\-backend\-connections\-per\-frontend= Set maximum number of backend concurrent connections (and/or streams in case of HTTP/2) per frontend. This option is only used for default mode. 0 means unlimited. To limit the number of connections per host with \fI\%\-\-http2\-proxy\fP option, use \fI\%\-\-backend\-connections\-per\-host\fP\&. .sp Default: \fB0\fP .UNINDENT .INDENT 0.0 .TP .B \-\-rlimit\-nofile= Set maximum number of open files (RLIMIT_NOFILE) to . If 0 is given, nghttpx does not set the limit. .sp Default: \fB0\fP .UNINDENT .INDENT 0.0 .TP .B \-\-rlimit\-memlock= Set maximum number of bytes of memory that may be locked into RAM. If 0 is given, nghttpx does not set the limit. .sp Default: \fB0\fP .UNINDENT .INDENT 0.0 .TP .B \-\-backend\-request\-buffer= Set buffer size used to store backend request. .sp Default: \fB16K\fP .UNINDENT .INDENT 0.0 .TP .B \-\-backend\-response\-buffer= Set buffer size used to store backend response. .sp Default: \fB128K\fP .UNINDENT .INDENT 0.0 .TP .B \-\-fastopen= Enables \(dqTCP Fast Open\(dq for the listening socket and limits the maximum length for the queue of connections that have not yet completed the three\-way handshake. If value is 0 then fast open is disabled. .sp Default: \fB0\fP .UNINDENT .INDENT 0.0 .TP .B \-\-no\-kqueue Don\(aqt use kqueue. This option is only applicable for the platforms which have kqueue. For other platforms, this option will be simply ignored. .UNINDENT .SS Timeout .INDENT 0.0 .TP .B \-\-frontend\-http2\-idle\-timeout= Specify idle timeout for HTTP/2 frontend connection. If no active streams exist for this duration, connection is closed. .sp Default: \fB3m\fP .UNINDENT .INDENT 0.0 .TP .B \-\-frontend\-http3\-idle\-timeout= Specify idle timeout for HTTP/3 frontend connection. If no active streams exist for this duration, connection is closed. .sp Default: \fB3m\fP .UNINDENT .INDENT 0.0 .TP .B \-\-frontend\-write\-timeout= Specify write timeout for all frontend connections. .sp Default: \fB30s\fP .UNINDENT .INDENT 0.0 .TP .B \-\-frontend\-keep\-alive\-timeout= Specify keep\-alive timeout for frontend HTTP/1 connection. .sp Default: \fB1m\fP .UNINDENT .INDENT 0.0 .TP .B \-\-frontend\-header\-timeout= Specify duration that the server waits for an HTTP request header fields to be received completely. On timeout, HTTP/1 and HTTP/2 connections are closed. For HTTP/3, the stream is shutdown, and the connection itself is left intact. .sp Default: \fB1m\fP .UNINDENT .INDENT 0.0 .TP .B \-\-stream\-read\-timeout= Specify read timeout for HTTP/2 streams. 0 means no timeout. .sp Default: \fB0\fP .UNINDENT .INDENT 0.0 .TP .B \-\-stream\-write\-timeout= Specify write timeout for HTTP/2 streams. 0 means no timeout. .sp Default: \fB1m\fP .UNINDENT .INDENT 0.0 .TP .B \-\-backend\-read\-timeout= Specify read timeout for backend connection. .sp Default: \fB1m\fP .UNINDENT .INDENT 0.0 .TP .B \-\-backend\-write\-timeout= Specify write timeout for backend connection. .sp Default: \fB30s\fP .UNINDENT .INDENT 0.0 .TP .B \-\-backend\-connect\-timeout= Specify timeout before establishing TCP connection to backend. .sp Default: \fB30s\fP .UNINDENT .INDENT 0.0 .TP .B \-\-backend\-keep\-alive\-timeout= Specify keep\-alive timeout for backend HTTP/1 connection. .sp Default: \fB2s\fP .UNINDENT .INDENT 0.0 .TP .B \-\-listener\-disable\-timeout= After accepting connection failed, connection listener is disabled for a given amount of time. Specifying 0 disables this feature. .sp Default: \fB30s\fP .UNINDENT .INDENT 0.0 .TP .B \-\-frontend\-http2\-setting\-timeout= Specify timeout before SETTINGS ACK is received from client. .sp Default: \fB10s\fP .UNINDENT .INDENT 0.0 .TP .B \-\-backend\-http2\-settings\-timeout= Specify timeout before SETTINGS ACK is received from backend server. .sp Default: \fB10s\fP .UNINDENT .INDENT 0.0 .TP .B \-\-backend\-max\-backoff= Specify maximum backoff interval. This is used when doing health check against offline backend (see \(dqfail\(dq parameter in \fI\%\-\-backend\fP option). It is also used to limit the maximum interval to temporarily disable backend when nghttpx failed to connect to it. These intervals are calculated using exponential backoff, and consecutive failed attempts increase the interval. This option caps its maximum value. .sp Default: \fB2m\fP .UNINDENT .SS SSL/TLS .INDENT 0.0 .TP .B \-\-ciphers= Set allowed cipher list for frontend connection. The format of the string is described in OpenSSL ciphers(1). This option sets cipher suites for TLSv1.2 or earlier. Use \fI\%\-\-tls13\-ciphers\fP for TLSv1.3. .sp Default: \fBECDHE\-ECDSA\-AES128\-GCM\-SHA256:ECDHE\-RSA\-AES128\-GCM\-SHA256:ECDHE\-ECDSA\-AES256\-GCM\-SHA384:ECDHE\-RSA\-AES256\-GCM\-SHA384:ECDHE\-ECDSA\-CHACHA20\-POLY1305:ECDHE\-RSA\-CHACHA20\-POLY1305:DHE\-RSA\-AES128\-GCM\-SHA256:DHE\-RSA\-AES256\-GCM\-SHA384\fP .UNINDENT .INDENT 0.0 .TP .B \-\-tls13\-ciphers= Set allowed cipher list for frontend connection. The format of the string is described in OpenSSL ciphers(1). This option sets cipher suites for TLSv1.3. Use \fI\%\-\-ciphers\fP for TLSv1.2 or earlier. .sp Default: \fBTLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256\fP .UNINDENT .INDENT 0.0 .TP .B \-\-client\-ciphers= Set allowed cipher list for backend connection. The format of the string is described in OpenSSL ciphers(1). This option sets cipher suites for TLSv1.2 or earlier. Use \fI\%\-\-tls13\-client\-ciphers\fP for TLSv1.3. .sp Default: \fBECDHE\-ECDSA\-AES128\-GCM\-SHA256:ECDHE\-RSA\-AES128\-GCM\-SHA256:ECDHE\-ECDSA\-AES256\-GCM\-SHA384:ECDHE\-RSA\-AES256\-GCM\-SHA384:ECDHE\-ECDSA\-CHACHA20\-POLY1305:ECDHE\-RSA\-CHACHA20\-POLY1305:DHE\-RSA\-AES128\-GCM\-SHA256:DHE\-RSA\-AES256\-GCM\-SHA384\fP .UNINDENT .INDENT 0.0 .TP .B \-\-tls13\-client\-ciphers= Set allowed cipher list for backend connection. The format of the string is described in OpenSSL ciphers(1). This option sets cipher suites for TLSv1.3. Use \fI\%\-\-tls13\-client\-ciphers\fP for TLSv1.2 or earlier. .sp Default: \fBTLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256\fP .UNINDENT .INDENT 0.0 .TP .B \-\-ecdh\-curves= Set supported curve list for frontend connections. is a colon separated list of curve NID or names in the preference order. The supported curves depend on the linked OpenSSL library. This function requires OpenSSL >= 1.0.2. .sp Default: \fBX25519:P\-256:P\-384:P\-521\fP .UNINDENT .INDENT 0.0 .TP .B \-k, \-\-insecure Don\(aqt verify backend server\(aqs certificate if TLS is enabled for backend connections. .UNINDENT .INDENT 0.0 .TP .B \-\-cacert= Set path to trusted CA certificate file. It is used in backend TLS connections to verify peer\(aqs certificate. It is also used to verify OCSP response from the script set by \fI\%\-\-fetch\-ocsp\-response\-file\fP\&. The file must be in PEM format. It can contain multiple certificates. If the linked OpenSSL is configured to load system wide certificates, they are loaded at startup regardless of this option. .UNINDENT .INDENT 0.0 .TP .B \-\-private\-key\-passwd\-file= Path to file that contains password for the server\(aqs private key. If none is given and the private key is password protected it\(aqll be requested interactively. .UNINDENT .INDENT 0.0 .TP .B \-\-subcert=:[[;]...] Specify additional certificate and private key file. nghttpx will choose certificates based on the hostname indicated by client using TLS SNI extension. If nghttpx is built with OpenSSL >= 1.0.2, the shared elliptic curves (e.g., P\-256) between client and server are also taken into consideration. This allows nghttpx to send ECDSA certificate to modern clients, while sending RSA based certificate to older clients. This option can be used multiple times. To make OCSP stapling work, must be absolute path. .sp Additional parameter can be specified in . The available is \(dqsct\-dir=\(dq. .sp \(dqsct\-dir=\(dq specifies the path to directory which contains *.sct files for TLS signed_certificate_timestamp extension (RFC 6962). This feature requires OpenSSL >= 1.0.2. See also \fI\%\-\-tls\-sct\-dir\fP option. .UNINDENT .INDENT 0.0 .TP .B \-\-dh\-param\-file= Path to file that contains DH parameters in PEM format. Without this option, DHE cipher suites are not available. .UNINDENT .INDENT 0.0 .TP .B \-\-alpn\-list= Comma delimited list of ALPN protocol identifier sorted in the order of preference. That means most desirable protocol comes first. The parameter must be delimited by a single comma only and any white spaces are treated as a part of protocol string. .sp Default: \fBh2,h2\-16,h2\-14,http/1.1\fP .UNINDENT .INDENT 0.0 .TP .B \-\-verify\-client Require and verify client certificate. .UNINDENT .INDENT 0.0 .TP .B \-\-verify\-client\-cacert= Path to file that contains CA certificates to verify client certificate. The file must be in PEM format. It can contain multiple certificates. .UNINDENT .INDENT 0.0 .TP .B \-\-verify\-client\-tolerate\-expired Accept expired client certificate. Operator should handle the expired client certificate by some means (e.g., mruby script). Otherwise, this option might cause a security risk. .UNINDENT .INDENT 0.0 .TP .B \-\-client\-private\-key\-file= Path to file that contains client private key used in backend client authentication. .UNINDENT .INDENT 0.0 .TP .B \-\-client\-cert\-file= Path to file that contains client certificate used in backend client authentication. .UNINDENT .INDENT 0.0 .TP .B \-\-tls\-min\-proto\-version= Specify minimum SSL/TLS protocol. The name matching is done in case\-insensitive manner. The versions between \fI\%\-\-tls\-min\-proto\-version\fP and \fI\%\-\-tls\-max\-proto\-version\fP are enabled. If the protocol list advertised by client does not overlap this range, you will receive the error message \(dqunknown protocol\(dq. If a protocol version lower than TLSv1.2 is specified, make sure that the compatible ciphers are included in \fI\%\-\-ciphers\fP option. The default cipher list only includes ciphers compatible with TLSv1.2 or above. The available versions are: TLSv1.3, TLSv1.2, TLSv1.1, and TLSv1.0 .sp Default: \fBTLSv1.2\fP .UNINDENT .INDENT 0.0 .TP .B \-\-tls\-max\-proto\-version= Specify maximum SSL/TLS protocol. The name matching is done in case\-insensitive manner. The versions between \fI\%\-\-tls\-min\-proto\-version\fP and \fI\%\-\-tls\-max\-proto\-version\fP are enabled. If the protocol list advertised by client does not overlap this range, you will receive the error message \(dqunknown protocol\(dq. The available versions are: TLSv1.3, TLSv1.2, TLSv1.1, and TLSv1.0 .sp Default: \fBTLSv1.3\fP .UNINDENT .INDENT 0.0 .TP .B \-\-tls\-ticket\-key\-file= Path to file that contains random data to construct TLS session ticket parameters. If aes\-128\-cbc is given in \fI\%\-\-tls\-ticket\-key\-cipher\fP, the file must contain exactly 48 bytes. If aes\-256\-cbc is given in \fI\%\-\-tls\-ticket\-key\-cipher\fP, the file must contain exactly 80 bytes. This options can be used repeatedly to specify multiple ticket parameters. If several files are given, only the first key is used to encrypt TLS session tickets. Other keys are accepted but server will issue new session ticket with first key. This allows session key rotation. Please note that key rotation does not occur automatically. User should rearrange files or change options values and restart nghttpx gracefully. If opening or reading given file fails, all loaded keys are discarded and it is treated as if none of this option is given. If this option is not given or an error occurred while opening or reading a file, key is generated every 1 hour internally and they are valid for 12 hours. This is recommended if ticket key sharing between nghttpx instances is not required. .UNINDENT .INDENT 0.0 .TP .B \-\-tls\-ticket\-key\-memcached=,[;tls] Specify address of memcached server to get TLS ticket keys for session resumption. This enables shared TLS ticket key between multiple nghttpx instances. nghttpx does not set TLS ticket key to memcached. The external ticket key generator is required. nghttpx just gets TLS ticket keys from memcached, and use them, possibly replacing current set of keys. It is up to extern TLS ticket key generator to rotate keys frequently. See \(dqTLS SESSION TICKET RESUMPTION\(dq section in manual page to know the data format in memcached entry. Optionally, memcached connection can be encrypted with TLS by specifying \(dqtls\(dq parameter. .UNINDENT .INDENT 0.0 .TP .B \-\-tls\-ticket\-key\-memcached\-address\-family=(auto|IPv4|IPv6) Specify address family of memcached connections to get TLS ticket keys. If \(dqauto\(dq is given, both IPv4 and IPv6 are considered. If \(dqIPv4\(dq is given, only IPv4 address is considered. If \(dqIPv6\(dq is given, only IPv6 address is considered. .sp Default: \fBauto\fP .UNINDENT .INDENT 0.0 .TP .B \-\-tls\-ticket\-key\-memcached\-interval= Set interval to get TLS ticket keys from memcached. .sp Default: \fB10m\fP .UNINDENT .INDENT 0.0 .TP .B \-\-tls\-ticket\-key\-memcached\-max\-retry= Set maximum number of consecutive retries before abandoning TLS ticket key retrieval. If this number is reached, the attempt is considered as failure, and \(dqfailure\(dq count is incremented by 1, which contributed to the value controlled \fI\%\-\-tls\-ticket\-key\-memcached\-max\-fail\fP option. .sp Default: \fB3\fP .UNINDENT .INDENT 0.0 .TP .B \-\-tls\-ticket\-key\-memcached\-max\-fail= Set maximum number of consecutive failure before disabling TLS ticket until next scheduled key retrieval. .sp Default: \fB2\fP .UNINDENT .INDENT 0.0 .TP .B \-\-tls\-ticket\-key\-cipher= Specify cipher to encrypt TLS session ticket. Specify either aes\-128\-cbc or aes\-256\-cbc. By default, aes\-128\-cbc is used. .UNINDENT .INDENT 0.0 .TP .B \-\-tls\-ticket\-key\-memcached\-cert\-file= Path to client certificate for memcached connections to get TLS ticket keys. .UNINDENT .INDENT 0.0 .TP .B \-\-tls\-ticket\-key\-memcached\-private\-key\-file= Path to client private key for memcached connections to get TLS ticket keys. .UNINDENT .INDENT 0.0 .TP .B \-\-fetch\-ocsp\-response\-file= Path to fetch\-ocsp\-response script file. It should be absolute path. .sp Default: \fB/usr/local/share/nghttp2/fetch\-ocsp\-response\fP .UNINDENT .INDENT 0.0 .TP .B \-\-ocsp\-update\-interval= Set interval to update OCSP response cache. .sp Default: \fB4h\fP .UNINDENT .INDENT 0.0 .TP .B \-\-ocsp\-startup Start accepting connections after initial attempts to get OCSP responses finish. It does not matter some of the attempts fail. This feature is useful if OCSP responses must be available before accepting connections. .UNINDENT .INDENT 0.0 .TP .B \-\-no\-verify\-ocsp nghttpx does not verify OCSP response. .UNINDENT .INDENT 0.0 .TP .B \-\-no\-ocsp Disable OCSP stapling. .UNINDENT .INDENT 0.0 .TP .B \-\-tls\-session\-cache\-memcached=,[;tls] Specify address of memcached server to store session cache. This enables shared session cache between multiple nghttpx instances. Optionally, memcached connection can be encrypted with TLS by specifying \(dqtls\(dq parameter. .UNINDENT .INDENT 0.0 .TP .B \-\-tls\-session\-cache\-memcached\-address\-family=(auto|IPv4|IPv6) Specify address family of memcached connections to store session cache. If \(dqauto\(dq is given, both IPv4 and IPv6 are considered. If \(dqIPv4\(dq is given, only IPv4 address is considered. If \(dqIPv6\(dq is given, only IPv6 address is considered. .sp Default: \fBauto\fP .UNINDENT .INDENT 0.0 .TP .B \-\-tls\-session\-cache\-memcached\-cert\-file= Path to client certificate for memcached connections to store session cache. .UNINDENT .INDENT 0.0 .TP .B \-\-tls\-session\-cache\-memcached\-private\-key\-file= Path to client private key for memcached connections to store session cache. .UNINDENT .INDENT 0.0 .TP .B \-\-tls\-dyn\-rec\-warmup\-threshold= Specify the threshold size for TLS dynamic record size behaviour. During a TLS session, after the threshold number of bytes have been written, the TLS record size will be increased to the maximum allowed (16K). The max record size will continue to be used on the active TLS session. After \fI\%\-\-tls\-dyn\-rec\-idle\-timeout\fP has elapsed, the record size is reduced to 1300 bytes. Specify 0 to always use the maximum record size, regardless of idle period. This behaviour applies to all TLS based frontends, and TLS HTTP/2 backends. .sp Default: \fB1M\fP .UNINDENT .INDENT 0.0 .TP .B \-\-tls\-dyn\-rec\-idle\-timeout= Specify TLS dynamic record size behaviour timeout. See \fI\%\-\-tls\-dyn\-rec\-warmup\-threshold\fP for more information. This behaviour applies to all TLS based frontends, and TLS HTTP/2 backends. .sp Default: \fB1s\fP .UNINDENT .INDENT 0.0 .TP .B \-\-no\-http2\-cipher\-block\-list Allow block listed cipher suite on frontend HTTP/2 connection. See \X'tty: link https://tools.ietf.org/html/rfc7540#appendix-A'\fI\%https://tools.ietf.org/html/rfc7540#appendix\-A\fP\X'tty: link' for the complete HTTP/2 cipher suites block list. .UNINDENT .INDENT 0.0 .TP .B \-\-client\-no\-http2\-cipher\-block\-list Allow block listed cipher suite on backend HTTP/2 connection. See \X'tty: link https://tools.ietf.org/html/rfc7540#appendix-A'\fI\%https://tools.ietf.org/html/rfc7540#appendix\-A\fP\X'tty: link' for the complete HTTP/2 cipher suites block list. .UNINDENT .INDENT 0.0 .TP .B \-\-tls\-sct\-dir= Specifies the directory where *.sct files exist. All *.sct files in are read, and sent as extension_data of TLS signed_certificate_timestamp (RFC 6962) to client. These *.sct files are for the certificate specified in positional command\-line argument , or certificate option in configuration file. For additional certificates, use \fI\%\-\-subcert\fP option. This option requires OpenSSL >= 1.0.2. .UNINDENT .INDENT 0.0 .TP .B \-\-psk\-secrets= Read list of PSK identity and secrets from . This is used for frontend connection. The each line of input file is formatted as :, where is PSK identity, and is secret in hex. An empty line, and line which starts with \(aq#\(aq are skipped. The default enabled cipher list might not contain any PSK cipher suite. In that case, desired PSK cipher suites must be enabled using \fI\%\-\-ciphers\fP option. The desired PSK cipher suite may be block listed by HTTP/2. To use those cipher suites with HTTP/2, consider to use \fI\%\-\-no\-http2\-cipher\-block\-list\fP option. But be aware its implications. .UNINDENT .INDENT 0.0 .TP .B \-\-client\-psk\-secrets= Read PSK identity and secrets from . This is used for backend connection. The each line of input file is formatted as :, where is PSK identity, and is secret in hex. An empty line, and line which starts with \(aq#\(aq are skipped. The first identity and secret pair encountered is used. The default enabled cipher list might not contain any PSK cipher suite. In that case, desired PSK cipher suites must be enabled using \fI\%\-\-client\-ciphers\fP option. The desired PSK cipher suite may be block listed by HTTP/2. To use those cipher suites with HTTP/2, consider to use \fI\%\-\-client\-no\-http2\-cipher\-block\-list\fP option. But be aware its implications. .UNINDENT .INDENT 0.0 .TP .B \-\-tls\-no\-postpone\-early\-data By default, except for QUIC connections, nghttpx postpones forwarding HTTP requests sent in early data, including those sent in partially in it, until TLS handshake finishes. If all backend server recognizes \(dqEarly\-Data\(dq header field, using this option makes nghttpx not postpone forwarding request and get full potential of 0\-RTT data. .UNINDENT .INDENT 0.0 .TP .B \-\-tls\-max\-early\-data= Sets the maximum amount of 0\-RTT data that server accepts. .sp Default: \fB16K\fP .UNINDENT .INDENT 0.0 .TP .B \-\-tls\-ktls Enable ktls. For server, ktls is enable if \fI\%\-\-tls\-session\-cache\-memcached\fP is not configured. .UNINDENT .SS HTTP/2 .INDENT 0.0 .TP .B \-c, \-\-frontend\-http2\-max\-concurrent\-streams= Set the maximum number of the concurrent streams in one frontend HTTP/2 session. .sp Default: \fB100\fP .UNINDENT .INDENT 0.0 .TP .B \-\-backend\-http2\-max\-concurrent\-streams= Set the maximum number of the concurrent streams in one backend HTTP/2 session. This sets maximum number of concurrent opened pushed streams. The maximum number of concurrent requests are set by a remote server. .sp Default: \fB100\fP .UNINDENT .INDENT 0.0 .TP .B \-\-frontend\-http2\-window\-size= Sets the per\-stream initial window size of HTTP/2 frontend connection. .sp Default: \fB65535\fP .UNINDENT .INDENT 0.0 .TP .B \-\-frontend\-http2\-connection\-window\-size= Sets the per\-connection window size of HTTP/2 frontend connection. .sp Default: \fB65535\fP .UNINDENT .INDENT 0.0 .TP .B \-\-backend\-http2\-window\-size= Sets the initial window size of HTTP/2 backend connection. .sp Default: \fB65535\fP .UNINDENT .INDENT 0.0 .TP .B \-\-backend\-http2\-connection\-window\-size= Sets the per\-connection window size of HTTP/2 backend connection. .sp Default: \fB2147483647\fP .UNINDENT .INDENT 0.0 .TP .B \-\-http2\-no\-cookie\-crumbling Don\(aqt crumble cookie header field. .UNINDENT .INDENT 0.0 .TP .B \-\-padding= Add at most bytes to a HTTP/2 frame payload as padding. Specify 0 to disable padding. This option is meant for debugging purpose and not intended to enhance protocol security. .UNINDENT .INDENT 0.0 .TP .B \-\-no\-server\-push Disable HTTP/2 server push. Server push is supported by default mode and HTTP/2 frontend via Link header field. It is also supported if both frontend and backend are HTTP/2 in default mode. In this case, server push from backend session is relayed to frontend, and server push via Link header field is also supported. .UNINDENT .INDENT 0.0 .TP .B \-\-frontend\-http2\-optimize\-write\-buffer\-size (Experimental) Enable write buffer size optimization in frontend HTTP/2 TLS connection. This optimization aims to reduce write buffer size so that it only contains bytes which can send immediately. This makes server more responsive to prioritized HTTP/2 stream because the buffering of lower priority stream is reduced. This option is only effective on recent Linux platform. .UNINDENT .INDENT 0.0 .TP .B \-\-frontend\-http2\-optimize\-window\-size (Experimental) Automatically tune connection level window size of frontend HTTP/2 TLS connection. If this feature is enabled, connection window size starts with the default window size, 65535 bytes. nghttpx automatically adjusts connection window size based on TCP receiving window size. The maximum window size is capped by the value specified by \fI\%\-\-frontend\-http2\-connection\-window\-size\fP\&. Since the stream is subject to stream level window size, it should be adjusted using \fI\%\-\-frontend\-http2\-window\-size\fP option as well. This option is only effective on recent Linux platform. .UNINDENT .INDENT 0.0 .TP .B \-\-frontend\-http2\-encoder\-dynamic\-table\-size= Specify the maximum dynamic table size of HPACK encoder in the frontend HTTP/2 connection. The decoder (client) specifies the maximum dynamic table size it accepts. Then the negotiated dynamic table size is the minimum of this option value and the value which client specified. .sp Default: \fB4K\fP .UNINDENT .INDENT 0.0 .TP .B \-\-frontend\-http2\-decoder\-dynamic\-table\-size= Specify the maximum dynamic table size of HPACK decoder in the frontend HTTP/2 connection. .sp Default: \fB4K\fP .UNINDENT .INDENT 0.0 .TP .B \-\-backend\-http2\-encoder\-dynamic\-table\-size= Specify the maximum dynamic table size of HPACK encoder in the backend HTTP/2 connection. The decoder (backend) specifies the maximum dynamic table size it accepts. Then the negotiated dynamic table size is the minimum of this option value and the value which backend specified. .sp Default: \fB4K\fP .UNINDENT .INDENT 0.0 .TP .B \-\-backend\-http2\-decoder\-dynamic\-table\-size= Specify the maximum dynamic table size of HPACK decoder in the backend HTTP/2 connection. .sp Default: \fB4K\fP .UNINDENT .SS Mode .INDENT 0.0 .TP .B (default mode) Accept HTTP/2, and HTTP/1.1 over SSL/TLS. \(dqno\-tls\(dq parameter is used in \fI\%\-\-frontend\fP option, accept HTTP/2 and HTTP/1.1 over cleartext TCP. The incoming HTTP/1.1 connection can be upgraded to HTTP/2 through HTTP Upgrade. .UNINDENT .INDENT 0.0 .TP .B \-s, \-\-http2\-proxy Like default mode, but enable forward proxy. This is so called HTTP/2 proxy mode. .UNINDENT .SS Logging .INDENT 0.0 .TP .B \-L, \-\-log\-level= Set the severity level of log output. must be one of INFO, NOTICE, WARN, ERROR and FATAL. .sp Default: \fBNOTICE\fP .UNINDENT .INDENT 0.0 .TP .B \-\-accesslog\-file= Set path to write access log. To reopen file, send USR1 signal to nghttpx. .UNINDENT .INDENT 0.0 .TP .B \-\-accesslog\-syslog Send access log to syslog. If this option is used, \fI\%\-\-accesslog\-file\fP option is ignored. .UNINDENT .INDENT 0.0 .TP .B \-\-accesslog\-format= Specify format string for access log. The default format is combined format. The following variables are available: .INDENT 7.0 .IP \(bu 2 $remote_addr: client IP address. .IP \(bu 2 $time_local: local time in Common Log format. .IP \(bu 2 $time_iso8601: local time in ISO 8601 format. .IP \(bu 2 $request: HTTP request line. .IP \(bu 2 $status: HTTP response status code. .IP \(bu 2 $body_bytes_sent: the number of bytes sent to client as response body. .IP \(bu 2 $http_: value of HTTP request header where \(aq_\(aq in is replaced with \(aq\-\(aq. .IP \(bu 2 $remote_port: client port. .IP \(bu 2 $server_port: server port. .IP \(bu 2 $request_time: request processing time in seconds with milliseconds resolution. .IP \(bu 2 $pid: PID of the running process. .IP \(bu 2 $alpn: ALPN identifier of the protocol which generates the response. For HTTP/1, ALPN is always http/1.1, regardless of minor version. .IP \(bu 2 $tls_cipher: cipher used for SSL/TLS connection. .IP \(bu 2 $tls_client_fingerprint_sha256: SHA\-256 fingerprint of client certificate. .IP \(bu 2 $tls_client_fingerprint_sha1: SHA\-1 fingerprint of client certificate. .IP \(bu 2 $tls_client_subject_name: subject name in client certificate. .IP \(bu 2 $tls_client_issuer_name: issuer name in client certificate. .IP \(bu 2 $tls_client_serial: serial number in client certificate. .IP \(bu 2 $tls_protocol: protocol for SSL/TLS connection. .IP \(bu 2 $tls_session_id: session ID for SSL/TLS connection. .IP \(bu 2 $tls_session_reused: \(dqr\(dq if SSL/TLS session was reused. Otherwise, \(dq.\(dq .IP \(bu 2 $tls_sni: SNI server name for SSL/TLS connection. .IP \(bu 2 $backend_host: backend host used to fulfill the request. \(dq\-\(dq if backend host is not available. .IP \(bu 2 $backend_port: backend port used to fulfill the request. \(dq\-\(dq if backend host is not available. .IP \(bu 2 $method: HTTP method .IP \(bu 2 $path: Request path including query. For CONNECT request, authority is recorded. .IP \(bu 2 $path_without_query: $path up to the first \(aq?\(aq character. For CONNECT request, authority is recorded. .IP \(bu 2 $protocol_version: HTTP version (e.g., HTTP/1.1, HTTP/2) .UNINDENT .sp The variable can be enclosed by \(dq{\(dq and \(dq}\(dq for disambiguation (e.g., ${remote_addr}). .sp Default: \fB$remote_addr \- \- [$time_local] \(dq$request\(dq $status $body_bytes_sent \(dq$http_referer\(dq \(dq$http_user_agent\(dq\fP .UNINDENT .INDENT 0.0 .TP .B \-\-accesslog\-write\-early Write access log when response header fields are received from backend rather than when request transaction finishes. .UNINDENT .INDENT 0.0 .TP .B \-\-errorlog\-file= Set path to write error log. To reopen file, send USR1 signal to nghttpx. stderr will be redirected to the error log file unless \fI\%\-\-errorlog\-syslog\fP is used. .sp Default: \fB/dev/stderr\fP .UNINDENT .INDENT 0.0 .TP .B \-\-errorlog\-syslog Send error log to syslog. If this option is used, \fI\%\-\-errorlog\-file\fP option is ignored. .UNINDENT .INDENT 0.0 .TP .B \-\-syslog\-facility= Set syslog facility to . .sp Default: \fBdaemon\fP .UNINDENT .SS HTTP .INDENT 0.0 .TP .B \-\-add\-x\-forwarded\-for Append X\-Forwarded\-For header field to the downstream request. .UNINDENT .INDENT 0.0 .TP .B \-\-strip\-incoming\-x\-forwarded\-for Strip X\-Forwarded\-For header field from inbound client requests. .UNINDENT .INDENT 0.0 .TP .B \-\-no\-add\-x\-forwarded\-proto Don\(aqt append additional X\-Forwarded\-Proto header field to the backend request. If inbound client sets X\-Forwarded\-Proto, and \fI\%\-\-no\-strip\-incoming\-x\-forwarded\-proto\fP option is used, they are passed to the backend. .UNINDENT .INDENT 0.0 .TP .B \-\-no\-strip\-incoming\-x\-forwarded\-proto Don\(aqt strip X\-Forwarded\-Proto header field from inbound client requests. .UNINDENT .INDENT 0.0 .TP .B \-\-add\-forwarded= Append RFC 7239 Forwarded header field with parameters specified in comma delimited list . The supported parameters are \(dqby\(dq, \(dqfor\(dq, \(dqhost\(dq, and \(dqproto\(dq. By default, the value of \(dqby\(dq and \(dqfor\(dq parameters are obfuscated string. See \fI\%\-\-forwarded\-by\fP and \fI\%\-\-forwarded\-for\fP options respectively. Note that nghttpx does not translate non\-standard X\-Forwarded\-* header fields into Forwarded header field, and vice versa. .UNINDENT .INDENT 0.0 .TP .B \-\-strip\-incoming\-forwarded Strip Forwarded header field from inbound client requests. .UNINDENT .INDENT 0.0 .TP .B \-\-forwarded\-by=(obfuscated|ip|) Specify the parameter value sent out with \(dqby\(dq parameter of Forwarded header field. If \(dqobfuscated\(dq is given, the string is randomly generated at startup. If \(dqip\(dq is given, the interface address of the connection, including port number, is sent with \(dqby\(dq parameter. In case of UNIX domain socket, \(dqlocalhost\(dq is used instead of address and port. User can also specify the static obfuscated string. The limitation is that it must start with \(dq_\(dq, and only consists of character set [A\-Za\-z0\-9._\-], as described in RFC 7239. .sp Default: \fBobfuscated\fP .UNINDENT .INDENT 0.0 .TP .B \-\-forwarded\-for=(obfuscated|ip) Specify the parameter value sent out with \(dqfor\(dq parameter of Forwarded header field. If \(dqobfuscated\(dq is given, the string is randomly generated for each client connection. If \(dqip\(dq is given, the remote client address of the connection, without port number, is sent with \(dqfor\(dq parameter. In case of UNIX domain socket, \(dqlocalhost\(dq is used instead of address. .sp Default: \fBobfuscated\fP .UNINDENT .INDENT 0.0 .TP .B \-\-no\-via Don\(aqt append to Via header field. If Via header field is received, it is left unaltered. .UNINDENT .INDENT 0.0 .TP .B \-\-no\-strip\-incoming\-early\-data Don\(aqt strip Early\-Data header field from inbound client requests. .UNINDENT .INDENT 0.0 .TP .B \-\-no\-location\-rewrite Don\(aqt rewrite location header field in default mode. When \fI\%\-\-http2\-proxy\fP is used, location header field will not be altered regardless of this option. .UNINDENT .INDENT 0.0 .TP .B \-\-host\-rewrite Rewrite host and :authority header fields in default mode. When \fI\%\-\-http2\-proxy\fP is used, these headers will not be altered regardless of this option. .UNINDENT .INDENT 0.0 .TP .B \-\-altsvc= Specify protocol ID, port, host and origin of alternative service. , and are optional. Empty and are allowed and they are treated as nothing is specified. They are advertised in alt\-svc header field only in HTTP/1.1 frontend. This option can be used multiple times to specify multiple alternative services. Example: \fI\%\-\-altsvc\fP=\(dqh2,443,,,ma=3600; persist=1\(dq .UNINDENT .INDENT 0.0 .TP .B \-\-http2\-altsvc= Just like \fI\%\-\-altsvc\fP option, but this altsvc is only sent in HTTP/2 frontend. .UNINDENT .INDENT 0.0 .TP .B \-\-add\-request\-header=
Specify additional header field to add to request header set. The field name must be lowercase. This option just appends header field and won\(aqt replace anything already set. This option can be used several times to specify multiple header fields. Example: \fI\%\-\-add\-request\-header\fP=\(dqfoo: bar\(dq .UNINDENT .INDENT 0.0 .TP .B \-\-add\-response\-header=
Specify additional header field to add to response header set. The field name must be lowercase. This option just appends header field and won\(aqt replace anything already set. This option can be used several times to specify multiple header fields. Example: \fI\%\-\-add\-response\-header\fP=\(dqfoo: bar\(dq .UNINDENT .INDENT 0.0 .TP .B \-\-request\-header\-field\-buffer= Set maximum buffer size for incoming HTTP request header field list. This is the sum of header name and value in bytes. If trailer fields exist, they are counted towards this number. .sp Default: \fB64K\fP .UNINDENT .INDENT 0.0 .TP .B \-\-max\-request\-header\-fields= Set maximum number of incoming HTTP request header fields. If trailer fields exist, they are counted towards this number. .sp Default: \fB100\fP .UNINDENT .INDENT 0.0 .TP .B \-\-response\-header\-field\-buffer= Set maximum buffer size for incoming HTTP response header field list. This is the sum of header name and value in bytes. If trailer fields exist, they are counted towards this number. .sp Default: \fB64K\fP .UNINDENT .INDENT 0.0 .TP .B \-\-max\-response\-header\-fields= Set maximum number of incoming HTTP response header fields. If trailer fields exist, they are counted towards this number. .sp Default: \fB500\fP .UNINDENT .INDENT 0.0 .TP .B \-\-error\-page=(|*)= Set file path to custom error page served when nghttpx originally generates HTTP error status code . must be greater than or equal to 400, and at most 599. If \(dq*\(dq is used instead of , it matches all HTTP status code. If error status code comes from backend server, the custom error pages are not used. .UNINDENT .INDENT 0.0 .TP .B \-\-server\-name= Change server response header field value to . .sp Default: \fBnghttpx\fP .UNINDENT .INDENT 0.0 .TP .B \-\-no\-server\-rewrite Don\(aqt rewrite server header field in default mode. When \fI\%\-\-http2\-proxy\fP is used, these headers will not be altered regardless of this option. .UNINDENT .INDENT 0.0 .TP .B \-\-redirect\-https\-port= Specify the port number which appears in Location header field when redirect to HTTPS URI is made due to \(dqredirect\-if\-not\-tls\(dq parameter in \fI\%\-\-backend\fP option. .sp Default: \fB443\fP .UNINDENT .INDENT 0.0 .TP .B \-\-require\-http\-scheme Always require http or https scheme in HTTP request. It also requires that https scheme must be used for an encrypted connection. Otherwise, http scheme must be used. This option is recommended for a server deployment which directly faces clients and the services it provides only require http or https scheme. .UNINDENT .SS API .INDENT 0.0 .TP .B \-\-api\-max\-request\-body= Set the maximum size of request body for API request. .sp Default: \fB32M\fP .UNINDENT .SS DNS .INDENT 0.0 .TP .B \-\-dns\-cache\-timeout= Set duration that cached DNS results remain valid. Note that nghttpx caches the unsuccessful results as well. .sp Default: \fB10s\fP .UNINDENT .INDENT 0.0 .TP .B \-\-dns\-lookup\-timeout= Set timeout that DNS server is given to respond to the initial DNS query. For the 2nd and later queries, server is given time based on this timeout, and it is scaled linearly. .sp Default: \fB5s\fP .UNINDENT .INDENT 0.0 .TP .B \-\-dns\-max\-try= Set the number of DNS query before nghttpx gives up name lookup. .sp Default: \fB2\fP .UNINDENT .INDENT 0.0 .TP .B \-\-frontend\-max\-requests= The number of requests that single frontend connection can process. For HTTP/2, this is the number of streams in one HTTP/2 connection. For HTTP/1, this is the number of keep alive requests. This is hint to nghttpx, and it may allow additional few requests. The default value is unlimited. .UNINDENT .SS Debug .INDENT 0.0 .TP .B \-\-frontend\-http2\-dump\-request\-header= Dumps request headers received by HTTP/2 frontend to the file denoted in . The output is done in HTTP/1 header field format and each header block is followed by an empty line. This option is not thread safe and MUST NOT be used with option \fI\%\-n\fP, where >= 2. .UNINDENT .INDENT 0.0 .TP .B \-\-frontend\-http2\-dump\-response\-header= Dumps response headers sent from HTTP/2 frontend to the file denoted in . The output is done in HTTP/1 header field format and each header block is followed by an empty line. This option is not thread safe and MUST NOT be used with option \fI\%\-n\fP, where >= 2. .UNINDENT .INDENT 0.0 .TP .B \-o, \-\-frontend\-frame\-debug Print HTTP/2 frames in frontend to stderr. This option is not thread safe and MUST NOT be used with option \fI\%\-n\fP=N, where N >= 2. .UNINDENT .SS Process .INDENT 0.0 .TP .B \-D, \-\-daemon Run in a background. If \fI\%\-D\fP is used, the current working directory is changed to \(aq\fI/\fP\(aq. .UNINDENT .INDENT 0.0 .TP .B \-\-pid\-file= Set path to save PID of this program. .UNINDENT .INDENT 0.0 .TP .B \-\-user= Run this program as . This option is intended to be used to drop root privileges. .UNINDENT .INDENT 0.0 .TP .B \-\-single\-process Run this program in a single process mode for debugging purpose. Without this option, nghttpx creates at least 2 processes: main and worker processes. If this option is used, main and worker are unified into a single process. nghttpx still spawns additional process if neverbleed is used. In the single process mode, the signal handling feature is disabled. .UNINDENT .INDENT 0.0 .TP .B \-\-max\-worker\-processes= The maximum number of worker processes. nghttpx spawns new worker process when it reloads its configuration. The previous worker process enters graceful termination period and will terminate when it finishes handling the existing connections. However, if reloading configurations happen very frequently, the worker processes might be piled up if they take a bit long time to finish the existing connections. With this option, if the number of worker processes exceeds the given value, the oldest worker process is terminated immediately. Specifying 0 means no limit and it is the default behaviour. .UNINDENT .INDENT 0.0 .TP .B \-\-worker\-process\-grace\-shutdown\-period= Maximum period for a worker process to terminate gracefully. When a worker process enters in graceful shutdown period (e.g., when nghttpx reloads its configuration) and it does not finish handling the existing connections in the given period of time, it is immediately terminated. Specifying 0 means no limit and it is the default behaviour. .UNINDENT .SS Scripting .INDENT 0.0 .TP .B \-\-mruby\-file= Set mruby script file .UNINDENT .INDENT 0.0 .TP .B \-\-ignore\-per\-pattern\-mruby\-error Ignore mruby compile error for per\-pattern mruby script file. If error occurred, it is treated as if no mruby file were specified for the pattern. .UNINDENT .SS HTTP/3 and QUIC .INDENT 0.0 .TP .B \-\-frontend\-quic\-idle\-timeout= Specify an idle timeout for QUIC connection. .sp Default: \fB30s\fP .UNINDENT .INDENT 0.0 .TP .B \-\-frontend\-quic\-debug\-log Output QUIC debug log to \fI/dev/stderr.\fP .UNINDENT .INDENT 0.0 .TP .B \-\-quic\-bpf\-program\-file= Specify a path to eBPF program file reuseport_kern.o to direct an incoming QUIC UDP datagram to a correct socket. .sp Default: \fB/usr/local/lib/nghttp2/reuseport_kern.o\fP .UNINDENT .INDENT 0.0 .TP .B \-\-frontend\-quic\-early\-data Enable early data on frontend QUIC connections. nghttpx sends \(dqEarly\-Data\(dq header field to a backend server if a request is received in early data and handshake has not finished. All backend servers should deal with possibly replayed requests. .UNINDENT .INDENT 0.0 .TP .B \-\-frontend\-quic\-qlog\-dir= Specify a directory where a qlog file is written for frontend QUIC connections. A qlog file is created per each QUIC connection. The file name is ISO8601 basic format, followed by \(dq\-\(dq, server Source Connection ID and \(dq.sqlog\(dq. .UNINDENT .INDENT 0.0 .TP .B \-\-frontend\-quic\-require\-token Require an address validation token for a frontend QUIC connection. Server sends a token in Retry packet or NEW_TOKEN frame in the previous connection. .UNINDENT .INDENT 0.0 .TP .B \-\-frontend\-quic\-congestion\-controller= Specify a congestion controller algorithm for a frontend QUIC connection. should be either \(dqcubic\(dq or \(dqbbr\(dq. .sp Default: \fBcubic\fP .UNINDENT .INDENT 0.0 .TP .B \-\-frontend\-quic\-secret\-file= Path to file that contains secure random data to be used as QUIC keying materials. It is used to derive keys for encrypting tokens and Connection IDs. It is not used to encrypt QUIC packets. Each line of this file must contain exactly 136 bytes hex\-encoded string (when decoded the byte string is 68 bytes long). The first 3 bits of decoded byte string are used to identify the keying material. An empty line or a line which starts \(aq#\(aq is ignored. The file can contain more than one keying materials. Because the identifier is 3 bits, at most 8 keying materials are read and the remaining data is discarded. The first keying material in the file is primarily used for encryption and decryption for new connection. The other ones are used to decrypt data for the existing connections. Specifying multiple keying materials enables key rotation. Please note that key rotation does not occur automatically. User should update files or change options values and restart nghttpx gracefully. If opening or reading given file fails, all loaded keying materials are discarded and it is treated as if none of this option is given. If this option is not given or an error occurred while opening or reading a file, a keying material is generated internally on startup and reload. .UNINDENT .INDENT 0.0 .TP .B \-\-quic\-server\-id= Specify server ID encoded in Connection ID to identify this particular server instance. Connection ID is encrypted and this part is not visible in public. It must be 4 bytes long and must be encoded in hex string (which is 8 bytes long). If this option is omitted, a random server ID is generated on startup and configuration reload. .UNINDENT .INDENT 0.0 .TP .B \-\-frontend\-quic\-initial\-rtt= Specify the initial RTT of the frontend QUIC connection. .sp Default: \fB333ms\fP .UNINDENT .INDENT 0.0 .TP .B \-\-no\-quic\-bpf Disable eBPF. .UNINDENT .INDENT 0.0 .TP .B \-\-frontend\-http3\-window\-size= Sets the per\-stream initial window size of HTTP/3 frontend connection. .sp Default: \fB256K\fP .UNINDENT .INDENT 0.0 .TP .B \-\-frontend\-http3\-connection\-window\-size= Sets the per\-connection window size of HTTP/3 frontend connection. .sp Default: \fB1M\fP .UNINDENT .INDENT 0.0 .TP .B \-\-frontend\-http3\-max\-window\-size= Sets the maximum per\-stream window size of HTTP/3 frontend connection. The window size is adjusted based on the receiving rate of stream data. The initial value is the value specified by \fI\%\-\-frontend\-http3\-window\-size\fP and the window size grows up to bytes. .sp Default: \fB6M\fP .UNINDENT .INDENT 0.0 .TP .B \-\-frontend\-http3\-max\-connection\-window\-size= Sets the maximum per\-connection window size of HTTP/3 frontend connection. The window size is adjusted based on the receiving rate of stream data. The initial value is the value specified by \fI\%\-\-frontend\-http3\-connection\-window\-size\fP and the window size grows up to bytes. .sp Default: \fB8M\fP .UNINDENT .INDENT 0.0 .TP .B \-\-frontend\-http3\-max\-concurrent\-streams= Set the maximum number of the concurrent streams in one frontend HTTP/3 connection. .sp Default: \fB100\fP .UNINDENT .SS Misc .INDENT 0.0 .TP .B \-\-conf= Load configuration from . Please note that nghttpx always tries to read the default configuration file if \fI\%\-\-conf\fP is not given. .sp Default: \fB/etc/nghttpx/nghttpx.conf\fP .UNINDENT .INDENT 0.0 .TP .B \-\-include= Load additional configurations from . File is read when configuration parser encountered this option. This option can be used multiple times, or even recursively. .UNINDENT .INDENT 0.0 .TP .B \-v, \-\-version Print version and exit. .UNINDENT .INDENT 0.0 .TP .B \-h, \-\-help Print this help and exit. .UNINDENT .sp The argument is an integer and an optional unit (e.g., 10K is 10 * 1024). Units are K, M and G (powers of 1024). .sp The argument is an integer and an optional unit (e.g., 1s is 1 second and 500ms is 500 milliseconds). Units are h, m, s or ms (hours, minutes, seconds and milliseconds, respectively). If a unit is omitted, a second is used as unit. .SH FILES .INDENT 0.0 .TP .B \fI/etc/nghttpx/nghttpx.conf\fP The default configuration file path nghttpx searches at startup. The configuration file path can be changed using \fI\%\-\-conf\fP option. .sp Those lines which are staring \fB#\fP are treated as comment. .sp The option name in the configuration file is the long command\-line option name with leading \fB\-\-\fP stripped (e.g., \fBfrontend\fP). Put \fB=\fP between option name and value. Don\(aqt put extra leading or trailing spaces. .sp When specifying arguments including characters which have special meaning to a shell, we usually use quotes so that shell does not interpret them. When writing this configuration file, quotes for this purpose must not be used. For example, specify additional request header field, do this: .INDENT 7.0 .INDENT 3.5 .sp .nf .ft C add\-request\-header=foo: bar .ft P .fi .UNINDENT .UNINDENT .sp instead of: .INDENT 7.0 .INDENT 3.5 .sp .nf .ft C add\-request\-header=\(dqfoo: bar\(dq .ft P .fi .UNINDENT .UNINDENT .sp The options which do not take argument in the command\-line \fItake\fP argument in the configuration file. Specify \fByes\fP as an argument (e.g., \fBhttp2\-proxy=yes\fP). If other string is given, it is ignored. .sp To specify private key and certificate file which are given as positional arguments in command\-line, use \fBprivate\-key\-file\fP and \fBcertificate\-file\fP\&. .sp \fI\%\-\-conf\fP option cannot be used in the configuration file and will be ignored if specified. .TP .B Error log Error log is written to stderr by default. It can be configured using \fI\%\-\-errorlog\-file\fP\&. The format of log message is as follows: .sp (:) .INDENT 7.0 .TP .B It is a combination of date and time when the log is written. It is in ISO 8601 format. .TP .B It is a main process ID. .TP .B It is a process ID which writes this log. .TP .B It is a thread ID which writes this log. It would be unique within . .TP .B and They are source file name, and line number which produce this log. .TP .B It is a log message body. .UNINDENT .UNINDENT .SH SIGNALS .INDENT 0.0 .TP .B SIGQUIT Shutdown gracefully. First accept pending connections and stop accepting connection. After all connections are handled, nghttpx exits. .TP .B SIGHUP Reload configuration file given in \fI\%\-\-conf\fP\&. .TP .B SIGUSR1 Reopen log files. .UNINDENT .sp SIGUSR2 .INDENT 0.0 .INDENT 3.5 Fork and execute nghttpx. It will execute the binary in the same path with same command\-line arguments and environment variables. As of nghttpx version 1.20.0, the new main process sends SIGQUIT to the original main process when it is ready to serve requests. For the earlier versions of nghttpx, user has to send SIGQUIT to the original main process. .sp The difference between SIGUSR2 (+ SIGQUIT) and SIGHUP is that former is usually used to execute new binary, and the main process is newly spawned. On the other hand, the latter just reloads configuration file, and the same main process continues to exist. .UNINDENT .UNINDENT .sp \fBNOTE:\fP .INDENT 0.0 .INDENT 3.5 nghttpx consists of multiple processes: one process for processing these signals, and another one for processing requests. The former spawns the latter. The former is called main process, and the latter is called worker process. If neverbleed is enabled, the worker process spawns neverbleed daemon process which does RSA key processing. The above signal must be sent to the main process. If the other processes received one of them, it is ignored. This behaviour of these processes may change in the future release. In other words, in the future release, the processes other than main process may terminate upon the reception of these signals. Therefore these signals should not be sent to the processes other than main process. .UNINDENT .UNINDENT .SH SERVER PUSH .sp nghttpx supports HTTP/2 server push in default mode with Link header field. nghttpx looks for Link header field (\X'tty: link http://tools.ietf.org/html/rfc5988'\fI\%RFC 5988\fP\X'tty: link') in response headers from backend server and extracts URI\-reference with parameter \fBrel=preload\fP (see \X'tty: link http://w3c.github.io/preload/#interoperability-with-http-link-header'\fI\%preload\fP\X'tty: link') and pushes those URIs to the frontend client. Here is a sample Link header field to initiate server push: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C Link: ; rel=preload Link: ; rel=preload .ft P .fi .UNINDENT .UNINDENT .sp Currently, the following restriction is applied for server push: .INDENT 0.0 .IP 1. 3 The associated stream must have method \(dqGET\(dq or \(dqPOST\(dq. The associated stream\(aqs status code must be 200. .UNINDENT .sp This limitation may be loosened in the future release. .sp nghttpx also supports server push if both frontend and backend are HTTP/2 in default mode. In this case, in addition to server push via Link header field, server push from backend is forwarded to frontend HTTP/2 session. .sp HTTP/2 server push will be disabled if \fI\%\-\-http2\-proxy\fP is used. .SH UNIX DOMAIN SOCKET .sp nghttpx supports UNIX domain socket with a filename for both frontend and backend connections. .sp Please note that current nghttpx implementation does not delete a socket with a filename. And on start up, if nghttpx detects that the specified socket already exists in the file system, nghttpx first deletes it. However, if SIGUSR2 is used to execute new binary and both old and new configurations use same filename, new binary does not delete the socket and continues to use it. .SH OCSP STAPLING .sp OCSP query is done using external Python script \fBfetch\-ocsp\-response\fP, which has been originally developed in Perl as part of h2o project (\X'tty: link https://github.com/h2o/h2o'\fI\%https://github.com/h2o/h2o\fP\X'tty: link'), and was translated into Python. .sp The script file is usually installed under \fB$(prefix)/share/nghttp2/\fP directory. The actual path to script can be customized using \fI\%\-\-fetch\-ocsp\-response\-file\fP option. .sp If OCSP query is failed, previous OCSP response, if any, is continued to be used. .sp \fI\%\-\-fetch\-ocsp\-response\-file\fP option provides wide range of possibility to manage OCSP response. It can take an arbitrary script or executable. The requirement is that it supports the command\-line interface of \fBfetch\-ocsp\-response\fP script, and it must return a valid DER encoded OCSP response on success. It must return exit code 0 on success, and 75 for temporary error, and the other error code for generic failure. For large cluster of servers, it is not efficient for each server to perform OCSP query using \fBfetch\-ocsp\-response\fP\&. Instead, you can retrieve OCSP response in some way, and store it in a disk or a shared database. Then specify a program in \fI\%\-\-fetch\-ocsp\-response\-file\fP to fetch it from those stores. This could provide a way to share the OCSP response between fleet of servers, and also any OCSP query strategy can be applied which may be beyond the ability of nghttpx itself or \fBfetch\-ocsp\-response\fP script. .SH TLS SESSION RESUMPTION .sp nghttpx supports TLS session resumption through both session ID and session ticket. .SS SESSION ID RESUMPTION .sp By default, session ID is shared by all worker threads. .sp If \fI\%\-\-tls\-session\-cache\-memcached\fP is given, nghttpx will insert serialized session data to memcached with \fBnghttpx:tls\-session\-cache:\fP + lowercase hex string of session ID as a memcached entry key, with expiry time 12 hours. Session timeout is set to 12 hours. .sp By default, connections to memcached server are not encrypted. To enable encryption, use \fBtls\fP keyword in \fI\%\-\-tls\-session\-cache\-memcached\fP option. .SS TLS SESSION TICKET RESUMPTION .sp By default, session ticket is shared by all worker threads. The automatic key rotation is also enabled by default. Every an hour, new encryption key is generated, and previous encryption key becomes decryption only key. We set session timeout to 12 hours, and thus we keep at most 12 keys. .sp If \fI\%\-\-tls\-ticket\-key\-memcached\fP is given, encryption keys are retrieved from memcached. nghttpx just reads keys from memcached; one has to deploy key generator program to update keys frequently (e.g., every 1 hour). The example key generator tlsticketupdate.go is available under contrib directory in nghttp2 archive. The memcached entry key is \fBnghttpx:tls\-ticket\-key\fP\&. The data format stored in memcached is the binary format described below: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C +\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ | VERSION (4) |LEN (2)|KEY(48 or 80) ... +\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ ^ | | | +\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ (LEN, KEY) pair can be repeated .ft P .fi .UNINDENT .UNINDENT .sp All numbers in the above figure is bytes. All integer fields are network byte order. .sp First 4 bytes integer VERSION field, which must be 1. The 2 bytes integer LEN field gives the length of following KEY field, which contains key. If \fI\%\-\-tls\-ticket\-key\-cipher\fP=aes\-128\-cbc is used, LEN must be 48. If \fI\%\-\-tls\-ticket\-key\-cipher\fP=aes\-256\-cbc is used, LEN must be 80. LEN and KEY pair can be repeated multiple times to store multiple keys. The key appeared first is used as encryption key. All the remaining keys are used as decryption only. .sp By default, connections to memcached server are not encrypted. To enable encryption, use \fBtls\fP keyword in \fI\%\-\-tls\-ticket\-key\-memcached\fP option. .sp If \fI\%\-\-tls\-ticket\-key\-file\fP is given, encryption key is read from the given file. In this case, nghttpx does not rotate key automatically. To rotate key, one has to restart nghttpx (see SIGNALS). .SH CERTIFICATE TRANSPARENCY .sp nghttpx supports TLS \fBsigned_certificate_timestamp\fP extension (\X'tty: link https://tools.ietf.org/html/rfc6962'\fI\%RFC 6962\fP\X'tty: link'). The relevant options are \fI\%\-\-tls\-sct\-dir\fP and \fBsct\-dir\fP parameter in \fI\%\-\-subcert\fP\&. They takes a directory, and nghttpx reads all files whose extension is \fB\&.sct\fP under the directory. The \fB*.sct\fP files are encoded as \fBSignedCertificateTimestamp\fP struct described in \X'tty: link https://tools.ietf.org/html/rfc6962#section-3.2'\fI\%section 3.2 of RFC 69662\fP\X'tty: link'\&. This format is the same one used by \X'tty: link https://github.com/grahamedgecombe/nginx-ct'\fI\%nginx\-ct\fP\X'tty: link' and \X'tty: link https://httpd.apache.org/docs/trunk/mod/mod_ssl_ct.html'\fI\%mod_ssl_ct\fP\X'tty: link'\&. \X'tty: link https://github.com/grahamedgecombe/ct-submit'\fI\%ct\-submit\fP\X'tty: link' can be used to submit certificates to log servers, and obtain the \fBSignedCertificateTimestamp\fP struct which can be used with nghttpx. .SH MRUBY SCRIPTING .sp \fBWARNING:\fP .INDENT 0.0 .INDENT 3.5 The current mruby extension API is experimental and not frozen. The API is subject to change in the future release. .UNINDENT .UNINDENT .sp \fBWARNING:\fP .INDENT 0.0 .INDENT 3.5 Almost all string value returned from method, or attribute is a fresh new mruby string, which involves memory allocation, and copies. Therefore, it is strongly recommended to store a return value in a local variable, and use it, instead of calling method or accessing attribute repeatedly. .UNINDENT .UNINDENT .sp nghttpx allows users to extend its capability using mruby scripts. nghttpx has 2 hook points to execute mruby script: request phase and response phase. The request phase hook is invoked after all request header fields are received from client. The response phase hook is invoked after all response header fields are received from backend server. These hooks allows users to modify header fields, or common HTTP variables, like authority or request path, and even return custom response without forwarding request to backend servers. .sp There are 2 levels of mruby script invocations: global and per\-pattern. The global mruby script is set by \fI\%\-\-mruby\-file\fP option and is called for all requests. The per\-pattern mruby script is set by \(dqmruby\(dq parameter in \fI\%\-b\fP option. It is invoked for a request which matches the particular pattern. The order of hook invocation is: global request phase hook, per\-pattern request phase hook, per\-pattern response phase hook, and finally global response phase hook. If a hook returns a response, any later hooks are not invoked. The global request hook is invoked before the pattern matching is made and changing request path may affect the pattern matching. .sp Please note that request and response hooks of per\-pattern mruby script for a single request might not come from the same script. This might happen after a request hook is executed, backend failed for some reason, and at the same time, backend configuration is replaced by API request, and then the request uses new configuration on retry. The response hook from new configuration, if it is specified, will be invoked. .sp The all mruby script will be evaluated once per thread on startup, and it must instantiate object and evaluate it as the return value (e.g., \fBApp.new\fP). This object is called app object. If app object defines \fBon_req\fP method, it is called with \fI\%Nghttpx::Env\fP object on request hook. Similarly, if app object defines \fBon_resp\fP method, it is called with \fI\%Nghttpx::Env\fP object on response hook. For each method invocation, user can can access \fI\%Nghttpx::Request\fP and \fI\%Nghttpx::Response\fP objects via \fI\%Nghttpx::Env#req\fP and \fI\%Nghttpx::Env#resp\fP respectively. .INDENT 0.0 .TP .B Nghttpx::REQUEST_PHASE Constant to represent request phase. .UNINDENT .INDENT 0.0 .TP .B Nghttpx::RESPONSE_PHASE Constant to represent response phase. .UNINDENT .INDENT 0.0 .TP .B class Nghttpx::Env Object to represent current request specific context. .INDENT 7.0 .TP .B attribute [R] req Return \fI\%Request\fP object. .UNINDENT .INDENT 7.0 .TP .B attribute [R] resp Return \fI\%Response\fP object. .UNINDENT .INDENT 7.0 .TP .B attribute [R] ctx Return Ruby hash object. It persists until request finishes. So values set in request phase hook can be retrieved in response phase hook. .UNINDENT .INDENT 7.0 .TP .B attribute [R] phase Return the current phase. .UNINDENT .INDENT 7.0 .TP .B attribute [R] remote_addr Return IP address of a remote client. If connection is made via UNIX domain socket, this returns the string \(dqlocalhost\(dq. .UNINDENT .INDENT 7.0 .TP .B attribute [R] server_addr Return address of server that accepted the connection. This is a string which specified in \fI\%\-\-frontend\fP option, excluding port number, and not a resolved IP address. For UNIX domain socket, this is a path to UNIX domain socket. .UNINDENT .INDENT 7.0 .TP .B attribute [R] server_port Return port number of the server frontend which accepted the connection from client. .UNINDENT .INDENT 7.0 .TP .B attribute [R] tls_used Return true if TLS is used on the connection. .UNINDENT .INDENT 7.0 .TP .B attribute [R] tls_sni Return the TLS SNI value which client sent in this connection. .UNINDENT .INDENT 7.0 .TP .B attribute [R] tls_client_fingerprint_sha256 Return the SHA\-256 fingerprint of a client certificate. .UNINDENT .INDENT 7.0 .TP .B attribute [R] tls_client_fingerprint_sha1 Return the SHA\-1 fingerprint of a client certificate. .UNINDENT .INDENT 7.0 .TP .B attribute [R] tls_client_issuer_name Return the issuer name of a client certificate. .UNINDENT .INDENT 7.0 .TP .B attribute [R] tls_client_subject_name Return the subject name of a client certificate. .UNINDENT .INDENT 7.0 .TP .B attribute [R] tls_client_serial Return the serial number of a client certificate. .UNINDENT .INDENT 7.0 .TP .B attribute [R] tls_client_not_before Return the start date of a client certificate in seconds since the epoch. .UNINDENT .INDENT 7.0 .TP .B attribute [R] tls_client_not_after Return the end date of a client certificate in seconds since the epoch. .UNINDENT .INDENT 7.0 .TP .B attribute [R] tls_cipher Return a TLS cipher negotiated in this connection. .UNINDENT .INDENT 7.0 .TP .B attribute [R] tls_protocol Return a TLS protocol version negotiated in this connection. .UNINDENT .INDENT 7.0 .TP .B attribute [R] tls_session_id Return a session ID for this connection in hex string. .UNINDENT .INDENT 7.0 .TP .B attribute [R] tls_session_reused Return true if, and only if a SSL/TLS session is reused. .UNINDENT .INDENT 7.0 .TP .B attribute [R] alpn Return ALPN identifier negotiated in this connection. .UNINDENT .INDENT 7.0 .TP .B attribute [R] tls_handshake_finished Return true if SSL/TLS handshake has finished. If it returns false in the request phase hook, the request is received in TLSv1.3 early data (0\-RTT) and might be vulnerable to the replay attack. nghttpx will send Early\-Data header field to backend servers to indicate this. .UNINDENT .UNINDENT .INDENT 0.0 .TP .B class Nghttpx::Request Object to represent request from client. The modification to Request object is allowed only in request phase hook. .INDENT 7.0 .TP .B attribute [R] http_version_major Return HTTP major version. .UNINDENT .INDENT 7.0 .TP .B attribute [R] http_version_minor Return HTTP minor version. .UNINDENT .INDENT 7.0 .TP .B attribute [R/W] method HTTP method. On assignment, copy of given value is assigned. We don\(aqt accept arbitrary method name. We will document them later, but well known methods, like GET, PUT and POST, are all supported. .UNINDENT .INDENT 7.0 .TP .B attribute [R/W] authority Authority (i.e., example.org), including optional port component . On assignment, copy of given value is assigned. .UNINDENT .INDENT 7.0 .TP .B attribute [R/W] scheme Scheme (i.e., http, https). On assignment, copy of given value is assigned. .UNINDENT .INDENT 7.0 .TP .B attribute [R/W] path Request path, including query component (i.e., /index.html). On assignment, copy of given value is assigned. The path does not include authority component of URI. This may include query component. nghttpx makes certain normalization for path. It decodes percent\-encoding for unreserved characters (see \X'tty: link https://tools.ietf.org/html/rfc3986#section-2.3'\fI\%https://tools.ietf.org/html/rfc3986#section\-2.3\fP\X'tty: link'), and resolves \(dq..\(dq and \(dq.\(dq. But it may leave characters which should be percent\-encoded as is. So be careful when comparing path against desired string. .UNINDENT .INDENT 7.0 .TP .B attribute [R] headers Return Ruby hash containing copy of request header fields. Changing values in returned hash does not change request header fields actually used in request processing. Use \fI\%Nghttpx::Request#add_header\fP or \fI\%Nghttpx::Request#set_header\fP to change request header fields. .UNINDENT .INDENT 7.0 .TP .B add_header(key, value) Add header entry associated with key. The value can be single string or array of string. It does not replace any existing values associated with key. .UNINDENT .INDENT 7.0 .TP .B set_header(key, value) Set header entry associated with key. The value can be single string or array of string. It replaces any existing values associated with key. .UNINDENT .INDENT 7.0 .TP .B clear_headers() Clear all existing request header fields. .UNINDENT .INDENT 7.0 .TP .B push(uri) Initiate to push resource identified by \fIuri\fP\&. Only HTTP/2 protocol supports this feature. For the other protocols, this method is noop. \fIuri\fP can be absolute URI, absolute path or relative path to the current request. For absolute or relative path, scheme and authority are inherited from the current request. Currently, method is always GET. nghttpx will issue request to backend servers to fulfill this request. The request and response phase hooks will be called for pushed resource as well. .UNINDENT .UNINDENT .INDENT 0.0 .TP .B class Nghttpx::Response Object to represent response from backend server. .INDENT 7.0 .TP .B attribute [R] http_version_major Return HTTP major version. .UNINDENT .INDENT 7.0 .TP .B attribute [R] http_version_minor Return HTTP minor version. .UNINDENT .INDENT 7.0 .TP .B attribute [R/W] status HTTP status code. It must be in the range [200, 999], inclusive. The non\-final status code is not supported in mruby scripting at the moment. .UNINDENT .INDENT 7.0 .TP .B attribute [R] headers Return Ruby hash containing copy of response header fields. Changing values in returned hash does not change response header fields actually used in response processing. Use \fI\%Nghttpx::Response#add_header\fP or \fI\%Nghttpx::Response#set_header\fP to change response header fields. .UNINDENT .INDENT 7.0 .TP .B add_header(key, value) Add header entry associated with key. The value can be single string or array of string. It does not replace any existing values associated with key. .UNINDENT .INDENT 7.0 .TP .B set_header(key, value) Set header entry associated with key. The value can be single string or array of string. It replaces any existing values associated with key. .UNINDENT .INDENT 7.0 .TP .B clear_headers() Clear all existing response header fields. .UNINDENT .INDENT 7.0 .TP .B return(body) Return custom response \fIbody\fP to a client. When this method is called in request phase hook, the request is not forwarded to the backend, and response phase hook for this request will not be invoked. When this method is called in response phase hook, response from backend server is canceled and discarded. The status code and response header fields should be set before using this method. To set status code, use \fI\%Nghttpx::Response#status\fP\&. If status code is not set, 200 is used. To set response header fields, \fI\%Nghttpx::Response#add_header\fP and \fI\%Nghttpx::Response#set_header\fP\&. When this method is invoked in response phase hook, the response headers are filled with the ones received from backend server. To send completely custom header fields, first call \fI\%Nghttpx::Response#clear_headers\fP to erase all existing header fields, and then add required header fields. It is an error to call this method twice for a given request. .UNINDENT .INDENT 7.0 .TP .B send_info(status, headers) Send non\-final (informational) response to a client. \fIstatus\fP must be in the range [100, 199], inclusive. \fIheaders\fP is a hash containing response header fields. Its key must be a string, and the associated value must be either string or array of strings. Since this is not a final response, even if this method is invoked, request is still forwarded to a backend unless \fI\%Nghttpx::Response#return\fP is called. This method can be called multiple times. It cannot be called after \fI\%Nghttpx::Response#return\fP is called. .UNINDENT .UNINDENT .SS MRUBY EXAMPLES .sp Modify request path: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C class App def on_req(env) env.req.path = \(dq/apps#{env.req.path}\(dq end end App.new .ft P .fi .UNINDENT .UNINDENT .sp Don\(aqt forget to instantiate and evaluate object at the last line. .sp Restrict permission of viewing a content to a specific client addresses: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C class App def on_req(env) allowed_clients = [\(dq127.0.0.1\(dq, \(dq::1\(dq] if env.req.path.start_with?(\(dq/log/\(dq) && !allowed_clients.include?(env.remote_addr) then env.resp.status = 404 env.resp.return \(dqpermission denied\(dq end end end App.new .ft P .fi .UNINDENT .UNINDENT .SH API ENDPOINTS .sp nghttpx exposes API endpoints to manipulate it via HTTP based API. By default, API endpoint is disabled. To enable it, add a dedicated frontend for API using \fI\%\-\-frontend\fP option with \(dqapi\(dq parameter. All requests which come from this frontend address, will be treated as API request. .sp The response is normally JSON dictionary, and at least includes the following keys: .INDENT 0.0 .TP .B status The status of the request processing. The following values are defined: .INDENT 7.0 .TP .B Success The request was successful. .TP .B Failure The request was failed. No change has been made. .UNINDENT .TP .B code HTTP status code .UNINDENT .sp Additionally, depending on the API endpoint, \fBdata\fP key may be present, and its value contains the API endpoint specific data. .sp We wrote \(dqnormally\(dq, since nghttpx may return ordinal HTML response in some cases where the error has occurred before reaching API endpoint (e.g., header field is too large). .sp The following section describes available API endpoints. .SS POST /api/v1beta1/backendconfig .sp This API replaces the current backend server settings with the requested ones. The request method should be POST, but PUT is also acceptable. The request body must be nghttpx configuration file format. For configuration file format, see \fI\%FILES\fP section. The line separator inside the request body must be single LF (0x0A). Currently, only \fI\%backend\fP option is parsed, the others are simply ignored. The semantics of this API is replace the current backend with the backend options in request body. Describe the desired set of backend severs, and nghttpx makes it happen. If there is no \fI\%backend\fP option is found in request body, the current set of backend is replaced with the \fI\%backend\fP option\(aqs default value, which is \fB127.0.0.1,80\fP\&. .sp The replacement is done instantly without breaking existing connections or requests. It also avoids any process creation as is the case with hot swapping with signals. .sp The one limitation is that only numeric IP address is allowed in \fI\%backend\fP in request body unless \(dqdns\(dq parameter is used while non numeric hostname is allowed in command\-line or configuration file is read using \fI\%\-\-conf\fP\&. .SS GET /api/v1beta1/configrevision .sp This API returns configuration revision of the current nghttpx. The configuration revision is opaque string, and it changes after each reloading by SIGHUP. With this API, an external application knows that whether nghttpx has finished reloading its configuration by comparing the configuration revisions between before and after reloading. It is recommended to disable persistent (keep\-alive) connection for this purpose in order to avoid to send a request using the reused connection which may bound to an old process. .sp This API returns response including \fBdata\fP key. Its value is JSON object, and it contains at least the following key: .INDENT 0.0 .TP .B configRevision The configuration revision of the current nghttpx .UNINDENT .SH SEE ALSO .sp \fBnghttp(1)\fP, \fBnghttpd(1)\fP, \fBh2load(1)\fP .SH AUTHOR Tatsuhiro Tsujikawa .SH COPYRIGHT 2012, 2015, 2016, Tatsuhiro Tsujikawa .\" Generated by docutils manpage writer. . man1/h2load.1000064400000036656147577143260006673 0ustar00.\" Man page generated from reStructuredText. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "H2LOAD" "1" "Oct 21, 2024" "1.64.0" "nghttp2" .SH NAME h2load \- HTTP/2 benchmarking tool .SH SYNOPSIS .sp \fBh2load\fP [OPTIONS]... [URI]... .SH DESCRIPTION .sp benchmarking tool for HTTP/2 server .INDENT 0.0 .TP .B Specify URI to access. Multiple URIs can be specified. URIs are used in this order for each client. All URIs are used, then first URI is used and then 2nd URI, and so on. The scheme, host and port in the subsequent URIs, if present, are ignored. Those in the first URI are used solely. Definition of a base URI overrides all scheme, host or port values. .UNINDENT .SH OPTIONS .INDENT 0.0 .TP .B \-n, \-\-requests= Number of requests across all clients. If it is used with \fI\%\-\-timing\-script\-file\fP option, this option specifies the number of requests each client performs rather than the number of requests across all clients. This option is ignored if timing\-based benchmarking is enabled (see \fI\%\-\-duration\fP option). .sp Default: \fB1\fP .UNINDENT .INDENT 0.0 .TP .B \-c, \-\-clients= Number of concurrent clients. With \fI\%\-r\fP option, this specifies the maximum number of connections to be made. .sp Default: \fB1\fP .UNINDENT .INDENT 0.0 .TP .B \-t, \-\-threads= Number of native threads. .sp Default: \fB1\fP .UNINDENT .INDENT 0.0 .TP .B \-i, \-\-input\-file= Path of a file with multiple URIs are separated by EOLs. This option will disable URIs getting from command\-line. If \(aq\-\(aq is given as , URIs will be read from stdin. URIs are used in this order for each client. All URIs are used, then first URI is used and then 2nd URI, and so on. The scheme, host and port in the subsequent URIs, if present, are ignored. Those in the first URI are used solely. Definition of a base URI overrides all scheme, host or port values. .UNINDENT .INDENT 0.0 .TP .B \-m, \-\-max\-concurrent\-streams= Max concurrent streams to issue per session. When http/1.1 is used, this specifies the number of HTTP pipelining requests in\-flight. .sp Default: \fB1\fP .UNINDENT .INDENT 0.0 .TP .B \-f, \-\-max\-frame\-size= Maximum frame size that the local endpoint is willing to receive. .sp Default: \fB16K\fP .UNINDENT .INDENT 0.0 .TP .B \-w, \-\-window\-bits= Sets the stream level initial window size to (2**)\-1. For QUIC, is capped to 26 (roughly 64MiB). .sp Default: \fB30\fP .UNINDENT .INDENT 0.0 .TP .B \-W, \-\-connection\-window\-bits= Sets the connection level initial window size to (2**)\-1. .sp Default: \fB30\fP .UNINDENT .INDENT 0.0 .TP .B \-H, \-\-header=
Add/Override a header to the requests. .UNINDENT .INDENT 0.0 .TP .B \-\-ciphers= Set allowed cipher list for TLSv1.2 or earlier. The format of the string is described in OpenSSL ciphers(1). .sp Default: \fBECDHE\-ECDSA\-AES128\-GCM\-SHA256:ECDHE\-RSA\-AES128\-GCM\-SHA256:ECDHE\-ECDSA\-AES256\-GCM\-SHA384:ECDHE\-RSA\-AES256\-GCM\-SHA384:ECDHE\-ECDSA\-CHACHA20\-POLY1305:ECDHE\-RSA\-CHACHA20\-POLY1305:DHE\-RSA\-AES128\-GCM\-SHA256:DHE\-RSA\-AES256\-GCM\-SHA384\fP .UNINDENT .INDENT 0.0 .TP .B \-\-tls13\-ciphers= Set allowed cipher list for TLSv1.3. The format of the string is described in OpenSSL ciphers(1). .sp Default: \fBTLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_CCM_SHA256\fP .UNINDENT .INDENT 0.0 .TP .B \-p, \-\-no\-tls\-proto= Specify ALPN identifier of the protocol to be used when accessing http URI without SSL/TLS. Available protocols: h2c and http/1.1 .sp Default: \fBh2c\fP .UNINDENT .INDENT 0.0 .TP .B \-d, \-\-data= Post FILE to server. The request method is changed to POST. For http/1.1 connection, if \fI\%\-d\fP is used, the maximum number of in\-flight pipelined requests is set to 1. .UNINDENT .INDENT 0.0 .TP .B \-r, \-\-rate= Specifies the fixed rate at which connections are created. The rate must be a positive integer, representing the number of connections to be made per rate period. The maximum number of connections to be made is given in \fI\%\-c\fP option. This rate will be distributed among threads as evenly as possible. For example, with \fI\%\-t\fP2 and \fI\%\-r\fP4, each thread gets 2 connections per period. When the rate is 0, the program will run as it normally does, creating connections at whatever variable rate it wants. The default value for this option is 0. \fI\%\-r\fP and \fI\%\-D\fP are mutually exclusive. .UNINDENT .INDENT 0.0 .TP .B \-\-rate\-period= Specifies the time period between creating connections. The period must be a positive number, representing the length of the period in time. This option is ignored if the rate option is not used. The default value for this option is 1s. .UNINDENT .INDENT 0.0 .TP .B \-D, \-\-duration= Specifies the main duration for the measurements in case of timing\-based benchmarking. \fI\%\-D\fP and \fI\%\-r\fP are mutually exclusive. .UNINDENT .INDENT 0.0 .TP .B \-\-warm\-up\-time= Specifies the time period before starting the actual measurements, in case of timing\-based benchmarking. Needs to provided along with \fI\%\-D\fP option. .UNINDENT .INDENT 0.0 .TP .B \-T, \-\-connection\-active\-timeout= Specifies the maximum time that h2load is willing to keep a connection open, regardless of the activity on said connection. must be a positive integer, specifying the amount of time to wait. When no timeout value is set (either active or inactive), h2load will keep a connection open indefinitely, waiting for a response. .UNINDENT .INDENT 0.0 .TP .B \-N, \-\-connection\-inactivity\-timeout= Specifies the amount of time that h2load is willing to wait to see activity on a given connection. must be a positive integer, specifying the amount of time to wait. When no timeout value is set (either active or inactive), h2load will keep a connection open indefinitely, waiting for a response. .UNINDENT .INDENT 0.0 .TP .B \-\-timing\-script\-file= Path of a file containing one or more lines separated by EOLs. Each script line is composed of two tab\-separated fields. The first field represents the time offset from the start of execution, expressed as a positive value of milliseconds with microsecond resolution. The second field represents the URI. This option will disable URIs getting from command\-line. If \(aq\-\(aq is given as , script lines will be read from stdin. Script lines are used in order for each client. If \fI\%\-n\fP is given, it must be less than or equal to the number of script lines, larger values are clamped to the number of script lines. If \fI\%\-n\fP is not given, the number of requests will default to the number of script lines. The scheme, host and port defined in the first URI are used solely. Values contained in other URIs, if present, are ignored. Definition of a base URI overrides all scheme, host or port values. \fI\%\-\-timing\-script\-file\fP and \fI\%\-\-rps\fP are mutually exclusive. .UNINDENT .INDENT 0.0 .TP .B \-B, \-\-base\-uri=(|unix:) Specify URI from which the scheme, host and port will be used for all requests. The base URI overrides all values defined either at the command line or inside input files. If argument starts with \(dqunix:\(dq, then the rest of the argument will be treated as UNIX domain socket path. The connection is made through that path instead of TCP. In this case, scheme is inferred from the first URI appeared in the command line or inside input files as usual. .UNINDENT .INDENT 0.0 .TP .B \-\-alpn\-list= Comma delimited list of ALPN protocol identifier sorted in the order of preference. That means most desirable protocol comes first. The parameter must be delimited by a single comma only and any white spaces are treated as a part of protocol string. .sp Default: \fBh2,h2\-16,h2\-14,http/1.1\fP .UNINDENT .INDENT 0.0 .TP .B \-\-h1 Short hand for \fI\%\-\-alpn\-list\fP=http/1.1 \fI\%\-\-no\-tls\-proto\fP=http/1.1, which effectively force http/1.1 for both http and https URI. .UNINDENT .INDENT 0.0 .TP .B \-\-header\-table\-size= Specify decoder header table size. .sp Default: \fB4K\fP .UNINDENT .INDENT 0.0 .TP .B \-\-encoder\-header\-table\-size= Specify encoder header table size. The decoder (server) specifies the maximum dynamic table size it accepts. Then the negotiated dynamic table size is the minimum of this option value and the value which server specified. .sp Default: \fB4K\fP .UNINDENT .INDENT 0.0 .TP .B \-\-log\-file= Write per\-request information to a file as tab\-separated columns: start time as microseconds since epoch; HTTP status code; microseconds until end of response. More columns may be added later. Rows are ordered by end\-of\- response time when using one worker thread, but may appear slightly out of order with multiple threads due to buffering. Status code is \-1 for failed streams. .UNINDENT .INDENT 0.0 .TP .B \-\-qlog\-file\-base= Enable qlog output and specify base file name for qlogs. Qlog is emitted for each connection. For a given base name \(dqbase\(dq, each output file name becomes \(dqbase.M.N.sqlog\(dq where M is worker ID and N is client ID (e.g. \(dqbase.0.3.sqlog\(dq). Only effective in QUIC runs. .UNINDENT .INDENT 0.0 .TP .B \-\-connect\-to=[:] Host and port to connect instead of using the authority in . .UNINDENT .INDENT 0.0 .TP .B \-\-rps= Specify request per second for each client. \fI\%\-\-rps\fP and \fI\%\-\-timing\-script\-file\fP are mutually exclusive. .UNINDENT .INDENT 0.0 .TP .B \-\-groups= Specify the supported groups. .sp Default: \fBX25519:P\-256:P\-384:P\-521\fP .UNINDENT .INDENT 0.0 .TP .B \-\-no\-udp\-gso Disable UDP GSO. .UNINDENT .INDENT 0.0 .TP .B \-\-max\-udp\-payload\-size= Specify the maximum outgoing UDP datagram payload size. .UNINDENT .INDENT 0.0 .TP .B \-\-ktls Enable ktls. .UNINDENT .INDENT 0.0 .TP .B \-\-sni= Send in TLS SNI, overriding the host name specified in URI. .UNINDENT .INDENT 0.0 .TP .B \-v, \-\-verbose Output debug information. .UNINDENT .INDENT 0.0 .TP .B \-\-version Display version information and exit. .UNINDENT .INDENT 0.0 .TP .B \-h, \-\-help Display this help and exit. .UNINDENT .sp The argument is an integer and an optional unit (e.g., 10K is 10 * 1024). Units are K, M and G (powers of 1024). .sp The argument is an integer and an optional unit (e.g., 1s is 1 second and 500ms is 500 milliseconds). Units are h, m, s or ms (hours, minutes, seconds and milliseconds, respectively). If a unit is omitted, a second is used as unit. .SH OUTPUT .INDENT 0.0 .TP .B requests .INDENT 7.0 .TP .B total The number of requests h2load was instructed to make. .TP .B started The number of requests h2load has started. .TP .B done The number of requests completed. .TP .B succeeded The number of requests completed successfully. Only HTTP status code 2xx or3xx are considered as success. .TP .B failed The number of requests failed, including HTTP level failures (non\-successful HTTP status code). .TP .B errored The number of requests failed, except for HTTP level failures. This is the subset of the number reported in \fBfailed\fP and most likely the network level failures or stream was reset by RST_STREAM. .TP .B timeout The number of requests whose connection timed out before they were completed. This is the subset of the number reported in \fBerrored\fP\&. .UNINDENT .TP .B status codes The number of status code h2load received. .TP .B traffic .INDENT 7.0 .TP .B total The number of bytes received from the server \(dqon the wire\(dq. If requests were made via TLS, this value is the number of decrypted bytes. .TP .B headers The number of response header bytes from the server without decompression. The \fBspace savings\fP shows efficiency of header compression. Let \fBdecompressed(headers)\fP to the number of bytes used for header fields after decompression. The \fBspace savings\fP is calculated by (1 \- \fBheaders\fP / \fBdecompressed(headers)\fP) * 100. For HTTP/1.1, this is usually 0.00%, since it does not have header compression. For HTTP/2, it shows some insightful numbers. .TP .B data The number of response body bytes received from the server. .UNINDENT .TP .B time for request .INDENT 7.0 .TP .B min The minimum time taken for request and response. .TP .B max The maximum time taken for request and response. .TP .B mean The mean time taken for request and response. .TP .B sd The standard deviation of the time taken for request and response. .TP .B +/\- sd The fraction of the number of requests within standard deviation range (mean +/\- sd) against total number of successful requests. .UNINDENT .TP .B time for connect .INDENT 7.0 .TP .B min The minimum time taken to connect to a server including TLS handshake. .TP .B max The maximum time taken to connect to a server including TLS handshake. .TP .B mean The mean time taken to connect to a server including TLS handshake. .TP .B sd The standard deviation of the time taken to connect to a server. .TP .B +/\- sd The fraction of the number of connections within standard deviation range (mean +/\- sd) against total number of successful connections. .UNINDENT .TP .B time for 1st byte (of (decrypted in case of TLS) application data) .INDENT 7.0 .TP .B min The minimum time taken to get 1st byte from a server. .TP .B max The maximum time taken to get 1st byte from a server. .TP .B mean The mean time taken to get 1st byte from a server. .TP .B sd The standard deviation of the time taken to get 1st byte from a server. .TP .B +/\- sd The fraction of the number of connections within standard deviation range (mean +/\- sd) against total number of successful connections. .UNINDENT .TP .B req/s .INDENT 7.0 .TP .B min The minimum request per second among all clients. .TP .B max The maximum request per second among all clients. .TP .B mean The mean request per second among all clients. .TP .B sd The standard deviation of request per second among all clients. server. .TP .B +/\- sd The fraction of the number of connections within standard deviation range (mean +/\- sd) against total number of successful connections. .UNINDENT .UNINDENT .SH FLOW CONTROL .sp h2load sets large flow control window by default, and effectively disables flow control to avoid under utilization of server performance. To set smaller flow control window, use \fI\%\-w\fP and \fI\%\-W\fP options. For example, use \fB\-w16 \-W16\fP to set default window size described in HTTP/2 protocol specification. .SH SEE ALSO .sp \fBnghttp(1)\fP, \fBnghttpd(1)\fP, \fBnghttpx(1)\fP .SH AUTHOR Tatsuhiro Tsujikawa .SH COPYRIGHT 2012, 2015, 2016, Tatsuhiro Tsujikawa .\" Generated by docutils manpage writer. . man1/nghttpd.1000064400000012627147577143260007162 0ustar00.\" Man page generated from reStructuredText. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "NGHTTPD" "1" "Oct 21, 2024" "1.64.0" "nghttp2" .SH NAME nghttpd \- HTTP/2 server .SH SYNOPSIS .sp \fBnghttpd\fP [OPTION]... [ ] .SH DESCRIPTION .sp HTTP/2 server .INDENT 0.0 .TP .B Specify listening port number. .UNINDENT .INDENT 0.0 .TP .B Set path to server\(aqs private key. Required unless \fI\%\-\-no\-tls\fP is specified. .UNINDENT .INDENT 0.0 .TP .B Set path to server\(aqs certificate. Required unless \fI\%\-\-no\-tls\fP is specified. .UNINDENT .SH OPTIONS .INDENT 0.0 .TP .B \-a, \-\-address= The address to bind to. If not specified the default IP address determined by getaddrinfo is used. .UNINDENT .INDENT 0.0 .TP .B \-D, \-\-daemon Run in a background. If \fI\%\-D\fP is used, the current working directory is changed to \(aq\fI/\fP\(aq. Therefore if this option is used, \fI\%\-d\fP option must be specified. .UNINDENT .INDENT 0.0 .TP .B \-V, \-\-verify\-client The server sends a client certificate request. If the client did not return a certificate, the handshake is terminated. Currently, this option just requests a client certificate and does not verify it. .UNINDENT .INDENT 0.0 .TP .B \-d, \-\-htdocs= Specify document root. If this option is not specified, the document root is the current working directory. .UNINDENT .INDENT 0.0 .TP .B \-v, \-\-verbose Print debug information such as reception/ transmission of frames and name/value pairs. .UNINDENT .INDENT 0.0 .TP .B \-\-no\-tls Disable SSL/TLS. .UNINDENT .INDENT 0.0 .TP .B \-c, \-\-header\-table\-size= Specify decoder header table size. .UNINDENT .INDENT 0.0 .TP .B \-\-encoder\-header\-table\-size= Specify encoder header table size. The decoder (client) specifies the maximum dynamic table size it accepts. Then the negotiated dynamic table size is the minimum of this option value and the value which client specified. .UNINDENT .INDENT 0.0 .TP .B \-\-color Force colored log output. .UNINDENT .INDENT 0.0 .TP .B \-p, \-\-push== Push resources s when is requested. This option can be used repeatedly to specify multiple push configurations. and s are relative to document root. See \fI\%\-\-htdocs\fP option. Example: \fI\%\-p\fP/=/foo.png \fI\%\-p\fP/doc=/bar.css .UNINDENT .INDENT 0.0 .TP .B \-b, \-\-padding= Add at most bytes to a frame payload as padding. Specify 0 to disable padding. .UNINDENT .INDENT 0.0 .TP .B \-m, \-\-max\-concurrent\-streams= Set the maximum number of the concurrent streams in one HTTP/2 session. .sp Default: \fB100\fP .UNINDENT .INDENT 0.0 .TP .B \-n, \-\-workers= Set the number of worker threads. .sp Default: \fB1\fP .UNINDENT .INDENT 0.0 .TP .B \-e, \-\-error\-gzip Make error response gzipped. .UNINDENT .INDENT 0.0 .TP .B \-w, \-\-window\-bits= Sets the stream level initial window size to 2**\-1. .UNINDENT .INDENT 0.0 .TP .B \-W, \-\-connection\-window\-bits= Sets the connection level initial window size to 2**\-1. .UNINDENT .INDENT 0.0 .TP .B \-\-dh\-param\-file= Path to file that contains DH parameters in PEM format. Without this option, DHE cipher suites are not available. .UNINDENT .INDENT 0.0 .TP .B \-\-early\-response Start sending response when request HEADERS is received, rather than complete request is received. .UNINDENT .INDENT 0.0 .TP .B \-\-trailer=
Add a trailer header to a response.
must not include pseudo header field (header field name starting with \(aq:\(aq). The trailer is sent only if a response has body part. Example: \fI\%\-\-trailer\fP \(aqfoo: bar\(aq. .UNINDENT .INDENT 0.0 .TP .B \-\-hexdump Display the incoming traffic in hexadecimal (Canonical hex+ASCII display). If SSL/TLS is used, decrypted data are used. .UNINDENT .INDENT 0.0 .TP .B \-\-echo\-upload Send back uploaded content if method is POST or PUT. .UNINDENT .INDENT 0.0 .TP .B \-\-mime\-types\-file= Path to file that contains MIME media types and the extensions that represent them. .sp Default: \fB/etc/mime.types\fP .UNINDENT .INDENT 0.0 .TP .B \-\-no\-content\-length Don\(aqt send content\-length header field. .UNINDENT .INDENT 0.0 .TP .B \-\-ktls Enable ktls. .UNINDENT .INDENT 0.0 .TP .B \-\-no\-rfc7540\-pri Disable RFC7540 priorities. .UNINDENT .INDENT 0.0 .TP .B \-\-version Display version information and exit. .UNINDENT .INDENT 0.0 .TP .B \-h, \-\-help Display this help and exit. .UNINDENT .sp The argument is an integer and an optional unit (e.g., 10K is 10 * 1024). Units are K, M and G (powers of 1024). .SH SEE ALSO .sp \fBnghttp(1)\fP, \fBnghttpx(1)\fP, \fBh2load(1)\fP .SH AUTHOR Tatsuhiro Tsujikawa .SH COPYRIGHT 2012, 2015, 2016, Tatsuhiro Tsujikawa .\" Generated by docutils manpage writer. . man7/ea-php70.7.gz000064400000002050147577536560007464 0ustar00VaO8_1/ ew%tY(J@+JNn4U>;iZDqJb̛7^H-i'g=r/rڴT UUrd=x9[^Oht="f#,}|GuY:$߾~ǭ[ȼ4v5RnĒՌnlNDŽ+VPa,}"sLX+ )sFC3s7]>ϗ-y Wkk^e.RFJ+k/&k|p{ @J*^ߘƟミs+`ZN*y⬒ZV`06 xigKH0咝Ckv'B^Jf;ڕ2+)hI,l :,u^Td KY} 'Gw U*6Օ0KSˬZˁː<-!K;o8b.%gLJt,s&qܣG*1zkBU(S wVzAyyjǮϪa(B䦑ʧcs7 nUB:̠a3?!NGxo7V!g #:I_RRENVk0[# Hߊp93yHem' +jųIhyϴ>V/[U&os,H ,Pu`N#Ե]սp"ez^C‚JE]Fuϝ-e&y>81`Rߔ= R#",A;A.7Sd2Sͽџ0~cQ㥒UhnC*q х6Gޕh–vCŇp)|HOy\>LWCβ{oO:v{ƒ=7'rd!3߉lR#[(;⣣4 iT ^قX%o {voa*͎ ,y|ͭwFZ!fSN`bx1 man7/ea-php80.7.gz000064400000002050147577634720007462 0ustar00VaO8_1/ [>PV"\i,;}vҴ.>Ğ7o潐f#[bMZ+?L#{1G[e^iUz&zFӛr6# .t=guY[:I~Ǭ[^[;Dܚ s7JՌn g STXDhi\WIWIV̅f%stu<_狧dK'X_ypKA)[RLopNrxeRjP4~ P_] {8R^@pƇ/ԚvR)LK*eLcShP^vƾhC].S`uQDHZIκ])yI!@O2d!p"kp\JeKj+)/FWTt^_i. .CX,u p8 CBq<Ǯj<}b/ǎ6.d.^2xgU`IHJ;{ʙE4Rlr&![ۭJPbzK $l|npP vSk dDaDQg;KY*ɪVc f+|[.sĈZ6vVwHB#{]7~Y2ycIFZ0gCEd;rM]U w+nPg5-,l\iT^r\ϻ?8)i]1e Q_Oa(X:N ߨBFaMqA-8e<.9|VO0Gÿ UivPpgkf;P3׸7·N;}͟=[2 man3/Mock::Config.3pm000044400000017355147645265660010264 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Mock::Config 3" .TH Mock::Config 3 "2016-04-18" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Mock::Config \- temporarily set Config or XSConfig values .SH "VERSION" .IX Header "VERSION" Version 0.02 .SH "SYNOPSIS" .IX Header "SYNOPSIS" XSConfig is readonly, so workaround that. .PP .Vb 1 \& use Mock::Config d_fork => 0, perl_patchlevel => \*(Aq\*(Aq; .Ve .PP The importer works only dynamically, not lexically yet. .PP .Vb 4 \& use Mock::Config; \& Mock::Config\->import(startperl => \*(Aq\*(Aq); \& print $Config{startperl}, \*(Aq mocked to empty\*(Aq; \& Mock::Config\->unimport; .Ve .SH "SUBROUTINES" .IX Header "SUBROUTINES" .SS "import" .IX Subsection "import" Set pair of Config values, even for the readonly XSConfig implementation, as used in cperl. .PP It does not store the mocked overrides lexically, just dynamically. .SS "unimport" .IX Subsection "unimport" This is unstacked and not lexical. It undoes all imported Config values at once. .SH "AUTHOR" .IX Header "AUTHOR" Reini Urban, \f(CW\*(C`\*(C'\fR .SH "BUGS" .IX Header "BUGS" Please report any bugs or feature requests at . .PP We will be notified, and then you'll automatically be notified of progress on your request as we make changes. .SH "SUPPORT" .IX Header "SUPPORT" You can find documentation for this module with the perldoc command. .PP .Vb 1 \& perldoc Mock::Config .Ve .PP You can also look for information at: .IP "\(bu" 4 \&\s-1RT: CPAN\s0's request tracker (report bugs here) .Sp .IP "\(bu" 4 AnnoCPAN: Annotated \s-1CPAN\s0 documentation .Sp .IP "\(bu" 4 \&\s-1CPAN\s0 Ratings .Sp .IP "\(bu" 4 Search \s-1CPAN\s0 .Sp .SH "ACKNOWLEDGEMENTS" .IX Header "ACKNOWLEDGEMENTS" .SH "LICENSE AND COPYRIGHT" .IX Header "LICENSE AND COPYRIGHT" Copyright 2016 cPanel Inc. .PP This program is free software; you can redistribute it and/or modify it under the terms of the the Artistic License (2.0). You may obtain a copy of the full license at: .PP .PP Any use, modification, and distribution of the Standard or Modified Versions is governed by this Artistic License. By using, modifying or distributing the Package, you accept this license. Do not use, modify, or distribute the Package, if you do not accept this license. .PP If your Modified Version has been derived from a Modified Version made by someone other than you, you are nevertheless required to ensure that your Modified Version complies with the requirements of this license. .PP This license does not grant you the right to use any trademark, service mark, tradename, or logo of the Copyright Holder. .PP This license includes the non-exclusive, worldwide, free-of-charge patent license to make, have made, use, offer to sell, sell, import and otherwise transfer the Package with respect to any patent claims licensable by the Copyright Holder that are necessarily infringed by the Package. If you institute patent litigation (including a cross-claim or counterclaim) against any party alleging that the Package constitutes direct or contributory patent infringement, then this Artistic License to you shall terminate on the date that such litigation is filed. .PP Disclaimer of Warranty: \s-1THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS\s0' \s-1AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR\s0 NON-INFRINGEMENT \s-1ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\s0 man3/HTML::Tree::AboutTrees.3pm000044400000162246147645265660012013 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "HTML::Tree::AboutTrees 3" .TH HTML::Tree::AboutTrees 3 "2020-03-05" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" HTML::Tree::AboutTrees \-\- article on tree\-shaped data structures in Perl .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& # This an article, not a module. .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The following article by Sean M. Burke first appeared in \fIThe Perl Journal\fR #18 and is copyright 2000 The Perl Journal. It appears courtesy of Jon Orwant and The Perl Journal. This document may be distributed under the same terms as Perl itself. .SH "Trees" .IX Header "Trees" \&\-\- Sean M. Burke .Sp .RS 4 \&\*(L"AaaAAAaauugh! Watch out for that tree!\*(R" \*(-- \fIGeorge of the Jungle theme\fR .RE .PP Perl's facility with references, combined with its automatic management of memory allocation, makes it straightforward to write programs that store data in structures of arbitrary form and complexity. .PP But I've noticed that many programmers, especially those who started out with more restrictive languages, seem at home with complex but uniform data structures \*(-- N\-dimensional arrays, or more struct-like things like hashes\-of\-arrays(\-of\-hashes(\-of\-hashes), etc.) \*(-- but they're often uneasy with building more freeform, less tabular structures, like tree-shaped data structures. .PP But trees are easy to build and manage in Perl, as I'll demonstrate by showing off how the HTML::Element class manages elements in an \s-1HTML\s0 document tree, and by walking you through a from-scratch implementation of game trees. But first we need to nail down what we mean by a \*(L"tree\*(R". .ie n .SS "Socratic Dialogues: ""What is a Tree?""" .el .SS "Socratic Dialogues: ``What is a Tree?''" .IX Subsection "Socratic Dialogues: What is a Tree?" My first brush with tree-shaped structures was in linguistics classes, where tree diagrams are used to describe the syntax underlying natural language sentences. After learning my way around \fIthose\fR trees, I started to wonder \*(-- are what I'm used to calling \*(L"trees\*(R" the same as what programmers call \*(L"trees\*(R"? So I asked lots of helpful and patient programmers how they would define a tree. Many replied with a answer in jargon that they could not really explain (understandable, since explaining things, especially defining things, is harder than people think): .Sp .RS 4 \&\-\- So what \fIis\fR a \*(L"tree\*(R", a tree-shaped data structure? .Sp \&\-\- A tree is a special case of an acyclic directed graph! .Sp \&\-\- What's a \*(L"graph\*(R"? .Sp \&\-\- Um... lines... and... you draw it... with... arcs! nodes! um... .RE .PP The most helpful were folks who couldn't explain directly, but with whom I could get into a rather Socratic dialog (where \fII\fR asked the half-dim half-earnest questions), often with much doodling of illustrations... .PP Question: so what's a tree? .PP Answer: A tree is a collection of nodes that are linked together in a, well, tree-like way! Like this \fI[drawing on a napkin]:\fR .PP .Vb 5 \& A \& / \e \& B C \& / | \e \& D E F .Ve .PP Q: So what do these letters represent? .PP A: Each is a different node, a bunch of data. Maybe C is a bunch of data that stores a number, maybe a hash table, maybe nothing at all besides the fact that it links to D, E, and F (which are other nodes). .PP Q: So what're the lines between the nodes? .PP A: Links. Also called \*(L"arcs\*(R". They just symbolize the fact that each node holds a list of nodes it links to. .PP Q: So what if I draw nodes and links, like this... .PP .Vb 5 \& B \-\- E \& / \e / \e \& A C \& \e / \& E .Ve .PP Is that still a tree? .PP A: No, not at all. There's a lot of un-treelike things about that. First off, E has a link coming off of it going into nowhere. You can't have a link to nothing \*(-- you can only link to another node. Second off, I don't know what that sideways link between B and E means... .PP Q: Okay, let's work our way up from something simpler. Is this a tree...? .PP .Vb 1 \& A .Ve .PP A: Yes, I suppose. It's a tree of just one node. .PP Q: And how about... .PP .Vb 1 \& A \& \& B .Ve .PP A: No, you can't just have nodes floating there, unattached. .PP Q: Okay, I'll link A and B. How's this? .PP .Vb 3 \& A \& | \& B .Ve .PP A: Yup, that's a tree. There's a node A, and a node B, and they're linked. .PP Q: How is that tree any different from this one...? .PP .Vb 3 \& B \& | \& A .Ve .PP A: Well, in both cases A and B are linked. But it's in a different direction. .PP Q: Direction? What does the direction mean? .PP A: Well, it depends what the tree represents. If it represents a categorization, like this: .PP .Vb 3 \& citrus \& / | \e \& orange lemon kumquat ... .Ve .PP then you mean to say that oranges, lemons, kumquats, etc., are a kind of citrus. But if you drew it upside down, you'd be saying, falsely, that citrus is a kind of kumquat, a kind of lemon, and a kind of orange. If the tree represented cause-and-effect (or at least what situations could follow others), or represented what's a part of what, you wouldn't want to get those backwards, either. So with the nodes you draw together on paper, one has to be over the other, so you can tell which way the relationship in the tree works. .PP Q: So are these two trees the same? .PP .Vb 4 \& A A \& / \e / \e \& B C B \e \& C .Ve .PP A: Yes, although by convention we often try to line up things in the same generation, like it is in the diagram on the left. .PP Q: \*(L"generation\*(R"? This is a family tree? .PP A: No, not unless it's a family tree for just yeast cells or something else that reproduces asexually. But for sake of having lots of terms to use, we just pretend that links in the tree represent the \*(L"is a child of\*(R" relationship, instead of \*(L"is a kind of\*(R" or \*(L"is a part of\*(R", or \*(L"could result from\*(R", or whatever the real relationship is. So we get to borrow a lot of kinship words for describing trees \*(-- B and C are \*(L"children\*(R" (or \*(L"daughters\*(R") of A; A is the \*(L"parent\*(R" (or \*(L"mother\*(R") of B and C. Node C is a \*(L"sibling\*(R" (or \&\*(L"sister\*(R") of node C; and so on, with terms like \*(L"descendants\*(R" (a node's children, children's children, etc.), and \*(L"generation\*(R" (all the nodes at the same \*(L"level\*(R" in the tree, i.e., are either all grandchildren of the top node, or all great-grand-children, etc.), and \&\*(L"lineage\*(R" or \*(L"ancestors\*(R" (parents, and parent's parents, etc., all the way to the topmost node). .PP So then we get to express rules in terms like "\fBA node cannot have more than one parent\fR", which means that this is not a valid tree: .PP .Vb 5 \& A \& / \e \& B C \& \e / \& E .Ve .PP And: "\fBA node can't be its own parent\fR", which excludes this looped-up connection: .PP .Vb 3 \& /\e \& A | \& \e/ .Ve .PP Or, put more generally: "\fBA node can't be its own ancestor\fR", which excludes the above loop, as well as the one here: .PP .Vb 7 \& /\e \& Z | \& / | \& A | \& / \e | \& B C | \& \e/ .Ve .PP That tree is excluded because A is a child of Z, and Z is a child of C, and C is a child of A, which means A is its own great-grandparent. So this whole network can't be a tree, because it breaks the sort of meta-rule: \fBonce any node in the supposed tree breaks the rules for trees, you don't have a tree anymore.\fR .PP Q: Okay, now, are these two trees the same? .PP .Vb 3 \& A A \& / | \e / | \e \& B C D D C B .Ve .PP A: It depends whether you're basing your concept of trees on each node having a set (unordered list) of children, or an (ordered) list of children. It's a question of whether ordering is important for what you're doing. With my diagram of citrus types, ordering isn't important, so these tree diagrams express the same thing: .PP .Vb 3 \& citrus \& / | \e \& orange lemon kumquat \& \& citrus \& / | \e \& kumquat orange lemon .Ve .PP because it doesn't make sense to say that oranges are \*(L"before\*(R" or \&\*(L"after\*(R" kumquats in the whole botanical scheme of things. (Unless, of course, you \fIare\fR using ordering to mean something, like a degree of genetic similarity.) .PP But consider a tree that's a diagram of what steps are comprised in an activity, to some degree of specificity: .PP .Vb 8 \& make tea \& / | \e \& pour infuse serve \& hot water / \e \&in cup/pot / \e \& add let \& tea sit \& leaves .Ve .PP This means that making tea consists of putting hot water in a cup or put, infusing it (which itself consists of adding tea leaves and letting it sit), then serving it \*(-- \fIin that order\fR. If you serve an empty dry pot (sipping from empty cups, etc.), let it sit, add tea leaves, and pour in hot water, then what you're doing is performance art, not tea preparation: .PP .Vb 9 \& performance \& art \& / | \e \& serve infuse pour \& / \e hot water \& / \e in cup/pot \& let add \& sit tea \& leaves .Ve .PP Except for my having renamed the root, this tree is the same as the making-tea tree as far as what's under what, but it differs in order, and what the tree means makes the order important. .PP Q: Wait \*(-- \*(L"root\*(R"? What's a root? .PP A: Besides kinship terms like \*(L"mother\*(R" and \*(L"daughter\*(R", the jargon for tree parts also has terms from real-life tree parts: the part that everything else grows from is called the root; and nodes that don't have nodes attached to them (i.e., childless nodes) are called \&\*(L"leaves\*(R". .PP Q: But you've been drawing all your trees with the root at the top and leaves at the bottom. .PP A: Yes, but for some reason, that's the way everyone seems to think of trees. They can draw trees as above; or they can draw them sort of sideways with indenting representing what nodes are children of what: .PP .Vb 6 \& * make tea \& * pour hot water in cup/pot \& * infuse \& * add tea leaves \& * let sit \& * serve .Ve .PP \&...but folks almost never seem to draw trees with the root at the bottom. So imagine it's based on spider plant in a hanging pot. Unfortunately, spider plants \fIaren't\fR botanically trees, they're plants; but \*(L"spider plant diagram\*(R" is rather a mouthful, so let's just call them trees. .SS "Trees Defined Formally" .IX Subsection "Trees Defined Formally" In time, I digested all these assorted facts about programmers' ideas of trees (which turned out to be just a more general case of linguistic ideas of trees) into a single rule: .PP * A node is an item that contains (\*(L"is over\*(R", \*(L"is parent of\*(R", etc.) zero or more other nodes. .PP From this you can build up formal definitions for useful terms, like so: .PP * A node's \fBdescendants\fR are defined as all its children, and all their children, and so on. Or, stated recursively: a node's descendants are all its children, and all its children's descendants. (And if it has no children, it has no descendants.) .PP * A node's \fBancestors\fR consist of its parent, and its parent's parent, etc, up to the root. Or, recursively: a node's ancestors consist of its parent and its parent's ancestors. (If it has no parent, it has no ancestors.) .PP * A \fBtree\fR is a root node and all the root's descendants. .PP And you can add a proviso or two to clarify exactly what I impute to the word \*(L"other\*(R" in \*(L"other nodes\*(R": .PP * A node cannot contain itself, or contain any node that contains it, etc. Looking at it the other way: a node cannot be its own parent or ancestor. .PP * A node can be root (i.e., no other node contains it) or can be contained by only one parent; no node can be the child of two or more parents. .PP Add to this the idea that children are sometimes ordered, and sometimes not, and that's about all you need to know about defining what a tree is. From there it's a matter of using them. .SS "Markup Language Trees: HTML-Tree" .IX Subsection "Markup Language Trees: HTML-Tree" While not \fIall\fR markup languages are inherently tree-like, the best-known family of markup languages, \s-1HTML, SGML,\s0 and \s-1XML,\s0 are about as tree-like as you can get. In these languages, a document consists of elements and character data in a tree structure where there is one root element, and elements can contain either other elements, or character data. .Sp .RS 4 Footnote: For sake of simplicity, I'm glossing over comments (), processing instructions (), and declarations (, ). And I'm not bothering to distinguish entity references (<, @) or \s-1CDATA\s0 sections () from normal text. .RE .PP For example, consider this \s-1HTML\s0 document: .PP .Vb 10 \& \& \& \& Blank Document! \& \& \& \& I\*(Aqve got \& \& something to saaaaay \& \& ! \& \& .Ve .PP I've indented this to point out what nodes (elements or text items) are children of what, with each node on a line of its own. .PP The HTML::TreeBuilder module (in the \s-1CPAN\s0 distribution HTML-Tree) does the work of taking \s-1HTML\s0 source and building in memory the tree that the document source represents. .Sp .RS 4 Footnote: it requires the HTML::Parser module, which tokenizes the source \*(-- i.e., identifies each tag, bit of text, comment, etc. .RE .PP The trees structures that it builds represent bits of text with normal Perl scalar string values; but elements are represented with objects \*(-- that is, chunks of data that belong to a class (in this case, HTML::Element), a class that provides methods (routines) for accessing the pieces of data in each element, and otherwise doing things with elements. (See my article in TPJ#17 for a quick explanation of objects, the \s-1POD\s0 document \f(CW\*(C`perltoot\*(C'\fR for a longer explanation, or Damian Conway's excellent book \fIObject-Oriented Perl\fR for the full story.) .PP Each HTML::Element object contains a number of pieces of data: .PP * its element name (\*(L"html\*(R", \*(L"h1\*(R", etc., accessed as \f(CW$element\fR\->tag) .PP * a list of elements (or text segments) that it contains, if any (accessed as \f(CW$element\fR\->content_list or \f(CW$element\fR\->content, depending on whether you want a list, or an arrayref) .PP * what element, if any, contains it (accessed as \f(CW$element\fR\->parent) .PP * and any \s-1SGML\s0 attributes that the element has, such as \f(CW\*(C`lang="en\-US"\*(C'\fR, \f(CW\*(C`align="center"\*(C'\fR, etc. (accessed as \&\f(CW$element\fR\->attr('lang'), \f(CW$element\fR\->attr('center'), etc.) .PP So, for example, when HTML::TreeBuilder builds the tree for the above \&\s-1HTML\s0 document source, the object for the \*(L"body\*(R" element has these pieces of data: .PP .Vb 8 \& * element name: "body" \& * nodes it contains: \& the string "I\*(Aqve got " \& the object for the "em" element \& the string "!" \& * its parent: \& the object for the "html" element \& * bgcolor: "#d010ff" .Ve .PP Now, once you have this tree of objects, almost anything you'd want to do with it starts with searching the tree for some bit of information in some element. .PP Accessing a piece of information in, say, a hash of hashes of hashes, is straightforward: .PP .Vb 1 \& $password{\*(Aqsean\*(Aq}{\*(Aqsburke1\*(Aq}{\*(Aqhpux\*(Aq} .Ve .PP because you know that all data points in that structure are accessible with that syntax, but with just different keys. Now, the \*(L"em\*(R" element in the above \s-1HTML\s0 tree does happen to be accessible as the root's child #1's child #1: .PP .Vb 1 \& $root\->content\->[1]\->content\->[1] .Ve .PP But with trees, you typically don't know the exact location (via indexes) of the data you're looking for. Instead, finding what you want will typically involve searching through the tree, seeing if every node is the kind you want. Searching the whole tree is simple enough \*(-- look at a given node, and if it's not what you want, look at its children, and so on. HTML-Tree provides several methods that do this for you, such as \&\f(CW\*(C`find_by_tag_name\*(C'\fR, which returns the elements (or the first element, if called in scalar context) under a given node (typically the root) whose tag name is whatever you specify. .PP For example, that \*(L"em\*(R" node can be found as: .PP .Vb 1 \& my $that_em = $root\->find_by_tag_name(\*(Aqem\*(Aq); .Ve .PP or as: .PP .Vb 2 \& @ems = $root\->find_by_tag_name(\*(Aqem\*(Aq); \& # will only have one element for this particular tree .Ve .PP Now, given an \s-1HTML\s0 document of whatever structure and complexity, if you wanted to do something like change every .Sp .RS 4 \fIstuff\fR .RE .PP to .Sp .RS 4 \&\fB[\-\fR \&\fIstuff\fR \&\fB\-]\fR .RE .PP the first step is to frame this operation in terms of what you're doing to the tree. You're changing this: .PP .Vb 3 \& em \& | \& ... .Ve .PP to this: .PP .Vb 5 \& em \& / | \e \& b ... b \& | | \& "[\-" "\-]" .Ve .PP In other words, you're finding all elements whose tag name is \*(L"em\*(R", setting its class attribute to \*(L"funky\*(R", and adding one child to the start of its content list \*(-- a new \*(L"b\*(R" element whose content is the text string \*(L"[\-\*(R" \*(-- and one to the end of its content list \*(-- a new \*(L"b\*(R" element whose content is the text string \*(L"\-]\*(R". .PP Once you've got it in these terms, it's just a matter of running to the HTML::Element documentation, and coding this up with calls to the appropriate methods, like so: .PP .Vb 5 \& use HTML::Element 1.53; \& use HTML::TreeBuilder 2.96; \& # Build the tree by parsing the document \& my $root = HTML::TreeBuilder\->new; \& $root\->parse_file(\*(Aqwhatever.html\*(Aq); # source file \& \& # Now make new nodes where needed \& foreach my $em ($root\->find_by_tag_name(\*(Aqem\*(Aq)) { \& $em\->attr(\*(Aqclass\*(Aq, \*(Aqfunky\*(Aq); # Set that attribute \& \& # Make the two new B nodes \& my $new1 = HTML::Element\->new(\*(Aqb\*(Aq); \& my $new2 = HTML::Element\->new(\*(Aqb\*(Aq); \& # Give them content (they have none at first) \& $new1\->push_content(\*(Aq[\-\*(Aq); \& $new2\->push_content(\*(Aq\-]\*(Aq); \& \& # And put \*(Aqem in place! \& $em\->unshift_content($new1); \& $em\->push_content($new2); \& } \& print \& "\en", \& $root\->as_HTML(), "\en"; .Ve .PP The class HTML::Element provides just about every method I can image you needing, for manipulating trees made of HTML::Element objects. (And what it doesn't directly provide, it will give you the components to build it with.) .SS "Building Your Own Trees" .IX Subsection "Building Your Own Trees" Theoretically, any tree is pretty much like any other tree, so you could use HTML::Element for anything you'd ever want to do with tree-arranged objects. However, as its name implies, HTML::Element is basically \&\fIfor\fR \s-1HTML\s0 elements; it has lots of features that make sense only for \&\s-1HTML\s0 elements (like the idea that every element must have a tag-name). And it lacks some features that might be useful for general applications \&\*(-- such as any sort of checking to make sure that you're not trying to arrange objects in a non-treelike way. For a general-purpose tree class that does have such features, you can use Tree::DAG_Node, also available from \s-1CPAN. \s0 .PP However, if your task is simple enough, you might find it overkill to bother using Tree::DAG_Node. And, in any case, I find that the best way to learn how something works is to implement it (or something like it, but simpler) yourself. So I'll here discuss how you'd implement a tree structure, \fIwithout\fR using any of the existing classes for tree nodes. .SS "Implementation: Game Trees for Alak" .IX Subsection "Implementation: Game Trees for Alak" Suppose that the task at hand is to write a program that can play against a human opponent at a strategic board game (as opposed to a board game where there's an element of chance). For most such games, a \&\*(L"game tree\*(R" is an essential part of the program (as I will argue, below), and this will be our test case for implementing a tree structure from scratch. .PP For sake of simplicity, our game is not chess or backgammon, but instead a much simpler game called Alak. Alak was invented by the mathematician A. K. Dewdney, and described in his 1984 book \fIPlaniverse\fR. The rules of Alak are simple: .Sp .RS 4 Footnote: Actually, I'm describing only my interpretation of the rules Dewdney describes in \fIPlaniverse\fR. Many other interpretations are possible. .RE .PP * Alak is a two-player game played on a one-dimensional board with eleven slots on it. Each slot can hold at most one piece at a time. There's two kinds of pieces, which I represent here as \*(L"x\*(R" and \*(L"o\*(R" \*(-- x's belong to one player (called X), o's to the other (called O). .PP * The initial configuration of the board is: .PP .Vb 1 \& xxxx_\|_\|_oooo .Ve .PP For sake of the article, the slots are numbered from 1 (on the left) to 11 (on the right), and X always has the first move. .PP * The players take turns moving. At each turn, each player can move only one piece, once. (This unlike checkers, where you move one piece per move but get to keep moving it if you jump an your opponent's piece.) A player cannot pass up on his turn. A player can move any one of his pieces to the next unoccupied slot to its right or left, which may involve jumping over occupied slots. A player cannot move a piece off the side of the board. .PP * If a move creates a pattern where the opponent's pieces are surrounded, on both sides, by two pieces of the mover's color (with no intervening unoccupied blank slot), then those surrounded pieces are removed from the board. .PP * The goal of the game is to remove all of your opponent's pieces, at which point the game ends. Removing all-but-one ends the game as well, since the opponent can't surround you with one piece, and so will always lose within a few moves anyway. .PP Consider, then, this rather short game where X starts: .PP .Vb 10 \& xxxx_\|_\|_oooo \& ^ Move 1: X moves from 3 (shown with caret) to 5 \& (Note that any of X\*(Aqs pieces could move, but \& that the only place they could move to is 5.) \& xx_xx_\|_oooo \& ^ Move 2: O moves from 9 to 7. \& xx_xx_oo_oo \& ^ Move 3: X moves from 4 to 6. \& xx_\|_xxoo_oo \& ^ Move 4: O (stupidly) moves from 10 to 9. \& xx_\|_xxooo_o \& ^ Move 5: X moves from 5 to 10, making the board \& "xx_\|_\|_xoooxo". The three o\*(Aqs that X just \& surrounded are removed. \& xx_\|_\|_x_\|_\|_xo \& O has only one piece, so has lost. .Ve .PP Now, move 4 could have gone quite the other way: .PP .Vb 11 \& xx_\|_xxoo_oo \& Move 4: O moves from 8 to 4, making the board \& "xx_oxxo_\|_oo". The surrounded x\*(Aqs are removed. \& xx_o_\|_o_\|_oo \& ^ Move 5: X moves from 1 to 2. \& _xxo_\|_o_\|_oo \& ^ Move 6: O moves from 7 to 6. \& _xxo_o_\|_\|_oo \& ^ Move 7: X moves from 2 to 5, removing the o at 4. \& _\|_x_xo_\|_\|_oo \& ...and so on. .Ve .PP To teach a computer program to play Alak (as player X, say), it needs to be able to look at the configuration of the board, figure out what moves it can make, and weigh the benefit or costs, immediate or eventual, of those moves. .PP So consider the board from just before move 3, and figure all the possible moves X could make. X has pieces in slots 1, 2, 4, and 5. The leftmost two x's (at 1 and 2) are up against the end of the board, so they can move only right. The other two x's (at 4 and 5) can move either right or left: .PP .Vb 7 \& Starting board: xx_xx_oo_oo \& moving 1 to 3 gives _xxxx_oo_oo \& moving 2 to 3 gives x_xxx_oo_oo \& moving 4 to 3 gives xxx_x_oo_oo \& moving 5 to 3 gives xxxx_\|_oo_oo \& moving 4 to 6 gives xx_\|_xxoo_oo \& moving 5 to 6 gives xx_x_xoo_oo .Ve .PP For the computer to decide which of these is the best move to make, it needs to quantify the benefit of these moves as a number \*(-- call that the \*(L"payoff\*(R". The payoff of a move can be figured as just the number of x pieces removed by the most recent move, minus the number of o pieces removed by the most recent move. (It so happens that the rules of the game mean that no move can delete both o's and x's, but the formula still applies.) Since none of these moves removed any pieces, all these moves have the same immediate payoff: 0. .PP Now, we could race ahead and write an Alak-playing program that could use the immediate payoff to decide which is the best move to make. And when there's more than one best move (as here, where all the moves are equally good), it could choose randomly between the good alternatives. This strategy is simple to implement; but it makes for a very dumb program. Consider what O's response to each of the potential moves (above) could be. Nothing immediately suggests itself for the first four possibilities (X having moved something to position 3), but either of the last two (illustrated below) are pretty perilous, because in either case O has the obvious option (which he would be foolish to pass up) of removing x's from the board: .PP .Vb 6 \& xx_xx_oo_oo \& ^ X moves 4 to 6. \& xx_\|_xxoo_oo \& ^ O moves 8 to 4, giving "xx_oxxo_\|_oo". The two \& surrounded x\*(Aqs are removed. \& xx_o_\|_o_\|_oo .Ve .PP or .PP .Vb 6 \& xx_xx_oo_oo \& ^ X moves 5 to 6. \& xx_x_xoo_oo \& ^ O moves 8 to 5, giving "xx_xoxo_\|_oo". The one \& surrounded x is removed. \& xx_xo_o_\|_oo .Ve .PP Both contingencies are quite bad for X \*(-- but this is not captured by the fact that they start out with X thinking his move will be harmless, having a payoff of zero. .PP So what's needed is for X to think \fImore\fR than one step ahead \*(-- to consider not merely what it can do in this move, and what the payoff is, but to consider what O might do in response, and the payoff of those potential moves, and so on with X's possible responses to those cases could be. All these possibilities form a game tree \*(-- a tree where each node is a board, and its children are successors of that node \*(-- i.e., the boards that could result from every move possible, given the parent's board. .PP But how to represent the tree, and how to represent the nodes? .PP Well, consider that a node holds several pieces of data: .PP 1) the configuration of the board, which, being nice and simple and one-dimensional, can be stored as just a string, like \*(L"xx_xx_oo_oo\*(R". .PP 2) whose turn it is, X or O. (Or: who moved last, from which we can figure whose turn it is). .PP 3) the successors (child nodes). .PP 4) the immediate payoff of having moved to this board position from its predecessor (parent node). .PP 5) and what move gets us from our predecessor node to here. (Granted, knowing the board configuration before and after the move, it's easy to figure out the move; but it's easier still to store it as one is figuring out a node's successors.) .PP 6) whatever else we might want to add later. .PP These could be stored equally well in an array or in a hash, but it's my experience that hashes are best for cases where you have more than just two or three bits of data, or especially when you might need to add new bits of data. Moreover, hash key names are mnemonic \*(-- \&\f(CW$node\fR\->{'last_move_payoff'} is plain as day, whereas it's not so easy having to remember with an array that \f(CW$node\fR\->[3] is where you decided to keep the payoff. .Sp .RS 4 Footnote: Of course, there are ways around that problem: just swear you'll never use a real numeric index to access data in the array, and instead use constants with mnemonic names: .Sp .Vb 4 \& use strict; \& use constant idx_PAYOFF => 3; \& ... \& $n\->[idx_PAYOFF] .Ve .Sp Or use a pseudohash. But I prefer to keep it simple, and use a hash. .Sp These are, incidentally, the same arguments that people weigh when trying to decide whether their object-oriented modules should be based on blessed hashes, blessed arrays, or what. Essentially the only difference here is that we're not blessing our nodes or talking in terms of classes and methods. .Sp [end footnote] .RE .PP So, we might as well represent nodes like so: .PP .Vb 2 \& $node = { # hashref \& \*(Aqboard\*(Aq => ...board string, e.g., "xx_x_xoo_oo" \& \& \*(Aqlast_move_payoff\*(Aq => ...payoff of the move \& that got us here. \& \& \*(Aqlast_move_from\*(Aq => ...the start... \& \*(Aqlast_move_to\*(Aq => ...and end point of the move \& that got us here. E.g., 5 and 6, \& representing a move from 5 to 6. \& \& \*(Aqwhose_turn\*(Aq => ...whose move it then becomes. \& just an \*(Aqx\*(Aq or \*(Aqo\*(Aq. \& \& \*(Aqsuccessors\*(Aq => ...the successors \& }; .Ve .PP Note that we could have a field called something like 'last_move_who' to denote who last moved, but since turns in Alak always alternate (and no-one can pass), storing whose move it is now \fIand\fR who last moved is redundant \*(-- if X last moved, it's O turn now, and vice versa. I chose to have a 'whose_turn' field instead of a 'last_move_who', but it doesn't really matter. Either way, we'll end up inferring one from the other at several points in the program. .PP When we want to store the successors of a node, should we use an array or a hash? On the one hand, the successors to \f(CW$node\fR aren't essentially ordered, so there's no reason to use an array per se; on the other hand, if we used a hash, with successor nodes as values, we don't have anything particularly meaningful to use as keys. (And we can't use the successors themselves as keys, since the nodes are referred to by hash references, and you can't use a reference as a hash key.) Given no particularly compelling reason to do otherwise, I choose to just use an array to store all a node's successors, although the order is never actually used for anything: .PP .Vb 5 \& $node = { \& ... \& \*(Aqsuccessors\*(Aq => [ ...nodes... ], \& ... \& }; .Ve .PP In any case, now that we've settled on what should be in a node, let's make a little sample tree out of a few nodes and see what we can do with it: .PP .Vb 9 \& # Board just before move 3 in above game \& my $n0 = { \& \*(Aqboard\*(Aq => \*(Aqxx_xx_oo_oo\*(Aq, \& \*(Aqlast_move_payoff\*(Aq => 0, \& \*(Aqlast_move_from\*(Aq => 9, \& \*(Aqlast_move_to\*(Aq => 7, \& \*(Aqwhose_turn\*(Aq => \*(Aqx\*(Aq, \& \*(Aqsuccessors\*(Aq => [], \& }; \& \& # And, for now, just two of the successors: \& \& # X moves 4 to 6, giving xx_\|_xxoo_oo \& my $n1 = { \& \*(Aqboard\*(Aq => \*(Aqxx_\|_xxoo_oo\*(Aq, \& \*(Aqlast_move_payoff\*(Aq => 0, \& \*(Aqlast_move_from\*(Aq => 4, \& \*(Aqlast_move_to\*(Aq => 6, \& \*(Aqwhose_turn\*(Aq => \*(Aqo\*(Aq, \& \*(Aqsuccessors\*(Aq => [], \& }; \& \& # or X moves 5 to 6, giving xx_x_xoo_oo \& my $n2 = { \& \*(Aqboard\*(Aq => \*(Aqxx_x_xoo_oo\*(Aq, \& \*(Aqlast_move_payoff\*(Aq => 0, \& \*(Aqlast_move_from\*(Aq => 5, \& \*(Aqlast_move_to\*(Aq => 6, \& \*(Aqwhose_turn\*(Aq => \*(Aqo\*(Aq, \& \*(Aqsuccessors\*(Aq => [], \& }; \& \& # Now connect them... \& push @{$n0\->{\*(Aqsuccessors\*(Aq}}, $n1, $n2; .Ve .SS "Digression: Links to Parents" .IX Subsection "Digression: Links to Parents" In comparing what we store in an Alak game tree node to what HTML::Element stores in \s-1HTML\s0 element nodes, you'll note one big difference: every HTML::Element node contains a link to its parent, whereas we don't have our Alak nodes keeping a link to theirs. .PP The reason this can be an important difference is because it can affect how Perl knows when you're not using pieces of memory anymore. Consider the tree we just built, above: .PP .Vb 3 \& node 0 \& / \e \& node 1 node 2 .Ve .PP There's two ways Perl knows you're using a piece of memory: 1) it's memory that belongs directly to a variable (i.e., is necessary to hold that variable's value, or value\fIs\fR in the case of a hash or array), or 2) it's a piece of memory that something holds a reference to. In the above code, Perl knows that the hash for node 0 (for board \&\*(L"xx_xx_oo_oo\*(R") is in use because something (namely, the variable \&\f(CW$n0\fR) holds a reference to it. Now, even if you followed the above code with this: .PP .Vb 1 \& $n1 = $n2 = \*(Aqwhatever\*(Aq; .Ve .PP to make your variables \f(CW$n1\fR and \f(CW$n2\fR stop holding references to the hashes for the two successors of node 0, Perl would still know that those hashes are still in use, because node 0's successors array holds a reference to those hashes. And Perl knows that node 0 is still in use because something still holds a reference to it. Now, if you added: .PP .Vb 1 \& my $root = $n0; .Ve .PP This would change nothing \*(-- there's just be \fItwo\fR things holding a reference to the node 0 hash, which in turn holds a reference to the node 1 and node 2 hashes. And if you then added: .PP .Vb 1 \& $n0 = \*(Aqstuff\*(Aq; .Ve .PP still nothing would change, because something (\f(CW$root\fR) still holds a reference to the node 0 hash. But once \fInothing\fR holds a reference to the node 0 hash, Perl will know it can destroy that hash (and reclaim the memory for later use, say), and once it does that, nothing will hold a reference to the node 1 or the node 2 hashes, and those will be destroyed too. .PP But consider if the node 1 and node 2 hashes each had an attribute \&\*(L"parent\*(R" (or \*(L"predecessor\*(R") that held a reference to node 0. If your program stopped holding a reference to the node 0 hash, Perl could \&\fInot\fR then say that \fInothing\fR holds a reference to node 0 \*(-- because node 1 and node 2 still do. So, the memory for nodes 0, 1, and 2 would never get reclaimed (until your program ended, at which point Perl destroys \fIeverything\fR). If your program grew and discarded lots of nodes in the game tree, but didn't let Perl know it could reclaim their memory, your program could grow to use immense amounts of memory \*(-- never a nice thing to have happen. There's three ways around this: .PP 1) When you're finished with a node, delete the reference each of its children have to it (in this case, deleting \f(CW$n1\fR\->{'parent'}, say). When you're finished with a whole tree, just go through the whole tree erasing links that children have to their children. .PP 2) Reconsider whether you really need to have each node hold a reference to its parent. Just not having those links will avoid the whole problem. .PP 3) use the WeakRef module with Perl 5.6 or later. This allows you to \&\*(L"weaken\*(R" some references (like the references that node 1 and 2 could hold to their parent) so that they don't count when Perl goes asking whether anything holds a reference to a given piece of memory. This wonderful new module eliminates the headaches that can often crop up with either of the two previous methods. .PP It so happens that our Alak program is simple enough that we don't need for our nodes to have links to their parents, so the second solution is fine. But in a more advanced program, the first or third solutions might be unavoidable. .SS "Recursively Printing the Tree" .IX Subsection "Recursively Printing the Tree" I don't like working blind \*(-- if I have any kind of a complex data structure in memory for a program I'm working on, the first thing I do is write something that can dump that structure to the screen so I can make sure that what I \fIthink\fR is in memory really \fIis\fR what's in memory. Now, I could just use the \*(L"x\*(R" pretty-printer command in Perl's interactive debugger, or I could have the program use the \&\f(CW\*(C`Data::Dumper\*(C'\fR module. But in this case, I think the output from those is rather too verbose. Once we have trees with dozens of nodes in them, we'll really want a dump of the tree to be as concise as possible, hopefully just one line per node. What I'd like is something that can print \f(CW$n0\fR and its successors (see above) as something like: .PP .Vb 3 \& xx_xx_oo_oo (O moved 9 to 7, 0 payoff) \& xx_\|_xxoo_oo (X moved 4 to 6, 0 payoff) \& xx_x_xoo_oo (X moved 5 to 6, 0 payoff) .Ve .PP A subroutine to print a line for a given node, and then do that again for each successor, would look something like: .PP .Vb 9 \& sub dump_tree { \& my $n = $_[0]; # "n" is for node \& print \& ...something expressing $n\*(Aqn content... \& foreach my $s (@{$n\->{\*(Aqsuccessors\*(Aq}}) { \& # "s for successor \& dump($s); \& } \& } .Ve .PP And we could just start that out with a call to \f(CW\*(C`dump_tree($n0)\*(C'\fR. .PP Since this routine... .Sp .RS 4 Footnote: I first wrote this routine starting out with \*(L"sub dump {\*(R". But when I tried actually calling \f(CW\*(C`dump($n0)\*(C'\fR, Perl would dump core! Imagine my shock when I discovered that this is absolutely to be expected \*(-- Perl provides a built-in function called \f(CW\*(C`dump\*(C'\fR, the purpose of which is to, yes, make Perl dump core. Calling our routine \*(L"dump_tree\*(R" instead of \*(L"dump\*(R" neatly avoids that problem. .RE .PP \&...does its work (dumping the subtree at and under the given node) by calling itself, it's \fBrecursive\fR. However, there's a special term for this kind of recursion across a tree: traversal. To \&\fBtraverse\fR a tree means to do something to a node, and to traverse its children. There's two prototypical ways to do this, depending on what happens when: .PP .Vb 3 \& traversing X in pre\-order: \& * do something to X \& * then traverse X\*(Aqs children \& \& traversing X in post\-order: \& * traverse X\*(Aqs children \& * then do something to X .Ve .PP Dumping the tree to the screen the way we want it happens to be a matter of pre-order traversal, since the thing we do (print a description of the node) happens before we recurse into the successors. .PP When we try writing the \f(CW\*(C`print\*(C'\fR statement for our above \f(CW\*(C`dump_tree\*(C'\fR, we can get something like: .PP .Vb 2 \& sub dump_tree { \& my $n = $_[0]; \& \& # "xx_xx_oo_oo (O moved 9 to 7, 0 payoff)" \& print \& $n\->{\*(Aqboard\*(Aq}, " (", \& ($n\->{\*(Aqwhose_turn\*(Aq} eq \*(Aqo\*(Aq ? \*(AqX\*(Aq : \*(AqO\*(Aq), \& # Infer who last moved from whose turn it is now. \& " moved ", $n\->{\*(Aqlast_move_from\*(Aq}, \& " to ", $n\->{\*(Aqlast_move_to\*(Aq}, \& ", ", $n\->{\*(Aqlast_move_payoff\*(Aq}, \& " payoff)\en", \& ; \& \& foreach my $s (@{$n\->{\*(Aqsuccessors\*(Aq}}) { \& dump_tree($s); \& } \& } .Ve .PP If we run this on \f(CW$n0\fR from above, we get this: .PP .Vb 3 \& xx_xx_oo_oo (O moved 9 to 7, 0 payoff) \& xx_\|_xxoo_oo (X moved 4 to 6, 0 payoff) \& xx_x_xoo_oo (X moved 5 to 6, 0 payoff) .Ve .PP Each line on its own is fine, but we forget to allow for indenting, and without that we can't tell what's a child of what. (Imagine if the first successor had successors of its own \*(-- you wouldn't be able to tell if it were a child, or a sibling.) To get indenting, we'll need to have the instances of the \f(CW\*(C`dump_tree\*(C'\fR routine know how far down in the tree they're being called, by passing a depth parameter between them: .PP .Vb 11 \& sub dump_tree { \& my $n = $_[0]; \& my $depth = $_[1]; \& $depth = 0 unless defined $depth; \& print \& " " x $depth, \& ...stuff... \& foreach my $s (@{$n\->{\*(Aqsuccessors\*(Aq}}) { \& dump_tree($s, $depth + 1); \& } \& } .Ve .PP When we call \f(CW\*(C`dump_tree($n0)\*(C'\fR, \f(CW$depth\fR (from \f(CW$_[1]\fR) is undefined, so gets set to 0, which translates into an indenting of no spaces. But when \&\f(CW\*(C`dump_tree\*(C'\fR invokes itself on \f(CW$n0\fR's children, those instances see \&\f(CW$depth\fR + 1 as their \f(CW$_[1]\fR, giving appropriate indenting. .Sp .RS 4 Footnote: Passing values around between different invocations of a recursive routine, as shown, is a decent way to share the data. Another way to share the data is by keeping it in a global variable, like \f(CW$Depth\fR, initially set to 0. Each time \f(CW\*(C`dump_tree\*(C'\fR is about to recurse, it must \&\f(CW\*(C`++$Depth\*(C'\fR, and when it's back, it must \f(CW\*(C`\-\-$Depth\*(C'\fR. .Sp Or, if the reader is familiar with closures, consider this approach: .Sp .Vb 10 \& sub dump_tree { \& # A wrapper around calls to a recursive closure: \& my $start_node = $_[0]; \& my $depth = 0; \& # to be shared across calls to $recursor. \& my $recursor; \& $recursor = sub { \& my $n = $_[0]; \& print " " x $depth, \& ...stuff... \& ++$depth; \& foreach my $s (@{$n\->{\*(Aqsuccessors\*(Aq}}) { \& $recursor\->($s); \& } \& \-\-$depth; \& } \& $recursor\->($start_node); # start recursing \& undef $recursor; \& } .Ve .Sp The reader with an advanced understanding of Perl's reference-count-based garbage collection is invited to consider why it is currently necessary to undef \f(CW$recursor\fR (or otherwise change its value) after all recursion is done. .Sp The reader whose mind is perverse in other ways is invited to consider how (or when!) passing a depth parameter around is unnecessary because of information that Perl's \f(CWcaller(N)\fR function reports! .Sp [end footnote] .RE .SS "Growing the Tree" .IX Subsection "Growing the Tree" Our \f(CW\*(C`dump_tree\*(C'\fR routine works fine for the sample tree we've got, so now we should get the program working on making its own trees, starting from a given board. .PP In \f(CW\*(C`Games::Alak\*(C'\fR (the CPAN-released version of Alak that uses essentially the same code that we're currently discussing the tree-related parts of), there is a routine called \f(CW\*(C`figure_successors\*(C'\fR that, given one childless node, will figure out all its possible successors. That is, it looks at the current board, looks at every piece belonging to the player whose turn it is, and considers the effect of moving each piece every possible way \*(-- notably, it figures out the immediate payoff, and if that move would end the game, it notes that by setting an \*(L"endgame\*(R" entry in that node's hash. (That way, we know that that's a node that \fIcan't\fR have successors.) .PP In the code for \f(CW\*(C`Games::Alak\*(C'\fR, \f(CW\*(C`figure_successors\*(C'\fR does all these things, in a rather straightforward way. I won't walk you through the details of the \f(CW\*(C`figure_successors\*(C'\fR code I've written, since the code has nothing much to do with trees, and is all just implementation of the Alak rules for what can move where, with what result. Especially interested readers can puzzle over that part of code in the source listing in the archive from \s-1CPAN,\s0 but others can just assume that it works as described above. .PP But consider that \f(CW\*(C`figure_successors\*(C'\fR, regardless of its inner workings, does not grow the \fItree\fR; it only makes one set of successors for one node at a time. It has to be up to a different routine to call \&\f(CW\*(C`figure_successors\*(C'\fR, and to keep applying it as needed, in order to make a nice big tree that our game-playing program can base its decisions on. .PP Now, we could do this by just starting from one node, applying \&\f(CW\*(C`figure_successors\*(C'\fR to it, then applying \f(CW\*(C`figure_successors\*(C'\fR on all the resulting children, and so on: .PP .Vb 10 \& sub grow { # Just a first attempt at this! \& my $n = $_[0]; \& figure_successors($n); \& unless \& @{$n\->{\*(Aqsuccessors\*(Aq}} \& # already has successors. \& or $n\->{\*(Aqendgame\*(Aq} \& # can\*(Aqt have successors. \& } \& foreach my $s (@{$n\->{\*(Aqsuccessors\*(Aq}}) { \& grow($s); # recurse \& } \& } .Ve .PP If you have a game tree for tic-tac-toe, and you grow it without limitation (as above), you will soon enough have a fully \*(L"solved\*(R" tree, where every node that \fIcan\fR have successors \fIdoes\fR, and all the leaves of the tree are \fIall\fR the possible endgames (where, in each case, the board is filled). But a game of Alak is different from tic-tac-toe, because it can, in theory, go on forever. For example, the following sequence of moves is quite possible: .PP .Vb 6 \& xxxx_\|_\|_oooo \& xxx_x_\|_oooo \& xxx_x_o_ooo \& xxxx_\|_o_ooo (x moved back) \& xxxx_\|_\|_oooo (o moved back) \& ...repeat forever... .Ve .PP So if you tried using our above attempt at a \f(CW\*(C`grow\*(C'\fR routine, Perl would happily start trying to construct an infinitely deep tree, containing an infinite number of nodes, consuming an infinite amount of memory, and requiring an infinite amount of time. As the old saying goes: \*(L"You can't have everything \*(-- where would you put it?\*(R" So we have to place limits on how much we'll grow the tree. .PP There's more than one way to do this: .PP 1. We could grow the tree until we hit some limit on the number of nodes we'll allow in the tree. .PP 2. We could grow the tree until we hit some limit on the amount of time we're willing to spend. .PP 3. Or we could grow the tree until it is fully fleshed out to a certain depth. .PP Since we already know to track depth (as we did in writing \f(CW\*(C`dump_tree\*(C'\fR), we'll do it that way, the third way. The implementation for that third approach is also pretty straightforward: .PP .Vb 10 \& $Max_depth = 3; \& sub grow { \& my $n = $_[0]; \& my $depth = $_[1] || 0; \& figure_successors($n) \& unless \& $depth >= $Max_depth \& or @{$n\->{\*(Aqsuccessors\*(Aq}} \& or $n\->{\*(Aqendgame\*(Aq} \& } \& foreach my $s (@{$n\->{\*(Aqsuccessors\*(Aq}}) { \& grow($s, $depth + 1); \& } \& # If we\*(Aqre at $Max_depth, then figure_successors \& # didn\*(Aqt get called, so there\*(Aqs no successors \& # to recurse under \-\- that\*(Aqs what stops recursion. \& } .Ve .PP If we start from a single node (whether it's a node for the starting board \&\*(L"xxxx_\|_\|_oooo\*(R", or for whatever board the computer is faced with), set \&\f(CW$Max_depth\fR to 4, and apply \f(CW\*(C`grow\*(C'\fR to it, it will grow the tree to include several hundred nodes. .Sp .RS 4 Footnote: If at each move there are four pieces that can move, and they can each move right or left, the \*(L"branching factor\*(R" of the tree is eight, giving a tree with 1 (depth 0) + 8 (depth 1) + 8 ** 2 + 8 ** 3 + 8 ** 4 = 4681 nodes in it. But, in practice, not all pieces can move in both directions (none of the x pieces in \*(L"xxxx_\|_\|_oooo\*(R" can move left, for example), and there may be fewer than four pieces, if some were lost. For example, there are 801 nodes in a tree of depth four starting from \*(L"xxxx_\|_\|_oooo\*(R", suggesting an average branching factor of about five (801 ** (1/4) is about 5.3), not eight. .RE .PP What we need to derive from that tree is the information about what are the best moves for X. The simplest way to consider the payoff of different successors is to just average them \*(-- but what we average isn't always their immediate payoffs (because that'd leave us using only one generation of information), but the average payoff of \fItheir\fR successors, if any. We can formalize this as: .PP .Vb 6 \& To figure a node\*(Aqs average payoff: \& If the node has successors: \& Figure each successor\*(Aqs average payoff. \& My average payoff is the average of theirs. \& Otherwise: \& My average payoff is my immediate payoff. .Ve .PP Since this involves recursing into the successors \fIbefore\fR doing anything with the current node, this will traverse the tree \&\fIin post-order\fR. .PP We could work that up as a routine of its own, and apply that to the tree after we've applied \f(CW\*(C`grow\*(C'\fR to it. But since we'd never grow the tree without also figuring the average benefit, we might as well make that figuring part of the \f(CW\*(C`grow\*(C'\fR routine itself: .PP .Vb 10 \& $Max_depth = 3; \& sub grow { \& my $n = $_[0]; \& my $depth = $_[1] || 0; \& figure_successors($n); \& unless \& $depth >= $Max_depth \& or @{$n\->{\*(Aqsuccessors\*(Aq}} \& or $n\->{\*(Aqendgame\*(Aq} \& } \& \& if(@{$n\->{\*(Aqsuccessors\*(Aq}}) { \& my $a_payoff_sum = 0; \& foreach my $s (@{$n\->{\*(Aqsuccessors\*(Aq}}) { \& grow($s, $depth + 1); # RECURSE \& $a_payoff_sum += $s\->{\*(Aqaverage_payoff\*(Aq}; \& } \& $n\->{\*(Aqaverage_payoff\*(Aq} \& = $a_payoff_sum / @{$n\->{\*(Aqsuccessors\*(Aq}}; \& } else { \& $n\->{\*(Aqaverage_payoff\*(Aq} \& = $n\->{\*(Aqlast_move_payoff\*(Aq}; \& } \& } .Ve .PP So, by time \f(CW\*(C`grow\*(C'\fR has applied to a node (wherever in the tree it is), it will have figured successors if possible (which, in turn, sets \&\f(CW\*(C`last_move_payoff\*(C'\fR for each node it creates), and will have set \&\f(CW\*(C`average_benefit\*(C'\fR. .PP Beyond this, all that's needed is to start the board out with a root note of \*(L"xxxx_\|_\|_oooo\*(R", and have the computer (X) take turns with the user (O) until someone wins. Whenever it's O's turn, \f(CW\*(C`Games::Alak\*(C'\fR presents a prompt to the user, letting him know the state of the current board, and asking what move he selects. When it's X's turn, the computer grows the game tree as necessary (using just the \f(CW\*(C`grow\*(C'\fR routine from above), then selects the move with the highest average payoff (or one of the highest, in case of a tie). .PP In either case, \*(L"selecting\*(R" a move means just setting that move's node as the new root of the program's game tree. Its sibling nodes and their descendants (the boards that \fIdidn't\fR get selected) and its parent node will be erased from memory, since they will no longer be in use (as Perl can tell by the fact that nothing holds references to them anymore). .PP The interface code in \f(CW\*(C`Games::Alak\*(C'\fR (the code that prompts the user for his move) actually supports quite a few options besides just moving \*(-- including dumping the game tree to a specified depth (using a slightly fancier version of \f(CW\*(C`dump_tree\*(C'\fR, above), resetting the game, changing \&\f(CW$Max_depth\fR in the middle of the game, and quitting the game. Like \&\f(CW\*(C`figure_successors\*(C'\fR, it's a bit too long to print here, but interested users are welcome to peruse (and freely modify) the code, as well as to enjoy just playing the game. .PP Now, in practice, there's more to game trees than this: for games with a larger branching factor than Alak has (which is most!), game trees of depth four or larger would contain too many nodes to be manageable, most of those nodes being strategically quite uninteresting for either player; dealing with game trees specifically is therefore a matter of recognizing uninteresting contingencies and not bothering to grow the tree under them. .Sp .RS 4 Footnote: For example, to choose a straightforward case: if O has a choice between moves that put him in immediate danger of X winning and moves that don't, then O won't ever choose the dangerous moves (and if he does, the computer will know enough to end the game), so there's no point in growing the tree any further beneath those nodes. .RE .PP But this sample implementation should illustrate the basics of how to build and manipulate a simple tree structure in memory. And once you've understood the basics of tree storage here, you should be ready to better understand the complexities and peculiarities of other systems for creating, accessing, and changing trees, including Tree::DAG_Node, HTML::Element, \s-1XML::DOM,\s0 or related formalisms like XPath and \s-1XSL.\s0 .PP \&\fB[end body of article]\fR .SS "[Author Credit]" .IX Subsection "[Author Credit]" Sean M. Burke (\f(CW\*(C`sburke@cpan.org\*(C'\fR) is a tree-dwelling hominid. .SS "References" .IX Subsection "References" Dewdney, A[lexander] K[eewatin]. 1984. \fIPlaniverse: Computer Contact with a Two-Dimensional World.\fR Poseidon Press, New York. .PP Knuth, Donald Ervin. 1997. \fIArt of Computer Programming, Volume 1, Third Edition: Fundamental Algorithms\fR. Addison-Wesley, Reading, \s-1MA.\s0 .PP Wirth, Niklaus. 1976. \fIAlgorithms + Data Structures = Programs\fR Prentice-Hall, Englewood Cliffs, \s-1NJ.\s0 .PP Worth, Stan and Allman Sheldon. Circa 1967. \fIGeorge of the Jungle\fR theme. [music by Jay Ward.] .PP Wirth's classic, currently and lamentably out of print, has a good section on trees. I find it clearer than Knuth's (if not quite as encyclopedic), probably because Wirth's example code is in a block-structured high-level language (basically Pascal), instead of in assembler (\s-1MIX\s0). I believe the book was re-issued in the 1980s under the titles \fIAlgorithms and Data Structures\fR and, in a German edition, \fIAlgorithmen und Datenstrukturen\fR. Cheap copies of these editions should be available through used book services such as \f(CW\*(C`abebooks.com\*(C'\fR. .PP Worth's classic, however, is available on the soundtrack to the 1997 \fIGeorge of the Jungle\fR movie, as performed by The Presidents of the United States of America. .SH "BACK" .IX Header "BACK" Return to the HTML::Tree docs. man3/TAP::Parser::Result::Plan.3pm000044400000013531147645265660012420 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "TAP::Parser::Result::Plan 3" .TH TAP::Parser::Result::Plan 3 "2018-03-19" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" TAP::Parser::Result::Plan \- Plan result token. .SH "VERSION" .IX Header "VERSION" Version 3.42 .SH "DESCRIPTION" .IX Header "DESCRIPTION" This is a subclass of TAP::Parser::Result. A token of this class will be returned if a plan line is encountered. .PP .Vb 2 \& 1..1 \& ok 1 \- woo hooo! .Ve .PP \&\f(CW1..1\fR is the plan. Gotta have a plan. .SH "OVERRIDDEN METHODS" .IX Header "OVERRIDDEN METHODS" Mainly listed here to shut up the pitiful screams of the pod coverage tests. They keep me awake at night. .IP "\(bu" 4 \&\f(CW\*(C`as_string\*(C'\fR .IP "\(bu" 4 \&\f(CW\*(C`raw\*(C'\fR .SS "Instance Methods" .IX Subsection "Instance Methods" \fI\f(CI\*(C`plan\*(C'\fI\fR .IX Subsection "plan" .PP .Vb 3 \& if ( $result\->is_plan ) { \& print $result\->plan; \& } .Ve .PP This is merely a synonym for \f(CW\*(C`as_string\*(C'\fR. .PP \fI\f(CI\*(C`tests_planned\*(C'\fI\fR .IX Subsection "tests_planned" .PP .Vb 1 \& my $planned = $result\->tests_planned; .Ve .PP Returns the number of tests planned. For example, a plan of \f(CW1..17\fR will cause this method to return '17'. .PP \fI\f(CI\*(C`directive\*(C'\fI\fR .IX Subsection "directive" .PP .Vb 1 \& my $directive = $plan\->directive; .Ve .PP If a \s-1SKIP\s0 directive is included with the plan, this method will return it. .PP .Vb 1 \& 1..0 # SKIP: why bother? .Ve .PP \fI\f(CI\*(C`has_skip\*(C'\fI\fR .IX Subsection "has_skip" .PP .Vb 1 \& if ( $result\->has_skip ) { ... } .Ve .PP Returns a boolean value indicating whether or not this test has a \s-1SKIP\s0 directive. .PP \fI\f(CI\*(C`explanation\*(C'\fI\fR .IX Subsection "explanation" .PP .Vb 1 \& my $explanation = $plan\->explanation; .Ve .PP If a \s-1SKIP\s0 directive was included with the plan, this method will return the explanation, if any. .PP \fI\f(CI\*(C`todo_list\*(C'\fI\fR .IX Subsection "todo_list" .PP .Vb 4 \& my $todo = $result\->todo_list; \& for ( @$todo ) { \& ... \& } .Ve man3/TAP::Parser::SourceHandler::RawTAP.3pm000044400000014136147645265660014106 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "TAP::Parser::SourceHandler::RawTAP 3" .TH TAP::Parser::SourceHandler::RawTAP 3 "2018-03-19" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" TAP::Parser::SourceHandler::RawTAP \- Stream output from raw TAP in a scalar/array ref. .SH "VERSION" .IX Header "VERSION" Version 3.42 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& use TAP::Parser::Source; \& use TAP::Parser::SourceHandler::RawTAP; \& \& my $source = TAP::Parser::Source\->new\->raw( \e"1..1\enok 1\en" ); \& $source\->assemble_meta; \& \& my $class = \*(AqTAP::Parser::SourceHandler::RawTAP\*(Aq; \& my $vote = $class\->can_handle( $source ); \& my $iter = $class\->make_iterator( $source ); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This is a \fIraw \s-1TAP\s0 output\fR TAP::Parser::SourceHandler \- it has 2 jobs: .PP 1. Figure out if the TAP::Parser::Source it's given is raw \s-1TAP\s0 output (\*(L"can_handle\*(R"). .PP 2. Creates an iterator for raw \s-1TAP\s0 output (\*(L"make_iterator\*(R"). .PP Unless you're writing a plugin or subclassing TAP::Parser, you probably won't need to use this module directly. .SH "METHODS" .IX Header "METHODS" .SS "Class Methods" .IX Subsection "Class Methods" \fI\f(CI\*(C`can_handle\*(C'\fI\fR .IX Subsection "can_handle" .PP .Vb 1 \& my $vote = $class\->can_handle( $source ); .Ve .PP Only votes if \f(CW$source\fR is an array, or a scalar with newlines. Casts the following votes: .PP .Vb 4 \& 0.9 if it\*(Aqs a scalar with \*(Aq..\*(Aq in it \& 0.7 if it\*(Aqs a scalar with \*(Aqok\*(Aq in it \& 0.3 if it\*(Aqs just a scalar with newlines \& 0.5 if it\*(Aqs an array .Ve .PP \fI\f(CI\*(C`make_iterator\*(C'\fI\fR .IX Subsection "make_iterator" .PP .Vb 1 \& my $iterator = $class\->make_iterator( $source ); .Ve .PP Returns a new TAP::Parser::Iterator::Array for the source. \&\f(CW\*(C`$source\->raw\*(C'\fR must be an array ref, or a scalar ref. .PP \&\f(CW\*(C`croak\*(C'\fRs on error. .SH "SUBCLASSING" .IX Header "SUBCLASSING" Please see \*(L"\s-1SUBCLASSING\*(R"\s0 in TAP::Parser for a subclassing overview. .SH "SEE ALSO" .IX Header "SEE ALSO" TAP::Object, TAP::Parser, TAP::Parser::IteratorFactory, TAP::Parser::SourceHandler, TAP::Parser::SourceHandler::Executable, TAP::Parser::SourceHandler::Perl, TAP::Parser::SourceHandler::File, TAP::Parser::SourceHandler::Handle man3/Module::Build::Platform::VOS.3pm000044400000010575147645265660013114 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Module::Build::Platform::VOS 3" .TH Module::Build::Platform::VOS 3 "2020-03-05" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Module::Build::Platform::VOS \- Builder class for VOS platforms .SH "DESCRIPTION" .IX Header "DESCRIPTION" The sole purpose of this module is to inherit from \&\f(CW\*(C`Module::Build::Base\*(C'\fR. Please see the Module::Build for the docs. .SH "AUTHOR" .IX Header "AUTHOR" Ken Williams .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIperl\fR\|(1), \fIModule::Build\fR\|(3), \fIExtUtils::MakeMaker\fR\|(3) man3/HTML::Element.3pm000044400000212214147645265660010312 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "HTML::Element 3" .TH HTML::Element 3 "2020-03-05" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" HTML::Element \- Class for objects that represent HTML elements .SH "VERSION" .IX Header "VERSION" This document describes version 5.07 of HTML::Element, released August 31, 2017 as part of HTML-Tree. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 3 \& use HTML::Element; \& $a = HTML::Element\->new(\*(Aqa\*(Aq, href => \*(Aqhttp://www.perl.com/\*(Aq); \& $a\->push_content("The Perl Homepage"); \& \& $tag = $a\->tag; \& print "$tag starts out as:", $a\->starttag, "\en"; \& print "$tag ends as:", $a\->endtag, "\en"; \& print "$tag\e\*(Aqs href attribute is: ", $a\->attr(\*(Aqhref\*(Aq), "\en"; \& \& $links_r = $a\->extract_links(); \& print "Hey, I found ", scalar(@$links_r), " links.\en"; \& \& print "And that, as HTML, is: ", $a\->as_HTML, "\en"; \& $a = $a\->delete; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" (This class is part of the HTML::Tree dist.) .PP Objects of the HTML::Element class can be used to represent elements of \s-1HTML\s0 document trees. These objects have attributes, notably attributes that designates each element's parent and content. The content is an array of text segments and other HTML::Element objects. A tree with HTML::Element objects as nodes can represent the syntax tree for a \s-1HTML\s0 document. .SH "HOW WE REPRESENT TREES" .IX Header "HOW WE REPRESENT TREES" Consider this \s-1HTML\s0 document: .PP .Vb 9 \& \& \& Stuff \& \& \& \&

I like potatoes!

\& \& .Ve .PP Building a syntax tree out of it makes a tree-structure in memory that could be diagrammed as: .PP .Vb 11 \& html (lang=\*(Aqen\-US\*(Aq) \& / \e \& / \e \& / \e \& head body \& /\e \e \& / \e \e \& / \e \e \& title meta h1 \& | (name=\*(Aqauthor\*(Aq, | \& "Stuff" content=\*(AqJojo\*(Aq) "I like potatoes" .Ve .PP This is the traditional way to diagram a tree, with the \*(L"root\*(R" at the top, and it's this kind of diagram that people have in mind when they say, for example, that \*(L"the meta element is under the head element instead of under the body element\*(R". (The same is also said with \&\*(L"inside\*(R" instead of \*(L"under\*(R" \*(-- the use of \*(L"inside\*(R" makes more sense when you're looking at the \s-1HTML\s0 source.) .PP Another way to represent the above tree is with indenting: .PP .Vb 8 \& html (attributes: lang=\*(Aqen\-US\*(Aq) \& head \& title \& "Stuff" \& meta (attributes: name=\*(Aqauthor\*(Aq content=\*(AqJojo\*(Aq) \& body \& h1 \& "I like potatoes" .Ve .PP Incidentally, diagramming with indenting works much better for very large trees, and is easier for a program to generate. The \f(CW\*(C`$tree\->dump\*(C'\fR method uses indentation just that way. .PP However you diagram the tree, it's stored the same in memory \*(-- it's a network of objects, each of which has attributes like so: .PP .Vb 4 \& element #1: _tag: \*(Aqhtml\*(Aq \& _parent: none \& _content: [element #2, element #5] \& lang: \*(Aqen\-US\*(Aq \& \& element #2: _tag: \*(Aqhead\*(Aq \& _parent: element #1 \& _content: [element #3, element #4] \& \& element #3: _tag: \*(Aqtitle\*(Aq \& _parent: element #2 \& _content: [text segment "Stuff"] \& \& element #4 _tag: \*(Aqmeta\*(Aq \& _parent: element #2 \& _content: none \& name: author \& content: Jojo \& \& element #5 _tag: \*(Aqbody\*(Aq \& _parent: element #1 \& _content: [element #6] \& \& element #6 _tag: \*(Aqh1\*(Aq \& _parent: element #5 \& _content: [text segment "I like potatoes"] .Ve .PP The \*(L"treeness\*(R" of the tree-structure that these elements comprise is not an aspect of any particular object, but is emergent from the relatedness attributes (_parent and _content) of these element-objects and from how you use them to get from element to element. .PP While you could access the content of a tree by writing code that says "access the 'src' attribute of the root's \fIfirst\fR child's \fIseventh\fR child's \fIthird\fR child\*(L", you're more likely to have to scan the contents of a tree, looking for whatever nodes, or kinds of nodes, you want to do something with. The most straightforward way to look over a tree is to \*(R"traverse" it; an HTML::Element method (\f(CW\*(C`$h\->traverse\*(C'\fR) is provided for this purpose; and several other HTML::Element methods are based on it. .PP (For everything you ever wanted to know about trees, and then some, see Niklaus Wirth's \fIAlgorithms + Data Structures = Programs\fR or Donald Knuth's \fIThe Art of Computer Programming, Volume 1\fR.) .SS "Weak References" .IX Subsection "Weak References" \&\s-1TL\s0;DR summary: \f(CW\*(C`use\ HTML::TreeBuilder\ 5\ \-weak;\*(C'\fR and forget about the \f(CW\*(C`delete\*(C'\fR method (except for pruning a node from a tree). .PP Because HTML::Element stores a reference to the parent element, Perl's reference-count garbage collection doesn't work properly with HTML::Element trees. Starting with version 5.00, HTML::Element uses weak references (if available) to prevent that problem. Weak references were introduced in Perl 5.6.0, but you also need a version of Scalar::Util that provides the \f(CW\*(C`weaken\*(C'\fR function. .PP Weak references are enabled by default. If you want to be certain they're in use, you can say \f(CW\*(C`use\ HTML::Element\ 5\ \-weak;\*(C'\fR. You must include the version number; previous versions of HTML::Element ignored the import list entirely. .PP To disable weak references, you can say \f(CW\*(C`use\ HTML::Element\ \-noweak;\*(C'\fR. This is a global setting. \fBThis feature is deprecated\fR and is provided only as a quick fix for broken code. If your code does not work properly with weak references, you should fix it immediately, as weak references may become mandatory in a future version. Generally, all you need to do is keep a reference to the root of the tree until you're done working with it. .PP Because HTML::TreeBuilder is a subclass of HTML::Element, you can also import \f(CW\*(C`\-weak\*(C'\fR or \f(CW\*(C`\-noweak\*(C'\fR from HTML::TreeBuilder: e.g. \&\f(CW\*(C`use\ HTML::TreeBuilder:\ 5\ \-weak;\*(C'\fR. .SH "BASIC METHODS" .IX Header "BASIC METHODS" .SS "new" .IX Subsection "new" .Vb 1 \& $h = HTML::Element\->new(\*(Aqtag\*(Aq, \*(Aqattrname\*(Aq => \*(Aqvalue\*(Aq, ... ); .Ve .PP This constructor method returns a new HTML::Element object. The tag name is a required argument; it will be forced to lowercase. Optionally, you can specify other initial attributes at object creation time. .SS "attr" .IX Subsection "attr" .Vb 2 \& $value = $h\->attr(\*(Aqattr\*(Aq); \& $old_value = $h\->attr(\*(Aqattr\*(Aq, $new_value); .Ve .PP Returns (optionally sets) the value of the given attribute of \f(CW$h\fR. The attribute name (but not the value, if provided) is forced to lowercase. If trying to read the value of an attribute not present for this element, the return value is undef. If setting a new value, the old value of that attribute is returned. .PP If methods are provided for accessing an attribute (like \f(CW\*(C`$h\->tag\*(C'\fR for \&\*(L"_tag\*(R", \f(CW\*(C`$h\->content_list\*(C'\fR, etc. below), use those instead of calling attr \f(CW\*(C`$h\->attr\*(C'\fR, whether for reading or setting. .PP Note that setting an attribute to \f(CW\*(C`undef\*(C'\fR (as opposed to "", the empty string) actually deletes the attribute. .SS "tag" .IX Subsection "tag" .Vb 2 \& $tagname = $h\->tag(); \& $h\->tag(\*(Aqtagname\*(Aq); .Ve .PP Returns (optionally sets) the tag name (also known as the generic identifier) for the element \f(CW$h\fR. In setting, the tag name is always converted to lower case. .PP There are four kinds of \*(L"pseudo-elements\*(R" that show up as HTML::Element objects: .IP "Comment pseudo-elements" 4 .IX Item "Comment pseudo-elements" These are element objects with a \f(CW\*(C`$h\->tag\*(C'\fR value of \*(L"~comment\*(R", and the content of the comment is stored in the \*(L"text\*(R" attribute (\f(CW\*(C`$h\->attr("text")\*(C'\fR). For example, parsing this code with HTML::TreeBuilder... .Sp .Vb 3 \& .Ve .Sp produces an HTML::Element object with these attributes: .Sp .Vb 4 \& "_tag", \& "~comment", \& "text", \& " I like Pie.\en Pie is good\en " .Ve .IP "Declaration pseudo-elements" 4 .IX Item "Declaration pseudo-elements" Declarations (rarely encountered) are represented as HTML::Element objects with a tag name of \*(L"~declaration\*(R", and content in the \*(L"text\*(R" attribute. For example, this: .Sp .Vb 1 \& .Ve .Sp produces an element whose attributes include: .Sp .Vb 1 \& "_tag", "~declaration", "text", "DOCTYPE foo" .Ve .IP "Processing instruction pseudo-elements" 4 .IX Item "Processing instruction pseudo-elements" PIs (rarely encountered) are represented as HTML::Element objects with a tag name of \*(L"~pi\*(R", and content in the \*(L"text\*(R" attribute. For example, this: .Sp .Vb 1 \& .Ve .Sp produces an element whose attributes include: .Sp .Vb 1 \& "_tag", "~pi", "text", "stuff foo?" .Ve .Sp (assuming a recent version of HTML::Parser) .IP "~literal pseudo-elements" 4 .IX Item "~literal pseudo-elements" These objects are not currently produced by HTML::TreeBuilder, but can be used to represent a \*(L"super-literal\*(R" \*(-- i.e., a literal you want to be immune from escaping. (Yes, I just made that term up.) .Sp That is, this is useful if you want to insert code into a tree that you plan to dump out with \f(CW\*(C`as_HTML\*(C'\fR, where you want, for some reason, to suppress \f(CW\*(C`as_HTML\*(C'\fR's normal behavior of amp-quoting text segments. .Sp For example, this: .Sp .Vb 6 \& my $literal = HTML::Element\->new(\*(Aq~literal\*(Aq, \& \*(Aqtext\*(Aq => \*(Aqx < 4 & y > 7\*(Aq \& ); \& my $span = HTML::Element\->new(\*(Aqspan\*(Aq); \& $span\->push_content($literal); \& print $span\->as_HTML; .Ve .Sp prints this: .Sp .Vb 1 \& x < 4 & y > 7 .Ve .Sp Whereas this: .Sp .Vb 4 \& my $span = HTML::Element\->new(\*(Aqspan\*(Aq); \& $span\->push_content(\*(Aqx < 4 & y > 7\*(Aq); \& # normal text segment \& print $span\->as_HTML; .Ve .Sp prints this: .Sp .Vb 1 \& x < 4 & y > 7 .Ve .Sp Unless you're inserting lots of pre-cooked code into existing trees, and dumping them out again, it's not likely that you'll find \&\f(CW\*(C`~literal\*(C'\fR pseudo-elements useful. .SS "parent" .IX Subsection "parent" .Vb 2 \& $parent = $h\->parent(); \& $h\->parent($new_parent); .Ve .PP Returns (optionally sets) the parent (aka \*(L"container\*(R") for this element. The parent should either be undef, or should be another element. .PP You \fBshould not\fR use this to directly set the parent of an element. Instead use any of the other methods under \*(L"Structure-Modifying Methods\*(R", below. .PP Note that \f(CW\*(C`not($h\->parent)\*(C'\fR is a simple test for whether \f(CW$h\fR is the root of its subtree. .SS "content_list" .IX Subsection "content_list" .Vb 2 \& @content = $h\->content_list(); \& $num_children = $h\->content_list(); .Ve .PP Returns a list of the child nodes of this element \*(-- i.e., what nodes (elements or text segments) are inside/under this element. (Note that this may be an empty list.) .PP In a scalar context, this returns the count of the items, as you may expect. .SS "content" .IX Subsection "content" .Vb 1 \& $content_array_ref = $h\->content(); # may return undef .Ve .PP This somewhat deprecated method returns the content of this element; but unlike content_list, this returns either undef (which you should understand to mean no content), or a \fIreference to the array\fR of content items, each of which is either a text segment (a string, i.e., a defined non-reference scalar value), or an HTML::Element object. Note that even if an arrayref is returned, it may be a reference to an empty array. .PP While older code should feel free to continue to use \f(CW\*(C`$h\->content\*(C'\fR, new code should use \f(CW\*(C`$h\->content_list\*(C'\fR in almost all conceivable cases. It is my experience that in most cases this leads to simpler code anyway, since it means one can say: .PP .Vb 1 \& @children = $h\->content_list; .Ve .PP instead of the inelegant: .PP .Vb 1 \& @children = @{$h\->content || []}; .Ve .PP If you do use \f(CW\*(C`$h\->content\*(C'\fR (or \f(CW\*(C`$h\->content_array_ref\*(C'\fR), you should not use the reference returned by it (assuming it returned a reference, and not undef) to directly set or change the content of an element or text segment! Instead use content_refs_list or any of the other methods under \*(L"Structure-Modifying Methods\*(R", below. .SS "content_array_ref" .IX Subsection "content_array_ref" .Vb 1 \& $content_array_ref = $h\->content_array_ref(); # never undef .Ve .PP This is like \f(CW\*(C`content\*(C'\fR (with all its caveats and deprecations) except that it is guaranteed to return an array reference. That is, if the given node has no \f(CW\*(C`_content\*(C'\fR attribute, the \f(CW\*(C`content\*(C'\fR method would return that undef, but \f(CW\*(C`content_array_ref\*(C'\fR would set the given node's \&\f(CW\*(C`_content\*(C'\fR value to \f(CW\*(C`[]\*(C'\fR (a reference to a new, empty array), and return that. .SS "content_refs_list" .IX Subsection "content_refs_list" .Vb 1 \& @content_refs = $h\->content_refs_list; .Ve .PP This returns a list of scalar references to each element of \f(CW$h\fR's content list. This is useful in case you want to in-place edit any large text segments without having to get a copy of the current value of that segment value, modify that copy, then use the \&\f(CW\*(C`splice_content\*(C'\fR to replace the old with the new. Instead, here you can in-place edit: .PP .Vb 4 \& foreach my $item_r ($h\->content_refs_list) { \& next if ref $$item_r; \& $$item_r =~ s/honour/honor/g; \& } .Ve .PP You \fIcould\fR currently achieve the same affect with: .PP .Vb 5 \& foreach my $item (@{ $h\->content_array_ref }) { \& # deprecated! \& next if ref $item; \& $item =~ s/honour/honor/g; \& } .Ve .PP \&...except that using the return value of \f(CW\*(C`$h\->content\*(C'\fR or \&\f(CW\*(C`$h\->content_array_ref\*(C'\fR to do that is deprecated, and just might stop working in the future. .SS "implicit" .IX Subsection "implicit" .Vb 2 \& $is_implicit = $h\->implicit(); \& $h\->implicit($make_implicit); .Ve .PP Returns (optionally sets) the \*(L"_implicit\*(R" attribute. This attribute is a flag that's used for indicating that the element was not originally present in the source, but was added to the parse tree (by HTML::TreeBuilder, for example) in order to conform to the rules of \&\s-1HTML\s0 structure. .SS "pos" .IX Subsection "pos" .Vb 2 \& $pos = $h\->pos(); \& $h\->pos($element); .Ve .PP Returns (and optionally sets) the \*(L"_pos\*(R" (for "current \fIpos\fRition") pointer of \f(CW$h\fR. This attribute is a pointer used during some parsing operations, whose value is whatever HTML::Element element at or under \f(CW$h\fR is currently \*(L"open\*(R", where \f(CW\*(C`$h\->insert_element(NEW)\*(C'\fR will actually insert a new element. .PP (This has nothing to do with the Perl function called \f(CW\*(C`pos\*(C'\fR, for controlling where regular expression matching starts.) .PP If you set \f(CW\*(C`$h\->pos($element)\*(C'\fR, be sure that \f(CW$element\fR is either \f(CW$h\fR, or an element under \f(CW$h\fR. .PP If you've been modifying the tree under \f(CW$h\fR and are no longer sure \f(CW\*(C`$h\->pos\*(C'\fR is valid, you can enforce validity with: .PP .Vb 1 \& $h\->pos(undef) unless $h\->pos\->is_inside($h); .Ve .SS "all_attr" .IX Subsection "all_attr" .Vb 1 \& %attr = $h\->all_attr(); .Ve .PP Returns all this element's attributes and values, as key-value pairs. This will include any \*(L"internal\*(R" attributes (i.e., ones not present in the original element, and which will not be represented if/when you call \f(CW\*(C`$h\->as_HTML\*(C'\fR). Internal attributes are distinguished by the fact that the first character of their key (not value! key!) is an underscore (\*(L"_\*(R"). .PP Example output of \f(CW\*(C`$h\->all_attr()\*(C'\fR : \&\f(CW\*(C`\*(Aq_parent\*(Aq, \*(C'\fR\fI[object_value]\fR\f(CW\*(C` , \*(Aq_tag\*(Aq, \*(Aqem\*(Aq, \*(Aqlang\*(Aq, \*(Aqen\-US\*(Aq, \&\*(Aq_content\*(Aq, \*(C'\fR\fI[array\-ref value]\fR. .SS "all_attr_names" .IX Subsection "all_attr_names" .Vb 2 \& @names = $h\->all_attr_names(); \& $num_attrs = $h\->all_attr_names(); .Ve .PP Like \f(CW\*(C`all_attr\*(C'\fR, but only returns the names of the attributes. In scalar context, returns the number of attributes. .PP Example output of \f(CW\*(C`$h\->all_attr_names()\*(C'\fR : \&\f(CW\*(C`\*(Aq_parent\*(Aq, \*(Aq_tag\*(Aq, \*(Aqlang\*(Aq, \*(Aq_content\*(Aq, \*(C'\fR. .SS "all_external_attr" .IX Subsection "all_external_attr" .Vb 1 \& %attr = $h\->all_external_attr(); .Ve .PP Like \f(CW\*(C`all_attr\*(C'\fR, except that internal attributes are not present. .SS "all_external_attr_names" .IX Subsection "all_external_attr_names" .Vb 2 \& @names = $h\->all_external_attr_names(); \& $num_attrs = $h\->all_external_attr_names(); .Ve .PP Like \f(CW\*(C`all_attr_names\*(C'\fR, except that internal attributes' names are not present (or counted). .SS "id" .IX Subsection "id" .Vb 2 \& $id = $h\->id(); \& $h\->id($string); .Ve .PP Returns (optionally sets to \f(CW$string\fR) the \*(L"id\*(R" attribute. \&\f(CW\*(C`$h\->id(undef)\*(C'\fR deletes the \*(L"id\*(R" attribute. .PP \&\f(CW\*(C`$h\->id(...)\*(C'\fR is basically equivalent to \f(CW\*(C`$h\->attr(\*(Aqid\*(Aq, ...)\*(C'\fR, except that when setting the attribute, this method returns the new value, not the old value. .SS "idf" .IX Subsection "idf" .Vb 2 \& $id = $h\->idf(); \& $h\->idf($string); .Ve .PP Just like the \f(CW\*(C`id\*(C'\fR method, except that if you call \f(CW\*(C`$h\->idf()\*(C'\fR and no \*(L"id\*(R" attribute is defined for this element, then it's set to a likely-to-be-unique value, and returned. (The \*(L"f\*(R" is for \*(L"force\*(R".) .SH "STRUCTURE-MODIFYING METHODS" .IX Header "STRUCTURE-MODIFYING METHODS" These methods are provided for modifying the content of trees by adding or changing nodes as parents or children of other nodes. .SS "push_content" .IX Subsection "push_content" .Vb 1 \& $h\->push_content($element_or_text, ...); .Ve .PP Adds the specified items to the \fIend\fR of the content list of the element \f(CW$h\fR. The items of content to be added should each be either a text segment (a string), an HTML::Element object, or an arrayref. Arrayrefs are fed thru \f(CW\*(C`$h\->new_from_lol(that_arrayref)\*(C'\fR to convert them into elements, before being added to the content list of \f(CW$h\fR. This means you can say things concise things like: .PP .Vb 6 \& $body\->push_content( \& [\*(Aqbr\*(Aq], \& [\*(Aqul\*(Aq, \& map [\*(Aqli\*(Aq, $_], qw(Peaches Apples Pears Mangos) \& ] \& ); .Ve .PP See the \*(L"new_from_lol\*(R" method's documentation, far below, for more explanation. .PP Returns \f(CW$h\fR (the element itself). .PP The push_content method will try to consolidate adjacent text segments while adding to the content list. That's to say, if \f(CW$h\fR's \f(CW\*(C`content_list\*(C'\fR is .PP .Vb 1 \& (\*(Aqfoo bar \*(Aq, $some_node, \*(Aqbaz!\*(Aq) .Ve .PP and you call .PP .Vb 1 \& $h\->push_content(\*(Aqquack?\*(Aq); .Ve .PP then the resulting content list will be this: .PP .Vb 1 \& (\*(Aqfoo bar \*(Aq, $some_node, \*(Aqbaz!quack?\*(Aq) .Ve .PP and not this: .PP .Vb 1 \& (\*(Aqfoo bar \*(Aq, $some_node, \*(Aqbaz!\*(Aq, \*(Aqquack?\*(Aq) .Ve .PP If that latter is what you want, you'll have to override the feature of consolidating text by using splice_content, as in: .PP .Vb 1 \& $h\->splice_content(scalar($h\->content_list),0,\*(Aqquack?\*(Aq); .Ve .PP Similarly, if you wanted to add 'Skronk' to the beginning of the content list, calling this: .PP .Vb 1 \& $h\->unshift_content(\*(AqSkronk\*(Aq); .Ve .PP then the resulting content list will be this: .PP .Vb 1 \& (\*(AqSkronkfoo bar \*(Aq, $some_node, \*(Aqbaz!\*(Aq) .Ve .PP and not this: .PP .Vb 1 \& (\*(AqSkronk\*(Aq, \*(Aqfoo bar \*(Aq, $some_node, \*(Aqbaz!\*(Aq) .Ve .PP What you'd to do get the latter is: .PP .Vb 1 \& $h\->splice_content(0,0,\*(AqSkronk\*(Aq); .Ve .SS "unshift_content" .IX Subsection "unshift_content" .Vb 1 \& $h\->unshift_content($element_or_text, ...) .Ve .PP Just like \f(CW\*(C`push_content\*(C'\fR, but adds to the \fIbeginning\fR of the \f(CW$h\fR element's content list. .PP The items of content to be added should each be either a text segment (a string), an HTML::Element object, or an arrayref (which is fed thru \f(CW\*(C`new_from_lol\*(C'\fR). .PP The unshift_content method will try to consolidate adjacent text segments while adding to the content list. See above for a discussion of this. .PP Returns \f(CW$h\fR (the element itself). .SS "splice_content" .IX Subsection "splice_content" .Vb 2 \& @removed = $h\->splice_content($offset, $length, \& $element_or_text, ...); .Ve .PP Detaches the elements from \f(CW$h\fR's list of content-nodes, starting at \&\f(CW$offset\fR and continuing for \f(CW$length\fR items, replacing them with the elements of the following list, if any. Returns the elements (if any) removed from the content-list. If \f(CW$offset\fR is negative, then it starts that far from the end of the array, just like Perl's normal \f(CW\*(C`splice\*(C'\fR function. If \f(CW$length\fR and the following list is omitted, removes everything from \f(CW$offset\fR onward. .PP The items of content to be added (if any) should each be either a text segment (a string), an arrayref (which is fed thru \*(L"new_from_lol\*(R"), or an HTML::Element object that's not already a child of \f(CW$h\fR. .SS "detach" .IX Subsection "detach" .Vb 1 \& $old_parent = $h\->detach(); .Ve .PP This unlinks \f(CW$h\fR from its parent, by setting its 'parent' attribute to undef, and by removing it from the content list of its parent (if it had one). The return value is the parent that was detached from (or undef, if \f(CW$h\fR had no parent to start with). Note that neither \f(CW$h\fR nor its parent are explicitly destroyed. .SS "detach_content" .IX Subsection "detach_content" .Vb 1 \& @old_content = $h\->detach_content(); .Ve .PP This unlinks all of \f(CW$h\fR's children from \f(CW$h\fR, and returns them. Note that these are not explicitly destroyed; for that, you can just use \f(CW\*(C`$h\->delete_content\*(C'\fR. .SS "replace_with" .IX Subsection "replace_with" .Vb 1 \& $h\->replace_with( $element_or_text, ... ) .Ve .PP This replaces \f(CW$h\fR in its parent's content list with the nodes specified. The element \f(CW$h\fR (which by then may have no parent) is returned. This causes a fatal error if \f(CW$h\fR has no parent. The list of nodes to insert may contain \f(CW$h\fR, but at most once. Aside from that possible exception, the nodes to insert should not already be children of \f(CW$h\fR's parent. .PP Also, note that this method does not destroy \f(CW$h\fR if weak references are turned off \*(-- use \f(CW\*(C`$h\->replace_with(...)\->delete\*(C'\fR if you need that. .SS "preinsert" .IX Subsection "preinsert" .Vb 1 \& $h\->preinsert($element_or_text...); .Ve .PP Inserts the given nodes right \s-1BEFORE \s0\f(CW$h\fR in \f(CW$h\fR's parent's content list. This causes a fatal error if \f(CW$h\fR has no parent. None of the given nodes should be \f(CW$h\fR or other children of \f(CW$h\fR. Returns \f(CW$h\fR. .SS "postinsert" .IX Subsection "postinsert" .Vb 1 \& $h\->postinsert($element_or_text...) .Ve .PP Inserts the given nodes right \s-1AFTER \s0\f(CW$h\fR in \f(CW$h\fR's parent's content list. This causes a fatal error if \f(CW$h\fR has no parent. None of the given nodes should be \f(CW$h\fR or other children of \f(CW$h\fR. Returns \&\f(CW$h\fR. .SS "replace_with_content" .IX Subsection "replace_with_content" .Vb 1 \& $h\->replace_with_content(); .Ve .PP This replaces \f(CW$h\fR in its parent's content list with its own content. The element \f(CW$h\fR (which by then has no parent or content of its own) is returned. This causes a fatal error if \f(CW$h\fR has no parent. Also, note that this does not destroy \f(CW$h\fR if weak references are turned off \*(-- use \&\f(CW\*(C`$h\->replace_with_content\->delete\*(C'\fR if you need that. .SS "delete_content" .IX Subsection "delete_content" .Vb 2 \& $h\->delete_content(); \& $h\->destroy_content(); # alias .Ve .PP Clears the content of \f(CW$h\fR, calling \f(CW\*(C`$h\->delete\*(C'\fR for each content element. Compare with \f(CW\*(C`$h\->detach_content\*(C'\fR. .PP Returns \f(CW$h\fR. .PP \&\f(CW\*(C`destroy_content\*(C'\fR is an alias for this method. .SS "delete" .IX Subsection "delete" .Vb 2 \& $h\->delete(); \& $h\->destroy(); # alias .Ve .PP Detaches this element from its parent (if it has one) and explicitly destroys the element and all its descendants. The return value is the empty list (or \f(CW\*(C`undef\*(C'\fR in scalar context). .PP Before version 5.00 of HTML::Element, you had to call \f(CW\*(C`delete\*(C'\fR when you were finished with the tree, or your program would leak memory. This is no longer necessary if weak references are enabled, see \&\*(L"Weak References\*(R". .SS "destroy" .IX Subsection "destroy" An alias for \*(L"delete\*(R". .SS "destroy_content" .IX Subsection "destroy_content" An alias for \*(L"delete_content\*(R". .SS "clone" .IX Subsection "clone" .Vb 1 \& $copy = $h\->clone(); .Ve .PP Returns a copy of the element (whose children are clones (recursively) of the original's children, if any). .PP The returned element is parentless. Any '_pos' attributes present in the source element/tree will be absent in the copy. For that and other reasons, the clone of an HTML::TreeBuilder object that's in mid-parse (i.e, the head of a tree that HTML::TreeBuilder is elaborating) cannot (currently) be used to continue the parse. .PP You are free to clone HTML::TreeBuilder trees, just as long as: 1) they're done being parsed, or 2) you don't expect to resume parsing into the clone. (You can continue parsing into the original; it is never affected.) .SS "clone_list" .IX Subsection "clone_list" .Vb 1 \& @copies = HTML::Element\->clone_list(...nodes...); .Ve .PP Returns a list consisting of a copy of each node given. Text segments are simply copied; elements are cloned by calling \f(CW\*(C`$it\->clone\*(C'\fR on each of them. .PP Note that this must be called as a class method, not as an instance method. \f(CW\*(C`clone_list\*(C'\fR will croak if called as an instance method. You can also call it like so: .PP .Vb 1 \& ref($h)\->clone_list(...nodes...) .Ve .SS "normalize_content" .IX Subsection "normalize_content" .Vb 1 \& $h\->normalize_content .Ve .PP Normalizes the content of \f(CW$h\fR \*(-- i.e., concatenates any adjacent text nodes. (Any undefined text segments are turned into empty-strings.) Note that this does not recurse into \f(CW$h\fR's descendants. .SS "delete_ignorable_whitespace" .IX Subsection "delete_ignorable_whitespace" .Vb 1 \& $h\->delete_ignorable_whitespace() .Ve .PP This traverses under \f(CW$h\fR and deletes any text segments that are ignorable whitespace. You should not use this if \f(CW$h\fR is under a \f(CW\*(C`
\*(C'\fR element.
.SS "insert_element"
.IX Subsection "insert_element"
.Vb 1
\&  $h\->insert_element($element, $implicit);
.Ve
.PP
Inserts (via push_content) a new element under the element at
\&\f(CW\*(C`$h\->pos()\*(C'\fR.  Then updates \f(CW\*(C`$h\->pos()\*(C'\fR to point to the inserted
element, unless \f(CW$element\fR is a prototypically empty element like
\&\f(CW\*(C`
\*(C'\fR, \f(CW\*(C`
\*(C'\fR, \f(CW\*(C`\*(C'\fR, etc. The new \f(CW\*(C`$h\->pos()\*(C'\fR is returned. This method is useful only if your particular tree task involves setting \&\f(CW\*(C`$h\->pos()\*(C'\fR. .SH "DUMPING METHODS" .IX Header "DUMPING METHODS" .SS "dump" .IX Subsection "dump" .Vb 2 \& $h\->dump() \& $h\->dump(*FH) ; # or *FH{IO} or $fh_obj .Ve .PP Prints the element and all its children to \s-1STDOUT \s0(or to a specified filehandle), in a format useful only for debugging. The structure of the document is shown by indentation (no end tags). .SS "as_HTML" .IX Subsection "as_HTML" .Vb 4 \& $s = $h\->as_HTML(); \& $s = $h\->as_HTML($entities); \& $s = $h\->as_HTML($entities, $indent_char); \& $s = $h\->as_HTML($entities, $indent_char, \e%optional_end_tags); .Ve .PP Returns a string representing in \s-1HTML\s0 the element and its descendants. The optional argument \f(CW$entities\fR specifies a string of the entities to encode. For compatibility with previous versions, specify \f(CW\*(Aq<>&\*(Aq\fR here. If omitted or undef, \fIall\fR unsafe characters are encoded as \s-1HTML\s0 entities. See HTML::Entities for details. If passed an empty string, no entities are encoded. .PP If \f(CW$indent_char\fR is specified and defined, the \s-1HTML\s0 to be output is intented, using the string you specify (which you probably should set to \*(L"\et\*(R", or some number of spaces, if you specify it). .PP If \f(CW\*(C`\e%optional_end_tags\*(C'\fR is specified and defined, it should be a reference to a hash that holds a true value for every tag name whose end tag is optional. Defaults to \&\f(CW\*(C`\e%HTML::Element::optionalEndTag\*(C'\fR, which is an alias to \&\f(CW%HTML::Tagset::optionalEndTag\fR, which, at time of writing, contains true values for \f(CW\*(C`p, li, dt, dd\*(C'\fR. A useful value to pass is an empty hashref, \f(CW\*(C`{}\*(C'\fR, which means that no end-tags are optional for this dump. Otherwise, possibly consider copying \f(CW%HTML::Tagset::optionalEndTag\fR to a hash of your own, adding or deleting values as you like, and passing a reference to that hash. .SS "as_text" .IX Subsection "as_text" .Vb 2 \& $s = $h\->as_text(); \& $s = $h\->as_text(skip_dels => 1); .Ve .PP Returns a string consisting of only the text parts of the element's descendants. Any whitespace inside the element is included unchanged, but whitespace not in the tree is never added. But remember that whitespace may be ignored or compacted by HTML::TreeBuilder during parsing (depending on the value of the \f(CW\*(C`ignore_ignorable_whitespace\*(C'\fR and \f(CW\*(C`no_space_compacting\*(C'\fR attributes). Also, since whitespace is never added during parsing, .PP .Vb 2 \& HTML::TreeBuilder\->new_from_content("

a

b

") \& \->as_text; .Ve .PP returns \f(CW"ab"\fR, not \f(CW"a b"\fR or \f(CW"a\enb"\fR. .PP Text under \f(CW\*(C`\en"; \& warningsToBrowser(1); # re\-enable warnings .Ve .PP Note: In this respect \fIwarningsToBrowser()\fR differs fundamentally from \&\fIfatalsToBrowser()\fR, which you should never call yourself! .SH "OVERRIDING THE NAME OF THE PROGRAM" .IX Header "OVERRIDING THE NAME OF THE PROGRAM" CGI::Carp includes the name of the program that generated the error or warning in the messages written to the log and the browser window. Sometimes, Perl can get confused about what the actual name of the executed program was. In these cases, you can override the program name that CGI::Carp will use for all messages. .PP The quick way to do that is to tell CGI::Carp the name of the program in its use statement. You can do that by adding \&\*(L"name=cgi_carp_log_name\*(R" to your \*(L"use\*(R" statement. For example: .PP .Vb 1 \& use CGI::Carp qw(name=cgi_carp_log_name); .Ve .PP \&. If you want to change the program name partway through the program, you can use the \f(CW\*(C`set_progname()\*(C'\fR function instead. It is not exported by default, you must import it explicitly by saying .PP .Vb 1 \& use CGI::Carp qw(set_progname); .Ve .PP Once you've done that, you can change the logged name of the program at any time by calling .PP .Vb 1 \& set_progname(new_program_name); .Ve .PP You can set the program back to the default by calling .PP .Vb 1 \& set_progname(undef); .Ve .PP Note that this override doesn't happen until after the program has compiled, so any compile-time errors will still show up with the non-overridden program name .SH "TURNING OFF TIMESTAMPS IN MESSAGES" .IX Header "TURNING OFF TIMESTAMPS IN MESSAGES" If your web server automatically adds a timestamp to each log line, you may not need CGI::Carp to add its own. You can disable timestamping by importing \*(L"noTimestamp\*(R": .PP .Vb 1 \& use CGI::Carp qw(noTimestamp); .Ve .PP Alternatively you can set \f(CW$CGI::Carp::NO_TIMESTAMP\fR to 1. .PP Note that the name of the program is still automatically included in the message. .SH "GETTING THE FULL PATH OF THE SCRIPT IN MESSAGES" .IX Header "GETTING THE FULL PATH OF THE SCRIPT IN MESSAGES" Set \f(CW$CGI::Carp::FULL_PATH\fR to 1. .SH "AUTHOR INFORMATION" .IX Header "AUTHOR INFORMATION" The \s-1CGI\s0.pm distribution is copyright 1995\-2007, Lincoln D. Stein. It is distributed under the Artistic License 2.0. It is currently maintained by Lee Johnson with help from many contributors. .PP Address bug reports and comments to: https://github.com/leejo/CGI.pm/issues .PP The original bug tracker can be found at: https://rt.cpan.org/Public/Dist/Display.html?Queue=CGI.pm .PP When sending bug reports, please provide the version of \s-1CGI\s0.pm, the version of Perl, the name and version of your Web server, and the name and version of the operating system you are using. If the problem is even remotely browser dependent, please provide information about the affected browsers as well. .SH "SEE ALSO" .IX Header "SEE ALSO" Carp, CGI::Base, CGI::BasePlus, CGI::Request, CGI::MiniSvr, CGI::Form, CGI::Response. man3/Test2::EventFacet::Error.3pm000044400000014410147645265660012376 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test2::EventFacet::Error 3" .TH Test2::EventFacet::Error 3 "2019-09-06" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test2::EventFacet::Error \- Facet for errors that need to be shown. .SH "DESCRIPTION" .IX Header "DESCRIPTION" This facet is used when an event needs to convey errors. .SH "NOTES" .IX Header "NOTES" This facet has the hash key \f(CW\*(Aqerrors\*(Aq\fR, and is a list of facets instead of a single item. .SH "FIELDS" .IX Header "FIELDS" .ie n .IP "$string = $error\->{details}" 4 .el .IP "\f(CW$string\fR = \f(CW$error\fR\->{details}" 4 .IX Item "$string = $error->{details}" .PD 0 .ie n .IP "$string = $error\->\fIdetails()\fR" 4 .el .IP "\f(CW$string\fR = \f(CW$error\fR\->\fIdetails()\fR" 4 .IX Item "$string = $error->details()" .PD Explanation of the error, or the error itself (such as an exception). In perl exceptions may be blessed objects, so this field may contain a blessed object. .ie n .IP "$short_string = $error\->{tag}" 4 .el .IP "\f(CW$short_string\fR = \f(CW$error\fR\->{tag}" 4 .IX Item "$short_string = $error->{tag}" .PD 0 .ie n .IP "$short_string = $error\->\fItag()\fR" 4 .el .IP "\f(CW$short_string\fR = \f(CW$error\fR\->\fItag()\fR" 4 .IX Item "$short_string = $error->tag()" .PD Short tag to categorize the error. This is usually 10 characters or less, formatters may truncate longer tags. .ie n .IP "$bool = $error\->{fail}" 4 .el .IP "\f(CW$bool\fR = \f(CW$error\fR\->{fail}" 4 .IX Item "$bool = $error->{fail}" .PD 0 .ie n .IP "$bool = $error\->\fIfail()\fR" 4 .el .IP "\f(CW$bool\fR = \f(CW$error\fR\->\fIfail()\fR" 4 .IX Item "$bool = $error->fail()" .PD Not all errors are fatal, some are displayed having already been handled. Set this to true if you want the error to cause the test to fail. Without this the error is simply a diagnostics message that has no effect on the overall pass/fail result. .SH "SOURCE" .IX Header "SOURCE" The source code repository for Test2 can be found at \&\fIhttp://github.com/Test\-More/test\-more/\fR. .SH "MAINTAINERS" .IX Header "MAINTAINERS" .IP "Chad Granum " 4 .IX Item "Chad Granum " .SH "AUTHORS" .IX Header "AUTHORS" .PD 0 .IP "Chad Granum " 4 .IX Item "Chad Granum " .PD .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2019 Chad Granum . .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP See \fIhttp://dev.perl.org/licenses/\fR man3/Module::Load.3pm000044400000026267147645265660010274 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Module::Load 3" .TH Module::Load 3 "2019-02-10" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Module::Load \- runtime require of both modules and files .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use Module::Load; \& \& my $module = \*(AqData::Dumper\*(Aq; \& \& load Data::Dumper; # loads that module, but not import any functions \& # \-> cannot use \*(AqDumper\*(Aq function \& \& load \*(AqData::Dumper\*(Aq; # ditto \& load $module # tritto \& \& autoload Data::Dumper; # loads that module and imports the default functions \& # \-> can use \*(AqDumper\*(Aq function \& \& my $script = \*(Aqsome/script.pl\*(Aq \& load $script; \& load \*(Aqsome/script.pl\*(Aq; # use quotes because of punctuations \& \& load thing; # try \*(Aqthing\*(Aq first, then \*(Aqthing.pm\*(Aq \& \& load CGI, \*(Aq:all\*(Aq; # like \*(Aquse CGI qw[:standard]\*(Aq .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\f(CW\*(C`Module::Load\*(C'\fR eliminates the need to know whether you are trying to require either a file or a module. .PP If you consult \f(CW\*(C`perldoc \-f require\*(C'\fR you will see that \f(CW\*(C`require\*(C'\fR will behave differently when given a bareword or a string. .PP In the case of a string, \f(CW\*(C`require\*(C'\fR assumes you are wanting to load a file. But in the case of a bareword, it assumes you mean a module. .PP This gives nasty overhead when you are trying to dynamically require modules at runtime, since you will need to change the module notation (\f(CW\*(C`Acme::Comment\*(C'\fR) to a file notation fitting the particular platform you are on. .PP \&\f(CW\*(C`Module::Load\*(C'\fR eliminates the need for this overhead and will just \s-1DWYM.\s0 .ie n .SS "Difference between ""load"" and ""autoload""" .el .SS "Difference between \f(CWload\fP and \f(CWautoload\fP" .IX Subsection "Difference between load and autoload" \&\f(CW\*(C`Module::Load\*(C'\fR imports the two functions \- \f(CW\*(C`load\*(C'\fR and \f(CW\*(C`autoload\*(C'\fR .PP \&\f(CW\*(C`autoload\*(C'\fR imports the default functions automatically, but \f(CW\*(C`load\*(C'\fR do not import any functions. .PP \&\f(CW\*(C`autoload\*(C'\fR is usable under \f(CW\*(C`BEGIN{};\*(C'\fR. .PP Both the functions can import the functions that are specified. .PP Following codes are same. .PP .Vb 1 \& load File::Spec::Functions, qw/splitpath/; \& \& autoload File::Spec::Functions, qw/splitpath/; .Ve .SH "FUNCTIONS" .IX Header "FUNCTIONS" .IP "load" 4 .IX Item "load" Loads a specified module. .Sp See \*(L"Rules\*(R" for detailed loading rule. .IP "autoload" 4 .IX Item "autoload" Loads a specified module and imports the default functions. .Sp Except importing the functions, 'autoload' is same as 'load'. .IP "load_remote" 4 .IX Item "load_remote" Loads a specified module to the specified package. .Sp .Vb 1 \& use Module::Load \*(Aqload_remote\*(Aq; \& \& my $pkg = \*(AqOther::Package\*(Aq; \& \& load_remote $pkg, \*(AqData::Dumper\*(Aq; # load a module to \*(AqOther::Package\*(Aq \& # but do not import \*(AqDumper\*(Aq function .Ve .Sp A module for loading must be quoted. .Sp Except specifing the package and quoting module name, \&'load_remote' is same as 'load'. .IP "autoload_remote" 4 .IX Item "autoload_remote" Loads a specified module and imports the default functions to the specified package. .Sp .Vb 1 \& use Module::Load \*(Aqautoload_remote\*(Aq; \& \& my $pkg = \*(AqOther::Package\*(Aq; \& \& autoload_remote $pkg, \*(AqData::Dumper\*(Aq; # load a module to \*(AqOther::Package\*(Aq \& # and imports \*(AqDumper\*(Aq function .Ve .Sp A module for loading must be quoted. .Sp Except specifing the package and quoting module name, \&'autoload_remote' is same as 'load_remote'. .SH "Rules" .IX Header "Rules" All functions have the following rules to decide what it thinks you want: .IP "\(bu" 4 If the argument has any characters in it other than those matching \&\f(CW\*(C`\ew\*(C'\fR, \f(CW\*(C`:\*(C'\fR or \f(CW\*(C`\*(Aq\*(C'\fR, it must be a file .IP "\(bu" 4 If the argument matches only \f(CW\*(C`[\ew:\*(Aq]\*(C'\fR, it must be a module .IP "\(bu" 4 If the argument matches only \f(CW\*(C`\ew\*(C'\fR, it could either be a module or a file. We will try to find \f(CW\*(C`file.pm\*(C'\fR first in \f(CW@INC\fR and if that fails, we will try to find \f(CW\*(C`file\*(C'\fR in \f(CW@INC\fR. If both fail, we die with the respective error messages. .SH "IMPORTS THE FUNCTIONS" .IX Header "IMPORTS THE FUNCTIONS" \&'load' and 'autoload' are imported by default, but 'load_remote' and \&'autoload_remote' are not imported. .PP To use 'load_remote' or 'autoload_remote', specify at 'use'. .ie n .IP """load"",""autoload"",""load_remote"",""autoload_remote""" 4 .el .IP "``load'',``autoload'',``load_remote'',``autoload_remote''" 4 .IX Item "load,autoload,load_remote,autoload_remote" Imports the selected functions. .Sp .Vb 2 \& # imports \*(Aqload\*(Aq and \*(Aqautoload\*(Aq (default) \& use Module::Load; \& \& # imports \*(Aqautoload\*(Aq only \& use Module::Load \*(Aqautoload\*(Aq; \& \& # imports \*(Aqautoload\*(Aq and \*(Aqautoload_remote\*(Aq, but don\*(Aqt import \*(Aqload\*(Aq; \& use Module::Load qw/autoload autoload_remote/; .Ve .IP "'all'" 4 .IX Item "'all'" Imports all the functions. .Sp .Vb 1 \& use Module::Load \*(Aqall\*(Aq; # imports load, autoload, load_remote, autoload_remote .Ve .IP "'','none',undef" 4 .IX Item "'','none',undef" Not import any functions (\f(CW\*(C`load\*(C'\fR and \f(CW\*(C`autoload\*(C'\fR are not imported). .Sp .Vb 1 \& use Module::Load \*(Aq\*(Aq; \& \& use Module::Load \*(Aqnone\*(Aq; \& \& use Module::Load undef; .Ve .SH "Caveats" .IX Header "Caveats" Because of a bug in perl (#19213), at least in version 5.6.1, we have to hardcode the path separator for a require on Win32 to be \f(CW\*(C`/\*(C'\fR, like on Unix rather than the Win32 \f(CW\*(C`\e\*(C'\fR. Otherwise perl will not read its own \f(CW%INC\fR accurately double load files if they are required again, or in the worst case, core dump. .PP \&\f(CW\*(C`Module::Load\*(C'\fR cannot do implicit imports, only explicit imports. (in other words, you always have to specify explicitly what you wish to import from a module, even if the functions are in that modules' \&\f(CW@EXPORT\fR) .SH "SEE ALSO" .IX Header "SEE ALSO" Module::Runtime provides functions for loading modules, checking the validity of a module name, converting a module name to partial \f(CW\*(C`.pm\*(C'\fR path, and related utility functions. .PP \&\*(L"require\*(R" in perlfunc and \&\*(L"use\*(R" in perlfunc . .PP Mojo::Loader is a \*(L"class loader and plugin framework\*(R", and is included in the Mojolicious distribution. .PP Module::Loader is a module for finding and loading modules in a given namespace, inspired by \f(CW\*(C`Mojo::Loader\*(C'\fR. .SH "ACKNOWLEDGEMENTS" .IX Header "ACKNOWLEDGEMENTS" Thanks to Jonas B. Nielsen for making explicit imports work. .SH "BUG REPORTS" .IX Header "BUG REPORTS" Please report bugs or other issues to . .SH "AUTHOR" .IX Header "AUTHOR" This module by Jos Boumans . .SH "COPYRIGHT" .IX Header "COPYRIGHT" This library is free software; you may redistribute and/or modify it under the same terms as Perl itself. man3/Test2::Formatter.3pm000044400000017632147645265660011130 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test2::Formatter 3" .TH Test2::Formatter 3 "2019-09-06" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test2::Formatter \- Namespace for formatters. .SH "DESCRIPTION" .IX Header "DESCRIPTION" This is the namespace for formatters. This is an empty package. .SH "CREATING FORMATTERS" .IX Header "CREATING FORMATTERS" A formatter is any package or object with a \f(CW\*(C`write($event, $num)\*(C'\fR method. .PP .Vb 3 \& package Test2::Formatter::Foo; \& use strict; \& use warnings; \& \& sub write { \& my $self_or_class = shift; \& my ($event, $assert_num) = @_; \& ... \& } \& \& sub hide_buffered { 1 } \& \& sub terminate { } \& \& sub finalize { } \& \& sub supports_tables { return $BOOL } \& \& sub new_root { \& my $class = shift; \& ... \& $class\->new(@_); \& } \& \& 1; .Ve .PP The \f(CW\*(C`write\*(C'\fR method is a method, so it either gets a class or instance. The two arguments are the \f(CW$event\fR object it should record, and the \f(CW$assert_num\fR which is the number of the current assertion (ok), or the last assertion if this event is not itself an assertion. The assertion number may be any integer 0 or greater, and may be undefined in some cases. .PP The \f(CW\*(C`hide_buffered()\*(C'\fR method must return a boolean. This is used to tell buffered subtests whether or not to send it events as they are being buffered. See \*(L"run_subtest(...)\*(R" in Test2::API for more information. .PP The \f(CW\*(C`terminate\*(C'\fR and \f(CW\*(C`finalize\*(C'\fR methods are optional methods called that you can implement if the format you're generating needs to handle these cases, for example if you are generating \s-1XML\s0 and need close open tags. .PP The \f(CW\*(C`terminate\*(C'\fR method is called when an event's \f(CW\*(C`terminate\*(C'\fR method returns true, for example when a Test2::Event::Plan has a \f(CW\*(Aqskip_all\*(Aq\fR plan, or when a Test2::Event::Bail event is sent. The \f(CW\*(C`terminate\*(C'\fR method is passed a single argument, the Test2::Event object which triggered the terminate. .PP The \f(CW\*(C`finalize\*(C'\fR method is always the last thing called on the formatter, \fIexcept when \f(CI\*(C`terminate\*(C'\fI is called for a Bail event\fR. It is passed the following arguments: .PP The \f(CW\*(C`supports_tables\*(C'\fR method should be true if the formatter supports directly rendering table data from the \f(CW\*(C`info\*(C'\fR facets. This is a newer feature and many older formatters may not support it. When not supported the formatter falls back to rendering \f(CW\*(C`detail\*(C'\fR instead of the \f(CW\*(C`table\*(C'\fR data. .PP The \f(CW\*(C`new_root\*(C'\fR method is used when constructing a root formatter. The default is to just delegate to the regular \f(CW\*(C`new()\*(C'\fR method, most formatters can ignore this. .IP "\(bu" 4 The number of tests that were planned .IP "\(bu" 4 The number of tests actually seen .IP "\(bu" 4 The number of tests which failed .IP "\(bu" 4 A boolean indicating whether or not the test suite passed .IP "\(bu" 4 A boolean indicating whether or not this call is for a subtest .PP The \f(CW\*(C`new_root\*(C'\fR method is called when \f(CW\*(C`Test2::API::Stack\*(C'\fR Initializes the root hub for the first time. Most formatters will simply have this call \f(CW\*(C`$class\->new\*(C'\fR, which is the default behavior. Some formatters however may want to take extra action during construction of the root formatter, this is where they can do that. .SH "SOURCE" .IX Header "SOURCE" The source code repository for Test2 can be found at \&\fIhttp://github.com/Test\-More/test\-more/\fR. .SH "MAINTAINERS" .IX Header "MAINTAINERS" .IP "Chad Granum " 4 .IX Item "Chad Granum " .SH "AUTHORS" .IX Header "AUTHORS" .PD 0 .IP "Chad Granum " 4 .IX Item "Chad Granum " .PD .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2019 Chad Granum . .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP See \fIhttp://dev.perl.org/licenses/\fR man3/Test2::Event::Bail.3pm000044400000012232147645265660011211 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test2::Event::Bail 3" .TH Test2::Event::Bail 3 "2019-09-06" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test2::Event::Bail \- Bailout! .SH "DESCRIPTION" .IX Header "DESCRIPTION" The bailout event is generated when things go horribly wrong and you need to halt all testing in the current file. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& use Test2::API qw/context/; \& use Test2::Event::Bail; \& \& my $ctx = context(); \& my $event = $ctx\->bail(\*(AqStuff is broken\*(Aq); .Ve .SH "METHODS" .IX Header "METHODS" Inherits from Test2::Event. Also defines: .ie n .IP "$reason = $e\->reason" 4 .el .IP "\f(CW$reason\fR = \f(CW$e\fR\->reason" 4 .IX Item "$reason = $e->reason" The reason for the bailout. .SH "SOURCE" .IX Header "SOURCE" The source code repository for Test2 can be found at \&\fIhttp://github.com/Test\-More/test\-more/\fR. .SH "MAINTAINERS" .IX Header "MAINTAINERS" .IP "Chad Granum " 4 .IX Item "Chad Granum " .SH "AUTHORS" .IX Header "AUTHORS" .PD 0 .IP "Chad Granum " 4 .IX Item "Chad Granum " .PD .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2019 Chad Granum . .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP See \fIhttp://dev.perl.org/licenses/\fR man3/Module::Build::Platform::MacOS.3pm000044400000012426147645265660013404 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Module::Build::Platform::MacOS 3" .TH Module::Build::Platform::MacOS 3 "2020-03-05" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Module::Build::Platform::MacOS \- Builder class for MacOS platforms .SH "DESCRIPTION" .IX Header "DESCRIPTION" The sole purpose of this module is to inherit from \&\f(CW\*(C`Module::Build::Base\*(C'\fR and override a few methods. Please see Module::Build for the docs. .SS "Overridden Methods" .IX Subsection "Overridden Methods" .IP "\fInew()\fR" 4 .IX Item "new()" MacPerl doesn't define \f(CW$Config\fR{sitelib} or \f(CW$Config\fR{sitearch} for some reason, but \f(CW$Config\fR{installsitelib} and \f(CW$Config\fR{installsitearch} are there. So we copy the install variables to the other location .IP "\fImake_executable()\fR" 4 .IX Item "make_executable()" On MacOS we set the file type and creator to MacPerl so it will run with a double-click. .IP "\fIdispatch()\fR" 4 .IX Item "dispatch()" Because there's no easy way to say \*(L"./Build test\*(R" on MacOS, if dispatch is called with no arguments and no \f(CW@ARGV\fR a dialog box will pop up asking what action to take and any extra arguments. .Sp Default action is \*(L"test\*(R". .IP "\fIACTION_realclean()\fR" 4 .IX Item "ACTION_realclean()" Need to unlock the Build program before deleting. .SH "AUTHOR" .IX Header "AUTHOR" Michael G Schwern .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIperl\fR\|(1), \fIModule::Build\fR\|(3), \fIExtUtils::MakeMaker\fR\|(3) man3/Parse::CPAN::Meta.3pm000044400000027327147645265660010754 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Parse::CPAN::Meta 3" .TH Parse::CPAN::Meta 3 "2016-08-18" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Parse::CPAN::Meta \- Parse META.yml and META.json CPAN metadata files .SH "VERSION" .IX Header "VERSION" version 2.150010 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& ############################################# \& # In your file \& \& \-\-\- \& name: My\-Distribution \& version: 1.23 \& resources: \& homepage: "http://example.com/dist/My\-Distribution" \& \& \& ############################################# \& # In your program \& \& use Parse::CPAN::Meta; \& \& my $distmeta = Parse::CPAN::Meta\->load_file(\*(AqMETA.yml\*(Aq); \& \& # Reading properties \& my $name = $distmeta\->{name}; \& my $version = $distmeta\->{version}; \& my $homepage = $distmeta\->{resources}{homepage}; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBParse::CPAN::Meta\fR is a parser for \fI\s-1META\s0.json\fR and \fI\s-1META\s0.yml\fR files, using \&\s-1JSON::PP\s0 and/or CPAN::Meta::YAML. .PP \&\fBParse::CPAN::Meta\fR provides three methods: \f(CW\*(C`load_file\*(C'\fR, \f(CW\*(C`load_json_string\*(C'\fR, and \f(CW\*(C`load_yaml_string\*(C'\fR. These will read and deserialize \s-1CPAN\s0 metafiles, and are described below in detail. .PP \&\fBParse::CPAN::Meta\fR provides a legacy \s-1API\s0 of only two functions, based on the \s-1YAML\s0 functions of the same name. Wherever possible, identical calling semantics are used. These may only be used with \s-1YAML\s0 sources. .PP All error reporting is done with exceptions (die'ing). .PP Note that \s-1META\s0 files are expected to be in \s-1UTF\-8\s0 encoding, only. When converted string data, it must first be decoded from \s-1UTF\-8.\s0 .SH "METHODS" .IX Header "METHODS" .SS "load_file" .IX Subsection "load_file" .Vb 1 \& my $metadata_structure = Parse::CPAN::Meta\->load_file(\*(AqMETA.json\*(Aq); \& \& my $metadata_structure = Parse::CPAN::Meta\->load_file(\*(AqMETA.yml\*(Aq); .Ve .PP This method will read the named file and deserialize it to a data structure, determining whether it should be \s-1JSON\s0 or \s-1YAML\s0 based on the filename. The file will be read using the \*(L":utf8\*(R" \s-1IO\s0 layer. .SS "load_yaml_string" .IX Subsection "load_yaml_string" .Vb 1 \& my $metadata_structure = Parse::CPAN::Meta\->load_yaml_string($yaml_string); .Ve .PP This method deserializes the given string of \s-1YAML\s0 and returns the first document in it. (\s-1CPAN\s0 metadata files should always have only one document.) If the source was \s-1UTF\-8\s0 encoded, the string must be decoded before calling \&\f(CW\*(C`load_yaml_string\*(C'\fR. .SS "load_json_string" .IX Subsection "load_json_string" .Vb 1 \& my $metadata_structure = Parse::CPAN::Meta\->load_json_string($json_string); .Ve .PP This method deserializes the given string of \s-1JSON\s0 and the result. If the source was \s-1UTF\-8\s0 encoded, the string must be decoded before calling \&\f(CW\*(C`load_json_string\*(C'\fR. .SS "load_string" .IX Subsection "load_string" .Vb 1 \& my $metadata_structure = Parse::CPAN::Meta\->load_string($some_string); .Ve .PP If you don't know whether a string contains \s-1YAML\s0 or \s-1JSON\s0 data, this method will use some heuristics and guess. If it can't tell, it assumes \s-1YAML.\s0 .SS "yaml_backend" .IX Subsection "yaml_backend" .Vb 1 \& my $backend = Parse::CPAN::Meta\->yaml_backend; .Ve .PP Returns the module name of the \s-1YAML\s0 serializer. See \*(L"\s-1ENVIRONMENT\*(R"\s0 for details. .SS "json_backend" .IX Subsection "json_backend" .Vb 1 \& my $backend = Parse::CPAN::Meta\->json_backend; .Ve .PP Returns the module name of the \s-1JSON\s0 serializer. If \f(CW\*(C`CPAN_META_JSON_BACKEND\*(C'\fR is set, this will be whatever that's set to. If not, this will either be \s-1JSON::PP\s0 or \s-1JSON\s0. If \f(CW\*(C`PERL_JSON_BACKEND\*(C'\fR is set, this will return \s-1JSON\s0 as further delegation is handled by the \s-1JSON\s0 module. See \*(L"\s-1ENVIRONMENT\*(R"\s0 for details. .SS "json_decoder" .IX Subsection "json_decoder" .Vb 1 \& my $decoder = Parse::CPAN::Meta\->json_decoder; .Ve .PP Returns the module name of the \s-1JSON\s0 decoder. Unlike \*(L"json_backend\*(R", this is not necessarily a full \s-1JSON\s0\-style module, but only something that will provide a \f(CW\*(C`decode_json\*(C'\fR subroutine. If \f(CW\*(C`CPAN_META_JSON_DECODER\*(C'\fR is set, this will be whatever that's set to. If not, this will be whatever has been selected as \*(L"json_backend\*(R". See \*(L"\s-1ENVIRONMENT\*(R"\s0 for more notes. .SH "FUNCTIONS" .IX Header "FUNCTIONS" For maintenance clarity, no functions are exported by default. These functions are available for backwards compatibility only and are best avoided in favor of \&\f(CW\*(C`load_file\*(C'\fR. .SS "Load" .IX Subsection "Load" .Vb 1 \& my @yaml = Parse::CPAN::Meta::Load( $string ); .Ve .PP Parses a string containing a valid \s-1YAML\s0 stream into a list of Perl data structures. .SS "LoadFile" .IX Subsection "LoadFile" .Vb 1 \& my @yaml = Parse::CPAN::Meta::LoadFile( \*(AqMETA.yml\*(Aq ); .Ve .PP Reads the \s-1YAML\s0 stream from a file instead of a string. .SH "ENVIRONMENT" .IX Header "ENVIRONMENT" .SS "\s-1CPAN_META_JSON_DECODER\s0" .IX Subsection "CPAN_META_JSON_DECODER" By default, \s-1JSON::PP\s0 will be used for deserializing \s-1JSON\s0 data. If the \&\f(CW\*(C`CPAN_META_JSON_DECODER\*(C'\fR environment variable exists, this is expected to be the name of a loadable module that provides a \f(CW\*(C`decode_json\*(C'\fR subroutine, which will then be used for deserialization. Relying only on the existence of said subroutine allows for maximum compatibility, since this \s-1API\s0 is provided by all of \s-1JSON::PP\s0, \s-1JSON::XS\s0, Cpanel::JSON::XS, JSON::MaybeXS, JSON::Tiny, and Mojo::JSON. .SS "\s-1CPAN_META_JSON_BACKEND\s0" .IX Subsection "CPAN_META_JSON_BACKEND" By default, \s-1JSON::PP\s0 will be used for deserializing \s-1JSON\s0 data. If the \&\f(CW\*(C`CPAN_META_JSON_BACKEND\*(C'\fR environment variable exists, this is expected to be the name of a loadable module that provides the \s-1JSON\s0 \s-1API,\s0 since downstream code expects to be able to call \f(CW\*(C`new\*(C'\fR on this class. As such, while \s-1JSON::PP\s0, \s-1JSON::XS\s0, Cpanel::JSON::XS and JSON::MaybeXS will work for this, to use Mojo::JSON or JSON::Tiny for decoding requires setting \*(L"\s-1CPAN_META_JSON_DECODER\*(R"\s0. .SS "\s-1PERL_JSON_BACKEND\s0" .IX Subsection "PERL_JSON_BACKEND" If the \f(CW\*(C`CPAN_META_JSON_BACKEND\*(C'\fR environment variable does not exist, and if \&\f(CW\*(C`PERL_JSON_BACKEND\*(C'\fR environment variable exists, is true and is not \&\*(L"\s-1JSON::PP\*(R",\s0 then the \s-1JSON\s0 module (version 2.5 or greater) will be loaded and used to interpret \f(CW\*(C`PERL_JSON_BACKEND\*(C'\fR. If \s-1JSON\s0 is not installed or is too old, an exception will be thrown. Note that at the time of writing, the only useful values are 1, which will tell \s-1JSON\s0 to guess, or \s-1JSON::XS\s0 \- if you want to use a newer \s-1JSON\s0 module, see \*(L"\s-1CPAN_META_JSON_BACKEND\*(R"\s0. .SS "\s-1PERL_YAML_BACKEND\s0" .IX Subsection "PERL_YAML_BACKEND" By default, CPAN::Meta::YAML will be used for deserializing \s-1YAML\s0 data. If the \f(CW\*(C`PERL_YAML_BACKEND\*(C'\fR environment variable is defined, then it is interpreted as a module to use for deserialization. The given module must be installed, must load correctly and must implement the \f(CW\*(C`Load()\*(C'\fR function or an exception will be thrown. .SH "AUTHORS" .IX Header "AUTHORS" .IP "\(bu" 4 David Golden .IP "\(bu" 4 Ricardo Signes .IP "\(bu" 4 Adam Kennedy .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is copyright (c) 2010 by David Golden, Ricardo Signes, Adam Kennedy and Contributors. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. man3/ExtUtils::Helpers::Unix.3pm000044400000010702147645265660012366 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ExtUtils::Helpers::Unix 3" .TH ExtUtils::Helpers::Unix 3 "2016-09-09" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ExtUtils::Helpers::Unix \- Unix specific helper bits .SH "VERSION" .IX Header "VERSION" version 0.026 .SH "AUTHORS" .IX Header "AUTHORS" .IP "\(bu" 4 Ken Williams .IP "\(bu" 4 Leon Timmermans .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is copyright (c) 2004 by Ken Williams, Leon Timmermans. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. man3/YAML::XS::LibYAML.3pm000044400000007765147645265660010564 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "YAML::XS::LibYAML 3" .TH YAML::XS::LibYAML 3 "2019-08-22" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" YAML::XS::LibYAML \- An XS Wrapper Module of libyaml man3/Test2::Hub::Interceptor.3pm000044400000011205147645265660012274 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test2::Hub::Interceptor 3" .TH Test2::Hub::Interceptor 3 "2019-09-06" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test2::Hub::Interceptor \- Hub used by interceptor to grab results. .SH "SOURCE" .IX Header "SOURCE" The source code repository for Test2 can be found at \&\fIhttp://github.com/Test\-More/test\-more/\fR. .SH "MAINTAINERS" .IX Header "MAINTAINERS" .IP "Chad Granum " 4 .IX Item "Chad Granum " .SH "AUTHORS" .IX Header "AUTHORS" .PD 0 .IP "Chad Granum " 4 .IX Item "Chad Granum " .PD .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2019 Chad Granum . .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP See \fIhttp://dev.perl.org/licenses/\fR man3/ExtUtils::InstallPaths.3pm000044400000033441147645265660012347 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ExtUtils::InstallPaths 3" .TH ExtUtils::InstallPaths 3 "2018-05-10" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ExtUtils::InstallPaths \- Build.PL install path logic made easy .SH "VERSION" .IX Header "VERSION" version 0.012 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 5 \& use ExtUtils::InstallPaths; \& use ExtUtils::Install \*(Aqinstall\*(Aq; \& GetOptions(\emy %opt, \*(Aqinstall_base=s\*(Aq, \*(Aqinstall_path=s%\*(Aq, \*(Aqinstalldirs=s\*(Aq, \*(Aqdestdir=s\*(Aq, \*(Aqprefix=s\*(Aq, \*(Aquninst:1\*(Aq, \*(Aqverbose:1\*(Aq); \& my $paths = ExtUtils::InstallPaths\->new(%opt, dist_name => $dist_name); \& install($paths\->install_map, $opt{verbose}, 0, $opt{uninst}); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This module tries to make install path resolution as easy as possible. .PP When you want to install a module, it needs to figure out where to install things. The nutshell version of how this works is that default installation locations are determined from ExtUtils::Config, and they may be individually overridden by using the \f(CW\*(C`install_path\*(C'\fR attribute. An \f(CW\*(C`install_base\*(C'\fR attribute lets you specify an alternative installation root like \fI/home/foo\fR and \f(CW\*(C`prefix\*(C'\fR does something similar in a rather different (and more complicated) way. \f(CW\*(C`destdir\*(C'\fR lets you specify a temporary installation directory like \fI/tmp/install\fR in case you want to create bundled-up installable packages. .PP The following types are supported by default. .IP "\(bu" 4 lib .Sp Usually pure-Perl module files ending in \fI.pm\fR or \fI.pod\fR. .IP "\(bu" 4 arch .Sp \&\*(L"Architecture-dependent\*(R" module files, usually produced by compiling \s-1XS, \s0Inline, or similar code. .IP "\(bu" 4 script .Sp Programs written in pure Perl. In order to improve reuse, you may want to make these as small as possible \- put the code into modules whenever possible. .IP "\(bu" 4 bin .Sp \&\*(L"Architecture-dependent\*(R" executable programs, i.e. compiled C code or something. Pretty rare to see this in a perl distribution, but it happens. .IP "\(bu" 4 bindoc .Sp Documentation for the stuff in \f(CW\*(C`script\*(C'\fR and \f(CW\*(C`bin\*(C'\fR. Usually generated from the \s-1POD\s0 in those files. Under Unix, these are manual pages belonging to the 'man1' category. Unless explicitly set, this is only available on platforms supporting manpages. .IP "\(bu" 4 libdoc .Sp Documentation for the stuff in \f(CW\*(C`lib\*(C'\fR and \f(CW\*(C`arch\*(C'\fR. This is usually generated from the \s-1POD\s0 in \fI.pm\fR and \fI.pod\fR files. Under Unix, these are manual pages belonging to the 'man3' category. Unless explicitly set, this is only available on platforms supporting manpages. .IP "\(bu" 4 binhtml .Sp This is the same as \f(CW\*(C`bindoc\*(C'\fR above, but applies to \s-1HTML\s0 documents. Unless explicitly set, this is only available when perl was configured to do so. .IP "\(bu" 4 libhtml .Sp This is the same as \f(CW\*(C`libdoc\*(C'\fR above, but applies to \s-1HTML\s0 documents. Unless explicitly set, this is only available when perl was configured to do so. .SH "ATTRIBUTES" .IX Header "ATTRIBUTES" .SS "installdirs" .IX Subsection "installdirs" The default destinations for these installable things come from entries in your system's configuration. You can select from three different sets of default locations by setting the \f(CW\*(C`installdirs\*(C'\fR parameter as follows: .PP .Vb 2 \& \*(Aqinstalldirs\*(Aq set to: \& core site vendor \& \& uses the following defaults from ExtUtils::Config: \& \& lib => installprivlib installsitelib installvendorlib \& arch => installarchlib installsitearch installvendorarch \& script => installscript installsitescript installvendorscript \& bin => installbin installsitebin installvendorbin \& bindoc => installman1dir installsiteman1dir installvendorman1dir \& libdoc => installman3dir installsiteman3dir installvendorman3dir \& binhtml => installhtml1dir installsitehtml1dir installvendorhtml1dir [*] \& libhtml => installhtml3dir installsitehtml3dir installvendorhtml3dir [*] \& \& * Under some OS (eg. MSWin32) the destination for HTML documents is determined by the C entry C. .Ve .PP The default value of \f(CW\*(C`installdirs\*(C'\fR is \*(L"site\*(R". .SS "install_base" .IX Subsection "install_base" You can also set the whole bunch of installation paths by supplying the \f(CW\*(C`install_base\*(C'\fR parameter to point to a directory on your system. For instance, if you set \f(CW\*(C`install_base\*(C'\fR to \*(L"/home/ken\*(R" on a Linux system, you'll install as follows: .PP .Vb 8 \& lib => /home/ken/lib/perl5 \& arch => /home/ken/lib/perl5/i386\-linux \& script => /home/ken/bin \& bin => /home/ken/bin \& bindoc => /home/ken/man/man1 \& libdoc => /home/ken/man/man3 \& binhtml => /home/ken/html \& libhtml => /home/ken/html .Ve .SS "prefix" .IX Subsection "prefix" This sets a prefix, identical to ExtUtils::MakeMaker's \s-1PREFIX\s0 option. This does something similar to \f(CW\*(C`install_base\*(C'\fR in a much more complicated way. .SS "\fIconfig()\fP" .IX Subsection "config()" The ExtUtils::Config object used for this object. .SS "verbose" .IX Subsection "verbose" The verbosity of ExtUtils::InstallPaths. It defaults to 0 .SS "create_packlist" .IX Subsection "create_packlist" Together with \f(CW\*(C`module_name\*(C'\fR this controls whether a packlist will be added; it defaults to 1. .SS "dist_name" .IX Subsection "dist_name" The name of the current module. .SS "module_name" .IX Subsection "module_name" The name of the main module of the package. This is required for packlist creation, but in the future it may be replaced by dist_name. It defaults to \f(CW\*(C`dist_name =~ s/\-/::/gr\*(C'\fR if dist_name is set. .SS "destdir" .IX Subsection "destdir" If you want to install everything into a temporary directory first (for instance, if you want to create a directory tree that a package manager like \f(CW\*(C`rpm\*(C'\fR or \f(CW\*(C`dpkg\*(C'\fR could create a package from), you can use the \f(CW\*(C`destdir\*(C'\fR parameter. E.g. Setting \f(CW\*(C`destdir\*(C'\fR to \f(CW"/tmp/foo"\fR will effectively install to \*(L"/tmp/foo/$sitelib\*(R", \*(L"/tmp/foo/$sitearch\*(R", and the like, except that it will use \f(CW\*(C`File::Spec\*(C'\fR to make the pathnames work correctly on whatever platform you're installing on. .SH "METHODS" .IX Header "METHODS" .SS "new" .IX Subsection "new" Create a new ExtUtils::InstallPaths object. \fBAll attributes are valid arguments\fR to the constructor, as well as this: .IP "\(bu" 4 install_path .Sp This must be a hashref with the type as keys and the destination as values. .IP "\(bu" 4 install_base_relpaths .Sp This must be a hashref with types as keys and a path relative to the install_base as value. .IP "\(bu" 4 prefix_relpaths .Sp This must be a hashref any of these three keys: core, vendor, site. Each of the values mush be a hashref with types as keys and a path relative to the prefix as value. You probably want to make these three hashrefs identical. .IP "\(bu" 4 original_prefix .Sp This must be a hashref with the legal installdirs values as keys and the prefix directories as values. .IP "\(bu" 4 install_sets .Sp This mush be a hashref with the legal installdirs are keys, and the values being hashrefs with types as keys and locations as values. .SS "\fIinstall_map()\fP" .IX Subsection "install_map()" Return a map suitable for use with ExtUtils::Install. \fBIn most cases, this is the only method you'll need\fR. .SS "install_destination($type)" .IX Subsection "install_destination($type)" Returns the destination of a certain type. .SS "\fIinstall_types()\fP" .IX Subsection "install_types()" Return a list of all supported install types in the current configuration. .SS "is_default_installable($type)" .IX Subsection "is_default_installable($type)" Given a file type, will return true if the file type would normally be installed when neither install-base nor prefix has been set. I.e. it will be true only if the path is set from the configuration object or set explicitly by the user via install_path. .SS "install_path($type)" .IX Subsection "install_path($type)" Gets the install path for a certain type. .ie n .SS "install_sets($installdirs, $type)" .el .SS "install_sets($installdirs, \f(CW$type\fP)" .IX Subsection "install_sets($installdirs, $type)" Get the path for a certain \f(CW$type\fR with a certain \f(CW$installdirs\fR. .ie n .SS "install_base_relpaths($type, $relpath)" .el .SS "install_base_relpaths($type, \f(CW$relpath\fP)" .IX Subsection "install_base_relpaths($type, $relpath)" Get the relative paths for use with install_base for a certain type. .ie n .SS "prefix_relative($installdirs, $type)" .el .SS "prefix_relative($installdirs, \f(CW$type\fP)" .IX Subsection "prefix_relative($installdirs, $type)" Gets the path of a certain \f(CW$type\fR and \f(CW$installdirs\fR relative to the prefix. .ie n .SS "prefix_relpaths($install_dirs, $type)" .el .SS "prefix_relpaths($install_dirs, \f(CW$type\fP)" .IX Subsection "prefix_relpaths($install_dirs, $type)" Get the default relative path to use in case the config install paths cannot be prefixified. You do not want to use this to get any relative path, but may require it to set it for custom types. .SS "original_prefix($installdirs)" .IX Subsection "original_prefix($installdirs)" Get the original prefix for a certain type of \f(CW$installdirs\fR. .SH "SEE ALSO" .IX Header "SEE ALSO" .IP "\(bu" 4 Build.PL spec .SH "AUTHORS" .IX Header "AUTHORS" .IP "\(bu" 4 Ken Williams .IP "\(bu" 4 Leon Timmermans .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is copyright (c) 2011 by Ken Williams, Leon Timmermans. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. man3/TAP::Parser::Source.3pm000044400000023366147645265660011412 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "TAP::Parser::Source 3" .TH TAP::Parser::Source 3 "2018-03-19" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" TAP::Parser::Source \- a TAP source & meta data about it .SH "VERSION" .IX Header "VERSION" Version 3.42 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 8 \& use TAP::Parser::Source; \& my $source = TAP::Parser::Source\->new; \& $source\->raw( \e\*(Aqreference to raw TAP source\*(Aq ) \& \->config( \e%config ) \& \->merge( $boolean ) \& \->switches( \e@switches ) \& \->test_args( \e@args ) \& \->assemble_meta; \& \& do { ... } if $source\->meta\->{is_file}; \& # see assemble_meta for a full list of data available .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" A \s-1TAP \s0\fIsource\fR is something that produces a stream of \s-1TAP\s0 for the parser to consume, such as an executable file, a text file, an archive, an \s-1IO\s0 handle, a database, etc. \f(CW\*(C`TAP::Parser::Source\*(C'\fRs encapsulate these \fIraw\fR sources, and provide some useful meta data about them. They are used by TAP::Parser::SourceHandlers, which do whatever is required to produce & capture a stream of \s-1TAP\s0 from the \fIraw\fR source, and package it up in a TAP::Parser::Iterator for the parser to consume. .PP Unless you're writing a new TAP::Parser::SourceHandler, a plugin or subclassing TAP::Parser, you probably won't need to use this module directly. .SH "METHODS" .IX Header "METHODS" .SS "Class Methods" .IX Subsection "Class Methods" \fI\f(CI\*(C`new\*(C'\fI\fR .IX Subsection "new" .PP .Vb 1 \& my $source = TAP::Parser::Source\->new; .Ve .PP Returns a new \f(CW\*(C`TAP::Parser::Source\*(C'\fR object. .SS "Instance Methods" .IX Subsection "Instance Methods" \fI\f(CI\*(C`raw\*(C'\fI\fR .IX Subsection "raw" .PP .Vb 2 \& my $raw = $source\->raw; \& $source\->raw( $some_value ); .Ve .PP Chaining getter/setter for the raw \s-1TAP\s0 source. This is a reference, as it may contain large amounts of data (eg: raw \s-1TAP\s0). .PP \fI\f(CI\*(C`meta\*(C'\fI\fR .IX Subsection "meta" .PP .Vb 2 \& my $meta = $source\->meta; \& $source\->meta({ %some_value }); .Ve .PP Chaining getter/setter for meta data about the source. This defaults to an empty hashref. See \*(L"assemble_meta\*(R" for more info. .PP \fI\f(CI\*(C`has_meta\*(C'\fI\fR .IX Subsection "has_meta" .PP True if the source has meta data. .PP \fI\f(CI\*(C`config\*(C'\fI\fR .IX Subsection "config" .PP .Vb 2 \& my $config = $source\->config; \& $source\->config({ %some_value }); .Ve .PP Chaining getter/setter for the source's configuration, if any has been provided by the user. How it's used is up to you. This defaults to an empty hashref. See \*(L"config_for\*(R" for more info. .PP \fI\f(CI\*(C`merge\*(C'\fI\fR .IX Subsection "merge" .PP .Vb 2 \& my $merge = $source\->merge; \& $source\->config( $bool ); .Ve .PP Chaining getter/setter for the flag that dictates whether \s-1STDOUT\s0 and \s-1STDERR\s0 should be merged (where appropriate). Defaults to undef. .PP \fI\f(CI\*(C`switches\*(C'\fI\fR .IX Subsection "switches" .PP .Vb 2 \& my $switches = $source\->switches; \& $source\->config([ @switches ]); .Ve .PP Chaining getter/setter for the list of command-line switches that should be passed to the source (where appropriate). Defaults to undef. .PP \fI\f(CI\*(C`test_args\*(C'\fI\fR .IX Subsection "test_args" .PP .Vb 2 \& my $test_args = $source\->test_args; \& $source\->config([ @test_args ]); .Ve .PP Chaining getter/setter for the list of command-line arguments that should be passed to the source (where appropriate). Defaults to undef. .PP \fI\f(CI\*(C`assemble_meta\*(C'\fI\fR .IX Subsection "assemble_meta" .PP .Vb 1 \& my $meta = $source\->assemble_meta; .Ve .PP Gathers meta data about the \*(L"raw\*(R" source, stashes it in \*(L"meta\*(R" and returns it as a hashref. This is done so that the TAP::Parser::SourceHandlers don't have to repeat common checks. Currently this includes: .PP .Vb 3 \& is_scalar => $bool, \& is_hash => $bool, \& is_array => $bool, \& \& # for scalars: \& length => $n \& has_newlines => $bool \& \& # only done if the scalar looks like a filename \& is_file => $bool, \& is_dir => $bool, \& is_symlink => $bool, \& file => { \& # only done if the scalar looks like a filename \& basename => $string, # including ext \& dir => $string, \& ext => $string, \& lc_ext => $string, \& # system checks \& exists => $bool, \& stat => [ ... ], # perldoc \-f stat \& empty => $bool, \& size => $n, \& text => $bool, \& binary => $bool, \& read => $bool, \& write => $bool, \& execute => $bool, \& setuid => $bool, \& setgid => $bool, \& sticky => $bool, \& is_file => $bool, \& is_dir => $bool, \& is_symlink => $bool, \& # only done if the file\*(Aqs a symlink \& lstat => [ ... ], # perldoc \-f lstat \& # only done if the file\*(Aqs a readable text file \& shebang => $first_line, \& } \& \& # for arrays: \& size => $n, .Ve .PP \fI\f(CI\*(C`shebang\*(C'\fI\fR .IX Subsection "shebang" .PP Get the shebang line for a script file. .PP .Vb 1 \& my $shebang = TAP::Parser::Source\->shebang( $some_script ); .Ve .PP May be called as a class method .PP \fI\f(CI\*(C`config_for\*(C'\fI\fR .IX Subsection "config_for" .PP .Vb 1 \& my $config = $source\->config_for( $class ); .Ve .PP Returns \*(L"config\*(R" for the \f(CW$class\fR given. Class names may be fully qualified or abbreviated, eg: .PP .Vb 3 \& # these are equivalent \& $source\->config_for( \*(AqPerl\*(Aq ); \& $source\->config_for( \*(AqTAP::Parser::SourceHandler::Perl\*(Aq ); .Ve .PP If a fully qualified \f(CW$class\fR is given, its abbreviated version is checked first. .SH "AUTHORS" .IX Header "AUTHORS" Steve Purkis. .SH "SEE ALSO" .IX Header "SEE ALSO" TAP::Object, TAP::Parser, TAP::Parser::IteratorFactory, TAP::Parser::SourceHandler man3/HTML::TreeBuilder.3pm000044400000072675147645265660011146 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "HTML::TreeBuilder 3" .TH HTML::TreeBuilder 3 "2020-03-05" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" HTML::TreeBuilder \- Parser that builds a HTML syntax tree .SH "VERSION" .IX Header "VERSION" This document describes version 5.07 of HTML::TreeBuilder, released August 31, 2017 as part of HTML-Tree. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use HTML::TreeBuilder 5 \-weak; # Ensure weak references in use \& \& foreach my $file_name (@ARGV) { \& my $tree = HTML::TreeBuilder\->new; # empty tree \& $tree\->parse_file($file_name); \& print "Hey, here\*(Aqs a dump of the parse tree of $file_name:\en"; \& $tree\->dump; # a method we inherit from HTML::Element \& print "And here it is, bizarrely rerendered as HTML:\en", \& $tree\->as_HTML, "\en"; \& \& # Now that we\*(Aqre done with it, we must destroy it. \& # $tree = $tree\->delete; # Not required with weak references \& } .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" (This class is part of the HTML::Tree dist.) .PP This class is for \s-1HTML\s0 syntax trees that get built out of \s-1HTML\s0 source. The way to use it is to: .PP 1. start a new (empty) HTML::TreeBuilder object, .PP 2. then use one of the methods from HTML::Parser (presumably with \&\f(CW\*(C`$tree\->parse_file($filename)\*(C'\fR for files, or with \&\f(CW\*(C`$tree\->parse($document_content)\*(C'\fR and \f(CW\*(C`$tree\->eof\*(C'\fR if you've got the content in a string) to parse the \s-1HTML\s0 document into the tree \f(CW$tree\fR. .PP (You can combine steps 1 and 2 with the \*(L"new_from_file\*(R" or \&\*(L"new_from_content\*(R" methods.) .PP 2b. call \f(CW\*(C`$root\->elementify()\*(C'\fR if you want. .PP 3. do whatever you need to do with the syntax tree, presumably involving traversing it looking for some bit of information in it, .PP 4. previous versions of HTML::TreeBuilder required you to call \&\f(CW\*(C`$tree\->delete()\*(C'\fR to erase the contents of the tree from memory when you're done with the tree. This is not normally required anymore. See \*(L"Weak References\*(R" in HTML::Element for details. .SH "ATTRIBUTES" .IX Header "ATTRIBUTES" Most of the following attributes native to HTML::TreeBuilder control how parsing takes place; they should be set \fIbefore\fR you try parsing into the given object. You can set the attributes by passing a \s-1TRUE\s0 or \&\s-1FALSE\s0 value as argument. E.g., \f(CW\*(C`$root\->implicit_tags\*(C'\fR returns the current setting for the \f(CW\*(C`implicit_tags\*(C'\fR option, \&\f(CW\*(C`$root\->implicit_tags(1)\*(C'\fR turns that option on, and \f(CW\*(C`$root\->implicit_tags(0)\*(C'\fR turns it off. .SS "implicit_tags" .IX Subsection "implicit_tags" Setting this attribute to true will instruct the parser to try to deduce implicit elements and implicit end tags. If it is false you get a parse tree that just reflects the text as it stands, which is unlikely to be useful for anything but quick and dirty parsing. (In fact, I'd be curious to hear from anyone who finds it useful to have \f(CW\*(C`implicit_tags\*(C'\fR set to false.) Default is true. .PP Implicit elements have the \*(L"implicit\*(R" in HTML::Element attribute set. .SS "implicit_body_p_tag" .IX Subsection "implicit_body_p_tag" This controls an aspect of implicit element behavior, if \f(CW\*(C`implicit_tags\*(C'\fR is on: If a text element (\s-1PCDATA\s0) or a phrasal element (such as \&\f(CW\*(C`\*(C'\fR) is to be inserted under \f(CW\*(C`\*(C'\fR, two things can happen: if \f(CW\*(C`implicit_body_p_tag\*(C'\fR is true, it's placed under a new, implicit \f(CW\*(C`

\*(C'\fR tag. (Past DTDs suggested this was the only correct behavior, and this is how past versions of this module behaved.) But if \f(CW\*(C`implicit_body_p_tag\*(C'\fR is false, nothing is implicated \&\*(-- the \s-1PCDATA\s0 or phrasal element is simply placed under \&\f(CW\*(C`\*(C'\fR. Default is false. .SS "no_expand_entities" .IX Subsection "no_expand_entities" This attribute controls whether entities are decoded during the initial parse of the source. Enable this if you don't want entities decoded to their character value. e.g. '&' is decoded to '&' by default, but will be unchanged if this is enabled. Default is false (entities will be decoded.) .SS "ignore_unknown" .IX Subsection "ignore_unknown" This attribute controls whether unknown tags should be represented as elements in the parse tree, or whether they should be ignored. Default is true (to ignore unknown tags.) .SS "ignore_text" .IX Subsection "ignore_text" Do not represent the text content of elements. This saves space if all you want is to examine the structure of the document. Default is false. .SS "ignore_ignorable_whitespace" .IX Subsection "ignore_ignorable_whitespace" If set to true, TreeBuilder will try to avoid creating ignorable whitespace text nodes in the tree. Default is true. (In fact, I'd be interested in hearing if there's ever a case where you need this off, or where leaving it on leads to incorrect behavior.) .SS "no_space_compacting" .IX Subsection "no_space_compacting" This determines whether TreeBuilder compacts all whitespace strings in the document (well, outside of \s-1PRE\s0 or \s-1TEXTAREA\s0 elements), or leaves them alone. Normally (default, value of 0), each string of contiguous whitespace in the document is turned into a single space. But that's not done if \f(CW\*(C`no_space_compacting\*(C'\fR is set to 1. .PP Setting \f(CW\*(C`no_space_compacting\*(C'\fR to 1 might be useful if you want to read in a tree just to make some minor changes to it before writing it back out. .PP This method is experimental. If you use it, be sure to report any problems you might have with it. .SS "p_strict" .IX Subsection "p_strict" If set to true (and it defaults to false), TreeBuilder will take a narrower than normal view of what can be under a \f(CW\*(C`

\*(C'\fR element; if it sees a non-phrasal element about to be inserted under a \f(CW\*(C`

\*(C'\fR, it will close that \f(CW\*(C`

\*(C'\fR. Otherwise it will close \f(CW\*(C`

\*(C'\fR elements only for other \f(CW\*(C`

\*(C'\fR's, headings, and \f(CW\*(C`

\*(C'\fR (although the latter may be removed in future versions). .PP For example, when going thru this snippet of code, .PP .Vb 2 \&

stuff \&

    .Ve .PP TreeBuilder will normally (with \f(CW\*(C`p_strict\*(C'\fR false) put the \f(CW\*(C`
      \*(C'\fR element under the \f(CW\*(C`

      \*(C'\fR element. However, with \f(CW\*(C`p_strict\*(C'\fR set to true, it will close the \f(CW\*(C`

      \*(C'\fR first. .PP In theory, there should be strictness options like this for other/all elements besides just \f(CW\*(C`

      \*(C'\fR; but I treat this as a special case simply because of the fact that \f(CW\*(C`

      \*(C'\fR occurs so frequently and its end-tag is omitted so often; and also because application of strictness rules at parse-time across all elements often makes tiny errors in \s-1HTML\s0 coding produce drastically bad parse-trees, in my experience. .PP If you find that you wish you had an option like this to enforce content-models on all elements, then I suggest that what you want is content-model checking as a stage after TreeBuilder has finished parsing. .SS "store_comments" .IX Subsection "store_comments" This determines whether TreeBuilder will normally store comments found while parsing content into \f(CW$root\fR. Currently, this is off by default. .SS "store_declarations" .IX Subsection "store_declarations" This determines whether TreeBuilder will normally store markup declarations found while parsing content into \f(CW$root\fR. This is on by default. .SS "store_pis" .IX Subsection "store_pis" This determines whether TreeBuilder will normally store processing instructions found while parsing content into \f(CW$root\fR \*(-- assuming a recent version of HTML::Parser (old versions won't parse PIs correctly). Currently, this is off (false) by default. .PP It is somewhat of a known bug (to be fixed one of these days, if anyone needs it?) that PIs in the preamble (before the \f(CW\*(C`\*(C'\fR start-tag) end up actually \fIunder\fR the \f(CW\*(C`\*(C'\fR element. .SS "warn" .IX Subsection "warn" This determines whether syntax errors during parsing should generate warnings, emitted via Perl's \f(CW\*(C`warn\*(C'\fR function. .PP This is off (false) by default. .SH "METHODS" .IX Header "METHODS" Objects of this class inherit the methods of both HTML::Parser and HTML::Element. The methods inherited from HTML::Parser are used for building the \s-1HTML\s0 tree, and the methods inherited from HTML::Element are what you use to scrutinize the tree. Besides this (HTML::TreeBuilder) documentation, you must also carefully read the HTML::Element documentation, and also skim the HTML::Parser documentation \*(-- probably only its parse and parse_file methods are of interest. .SS "new_from_file" .IX Subsection "new_from_file" .Vb 1 \& $root = HTML::TreeBuilder\->new_from_file($filename_or_filehandle); .Ve .PP This \*(L"shortcut\*(R" constructor merely combines constructing a new object (with the \*(L"new\*(R" method, below), and calling \f(CW\*(C`$new\->parse_file(...)\*(C'\fR on it. Returns the new object. Note that this provides no way of setting any parse options like \f(CW\*(C`store_comments\*(C'\fR (for that, call \f(CW\*(C`new\*(C'\fR, and then set options, before calling \f(CW\*(C`parse_file\*(C'\fR). See the notes (below) on parameters to \*(L"parse_file\*(R". .PP If HTML::TreeBuilder is unable to read the file, then \f(CW\*(C`new_from_file\*(C'\fR dies. The error can also be found in \f(CW$!\fR. (This behavior is new in HTML-Tree 5. Previous versions returned a tree with only implicit elements.) .SS "new_from_content" .IX Subsection "new_from_content" .Vb 1 \& $root = HTML::TreeBuilder\->new_from_content(...); .Ve .PP This \*(L"shortcut\*(R" constructor merely combines constructing a new object (with the \*(L"new\*(R" method, below), and calling \f(CW\*(C`for(...){$new\->parse($_)}\*(C'\fR and \f(CW\*(C`$new\->eof\*(C'\fR on it. Returns the new object. Note that this provides no way of setting any parse options like \f(CW\*(C`store_comments\*(C'\fR (for that, call \f(CW\*(C`new\*(C'\fR, and then set options, before calling \f(CW\*(C`parse\*(C'\fR). Example usages: \f(CW\*(C`HTML::TreeBuilder\->new_from_content(@lines)\*(C'\fR, or \&\f(CW\*(C`HTML::TreeBuilder\->new_from_content($content)\*(C'\fR. .SS "new_from_url" .IX Subsection "new_from_url" .Vb 1 \& $root = HTML::TreeBuilder\->new_from_url($url) .Ve .PP This \*(L"shortcut\*(R" constructor combines constructing a new object (with the \*(L"new\*(R" method, below), loading LWP::UserAgent, fetching the specified \s-1URL,\s0 and calling \f(CW\*(C`$new\->parse( $response\->decoded_content)\*(C'\fR and \f(CW\*(C`$new\->eof\*(C'\fR on it. Returns the new object. Note that this provides no way of setting any parse options like \f(CW\*(C`store_comments\*(C'\fR. .PP If \s-1LWP\s0 is unable to fetch the \s-1URL,\s0 or the response is not \s-1HTML \s0(as determined by \*(L"content_is_html\*(R" in HTTP::Headers), then \f(CW\*(C`new_from_url\*(C'\fR dies, and the HTTP::Response object is found in \&\f(CW$HTML::TreeBuilder::lwp_response\fR. .PP You must have installed LWP::UserAgent for this method to work. \s-1LWP\s0 is not installed automatically, because it's a large set of modules and you might not need it. .SS "new" .IX Subsection "new" .Vb 1 \& $root = HTML::TreeBuilder\->new(); .Ve .PP This creates a new HTML::TreeBuilder object. This method takes no attributes. .SS "parse_file" .IX Subsection "parse_file" .Vb 1 \& $root\->parse_file(...) .Ve .PP [An important method inherited from HTML::Parser, which see. Current versions of HTML::Parser can take a filespec, or a filehandle object, like *FOO, or some object from class IO::Handle, IO::File, IO::Socket) or the like. I think you should check that a given file exists \fIbefore\fR calling \&\f(CW\*(C`$root\->parse_file($filespec)\*(C'\fR.] .PP When you pass a filename to \f(CW\*(C`parse_file\*(C'\fR, HTML::Parser opens it in binary mode, which means it's interpreted as Latin\-1 (\s-1ISO\-8859\-1\s0). If the file is in another encoding, like \s-1UTF\-8\s0 or \s-1UTF\-16,\s0 this will not do the right thing. .PP One solution is to open the file yourself using the proper \&\f(CW\*(C`:encoding\*(C'\fR layer, and pass the filehandle to \f(CW\*(C`parse_file\*(C'\fR. You can automate this process by using \*(L"html_file\*(R" in \s-1IO::HTML\s0, which will use the \s-1HTML5\s0 encoding sniffing algorithm to automatically determine the proper \f(CW\*(C`:encoding\*(C'\fR layer and apply it. .PP In the next major release of HTML-Tree, I plan to have it use \s-1IO::HTML\s0 automatically. If you really want your file opened in binary mode, you should open it yourself and pass the filehandle to \f(CW\*(C`parse_file\*(C'\fR. .PP The return value is \f(CW\*(C`undef\*(C'\fR if there's an error opening the file. In that case, the error will be in \f(CW$!\fR. .SS "parse" .IX Subsection "parse" .Vb 1 \& $root\->parse(...) .Ve .PP [A important method inherited from HTML::Parser, which see. See the note below for \f(CW\*(C`$root\->eof()\*(C'\fR.] .SS "eof" .IX Subsection "eof" .Vb 1 \& $root\->eof(); .Ve .PP This signals that you're finished parsing content into this tree; this runs various kinds of crucial cleanup on the tree. This is called \&\fIfor you\fR when you call \f(CW\*(C`$root\->parse_file(...)\*(C'\fR, but not when you call \f(CW\*(C`$root\->parse(...)\*(C'\fR. So if you call \&\f(CW\*(C`$root\->parse(...)\*(C'\fR, then you \fImust\fR call \f(CW\*(C`$root\->eof()\*(C'\fR once you've finished feeding all the chunks to \f(CW\*(C`parse(...)\*(C'\fR, and before you actually start doing anything else with the tree in \f(CW$root\fR. .SS "parse_content" .IX Subsection "parse_content" .Vb 1 \& $root\->parse_content(...); .Ve .PP Basically a handy alias for \f(CW\*(C`$root\->parse(...); $root\->eof\*(C'\fR. Takes the exact same arguments as \f(CW\*(C`$root\->parse()\*(C'\fR. .SS "delete" .IX Subsection "delete" .Vb 1 \& $root\->delete(); .Ve .PP [A previously important method inherited from HTML::Element, which see.] .SS "elementify" .IX Subsection "elementify" .Vb 1 \& $root\->elementify(); .Ve .PP This changes the class of the object in \f(CW$root\fR from HTML::TreeBuilder to the class used for all the rest of the elements in that tree (generally HTML::Element). Returns \f(CW$root\fR. .PP For most purposes, this is unnecessary, but if you call this after (after!!) you've finished building a tree, then it keeps you from accidentally trying to call anything but HTML::Element methods on it. (I.e., if you accidentally call \f(CW\*(C`$root\->parse_file(...)\*(C'\fR on the already-complete and elementified tree, then instead of charging ahead and \fIwreaking havoc\fR, it'll throw a fatal error \*(-- since \f(CW$root\fR is now an object just of class HTML::Element which has no \f(CW\*(C`parse_file\*(C'\fR method. .PP Note that \f(CW\*(C`elementify\*(C'\fR currently deletes all the private attributes of \&\f(CW$root\fR except for \*(L"_tag\*(R", \*(L"_parent\*(R", \*(L"_content\*(R", \*(L"_pos\*(R", and \&\*(L"_implicit\*(R". If anyone requests that I change this to leave in yet more private attributes, I might do so, in future versions. .SS "guts" .IX Subsection "guts" .Vb 2 \& @nodes = $root\->guts(); \& $parent_for_nodes = $root\->guts(); .Ve .PP In list context (as in the first case), this method returns the topmost non-implicit nodes in a tree. This is useful when you're parsing \s-1HTML\s0 code that you know doesn't expect an \s-1HTML\s0 document, but instead just a fragment of an \s-1HTML\s0 document. For example, if you wanted the parse tree for a file consisting of just this: .PP .Vb 1 \&

    • I like pie! .Ve .PP Then you would get that with \f(CW\*(C`@nodes = $root\->guts();\*(C'\fR. It so happens that in this case, \f(CW@nodes\fR will contain just one element object, representing the \f(CW\*(C`
    • \*(C'\fR node (with \*(L"I like pie!\*(R" being its text child node). However, consider if you were parsing this: .PP .Vb 1 \&
      Hooboy!
      .Ve .PP In that case, \f(CW\*(C`$root\->guts()\*(C'\fR would return three items: an element object for the first \f(CW\*(C`
      \*(C'\fR, a text string \*(L"Hooboy!\*(R", and another \f(CW\*(C`
      \*(C'\fR element object. .PP For cases where you want definitely one element (so you can treat it as a \*(L"document fragment\*(R", roughly speaking), call \f(CW\*(C`guts()\*(C'\fR in scalar context, as in \f(CW\*(C`$parent_for_nodes = $root\->guts()\*(C'\fR. That works like \&\f(CW\*(C`guts()\*(C'\fR in list context; in fact, \f(CW\*(C`guts()\*(C'\fR in list context would have returned exactly one value, and if it would have been an object (as opposed to a text string), then that's what \f(CW\*(C`guts\*(C'\fR in scalar context will return. Otherwise, if \f(CW\*(C`guts()\*(C'\fR in list context would have returned no values at all, then \f(CW\*(C`guts()\*(C'\fR in scalar context returns undef. In all other cases, \f(CW\*(C`guts()\*(C'\fR in scalar context returns an implicit \f(CW\*(C`
      \*(C'\fR element node, with children consisting of whatever nodes \f(CW\*(C`guts()\*(C'\fR in list context would have returned. Note that that may detach those nodes from \f(CW$root\fR's tree. .SS "disembowel" .IX Subsection "disembowel" .Vb 2 \& @nodes = $root\->disembowel(); \& $parent_for_nodes = $root\->disembowel(); .Ve .PP The \f(CW\*(C`disembowel()\*(C'\fR method works just like the \f(CW\*(C`guts()\*(C'\fR method, except that disembowel definitively destroys the tree above the nodes that are returned. Usually when you want the guts from a tree, you're just going to toss out the rest of the tree anyway, so this saves you the bother. (Remember, \*(L"disembowel\*(R" means \*(L"remove the guts from\*(R".) .SH "INTERNAL METHODS" .IX Header "INTERNAL METHODS" You should not need to call any of the following methods directly. .SS "element_class" .IX Subsection "element_class" .Vb 1 \& $classname = $h\->element_class; .Ve .PP This method returns the class which will be used for new elements. It defaults to HTML::Element, but can be overridden by subclassing or esoteric means best left to those will will read the source and then not complain when those esoteric means change. (Just subclass.) .SS "comment" .IX Subsection "comment" Accept a \*(L"here's a comment\*(R" signal from HTML::Parser. .SS "declaration" .IX Subsection "declaration" Accept a \*(L"here's a markup declaration\*(R" signal from HTML::Parser. .SS "done" .IX Subsection "done" \&\s-1TODO:\s0 document .SS "end" .IX Subsection "end" Either: Acccept an end-tag signal from HTML::Parser Or: Method for closing currently open elements in some fairly complex way, as used by other methods in this class. .PP \&\s-1TODO:\s0 Why is this hidden? .SS "process" .IX Subsection "process" Accept a \*(L"here's a \s-1PI\*(R"\s0 signal from HTML::Parser. .SS "start" .IX Subsection "start" Accept a signal from HTML::Parser for start-tags. .PP \&\s-1TODO:\s0 Why is this hidden? .SS "stunt" .IX Subsection "stunt" \&\s-1TODO:\s0 document .SS "stunted" .IX Subsection "stunted" \&\s-1TODO:\s0 document .SS "text" .IX Subsection "text" Accept a \*(L"here's a text token\*(R" signal from HTML::Parser. .PP \&\s-1TODO:\s0 Why is this hidden? .SS "tighten_up" .IX Subsection "tighten_up" Legacy .PP Redirects to \*(L"delete_ignorable_whitespace\*(R" in HTML::Element. .SS "warning" .IX Subsection "warning" Wrapper for CORE::warn .PP \&\s-1TODO:\s0 why not just use carp? .SH "SUBROUTINES" .IX Header "SUBROUTINES" .SS "\s-1DEBUG\s0" .IX Subsection "DEBUG" Are we in Debug mode? This is a constant subroutine, to allow compile-time optimizations. To control debug mode, set \&\f(CW$HTML::TreeBuilder::DEBUG\fR \fIbefore\fR loading HTML::TreeBuilder. .SH "HTML AND ITS DISCONTENTS" .IX Header "HTML AND ITS DISCONTENTS" \&\s-1HTML\s0 is rather harder to parse than people who write it generally suspect. .PP Here's the problem: \s-1HTML\s0 is a kind of \s-1SGML\s0 that permits \*(L"minimization\*(R" and \*(L"implication\*(R". In short, this means that you don't have to close every tag you open (because the opening of a subsequent tag may implicitly close it), and if you use a tag that can't occur in the context you seem to using it in, under certain conditions the parser will be able to realize you mean to leave the current context and enter the new one, that being the only one that your code could correctly be interpreted in. .PP Now, this would all work flawlessly and unproblematically if: 1) all the rules that both prescribe and describe \s-1HTML\s0 were (and had been) clearly set out, and 2) everyone was aware of these rules and wrote their code in compliance to them. .PP However, it didn't happen that way, and so most \s-1HTML\s0 pages are difficult if not impossible to correctly parse with nearly any set of straightforward \s-1SGML\s0 rules. That's why the internals of HTML::TreeBuilder consist of lots and lots of special cases \*(-- instead of being just a generic \s-1SGML\s0 parser with \s-1HTML DTD\s0 rules plugged in. .SH "TRANSLATIONS?" .IX Header "TRANSLATIONS?" The techniques that HTML::TreeBuilder uses to perform what I consider very robust parses on everyday code are not things that can work only in Perl. To date, the algorithms at the center of HTML::TreeBuilder have been implemented only in Perl, as far as I know; and I don't foresee getting around to implementing them in any other language any time soon. .PP If, however, anyone is looking for a semester project for an applied programming class (or if they merely enjoy \fIextra-curricular\fR masochism), they might do well to see about choosing as a topic the implementation/adaptation of these routines to any other interesting programming language that you feel currently suffers from a lack of robust HTML-parsing. I welcome correspondence on this subject, and point out that one can learn a great deal about languages by trying to translate between them, and then comparing the result. .PP The HTML::TreeBuilder source may seem long and complex, but it is rather well commented, and symbol names are generally self-explanatory. (You are encouraged to read the Mozilla \s-1HTML\s0 parser source for comparison.) Some of the complexity comes from little-used features, and some of it comes from having the \s-1HTML\s0 tokenizer (HTML::Parser) being a separate module, requiring somewhat of a different interface than you'd find in a combined tokenizer and tree-builder. But most of the length of the source comes from the fact that it's essentially a long list of special cases, with lots and lots of sanity-checking, and sanity-recovery \*(-- because, as Roseanne Rosannadanna once said, "it's always \fIsomething\fR". .PP Users looking to compare several \s-1HTML\s0 parsers should look at the source for Raggett's Tidy (\f(CW\*(C`\*(C'\fR), Mozilla (\f(CW\*(C`\*(C'\fR), and possibly root around the browsers section of Yahoo to find the various open-source ones (\f(CW\*(C`\*(C'\fR). .SH "BUGS" .IX Header "BUGS" * Framesets seem to work correctly now. Email me if you get a strange parse from a document with framesets. .PP * Really bad \s-1HTML\s0 code will, often as not, make for a somewhat objectionable parse tree. Regrettable, but unavoidably true. .PP * If you're running with \f(CW\*(C`implicit_tags\*(C'\fR off (God help you!), consider that \f(CW\*(C`$tree\->content_list\*(C'\fR probably contains the tree or grove from the parse, and not \f(CW$tree\fR itself (which will, oddly enough, be an implicit \&\f(CW\*(C`\*(C'\fR element). This seems counter-intuitive and problematic; but seeing as how almost no \s-1HTML\s0 ever parses correctly with \f(CW\*(C`implicit_tags\*(C'\fR off, this interface oddity seems the least of your problems. .SH "BUG REPORTS" .IX Header "BUG REPORTS" When a document parses in a way different from how you think it should, I ask that you report this to me as a bug. The first thing you should do is copy the document, trim out as much of it as you can while still producing the bug in question, and \fIthen\fR email me that mini-document \fIand\fR the code you're using to parse it, to the HTML::Tree bug queue at \f(CW\*(C`\*(C'\fR. .PP Include a note as to how it parses (presumably including its \f(CW\*(C`$tree\->dump\*(C'\fR output), and then a \&\fIcareful and clear\fR explanation of where you think the parser is going astray, and how you would prefer that it work instead. .SH "SEE ALSO" .IX Header "SEE ALSO" For more information about the HTML-Tree distribution: HTML::Tree. .PP Modules used by HTML::TreeBuilder: HTML::Parser, HTML::Element, HTML::Tagset. .PP For converting between XML::DOM::Node, HTML::Element, and XML::Element trees: HTML::DOMbo. .PP For opening a \s-1HTML\s0 file with automatic charset detection: \s-1IO::HTML\s0. .SH "AUTHOR" .IX Header "AUTHOR" Current maintainers: .IP "\(bu" 4 Christopher J. Madsen \f(CW\*(C`\*(C'\fR .IP "\(bu" 4 Jeff Fearn \f(CW\*(C`\*(C'\fR .PP Original HTML-Tree author: .IP "\(bu" 4 Gisle Aas .PP Former maintainers: .IP "\(bu" 4 Sean M. Burke .IP "\(bu" 4 Andy Lester .IP "\(bu" 4 Pete Krawczyk \f(CW\*(C`\*(C'\fR .PP You can follow or contribute to HTML-Tree's development at . .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" Copyright 1995\-1998 Gisle Aas, 1999\-2004 Sean M. Burke, 2005 Andy Lester, 2006 Pete Krawczyk, 2010 Jeff Fearn, 2012 Christopher J. Madsen. .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP The programs in this library are distributed in the hope that they will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. man3/Test::Tutorial.3pm000044400000062731147645265660010706 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test::Tutorial 3" .TH Test::Tutorial 3 "2019-09-06" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test::Tutorial \- A tutorial about writing really basic tests .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fI\s-1AHHHHHHH\s0!!!! \s-1NOT TESTING\s0! Anything but testing! Beat me, whip me, send me to Detroit, but don't make me write tests!\fR .PP \&\fI*sob*\fR .PP \&\fIBesides, I don't know how to write the damned things.\fR .PP Is this you? Is writing tests right up there with writing documentation and having your fingernails pulled out? Did you open up a test and read .PP .Vb 1 \& ######## We start with some black magic .Ve .PP and decide that's quite enough for you? .PP It's ok. That's all gone now. We've done all the black magic for you. And here are the tricks... .SS "Nuts and bolts of testing." .IX Subsection "Nuts and bolts of testing." Here's the most basic test program. .PP .Vb 1 \& #!/usr/bin/perl \-w \& \& print "1..1\en"; \& \& print 1 + 1 == 2 ? "ok 1\en" : "not ok 1\en"; .Ve .PP Because 1 + 1 is 2, it prints: .PP .Vb 2 \& 1..1 \& ok 1 .Ve .PP What this says is: \f(CW1..1\fR \*(L"I'm going to run one test.\*(R" [1] \f(CW\*(C`ok 1\*(C'\fR \&\*(L"The first test passed\*(R". And that's about all magic there is to testing. Your basic unit of testing is the \fIok\fR. For each thing you test, an \f(CW\*(C`ok\*(C'\fR is printed. Simple. Test::Harness interprets your test results to determine if you succeeded or failed (more on that later). .PP Writing all these print statements rapidly gets tedious. Fortunately, there's Test::Simple. It has one function, \f(CW\*(C`ok()\*(C'\fR. .PP .Vb 1 \& #!/usr/bin/perl \-w \& \& use Test::Simple tests => 1; \& \& ok( 1 + 1 == 2 ); .Ve .PP That does the same thing as the previous code. \f(CW\*(C`ok()\*(C'\fR is the backbone of Perl testing, and we'll be using it instead of roll-your-own from here on. If \f(CW\*(C`ok()\*(C'\fR gets a true value, the test passes. False, it fails. .PP .Vb 1 \& #!/usr/bin/perl \-w \& \& use Test::Simple tests => 2; \& ok( 1 + 1 == 2 ); \& ok( 2 + 2 == 5 ); .Ve .PP From that comes: .PP .Vb 5 \& 1..2 \& ok 1 \& not ok 2 \& # Failed test (test.pl at line 5) \& # Looks like you failed 1 tests of 2. .Ve .PP \&\f(CW1..2\fR \*(L"I'm going to run two tests.\*(R" This number is a \fIplan\fR. It helps to ensure your test program ran all the way through and didn't die or skip some tests. \f(CW\*(C`ok 1\*(C'\fR \*(L"The first test passed.\*(R" \f(CW\*(C`not ok 2\*(C'\fR \*(L"The second test failed\*(R". Test::Simple helpfully prints out some extra commentary about your tests. .PP It's not scary. Come, hold my hand. We're going to give an example of testing a module. For our example, we'll be testing a date library, Date::ICal. It's on \s-1CPAN,\s0 so download a copy and follow along. [2] .SS "Where to start?" .IX Subsection "Where to start?" This is the hardest part of testing, where do you start? People often get overwhelmed at the apparent enormity of the task of testing a whole module. The best place to start is at the beginning. Date::ICal is an object-oriented module, and that means you start by making an object. Test \&\f(CW\*(C`new()\*(C'\fR. .PP .Vb 1 \& #!/usr/bin/perl \-w \& \& # assume these two lines are in all subsequent examples \& use strict; \& use warnings; \& \& use Test::Simple tests => 2; \& \& use Date::ICal; \& \& my $ical = Date::ICal\->new; # create an object \& ok( defined $ical ); # check that we got something \& ok( $ical\->isa(\*(AqDate::ICal\*(Aq) ); # and it\*(Aqs the right class .Ve .PP Run that and you should get: .PP .Vb 3 \& 1..2 \& ok 1 \& ok 2 .Ve .PP Congratulations! You've written your first useful test. .SS "Names" .IX Subsection "Names" That output isn't terribly descriptive, is it? When you have two tests you can figure out which one is #2, but what if you have 102 tests? .PP Each test can be given a little descriptive name as the second argument to \f(CW\*(C`ok()\*(C'\fR. .PP .Vb 1 \& use Test::Simple tests => 2; \& \& ok( defined $ical, \*(Aqnew() returned something\*(Aq ); \& ok( $ical\->isa(\*(AqDate::ICal\*(Aq), " and it\*(Aqs the right class" ); .Ve .PP Now you'll see: .PP .Vb 3 \& 1..2 \& ok 1 \- new() returned something \& ok 2 \- and it\*(Aqs the right class .Ve .SS "Test the manual" .IX Subsection "Test the manual" The simplest way to build up a decent testing suite is to just test what the manual says it does. [3] Let's pull something out of the \&\*(L"\s-1SYNOPSIS\*(R"\s0 in Date::ICal and test that all its bits work. .PP .Vb 1 \& #!/usr/bin/perl \-w \& \& use Test::Simple tests => 8; \& \& use Date::ICal; \& \& $ical = Date::ICal\->new( year => 1964, month => 10, day => 16, \& hour => 16, min => 12, sec => 47, \& tz => \*(Aq0530\*(Aq ); \& \& ok( defined $ical, \*(Aqnew() returned something\*(Aq ); \& ok( $ical\->isa(\*(AqDate::ICal\*(Aq), " and it\*(Aqs the right class" ); \& ok( $ical\->sec == 47, \*(Aq sec()\*(Aq ); \& ok( $ical\->min == 12, \*(Aq min()\*(Aq ); \& ok( $ical\->hour == 16, \*(Aq hour()\*(Aq ); \& ok( $ical\->day == 17, \*(Aq day()\*(Aq ); \& ok( $ical\->month == 10, \*(Aq month()\*(Aq ); \& ok( $ical\->year == 1964, \*(Aq year()\*(Aq ); .Ve .PP Run that and you get: .PP .Vb 11 \& 1..8 \& ok 1 \- new() returned something \& ok 2 \- and it\*(Aqs the right class \& ok 3 \- sec() \& ok 4 \- min() \& ok 5 \- hour() \& not ok 6 \- day() \& # Failed test (\- at line 16) \& ok 7 \- month() \& ok 8 \- year() \& # Looks like you failed 1 tests of 8. .Ve .PP Whoops, a failure! [4] Test::Simple helpfully lets us know on what line the failure occurred, but not much else. We were supposed to get 17, but we didn't. What did we get?? Dunno. You could re-run the test in the debugger or throw in some print statements to find out. .PP Instead, switch from Test::Simple to Test::More. Test::More does everything Test::Simple does, and more! In fact, Test::More does things \fIexactly\fR the way Test::Simple does. You can literally swap Test::Simple out and put Test::More in its place. That's just what we're going to do. .PP Test::More does more than Test::Simple. The most important difference at this point is it provides more informative ways to say \*(L"ok\*(R". Although you can write almost any test with a generic \f(CW\*(C`ok()\*(C'\fR, it can't tell you what went wrong. The \f(CW\*(C`is()\*(C'\fR function lets us declare that something is supposed to be the same as something else: .PP .Vb 1 \& use Test::More tests => 8; \& \& use Date::ICal; \& \& $ical = Date::ICal\->new( year => 1964, month => 10, day => 16, \& hour => 16, min => 12, sec => 47, \& tz => \*(Aq0530\*(Aq ); \& \& ok( defined $ical, \*(Aqnew() returned something\*(Aq ); \& ok( $ical\->isa(\*(AqDate::ICal\*(Aq), " and it\*(Aqs the right class" ); \& is( $ical\->sec, 47, \*(Aq sec()\*(Aq ); \& is( $ical\->min, 12, \*(Aq min()\*(Aq ); \& is( $ical\->hour, 16, \*(Aq hour()\*(Aq ); \& is( $ical\->day, 17, \*(Aq day()\*(Aq ); \& is( $ical\->month, 10, \*(Aq month()\*(Aq ); \& is( $ical\->year, 1964, \*(Aq year()\*(Aq ); .Ve .PP "Is \f(CW\*(C`$ical\->sec\*(C'\fR 47?\*(L" \*(R"Is \f(CW\*(C`$ical\->min\*(C'\fR 12?" With \f(CW\*(C`is()\*(C'\fR in place, you get more information: .PP .Vb 10 \& 1..8 \& ok 1 \- new() returned something \& ok 2 \- and it\*(Aqs the right class \& ok 3 \- sec() \& ok 4 \- min() \& ok 5 \- hour() \& not ok 6 \- day() \& # Failed test (\- at line 16) \& # got: \*(Aq16\*(Aq \& # expected: \*(Aq17\*(Aq \& ok 7 \- month() \& ok 8 \- year() \& # Looks like you failed 1 tests of 8. .Ve .PP Aha. \f(CW\*(C`$ical\->day\*(C'\fR returned 16, but we expected 17. A quick check shows that the code is working fine, we made a mistake when writing the tests. Change it to: .PP .Vb 1 \& is( $ical\->day, 16, \*(Aq day()\*(Aq ); .Ve .PP \&... and everything works. .PP Any time you're doing a \*(L"this equals that\*(R" sort of test, use \f(CW\*(C`is()\*(C'\fR. It even works on arrays. The test is always in scalar context, so you can test how many elements are in an array this way. [5] .PP .Vb 1 \& is( @foo, 5, \*(Aqfoo has 5 elements\*(Aq ); .Ve .SS "Sometimes the tests are wrong" .IX Subsection "Sometimes the tests are wrong" This brings up a very important lesson. Code has bugs. Tests are code. Ergo, tests have bugs. A failing test could mean a bug in the code, but don't discount the possibility that the test is wrong. .PP On the flip side, don't be tempted to prematurely declare a test incorrect just because you're having trouble finding the bug. Invalidating a test isn't something to be taken lightly, and don't use it as a cop out to avoid work. .SS "Testing lots of values" .IX Subsection "Testing lots of values" We're going to be wanting to test a lot of dates here, trying to trick the code with lots of different edge cases. Does it work before 1970? After 2038? Before 1904? Do years after 10,000 give it trouble? Does it get leap years right? We could keep repeating the code above, or we could set up a little try/expect loop. .PP .Vb 2 \& use Test::More tests => 32; \& use Date::ICal; \& \& my %ICal_Dates = ( \& # An ICal string And the year, month, day \& # hour, minute and second we expect. \& \*(Aq19971024T120000\*(Aq => # from the docs. \& [ 1997, 10, 24, 12, 0, 0 ], \& \*(Aq20390123T232832\*(Aq => # after the Unix epoch \& [ 2039, 1, 23, 23, 28, 32 ], \& \*(Aq19671225T000000\*(Aq => # before the Unix epoch \& [ 1967, 12, 25, 0, 0, 0 ], \& \*(Aq18990505T232323\*(Aq => # before the MacOS epoch \& [ 1899, 5, 5, 23, 23, 23 ], \& ); \& \& \& while( my($ical_str, $expect) = each %ICal_Dates ) { \& my $ical = Date::ICal\->new( ical => $ical_str ); \& \& ok( defined $ical, "new(ical => \*(Aq$ical_str\*(Aq)" ); \& ok( $ical\->isa(\*(AqDate::ICal\*(Aq), " and it\*(Aqs the right class" ); \& \& is( $ical\->year, $expect\->[0], \*(Aq year()\*(Aq ); \& is( $ical\->month, $expect\->[1], \*(Aq month()\*(Aq ); \& is( $ical\->day, $expect\->[2], \*(Aq day()\*(Aq ); \& is( $ical\->hour, $expect\->[3], \*(Aq hour()\*(Aq ); \& is( $ical\->min, $expect\->[4], \*(Aq min()\*(Aq ); \& is( $ical\->sec, $expect\->[5], \*(Aq sec()\*(Aq ); \& } .Ve .PP Now we can test bunches of dates by just adding them to \&\f(CW%ICal_Dates\fR. Now that it's less work to test with more dates, you'll be inclined to just throw more in as you think of them. Only problem is, every time we add to that we have to keep adjusting the \f(CW\*(C`use Test::More tests => ##\*(C'\fR line. That can rapidly get annoying. There are ways to make this work better. .PP First, we can calculate the plan dynamically using the \f(CW\*(C`plan()\*(C'\fR function. .PP .Vb 2 \& use Test::More; \& use Date::ICal; \& \& my %ICal_Dates = ( \& ...same as before... \& ); \& \& # For each key in the hash we\*(Aqre running 8 tests. \& plan tests => keys(%ICal_Dates) * 8; \& \& ...and then your tests... .Ve .PP To be even more flexible, use \f(CW\*(C`done_testing\*(C'\fR. This means we're just running some tests, don't know how many. [6] .PP .Vb 1 \& use Test::More; # instead of tests => 32 \& \& ... # tests here \& \& done_testing(); # reached the end safely .Ve .PP If you don't specify a plan, Test::More expects to see \f(CW\*(C`done_testing()\*(C'\fR before your program exits. It will warn you if you forget it. You can give \&\f(CW\*(C`done_testing()\*(C'\fR an optional number of tests you expected to run, and if the number ran differs, Test::More will give you another kind of warning. .SS "Informative names" .IX Subsection "Informative names" Take a look at the line: .PP .Vb 1 \& ok( defined $ical, "new(ical => \*(Aq$ical_str\*(Aq)" ); .Ve .PP We've added more detail about what we're testing and the ICal string itself we're trying out to the name. So you get results like: .PP .Vb 8 \& ok 25 \- new(ical => \*(Aq19971024T120000\*(Aq) \& ok 26 \- and it\*(Aqs the right class \& ok 27 \- year() \& ok 28 \- month() \& ok 29 \- day() \& ok 30 \- hour() \& ok 31 \- min() \& ok 32 \- sec() .Ve .PP If something in there fails, you'll know which one it was and that will make tracking down the problem easier. Try to put a bit of debugging information into the test names. .PP Describe what the tests test, to make debugging a failed test easier for you or for the next person who runs your test. .SS "Skipping tests" .IX Subsection "Skipping tests" Poking around in the existing Date::ICal tests, I found this in \&\fIt/01sanity.t\fR [7] .PP .Vb 1 \& #!/usr/bin/perl \-w \& \& use Test::More tests => 7; \& use Date::ICal; \& \& # Make sure epoch time is being handled sanely. \& my $t1 = Date::ICal\->new( epoch => 0 ); \& is( $t1\->epoch, 0, "Epoch time of 0" ); \& \& # XXX This will only work on unix systems. \& is( $t1\->ical, \*(Aq19700101Z\*(Aq, " epoch to ical" ); \& \& is( $t1\->year, 1970, " year()" ); \& is( $t1\->month, 1, " month()" ); \& is( $t1\->day, 1, " day()" ); \& \& # like the tests above, but starting with ical instead of epoch \& my $t2 = Date::ICal\->new( ical => \*(Aq19700101Z\*(Aq ); \& is( $t2\->ical, \*(Aq19700101Z\*(Aq, "Start of epoch in ICal notation" ); \& \& is( $t2\->epoch, 0, " and back to ICal" ); .Ve .PP The beginning of the epoch is different on most non-Unix operating systems [8]. Even though Perl smooths out the differences for the most part, certain ports do it differently. MacPerl is one off the top of my head. [9] Rather than putting a comment in the test and hoping someone will read the test while debugging the failure, we can explicitly say it's never going to work and skip the test. .PP .Vb 2 \& use Test::More tests => 7; \& use Date::ICal; \& \& # Make sure epoch time is being handled sanely. \& my $t1 = Date::ICal\->new( epoch => 0 ); \& is( $t1\->epoch, 0, "Epoch time of 0" ); \& \& SKIP: { \& skip(\*(Aqepoch to ICal not working on Mac OS\*(Aq, 6) \& if $^O eq \*(AqMacOS\*(Aq; \& \& is( $t1\->ical, \*(Aq19700101Z\*(Aq, " epoch to ical" ); \& \& is( $t1\->year, 1970, " year()" ); \& is( $t1\->month, 1, " month()" ); \& is( $t1\->day, 1, " day()" ); \& \& # like the tests above, but starting with ical instead of epoch \& my $t2 = Date::ICal\->new( ical => \*(Aq19700101Z\*(Aq ); \& is( $t2\->ical, \*(Aq19700101Z\*(Aq, "Start of epoch in ICal notation" ); \& \& is( $t2\->epoch, 0, " and back to ICal" ); \& } .Ve .PP A little bit of magic happens here. When running on anything but MacOS, all the tests run normally. But when on MacOS, \f(CW\*(C`skip()\*(C'\fR causes the entire contents of the \s-1SKIP\s0 block to be jumped over. It never runs. Instead, \&\f(CW\*(C`skip()\*(C'\fR prints special output that tells Test::Harness that the tests have been skipped. .PP .Vb 8 \& 1..7 \& ok 1 \- Epoch time of 0 \& ok 2 # skip epoch to ICal not working on MacOS \& ok 3 # skip epoch to ICal not working on MacOS \& ok 4 # skip epoch to ICal not working on MacOS \& ok 5 # skip epoch to ICal not working on MacOS \& ok 6 # skip epoch to ICal not working on MacOS \& ok 7 # skip epoch to ICal not working on MacOS .Ve .PP This means your tests won't fail on MacOS. This means fewer emails from MacPerl users telling you about failing tests that you know will never work. You've got to be careful with skip tests. These are for tests which don't work and \fInever will\fR. It is not for skipping genuine bugs (we'll get to that in a moment). .PP The tests are wholly and completely skipped. [10] This will work. .PP .Vb 2 \& SKIP: { \& skip("I don\*(Aqt wanna die!"); \& \& die, die, die, die, die; \& } .Ve .SS "Todo tests" .IX Subsection "Todo tests" While thumbing through the Date::ICal man page, I came across this: .PP .Vb 1 \& ical \& \& $ical_string = $ical\->ical; \& \& Retrieves, or sets, the date on the object, using any \& valid ICal date/time string. .Ve .PP \&\*(L"Retrieves or sets\*(R". Hmmm. I didn't see a test for using \f(CW\*(C`ical()\*(C'\fR to set the date in the Date::ICal test suite. So I wrote one: .PP .Vb 2 \& use Test::More tests => 1; \& use Date::ICal; \& \& my $ical = Date::ICal\->new; \& $ical\->ical(\*(Aq20201231Z\*(Aq); \& is( $ical\->ical, \*(Aq20201231Z\*(Aq, \*(AqSetting via ical()\*(Aq ); .Ve .PP Run that. I saw: .PP .Vb 6 \& 1..1 \& not ok 1 \- Setting via ical() \& # Failed test (\- at line 6) \& # got: \*(Aq20010814T233649Z\*(Aq \& # expected: \*(Aq20201231Z\*(Aq \& # Looks like you failed 1 tests of 1. .Ve .PP Whoops! Looks like it's unimplemented. Assume you don't have the time to fix this. [11] Normally, you'd just comment out the test and put a note in a todo list somewhere. Instead, explicitly state \*(L"this test will fail\*(R" by wrapping it in a \f(CW\*(C`TODO\*(C'\fR block: .PP .Vb 1 \& use Test::More tests => 1; \& \& TODO: { \& local $TODO = \*(Aqical($ical) not yet implemented\*(Aq; \& \& my $ical = Date::ICal\->new; \& $ical\->ical(\*(Aq20201231Z\*(Aq); \& \& is( $ical\->ical, \*(Aq20201231Z\*(Aq, \*(AqSetting via ical()\*(Aq ); \& } .Ve .PP Now when you run, it's a little different: .PP .Vb 4 \& 1..1 \& not ok 1 \- Setting via ical() # TODO ical($ical) not yet implemented \& # got: \*(Aq20010822T201551Z\*(Aq \& # expected: \*(Aq20201231Z\*(Aq .Ve .PP Test::More doesn't say \*(L"Looks like you failed 1 tests of 1\*(R". That '# \&\s-1TODO\s0' tells Test::Harness \*(L"this is supposed to fail\*(R" and it treats a failure as a successful test. You can write tests even before you've fixed the underlying code. .PP If a \s-1TODO\s0 test passes, Test::Harness will report it \*(L"\s-1UNEXPECTEDLY SUCCEEDED\*(R". \s0 When that happens, remove the \s-1TODO\s0 block with \f(CW\*(C`local $TODO\*(C'\fR and turn it into a real test. .SS "Testing with taint mode." .IX Subsection "Testing with taint mode." Taint mode is a funny thing. It's the globalest of all global features. Once you turn it on, it affects \fIall\fR code in your program and \fIall\fR modules used (and all the modules they use). If a single piece of code isn't taint clean, the whole thing explodes. With that in mind, it's very important to ensure your module works under taint mode. .PP It's very simple to have your tests run under taint mode. Just throw a \f(CW\*(C`\-T\*(C'\fR into the \f(CW\*(C`#!\*(C'\fR line. Test::Harness will read the switches in \f(CW\*(C`#!\*(C'\fR and use them to run your tests. .PP .Vb 1 \& #!/usr/bin/perl \-Tw \& \& ...test normally here... .Ve .PP When you say \f(CW\*(C`make test\*(C'\fR it will run with taint mode on. .SH "FOOTNOTES" .IX Header "FOOTNOTES" .IP "1." 4 The first number doesn't really mean anything, but it has to be 1. It's the second number that's important. .IP "2." 4 For those following along at home, I'm using version 1.31. It has some bugs, which is good \*(-- we'll uncover them with our tests. .IP "3." 4 You can actually take this one step further and test the manual itself. Have a look at Test::Inline (formerly Pod::Tests). .IP "4." 4 Yes, there's a mistake in the test suite. What! Me, contrived? .IP "5." 4 We'll get to testing the contents of lists later. .IP "6." 4 But what happens if your test program dies halfway through?! Since we didn't say how many tests we're going to run, how can we know it failed? No problem, Test::More employs some magic to catch that death and turn the test into a failure, even if every test passed up to that point. .IP "7." 4 I cleaned it up a little. .IP "8." 4 Most Operating Systems record time as the number of seconds since a certain date. This date is the beginning of the epoch. Unix's starts at midnight January 1st, 1970 \s-1GMT.\s0 .IP "9." 4 MacOS's epoch is midnight January 1st, 1904. \s-1VMS\s0's is midnight, November 17th, 1858, but vmsperl emulates the Unix epoch so it's not a problem. .IP "10." 4 As long as the code inside the \s-1SKIP\s0 block at least compiles. Please don't ask how. No, it's not a filter. .IP "11." 4 Do \s-1NOT\s0 be tempted to use \s-1TODO\s0 tests as a way to avoid fixing simple bugs! .SH "AUTHORS" .IX Header "AUTHORS" Michael G Schwern and the perl-qa dancers! .SH "MAINTAINERS" .IX Header "MAINTAINERS" .IP "Chad Granum " 4 .IX Item "Chad Granum " .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2001 by Michael G Schwern . .PP This documentation is free; you can redistribute it and/or modify it under the same terms as Perl itself. .PP Irrespective of its distribution, all code examples in these files are hereby placed into the public domain. You are permitted and encouraged to use this code in your own programs for fun or for profit as you see fit. A simple comment in the code giving credit would be courteous but is not required. man3/Bundle::DBD::mysql.3pm000044400000010130147645265660011222 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Bundle::DBD::mysql 3" .TH Bundle::DBD::mysql 3 "2019-01-09" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Bundle::DBD::mysql .SH "DESCRIPTION" .IX Header "DESCRIPTION" This package only exists for legacy reasons. Please use the DBD::mysql package instead. man3/TAP::Parser::Result::Version.3pm000044400000011536147645265660013156 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "TAP::Parser::Result::Version 3" .TH TAP::Parser::Result::Version 3 "2018-03-19" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" TAP::Parser::Result::Version \- TAP syntax version token. .SH "VERSION" .IX Header "VERSION" Version 3.42 .SH "DESCRIPTION" .IX Header "DESCRIPTION" This is a subclass of TAP::Parser::Result. A token of this class will be returned if a version line is encountered. .PP .Vb 3 \& TAP version 13 \& ok 1 \& not ok 2 .Ve .PP The first version of \s-1TAP\s0 to include an explicit version number is 13. .SH "OVERRIDDEN METHODS" .IX Header "OVERRIDDEN METHODS" Mainly listed here to shut up the pitiful screams of the pod coverage tests. They keep me awake at night. .IP "\(bu" 4 \&\f(CW\*(C`as_string\*(C'\fR .IP "\(bu" 4 \&\f(CW\*(C`raw\*(C'\fR .SS "Instance Methods" .IX Subsection "Instance Methods" \fI\f(CI\*(C`version\*(C'\fI\fR .IX Subsection "version" .PP .Vb 3 \& if ( $result\->is_version ) { \& print $result\->version; \& } .Ve .PP This is merely a synonym for \f(CW\*(C`as_string\*(C'\fR. man3/Exporter.3pm000044400000055365147645265660007674 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Exporter 3" .TH Exporter 3 "2019-11-18" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Exporter \- Implements default import method for modules .SH "SYNOPSIS" .IX Header "SYNOPSIS" In module \fIYourModule.pm\fR: .PP .Vb 4 \& package YourModule; \& require Exporter; \& our @ISA = qw(Exporter); \& our @EXPORT_OK = qw(munge frobnicate); # symbols to export on request .Ve .PP or .PP .Vb 3 \& package YourModule; \& use Exporter \*(Aqimport\*(Aq; # gives you Exporter\*(Aqs import() method directly \& our @EXPORT_OK = qw(munge frobnicate); # symbols to export on request .Ve .PP In other files which wish to use \f(CW\*(C`YourModule\*(C'\fR: .PP .Vb 2 \& use YourModule qw(frobnicate); # import listed symbols \& frobnicate ($left, $right) # calls YourModule::frobnicate .Ve .PP Take a look at \*(L"Good Practices\*(R" for some variants you will like to use in modern Perl code. .SH "DESCRIPTION" .IX Header "DESCRIPTION" The Exporter module implements an \f(CW\*(C`import\*(C'\fR method which allows a module to export functions and variables to its users' namespaces. Many modules use Exporter rather than implementing their own \f(CW\*(C`import\*(C'\fR method because Exporter provides a highly flexible interface, with an implementation optimised for the common case. .PP Perl automatically calls the \f(CW\*(C`import\*(C'\fR method when processing a \&\f(CW\*(C`use\*(C'\fR statement for a module. Modules and \f(CW\*(C`use\*(C'\fR are documented in perlfunc and perlmod. Understanding the concept of modules and how the \f(CW\*(C`use\*(C'\fR statement operates is important to understanding the Exporter. .SS "How to Export" .IX Subsection "How to Export" The arrays \f(CW@EXPORT\fR and \f(CW@EXPORT_OK\fR in a module hold lists of symbols that are going to be exported into the users name space by default, or which they can request to be exported, respectively. The symbols can represent functions, scalars, arrays, hashes, or typeglobs. The symbols must be given by full name with the exception that the ampersand in front of a function is optional, e.g. .PP .Vb 2 \& our @EXPORT = qw(afunc $scalar @array); # afunc is a function \& our @EXPORT_OK = qw(&bfunc %hash *typeglob); # explicit prefix on &bfunc .Ve .PP If you are only exporting function names it is recommended to omit the ampersand, as the implementation is faster this way. .SS "Selecting What to Export" .IX Subsection "Selecting What to Export" Do \fBnot\fR export method names! .PP Do \fBnot\fR export anything else by default without a good reason! .PP Exports pollute the namespace of the module user. If you must export try to use \f(CW@EXPORT_OK\fR in preference to \f(CW@EXPORT\fR and avoid short or common symbol names to reduce the risk of name clashes. .PP Generally anything not exported is still accessible from outside the module using the \f(CW\*(C`YourModule::item_name\*(C'\fR (or \f(CW\*(C`$blessed_ref\->method\*(C'\fR) syntax. By convention you can use a leading underscore on names to informally indicate that they are 'internal' and not for public use. .PP (It is actually possible to get private functions by saying: .PP .Vb 3 \& my $subref = sub { ... }; \& $subref\->(@args); # Call it as a function \& $obj\->$subref(@args); # Use it as a method .Ve .PP However if you use them for methods it is up to you to figure out how to make inheritance work.) .PP As a general rule, if the module is trying to be object oriented then export nothing. If it's just a collection of functions then \&\f(CW@EXPORT_OK\fR anything but use \f(CW@EXPORT\fR with caution. For function and method names use barewords in preference to names prefixed with ampersands for the export lists. .PP Other module design guidelines can be found in perlmod. .SS "How to Import" .IX Subsection "How to Import" In other files which wish to use your module there are three basic ways for them to load your module and import its symbols: .ie n .IP """use YourModule;""" 4 .el .IP "\f(CWuse YourModule;\fR" 4 .IX Item "use YourModule;" This imports all the symbols from YourModule's \f(CW@EXPORT\fR into the namespace of the \f(CW\*(C`use\*(C'\fR statement. .ie n .IP """use YourModule ();""" 4 .el .IP "\f(CWuse YourModule ();\fR" 4 .IX Item "use YourModule ();" This causes perl to load your module but does not import any symbols. .ie n .IP """use YourModule qw(...);""" 4 .el .IP "\f(CWuse YourModule qw(...);\fR" 4 .IX Item "use YourModule qw(...);" This imports only the symbols listed by the caller into their namespace. All listed symbols must be in your \f(CW@EXPORT\fR or \f(CW@EXPORT_OK\fR, else an error occurs. The advanced export features of Exporter are accessed like this, but with list entries that are syntactically distinct from symbol names. .PP Unless you want to use its advanced features, this is probably all you need to know to use Exporter. .SH "Advanced Features" .IX Header "Advanced Features" .SS "Specialised Import Lists" .IX Subsection "Specialised Import Lists" If any of the entries in an import list begins with !, : or / then the list is treated as a series of specifications which either add to or delete from the list of names to import. They are processed left to right. Specifications are in the form: .PP .Vb 4 \& [!]name This name only \& [!]:DEFAULT All names in @EXPORT \& [!]:tag All names in $EXPORT_TAGS{tag} anonymous array \& [!]/pattern/ All names in @EXPORT and @EXPORT_OK which match .Ve .PP A leading ! indicates that matching names should be deleted from the list of names to import. If the first specification is a deletion it is treated as though preceded by :DEFAULT. If you just want to import extra names in addition to the default set you will still need to include :DEFAULT explicitly. .PP e.g., \fIModule.pm\fR defines: .PP .Vb 3 \& our @EXPORT = qw(A1 A2 A3 A4 A5); \& our @EXPORT_OK = qw(B1 B2 B3 B4 B5); \& our %EXPORT_TAGS = (T1 => [qw(A1 A2 B1 B2)], T2 => [qw(A1 A2 B3 B4)]); .Ve .PP Note that you cannot use tags in \f(CW@EXPORT\fR or \f(CW@EXPORT_OK\fR. .PP Names in \s-1EXPORT_TAGS\s0 must also appear in \f(CW@EXPORT\fR or \f(CW@EXPORT_OK\fR. .PP An application using Module can say something like: .PP .Vb 1 \& use Module qw(:DEFAULT :T2 !B3 A3); .Ve .PP Other examples include: .PP .Vb 2 \& use Socket qw(!/^[AP]F_/ !SOMAXCONN !SOL_SOCKET); \& use POSIX qw(:errno_h :termios_h !TCSADRAIN !/^EXIT/); .Ve .PP Remember that most patterns (using //) will need to be anchored with a leading ^, e.g., \f(CW\*(C`/^EXIT/\*(C'\fR rather than \f(CW\*(C`/EXIT/\*(C'\fR. .PP You can say \f(CW\*(C`BEGIN { $Exporter::Verbose=1 }\*(C'\fR to see how the specifications are being processed and what is actually being imported into modules. .SS "Exporting Without Using Exporter's import Method" .IX Subsection "Exporting Without Using Exporter's import Method" Exporter has a special method, 'export_to_level' which is used in situations where you can't directly call Exporter's import method. The export_to_level method looks like: .PP .Vb 3 \& MyPackage\->export_to_level( \& $where_to_export, $package, @what_to_export \& ); .Ve .PP where \f(CW$where_to_export\fR is an integer telling how far up the calling stack to export your symbols, and \f(CW@what_to_export\fR is an array telling what symbols *to* export (usually this is \f(CW@_\fR). The \f(CW$package\fR argument is currently unused. .PP For example, suppose that you have a module, A, which already has an import function: .PP .Vb 1 \& package A; \& \& our @ISA = qw(Exporter); \& our @EXPORT_OK = qw($b); \& \& sub import \& { \& $A::b = 1; # not a very useful import method \& } .Ve .PP and you want to Export symbol \f(CW$A::b\fR back to the module that called package A. Since Exporter relies on the import method to work, via inheritance, as it stands \fIExporter::import()\fR will never get called. Instead, say the following: .PP .Vb 3 \& package A; \& our @ISA = qw(Exporter); \& our @EXPORT_OK = qw($b); \& \& sub import \& { \& $A::b = 1; \& A\->export_to_level(1, @_); \& } .Ve .PP This will export the symbols one level 'above' the current package \- ie: to the program or module that used package A. .PP Note: Be careful not to modify \f(CW@_\fR at all before you call export_to_level \&\- or people using your package will get very unexplained results! .SS "Exporting Without Inheriting from Exporter" .IX Subsection "Exporting Without Inheriting from Exporter" By including Exporter in your \f(CW@ISA\fR you inherit an Exporter's \fIimport()\fR method but you also inherit several other helper methods which you probably don't want. To avoid this you can do: .PP .Vb 2 \& package YourModule; \& use Exporter qw(import); .Ve .PP which will export Exporter's own \fIimport()\fR method into YourModule. Everything will work as before but you won't need to include Exporter in \&\f(CW@YourModule::ISA\fR. .PP Note: This feature was introduced in version 5.57 of Exporter, released with perl 5.8.3. .SS "Module Version Checking" .IX Subsection "Module Version Checking" The Exporter module will convert an attempt to import a number from a module into a call to \f(CW\*(C`$module_name\->VERSION($value)\*(C'\fR. This can be used to validate that the version of the module being used is greater than or equal to the required version. .PP For historical reasons, Exporter supplies a \f(CW\*(C`require_version\*(C'\fR method that simply delegates to \f(CW\*(C`VERSION\*(C'\fR. Originally, before \f(CW\*(C`UNIVERSAL::VERSION\*(C'\fR existed, Exporter would call \f(CW\*(C`require_version\*(C'\fR. .PP Since the \f(CW\*(C`UNIVERSAL::VERSION\*(C'\fR method treats the \f(CW$VERSION\fR number as a simple numeric value it will regard version 1.10 as lower than 1.9. For this reason it is strongly recommended that you use numbers with at least two decimal places, e.g., 1.09. .SS "Managing Unknown Symbols" .IX Subsection "Managing Unknown Symbols" In some situations you may want to prevent certain symbols from being exported. Typically this applies to extensions which have functions or constants that may not exist on some systems. .PP The names of any symbols that cannot be exported should be listed in the \f(CW@EXPORT_FAIL\fR array. .PP If a module attempts to import any of these symbols the Exporter will give the module an opportunity to handle the situation before generating an error. The Exporter will call an export_fail method with a list of the failed symbols: .PP .Vb 1 \& @failed_symbols = $module_name\->export_fail(@failed_symbols); .Ve .PP If the \f(CW\*(C`export_fail\*(C'\fR method returns an empty list then no error is recorded and all the requested symbols are exported. If the returned list is not empty then an error is generated for each symbol and the export fails. The Exporter provides a default \f(CW\*(C`export_fail\*(C'\fR method which simply returns the list unchanged. .PP Uses for the \f(CW\*(C`export_fail\*(C'\fR method include giving better error messages for some symbols and performing lazy architectural checks (put more symbols into \f(CW@EXPORT_FAIL\fR by default and then take them out if someone actually tries to use them and an expensive check shows that they are usable on that platform). .SS "Tag Handling Utility Functions" .IX Subsection "Tag Handling Utility Functions" Since the symbols listed within \f(CW%EXPORT_TAGS\fR must also appear in either \&\f(CW@EXPORT\fR or \f(CW@EXPORT_OK\fR, two utility functions are provided which allow you to easily add tagged sets of symbols to \f(CW@EXPORT\fR or \f(CW@EXPORT_OK\fR: .PP .Vb 1 \& our %EXPORT_TAGS = (foo => [qw(aa bb cc)], bar => [qw(aa cc dd)]); \& \& Exporter::export_tags(\*(Aqfoo\*(Aq); # add aa, bb and cc to @EXPORT \& Exporter::export_ok_tags(\*(Aqbar\*(Aq); # add aa, cc and dd to @EXPORT_OK .Ve .PP Any names which are not tags are added to \f(CW@EXPORT\fR or \f(CW@EXPORT_OK\fR unchanged but will trigger a warning (with \f(CW\*(C`\-w\*(C'\fR) to avoid misspelt tags names being silently added to \f(CW@EXPORT\fR or \f(CW@EXPORT_OK\fR. Future versions may make this a fatal error. .SS "Generating Combined Tags" .IX Subsection "Generating Combined Tags" If several symbol categories exist in \f(CW%EXPORT_TAGS\fR, it's usually useful to create the utility \*(L":all\*(R" to simplify \*(L"use\*(R" statements. .PP The simplest way to do this is: .PP .Vb 1 \& our %EXPORT_TAGS = (foo => [qw(aa bb cc)], bar => [qw(aa cc dd)]); \& \& # add all the other ":class" tags to the ":all" class, \& # deleting duplicates \& { \& my %seen; \& \& push @{$EXPORT_TAGS{all}}, \& grep {!$seen{$_}++} @{$EXPORT_TAGS{$_}} foreach keys %EXPORT_TAGS; \& } .Ve .PP \&\fI\s-1CGI\s0.pm\fR creates an \*(L":all\*(R" tag which contains some (but not really all) of its categories. That could be done with one small change: .PP .Vb 4 \& # add some of the other ":class" tags to the ":all" class, \& # deleting duplicates \& { \& my %seen; \& \& push @{$EXPORT_TAGS{all}}, \& grep {!$seen{$_}++} @{$EXPORT_TAGS{$_}} \& foreach qw/html2 html3 netscape form cgi internal/; \& } .Ve .PP Note that the tag names in \f(CW%EXPORT_TAGS\fR don't have the leading ':'. .ie n .SS """AUTOLOAD""ed Constants" .el .SS "\f(CWAUTOLOAD\fPed Constants" .IX Subsection "AUTOLOADed Constants" Many modules make use of \f(CW\*(C`AUTOLOAD\*(C'\fRing for constant subroutines to avoid having to compile and waste memory on rarely used values (see perlsub for details on constant subroutines). Calls to such constant subroutines are not optimized away at compile time because they can't be checked at compile time for constancy. .PP Even if a prototype is available at compile time, the body of the subroutine is not (it hasn't been \f(CW\*(C`AUTOLOAD\*(C'\fRed yet). perl needs to examine both the \f(CW\*(C`()\*(C'\fR prototype and the body of a subroutine at compile time to detect that it can safely replace calls to that subroutine with the constant value. .PP A workaround for this is to call the constants once in a \f(CW\*(C`BEGIN\*(C'\fR block: .PP .Vb 1 \& package My ; \& \& use Socket ; \& \& foo( SO_LINGER ); ## SO_LINGER NOT optimized away; called at runtime \& BEGIN { SO_LINGER } \& foo( SO_LINGER ); ## SO_LINGER optimized away at compile time. .Ve .PP This forces the \f(CW\*(C`AUTOLOAD\*(C'\fR for \f(CW\*(C`SO_LINGER\*(C'\fR to take place before \&\s-1SO_LINGER\s0 is encountered later in \f(CW\*(C`My\*(C'\fR package. .PP If you are writing a package that \f(CW\*(C`AUTOLOAD\*(C'\fRs, consider forcing an \f(CW\*(C`AUTOLOAD\*(C'\fR for any constants explicitly imported by other packages or which are usually used when your package is \f(CW\*(C`use\*(C'\fRd. .SH "Good Practices" .IX Header "Good Practices" .ie n .SS "Declaring @EXPORT_OK and Friends" .el .SS "Declaring \f(CW@EXPORT_OK\fP and Friends" .IX Subsection "Declaring @EXPORT_OK and Friends" When using \f(CW\*(C`Exporter\*(C'\fR with the standard \f(CW\*(C`strict\*(C'\fR and \f(CW\*(C`warnings\*(C'\fR pragmas, the \f(CW\*(C`our\*(C'\fR keyword is needed to declare the package variables \f(CW@EXPORT_OK\fR, \f(CW@EXPORT\fR, \f(CW@ISA\fR, etc. .PP .Vb 2 \& our @ISA = qw(Exporter); \& our @EXPORT_OK = qw(munge frobnicate); .Ve .PP If backward compatibility for Perls \fBunder\fR 5.6 is important, one must write instead a \f(CW\*(C`use vars\*(C'\fR statement. .PP .Vb 3 \& use vars qw(@ISA @EXPORT_OK); \& @ISA = qw(Exporter); \& @EXPORT_OK = qw(munge frobnicate); .Ve .SS "Playing Safe" .IX Subsection "Playing Safe" There are some caveats with the use of runtime statements like \f(CW\*(C`require Exporter\*(C'\fR and the assignment to package variables, which can be very subtle for the unaware programmer. This may happen for instance with mutually recursive modules, which are affected by the time the relevant constructions are executed. .PP The ideal (but a bit ugly) way to never have to think about that is to use \f(CW\*(C`BEGIN\*(C'\fR blocks. So the first part of the \*(L"\s-1SYNOPSIS\*(R"\s0 code could be rewritten as: .PP .Vb 1 \& package YourModule; \& \& use strict; \& use warnings; \& \& our (@ISA, @EXPORT_OK); \& BEGIN { \& require Exporter; \& @ISA = qw(Exporter); \& @EXPORT_OK = qw(munge frobnicate); # symbols to export on request \& } .Ve .PP The \f(CW\*(C`BEGIN\*(C'\fR will assure that the loading of \fIExporter.pm\fR and the assignments to \f(CW@ISA\fR and \f(CW@EXPORT_OK\fR happen immediately, leaving no room for something to get awry or just plain wrong. .PP With respect to loading \f(CW\*(C`Exporter\*(C'\fR and inheriting, there are alternatives with the use of modules like \f(CW\*(C`base\*(C'\fR and \f(CW\*(C`parent\*(C'\fR. .PP .Vb 3 \& use base qw(Exporter); \& # or \& use parent qw(Exporter); .Ve .PP Any of these statements are nice replacements for \&\f(CW\*(C`BEGIN { require Exporter; @ISA = qw(Exporter); }\*(C'\fR with the same compile-time effect. The basic difference is that \f(CW\*(C`base\*(C'\fR code interacts with declared \f(CW\*(C`fields\*(C'\fR while \f(CW\*(C`parent\*(C'\fR is a streamlined version of the older \&\f(CW\*(C`base\*(C'\fR code to just establish the IS-A relationship. .PP For more details, see the documentation and code of base and parent. .PP Another thorough remedy to that runtime vs. compile-time trap is to use Exporter::Easy, which is a wrapper of Exporter that allows all boilerplate code at a single gulp in the use statement. .PP .Vb 5 \& use Exporter::Easy ( \& OK => [ qw(munge frobnicate) ], \& ); \& # @ISA setup is automatic \& # all assignments happen at compile time .Ve .SS "What Not to Export" .IX Subsection "What Not to Export" You have been warned already in \*(L"Selecting What to Export\*(R" to not export: .IP "\(bu" 4 method names (because you don't need to and that's likely to not do what you want), .IP "\(bu" 4 anything by default (because you don't want to surprise your users... badly) .IP "\(bu" 4 anything you don't need to (because less is more) .PP There's one more item to add to this list. Do \fBnot\fR export variable names. Just because \f(CW\*(C`Exporter\*(C'\fR lets you do that, it does not mean you should. .PP .Vb 1 \& @EXPORT_OK = qw($svar @avar %hvar); # DON\*(AqT! .Ve .PP Exporting variables is not a good idea. They can change under the hood, provoking horrible effects at-a-distance that are too hard to track and to fix. Trust me: they are not worth it. .PP To provide the capability to set/get class-wide settings, it is best instead to provide accessors as subroutines or class methods instead. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\f(CW\*(C`Exporter\*(C'\fR is definitely not the only module with symbol exporter capabilities. At \s-1CPAN,\s0 you may find a bunch of them. Some are lighter. Some provide improved APIs and features. Pick the one that fits your needs. The following is a sample list of such modules. .PP .Vb 6 \& Exporter::Easy \& Exporter::Lite \& Exporter::Renaming \& Exporter::Tidy \& Sub::Exporter / Sub::Installer \& Perl6::Export / Perl6::Export::Attrs .Ve .SH "LICENSE" .IX Header "LICENSE" This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself. man3/URI::ldap.3pm000044400000016565147645265660007547 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "URI::ldap 3" .TH URI::ldap 3 "2019-01-09" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" URI::ldap \- LDAP Uniform Resource Locators .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use URI; \& \& $uri = URI\->new("ldap:$uri_string"); \& $dn = $uri\->dn; \& $filter = $uri\->filter; \& @attr = $uri\->attributes; \& $scope = $uri\->scope; \& %extn = $uri\->extensions; \& \& $uri = URI\->new("ldap:"); # start empty \& $uri\->host("ldap.itd.umich.edu"); \& $uri\->dn("o=University of Michigan,c=US"); \& $uri\->attributes(qw(postalAddress)); \& $uri\->scope(\*(Aqsub\*(Aq); \& $uri\->filter(\*(Aq(cn=Babs Jensen)\*(Aq); \& print $uri\->as_string,"\en"; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\f(CW\*(C`URI::ldap\*(C'\fR provides an interface to parse an \s-1LDAP URI\s0 into its constituent parts and also to build a \s-1URI\s0 as described in \&\s-1RFC 2255.\s0 .SH "METHODS" .IX Header "METHODS" \&\f(CW\*(C`URI::ldap\*(C'\fR supports all the generic and server methods defined by \&\s-1URI\s0, plus the following. .PP Each of the following methods can be used to set or get the value in the \s-1URI.\s0 The values are passed in unescaped form. None of these return undefined values, but elements without a default can be empty. If arguments are given, then a new value is set for the given part of the \s-1URI.\s0 .ie n .IP "$uri\->dn( [$new_dn] )" 4 .el .IP "\f(CW$uri\fR\->dn( [$new_dn] )" 4 .IX Item "$uri->dn( [$new_dn] )" Sets or gets the \fIDistinguished Name\fR part of the \s-1URI. \s0 The \s-1DN\s0 identifies the base object of the \s-1LDAP\s0 search. .ie n .IP "$uri\->attributes( [@new_attrs] )" 4 .el .IP "\f(CW$uri\fR\->attributes( [@new_attrs] )" 4 .IX Item "$uri->attributes( [@new_attrs] )" Sets or gets the list of attribute names which are returned by the search. .ie n .IP "$uri\->scope( [$new_scope] )" 4 .el .IP "\f(CW$uri\fR\->scope( [$new_scope] )" 4 .IX Item "$uri->scope( [$new_scope] )" Sets or gets the scope to be used by the search. The value can be one of \&\f(CW"base"\fR, \f(CW"one"\fR or \f(CW"sub"\fR. If none is given in the \s-1URI\s0 then the return value defaults to \f(CW"base"\fR. .ie n .IP "$uri\->_scope( [$new_scope] )" 4 .el .IP "\f(CW$uri\fR\->_scope( [$new_scope] )" 4 .IX Item "$uri->_scope( [$new_scope] )" Same as \fIscope()\fR, but does not default to anything. .ie n .IP "$uri\->filter( [$new_filter] )" 4 .el .IP "\f(CW$uri\fR\->filter( [$new_filter] )" 4 .IX Item "$uri->filter( [$new_filter] )" Sets or gets the filter to be used by the search. If none is given in the \s-1URI\s0 then the return value defaults to \f(CW"(objectClass=*)"\fR. .ie n .IP "$uri\->_filter( [$new_filter] )" 4 .el .IP "\f(CW$uri\fR\->_filter( [$new_filter] )" 4 .IX Item "$uri->_filter( [$new_filter] )" Same as \fIfilter()\fR, but does not default to anything. .ie n .IP "$uri\->extensions( [$etype => $evalue,...] )" 4 .el .IP "\f(CW$uri\fR\->extensions( [$etype => \f(CW$evalue\fR,...] )" 4 .IX Item "$uri->extensions( [$etype => $evalue,...] )" Sets or gets the extensions used for the search. The list passed should be in the form etype1 => evalue1, etype2 => evalue2,... This is also the form of list that is returned. .SH "SEE ALSO" .IX Header "SEE ALSO" .SH "AUTHOR" .IX Header "AUTHOR" Graham Barr <\fIgbarr@pobox.com\fR> .PP Slightly modified by Gisle Aas to fit into the \s-1URI\s0 distribution. .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 1998 Graham Barr. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. man3/Test::Harness.3pm000044400000031040147645265660010473 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test::Harness 3" .TH Test::Harness 3 "2018-03-19" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test::Harness \- Run Perl standard test scripts with statistics .SH "VERSION" .IX Header "VERSION" Version 3.42 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use Test::Harness; \& \& runtests(@test_files); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Although, for historical reasons, the Test::Harness distribution takes its name from this module it now exists only to provide TAP::Harness with an interface that is somewhat backwards compatible with Test::Harness 2.xx. If you're writing new code consider using TAP::Harness directly instead. .PP Emulation is provided for \f(CW\*(C`runtests\*(C'\fR and \f(CW\*(C`execute_tests\*(C'\fR but the pluggable 'Straps' interface that previous versions of Test::Harness supported is not reproduced here. Straps is now available as a stand alone module: Test::Harness::Straps. .PP See TAP::Parser, TAP::Harness for the main documentation for this distribution. .SH "FUNCTIONS" .IX Header "FUNCTIONS" The following functions are available. .ie n .SS "runtests( @test_files )" .el .SS "runtests( \f(CW@test_files\fP )" .IX Subsection "runtests( @test_files )" This runs all the given \fI\f(CI@test_files\fI\fR and divines whether they passed or failed based on their output to \s-1STDOUT \s0(details above). It prints out each individual test which failed along with a summary report and a how long it all took. .PP It returns true if everything was ok. Otherwise it will \f(CW\*(C`die()\*(C'\fR with one of the messages in the \s-1DIAGNOSTICS\s0 section. .SS "execute_tests( tests => \e@test_files, out => \e*FH )" .IX Subsection "execute_tests( tests => @test_files, out => *FH )" Runs all the given \f(CW@test_files\fR (just like \f(CW\*(C`runtests()\*(C'\fR) but doesn't generate the final report. During testing, progress information will be written to the currently selected output filehandle (usually \f(CW\*(C`STDOUT\*(C'\fR), or to the filehandle given by the \&\f(CW\*(C`out\*(C'\fR parameter. The \fIout\fR is optional. .PP Returns a list of two values, \f(CW$total\fR and \f(CW$failed\fR, describing the results. \f(CW$total\fR is a hash ref summary of all the tests run. Its keys and values are this: .PP .Vb 5 \& bonus Number of individual todo tests unexpectedly passed \& max Number of individual tests ran \& ok Number of individual tests passed \& sub_skipped Number of individual tests skipped \& todo Number of individual todo tests \& \& files Number of test files ran \& good Number of test files passed \& bad Number of test files failed \& tests Number of test files originally given \& skipped Number of test files skipped .Ve .PP If \f(CW\*(C`$total\->{bad} == 0\*(C'\fR and \f(CW\*(C`$total\->{max} > 0\*(C'\fR, you've got a successful test. .PP \&\f(CW$failed\fR is a hash ref of all the test scripts that failed. Each key is the name of a test script, each value is another hash representing how that script failed. Its keys are these: .PP .Vb 6 \& name Name of the test which failed \& estat Script\*(Aqs exit value \& wstat Script\*(Aqs wait status \& max Number of individual tests \& failed Number which failed \& canon List of tests which failed (as string). .Ve .PP \&\f(CW$failed\fR should be empty if everything passed. .SH "EXPORT" .IX Header "EXPORT" \&\f(CW&runtests\fR is exported by \f(CW\*(C`Test::Harness\*(C'\fR by default. .PP \&\f(CW&execute_tests\fR, \f(CW$verbose\fR, \f(CW$switches\fR and \f(CW$debug\fR are exported upon request. .SH "ENVIRONMENT VARIABLES THAT TAP::HARNESS::COMPATIBLE SETS" .IX Header "ENVIRONMENT VARIABLES THAT TAP::HARNESS::COMPATIBLE SETS" \&\f(CW\*(C`Test::Harness\*(C'\fR sets these before executing the individual tests. .ie n .IP """HARNESS_ACTIVE""" 4 .el .IP "\f(CWHARNESS_ACTIVE\fR" 4 .IX Item "HARNESS_ACTIVE" This is set to a true value. It allows the tests to determine if they are being executed through the harness or by any other means. .ie n .IP """HARNESS_VERSION""" 4 .el .IP "\f(CWHARNESS_VERSION\fR" 4 .IX Item "HARNESS_VERSION" This is the version of \f(CW\*(C`Test::Harness\*(C'\fR. .SH "ENVIRONMENT VARIABLES THAT AFFECT TEST::HARNESS" .IX Header "ENVIRONMENT VARIABLES THAT AFFECT TEST::HARNESS" .ie n .IP """HARNESS_PERL_SWITCHES""" 4 .el .IP "\f(CWHARNESS_PERL_SWITCHES\fR" 4 .IX Item "HARNESS_PERL_SWITCHES" Setting this adds perl command line switches to each test file run. .Sp For example, \f(CW\*(C`HARNESS_PERL_SWITCHES=\-T\*(C'\fR will turn on taint mode. \&\f(CW\*(C`HARNESS_PERL_SWITCHES=\-MDevel::Cover\*(C'\fR will run \f(CW\*(C`Devel::Cover\*(C'\fR for each test. .Sp \&\f(CW\*(C`\-w\*(C'\fR is always set. You can turn this off in the test with \f(CW\*(C`BEGIN { $^W = 0 }\*(C'\fR. .ie n .IP """HARNESS_TIMER""" 4 .el .IP "\f(CWHARNESS_TIMER\fR" 4 .IX Item "HARNESS_TIMER" Setting this to true will make the harness display the number of milliseconds each test took. You can also use \fIprove\fR's \f(CW\*(C`\-\-timer\*(C'\fR switch. .ie n .IP """HARNESS_VERBOSE""" 4 .el .IP "\f(CWHARNESS_VERBOSE\fR" 4 .IX Item "HARNESS_VERBOSE" If true, \f(CW\*(C`Test::Harness\*(C'\fR will output the verbose results of running its tests. Setting \f(CW$Test::Harness::verbose\fR will override this, or you can use the \f(CW\*(C`\-v\*(C'\fR switch in the \fIprove\fR utility. .ie n .IP """HARNESS_OPTIONS""" 4 .el .IP "\f(CWHARNESS_OPTIONS\fR" 4 .IX Item "HARNESS_OPTIONS" Provide additional options to the harness. Currently supported options are: .RS 4 .ie n .IP """j""" 4 .el .IP "\f(CWj\fR" 4 .IX Item "j" Run (default 9) parallel jobs. .ie n .IP """c""" 4 .el .IP "\f(CWc\fR" 4 .IX Item "c" Try to color output. See \*(L"new\*(R" in TAP::Formatter::Base. .ie n .IP """a""" 4 .el .IP "\f(CWa\fR" 4 .IX Item "a" Will use TAP::Harness::Archive as the harness class, and save the \s-1TAP\s0 to \&\f(CW\*(C`file.tgz\*(C'\fR .ie n .IP """fPackage\-With\-Dashes""" 4 .el .IP "\f(CWfPackage\-With\-Dashes\fR" 4 .IX Item "fPackage-With-Dashes" Set the formatter_class of the harness being run. Since the \f(CW\*(C`HARNESS_OPTIONS\*(C'\fR is seperated by \f(CW\*(C`:\*(C'\fR, we use \f(CW\*(C`\-\*(C'\fR instead. .RE .RS 4 .Sp Multiple options may be separated by colons: .Sp .Vb 1 \& HARNESS_OPTIONS=j9:c make test .Ve .RE .ie n .IP """HARNESS_SUBCLASS""" 4 .el .IP "\f(CWHARNESS_SUBCLASS\fR" 4 .IX Item "HARNESS_SUBCLASS" Specifies a TAP::Harness subclass to be used in place of TAP::Harness. .ie n .IP """HARNESS_SUMMARY_COLOR_SUCCESS""" 4 .el .IP "\f(CWHARNESS_SUMMARY_COLOR_SUCCESS\fR" 4 .IX Item "HARNESS_SUMMARY_COLOR_SUCCESS" Determines the Term::ANSIColor for the summary in case it is successful. This color defaults to \f(CW\*(Aqgreen\*(Aq\fR. .ie n .IP """HARNESS_SUMMARY_COLOR_FAIL""" 4 .el .IP "\f(CWHARNESS_SUMMARY_COLOR_FAIL\fR" 4 .IX Item "HARNESS_SUMMARY_COLOR_FAIL" Determines the Term::ANSIColor for the failure in case it is successful. This color defaults to \f(CW\*(Aqred\*(Aq\fR. .SH "Taint Mode" .IX Header "Taint Mode" Normally when a Perl program is run in taint mode the contents of the \&\f(CW\*(C`PERL5LIB\*(C'\fR environment variable do not appear in \f(CW@INC\fR. .PP Because \f(CW\*(C`PERL5LIB\*(C'\fR is often used during testing to add build directories to \f(CW@INC\fR \f(CW\*(C`Test::Harness\*(C'\fR passes the names of any directories found in \f(CW\*(C`PERL5LIB\*(C'\fR as \-I switches. The net effect of this is that \f(CW\*(C`PERL5LIB\*(C'\fR is honoured even in taint mode. .SH "SEE ALSO" .IX Header "SEE ALSO" TAP::Harness .SH "BUGS" .IX Header "BUGS" Please report any bugs or feature requests to \&\f(CW\*(C`bug\-test\-harness at rt.cpan.org\*(C'\fR, or through the web interface at . I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. .SH "AUTHORS" .IX Header "AUTHORS" Andy Armstrong \f(CW\*(C`\*(C'\fR .PP Test::Harness 2.64 (maintained by Andy Lester and on which this module is based) has this attribution: .PP .Vb 5 \& Either Tim Bunce or Andreas Koenig, we don\*(Aqt know. What we know for \& sure is, that it was inspired by Larry Wall\*(Aqs F script that came \& with perl distributions for ages. Numerous anonymous contributors \& exist. Andreas Koenig held the torch for many years, and then \& Michael G Schwern. .Ve .SH "LICENCE AND COPYRIGHT" .IX Header "LICENCE AND COPYRIGHT" Copyright (c) 2007\-2011, Andy Armstrong \f(CW\*(C`\*(C'\fR. All rights reserved. .PP This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic. man3/ExtUtils::Helpers::Windows.3pm000044400000010716147645265660013102 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "ExtUtils::Helpers::Windows 3" .TH ExtUtils::Helpers::Windows 3 "2016-09-09" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" ExtUtils::Helpers::Windows \- Windows specific helper bits .SH "VERSION" .IX Header "VERSION" version 0.026 .SH "AUTHORS" .IX Header "AUTHORS" .IP "\(bu" 4 Ken Williams .IP "\(bu" 4 Leon Timmermans .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is copyright (c) 2004 by Ken Williams, Leon Timmermans. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. man3/NetAddr::IP::InetBase.3pm000044400000035235147645265660011613 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "NetAddr::IP::InetBase 3" .TH NetAddr::IP::InetBase 3 "2012-10-02" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" NetAddr::IP::InetBase \-\- IPv4 and IPV6 utilities .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 10 \& use NetAddr::IP::Base qw( \& :upper \& inet_aton \& inet_ntoa \& ipv6_aton \& ipv6_ntoa \& ipv6_n2x \& ipv6_n2d \& inet_any2n \& inet_n2dx \& inet_n2ad \& inet_pton \& inet_ntop \& packzeros \& isIPv4 \& isNewIPv4 \& isAnyIPv4 \& AF_INET \& AF_INET6 \& fake_AF_INET6 \& fillIPv4 \& ); \& \& use NetAddr::IP::Util qw(:all :inet :ipv4 :ipv6 :math) \& \& :ipv4 => inet_aton, inet_ntoa, fillIPv4 \& \& :ipv6 => ipv6_aton, ipv6_ntoa,ipv6_n2x, ipv6_n2d, \& inet_any2n, inet_n2dx, inet_n2ad \& inet_pton, inet_ntop, packzeros \& \& $dotquad = inet_ntoa($netaddr); \& $netaddr = inet_aton($dotquad); \& $ipv6naddr = ipv6_aton($ipv6_text); \& $ipv6_text = ipv6_ntoa($ipv6naddr); \& $hex_text = ipv6_n2x($ipv6naddr); \& $dec_text = ipv6_n2d($ipv6naddr); \& $ipv6naddr = inet_any2n($dotquad or $ipv6_text); \& $dotquad or $hex_text = inet_n2dx($ipv6naddr); \& $dotquad or $dec_text = inet_n2ad($ipv6naddr); \& $netaddr = inet_pton($AF_family,$text_addr); \& $text_addr = inet_ntop($AF_family,$netaddr); \& $hex_text = packzeros($hex_text); \& $rv = isIPv4($bits128); \& $rv = isNewIPv4($bits128); \& $rv = isAnyIPv4($bits128); \& $constant = AF_INET(); \& $constant = AF_INET6(); \& $trueif = fake_AF_INET6(); \& $ip_filled = fillIPv4($shortIP); \& \& NetAddr::IP::InetBase::lower(); \& NetAddr::IP::InetBase::upper(); .Ve .SH "INSTALLATION" .IX Header "INSTALLATION" Un-tar the distribution in an appropriate directory and type: .PP .Vb 4 \& perl Makefile.PL \& make \& make test \& make install .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBNetAddr::IP::InetBase\fR provides a suite network of conversion functions written in pure Perl for converting both IPv4 and IPv6 addresses to and from network address format and text format. .PP The IPv6 functions support all rfc1884 formats. .PP .Vb 5 \& i.e. x:x:x:x:x:x:x:x:x \& x:x:x:x:x:x:x:d.d.d.d \& ::x:x:x \& ::x:d.d.d.d \& and so on... .Ve .IP "\(bu" 4 \&\f(CW$dotquad\fR = inet_ntoa($netaddr); .Sp Convert a packed IPv4 network address to a dot-quad \s-1IP\s0 address. .Sp .Vb 2 \& input: packed network address \& returns: IP address i.e. 10.4.12.123 .Ve .IP "\(bu" 4 \&\f(CW$netaddr\fR = inet_aton($dotquad); .Sp Convert a dot-quad \s-1IP\s0 address into an IPv4 packed network address. .Sp .Vb 2 \& input: IP address i.e. 192.5.16.32 \& returns: packed network address .Ve .IP "\(bu" 4 \&\f(CW$ipv6addr\fR = ipv6_aton($ipv6_text); .Sp Takes an IPv6 address of the form described in rfc1884 and returns a 128 bit binary \s-1RDATA\s0 string. .Sp .Vb 2 \& input: ipv6 text \& returns: 128 bit RDATA string .Ve .IP "\(bu" 4 \&\f(CW$ipv6text\fR = ipv6_ntoa($ipv6naddr); .Sp Convert a 128 bit binary IPv6 address to compressed rfc 1884 text representation. .Sp .Vb 2 \& input: 128 bit RDATA string \& returns: ipv6 text .Ve .IP "\(bu" 4 \&\f(CW$hex_text\fR = ipv6_n2x($ipv6addr); .Sp Takes an IPv6 \s-1RDATA\s0 string and returns an 8 segment IPv6 hex address .Sp .Vb 2 \& input: 128 bit RDATA string \& returns: x:x:x:x:x:x:x:x \& \& Note: this function does NOT compress adjacent \& strings of 0:0:0:0 into the :: format .Ve .IP "\(bu" 4 \&\f(CW$dec_text\fR = ipv6_n2d($ipv6addr); .Sp Takes an IPv6 \s-1RDATA\s0 string and returns a mixed hex \- decimal IPv6 address with the 6 uppermost chunks in hex and the lower 32 bits in dot-quad representation. .Sp .Vb 2 \& input: 128 bit RDATA string \& returns: x:x:x:x:x:x:d.d.d.d \& \& Note: this function does NOT compress adjacent \& strings of 0:0:0:0 into the :: format .Ve .IP "\(bu" 4 \&\f(CW$ipv6naddr\fR = inet_any2n($dotquad or \f(CW$ipv6_text\fR); .Sp This function converts a text IPv4 or IPv6 address in text format in any standard notation into a 128 bit IPv6 string address. It prefixes any dot-quad address (if found) with '::' and passes it to \fBipv6_aton\fR. .Sp .Vb 2 \& input: dot\-quad or rfc1844 address \& returns: 128 bit IPv6 string .Ve .IP "\(bu" 4 \&\f(CW$dotquad\fR or \f(CW$hex_text\fR = inet_n2dx($ipv6naddr); .Sp This function \fBdoes the right thing\fR and returns the text for either a dot-quad IPv4 or a hex notation IPv6 address. .Sp .Vb 3 \& input: 128 bit IPv6 string \& returns: ddd.ddd.ddd.ddd \& or x:x:x:x:x:x:x:x \& \& Note: this function does NOT compress adjacent \& strings of 0:0:0:0 into the :: format .Ve .IP "\(bu" 4 \&\f(CW$dotquad\fR or \f(CW$dec_text\fR = inet_n2ad($ipv6naddr); .Sp This function \fBdoes the right thing\fR and returns the text for either a dot-quad IPv4 or a hex::decimal notation IPv6 address. .Sp .Vb 3 \& input: 128 bit IPv6 string \& returns: ddd.ddd.ddd.ddd \& or x:x:x:x:x:x:ddd.ddd.ddd.dd \& \& Note: this function does NOT compress adjacent \& strings of 0:0:0:0 into the :: format .Ve .IP "\(bu" 4 \&\f(CW$netaddr\fR = inet_pton($AF_family,$text_addr); .Sp This function takes an \s-1IP\s0 address in IPv4 or IPv6 text format and converts it into binary format. The type of \s-1IP\s0 address conversion is controlled by the \s-1FAMILY\s0 argument. .Sp \&\s-1NOTE:\s0 inet_pton, inet_ntop and \s-1AF_INET6\s0 come from the Socket6 library if it is present on this host. .IP "\(bu" 4 \&\f(CW$text_addr\fR = inet_ntop($AF_family,$netaddr); .Sp This function takes and \s-1IP\s0 address in binary format and converts it into text format. The type of \s-1IP\s0 address conversion is controlled by the \s-1FAMILY \s0 argument. .Sp \&\s-1NOTE:\s0 inet_ntop \s-1ALWAYS\s0 returns lowercase characters. .Sp \&\s-1NOTE:\s0 inet_pton, inet_ntop and \s-1AF_INET6\s0 come from the Socket6 library if it is present on this host. .IP "\(bu" 4 \&\f(CW$hex_text\fR = packzeros($hex_text); .Sp This function optimizes and rfc 1884 IPv6 hex address to reduce the number of long strings of zero bits as specified in rfc 1884, 2.2 (2) by substituting \&\fB::\fR for the first occurence of the longest string of zeros in the address. .IP "\(bu" 4 \&\f(CW$ipv6naddr\fR = ipv4to6($netaddr); .Sp Convert an ipv4 network address into an ipv6 network address. .Sp .Vb 2 \& input: 32 bit network address \& returns: 128 bit network address .Ve .IP "\(bu" 4 \&\f(CW$rv\fR = isIPv4($bits128); .Sp This function returns true if there are no on bits present in the IPv6 portion of the 128 bit string and false otherwise. .Sp .Vb 1 \& i.e. the address must be of the form \- ::d.d.d.d .Ve .Sp Note: this is an old and deprecated ipV4 compatible ipV6 address .IP "\(bu" 4 \&\f(CW$rv\fR = isNewIPv4($bits128); .Sp This function return true if the IPv6 128 bit string is of the form .Sp .Vb 1 \& ::ffff:d.d.d.d .Ve .IP "\(bu" 4 \&\f(CW$rv\fR = isAnyIPv4($bits128); .Sp This function return true if the IPv6 bit string is of the form .Sp .Vb 1 \& ::d.d.d.d or ::ffff:d.d.d.d .Ve .IP "\(bu" 4 \&\fINetAddr::IP::InetBase::lower()\fR; .Sp Return IPv6 strings in lowercase. This is the default. .IP "\(bu" 4 \&\fINetAddr::IP::InetBase::upper()\fR; .Sp Return IPv6 strings in uppercase. .Sp The default may be set to uppercase when the module is loaded by invoking the \s-1TAG\s0 :upper. i.e. .Sp .Vb 1 \& use NetAddr::IP::InetBase qw( :upper ); .Ve .IP "\(bu" 4 \&\f(CW$constant\fR = \s-1AF_INET\s0; .Sp This function returns the system value for \s-1AF_INET. \s0 .IP "\(bu" 4 \&\f(CW$constant\fR = \s-1AF_INET6\s0; .Sp \&\s-1AF_INET6\s0 is sometimes present in the Socket library and always present in the Socket6 library. When the Socket library does not contain \s-1AF_INET6\s0 and when Socket6 is not present, a place holder value is \f(CW\*(C`guessed\*(C'\fR based on the underlying host operating system. See \fBfake_AF_INET6\fR below. .Sp \&\s-1NOTE:\s0 inet_pton, inet_ntop and \s-1AF_INET6\s0 come from the Socket6 library if it is present on this host. .IP "\(bu" 4 \&\f(CW$trueif\fR = fake_AF_INET6; .Sp This function return \s-1FALSE\s0 if \s-1AF_INET6\s0 is provided by Socket or Socket6. Otherwise, it returns the best guess value based on name of the host operating system. .IP "\(bu" 4 \&\f(CW$ip_filled\fR = fillIPv4($shortIP); .Sp This function converts IPv4 addresses of the form 127.1 to the long form 127.0.0.1 .Sp If the function is passed an argument that does not match the form of an \s-1IP\s0 address, the original argument is returned. i.e. pass it a hostname or a short \s-1IP\s0 and it will return a hostname or a filled \s-1IP.\s0 .SH "EXPORT_OK" .IX Header "EXPORT_OK" .Vb 10 \& :upper \& inet_aton \& inet_ntoa \& ipv6_aton \& ipv6_ntoa \& ipv6_n2x \& ipv6_n2d \& inet_any2n \& inet_n2dx \& inet_n2ad \& inet_pton \& inet_ntop \& packzeros \& isIPv4 \& isNewIPv4 \& isAnyIPv4 \& AF_INET \& AF_INET6 \& fake_AF_INET6 \& fillIPv4 .Ve .ie n .SH "%EXPORT_TAGS" .el .SH "\f(CW%EXPORT_TAGS\fP" .IX Header "%EXPORT_TAGS" .Vb 4 \& :all \& :ipv4 \& :ipv6 \& :upper .Ve .SH "AUTHOR" .IX Header "AUTHOR" Michael Robinton .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2003 \- 2012, Michael Robinton .PP All rights reserved. .PP This program is free software; you can redistribute it and/or modify it under the terms of either: .PP .Vb 3 \& a) the GNU General Public License as published by the Free \& Software Foundation; either version 2, or (at your option) any \& later version, or \& \& b) the "Artistic License" which comes with this distribution. .Ve .PP This program is distributed in the hope that it will be useful, but \s-1WITHOUT ANY WARRANTY\s0; without even the implied warranty of \&\s-1MERCHANTABILITY\s0 or \s-1FITNESS FOR A PARTICULAR PURPOSE. \s0 See either the \s-1GNU\s0 General Public License or the Artistic License for more details. .PP You should have received a copy of the Artistic License with this distribution, in the file named \*(L"Artistic\*(R". If not, I'll be glad to provide one. .PP You should also have received a copy of the \s-1GNU\s0 General Public License along with this program in the file named \*(L"Copying\*(R". If not, write to the .PP .Vb 3 \& Free Software Foundation, Inc., \& 51 Franklin Street, Fifth Floor \& Boston, MA 02110\-1301 USA .Ve .PP or visit their web page on the internet at: .PP .Vb 1 \& http://www.gnu.org/copyleft/gpl.html. .Ve .SH "AUTHOR" .IX Header "AUTHOR" Michael Robinton .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fINetAddr::IP\fR\|(3), \fINetAddr::IP::Lite\fR\|(3), \fINetAddr::IP::Util\fR\|(3) man3/IPC::Cmd.3pm000044400000061654147645265660007305 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "IPC::Cmd 3" .TH IPC::Cmd 3 "2019-07-13" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" IPC::Cmd \- finding and running system commands made easy .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use IPC::Cmd qw[can_run run run_forked]; \& \& my $full_path = can_run(\*(Aqwget\*(Aq) or warn \*(Aqwget is not installed!\*(Aq; \& \& ### commands can be arrayrefs or strings ### \& my $cmd = "$full_path \-b theregister.co.uk"; \& my $cmd = [$full_path, \*(Aq\-b\*(Aq, \*(Aqtheregister.co.uk\*(Aq]; \& \& ### in scalar context ### \& my $buffer; \& if( scalar run( command => $cmd, \& verbose => 0, \& buffer => \e$buffer, \& timeout => 20 ) \& ) { \& print "fetched webpage successfully: $buffer\en"; \& } \& \& \& ### in list context ### \& my( $success, $error_message, $full_buf, $stdout_buf, $stderr_buf ) = \& run( command => $cmd, verbose => 0 ); \& \& if( $success ) { \& print "this is what the command printed:\en"; \& print join "", @$full_buf; \& } \& \& ### run_forked example ### \& my $result = run_forked("$full_path \-q \-O \- theregister.co.uk", {\*(Aqtimeout\*(Aq => 20}); \& if ($result\->{\*(Aqexit_code\*(Aq} eq 0 && !$result\->{\*(Aqtimeout\*(Aq}) { \& print "this is what wget returned:\en"; \& print $result\->{\*(Aqstdout\*(Aq}; \& } \& \& ### check for features \& print "IPC::Open3 available: " . IPC::Cmd\->can_use_ipc_open3; \& print "IPC::Run available: " . IPC::Cmd\->can_use_ipc_run; \& print "Can capture buffer: " . IPC::Cmd\->can_capture_buffer; \& \& ### don\*(Aqt have IPC::Cmd be verbose, ie don\*(Aqt print to stdout or \& ### stderr when running commands \-\- default is \*(Aq0\*(Aq \& $IPC::Cmd::VERBOSE = 0; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" IPC::Cmd allows you to run commands platform independently, interactively if desired, but have them still work. .PP The \f(CW\*(C`can_run\*(C'\fR function can tell you if a certain binary is installed and if so where, whereas the \f(CW\*(C`run\*(C'\fR function can actually execute any of the commands you give it and give you a clear return value, as well as adhere to your verbosity settings. .SH "CLASS METHODS" .IX Header "CLASS METHODS" .ie n .SS "$ipc_run_version = IPC::Cmd\->can_use_ipc_run( [\s-1VERBOSE\s0] )" .el .SS "\f(CW$ipc_run_version\fP = IPC::Cmd\->can_use_ipc_run( [\s-1VERBOSE\s0] )" .IX Subsection "$ipc_run_version = IPC::Cmd->can_use_ipc_run( [VERBOSE] )" Utility function that tells you if \f(CW\*(C`IPC::Run\*(C'\fR is available. If the \f(CW\*(C`verbose\*(C'\fR flag is passed, it will print diagnostic messages if IPC::Run can not be found or loaded. .ie n .SS "$ipc_open3_version = IPC::Cmd\->can_use_ipc_open3( [\s-1VERBOSE\s0] )" .el .SS "\f(CW$ipc_open3_version\fP = IPC::Cmd\->can_use_ipc_open3( [\s-1VERBOSE\s0] )" .IX Subsection "$ipc_open3_version = IPC::Cmd->can_use_ipc_open3( [VERBOSE] )" Utility function that tells you if \f(CW\*(C`IPC::Open3\*(C'\fR is available. If the verbose flag is passed, it will print diagnostic messages if \f(CW\*(C`IPC::Open3\*(C'\fR can not be found or loaded. .ie n .SS "$bool = IPC::Cmd\->can_capture_buffer" .el .SS "\f(CW$bool\fP = IPC::Cmd\->can_capture_buffer" .IX Subsection "$bool = IPC::Cmd->can_capture_buffer" Utility function that tells you if \f(CW\*(C`IPC::Cmd\*(C'\fR is capable of capturing buffers in it's current configuration. .ie n .SS "$bool = IPC::Cmd\->can_use_run_forked" .el .SS "\f(CW$bool\fP = IPC::Cmd\->can_use_run_forked" .IX Subsection "$bool = IPC::Cmd->can_use_run_forked" Utility function that tells you if \f(CW\*(C`IPC::Cmd\*(C'\fR is capable of providing \f(CW\*(C`run_forked\*(C'\fR on the current platform. .SH "FUNCTIONS" .IX Header "FUNCTIONS" .ie n .SS "$path = can_run( \s-1PROGRAM \s0);" .el .SS "\f(CW$path\fP = can_run( \s-1PROGRAM \s0);" .IX Subsection "$path = can_run( PROGRAM );" \&\f(CW\*(C`can_run\*(C'\fR takes only one argument: the name of a binary you wish to locate. \f(CW\*(C`can_run\*(C'\fR works much like the unix binary \f(CW\*(C`which\*(C'\fR or the bash command \f(CW\*(C`type\*(C'\fR, which scans through your path, looking for the requested binary. .PP Unlike \f(CW\*(C`which\*(C'\fR and \f(CW\*(C`type\*(C'\fR, this function is platform independent and will also work on, for example, Win32. .PP If called in a scalar context it will return the full path to the binary you asked for if it was found, or \f(CW\*(C`undef\*(C'\fR if it was not. .PP If called in a list context and the global variable \f(CW$INSTANCES\fR is a true value, it will return a list of the full paths to instances of the binary where found in \f(CW\*(C`PATH\*(C'\fR, or an empty list if it was not found. .ie n .SS "$ok | ($ok, $err, $full_buf, $stdout_buff, $stderr_buff) = run( command => \s-1COMMAND,\s0 [verbose => \s-1BOOL,\s0 buffer => \e$SCALAR, timeout => \s-1DIGIT\s0] );" .el .SS "\f(CW$ok\fP | ($ok, \f(CW$err\fP, \f(CW$full_buf\fP, \f(CW$stdout_buff\fP, \f(CW$stderr_buff\fP) = run( command => \s-1COMMAND,\s0 [verbose => \s-1BOOL,\s0 buffer => \e$SCALAR, timeout => \s-1DIGIT\s0] );" .IX Subsection "$ok | ($ok, $err, $full_buf, $stdout_buff, $stderr_buff) = run( command => COMMAND, [verbose => BOOL, buffer => $SCALAR, timeout => DIGIT] );" \&\f(CW\*(C`run\*(C'\fR takes 4 arguments: .IP "command" 4 .IX Item "command" This is the command to execute. It may be either a string or an array reference. This is a required argument. .Sp See \*(L"Caveats\*(R" for remarks on how commands are parsed and their limitations. .IP "verbose" 4 .IX Item "verbose" This controls whether all output of a command should also be printed to \s-1STDOUT/STDERR\s0 or should only be trapped in buffers (\s-1NOTE:\s0 buffers require IPC::Run to be installed, or your system able to work with IPC::Open3). .Sp It will default to the global setting of \f(CW$IPC::Cmd::VERBOSE\fR, which by default is 0. .IP "buffer" 4 .IX Item "buffer" This will hold all the output of a command. It needs to be a reference to a scalar. Note that this will hold both the \s-1STDOUT\s0 and \s-1STDERR\s0 messages, and you have no way of telling which is which. If you require this distinction, run the \f(CW\*(C`run\*(C'\fR command in list context and inspect the individual buffers. .Sp Of course, this requires that the underlying call supports buffers. See the note on buffers above. .IP "timeout" 4 .IX Item "timeout" Sets the maximum time the command is allowed to run before aborting, using the built-in \f(CW\*(C`alarm()\*(C'\fR call. If the timeout is triggered, the \&\f(CW\*(C`errorcode\*(C'\fR in the return value will be set to an object of the \&\f(CW\*(C`IPC::Cmd::TimeOut\*(C'\fR class. See the \*(L"error message\*(R" section below for details. .Sp Defaults to \f(CW0\fR, meaning no timeout is set. .PP \&\f(CW\*(C`run\*(C'\fR will return a simple \f(CW\*(C`true\*(C'\fR or \f(CW\*(C`false\*(C'\fR when called in scalar context. In list context, you will be returned a list of the following items: .IP "success" 4 .IX Item "success" A simple boolean indicating if the command executed without errors or not. .IP "error message" 4 .IX Item "error message" If the first element of the return value (\f(CW\*(C`success\*(C'\fR) was 0, then some error occurred. This second element is the error message the command you requested exited with, if available. This is generally a pretty printed value of \f(CW$?\fR or \f(CW$@\fR. See \f(CW\*(C`perldoc perlvar\*(C'\fR for details on what they can contain. If the error was a timeout, the \f(CW\*(C`error message\*(C'\fR will be prefixed with the string \f(CW\*(C`IPC::Cmd::TimeOut\*(C'\fR, the timeout class. .IP "full_buffer" 4 .IX Item "full_buffer" This is an array reference containing all the output the command generated. Note that buffers are only available if you have IPC::Run installed, or if your system is able to work with IPC::Open3 \*(-- see below). Otherwise, this element will be \f(CW\*(C`undef\*(C'\fR. .IP "out_buffer" 4 .IX Item "out_buffer" This is an array reference containing all the output sent to \s-1STDOUT\s0 the command generated. The notes from \*(L"full_buffer\*(R" apply. .IP "error_buffer" 4 .IX Item "error_buffer" This is an arrayreference containing all the output sent to \s-1STDERR\s0 the command generated. The notes from \*(L"full_buffer\*(R" apply. .PP See the \*(L"\s-1HOW IT WORKS\*(R"\s0 section below to see how \f(CW\*(C`IPC::Cmd\*(C'\fR decides what modules or function calls to use when issuing a command. .ie n .SS "$hashref = run_forked( \s-1COMMAND,\s0 { child_stdin => \s-1SCALAR,\s0 timeout => \s-1DIGIT,\s0 stdout_handler => \s-1CODEREF,\s0 stderr_handler => \s-1CODEREF\s0} );" .el .SS "\f(CW$hashref\fP = run_forked( \s-1COMMAND,\s0 { child_stdin => \s-1SCALAR,\s0 timeout => \s-1DIGIT,\s0 stdout_handler => \s-1CODEREF,\s0 stderr_handler => \s-1CODEREF\s0} );" .IX Subsection "$hashref = run_forked( COMMAND, { child_stdin => SCALAR, timeout => DIGIT, stdout_handler => CODEREF, stderr_handler => CODEREF} );" \&\f(CW\*(C`run_forked\*(C'\fR is used to execute some program or a coderef, optionally feed it with some input, get its return code and output (both stdout and stderr into separate buffers). In addition, it allows to terminate the program if it takes too long to finish. .PP The important and distinguishing feature of run_forked is execution timeout which at first seems to be quite a simple task but if you think that the program which you're spawning might spawn some children itself (which in their turn could do the same and so on) it turns out to be not a simple issue. .PP \&\f(CW\*(C`run_forked\*(C'\fR is designed to survive and successfully terminate almost any long running task, even a fork bomb in case your system has the resources to survive during given timeout. .PP This is achieved by creating separate watchdog process which spawns the specified program in a separate process session and supervises it: optionally feeds it with input, stores its exit code, stdout and stderr, terminates it in case it runs longer than specified. .PP Invocation requires the command to be executed or a coderef and optionally a hashref of options: .ie n .IP """timeout""" 4 .el .IP "\f(CWtimeout\fR" 4 .IX Item "timeout" Specify in seconds how long to run the command before it is killed with \s-1SIG_KILL \\fIs0\fR\|(9), which effectively terminates it and all of its children (direct or indirect). .ie n .IP """child_stdin""" 4 .el .IP "\f(CWchild_stdin\fR" 4 .IX Item "child_stdin" Specify some text that will be passed into the \f(CW\*(C`STDIN\*(C'\fR of the executed program. .ie n .IP """stdout_handler""" 4 .el .IP "\f(CWstdout_handler\fR" 4 .IX Item "stdout_handler" Coderef of a subroutine to call when a portion of data is received on \&\s-1STDOUT\s0 from the executing program. .ie n .IP """stderr_handler""" 4 .el .IP "\f(CWstderr_handler\fR" 4 .IX Item "stderr_handler" Coderef of a subroutine to call when a portion of data is received on \&\s-1STDERR\s0 from the executing program. .ie n .IP """wait_loop_callback""" 4 .el .IP "\f(CWwait_loop_callback\fR" 4 .IX Item "wait_loop_callback" Coderef of a subroutine to call inside of the main waiting loop (while \f(CW\*(C`run_forked\*(C'\fR waits for the external to finish or fail). It is useful to stop running external process before it ends by itself, e.g. .Sp .Vb 8 \& my $r = run_forked("some external command", { \& \*(Aqwait_loop_callback\*(Aq => sub { \& if (condition) { \& kill(1, $$); \& } \& }, \& \*(Aqterminate_on_signal\*(Aq => \*(AqHUP\*(Aq, \& }); .Ve .Sp Combined with \f(CW\*(C`stdout_handler\*(C'\fR and \f(CW\*(C`stderr_handler\*(C'\fR allows terminating external command based on its output. Could also be used as a timer without engaging with alarm (signals). .Sp Remember that this code could be called every millisecond (depending on the output which external command generates), so try to make it as lightweight as possible. .ie n .IP """discard_output""" 4 .el .IP "\f(CWdiscard_output\fR" 4 .IX Item "discard_output" Discards the buffering of the standard output and standard errors for return by \fIrun_forked()\fR. With this option you have to use the std*_handlers to read what the command outputs. Useful for commands that send a lot of output. .ie n .IP """terminate_on_parent_sudden_death""" 4 .el .IP "\f(CWterminate_on_parent_sudden_death\fR" 4 .IX Item "terminate_on_parent_sudden_death" Enable this option if you wish all spawned processes to be killed if the initially spawned process (the parent) is killed or dies without waiting for child processes. .PP \&\f(CW\*(C`run_forked\*(C'\fR will return a \s-1HASHREF\s0 with the following keys: .ie n .IP """exit_code""" 4 .el .IP "\f(CWexit_code\fR" 4 .IX Item "exit_code" The exit code of the executed program. .ie n .IP """timeout""" 4 .el .IP "\f(CWtimeout\fR" 4 .IX Item "timeout" The number of seconds the program ran for before being terminated, or 0 if no timeout occurred. .ie n .IP """stdout""" 4 .el .IP "\f(CWstdout\fR" 4 .IX Item "stdout" Holds the standard output of the executed command (or empty string if there was no \s-1STDOUT\s0 output or if \f(CW\*(C`discard_output\*(C'\fR was used; it's always defined!) .ie n .IP """stderr""" 4 .el .IP "\f(CWstderr\fR" 4 .IX Item "stderr" Holds the standard error of the executed command (or empty string if there was no \s-1STDERR\s0 output or if \f(CW\*(C`discard_output\*(C'\fR was used; it's always defined!) .ie n .IP """merged""" 4 .el .IP "\f(CWmerged\fR" 4 .IX Item "merged" Holds the standard output and error of the executed command merged into one stream (or empty string if there was no output at all or if \f(CW\*(C`discard_output\*(C'\fR was used; it's always defined!) .ie n .IP """err_msg""" 4 .el .IP "\f(CWerr_msg\fR" 4 .IX Item "err_msg" Holds some explanation in the case of an error. .ie n .SS "$q = \s-1QUOTE\s0" .el .SS "\f(CW$q\fP = \s-1QUOTE\s0" .IX Subsection "$q = QUOTE" Returns the character used for quoting strings on this platform. This is usually a \f(CW\*(C`\*(Aq\*(C'\fR (single quote) on most systems, but some systems use different quotes. For example, \f(CW\*(C`Win32\*(C'\fR uses \f(CW\*(C`"\*(C'\fR (double quote). .PP You can use it as follows: .PP .Vb 2 \& use IPC::Cmd qw[run QUOTE]; \& my $cmd = q[echo ] . QUOTE . q[foo bar] . QUOTE; .Ve .PP This makes sure that \f(CW\*(C`foo bar\*(C'\fR is treated as a string, rather than two separate arguments to the \f(CW\*(C`echo\*(C'\fR function. .SH "HOW IT WORKS" .IX Header "HOW IT WORKS" \&\f(CW\*(C`run\*(C'\fR will try to execute your command using the following logic: .IP "\(bu" 4 If you have \f(CW\*(C`IPC::Run\*(C'\fR installed, and the variable \f(CW$IPC::Cmd::USE_IPC_RUN\fR is set to true (See the \*(L"Global Variables\*(R" section) use that to execute the command. You will have the full output available in buffers, interactive commands are sure to work and you are guaranteed to have your verbosity settings honored cleanly. .IP "\(bu" 4 Otherwise, if the variable \f(CW$IPC::Cmd::USE_IPC_OPEN3\fR is set to true (See the \*(L"Global Variables\*(R" section), try to execute the command using IPC::Open3. Buffers will be available on all platforms, interactive commands will still execute cleanly, and also your verbosity settings will be adhered to nicely; .IP "\(bu" 4 Otherwise, if you have the \f(CW\*(C`verbose\*(C'\fR argument set to true, we fall back to a simple \f(CW\*(C`system()\*(C'\fR call. We cannot capture any buffers, but interactive commands will still work. .IP "\(bu" 4 Otherwise we will try and temporarily redirect \s-1STDERR\s0 and \s-1STDOUT,\s0 do a \&\f(CW\*(C`system()\*(C'\fR call with your command and then re-open \s-1STDERR\s0 and \s-1STDOUT.\s0 This is the method of last resort and will still allow you to execute your commands cleanly. However, no buffers will be available. .SH "Global Variables" .IX Header "Global Variables" The behaviour of IPC::Cmd can be altered by changing the following global variables: .ie n .SS "$IPC::Cmd::VERBOSE" .el .SS "\f(CW$IPC::Cmd::VERBOSE\fP" .IX Subsection "$IPC::Cmd::VERBOSE" This controls whether IPC::Cmd will print any output from the commands to the screen or not. The default is 0. .ie n .SS "$IPC::Cmd::USE_IPC_RUN" .el .SS "\f(CW$IPC::Cmd::USE_IPC_RUN\fP" .IX Subsection "$IPC::Cmd::USE_IPC_RUN" This variable controls whether IPC::Cmd will try to use IPC::Run when available and suitable. .ie n .SS "$IPC::Cmd::USE_IPC_OPEN3" .el .SS "\f(CW$IPC::Cmd::USE_IPC_OPEN3\fP" .IX Subsection "$IPC::Cmd::USE_IPC_OPEN3" This variable controls whether IPC::Cmd will try to use IPC::Open3 when available and suitable. Defaults to true. .ie n .SS "$IPC::Cmd::WARN" .el .SS "\f(CW$IPC::Cmd::WARN\fP" .IX Subsection "$IPC::Cmd::WARN" This variable controls whether run-time warnings should be issued, like the failure to load an \f(CW\*(C`IPC::*\*(C'\fR module you explicitly requested. .PP Defaults to true. Turn this off at your own risk. .ie n .SS "$IPC::Cmd::INSTANCES" .el .SS "\f(CW$IPC::Cmd::INSTANCES\fP" .IX Subsection "$IPC::Cmd::INSTANCES" This variable controls whether \f(CW\*(C`can_run\*(C'\fR will return all instances of the binary it finds in the \f(CW\*(C`PATH\*(C'\fR when called in a list context. .PP Defaults to false, set to true to enable the described behaviour. .ie n .SS "$IPC::Cmd::ALLOW_NULL_ARGS" .el .SS "\f(CW$IPC::Cmd::ALLOW_NULL_ARGS\fP" .IX Subsection "$IPC::Cmd::ALLOW_NULL_ARGS" This variable controls whether \f(CW\*(C`run\*(C'\fR will remove any empty/null arguments it finds in command arguments. .PP Defaults to false, so it will remove null arguments. Set to true to allow them. .SH "Caveats" .IX Header "Caveats" .IP "Whitespace and IPC::Open3 / \fIsystem()\fR" 4 .IX Item "Whitespace and IPC::Open3 / system()" When using \f(CW\*(C`IPC::Open3\*(C'\fR or \f(CW\*(C`system\*(C'\fR, if you provide a string as the \&\f(CW\*(C`command\*(C'\fR argument, it is assumed to be appropriately escaped. You can use the \f(CW\*(C`QUOTE\*(C'\fR constant to use as a portable quote character (see above). However, if you provide an array reference, special rules apply: .Sp If your command contains \fBspecial characters\fR (< > | &), it will be internally stringified before executing the command, to avoid that these special characters are escaped and passed as arguments instead of retaining their special meaning. .Sp However, if the command contained arguments that contained whitespace, stringifying the command would lose the significance of the whitespace. Therefore, \f(CW\*(C`IPC::Cmd\*(C'\fR will quote any arguments containing whitespace in your command if the command is passed as an arrayref and contains special characters. .IP "Whitespace and IPC::Run" 4 .IX Item "Whitespace and IPC::Run" When using \f(CW\*(C`IPC::Run\*(C'\fR, if you provide a string as the \f(CW\*(C`command\*(C'\fR argument, the string will be split on whitespace to determine the individual elements of your command. Although this will usually just Do What You Mean, it may break if you have files or commands with whitespace in them. .Sp If you do not wish this to happen, you should provide an array reference, where all parts of your command are already separated out. Note however, if there are extra or spurious whitespaces in these parts, the parser or underlying code may not interpret it correctly, and cause an error. .Sp Example: The following code .Sp .Vb 1 \& gzip \-cdf foo.tar.gz | tar \-xf \- .Ve .Sp should either be passed as .Sp .Vb 1 \& "gzip \-cdf foo.tar.gz | tar \-xf \-" .Ve .Sp or as .Sp .Vb 1 \& [\*(Aqgzip\*(Aq, \*(Aq\-cdf\*(Aq, \*(Aqfoo.tar.gz\*(Aq, \*(Aq|\*(Aq, \*(Aqtar\*(Aq, \*(Aq\-xf\*(Aq, \*(Aq\-\*(Aq] .Ve .Sp But take care not to pass it as, for example .Sp .Vb 1 \& [\*(Aqgzip \-cdf foo.tar.gz\*(Aq, \*(Aq|\*(Aq, \*(Aqtar \-xf \-\*(Aq] .Ve .Sp Since this will lead to issues as described above. .IP "\s-1IO\s0 Redirect" 4 .IX Item "IO Redirect" Currently it is too complicated to parse your command for \s-1IO\s0 redirections. For capturing \s-1STDOUT\s0 or \s-1STDERR\s0 there is a work around however, since you can just inspect your buffers for the contents. .IP "Interleaving \s-1STDOUT/STDERR\s0" 4 .IX Item "Interleaving STDOUT/STDERR" Neither IPC::Run nor IPC::Open3 can interleave \s-1STDOUT\s0 and \s-1STDERR.\s0 For short bursts of output from a program, e.g. this sample, .Sp .Vb 3 \& for ( 1..4 ) { \& $_ % 2 ? print STDOUT $_ : print STDERR $_; \& } .Ve .Sp IPC::[Run|Open3] will first read all of \s-1STDOUT,\s0 then all of \s-1STDERR,\s0 meaning the output looks like '13' on \s-1STDOUT\s0 and '24' on \s-1STDERR,\s0 instead of .Sp .Vb 4 \& 1 \& 2 \& 3 \& 4 .Ve .Sp This has been recorded in rt.cpan.org as bug #37532: Unable to interleave \&\s-1STDOUT\s0 and \s-1STDERR.\s0 .SH "See Also" .IX Header "See Also" IPC::Run, IPC::Open3 .SH "ACKNOWLEDGEMENTS" .IX Header "ACKNOWLEDGEMENTS" Thanks to James Mastros and Martijn van der Streek for their help in getting IPC::Open3 to behave nicely. .PP Thanks to Petya Kohts for the \f(CW\*(C`run_forked\*(C'\fR code. .SH "BUG REPORTS" .IX Header "BUG REPORTS" Please report bugs or other issues to . .SH "AUTHOR" .IX Header "AUTHOR" Original author: Jos Boumans . Current maintainer: Chris Williams . .SH "COPYRIGHT" .IX Header "COPYRIGHT" This library is free software; you may redistribute and/or modify it under the same terms as Perl itself. man3/Test2::Event::Plan.3pm000044400000013117147645265660011237 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test2::Event::Plan 3" .TH Test2::Event::Plan 3 "2019-09-06" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test2::Event::Plan \- The event of a plan .SH "DESCRIPTION" .IX Header "DESCRIPTION" Plan events are fired off whenever a plan is declared, done testing is called, or a subtext completes. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& use Test2::API qw/context/; \& use Test2::Event::Plan; \& \& my $ctx = context(); \& \& # Plan for 10 tests to run \& my $event = $ctx\->plan(10); \& \& # Plan to skip all tests (will exit 0) \& $ctx\->plan(0, skip_all => "These tests need to be skipped"); .Ve .SH "ACCESSORS" .IX Header "ACCESSORS" .ie n .IP "$num = $plan\->max" 4 .el .IP "\f(CW$num\fR = \f(CW$plan\fR\->max" 4 .IX Item "$num = $plan->max" Get the number of expected tests .ie n .IP "$dir = $plan\->directive" 4 .el .IP "\f(CW$dir\fR = \f(CW$plan\fR\->directive" 4 .IX Item "$dir = $plan->directive" Get the directive (such as \s-1TODO,\s0 skip_all, or no_plan). .ie n .IP "$reason = $plan\->reason" 4 .el .IP "\f(CW$reason\fR = \f(CW$plan\fR\->reason" 4 .IX Item "$reason = $plan->reason" Get the reason for the directive. .SH "SOURCE" .IX Header "SOURCE" The source code repository for Test2 can be found at \&\fIhttp://github.com/Test\-More/test\-more/\fR. .SH "MAINTAINERS" .IX Header "MAINTAINERS" .IP "Chad Granum " 4 .IX Item "Chad Granum " .SH "AUTHORS" .IX Header "AUTHORS" .PD 0 .IP "Chad Granum " 4 .IX Item "Chad Granum " .PD .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2019 Chad Granum . .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP See \fIhttp://dev.perl.org/licenses/\fR man3/Test2::API::Context.3pm000044400000063026147645265660011325 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test2::API::Context 3" .TH Test2::API::Context 3 "2019-09-06" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test2::API::Context \- Object to represent a testing context. .SH "DESCRIPTION" .IX Header "DESCRIPTION" The context object is the primary interface for authors of testing tools written with Test2. The context object represents the context in which a test takes place (File and Line Number), and provides a quick way to generate events from that context. The context object also takes care of sending events to the correct Test2::Hub instance. .SH "SYNOPSIS" .IX Header "SYNOPSIS" In general you will not be creating contexts directly. To obtain a context you should always use \f(CW\*(C`context()\*(C'\fR which is exported by the Test2::API module. .PP .Vb 1 \& use Test2::API qw/context/; \& \& sub my_ok { \& my ($bool, $name) = @_; \& my $ctx = context(); \& \& if ($bool) { \& $ctx\->pass($name); \& } \& else { \& $ctx\->fail($name); \& } \& \& $ctx\->release; # You MUST do this! \& return $bool; \& } .Ve .PP Context objects make it easy to wrap other tools that also use context. Once you grab a context, any tool you call before releasing your context will inherit it: .PP .Vb 4 \& sub wrapper { \& my ($bool, $name) = @_; \& my $ctx = context(); \& $ctx\->diag("wrapping my_ok"); \& \& my $out = my_ok($bool, $name); \& $ctx\->release; # You MUST do this! \& return $out; \& } .Ve .SH "CRITICAL DETAILS" .IX Header "CRITICAL DETAILS" .IP "you \s-1MUST\s0 always use the \fIcontext()\fR sub from Test2::API" 4 .IX Item "you MUST always use the context() sub from Test2::API" Creating your own context via \f(CW\*(C`Test2::API::Context\->new()\*(C'\fR will almost never produce a desirable result. Use \f(CW\*(C`context()\*(C'\fR which is exported by Test2::API. .Sp There are a handful of cases where a tool author may want to create a new context by hand, which is why the \f(CW\*(C`new\*(C'\fR method exists. Unless you really know what you are doing you should avoid this. .IP "You \s-1MUST\s0 always release the context when done with it" 4 .IX Item "You MUST always release the context when done with it" Releasing the context tells the system you are done with it. This gives it a chance to run any necessary callbacks or cleanup tasks. If you forget to release the context it will try to detect the problem and warn you about it. .IP "You \s-1MUST NOT\s0 pass context objects around" 4 .IX Item "You MUST NOT pass context objects around" When you obtain a context object it is made specifically for your tool and any tools nested within. If you pass a context around you run the risk of polluting other tools with incorrect context information. .Sp If you are certain that you want a different tool to use the same context you may pass it a snapshot. \f(CW\*(C`$ctx\->snapshot\*(C'\fR will give you a shallow clone of the context that is safe to pass around or store. .IP "You \s-1MUST NOT\s0 store or cache a context for later" 4 .IX Item "You MUST NOT store or cache a context for later" As long as a context exists for a given hub, all tools that try to get a context will get the existing instance. If you try to store the context you will pollute other tools with incorrect context information. .Sp If you are certain that you want to save the context for later, you can use a snapshot. \f(CW\*(C`$ctx\->snapshot\*(C'\fR will give you a shallow clone of the context that is safe to pass around or store. .Sp \&\f(CW\*(C`context()\*(C'\fR has some mechanisms to protect you if you do cause a context to persist beyond the scope in which it was obtained. In practice you should not rely on these protections, and they are fairly noisy with warnings. .IP "You \s-1SHOULD\s0 obtain your context as soon as possible in a given tool" 4 .IX Item "You SHOULD obtain your context as soon as possible in a given tool" You never know what tools you call from within your own tool will need a context. Obtaining the context early ensures that nested tools can find the context you want them to find. .SH "METHODS" .IX Header "METHODS" .ie n .IP "$ctx\->done_testing;" 4 .el .IP "\f(CW$ctx\fR\->done_testing;" 4 .IX Item "$ctx->done_testing;" Note that testing is finished. If no plan has been set this will generate a Plan event. .ie n .IP "$clone = $ctx\->\fIsnapshot()\fR" 4 .el .IP "\f(CW$clone\fR = \f(CW$ctx\fR\->\fIsnapshot()\fR" 4 .IX Item "$clone = $ctx->snapshot()" This will return a shallow clone of the context. The shallow clone is safe to store for later. .ie n .IP "$ctx\->\fIrelease()\fR" 4 .el .IP "\f(CW$ctx\fR\->\fIrelease()\fR" 4 .IX Item "$ctx->release()" This will release the context. This runs cleanup tasks, and several important hooks. It will also restore \f(CW$!\fR, \f(CW$?\fR, and \f(CW$@\fR to what they were when the context was created. .Sp \&\fBNote:\fR If a context is acquired more than once an internal refcount is kept. \&\f(CW\*(C`release()\*(C'\fR decrements the ref count, none of the other actions of \&\f(CW\*(C`release()\*(C'\fR will occur unless the refcount hits 0. This means only the last call to \f(CW\*(C`release()\*(C'\fR will reset \f(CW$?\fR, \f(CW$!\fR, \f(CW$@\fR,and run the cleanup tasks. .ie n .IP "$ctx\->throw($message)" 4 .el .IP "\f(CW$ctx\fR\->throw($message)" 4 .IX Item "$ctx->throw($message)" This will throw an exception reporting to the file and line number of the context. This will also release the context for you. .ie n .IP "$ctx\->alert($message)" 4 .el .IP "\f(CW$ctx\fR\->alert($message)" 4 .IX Item "$ctx->alert($message)" This will issue a warning from the file and line number of the context. .ie n .IP "$stack = $ctx\->\fIstack()\fR" 4 .el .IP "\f(CW$stack\fR = \f(CW$ctx\fR\->\fIstack()\fR" 4 .IX Item "$stack = $ctx->stack()" This will return the Test2::API::Stack instance the context used to find the current hub. .ie n .IP "$hub = $ctx\->\fIhub()\fR" 4 .el .IP "\f(CW$hub\fR = \f(CW$ctx\fR\->\fIhub()\fR" 4 .IX Item "$hub = $ctx->hub()" This will return the Test2::Hub instance the context recognizes as the current one to which all events should be sent. .ie n .IP "$dbg = $ctx\->\fItrace()\fR" 4 .el .IP "\f(CW$dbg\fR = \f(CW$ctx\fR\->\fItrace()\fR" 4 .IX Item "$dbg = $ctx->trace()" This will return the Test2::EventFacet::Trace instance used by the context. .ie n .IP "$ctx\->do_in_context(\e&code, @args);" 4 .el .IP "\f(CW$ctx\fR\->do_in_context(\e&code, \f(CW@args\fR);" 4 .IX Item "$ctx->do_in_context(&code, @args);" Sometimes you have a context that is not current, and you want things to use it as the current one. In these cases you can call \&\f(CW\*(C`$ctx\->do_in_context(sub { ... })\*(C'\fR. The codeblock will be run, and anything inside of it that looks for a context will find the one on which the method was called. .Sp This \fB\s-1DOES NOT\s0\fR affect context on other hubs, only the hub used by the context will be affected. .Sp .Vb 4 \& my $ctx = ...; \& $ctx\->do_in_context(sub { \& my $ctx = context(); # returns the $ctx the sub is called on \& }); .Ve .Sp \&\fBNote:\fR The context will actually be cloned, the clone will be used instead of the original. This allows the thread id, process id, and error variables to be correct without modifying the original context. .ie n .IP "$ctx\->\fIrestore_error_vars()\fR" 4 .el .IP "\f(CW$ctx\fR\->\fIrestore_error_vars()\fR" 4 .IX Item "$ctx->restore_error_vars()" This will set \f(CW$!\fR, \f(CW$?\fR, and \f(CW$@\fR to what they were when the context was created. There is no localization or anything done here, calling this method will actually set these vars. .ie n .IP "$! = $ctx\->\fIerrno()\fR" 4 .el .IP "$! = \f(CW$ctx\fR\->\fIerrno()\fR" 4 .IX Item "$! = $ctx->errno()" The (numeric) value of \f(CW$!\fR when the context was created. .ie n .IP "$? = $ctx\->\fIchild_error()\fR" 4 .el .IP "$? = \f(CW$ctx\fR\->\fIchild_error()\fR" 4 .IX Item "$? = $ctx->child_error()" The value of \f(CW$?\fR when the context was created. .ie n .IP "$@ = $ctx\->\fIeval_error()\fR" 4 .el .IP "$@ = \f(CW$ctx\fR\->\fIeval_error()\fR" 4 .IX Item "$@ = $ctx->eval_error()" The value of \f(CW$@\fR when the context was created. .SS "\s-1EVENT PRODUCTION METHODS\s0" .IX Subsection "EVENT PRODUCTION METHODS" \&\fBWhich one do I use?\fR .PP The \f(CW\*(C`pass*\*(C'\fR and \f(CW\*(C`fail*\*(C'\fR are optimal if they meet your situation, using one of them will always be the most optimal. That said they are optimal by eliminating many features. .PP Method such as \f(CW\*(C`ok\*(C'\fR, and \f(CW\*(C`note\*(C'\fR are shortcuts for generating common 1\-task events based on the old \s-1API,\s0 however they are forward compatible, and easy to use. If these meet your needs then go ahead and use them, but please check back often for alternatives that may be added. .PP If you want to generate new style events, events that do many things at once, then you want the \f(CW\*(C`*ev2*\*(C'\fR methods. These let you directly specify which facets you wish to use. .ie n .IP "$event = $ctx\->\fIpass()\fR" 4 .el .IP "\f(CW$event\fR = \f(CW$ctx\fR\->\fIpass()\fR" 4 .IX Item "$event = $ctx->pass()" .PD 0 .ie n .IP "$event = $ctx\->pass($name)" 4 .el .IP "\f(CW$event\fR = \f(CW$ctx\fR\->pass($name)" 4 .IX Item "$event = $ctx->pass($name)" .PD This will send and return an Test2::Event::Pass event. You may optionally provide a \f(CW$name\fR for the assertion. .Sp The Test2::Event::Pass is a specially crafted and optimized event, using this will help the performance of passing tests. .ie n .IP "$true = $ctx\->\fIpass_and_release()\fR" 4 .el .IP "\f(CW$true\fR = \f(CW$ctx\fR\->\fIpass_and_release()\fR" 4 .IX Item "$true = $ctx->pass_and_release()" .PD 0 .ie n .IP "$true = $ctx\->pass_and_release($name)" 4 .el .IP "\f(CW$true\fR = \f(CW$ctx\fR\->pass_and_release($name)" 4 .IX Item "$true = $ctx->pass_and_release($name)" .PD This is a combination of \f(CW\*(C`pass()\*(C'\fR and \f(CW\*(C`release()\*(C'\fR. You can use this if you do not plan to do anything with the context after sending the event. This helps write more clear and compact code. .Sp .Vb 4 \& sub shorthand { \& my ($bool, $name) = @_; \& my $ctx = context(); \& return $ctx\->pass_and_release($name) if $bool; \& \& ... Handle a failure ... \& } \& \& sub longform { \& my ($bool, $name) = @_; \& my $ctx = context(); \& \& if ($bool) { \& $ctx\->pass($name); \& $ctx\->release; \& return 1; \& } \& \& ... Handle a failure ... \& } .Ve .ie n .IP "my $event = $ctx\->\fIfail()\fR" 4 .el .IP "my \f(CW$event\fR = \f(CW$ctx\fR\->\fIfail()\fR" 4 .IX Item "my $event = $ctx->fail()" .PD 0 .ie n .IP "my $event = $ctx\->fail($name)" 4 .el .IP "my \f(CW$event\fR = \f(CW$ctx\fR\->fail($name)" 4 .IX Item "my $event = $ctx->fail($name)" .ie n .IP "my $event = $ctx\->fail($name, @diagnostics)" 4 .el .IP "my \f(CW$event\fR = \f(CW$ctx\fR\->fail($name, \f(CW@diagnostics\fR)" 4 .IX Item "my $event = $ctx->fail($name, @diagnostics)" .PD This lets you send an Test2::Event::Fail event. You may optionally provide a \&\f(CW$name\fR and \f(CW@diagnostics\fR messages. .Sp Diagnostics messages can be simple strings, data structures, or instances of Test2::EventFacet::Info::Table (which are converted inline into the Test2::EventFacet::Info structure). .ie n .IP "my $false = $ctx\->\fIfail_and_release()\fR" 4 .el .IP "my \f(CW$false\fR = \f(CW$ctx\fR\->\fIfail_and_release()\fR" 4 .IX Item "my $false = $ctx->fail_and_release()" .PD 0 .ie n .IP "my $false = $ctx\->fail_and_release($name)" 4 .el .IP "my \f(CW$false\fR = \f(CW$ctx\fR\->fail_and_release($name)" 4 .IX Item "my $false = $ctx->fail_and_release($name)" .ie n .IP "my $false = $ctx\->fail_and_release($name, @diagnostics)" 4 .el .IP "my \f(CW$false\fR = \f(CW$ctx\fR\->fail_and_release($name, \f(CW@diagnostics\fR)" 4 .IX Item "my $false = $ctx->fail_and_release($name, @diagnostics)" .PD This is a combination of \f(CW\*(C`fail()\*(C'\fR and \f(CW\*(C`release()\*(C'\fR. This can be used to write clearer and shorter code. .Sp .Vb 4 \& sub shorthand { \& my ($bool, $name) = @_; \& my $ctx = context(); \& return $ctx\->fail_and_release($name) unless $bool; \& \& ... Handle a success ... \& } \& \& sub longform { \& my ($bool, $name) = @_; \& my $ctx = context(); \& \& unless ($bool) { \& $ctx\->pass($name); \& $ctx\->release; \& return 1; \& } \& \& ... Handle a success ... \& } .Ve .ie n .IP "$event = $ctx\->ok($bool, $name)" 4 .el .IP "\f(CW$event\fR = \f(CW$ctx\fR\->ok($bool, \f(CW$name\fR)" 4 .IX Item "$event = $ctx->ok($bool, $name)" .PD 0 .ie n .IP "$event = $ctx\->ok($bool, $name, \e@on_fail)" 4 .el .IP "\f(CW$event\fR = \f(CW$ctx\fR\->ok($bool, \f(CW$name\fR, \e@on_fail)" 4 .IX Item "$event = $ctx->ok($bool, $name, @on_fail)" .PD \&\fB\s-1NOTE:\s0\fR Use of this method is discouraged in favor of \f(CW\*(C`pass()\*(C'\fR and \f(CW\*(C`fail()\*(C'\fR which produce Test2::Event::Pass and Test2::Event::Fail events. These newer event types are faster and less crufty. .Sp This will create an Test2::Event::Ok object for you. If \f(CW$bool\fR is false then an Test2::Event::Diag event will be sent as well with details about the failure. If you do not want automatic diagnostics you should use the \&\f(CW\*(C`send_event()\*(C'\fR method directly. .Sp The third argument \f(CW\*(C`\e@on_fail\*(C'\fR) is an optional set of diagnostics to be sent in the event of a test failure. Unlike with \f(CW\*(C`fail()\*(C'\fR these diagnostics must be plain strings, data structures are not supported. .ie n .IP "$event = $ctx\->note($message)" 4 .el .IP "\f(CW$event\fR = \f(CW$ctx\fR\->note($message)" 4 .IX Item "$event = $ctx->note($message)" Send an Test2::Event::Note. This event prints a message to \s-1STDOUT.\s0 .ie n .IP "$event = $ctx\->diag($message)" 4 .el .IP "\f(CW$event\fR = \f(CW$ctx\fR\->diag($message)" 4 .IX Item "$event = $ctx->diag($message)" Send an Test2::Event::Diag. This event prints a message to \s-1STDERR.\s0 .ie n .IP "$event = $ctx\->plan($max)" 4 .el .IP "\f(CW$event\fR = \f(CW$ctx\fR\->plan($max)" 4 .IX Item "$event = $ctx->plan($max)" .PD 0 .ie n .IP "$event = $ctx\->plan(0, '\s-1SKIP\s0', $reason)" 4 .el .IP "\f(CW$event\fR = \f(CW$ctx\fR\->plan(0, '\s-1SKIP\s0', \f(CW$reason\fR)" 4 .IX Item "$event = $ctx->plan(0, 'SKIP', $reason)" .PD This can be used to send an Test2::Event::Plan event. This event usually takes either a number of tests you expect to run. Optionally you can set the expected count to 0 and give the '\s-1SKIP\s0' directive with a reason to cause all tests to be skipped. .ie n .IP "$event = $ctx\->skip($name, $reason);" 4 .el .IP "\f(CW$event\fR = \f(CW$ctx\fR\->skip($name, \f(CW$reason\fR);" 4 .IX Item "$event = $ctx->skip($name, $reason);" Send an Test2::Event::Skip event. .ie n .IP "$event = $ctx\->bail($reason)" 4 .el .IP "\f(CW$event\fR = \f(CW$ctx\fR\->bail($reason)" 4 .IX Item "$event = $ctx->bail($reason)" This sends an Test2::Event::Bail event. This event will completely terminate all testing. .ie n .IP "$event = $ctx\->send_ev2(%facets)" 4 .el .IP "\f(CW$event\fR = \f(CW$ctx\fR\->send_ev2(%facets)" 4 .IX Item "$event = $ctx->send_ev2(%facets)" This lets you build and send a V2 event directly from facets. The event is returned after it is sent. .Sp This example sends a single assertion, a note (comment for stdout in Test::Builder talk) and sets the plan to 1. .Sp .Vb 5 \& my $event = $ctx\->send_event( \& plan => {count => 1}, \& assert => {pass => 1, details => "A passing assert"}, \& info => [{tag => \*(AqNOTE\*(Aq, details => "This is a note"}], \& ); .Ve .ie n .IP "$event = $ctx\->build_e2(%facets)" 4 .el .IP "\f(CW$event\fR = \f(CW$ctx\fR\->build_e2(%facets)" 4 .IX Item "$event = $ctx->build_e2(%facets)" This is the same as \f(CW\*(C`send_ev2()\*(C'\fR, except it builds and returns the event without sending it. .ie n .IP "$event = $ctx\->send_ev2_and_release($Type, %parameters)" 4 .el .IP "\f(CW$event\fR = \f(CW$ctx\fR\->send_ev2_and_release($Type, \f(CW%parameters\fR)" 4 .IX Item "$event = $ctx->send_ev2_and_release($Type, %parameters)" This is a combination of \f(CW\*(C`send_ev2()\*(C'\fR and \f(CW\*(C`release()\*(C'\fR. .Sp .Vb 4 \& sub shorthand { \& my $ctx = context(); \& return $ctx\->send_ev2_and_release(assert => {pass => 1, details => \*(Aqfoo\*(Aq}); \& } \& \& sub longform { \& my $ctx = context(); \& my $event = $ctx\->send_ev2(assert => {pass => 1, details => \*(Aqfoo\*(Aq}); \& $ctx\->release; \& return $event; \& } .Ve .ie n .IP "$event = $ctx\->send_event($Type, %parameters)" 4 .el .IP "\f(CW$event\fR = \f(CW$ctx\fR\->send_event($Type, \f(CW%parameters\fR)" 4 .IX Item "$event = $ctx->send_event($Type, %parameters)" \&\fBIt is better to use \f(BIsend_ev2()\fB in new code.\fR .Sp This lets you build and send an event of any type. The \f(CW$Type\fR argument should be the event package name with \f(CW\*(C`Test2::Event::\*(C'\fR left off, or a fully qualified package name prefixed with a '+'. The event is returned after it is sent. .Sp .Vb 1 \& my $event = $ctx\->send_event(\*(AqOk\*(Aq, ...); .Ve .Sp or .Sp .Vb 1 \& my $event = $ctx\->send_event(\*(Aq+Test2::Event::Ok\*(Aq, ...); .Ve .ie n .IP "$event = $ctx\->build_event($Type, %parameters)" 4 .el .IP "\f(CW$event\fR = \f(CW$ctx\fR\->build_event($Type, \f(CW%parameters\fR)" 4 .IX Item "$event = $ctx->build_event($Type, %parameters)" \&\fBIt is better to use \f(BIbuild_ev2()\fB in new code.\fR .Sp This is the same as \f(CW\*(C`send_event()\*(C'\fR, except it builds and returns the event without sending it. .ie n .IP "$event = $ctx\->send_event_and_release($Type, %parameters)" 4 .el .IP "\f(CW$event\fR = \f(CW$ctx\fR\->send_event_and_release($Type, \f(CW%parameters\fR)" 4 .IX Item "$event = $ctx->send_event_and_release($Type, %parameters)" \&\fBIt is better to use \f(BIsend_ev2_and_release()\fB in new code.\fR .Sp This is a combination of \f(CW\*(C`send_event()\*(C'\fR and \f(CW\*(C`release()\*(C'\fR. .Sp .Vb 4 \& sub shorthand { \& my $ctx = context(); \& return $ctx\->send_event_and_release(Pass => { name => \*(Aqfoo\*(Aq }); \& } \& \& sub longform { \& my $ctx = context(); \& my $event = $ctx\->send_event(Pass => { name => \*(Aqfoo\*(Aq }); \& $ctx\->release; \& return $event; \& } .Ve .SH "HOOKS" .IX Header "HOOKS" There are 2 types of hooks, init hooks, and release hooks. As the names suggest, these hooks are triggered when contexts are created or released. .SS "\s-1INIT HOOKS\s0" .IX Subsection "INIT HOOKS" These are called whenever a context is initialized. That means when a new instance is created. These hooks are \fB\s-1NOT\s0\fR called every time something requests a context, just when a new one is created. .PP \fI\s-1GLOBAL\s0\fR .IX Subsection "GLOBAL" .PP This is how you add a global init callback. Global callbacks happen for every context for any hub or stack. .PP .Vb 4 \& Test2::API::test2_add_callback_context_init(sub { \& my $ctx = shift; \& ... \& }); .Ve .PP \fI\s-1PER HUB\s0\fR .IX Subsection "PER HUB" .PP This is how you add an init callback for all contexts created for a given hub. These callbacks will not run for other hubs. .PP .Vb 4 \& $hub\->add_context_init(sub { \& my $ctx = shift; \& ... \& }); .Ve .PP \fI\s-1PER CONTEXT\s0\fR .IX Subsection "PER CONTEXT" .PP This is how you specify an init hook that will only run if your call to \&\f(CW\*(C`context()\*(C'\fR generates a new context. The callback will be ignored if \&\f(CW\*(C`context()\*(C'\fR is returning an existing context. .PP .Vb 4 \& my $ctx = context(on_init => sub { \& my $ctx = shift; \& ... \& }); .Ve .SS "\s-1RELEASE HOOKS\s0" .IX Subsection "RELEASE HOOKS" These are called whenever a context is released. That means when the last reference to the instance is about to be destroyed. These hooks are \fB\s-1NOT\s0\fR called every time \f(CW\*(C`$ctx\->release\*(C'\fR is called. .PP \fI\s-1GLOBAL\s0\fR .IX Subsection "GLOBAL" .PP This is how you add a global release callback. Global callbacks happen for every context for any hub or stack. .PP .Vb 4 \& Test2::API::test2_add_callback_context_release(sub { \& my $ctx = shift; \& ... \& }); .Ve .PP \fI\s-1PER HUB\s0\fR .IX Subsection "PER HUB" .PP This is how you add a release callback for all contexts created for a given hub. These callbacks will not run for other hubs. .PP .Vb 4 \& $hub\->add_context_release(sub { \& my $ctx = shift; \& ... \& }); .Ve .PP \fI\s-1PER CONTEXT\s0\fR .IX Subsection "PER CONTEXT" .PP This is how you add release callbacks directly to a context. The callback will \&\fB\s-1ALWAYS\s0\fR be added to the context that gets returned, it does not matter if a new one is generated, or if an existing one is returned. .PP .Vb 4 \& my $ctx = context(on_release => sub { \& my $ctx = shift; \& ... \& }); .Ve .SH "THIRD PARTY META-DATA" .IX Header "THIRD PARTY META-DATA" This object consumes Test2::Util::ExternalMeta which provides a consistent way for you to attach meta-data to instances of this class. This is useful for tools, plugins, and other extensions. .SH "SOURCE" .IX Header "SOURCE" The source code repository for Test2 can be found at \&\fIhttp://github.com/Test\-More/test\-more/\fR. .SH "MAINTAINERS" .IX Header "MAINTAINERS" .IP "Chad Granum " 4 .IX Item "Chad Granum " .SH "AUTHORS" .IX Header "AUTHORS" .PD 0 .IP "Chad Granum " 4 .IX Item "Chad Granum " .IP "Kent Fredric " 4 .IX Item "Kent Fredric " .PD .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2019 Chad Granum . .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP See \fIhttp://dev.perl.org/licenses/\fR man3/Test2::EventFacet::Info::Table.3pm000044400000016242147645265660013341 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test2::EventFacet::Info::Table 3" .TH Test2::EventFacet::Info::Table 3 "2019-09-06" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test2::EventFacet::Info::Table \- Intermediary representation of a table. .SH "DESCRIPTION" .IX Header "DESCRIPTION" Intermediary representation of a table for use in specialized Test::API::Context methods which generate Test2::EventFacet::Info facets. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& use Test2::EventFacet::Info::Table; \& use Test2::API qw/context/; \& \& sub my_tool { \& my $ctx = context(); \& \& ... \& \& $ctx\->fail( \& $name, \& "failure diag message", \& Test2::EventFacet::Info::Table\->new( \& # Required \& rows => [[\*(Aqa\*(Aq, \*(Aqb\*(Aq], [\*(Aqc\*(Aq, \*(Aqd\*(Aq], ...], \& \& # Strongly Recommended \& as_string => "... string to print when table cannot be rendered ...", \& \& # Optional \& header => [\*(Aqcol1\*(Aq, \*(Aqcol2\*(Aq], \& collapse => $bool, \& no_collapse => [\*(Aqcol1\*(Aq, ...], \& ), \& ); \& \& ... \& \& $ctx\->release; \& } \& \& my_tool(); .Ve .SH "ATTRIBUTES" .IX Header "ATTRIBUTES" .ie n .IP "$header_aref = $t\->\fIheader()\fR" 4 .el .IP "\f(CW$header_aref\fR = \f(CW$t\fR\->\fIheader()\fR" 4 .IX Item "$header_aref = $t->header()" .PD 0 .ie n .IP "$rows_aref = $t\->\fIrows()\fR" 4 .el .IP "\f(CW$rows_aref\fR = \f(CW$t\fR\->\fIrows()\fR" 4 .IX Item "$rows_aref = $t->rows()" .ie n .IP "$bool = $t\->\fIcollapse()\fR" 4 .el .IP "\f(CW$bool\fR = \f(CW$t\fR\->\fIcollapse()\fR" 4 .IX Item "$bool = $t->collapse()" .ie n .IP "$aref = $t\->\fIno_collapse()\fR" 4 .el .IP "\f(CW$aref\fR = \f(CW$t\fR\->\fIno_collapse()\fR" 4 .IX Item "$aref = $t->no_collapse()" .PD The above are all directly tied to the table hashref structure described in Test2::EventFacet::Info. .ie n .IP "$str = $t\->\fIas_string()\fR" 4 .el .IP "\f(CW$str\fR = \f(CW$t\fR\->\fIas_string()\fR" 4 .IX Item "$str = $t->as_string()" This returns the string form of the table if it was set, otherwise it returns the string \f(CW""\fR. .ie n .IP "$href = $t\->\fIas_hash()\fR" 4 .el .IP "\f(CW$href\fR = \f(CW$t\fR\->\fIas_hash()\fR" 4 .IX Item "$href = $t->as_hash()" This returns the data structure used for tables by Test2::EventFacet::Info. .ie n .IP "%args = $t\->\fIinfo_args()\fR" 4 .el .IP "\f(CW%args\fR = \f(CW$t\fR\->\fIinfo_args()\fR" 4 .IX Item "%args = $t->info_args()" This returns the arguments that should be used to construct the proper Test2::EventFacet::Info structure. .Sp .Vb 1 \& return (table => $t\->as_hash(), details => $t\->as_string()); .Ve .SH "SOURCE" .IX Header "SOURCE" The source code repository for Test2 can be found at \&\fIhttp://github.com/Test\-More/test\-more/\fR. .SH "MAINTAINERS" .IX Header "MAINTAINERS" .IP "Chad Granum " 4 .IX Item "Chad Granum " .SH "AUTHORS" .IX Header "AUTHORS" .PD 0 .IP "Chad Granum " 4 .IX Item "Chad Granum " .PD .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2019 Chad Granum . .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP See \fIhttp://dev.perl.org/licenses/\fR man3/Module::Build.3pm000044400000126227147645265660010451 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Module::Build 3" .TH Module::Build 3 "2020-03-05" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Module::Build \- Build and install Perl modules .SH "SYNOPSIS" .IX Header "SYNOPSIS" Standard process for building & installing modules: .PP .Vb 4 \& perl Build.PL \& ./Build \& ./Build test \& ./Build install .Ve .PP Or, if you're on a platform (like \s-1DOS\s0 or Windows) that doesn't require the \*(L"./\*(R" notation, you can do this: .PP .Vb 4 \& perl Build.PL \& Build \& Build test \& Build install .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\f(CW\*(C`Module::Build\*(C'\fR is a system for building, testing, and installing Perl modules. It is meant to be an alternative to \&\f(CW\*(C`ExtUtils::MakeMaker\*(C'\fR. Developers may alter the behavior of the module through subclassing. It also does not require a \f(CW\*(C`make\*(C'\fR on your system \- most of the \f(CW\*(C`Module::Build\*(C'\fR code is pure-perl and written in a very cross-platform way. .PP See \*(L"\s-1COMPARISON\*(R"\s0 for more comparisons between \f(CW\*(C`Module::Build\*(C'\fR and other installer tools. .PP To install \f(CW\*(C`Module::Build\*(C'\fR, and any other module that uses \&\f(CW\*(C`Module::Build\*(C'\fR for its installation process, do the following: .PP .Vb 4 \& perl Build.PL # \*(AqBuild.PL\*(Aq script creates the \*(AqBuild\*(Aq script \& ./Build # Need ./ to ensure we\*(Aqre using this "Build" script \& ./Build test # and not another one that happens to be in the PATH \& ./Build install .Ve .PP This illustrates initial configuration and the running of three \&'actions'. In this case the actions run are 'build' (the default action), 'test', and 'install'. Other actions defined so far include: .PP .Vb 10 \& build manifest \& clean manifest_skip \& code manpages \& config_data pardist \& diff ppd \& dist ppmdist \& distcheck prereq_data \& distclean prereq_report \& distdir pure_install \& distinstall realclean \& distmeta retest \& distsign skipcheck \& disttest test \& docs testall \& fakeinstall testcover \& help testdb \& html testpod \& install testpodcoverage \& installdeps versioninstall .Ve .PP You can run the 'help' action for a complete list of actions. .SH "GUIDE TO DOCUMENTATION" .IX Header "GUIDE TO DOCUMENTATION" The documentation for \f(CW\*(C`Module::Build\*(C'\fR is broken up into sections: .IP "General Usage (Module::Build)" 4 .IX Item "General Usage (Module::Build)" This is the document you are currently reading. It describes basic usage and background information. Its main purpose is to assist the user who wants to learn how to invoke and control \f(CW\*(C`Module::Build\*(C'\fR scripts at the command line. .IP "Authoring Reference (Module::Build::Authoring)" 4 .IX Item "Authoring Reference (Module::Build::Authoring)" This document describes the structure and organization of \&\f(CW\*(C`Module::Build\*(C'\fR, and the relevant concepts needed by authors who are writing \fIBuild.PL\fR scripts for a distribution or controlling \&\f(CW\*(C`Module::Build\*(C'\fR processes programmatically. .IP "\s-1API\s0 Reference (Module::Build::API)" 4 .IX Item "API Reference (Module::Build::API)" This is a reference to the \f(CW\*(C`Module::Build\*(C'\fR \s-1API.\s0 .IP "Cookbook (Module::Build::Cookbook)" 4 .IX Item "Cookbook (Module::Build::Cookbook)" This document demonstrates how to accomplish many common tasks. It covers general command line usage and authoring of \fIBuild.PL\fR scripts. Includes working examples. .SH "ACTIONS" .IX Header "ACTIONS" There are some general principles at work here. First, each task when building a module is called an \*(L"action\*(R". These actions are listed above; they correspond to the building, testing, installing, packaging, etc., tasks. .PP Second, arguments are processed in a very systematic way. Arguments are always key=value pairs. They may be specified at \f(CW\*(C`perl Build.PL\*(C'\fR time (i.e. \f(CW\*(C`perl Build.PL destdir=/my/secret/place\*(C'\fR), in which case their values last for the lifetime of the \f(CW\*(C`Build\*(C'\fR script. They may also be specified when executing a particular action (i.e. \&\f(CW\*(C`Build test verbose=1\*(C'\fR), in which case their values last only for the lifetime of that command. Per-action command line parameters take precedence over parameters specified at \f(CW\*(C`perl Build.PL\*(C'\fR time. .PP The build process also relies heavily on the \f(CW\*(C`Config.pm\*(C'\fR module. If the user wishes to override any of the values in \f(CW\*(C`Config.pm\*(C'\fR, she may specify them like so: .PP .Vb 1 \& perl Build.PL \-\-config cc=gcc \-\-config ld=gcc .Ve .PP The following build actions are provided by default. .IP "build" 4 .IX Item "build" [version 0.01] .Sp If you run the \f(CW\*(C`Build\*(C'\fR script without any arguments, it runs the \&\f(CW\*(C`build\*(C'\fR action, which in turn runs the \f(CW\*(C`code\*(C'\fR and \f(CW\*(C`docs\*(C'\fR actions. .Sp This is analogous to the \f(CW\*(C`MakeMaker\*(C'\fR \fImake all\fR target. .IP "clean" 4 .IX Item "clean" [version 0.01] .Sp This action will clean up any files that the build process may have created, including the \f(CW\*(C`blib/\*(C'\fR directory (but not including the \&\f(CW\*(C`_build/\*(C'\fR directory and the \f(CW\*(C`Build\*(C'\fR script itself). .IP "code" 4 .IX Item "code" [version 0.20] .Sp This action builds your code base. .Sp By default it just creates a \f(CW\*(C`blib/\*(C'\fR directory and copies any \f(CW\*(C`.pm\*(C'\fR and \f(CW\*(C`.pod\*(C'\fR files from your \f(CW\*(C`lib/\*(C'\fR directory into the \f(CW\*(C`blib/\*(C'\fR directory. It also compiles any \f(CW\*(C`.xs\*(C'\fR files from \f(CW\*(C`lib/\*(C'\fR and places them in \f(CW\*(C`blib/\*(C'\fR. Of course, you need a working C compiler (probably the same one that built perl itself) for the compilation to work properly. .Sp The \f(CW\*(C`code\*(C'\fR action also runs any \f(CW\*(C`.PL\*(C'\fR files in your \fIlib/\fR directory. Typically these create other files, named the same but without the \f(CW\*(C`.PL\*(C'\fR ending. For example, a file \fIlib/Foo/Bar.pm.PL\fR could create the file \fIlib/Foo/Bar.pm\fR. The \f(CW\*(C`.PL\*(C'\fR files are processed first, so any \f(CW\*(C`.pm\*(C'\fR files (or other kinds that we deal with) will get copied correctly. .IP "config_data" 4 .IX Item "config_data" [version 0.26] .Sp \&... .IP "diff" 4 .IX Item "diff" [version 0.14] .Sp This action will compare the files about to be installed with their installed counterparts. For .pm and .pod files, a diff will be shown (this currently requires a 'diff' program to be in your \s-1PATH\s0). For other files like compiled binary files, we simply report whether they differ. .Sp A \f(CW\*(C`flags\*(C'\fR parameter may be passed to the action, which will be passed to the 'diff' program. Consult your 'diff' documentation for the parameters it will accept \- a good one is \f(CW\*(C`\-u\*(C'\fR: .Sp .Vb 1 \& ./Build diff flags=\-u .Ve .IP "dist" 4 .IX Item "dist" [version 0.02] .Sp This action is helpful for module authors who want to package up their module for source distribution through a medium like \s-1CPAN. \s0 It will create a tarball of the files listed in \fI\s-1MANIFEST\s0\fR and compress the tarball using \&\s-1GZIP\s0 compression. .Sp By default, this action will use the \f(CW\*(C`Archive::Tar\*(C'\fR module. However, you can force it to use binary \*(L"tar\*(R" and \*(L"gzip\*(R" executables by supplying an explicit \&\f(CW\*(C`tar\*(C'\fR (and optional \f(CW\*(C`gzip\*(C'\fR) parameter: .Sp .Vb 1 \& ./Build dist \-\-tar C:\epath\eto\etar.exe \-\-gzip C:\epath\eto\ezip.exe .Ve .IP "distcheck" 4 .IX Item "distcheck" [version 0.05] .Sp Reports which files are in the build directory but not in the \&\fI\s-1MANIFEST\s0\fR file, and vice versa. (See \*(L"manifest\*(R" for details.) .IP "distclean" 4 .IX Item "distclean" [version 0.05] .Sp Performs the 'realclean' action and then the 'distcheck' action. .IP "distdir" 4 .IX Item "distdir" [version 0.05] .Sp Creates a \*(L"distribution directory\*(R" named \f(CW\*(C`$dist_name\-$dist_version\*(C'\fR (if that directory already exists, it will be removed first), then copies all the files listed in the \fI\s-1MANIFEST\s0\fR file to that directory. This directory is what the distribution tarball is created from. .IP "distinstall" 4 .IX Item "distinstall" [version 0.37] .Sp Performs the 'distdir' action, then switches into that directory and runs a \&\f(CW\*(C`perl Build.PL\*(C'\fR, followed by the 'build' and 'install' actions in that directory. Use \s-1PERL_MB_OPT\s0 or \fI.modulebuildrc\fR to set options that should be applied during subprocesses .IP "distmeta" 4 .IX Item "distmeta" [version 0.21] .Sp Creates the \fI\s-1META\s0.yml\fR file that describes the distribution. .Sp \&\fI\s-1META\s0.yml\fR is a file containing various bits of \fImetadata\fR about the distribution. The metadata includes the distribution name, version, abstract, prerequisites, license, and various other data about the distribution. This file is created as \fI\s-1META\s0.yml\fR in a simplified \s-1YAML\s0 format. .Sp \&\fI\s-1META\s0.yml\fR file must also be listed in \fI\s-1MANIFEST\s0\fR \- if it's not, a warning will be issued. .Sp The current version of the \fI\s-1META\s0.yml\fR specification can be found on \s-1CPAN\s0 as CPAN::Meta::Spec. .IP "distsign" 4 .IX Item "distsign" [version 0.16] .Sp Uses \f(CW\*(C`Module::Signature\*(C'\fR to create a \s-1SIGNATURE\s0 file for your distribution, and adds the \s-1SIGNATURE\s0 file to the distribution's \&\s-1MANIFEST.\s0 .IP "disttest" 4 .IX Item "disttest" [version 0.05] .Sp Performs the 'distdir' action, then switches into that directory and runs a \&\f(CW\*(C`perl Build.PL\*(C'\fR, followed by the 'build' and 'test' actions in that directory. Use \s-1PERL_MB_OPT\s0 or \fI.modulebuildrc\fR to set options that should be applied during subprocesses .IP "docs" 4 .IX Item "docs" [version 0.20] .Sp This will generate documentation (e.g. Unix man pages and \s-1HTML\s0 documents) for any installable items under \fBblib/\fR that contain \s-1POD. \s0 If there are no \f(CW\*(C`bindoc\*(C'\fR or \f(CW\*(C`libdoc\*(C'\fR installation targets defined (as will be the case on systems that don't support Unix manpages) no action is taken for manpages. If there are no \&\f(CW\*(C`binhtml\*(C'\fR or \f(CW\*(C`libhtml\*(C'\fR installation targets defined no action is taken for \s-1HTML\s0 documents. .IP "fakeinstall" 4 .IX Item "fakeinstall" [version 0.02] .Sp This is just like the \f(CW\*(C`install\*(C'\fR action, but it won't actually do anything, it will just report what it \fIwould\fR have done if you had actually run the \f(CW\*(C`install\*(C'\fR action. .IP "help" 4 .IX Item "help" [version 0.03] .Sp This action will simply print out a message that is meant to help you use the build process. It will show you a list of available build actions too. .Sp With an optional argument specifying an action name (e.g. \f(CW\*(C`Build help test\*(C'\fR), the 'help' action will show you any \s-1POD\s0 documentation it can find for that action. .IP "html" 4 .IX Item "html" [version 0.26] .Sp This will generate \s-1HTML\s0 documentation for any binary or library files under \fBblib/\fR that contain \s-1POD. \s0 The \s-1HTML\s0 documentation will only be installed if the install paths can be determined from values in \&\f(CW\*(C`Config.pm\*(C'\fR. You can also supply or override install paths on the command line by specifying \f(CW\*(C`install_path\*(C'\fR values for the \f(CW\*(C`binhtml\*(C'\fR and/or \f(CW\*(C`libhtml\*(C'\fR installation targets. .Sp With an optional \f(CW\*(C`html_links\*(C'\fR argument set to a false value, you can skip the search for other documentation to link to, because that can waste a lot of time if there aren't any links to generate anyway: .Sp .Vb 1 \& ./Build html \-\-html_links 0 .Ve .IP "install" 4 .IX Item "install" [version 0.01] .Sp This action will use \f(CW\*(C`ExtUtils::Install\*(C'\fR to install the files from \&\f(CW\*(C`blib/\*(C'\fR into the system. See \*(L"\s-1INSTALL PATHS\*(R"\s0 for details about how Module::Build determines where to install things, and how to influence this process. .Sp If you want the installation process to look around in \f(CW@INC\fR for other versions of the stuff you're installing and try to delete it, you can use the \f(CW\*(C`uninst\*(C'\fR parameter, which tells \f(CW\*(C`ExtUtils::Install\*(C'\fR to do so: .Sp .Vb 1 \& ./Build install uninst=1 .Ve .Sp This can be a good idea, as it helps prevent multiple versions of a module from being present on your system, which can be a confusing situation indeed. .IP "installdeps" 4 .IX Item "installdeps" [version 0.36] .Sp This action will use the \f(CW\*(C`cpan_client\*(C'\fR parameter as a command to install missing prerequisites. You will be prompted whether to install optional dependencies. .Sp The \f(CW\*(C`cpan_client\*(C'\fR option defaults to 'cpan' but can be set as an option or in \&\fI.modulebuildrc\fR. It must be a shell command that takes a list of modules to install as arguments (e.g. 'cpanp \-i' for \s-1CPANPLUS\s0). If the program part is a relative path (e.g. 'cpan' or 'cpanp'), it will be located relative to the perl program that executed Build.PL. .Sp .Vb 3 \& /opt/perl/5.8.9/bin/perl Build.PL \& ./Build installdeps \-\-cpan_client \*(Aqcpanp \-i\*(Aq \& # installs to 5.8.9 .Ve .IP "manifest" 4 .IX Item "manifest" [version 0.05] .Sp This is an action intended for use by module authors, not people installing modules. It will bring the \fI\s-1MANIFEST\s0\fR up to date with the files currently present in the distribution. You may use a \&\fI\s-1MANIFEST.SKIP\s0\fR file to exclude certain files or directories from inclusion in the \fI\s-1MANIFEST\s0\fR. \fI\s-1MANIFEST.SKIP\s0\fR should contain a bunch of regular expressions, one per line. If a file in the distribution directory matches any of the regular expressions, it won't be included in the \fI\s-1MANIFEST\s0\fR. .Sp The following is a reasonable \fI\s-1MANIFEST.SKIP\s0\fR starting point, you can add your own stuff to it: .Sp .Vb 7 \& ^_build \& ^Build$ \& ^blib \& ~$ \& \e.bak$ \& ^MANIFEST\e.SKIP$ \& CVS .Ve .Sp See the \*(L"distcheck\*(R" and \*(L"skipcheck\*(R" actions if you want to find out what the \f(CW\*(C`manifest\*(C'\fR action would do, without actually doing anything. .IP "manifest_skip" 4 .IX Item "manifest_skip" [version 0.3608] .Sp This is an action intended for use by module authors, not people installing modules. It will generate a boilerplate \s-1MANIFEST.SKIP\s0 file if one does not already exist. .IP "manpages" 4 .IX Item "manpages" [version 0.28] .Sp This will generate man pages for any binary or library files under \&\fBblib/\fR that contain \s-1POD. \s0 The man pages will only be installed if the install paths can be determined from values in \f(CW\*(C`Config.pm\*(C'\fR. You can also supply or override install paths by specifying there values on the command line with the \f(CW\*(C`bindoc\*(C'\fR and \f(CW\*(C`libdoc\*(C'\fR installation targets. .IP "pardist" 4 .IX Item "pardist" [version 0.2806] .Sp Generates a \s-1PAR\s0 binary distribution for use with \s-1PAR\s0 or PAR::Dist. .Sp It requires that the PAR::Dist module (version 0.17 and up) is installed on your system. .IP "ppd" 4 .IX Item "ppd" [version 0.20] .Sp Build a \s-1PPD\s0 file for your distribution. .Sp This action takes an optional argument \f(CW\*(C`codebase\*(C'\fR which is used in the generated \s-1PPD\s0 file to specify the (usually relative) \s-1URL\s0 of the distribution. By default, this value is the distribution name without any path information. .Sp Example: .Sp .Vb 1 \& ./Build ppd \-\-codebase "MSWin32\-x86\-multi\-thread/Module\-Build\-0.21.tar.gz" .Ve .IP "ppmdist" 4 .IX Item "ppmdist" [version 0.23] .Sp Generates a \s-1PPM\s0 binary distribution and a \s-1PPD\s0 description file. This action also invokes the \f(CW\*(C`ppd\*(C'\fR action, so it can accept the same \&\f(CW\*(C`codebase\*(C'\fR argument described under that action. .Sp This uses the same mechanism as the \f(CW\*(C`dist\*(C'\fR action to tar & zip its output, so you can supply \f(CW\*(C`tar\*(C'\fR and/or \f(CW\*(C`gzip\*(C'\fR parameters to affect the result. .IP "prereq_data" 4 .IX Item "prereq_data" [version 0.32] .Sp This action prints out a Perl data structure of all prerequisites and the versions required. The output can be loaded again using \f(CW\*(C`eval()\*(C'\fR. This can be useful for external tools that wish to query a Build script for prerequisites. .IP "prereq_report" 4 .IX Item "prereq_report" [version 0.28] .Sp This action prints out a list of all prerequisites, the versions required, and the versions actually installed. This can be useful for reviewing the configuration of your system prior to a build, or when compiling data to send for a bug report. .IP "pure_install" 4 .IX Item "pure_install" [version 0.28] .Sp This action is identical to the \f(CW\*(C`install\*(C'\fR action. In the future, though, when \f(CW\*(C`install\*(C'\fR starts writing to the file \&\fI$(\s-1INSTALLARCHLIB\s0)/perllocal.pod\fR, \f(CW\*(C`pure_install\*(C'\fR won't, and that will be the only difference between them. .IP "realclean" 4 .IX Item "realclean" [version 0.01] .Sp This action is just like the \f(CW\*(C`clean\*(C'\fR action, but also removes the \&\f(CW\*(C`_build\*(C'\fR directory and the \f(CW\*(C`Build\*(C'\fR script. If you run the \&\f(CW\*(C`realclean\*(C'\fR action, you are essentially starting over, so you will have to re-create the \f(CW\*(C`Build\*(C'\fR script again. .IP "retest" 4 .IX Item "retest" [version 0.2806] .Sp This is just like the \f(CW\*(C`test\*(C'\fR action, but doesn't actually build the distribution first, and doesn't add \fIblib/\fR to the load path, and therefore will test against a \fIpreviously\fR installed version of the distribution. This can be used to verify that a certain installed distribution still works, or to see whether newer versions of a distribution still pass the old regression tests, and so on. .IP "skipcheck" 4 .IX Item "skipcheck" [version 0.05] .Sp Reports which files are skipped due to the entries in the \&\fI\s-1MANIFEST.SKIP\s0\fR file (See \*(L"manifest\*(R" for details) .IP "test" 4 .IX Item "test" [version 0.01] .Sp This will use \f(CW\*(C`Test::Harness\*(C'\fR or \f(CW\*(C`TAP::Harness\*(C'\fR to run any regression tests and report their results. Tests can be defined in the standard places: a file called \f(CW\*(C`test.pl\*(C'\fR in the top-level directory, or several files ending with \f(CW\*(C`.t\*(C'\fR in a \f(CW\*(C`t/\*(C'\fR directory. .Sp If you want tests to be 'verbose', i.e. show details of test execution rather than just summary information, pass the argument \f(CW\*(C`verbose=1\*(C'\fR. .Sp If you want to run tests under the perl debugger, pass the argument \&\f(CW\*(C`debugger=1\*(C'\fR. .Sp If you want to have Module::Build find test files with different file name extensions, pass the \f(CW\*(C`test_file_exts\*(C'\fR argument with an array of extensions, such as \f(CW\*(C`[qw( .t .s .z )]\*(C'\fR. .Sp If you want test to be run by \f(CW\*(C`TAP::Harness\*(C'\fR, rather than \f(CW\*(C`Test::Harness\*(C'\fR, pass the argument \f(CW\*(C`tap_harness_args\*(C'\fR as an array reference of arguments to pass to the TAP::Harness constructor. .Sp In addition, if a file called \f(CW\*(C`visual.pl\*(C'\fR exists in the top-level directory, this file will be executed as a Perl script and its output will be shown to the user. This is a good place to put speed tests or other tests that don't use the \f(CW\*(C`Test::Harness\*(C'\fR format for output. .Sp To override the choice of tests to run, you may pass a \f(CW\*(C`test_files\*(C'\fR argument whose value is a whitespace-separated list of test scripts to run. This is especially useful in development, when you only want to run a single test to see whether you've squashed a certain bug yet: .Sp .Vb 1 \& ./Build test \-\-test_files t/something_failing.t .Ve .Sp You may also pass several \f(CW\*(C`test_files\*(C'\fR arguments separately: .Sp .Vb 1 \& ./Build test \-\-test_files t/one.t \-\-test_files t/two.t .Ve .Sp or use a \f(CW\*(C`glob()\*(C'\fR\-style pattern: .Sp .Vb 1 \& ./Build test \-\-test_files \*(Aqt/01\-*.t\*(Aq .Ve .IP "testall" 4 .IX Item "testall" [version 0.2807] .Sp [Note: the 'testall' action and the code snippets below are currently in alpha stage, see ] .Sp Runs the \f(CW\*(C`test\*(C'\fR action plus each of the \f(CW\*(C`test$type\*(C'\fR actions defined by the keys of the \f(CW\*(C`test_types\*(C'\fR parameter. .Sp Currently, you need to define the ACTION_test$type method yourself and enumerate them in the test_types parameter. .Sp .Vb 12 \& my $mb = Module::Build\->subclass( \& code => q( \& sub ACTION_testspecial { shift\->generic_test(type => \*(Aqspecial\*(Aq); } \& sub ACTION_testauthor { shift\->generic_test(type => \*(Aqauthor\*(Aq); } \& ) \& )\->new( \& ... \& test_types => { \& special => \*(Aq.st\*(Aq, \& author => [\*(Aq.at\*(Aq, \*(Aq.pt\*(Aq ], \& }, \& ... .Ve .IP "testcover" 4 .IX Item "testcover" [version 0.26] .Sp Runs the \f(CW\*(C`test\*(C'\fR action using \f(CW\*(C`Devel::Cover\*(C'\fR, generating a code-coverage report showing which parts of the code were actually exercised during the tests. .Sp To pass options to \f(CW\*(C`Devel::Cover\*(C'\fR, set the \f(CW$DEVEL_COVER_OPTIONS\fR environment variable: .Sp .Vb 1 \& DEVEL_COVER_OPTIONS=\-ignore,Build ./Build testcover .Ve .IP "testdb" 4 .IX Item "testdb" [version 0.05] .Sp This is a synonym for the 'test' action with the \f(CW\*(C`debugger=1\*(C'\fR argument. .IP "testpod" 4 .IX Item "testpod" [version 0.25] .Sp This checks all the files described in the \f(CW\*(C`docs\*(C'\fR action and produces \f(CW\*(C`Test::Harness\*(C'\fR\-style output. If you are a module author, this is useful to run before creating a new release. .IP "testpodcoverage" 4 .IX Item "testpodcoverage" [version 0.28] .Sp This checks the pod coverage of the distribution and produces \f(CW\*(C`Test::Harness\*(C'\fR\-style output. If you are a module author, this is useful to run before creating a new release. .IP "versioninstall" 4 .IX Item "versioninstall" [version 0.16] .Sp ** Note: since \f(CW\*(C`only.pm\*(C'\fR is so new, and since we just recently added support for it here too, this feature is to be considered experimental. ** .Sp If you have the \f(CW\*(C`only.pm\*(C'\fR module installed on your system, you can use this action to install a module into the version-specific library trees. This means that you can have several versions of the same module installed and \f(CW\*(C`use\*(C'\fR a specific one like this: .Sp .Vb 1 \& use only MyModule => 0.55; .Ve .Sp To override the default installation libraries in \f(CW\*(C`only::config\*(C'\fR, specify the \f(CW\*(C`versionlib\*(C'\fR parameter when you run the \f(CW\*(C`Build.PL\*(C'\fR script: .Sp .Vb 1 \& perl Build.PL \-\-versionlib /my/version/place/ .Ve .Sp To override which version the module is installed as, specify the \&\f(CW\*(C`version\*(C'\fR parameter when you run the \f(CW\*(C`Build.PL\*(C'\fR script: .Sp .Vb 1 \& perl Build.PL \-\-version 0.50 .Ve .Sp See the \f(CW\*(C`only.pm\*(C'\fR documentation for more information on version-specific installs. .SH "OPTIONS" .IX Header "OPTIONS" .SS "Command Line Options" .IX Subsection "Command Line Options" The following options can be used during any invocation of \f(CW\*(C`Build.PL\*(C'\fR or the Build script, during any action. For information on other options specific to an action, see the documentation for the respective action. .PP \&\s-1NOTE:\s0 There is some preliminary support for options to use the more familiar long option style. Most options can be preceded with the \&\f(CW\*(C`\-\-\*(C'\fR long option prefix, and the underscores changed to dashes (e.g. \f(CW\*(C`\-\-use\-rcfile\*(C'\fR). Additionally, the argument to boolean options is optional, and boolean options can be negated by prefixing them with \&\f(CW\*(C`no\*(C'\fR or \f(CW\*(C`no\-\*(C'\fR (e.g. \f(CW\*(C`\-\-noverbose\*(C'\fR or \f(CW\*(C`\-\-no\-verbose\*(C'\fR). .IP "quiet" 4 .IX Item "quiet" Suppress informative messages on output. .IP "verbose" 4 .IX Item "verbose" Display extra information about the Build on output. \f(CW\*(C`verbose\*(C'\fR will turn off \f(CW\*(C`quiet\*(C'\fR .IP "cpan_client" 4 .IX Item "cpan_client" Sets the \f(CW\*(C`cpan_client\*(C'\fR command for use with the \f(CW\*(C`installdeps\*(C'\fR action. See \f(CW\*(C`installdeps\*(C'\fR for more details. .IP "use_rcfile" 4 .IX Item "use_rcfile" Load the \fI~/.modulebuildrc\fR option file. This option can be set to false to prevent the custom resource file from being loaded. .IP "allow_mb_mismatch" 4 .IX Item "allow_mb_mismatch" Suppresses the check upon startup that the version of Module::Build we're now running under is the same version that was initially invoked when building the distribution (i.e. when the \f(CW\*(C`Build.PL\*(C'\fR script was first run). As of 0.3601, a mismatch results in a warning instead of a fatal error, so this option effectively just suppresses the warning. .IP "debug" 4 .IX Item "debug" Prints Module::Build debugging information to \s-1STDOUT,\s0 such as a trace of executed build actions. .SS "Default Options File (\fI.modulebuildrc\fP)" .IX Subsection "Default Options File (.modulebuildrc)" [version 0.28] .PP When Module::Build starts up, it will look first for a file, \&\fI\f(CI$ENV\fI{\s-1HOME\s0}/.modulebuildrc\fR. If it's not found there, it will look in the \fI.modulebuildrc\fR file in the directories referred to by the environment variables \f(CW\*(C`HOMEDRIVE\*(C'\fR + \f(CW\*(C`HOMEDIR\*(C'\fR, \f(CW\*(C`USERPROFILE\*(C'\fR, \&\f(CW\*(C`APPDATA\*(C'\fR, \f(CW\*(C`WINDIR\*(C'\fR, \f(CW\*(C`SYS$LOGIN\*(C'\fR. If the file exists, the options specified there will be used as defaults, as if they were typed on the command line. The defaults can be overridden by specifying new values on the command line. .PP The action name must come at the beginning of the line, followed by any amount of whitespace and then the options. Options are given the same as they would be on the command line. They can be separated by any amount of whitespace, including newlines, as long there is whitespace at the beginning of each continued line. Anything following a hash mark (\f(CW\*(C`#\*(C'\fR) is considered a comment, and is stripped before parsing. If more than one line begins with the same action name, those lines are merged into one set of options. .PP Besides the regular actions, there are two special pseudo-actions: the key \f(CW\*(C`*\*(C'\fR (asterisk) denotes any global options that should be applied to all actions, and the key 'Build_PL' specifies options to be applied when you invoke \f(CW\*(C`perl Build.PL\*(C'\fR. .PP .Vb 5 \& * verbose=1 # global options \& diff flags=\-u \& install \-\-install_base /home/ken \& \-\-install_path html=/home/ken/docs/html \& installdeps \-\-cpan_client \*(Aqcpanp \-i\*(Aq .Ve .PP If you wish to locate your resource file in a different location, you can set the environment variable \f(CW\*(C`MODULEBUILDRC\*(C'\fR to the complete absolute path of the file containing your options. .SS "Environment variables" .IX Subsection "Environment variables" .IP "\s-1MODULEBUILDRC\s0" 4 .IX Item "MODULEBUILDRC" [version 0.28] .Sp Specifies an alternate location for a default options file as described above. .IP "\s-1PERL_MB_OPT\s0" 4 .IX Item "PERL_MB_OPT" [version 0.36] .Sp Command line options that are applied to Build.PL or any Build action. The string is split as the shell would (e.g. whitespace) and the result is prepended to any actual command-line arguments. .SH "INSTALL PATHS" .IX Header "INSTALL PATHS" [version 0.19] .PP When you invoke Module::Build's \f(CW\*(C`build\*(C'\fR action, it needs to figure out where to install things. The nutshell version of how this works is that default installation locations are determined from \&\fIConfig.pm\fR, and they may be overridden by using the \f(CW\*(C`install_path\*(C'\fR parameter. An \f(CW\*(C`install_base\*(C'\fR parameter lets you specify an alternative installation root like \fI/home/foo\fR, and a \f(CW\*(C`destdir\*(C'\fR lets you specify a temporary installation directory like \fI/tmp/install\fR in case you want to create bundled-up installable packages. .PP Natively, Module::Build provides default installation locations for the following types of installable items: .IP "lib" 4 .IX Item "lib" Usually pure-Perl module files ending in \fI.pm\fR. .IP "arch" 4 .IX Item "arch" \&\*(L"Architecture-dependent\*(R" module files, usually produced by compiling \&\s-1XS, \s0Inline, or similar code. .IP "script" 4 .IX Item "script" Programs written in pure Perl. In order to improve reuse, try to make these as small as possible \- put the code into modules whenever possible. .IP "bin" 4 .IX Item "bin" \&\*(L"Architecture-dependent\*(R" executable programs, i.e. compiled C code or something. Pretty rare to see this in a perl distribution, but it happens. .IP "bindoc" 4 .IX Item "bindoc" Documentation for the stuff in \f(CW\*(C`script\*(C'\fR and \f(CW\*(C`bin\*(C'\fR. Usually generated from the \s-1POD\s0 in those files. Under Unix, these are manual pages belonging to the 'man1' category. .IP "libdoc" 4 .IX Item "libdoc" Documentation for the stuff in \f(CW\*(C`lib\*(C'\fR and \f(CW\*(C`arch\*(C'\fR. This is usually generated from the \s-1POD\s0 in \fI.pm\fR files. Under Unix, these are manual pages belonging to the 'man3' category. .IP "binhtml" 4 .IX Item "binhtml" This is the same as \f(CW\*(C`bindoc\*(C'\fR above, but applies to \s-1HTML\s0 documents. .IP "libhtml" 4 .IX Item "libhtml" This is the same as \f(CW\*(C`libdoc\*(C'\fR above, but applies to \s-1HTML\s0 documents. .PP Four other parameters let you control various aspects of how installation paths are determined: .IP "installdirs" 4 .IX Item "installdirs" The default destinations for these installable things come from entries in your system's \f(CW\*(C`Config.pm\*(C'\fR. You can select from three different sets of default locations by setting the \f(CW\*(C`installdirs\*(C'\fR parameter as follows: .Sp .Vb 2 \& \*(Aqinstalldirs\*(Aq set to: \& core site vendor \& \& uses the following defaults from Config.pm: \& \& lib => installprivlib installsitelib installvendorlib \& arch => installarchlib installsitearch installvendorarch \& script => installscript installsitescript installvendorscript \& bin => installbin installsitebin installvendorbin \& bindoc => installman1dir installsiteman1dir installvendorman1dir \& libdoc => installman3dir installsiteman3dir installvendorman3dir \& binhtml => installhtml1dir installsitehtml1dir installvendorhtml1dir [*] \& libhtml => installhtml3dir installsitehtml3dir installvendorhtml3dir [*] \& \& * Under some OS (eg. MSWin32) the destination for HTML documents is \& determined by the C entry C. .Ve .Sp The default value of \f(CW\*(C`installdirs\*(C'\fR is \*(L"site\*(R". If you're creating vendor distributions of module packages, you may want to do something like this: .Sp .Vb 1 \& perl Build.PL \-\-installdirs vendor .Ve .Sp or .Sp .Vb 1 \& ./Build install \-\-installdirs vendor .Ve .Sp If you're installing an updated version of a module that was included with perl itself (i.e. a \*(L"core module\*(R"), then you may set \&\f(CW\*(C`installdirs\*(C'\fR to \*(L"core\*(R" to overwrite the module in its present location. .Sp (Note that the 'script' line is different from \f(CW\*(C`MakeMaker\*(C'\fR \- unfortunately there's no such thing as \*(L"installsitescript\*(R" or \&\*(L"installvendorscript\*(R" entry in \f(CW\*(C`Config.pm\*(C'\fR, so we use the \&\*(L"installsitebin\*(R" and \*(L"installvendorbin\*(R" entries to at least get the general location right. In the future, if \f(CW\*(C`Config.pm\*(C'\fR adds some more appropriate entries, we'll start using those.) .IP "install_path" 4 .IX Item "install_path" Once the defaults have been set, you can override them. .Sp On the command line, that would look like this: .Sp .Vb 1 \& perl Build.PL \-\-install_path lib=/foo/lib \-\-install_path arch=/foo/lib/arch .Ve .Sp or this: .Sp .Vb 1 \& ./Build install \-\-install_path lib=/foo/lib \-\-install_path arch=/foo/lib/arch .Ve .IP "install_base" 4 .IX Item "install_base" You can also set the whole bunch of installation paths by supplying the \&\f(CW\*(C`install_base\*(C'\fR parameter to point to a directory on your system. For instance, if you set \f(CW\*(C`install_base\*(C'\fR to \*(L"/home/ken\*(R" on a Linux system, you'll install as follows: .Sp .Vb 8 \& lib => /home/ken/lib/perl5 \& arch => /home/ken/lib/perl5/i386\-linux \& script => /home/ken/bin \& bin => /home/ken/bin \& bindoc => /home/ken/man/man1 \& libdoc => /home/ken/man/man3 \& binhtml => /home/ken/html \& libhtml => /home/ken/html .Ve .Sp Note that this is \fIdifferent\fR from how \f(CW\*(C`MakeMaker\*(C'\fR's \f(CW\*(C`PREFIX\*(C'\fR parameter works. \f(CW\*(C`install_base\*(C'\fR just gives you a default layout under the directory you specify, which may have little to do with the \&\f(CW\*(C`installdirs=site\*(C'\fR layout. .Sp The exact layout under the directory you specify may vary by system \- we try to do the \*(L"sensible\*(R" thing on each platform. .IP "destdir" 4 .IX Item "destdir" If you want to install everything into a temporary directory first (for instance, if you want to create a directory tree that a package manager like \f(CW\*(C`rpm\*(C'\fR or \f(CW\*(C`dpkg\*(C'\fR could create a package from), you can use the \f(CW\*(C`destdir\*(C'\fR parameter: .Sp .Vb 1 \& perl Build.PL \-\-destdir /tmp/foo .Ve .Sp or .Sp .Vb 1 \& ./Build install \-\-destdir /tmp/foo .Ve .Sp This will effectively install to \*(L"/tmp/foo/$sitelib\*(R", \&\*(L"/tmp/foo/$sitearch\*(R", and the like, except that it will use \&\f(CW\*(C`File::Spec\*(C'\fR to make the pathnames work correctly on whatever platform you're installing on. .IP "prefix" 4 .IX Item "prefix" Provided for compatibility with \f(CW\*(C`ExtUtils::MakeMaker\*(C'\fR's \s-1PREFIX\s0 argument. \&\f(CW\*(C`prefix\*(C'\fR should be used when you want Module::Build to install your modules, documentation, and scripts in the same place as \&\f(CW\*(C`ExtUtils::MakeMaker\*(C'\fR's \s-1PREFIX\s0 mechanism. .Sp The following are equivalent. .Sp .Vb 2 \& perl Build.PL \-\-prefix /tmp/foo \& perl Makefile.PL PREFIX=/tmp/foo .Ve .Sp Because of the complex nature of the prefixification logic, the behavior of \s-1PREFIX\s0 in \f(CW\*(C`MakeMaker\*(C'\fR has changed subtly over time. Module::Build's \-\-prefix logic is equivalent to the \s-1PREFIX\s0 logic found in \f(CW\*(C`ExtUtils::MakeMaker\*(C'\fR 6.30. .Sp The maintainers of \f(CW\*(C`MakeMaker\*(C'\fR do understand the troubles with the \&\s-1PREFIX\s0 mechanism, and added \s-1INSTALL_BASE\s0 support in version 6.31 of \&\f(CW\*(C`MakeMaker\*(C'\fR, which was released in 2006. .Sp If you don't need to retain compatibility with old versions (pre\-6.31) of \f(CW\*(C`ExtUtils::MakeMaker\*(C'\fR or are starting a fresh Perl installation we recommend you use \&\f(CW\*(C`install_base\*(C'\fR instead (and \f(CW\*(C`INSTALL_BASE\*(C'\fR in \f(CW\*(C`ExtUtils::MakeMaker\*(C'\fR). See \*(L"Installing in the same location as ExtUtils::MakeMaker\*(R" in Module::Build::Cookbook for further information. .SH "COMPARISON" .IX Header "COMPARISON" A comparison between \f(CW\*(C`Module::Build\*(C'\fR and other \s-1CPAN\s0 distribution installers. .IP "\(bu" 4 ExtUtils::MakeMaker requires \f(CW\*(C`make\*(C'\fR and use of a \fIMakefile\fR. \&\f(CW\*(C`Module::Build\*(C'\fR does not, nor do other pure-perl installers following the \&\fIBuild.PL\fR spec such as Module::Build::Tiny. In practice, this is usually not an issue for the end user, as \f(CW\*(C`make\*(C'\fR is already required to install most \&\s-1CPAN\s0 modules, even on Windows. .IP "\(bu" 4 ExtUtils::MakeMaker has been a core module in every version of Perl 5, and must maintain compatibility to install the majority of \s-1CPAN\s0 modules. \&\f(CW\*(C`Module::Build\*(C'\fR was added to core in Perl 5.10 and removed from core in Perl 5.20, and (like ExtUtils::MakeMaker) is only updated to fix critical issues and maintain compatibility. \f(CW\*(C`Module::Build\*(C'\fR and other non-core installers like Module::Build::Tiny are installed from \s-1CPAN\s0 by declaring themselves as a \&\f(CW\*(C`configure\*(C'\fR phase prerequisite, and in this way any installer can be used in place of ExtUtils::MakeMaker. .IP "\(bu" 4 Customizing the build process with ExtUtils::MakeMaker involves overriding certain methods that form the \fIMakefile\fR by defining the subs in the \f(CW\*(C`MY::\*(C'\fR namespace, requiring in-depth knowledge of \fIMakefile\fR, but allowing targeted customization of the entire build. Customizing \f(CW\*(C`Module::Build\*(C'\fR involves subclassing \f(CW\*(C`Module::Build\*(C'\fR itself, adding or overriding pure-perl methods that represent build actions, which are invoked as arguments passed to the generated \f(CW\*(C`./Build\*(C'\fR script. This is a simpler concept but requires redefining the standard build actions to invoke your customizations. Module::Build::Tiny does not allow for customization. .IP "\(bu" 4 \&\f(CW\*(C`Module::Build\*(C'\fR provides more features and a better experience for distribution authors than ExtUtils::MakeMaker. However, tools designed specifically for authoring, such as Dist::Zilla and its spinoffs Dist::Milla and Minilla, provide these features and more, and generate a configure script (\fIMakefile.PL\fR/\fIBuild.PL\fR) that will use any of the various installers separately on the end user side. App::ModuleBuildTiny is an alternative standalone authoring tool for distributions using Module::Build::Tiny, which requires only a simple two-line \fIBuild.PL\fR. .SH "TO DO" .IX Header "TO DO" The current method of relying on time stamps to determine whether a derived file is out of date isn't likely to scale well, since it requires tracing all dependencies backward, it runs into problems on \&\s-1NFS,\s0 and it's just generally flimsy. It would be better to use an \s-1MD5\s0 signature or the like, if available. See \f(CW\*(C`cons\*(C'\fR for an example. .PP .Vb 2 \& \- append to perllocal.pod \& \- add a \*(Aqplugin\*(Aq functionality .Ve .SH "AUTHOR" .IX Header "AUTHOR" Ken Williams .PP Development questions, bug reports, and patches should be sent to the Module-Build mailing list at . .PP Bug reports are also welcome at . .PP The latest development version is available from the Git repository at .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 2001\-2006 Ken Williams. All rights reserved. .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIperl\fR\|(1), Module::Build::Cookbook, Module::Build::Authoring, Module::Build::API, ExtUtils::MakeMaker .PP \&\fI\s-1META\s0.yml\fR Specification: CPAN::Meta::Spec .PP .PP man3/JSON::backportPP::Boolean.3pm000044400000011027147645265660012456 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "JSON::backportPP::Boolean 3" .TH JSON::backportPP::Boolean 3 "2019-02-22" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" JSON::PP::Boolean \- dummy module providing JSON::PP::Boolean .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& # do not "use" yourself .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This module exists only to provide overload resolution for Storable and similar modules. See \&\s-1JSON::PP\s0 for more info about this class. .SH "AUTHOR" .IX Header "AUTHOR" This idea is from JSON::XS::Boolean written by Marc Lehmann .SH "LICENSE" .IX Header "LICENSE" This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. man3/Module::Build::Platform::Default.3pm000044400000010612147645265660014021 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Module::Build::Platform::Default 3" .TH Module::Build::Platform::Default 3 "2020-03-05" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Module::Build::Platform::Default \- Stub class for unknown platforms .SH "DESCRIPTION" .IX Header "DESCRIPTION" The sole purpose of this module is to inherit from \&\f(CW\*(C`Module::Build::Base\*(C'\fR. Please see the Module::Build for the docs. .SH "AUTHOR" .IX Header "AUTHOR" Ken Williams .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIperl\fR\|(1), \fIModule::Build\fR\|(3), \fIExtUtils::MakeMaker\fR\|(3) man3/Test2::EventFacet::Hub.3pm000044400000016172147645265660012032 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test2::EventFacet::Hub 3" .TH Test2::EventFacet::Hub 3 "2019-09-06" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test2::EventFacet::Hub \- Facet for the hubs an event passes through. .SH "DESCRIPTION" .IX Header "DESCRIPTION" These are a record of the hubs an event passes through. Most recent hub is the first one in the list. .SH "FACET FIELDS" .IX Header "FACET FIELDS" .ie n .IP "$string = $trace\->{details}" 4 .el .IP "\f(CW$string\fR = \f(CW$trace\fR\->{details}" 4 .IX Item "$string = $trace->{details}" .PD 0 .ie n .IP "$string = $trace\->\fIdetails()\fR" 4 .el .IP "\f(CW$string\fR = \f(CW$trace\fR\->\fIdetails()\fR" 4 .IX Item "$string = $trace->details()" .PD The hub class or subclass .ie n .IP "$int = $trace\->{pid}" 4 .el .IP "\f(CW$int\fR = \f(CW$trace\fR\->{pid}" 4 .IX Item "$int = $trace->{pid}" .PD 0 .ie n .IP "$int = $trace\->\fIpid()\fR" 4 .el .IP "\f(CW$int\fR = \f(CW$trace\fR\->\fIpid()\fR" 4 .IX Item "$int = $trace->pid()" .PD \&\s-1PID\s0 of the hub this event was sent to. .ie n .IP "$int = $trace\->{tid}" 4 .el .IP "\f(CW$int\fR = \f(CW$trace\fR\->{tid}" 4 .IX Item "$int = $trace->{tid}" .PD 0 .ie n .IP "$int = $trace\->\fItid()\fR" 4 .el .IP "\f(CW$int\fR = \f(CW$trace\fR\->\fItid()\fR" 4 .IX Item "$int = $trace->tid()" .PD The thread \s-1ID\s0 of the hub the event was sent to. .ie n .IP "$hid = $trace\->{hid}" 4 .el .IP "\f(CW$hid\fR = \f(CW$trace\fR\->{hid}" 4 .IX Item "$hid = $trace->{hid}" .PD 0 .ie n .IP "$hid = $trace\->\fIhid()\fR" 4 .el .IP "\f(CW$hid\fR = \f(CW$trace\fR\->\fIhid()\fR" 4 .IX Item "$hid = $trace->hid()" .PD The \s-1ID\s0 of the hub that the event was send to. .ie n .IP "$huuid = $trace\->{huuid}" 4 .el .IP "\f(CW$huuid\fR = \f(CW$trace\fR\->{huuid}" 4 .IX Item "$huuid = $trace->{huuid}" .PD 0 .ie n .IP "$huuid = $trace\->\fIhuuid()\fR" 4 .el .IP "\f(CW$huuid\fR = \f(CW$trace\fR\->\fIhuuid()\fR" 4 .IX Item "$huuid = $trace->huuid()" .PD The \s-1UUID\s0 of the hub that the event was sent to. .ie n .IP "$int = $trace\->{nested}" 4 .el .IP "\f(CW$int\fR = \f(CW$trace\fR\->{nested}" 4 .IX Item "$int = $trace->{nested}" .PD 0 .ie n .IP "$int = $trace\->\fInested()\fR" 4 .el .IP "\f(CW$int\fR = \f(CW$trace\fR\->\fInested()\fR" 4 .IX Item "$int = $trace->nested()" .PD How deeply nested the hub was. .ie n .IP "$bool = $trace\->{buffered}" 4 .el .IP "\f(CW$bool\fR = \f(CW$trace\fR\->{buffered}" 4 .IX Item "$bool = $trace->{buffered}" .PD 0 .ie n .IP "$bool = $trace\->\fIbuffered()\fR" 4 .el .IP "\f(CW$bool\fR = \f(CW$trace\fR\->\fIbuffered()\fR" 4 .IX Item "$bool = $trace->buffered()" .PD True if the event was buffered and not sent to the formatter independent of a parent (This should never be set when nested is \f(CW0\fR or \f(CW\*(C`undef\*(C'\fR). .SH "SOURCE" .IX Header "SOURCE" The source code repository for Test2 can be found at \&\fIhttp://github.com/Test\-More/test\-more/\fR. .SH "MAINTAINERS" .IX Header "MAINTAINERS" .IP "Chad Granum " 4 .IX Item "Chad Granum " .SH "AUTHORS" .IX Header "AUTHORS" .PD 0 .IP "Chad Granum " 4 .IX Item "Chad Granum " .PD .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2019 Chad Granum . .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP See \fIhttp://dev.perl.org/licenses/\fR man3/TAP::Parser::SourceHandler::Executable.3pm000044400000015675147645265660015102 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "TAP::Parser::SourceHandler::Executable 3" .TH TAP::Parser::SourceHandler::Executable 3 "2018-03-19" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" TAP::Parser::SourceHandler::Executable \- Stream output from an executable TAP source .SH "VERSION" .IX Header "VERSION" Version 3.42 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& use TAP::Parser::Source; \& use TAP::Parser::SourceHandler::Executable; \& \& my $source = TAP::Parser::Source\->new\->raw([\*(Aq/usr/bin/ruby\*(Aq, \*(Aqmytest.rb\*(Aq]); \& $source\->assemble_meta; \& \& my $class = \*(AqTAP::Parser::SourceHandler::Executable\*(Aq; \& my $vote = $class\->can_handle( $source ); \& my $iter = $class\->make_iterator( $source ); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This is an \fIexecutable\fR TAP::Parser::SourceHandler \- it has 2 jobs: .PP 1. Figure out if the TAP::Parser::Source it's given is an executable command (\*(L"can_handle\*(R"). .PP 2. Creates an iterator for executable commands (\*(L"make_iterator\*(R"). .PP Unless you're writing a plugin or subclassing TAP::Parser, you probably won't need to use this module directly. .SH "METHODS" .IX Header "METHODS" .SS "Class Methods" .IX Subsection "Class Methods" \fI\f(CI\*(C`can_handle\*(C'\fI\fR .IX Subsection "can_handle" .PP .Vb 1 \& my $vote = $class\->can_handle( $source ); .Ve .PP Only votes if \f(CW$source\fR looks like an executable file. Casts the following votes: .PP .Vb 3 \& 0.9 if it\*(Aqs a hash with an \*(Aqexec\*(Aq key \& 0.8 if it\*(Aqs a .bat file \& 0.75 if it\*(Aqs got an execute bit set .Ve .PP \fI\f(CI\*(C`make_iterator\*(C'\fI\fR .IX Subsection "make_iterator" .PP .Vb 1 \& my $iterator = $class\->make_iterator( $source ); .Ve .PP Returns a new TAP::Parser::Iterator::Process for the source. \&\f(CW\*(C`$source\->raw\*(C'\fR must be in one of the following forms: .PP .Vb 1 \& { exec => [ @exec ] } \& \& [ @exec ] \& \& $file .Ve .PP \&\f(CW\*(C`croak\*(C'\fRs on error. .PP \fI\f(CI\*(C`iterator_class\*(C'\fI\fR .IX Subsection "iterator_class" .PP The class of iterator to use, override if you're sub-classing. Defaults to TAP::Parser::Iterator::Process. .SH "SUBCLASSING" .IX Header "SUBCLASSING" Please see \*(L"\s-1SUBCLASSING\*(R"\s0 in TAP::Parser for a subclassing overview. .SS "Example" .IX Subsection "Example" .Vb 1 \& package MyRubySourceHandler; \& \& use strict; \& \& use Carp qw( croak ); \& use TAP::Parser::SourceHandler::Executable; \& \& use base \*(AqTAP::Parser::SourceHandler::Executable\*(Aq; \& \& # expect $handler\->([\*(Aqmytest.rb\*(Aq, \*(Aqcmdline\*(Aq, \*(Aqargs\*(Aq]); \& sub make_iterator { \& my ($self, $source) = @_; \& my @test_args = @{ $source\->test_args }; \& my $rb_file = $test_args[0]; \& croak("error: Ruby file \*(Aq$rb_file\*(Aq not found!") unless (\-f $rb_file); \& return $self\->SUPER::raw_source([\*(Aq/usr/bin/ruby\*(Aq, @test_args]); \& } .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" TAP::Object, TAP::Parser, TAP::Parser::IteratorFactory, TAP::Parser::SourceHandler, TAP::Parser::SourceHandler::Perl, TAP::Parser::SourceHandler::File, TAP::Parser::SourceHandler::Handle, TAP::Parser::SourceHandler::RawTAP man3/CGI::Push.3pm000044400000027102147645265660007476 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CGI::Push 3" .TH CGI::Push 3 "2020-02-03" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" CGI::Push \- Simple Interface to Server Push .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& use strict; \& use warnings; \& \& use CGI::Push qw(:standard); \& \& do_push( \& \-next_page => \e&next_page, \& \-last_page => \e&last_page, \& \-delay => 0.5 \& ); \& \& sub next_page { \& my($q,$counter) = @_; \& return undef if $counter >= 10; \& .... \& } \& \& sub last_page { \& my($q,$counter) = @_; \& return ... \& } .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" CGI::Push is a subclass of the \s-1CGI\s0 object created by \s-1CGI\s0.pm. It is specialized for server push operations, which allow you to create animated pages whose content changes at regular intervals. .PP You provide CGI::Push with a pointer to a subroutine that will draw one page. Every time your subroutine is called, it generates a new page. The contents of the page will be transmitted to the browser in such a way that it will replace what was there beforehand. The technique will work with \s-1HTML\s0 pages as well as with graphics files, allowing you to create animated GIFs. .PP Only Netscape Navigator supports server push. Internet Explorer browsers do not. .SH "USING CGI::Push" .IX Header "USING CGI::Push" CGI::Push adds one new method to the standard \s-1CGI\s0 suite, \fIdo_push()\fR. When you call this method, you pass it a reference to a subroutine that is responsible for drawing each new page, an interval delay, and an optional subroutine for drawing the last page. Other optional parameters include most of those recognized by the \s-1CGI\s0 \fIheader()\fR method. .PP You may call \fIdo_push()\fR in the object oriented manner or not, as you prefer: .PP .Vb 3 \& use CGI::Push; \& $q = CGI::Push\->new; \& $q\->do_push(\-next_page=>\e&draw_a_page); \& \& \-or\- \& \& use CGI::Push qw(:standard); \& do_push(\-next_page=>\e&draw_a_page); .Ve .PP Parameters are as follows: .IP "\-next_page" 4 .IX Item "-next_page" .Vb 1 \& do_push(\-next_page=>\e&my_draw_routine); .Ve .Sp This required parameter points to a reference to a subroutine responsible for drawing each new page. The subroutine should expect two parameters consisting of the \s-1CGI\s0 object and a counter indicating the number of times the subroutine has been called. It should return the contents of the page as an \fBarray\fR of one or more items to print. It can return a false value (or an empty array) in order to abort the redrawing loop and print out the final page (if any) .Sp .Vb 5 \& sub my_draw_routine { \& my($q,$counter) = @_; \& return undef if $counter > 100; \& ... \& } .Ve .Sp You are of course free to refer to create and use global variables within your draw routine in order to achieve special effects. .IP "\-last_page" 4 .IX Item "-last_page" This optional parameter points to a reference to the subroutine responsible for drawing the last page of the series. It is called after the \-next_page routine returns a false value. The subroutine itself should have exactly the same calling conventions as the \&\-next_page routine. .IP "\-type" 4 .IX Item "-type" This optional parameter indicates the content type of each page. It defaults to \*(L"text/html\*(R". Normally the module assumes that each page is of a homogeneous \s-1MIME\s0 type. However if you provide either of the magic values \*(L"heterogeneous\*(R" or \*(L"dynamic\*(R" (the latter provided for the convenience of those who hate long parameter names), you can specify the \s-1MIME\s0 type \*(-- and other header fields \*(-- on a per-page basis. See \&\*(L"heterogeneous pages\*(R" for more details. .IP "\-delay" 4 .IX Item "-delay" This indicates the delay, in seconds, between frames. Smaller delays refresh the page faster. Fractional values are allowed. .Sp \&\fBIf not specified, \-delay will default to 1 second\fR .IP "\-cookie, \-target, \-expires, \-nph" 4 .IX Item "-cookie, -target, -expires, -nph" These have the same meaning as the like-named parameters in \&\fICGI::header()\fR. .Sp If not specified, \-nph will default to 1 (as needed for many servers, see below). .SS "Heterogeneous Pages" .IX Subsection "Heterogeneous Pages" Ordinarily all pages displayed by CGI::Push share a common \s-1MIME\s0 type. However by providing a value of \*(L"heterogeneous\*(R" or \*(L"dynamic\*(R" in the \&\fIdo_push()\fR \-type parameter, you can specify the \s-1MIME\s0 type of each page on a case-by-case basis. .PP If you use this option, you will be responsible for producing the \&\s-1HTTP\s0 header for each page. Simply modify your draw routine to look like this: .PP .Vb 5 \& sub my_draw_routine { \& my($q,$counter) = @_; \& return header(\*(Aqtext/html\*(Aq), # note we\*(Aqre producing the header here \& .... \& } .Ve .PP You can add any header fields that you like, but some (cookies and status fields included) may not be interpreted by the browser. One interesting effect is to display a series of pages, then, after the last page, to redirect the browser to a new \s-1URL. \s0 Because \fIredirect()\fR does b work, the easiest way is with a \-refresh header field, as shown below: .PP .Vb 6 \& sub my_draw_routine { \& my($q,$counter) = @_; \& return undef if $counter > 10; \& return header(\*(Aqtext/html\*(Aq), # note we\*(Aqre producing the header here \& ... \& } \& \& sub my_last_page { \& return header(\-refresh=>\*(Aq5; URL=http://somewhere.else/finished.html\*(Aq, \& \-type=>\*(Aqtext/html\*(Aq), \& ... \& } .Ve .SS "Changing the Page Delay on the Fly" .IX Subsection "Changing the Page Delay on the Fly" If you would like to control the delay between pages on a page-by-page basis, call \fIpush_delay()\fR from within your draw routine. \fIpush_delay()\fR takes a single numeric argument representing the number of seconds you wish to delay after the current page is displayed and before displaying the next one. The delay may be fractional. Without parameters, \fIpush_delay()\fR just returns the current delay. .SH "INSTALLING CGI::Push SCRIPTS" .IX Header "INSTALLING CGI::Push SCRIPTS" Server push scripts must be installed as no-parsed-header (\s-1NPH\s0) scripts in order to work correctly on many servers. On Unix systems, this is most often accomplished by prefixing the script's name with \*(L"nph\-\*(R". Recognition of \s-1NPH\s0 scripts happens automatically with WebSTAR and Microsoft \s-1IIS. \s0 Users of other servers should see their documentation for help. .PP Apache web server from version 1.3b2 on does not need server push scripts installed as \s-1NPH\s0 scripts: the \-nph parameter to \fIdo_push()\fR may be set to a false value to disable the extra headers needed by an \&\s-1NPH\s0 script. .SH "AUTHOR INFORMATION" .IX Header "AUTHOR INFORMATION" The \s-1CGI\s0.pm distribution is copyright 1995\-2007, Lincoln D. Stein. It is distributed under the Artistic License 2.0. It is currently maintained by Lee Johnson with help from many contributors. .PP Address bug reports and comments to: https://github.com/leejo/CGI.pm/issues .PP The original bug tracker can be found at: https://rt.cpan.org/Public/Dist/Display.html?Queue=CGI.pm .PP When sending bug reports, please provide the version of \s-1CGI\s0.pm, the version of Perl, the name and version of your Web server, and the name and version of the operating system you are using. If the problem is even remotely browser dependent, please provide information about the affected browsers as well. Copyright 1995\-1998, Lincoln D. Stein. All rights reserved. .SH "BUGS" .IX Header "BUGS" This section intentionally left blank. .SH "SEE ALSO" .IX Header "SEE ALSO" CGI::Carp, \s-1CGI\s0 man3/Test2::Event::Subtest.3pm000044400000012401147645265660011771 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test2::Event::Subtest 3" .TH Test2::Event::Subtest 3 "2019-09-06" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test2::Event::Subtest \- Event for subtest types .SH "DESCRIPTION" .IX Header "DESCRIPTION" This class represents a subtest. This class is a subclass of Test2::Event::Ok. .SH "ACCESSORS" .IX Header "ACCESSORS" This class inherits from Test2::Event::Ok. .ie n .IP "$arrayref = $e\->subevents" 4 .el .IP "\f(CW$arrayref\fR = \f(CW$e\fR\->subevents" 4 .IX Item "$arrayref = $e->subevents" Returns the arrayref containing all the events from the subtest .ie n .IP "$bool = $e\->buffered" 4 .el .IP "\f(CW$bool\fR = \f(CW$e\fR\->buffered" 4 .IX Item "$bool = $e->buffered" True if the subtest is buffered, that is all subevents render at once. If this is false it means all subevents render as they are produced. .SH "SOURCE" .IX Header "SOURCE" The source code repository for Test2 can be found at \&\fIhttp://github.com/Test\-More/test\-more/\fR. .SH "MAINTAINERS" .IX Header "MAINTAINERS" .IP "Chad Granum " 4 .IX Item "Chad Granum " .SH "AUTHORS" .IX Header "AUTHORS" .PD 0 .IP "Chad Granum " 4 .IX Item "Chad Granum " .PD .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2019 Chad Granum . .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP See \fIhttp://dev.perl.org/licenses/\fR man3/Test2::EventFacet::Trace.3pm000044400000027075147645265660012356 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test2::EventFacet::Trace 3" .TH Test2::EventFacet::Trace 3 "2019-09-06" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test2::EventFacet::Trace \- Debug information for events .SH "DESCRIPTION" .IX Header "DESCRIPTION" The Test2::API::Context object, as well as all Test2::Event types need to have access to information about where they were created. This object represents that information. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use Test2::EventFacet::Trace; \& \& my $trace = Test2::EventFacet::Trace\->new( \& frame => [$package, $file, $line, $subname], \& ); .Ve .SH "FACET FIELDS" .IX Header "FACET FIELDS" .ie n .IP "$string = $trace\->{details}" 4 .el .IP "\f(CW$string\fR = \f(CW$trace\fR\->{details}" 4 .IX Item "$string = $trace->{details}" .PD 0 .ie n .IP "$string = $trace\->\fIdetails()\fR" 4 .el .IP "\f(CW$string\fR = \f(CW$trace\fR\->\fIdetails()\fR" 4 .IX Item "$string = $trace->details()" .PD Used as a custom trace message that will be used \s-1INSTEAD\s0 of \&\f(CW\*(C`at line \*(C'\fR when calling \f(CW\*(C`$trace\->debug\*(C'\fR. .ie n .IP "$frame = $trace\->{frame}" 4 .el .IP "\f(CW$frame\fR = \f(CW$trace\fR\->{frame}" 4 .IX Item "$frame = $trace->{frame}" .PD 0 .ie n .IP "$frame = $trace\->\fIframe()\fR" 4 .el .IP "\f(CW$frame\fR = \f(CW$trace\fR\->\fIframe()\fR" 4 .IX Item "$frame = $trace->frame()" .PD Get the call frame arrayref. .ie n .IP "$int = $trace\->{pid}" 4 .el .IP "\f(CW$int\fR = \f(CW$trace\fR\->{pid}" 4 .IX Item "$int = $trace->{pid}" .PD 0 .ie n .IP "$int = $trace\->\fIpid()\fR" 4 .el .IP "\f(CW$int\fR = \f(CW$trace\fR\->\fIpid()\fR" 4 .IX Item "$int = $trace->pid()" .PD The process \s-1ID\s0 in which the event was generated. .ie n .IP "$int = $trace\->{tid}" 4 .el .IP "\f(CW$int\fR = \f(CW$trace\fR\->{tid}" 4 .IX Item "$int = $trace->{tid}" .PD 0 .ie n .IP "$int = $trace\->\fItid()\fR" 4 .el .IP "\f(CW$int\fR = \f(CW$trace\fR\->\fItid()\fR" 4 .IX Item "$int = $trace->tid()" .PD The thread \s-1ID\s0 in which the event was generated. .ie n .IP "$id = $trace\->{cid}" 4 .el .IP "\f(CW$id\fR = \f(CW$trace\fR\->{cid}" 4 .IX Item "$id = $trace->{cid}" .PD 0 .ie n .IP "$id = $trace\->\fIcid()\fR" 4 .el .IP "\f(CW$id\fR = \f(CW$trace\fR\->\fIcid()\fR" 4 .IX Item "$id = $trace->cid()" .PD The \s-1ID\s0 of the context that was used to create the event. .ie n .IP "$uuid = $trace\->{uuid}" 4 .el .IP "\f(CW$uuid\fR = \f(CW$trace\fR\->{uuid}" 4 .IX Item "$uuid = $trace->{uuid}" .PD 0 .ie n .IP "$uuid = $trace\->\fIuuid()\fR" 4 .el .IP "\f(CW$uuid\fR = \f(CW$trace\fR\->\fIuuid()\fR" 4 .IX Item "$uuid = $trace->uuid()" .PD The \s-1UUID\s0 of the context that was used to create the event. (If uuid tagging was enabled) .SS "\s-1DISCOURAGED HUB RELATED FIELDS\s0" .IX Subsection "DISCOURAGED HUB RELATED FIELDS" These fields were not always set properly by tools. These are \fB\s-1MOSTLY\s0\fR deprecated by the Test2::EventFacet::Hub facets. These fields are not required, and may only reflect the hub that was current when the event was created, which is not necessarily the same as the hub the event was sent through. .PP Some tools did do a good job setting these to the correct hub, but you cannot always rely on that. Use the 'hubs' facet list instead. .ie n .IP "$hid = $trace\->{hid}" 4 .el .IP "\f(CW$hid\fR = \f(CW$trace\fR\->{hid}" 4 .IX Item "$hid = $trace->{hid}" .PD 0 .ie n .IP "$hid = $trace\->\fIhid()\fR" 4 .el .IP "\f(CW$hid\fR = \f(CW$trace\fR\->\fIhid()\fR" 4 .IX Item "$hid = $trace->hid()" .PD The \s-1ID\s0 of the hub that was current when the event was created. .ie n .IP "$huuid = $trace\->{huuid}" 4 .el .IP "\f(CW$huuid\fR = \f(CW$trace\fR\->{huuid}" 4 .IX Item "$huuid = $trace->{huuid}" .PD 0 .ie n .IP "$huuid = $trace\->\fIhuuid()\fR" 4 .el .IP "\f(CW$huuid\fR = \f(CW$trace\fR\->\fIhuuid()\fR" 4 .IX Item "$huuid = $trace->huuid()" .PD The \s-1UUID\s0 of the hub that was current when the event was created. (If uuid tagging was enabled). .ie n .IP "$int = $trace\->{nested}" 4 .el .IP "\f(CW$int\fR = \f(CW$trace\fR\->{nested}" 4 .IX Item "$int = $trace->{nested}" .PD 0 .ie n .IP "$int = $trace\->\fInested()\fR" 4 .el .IP "\f(CW$int\fR = \f(CW$trace\fR\->\fInested()\fR" 4 .IX Item "$int = $trace->nested()" .PD How deeply nested the event is. .ie n .IP "$bool = $trace\->{buffered}" 4 .el .IP "\f(CW$bool\fR = \f(CW$trace\fR\->{buffered}" 4 .IX Item "$bool = $trace->{buffered}" .PD 0 .ie n .IP "$bool = $trace\->\fIbuffered()\fR" 4 .el .IP "\f(CW$bool\fR = \f(CW$trace\fR\->\fIbuffered()\fR" 4 .IX Item "$bool = $trace->buffered()" .PD True if the event was buffered and not sent to the formatter independent of a parent (This should never be set when nested is \f(CW0\fR or \f(CW\*(C`undef\*(C'\fR). .SH "METHODS" .IX Header "METHODS" \&\fBNote:\fR All facet frames are also methods. .ie n .IP "$trace\->set_detail($msg)" 4 .el .IP "\f(CW$trace\fR\->set_detail($msg)" 4 .IX Item "$trace->set_detail($msg)" .PD 0 .ie n .IP "$msg = $trace\->detail" 4 .el .IP "\f(CW$msg\fR = \f(CW$trace\fR\->detail" 4 .IX Item "$msg = $trace->detail" .PD Used to get/set a custom trace message that will be used \s-1INSTEAD\s0 of \&\f(CW\*(C`at line \*(C'\fR when calling \f(CW\*(C`$trace\->debug\*(C'\fR. .Sp \&\f(CW\*(C`detail()\*(C'\fR is an alias to the \f(CW\*(C`details\*(C'\fR facet field for backwards compatibility. .ie n .IP "$str = $trace\->debug" 4 .el .IP "\f(CW$str\fR = \f(CW$trace\fR\->debug" 4 .IX Item "$str = $trace->debug" Typically returns the string \f(CW\*(C`at line \*(C'\fR. If \f(CW\*(C`detail\*(C'\fR is set then its value will be returned instead. .ie n .IP "$trace\->alert($MESSAGE)" 4 .el .IP "\f(CW$trace\fR\->alert($MESSAGE)" 4 .IX Item "$trace->alert($MESSAGE)" This issues a warning at the frame (filename and line number where errors should be reported). .ie n .IP "$trace\->throw($MESSAGE)" 4 .el .IP "\f(CW$trace\fR\->throw($MESSAGE)" 4 .IX Item "$trace->throw($MESSAGE)" This throws an exception at the frame (filename and line number where errors should be reported). .ie n .IP "($package, $file, $line, $subname) = $trace\->\fIcall()\fR" 4 .el .IP "($package, \f(CW$file\fR, \f(CW$line\fR, \f(CW$subname\fR) = \f(CW$trace\fR\->\fIcall()\fR" 4 .IX Item "($package, $file, $line, $subname) = $trace->call()" Get the caller details for the debug-info. This is where errors should be reported. .ie n .IP "$pkg = $trace\->package" 4 .el .IP "\f(CW$pkg\fR = \f(CW$trace\fR\->package" 4 .IX Item "$pkg = $trace->package" Get the debug-info package. .ie n .IP "$file = $trace\->file" 4 .el .IP "\f(CW$file\fR = \f(CW$trace\fR\->file" 4 .IX Item "$file = $trace->file" Get the debug-info filename. .ie n .IP "$line = $trace\->line" 4 .el .IP "\f(CW$line\fR = \f(CW$trace\fR\->line" 4 .IX Item "$line = $trace->line" Get the debug-info line number. .ie n .IP "$subname = $trace\->subname" 4 .el .IP "\f(CW$subname\fR = \f(CW$trace\fR\->subname" 4 .IX Item "$subname = $trace->subname" Get the debug-info subroutine name. .ie n .IP "$sig = trace\->signature" 4 .el .IP "\f(CW$sig\fR = trace\->signature" 4 .IX Item "$sig = trace->signature" Get a signature string that identifies this trace. This is used to check if multiple events are related. The signature includes pid, tid, file, line number, and the cid. .SH "SOURCE" .IX Header "SOURCE" The source code repository for Test2 can be found at \&\fIhttp://github.com/Test\-More/test\-more/\fR. .SH "MAINTAINERS" .IX Header "MAINTAINERS" .IP "Chad Granum " 4 .IX Item "Chad Granum " .SH "AUTHORS" .IX Header "AUTHORS" .PD 0 .IP "Chad Granum " 4 .IX Item "Chad Granum " .PD .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2019 Chad Granum . .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP See \fIhttp://dev.perl.org/licenses/\fR man3/Test2::EventFacet::Meta.3pm000044400000012343147645265660012176 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test2::EventFacet::Meta 3" .TH Test2::EventFacet::Meta 3 "2019-09-06" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test2::EventFacet::Meta \- Facet for meta\-data .SH "DESCRIPTION" .IX Header "DESCRIPTION" This facet can contain any random meta-data that has been attached to the event. .SH "METHODS AND FIELDS" .IX Header "METHODS AND FIELDS" Any/all fields and accessors are autovivified into existence. There is no way to know what metadata may be added, so any is allowed. .ie n .IP "$anything = $meta\->{anything}" 4 .el .IP "\f(CW$anything\fR = \f(CW$meta\fR\->{anything}" 4 .IX Item "$anything = $meta->{anything}" .PD 0 .ie n .IP "$anything = $meta\->\fIanything()\fR" 4 .el .IP "\f(CW$anything\fR = \f(CW$meta\fR\->\fIanything()\fR" 4 .IX Item "$anything = $meta->anything()" .PD .SH "SOURCE" .IX Header "SOURCE" The source code repository for Test2 can be found at \&\fIhttp://github.com/Test\-More/test\-more/\fR. .SH "MAINTAINERS" .IX Header "MAINTAINERS" .IP "Chad Granum " 4 .IX Item "Chad Granum " .SH "AUTHORS" .IX Header "AUTHORS" .PD 0 .IP "Chad Granum " 4 .IX Item "Chad Granum " .PD .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2019 Chad Granum . .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP See \fIhttp://dev.perl.org/licenses/\fR man3/TAP::Parser::YAMLish::Writer.3pm000044400000015033147645265660012771 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "TAP::Parser::YAMLish::Writer 3" .TH TAP::Parser::YAMLish::Writer 3 "2018-03-19" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" TAP::Parser::YAMLish::Writer \- Write YAMLish data .SH "VERSION" .IX Header "VERSION" Version 3.42 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use TAP::Parser::YAMLish::Writer; \& \& my $data = { \& one => 1, \& two => 2, \& three => [ 1, 2, 3 ], \& }; \& \& my $yw = TAP::Parser::YAMLish::Writer\->new; \& \& # Write to an array... \& $yw\->write( $data, \e@some_array ); \& \& # ...an open file handle... \& $yw\->write( $data, $some_file_handle ); \& \& # ...a string ... \& $yw\->write( $data, \e$some_string ); \& \& # ...or a closure \& $yw\->write( $data, sub { \& my $line = shift; \& print "$line\en"; \& } ); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Encodes a scalar, hash reference or array reference as YAMLish. .SH "METHODS" .IX Header "METHODS" .SS "Class Methods" .IX Subsection "Class Methods" \fI\f(CI\*(C`new\*(C'\fI\fR .IX Subsection "new" .PP .Vb 1 \& my $writer = TAP::Parser::YAMLish::Writer\->new; .Ve .PP The constructor \f(CW\*(C`new\*(C'\fR creates and returns an empty \&\f(CW\*(C`TAP::Parser::YAMLish::Writer\*(C'\fR object. .SS "Instance Methods" .IX Subsection "Instance Methods" \fI\f(CI\*(C`write\*(C'\fI\fR .IX Subsection "write" .PP .Vb 1 \& $writer\->write($obj, $output ); .Ve .PP Encode a scalar, hash reference or array reference as \s-1YAML.\s0 .PP .Vb 4 \& my $writer = sub { \& my $line = shift; \& print SOMEFILE "$line\en"; \& }; \& \& my $data = { \& one => 1, \& two => 2, \& three => [ 1, 2, 3 ], \& }; \& \& my $yw = TAP::Parser::YAMLish::Writer\->new; \& $yw\->write( $data, $writer ); .Ve .PP The \f(CW $output \fR argument may be: .IP "\(bu" 4 a reference to a scalar to append \s-1YAML\s0 to .IP "\(bu" 4 the handle of an open file .IP "\(bu" 4 a reference to an array into which \s-1YAML\s0 will be pushed .IP "\(bu" 4 a code reference .PP If you supply a code reference the subroutine will be called once for each line of output with the line as its only argument. Passed lines will have no trailing newline. .SH "AUTHOR" .IX Header "AUTHOR" Andy Armstrong, .SH "SEE ALSO" .IX Header "SEE ALSO" YAML::Tiny, \s-1YAML\s0, YAML::Syck, Config::Tiny, CSS::Tiny, .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2007\-2011 Andy Armstrong. .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP The full text of the license can be found in the \&\s-1LICENSE\s0 file included with this module. man3/Test::Tester::CaptureRunner.3pm000044400000010575147645265660013252 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test::Tester::CaptureRunner 3" .TH Test::Tester::CaptureRunner 3 "2019-09-06" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test::Tester::CaptureRunner \- Help testing test modules built with Test::Builder .SH "DESCRIPTION" .IX Header "DESCRIPTION" This stuff if needed to allow me to play with other ways of monitoring the test results. .SH "AUTHOR" .IX Header "AUTHOR" Copyright 2003 by Fergal Daly . .SH "LICENSE" .IX Header "LICENSE" Under the same license as Perl itself .PP See http://www.perl.com/perl/misc/Artistic.html man3/CPAN::Meta::YAML.3pm000044400000013622147645265660010435 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CPAN::Meta::YAML 3" .TH CPAN::Meta::YAML 3 "2015-12-11" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" CPAN::Meta::YAML \- Read and write a subset of YAML for CPAN Meta files .SH "VERSION" .IX Header "VERSION" version 0.018 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use CPAN::Meta::YAML; \& \& # reading a META file \& open $fh, "<:utf8", "META.yml"; \& $yaml_text = do { local $/; <$fh> }; \& $yaml = CPAN::Meta::YAML\->read_string($yaml_text) \& or die CPAN::Meta::YAML\->errstr; \& \& # finding the metadata \& $meta = $yaml\->[0]; \& \& # writing a META file \& $yaml_text = $yaml\->write_string \& or die CPAN::Meta::YAML\->errstr; \& open $fh, ">:utf8", "META.yml"; \& print $fh $yaml_text; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This module implements a subset of the \s-1YAML\s0 specification for use in reading and writing \s-1CPAN\s0 metadata files like \fI\s-1META\s0.yml\fR and \fI\s-1MYMETA\s0.yml\fR. It should not be used for any other general \s-1YAML\s0 parsing or generation task. .PP \&\s-1NOTE: \s0\fI\s-1META\s0.yml\fR (and \fI\s-1MYMETA\s0.yml\fR) files should be \s-1UTF\-8\s0 encoded. Users are responsible for proper encoding and decoding. In particular, the \f(CW\*(C`read\*(C'\fR and \&\f(CW\*(C`write\*(C'\fR methods do \fBnot\fR support \s-1UTF\-8\s0 and should not be used. .SH "SUPPORT" .IX Header "SUPPORT" This module is currently derived from YAML::Tiny by Adam Kennedy. If there are bugs in how it parses a particular \s-1META\s0.yml file, please file a bug report in the YAML::Tiny bugtracker: .SH "SEE ALSO" .IX Header "SEE ALSO" YAML::Tiny, \s-1YAML\s0, \s-1YAML::XS\s0 .SH "AUTHORS" .IX Header "AUTHORS" .IP "\(bu" 4 Adam Kennedy .IP "\(bu" 4 David Golden .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is copyright (c) 2010 by Adam Kennedy. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. man3/DBD::mysql::INSTALL.3pm000044400000074211147645265660011131 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "DBD::mysql::INSTALL 3" .TH DBD::mysql::INSTALL 3 "2018-10-07" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" DBD::mysql::INSTALL \- How to install and configure DBD::mysql .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 4 \& perl Makefile.PL [options] \& make \& make test \& make install .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This document describes the installation and configuration of DBD::mysql, the Perl \s-1DBI\s0 driver for the MySQL database. Before reading on, make sure that you have the prerequisites available: Perl, MySQL and \s-1DBI.\s0 For details see the separate section \&\*(L"\s-1PREREQUISITES\*(R"\s0. .PP Depending on your version of Perl, it might be possible to use a binary distribution of DBD::mysql. If possible, this is recommended. Otherwise you need to install from the sources. If so, you will definitely need a C compiler. Installation from binaries and sources are both described in separate sections. \*(L"\s-1BINARY INSTALLATION\*(R"\s0. \*(L"\s-1SOURCE INSTALLATION\*(R"\s0. .PP Finally, if you encounter any problems, do not forget to read the section on known problems \*(L"\s-1KNOWN PROBLEMS\*(R"\s0. If that doesn't help, you should check the section on \*(L"\s-1SUPPORT\*(R"\s0. .SH "PREREQUISITES" .IX Header "PREREQUISITES" .IP "Perl" 4 .IX Item "Perl" Preferably a version of Perl, that comes preconfigured with your system. For example, all Linux and FreeBSD distributions come with Perl. For Windows, use ActivePerl or Strawberry Perl . .IP "MySQL" 4 .IX Item "MySQL" You need not install the actual MySQL database server, the client files and the development files are sufficient. For example, Fedora Linux distribution comes with \s-1RPM\s0 files (using \s-1YUM\s0) \fBmysql\fR and \fBmysql-server\fR (use \*(L"yum search\*(R" to find exact package names). These are sufficient, if the MySQL server is located on a foreign machine. You may also create client files by compiling from the MySQL source distribution and using .Sp .Vb 1 \& configure \-\-without\-server .Ve .Sp If you are using Windows and need to compile from sources (which is only the case if you are not using ActivePerl or Strawberry Perl), then you must ensure that the header and library files are installed. This may require choosing a \*(L"Custom installation\*(R" and selecting the appropriate option when running the MySQL setup program. .IP "\s-1DBI\s0" 4 .IX Item "DBI" DBD::mysql is a \s-1DBI\s0 driver, hence you need \s-1DBI.\s0 It is available from the same source where you got the DBD::mysql distribution from. .IP "C compiler" 4 .IX Item "C compiler" A C compiler is only required if you install from source. In most cases there are binary distributions of DBD::mysql available. However, if you need a C compiler, make sure, that it is the same C compiler that was used for compiling Perl and MySQL! Otherwise you will almost definitely encounter problems because of differences in the underlying C runtime libraries. .Sp In the worst case, this might mean to compile Perl and MySQL yourself. But believe me, experience shows that a lot of problems are fixed this way. .IP "Gzip libraries" 4 .IX Item "Gzip libraries" Late versions of MySQL come with support for compression. Thus it \fBmay\fR be required that you have install an \s-1RPM\s0 package like libz-devel, libgz-devel or something similar. .SH "BINARY INSTALLATION" .IX Header "BINARY INSTALLATION" Binary installation is possible in the most cases, depending on your system. .SS "Windows" .IX Subsection "Windows" \fIStrawberry Perl\fR .IX Subsection "Strawberry Perl" .PP Strawberry Perl comes bundled with DBD::mysql and the needed client libraries. .PP \fIActiveState Perl\fR .IX Subsection "ActiveState Perl" .PP ActivePerl offers a \s-1PPM\s0 archive of DBD::mysql. All you need to do is typing in a cmd.exe window: .PP .Vb 1 \& ppm install DBD\-mysql .Ve .PP This will fetch the module via \s-1HTTP\s0 and install them. If you need to use a \s-1WWW\s0 proxy server, the environment variable HTTP_proxy must be set: .PP .Vb 2 \& set HTTP_proxy=http://myproxy.example.com:8080/ \& ppm install DBD\-mysql .Ve .PP Of course you need to replace the host name \f(CW\*(C`myproxy.example.com\*(C'\fR and the port number \f(CW8080\fR with your local values. .PP If the above procedure doesn't work, please upgrade to the latest version of ActivePerl. ActiveState has a policy where it only provides access free-of-charge for the \s-1PPM\s0 mirrors of the last few stable Perl releases. If you have an older perl, you'd either need to upgrade your perl or contact ActiveState about a subscription. .SS "Red Hat Enterprise Linux (\s-1RHEL\s0), CentOS and Fedora" .IX Subsection "Red Hat Enterprise Linux (RHEL), CentOS and Fedora" Red Hat Enterprise Linux, its community derivatives such as CentOS, and Fedora come with MySQL and DBD::mysql. .PP Use the following command to install DBD::mysql: .PP .Vb 1 \& yum install "perl(DBD::mysql)" .Ve .SS "Debian and Ubuntu" .IX Subsection "Debian and Ubuntu" On Debian, Ubuntu and derivatives you can install DBD::mysql from the repositories with the following command: .PP .Vb 1 \& sudo apt\-get install libdbd\-mysql\-perl .Ve .SS "\s-1SLES\s0 and openSUSE" .IX Subsection "SLES and openSUSE" On \s-1SUSE\s0 Linux Enterprise and the community version openSUSE, you can install DBD::mysql from the repositories with the following command: .PP .Vb 1 \& zypper install perl\-DBD\-mysql .Ve .SS "Other systems" .IX Subsection "Other systems" In the case of other Linux or FreeBSD distributions it is very likely that all you need comes with your distribution. I just cannot give you names, as I am not using these systems. .PP Please let me know if you find the files in your favorite Linux or FreeBSD distribution so that I can extend the above list. .SH "SOURCE INSTALLATION" .IX Header "SOURCE INSTALLATION" So you need to install from sources. If you are lucky, the Perl module \f(CW\*(C`CPAN\*(C'\fR will do all for you, thanks to the excellent work of Andreas Ko\*:nig. Otherwise you will need to do a manual installation. All of these installation types have their own section: \&\*(L"\s-1CPAN\s0 installation\*(R", \*(L"Manual installation\*(R" and \*(L"Configuration\*(R". .PP The DBD::mysql Makefile.PL needs to know where to find your MySQL installation. This may be achieved using command line switches (see \*(L"Configuration\*(R") or automatically using the mysql_config binary which comes with most MySQL distributions. If your MySQL distribution contains mysql_config the easiest method is to ensure this binary is on your path. .PP Typically, this is the case if you've installed the mysql library from your systems' package manager. .PP e.g. .PP .Vb 2 \& PATH=$PATH:/usr/local/mysql/bin \& export PATH .Ve .PP As stated, to compile DBD::mysql you'll need a C compiler. This should be the same compiler as the one used to build perl \s-1AND\s0 the mysql client libraries. If you're on linux, this is most typically the case and you need not worry. If you're on \s-1UNIX\s0 systems, you might want to pay attention. .PP Also you'll need to get the MySQL client and development headers on your system. The easiest is to get these from your package manager. .PP To run the tests that ship with the module, you'll need access to a running MySQL server. This can be running on localhost, but it can also be on a remote machine. .PP On Fedora the process is as follows. Please note that Fedora actually ships with MariaDB but not with MySQL. This is not a problem, it will work just as well. In this example we install and start a local server for running the tests against. .PP .Vb 3 \& yum \-y install make gcc mariadb\-devel mariadb\-libs mariadb\-server \& yum \-y install "perl(Test::Deep)" "perl(Test::More)" \& systemctl start mariadb.service .Ve .SS "Environment Variables" .IX Subsection "Environment Variables" For ease of use, you can set environment variables for DBD::mysql installation. You can set any or all of the options, and export them by putting them in your .bashrc or the like: .PP .Vb 12 \& export DBD_MYSQL_CFLAGS=\-I/usr/local/mysql/include/mysql \& export DBD_MYSQL_LIBS="\-L/usr/local/mysql/lib/mysql \-lmysqlclient" \& export DBD_MYSQL_EMBEDDED= \& export DBD_MYSQL_CONFIG=mysql_config \& export DBD_MYSQL_NOCATCHSTDERR=0 \& export DBD_MYSQL_NOFOUNDROWS=0 \& export DBD_MYSQL_NOSSL= \& export DBD_MYSQL_TESTDB=test \& export DBD_MYSQL_TESTHOST=localhost \& export DBD_MYSQL_TESTPASSWORD=s3kr1+ \& export DBD_MYSQL_TESTPORT=3306 \& export DBD_MYSQL_TESTUSER=me .Ve .PP The most useful may be the host, database, port, socket, user, and password. .PP Installation will first look to your mysql_config, and then your environment variables, and then it will guess with intelligent defaults. .SS "\s-1CPAN\s0 installation" .IX Subsection "CPAN installation" Installation of DBD::mysql can be incredibly easy: .PP .Vb 1 \& cpan DBD::mysql .Ve .PP Please note that this will only work if the prerequisites are fulfilled, which means you have a C\-compiler installed, and you have the development headers and mysql client libraries available on your system. .PP If you are using the \s-1CPAN\s0 module for the first time, just answer the questions by accepting the defaults which are fine in most cases. .PP If you cannot get the \s-1CPAN\s0 module working, you might try manual installation. If installation with \s-1CPAN\s0 fails because the your local settings have been guessed wrong, you need to ensure MySQL's mysql_config is on your path (see \*(L"\s-1SOURCE INSTALLATION\*(R"\s0) or alternatively create a script called \f(CW\*(C`mysql_config\*(C'\fR. This is described in more details later. \*(L"Configuration\*(R". .SS "Manual installation" .IX Subsection "Manual installation" For a manual installation you need to fetch the DBD::mysql source distribution. The latest version is always available from .PP .Vb 1 \& https://metacpan.org/module/DBD::mysql .Ve .PP The name is typically something like .PP .Vb 1 \& DBD\-mysql\-4.025.tar.gz .Ve .PP The archive needs to be extracted. On Windows you may use a tool like 7\-zip, on *nix you type .PP .Vb 1 \& tar xf DBD\-mysql\-4.025.tar.gz .Ve .PP This will create a subdirectory DBD\-mysql\-4.025. Enter this subdirectory and type .PP .Vb 3 \& perl Makefile.PL \& make \& make test .Ve .PP (On Windows you may need to replace \*(L"make\*(R" with \*(L"dmake\*(R" or \&\*(L"nmake\*(R".) If the tests seem to look fine, you may continue with .PP .Vb 1 \& make install .Ve .PP If the compilation (make) or tests fail, you might need to configure some settings. .PP For example you might choose a different database, the C compiler or the linker might need some flags. \*(L"Configuration\*(R". \&\*(L"Compiler flags\*(R". \*(L"Linker flags\*(R". .PP For Cygwin there is a special section below. \&\*(L"Cygwin\*(R". .SS "Configuration" .IX Subsection "Configuration" The install script \*(L"Makefile.PL\*(R" can be configured via a lot of switches. All switches can be used on the command line. For example, the test database: .PP .Vb 1 \& perl Makefile.PL \-\-testdb= .Ve .PP If you do not like configuring these switches on the command line, you may alternatively create a script called \f(CW\*(C`mysql_config\*(C'\fR. This is described later on. .PP Available switches are: .IP "testdb" 4 .IX Item "testdb" Name of the test database, defaults to \fBtest\fR. .IP "testuser" 4 .IX Item "testuser" Name of the test user, defaults to empty. If the name is empty, then the currently logged in users name will be used. .IP "testpassword" 4 .IX Item "testpassword" Password of the test user, defaults to empty. .IP "testhost" 4 .IX Item "testhost" Host name or \s-1IP\s0 number of the test database; defaults to localhost. .IP "testport" 4 .IX Item "testport" Port number of the test database .IP "ps\-protcol=1 or 0" 4 .IX Item "ps-protcol=1 or 0" Whether to run the test suite using server prepared statements or driver emulated prepared statements. ps\-protocol=1 means use server prepare, ps\-protocol=0 means driver emulated. .IP "cflags" 4 .IX Item "cflags" This is a list of flags that you want to give to the C compiler. The most important flag is the location of the MySQL header files. For example, on Red Hat Linux the header files are in /usr/include/mysql and you might try .Sp .Vb 1 \& \-I/usr/include/mysql .Ve .Sp On Windows the header files may be in C:\emysql\einclude and you might try .Sp .Vb 1 \& \-IC:\emysql\einclude .Ve .Sp The default flags are determined by running .Sp .Vb 1 \& mysql_config \-\-cflags .Ve .Sp More details on the C compiler flags can be found in the following section. \*(L"Compiler flags\*(R". .IP "libs" 4 .IX Item "libs" This is a list of flags that you want to give to the linker or loader. The most important flags are the locations and names of additional libraries. For example, on Red Hat Linux your MySQL client libraries are in /usr/lib/mysql and you might try .Sp .Vb 1 \& \-L/usr/lib/mysql \-lmysqlclient \-lz .Ve .Sp On Windows the libraries may be in C:\emysql\elib and .Sp .Vb 1 \& \-LC:\emysql\elib \-lmysqlclient .Ve .Sp might be a good choice. The default flags are determined by running .Sp .Vb 1 \& mysql_config \-\-libs .Ve .Sp More details on the linker flags can be found in a separate section. \&\*(L"Linker flags\*(R". .PP If a switch is not present on the command line, then the script \f(CW\*(C`mysql_config\*(C'\fR will be executed. This script comes as part of the MySQL distribution. For example, to determine the C compiler flags, we are executing .PP .Vb 2 \& mysql_config \-\-cflags \& mysql_config \-\-libs .Ve .PP If you want to configure your own settings for database name, database user and so on, then you have to create a script with the same name, that replies .SS "Compiler flags" .IX Subsection "Compiler flags" Note: the following info about compiler and linker flags, you shouldn't have to use these options because Makefile.PL is pretty good at utilizing mysql_config to get the flags that you need for a successful compile. .PP It is typically not so difficult to determine the appropriate flags for the C compiler. The linker flags, which you find in the next section, are another story. .PP The determination of the C compiler flags is usually left to a configuration script called \fImysql_config\fR, which can be invoked with .PP .Vb 1 \& mysql_config \-\-cflags .Ve .PP When doing so, it will emit a line with suggested C compiler flags, for example like this: .PP .Vb 1 \& \-L/usr/include/mysql .Ve .PP The C compiler must find some header files. Header files have the extension \f(CW\*(C`.h\*(C'\fR. MySQL header files are, for example, \&\fImysql.h\fR and \fImysql_version.h\fR. In most cases the header files are not installed by default. For example, on Windows it is an installation option of the MySQL setup program (Custom installation), whether the header files are installed or not. On Red Hat Linux, you need to install an \s-1RPM\s0 archive \&\fImysql-devel\fR or \fIMySQL-devel\fR. .PP If you know the location of the header files, then you will need to add an option .PP .Vb 1 \& \-L
      .Ve .PP to the C compiler flags, for example \f(CW\*(C`\-L/usr/include/mysql\*(C'\fR. .SS "Linker flags" .IX Subsection "Linker flags" Appropriate linker flags are the most common source of problems while installing DBD::mysql. I will only give a rough overview, you'll find more details in the troubleshooting section. \&\*(L"\s-1KNOWN PROBLEMS\*(R"\s0 .PP The determination of the C compiler flags is usually left to a configuration script called \fImysql_config\fR, which can be invoked with .PP .Vb 1 \& mysql_config \-\-libs .Ve .PP When doing so, it will emit a line with suggested C compiler flags, for example like this: .PP .Vb 1 \& \-L\*(Aq/usr/lib/mysql\*(Aq \-lmysqlclient \-lnsl \-lm \-lz \-lcrypt .Ve .PP The following items typically need to be configured for the linker: .IP "The mysqlclient library" 4 .IX Item "The mysqlclient library" The MySQL client library comes as part of the MySQL distribution. Depending on your system it may be a file called .Sp .Vb 4 \& F statically linked library, Unix \& F dynamically linked library, Unix \& F statically linked library, Windows \& F dynamically linked library, Windows .Ve .Sp or something similar. .Sp As in the case of the header files, the client library is typically not installed by default. On Windows you will need to select them while running the MySQL setup program (Custom installation). On Red Hat Linux an \s-1RPM\s0 archive \fImysql-devel\fR or \fIMySQL-devel\fR must be installed. .Sp The linker needs to know the location and name of the mysqlclient library. This can be done by adding the flags .Sp .Vb 1 \& \-L \-lmysqlclient .Ve .Sp or by adding the complete path name. Examples: .Sp .Vb 2 \& \-L/usr/lib/mysql \-lmysqlclient \& \-LC:\emysql\elib \-lmysqlclient .Ve .Sp If you would like to use the static libraries (and there are excellent reasons to do so), you need to create a separate directory, copy the static libraries to that place and use the \-L switch above to point to your new directory. For example: .Sp .Vb 7 \& mkdir /tmp/mysql\-static \& cp /usr/lib/mysql/*.a /tmp/mysql\-static \& perl Makefile.PL \-\-libs="\-L/tmp/mysql\-static \-lmysqlclient" \& make \& make test \& make install \& rm \-rf /tmp/mysql\-static .Ve .IP "The gzip library" 4 .IX Item "The gzip library" The MySQL client can use compression when talking to the MySQL server, a nice feature when sending or receiving large texts over a slow network. .Sp On Unix you typically find the appropriate file name by running .Sp .Vb 2 \& ldconfig \-p | grep libz \& ldconfig \-p | grep libgz .Ve .Sp Once you know the name (libz.a or libgz.a is best), just add it to the list of linker flags. If this seems to be causing problem you may also try to link without gzip libraries. .SH "ENCRYPTED CONNECTIONS via SSL" .IX Header "ENCRYPTED CONNECTIONS via SSL" Connecting to your servers over an encrypted connection (\s-1SSL\s0) is only possible if you enabled this setting at build time. Since version 4.034, this is the default. .PP Attempting to connect to a server that requires an encrypted connection without first having DBD::mysql compiled with the \f(CW\*(C`\-\-ssl\*(C'\fR option will result in an error that makes things appear as if your password is incorrect. .PP If you want to compile DBD::mysql without \s-1SSL\s0 support, which you might probably only want if you for some reason can't install libssl headers, you can do this by passing the \f(CW\*(C`\-\-nossl\*(C'\fR option to Makefile.PL or by setting the \&\s-1DBD_MYSQL_NOSSL\s0 environment variable to '1'. .SH "MARIADB NATIVE CLIENT INSTALLATION" .IX Header "MARIADB NATIVE CLIENT INSTALLATION" The MariaDB native client is another option for connecting to a MySQLX database licensed \s-1LGPL 2.1.\s0 To build DBD::mysql against this client, you will first need to build the client. Generally, this is done with the following: .PP .Vb 4 \& cd path/to/src/mariadb\-native\-client \& cmake \-G "Unix Makefiles\*(Aq \& make \& sudo make install .Ve .PP Once the client is built and installed, you can build DBD::mysql against it: .PP .Vb 4 \& perl Makefile.PL \-\-testuser=xxx \-\-testpassword=xxx \-\-testsocket=/path/to//mysqld.sock \-\-mysql_config=/usr/local/bin/mariadb_configX \& make \& make test \& make install .Ve .SH "SPECIAL SYSTEMS" .IX Header "SPECIAL SYSTEMS" Below you find information on particular systems: .SS "macOS" .IX Subsection "macOS" For installing DBD::mysql you need to have the libssl header files and the mysql client libs. The easiest way to install these is using Homebrew (). .PP Once you have Homebrew set up, you can simply install the dependencies using .PP .Vb 1 \& brew install openssl mysql\-connector\-c .Ve .PP Then you can install DBD::mysql using your cpan client. .SS "Cygwin" .IX Subsection "Cygwin" If you are a user of Cygwin you already know, it contains a nicely running perl 5.6.1, installation of additional modules usually works like a charm via the standard procedure of .PP .Vb 4 \& perl makefile.PL \& make \& make test \& make install .Ve .PP The Windows binary distribution of MySQL runs smoothly under Cygwin. You can start/stop the server and use all Windows clients without problem. But to install DBD::mysql you have to take a little special action. .PP Don't attempt to build DBD::mysql against either the MySQL Windows or Linux/Unix \s-1BINARY\s0 distributions: neither will work! .PP You \s-1MUST\s0 compile the MySQL clients yourself under Cygwin, to get a \&'libmysqlclient.a' compiled under Cygwin. Really! You'll only need that library and the header files, you don't need any other client parts. Continue to use the Windows binaries. And don't attempt (currently) to build the MySQL Server part, it is unnecessary, as MySQL \s-1AB\s0 does an excellent job to deliver optimized binaries for the mainstream operating systems, and it is told, that the server compiled under Cygwin is unstable. .PP Install a MySQL server for testing against. You can install the regular Windows MySQL server package on your Windows machine, or you can also test against a MySQL server on a remote host. .PP \fIBuild MySQL clients under Cygwin:\fR .IX Subsection "Build MySQL clients under Cygwin:" .PP download the MySQL \s-1LINUX\s0 source from , unpack mysql\-.tar.gz into some tmp location and from this directory run configure: .PP .Vb 1 \& ./configure \-\-prefix=/usr/local/mysql \-\-without\-server .Ve .PP This prepares the Makefile with the installed Cygwin features. It takes some time, but should finish without error. The 'prefix', as given, installs the whole Cygwin/MySQL thingy into a location not normally in your \s-1PATH,\s0 so that you continue to use already installed Windows binaries. The \-\-without\-server parameter tells configure to only build the clients. .PP .Vb 1 \& make .Ve .PP This builds all MySQL client parts ... be patient. It should finish finally without any error. .PP .Vb 1 \& make install .Ve .PP This installs the compiled client files under /usr/local/mysql/. Remember, you don't need anything except the library under /usr/local/mysql/lib and the headers under /usr/local/mysql/include! .PP Essentially you are now done with this part. If you want, you may try your compiled binaries shortly; for that, do: .PP .Vb 2 \& cd /usr/local/mysql/bin \& ./mysql \-h 127.0.0.1 .Ve .PP The host (\-h) parameter 127.0.0.1 targets the local host, but forces the mysql client to use a \s-1TCP/IP\s0 connection. The default would be a pipe/socket connection (even if you say '\-h localhost') and this doesn't work between Cygwin and Windows (as far as I know). .PP If you have your MySQL server running on some other box, then please substitute '127.0.0.1' with the name or IP-number of that box. .PP Please note, in my environment the 'mysql' client did not accept a simple \s-1RETURN, I\s0 had to use CTRL-RETURN to send commands \&... strange, but I didn't attempt to fix that, as we are only interested in the built lib and headers. .PP At the 'mysql>' prompt do a quick check: .PP .Vb 4 \& mysql> use mysql \& mysql> show tables; \& mysql> select * from db; \& mysql> exit .Ve .PP You are now ready to build DBD::mysql! .PP \fIcompile DBD::mysql\fR .IX Subsection "compile DBD::mysql" .PP download and extract DBD\-mysql\-.tar.gz from \s-1CPAN\s0 .PP cd into unpacked dir DBD\-mysql\- you probably did that already, if you are reading this! .PP .Vb 1 \& cp /usr/local/mysql/bin/mysql_config . .Ve .PP This copies the executable script mentioned in the DBD::mysql docs from your just built Cywin/MySQL client directory; it knows about your Cygwin installation, especially about the right libraries to link with. .PP .Vb 1 \& perl Makefile.PL \-\-testhost=127.0.0.1 .Ve .PP The \-\-testhost=127.0.0.1 parameter again forces a \s-1TCP/IP\s0 connection to the MySQL server on the local host instead of a pipe/socket connection for the 'make test' phase. .PP .Vb 1 \& make .Ve .PP This should run without error .PP .Vb 2 \& make test \& make install .Ve .PP This installs DBD::mysql into the Perl hierarchy. .SH "KNOWN PROBLEMS" .IX Header "KNOWN PROBLEMS" .SS "no gzip on your system" .IX Subsection "no gzip on your system" Some Linux distributions don't come with a gzip library by default. Running \*(L"make\*(R" terminates with an error message like .PP .Vb 8 \& LD_RUN_PATH="/usr/lib/mysql:/lib:/usr/lib" gcc \& \-o blib/arch/auto/DBD/mysql/mysql.so \-shared \& \-L/usr/local/lib dbdimp.o mysql.o \-L/usr/lib/mysql \& \-lmysqlclient \-lm \-L/usr/lib/gcc\-lib/i386\-redhat\-linux/2.96 \& \-lgcc \-lz \& /usr/bin/ld: cannot find \-lz \& collect2: ld returned 1 exit status \& make: *** [blib/arch/auto/DBD/mysql/mysql.so] Error 1 .Ve .PP If this is the case for you, install an \s-1RPM\s0 archive like libz-devel, libgz-devel, zlib-devel or gzlib-devel or something similar. .SS "different compiler for mysql and perl" .IX Subsection "different compiler for mysql and perl" If Perl was compiled with gcc or egcs, but MySQL was compiled with another compiler or on another system, an error message like this is very likely when running \*(L"Make test\*(R": .PP .Vb 5 \& t/00base............install_driver(mysql) failed: Can\*(Aqt load \& \*(Aq../blib/arch/auto/DBD/mysql/mysql.so\*(Aq for module DBD::mysql: \& ../blib/arch/auto/DBD/mysql/mysql.so: undefined symbol: _umoddi3 \& at /usr/local/perl\-5.005/lib/5.005/i586\-linux\-thread/DynaLoader.pm \& line 168. .Ve .PP This means, that your linker doesn't include libgcc.a. You have the following options: .PP The solution is telling the linker to use libgcc. Run .PP .Vb 1 \& gcc \-\-print\-libgcc\-file .Ve .PP to determine the exact location of libgcc.a or for older versions of gcc .PP .Vb 1 \& gcc \-v .Ve .PP to determine the directory. If you know the directory, add a .PP .Vb 1 \& \-L \-lgcc .Ve .PP to the list of C compiler flags. \*(L"Configuration\*(R". \*(L"Linker flags\*(R". .SH "SUPPORT" .IX Header "SUPPORT" Finally, if everything else fails, you are not alone. First of all, for an immediate answer, you should look into the archives of the dbi-users mailing list, which is available at .PP To subscribe to this list, send and email to .PP .Vb 1 \& dbi\-users\-subscribe@perl.org .Ve .PP If you don't find an appropriate posting and reply in the mailing list, please post a question. Typically a reply will be seen within one or two days. man3/Test2::Transition.3pm000044400000047317147645265660011322 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test2::Transition 3" .TH Test2::Transition 3 "2019-09-06" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test2::Transition \- Transition notes when upgrading to Test2 .SH "DESCRIPTION" .IX Header "DESCRIPTION" This is where gotchas and breakages related to the Test2 upgrade are documented. The upgrade causes Test::Builder to defer to Test2 under the hood. This transition is mostly transparent, but there are a few cases that can trip you up. .SH "THINGS THAT BREAK" .IX Header "THINGS THAT BREAK" This is the list of scenarios that break with the new internals. .SS "Test::Builder1.5/2 conditionals" .IX Subsection "Test::Builder1.5/2 conditionals" \fIThe Problem\fR .IX Subsection "The Problem" .PP a few years back there were two attempts to upgrade/replace Test::Builder. Confusingly these were called Test::Builder2 and Test::Builder1.5, in that order. Many people put conditionals in their code to check the Test::Builder version number and adapt their code accordingly. .PP The Test::Builder2/1.5 projects both died out. Now the conditional code people added has become a mine field. A vast majority of modules broken by Test2 fall into this category. .PP \fIThe Fix\fR .IX Subsection "The Fix" .PP The fix is to remove all Test::Builder1.5/2 related code. Either use the legacy Test::Builder \s-1API,\s0 or use Test2 directly. .SS "Replacing the Test::Builder singleton" .IX Subsection "Replacing the Test::Builder singleton" \fIThe Problem\fR .IX Subsection "The Problem" .PP Some test modules would replace the Test::Builder singleton instance with their own instance or subclass. This was usually done to intercept or modify results as they happened. .PP The Test::Builder singleton is now a simple compatibility wrapper around Test2. The Test::Builder singleton is no longer the central place for results. Many results bypass the Test::Builder singleton completely, which breaks and behavior intended when replacing the singleton. .PP \fIThe Fix\fR .IX Subsection "The Fix" .PP If you simply want to intercept all results instead of letting them go to \s-1TAP,\s0 you should look at the Test2::API docs and read about pushing a new hub onto the hub stack. Replacing the hub temporarily is now the correct way to intercept results. .PP If your goal is purely monitoring of events use the \f(CW\*(C`Test2::Hub\->listen()\*(C'\fR method exported by Test::More to watch events as they are fired. If you wish to modify results before they go to \s-1TAP\s0 look at the \f(CW\*(C`Test2::Hub\->filter()\*(C'\fR method. .SS "Directly Accessing Hash Elements" .IX Subsection "Directly Accessing Hash Elements" \fIThe Problem\fR .IX Subsection "The Problem" .PP Some modules look directly at hash keys on the Test::Builder singleton. The problem here is that the Test::Builder singleton no longer holds anything important. .PP \fIThe Fix\fR .IX Subsection "The Fix" .PP The fix is to use the \s-1API\s0 specified in Test2::API to look at or modify state as needed. .SS "Subtest indentation" .IX Subsection "Subtest indentation" \fIThe Problem\fR .IX Subsection "The Problem" .PP An early change, in fact the change that made Test2 an idea, was a change to the indentation of the subtest note. \s-1IT\s0 was decided it would be more readable to outdent the subtest note instead of having it inline with the subtest: .PP .Vb 4 \& # subtest foo \& ok 1 \- blah \& 1..1 \& ok 1 \- subtest foo .Ve .PP The old style indented the note: .PP .Vb 4 \& # subtest foo \& ok 1 \- blah \& 1..1 \& ok 1 \- subtest foo .Ve .PP This breaks tests that do string comparison of \s-1TAP\s0 output. .PP \fIThe Fix\fR .IX Subsection "The Fix" .PP .Vb 1 \& my $indent = $INC{\*(AqTest2/API.pm\*(Aq} ? \*(Aq\*(Aq : \*(Aq \*(Aq; \& \& is( \& $subtest_output, \& "${indent}# subtest foo", \& "Got subtest note" \& ); .Ve .PP Check if \f(CW$INC{\*(AqTest2/API.pm\*(Aq}\fR is set, if it is then no indentation should be expected. If it is not set than the old Test::Builder is in use, indentation should be expected. .SH "DISTRIBUTIONS THAT BREAK OR NEED TO BE UPGRADED" .IX Header "DISTRIBUTIONS THAT BREAK OR NEED TO BE UPGRADED" This is a list of cpan modules that have been known to have been broken by the upgrade at one point. .SS "\s-1WORKS BUT TESTS WILL FAIL\s0" .IX Subsection "WORKS BUT TESTS WILL FAIL" These modules still function correctly, but their test suites will not pass. If you already have these modules installed then you can continue to use them. If you are trying to install them after upgrading Test::Builder you will need to force installation, or bypass the broken tests. .IP "Test::DBIx::Class::Schema" 4 .IX Item "Test::DBIx::Class::Schema" This module has a test that appears to work around a Test::Builder bug. The bug appears to have been fixed by Test2, which means the workaround causes a failure. This can be easily updated, but nobody has done so yet. .Sp Known broken in versions: 1.0.9 and older .IP "Test::Kit" 4 .IX Item "Test::Kit" This actually works fine, but will not install because Test::Aggregate is in the dependency chain. .Sp See the Test::Aggregate info below for additional information. .IP "Device::Chip" 4 .IX Item "Device::Chip" Tests break due to subtest indentation. .Sp Known broken in version 0.07. Apparently works fine in 0.06 though. Patch has been submitted to fix the issue. .SS "\s-1UPGRADE SUGGESTED\s0" .IX Subsection "UPGRADE SUGGESTED" These are modules that did not break, but had broken test suites that have since been fixed. .IP "Test::Exception" 4 .IX Item "Test::Exception" Old versions work fine, but have a minor test name behavior that breaks with Test2. Old versions will no longer install because of this. The latest version on \s-1CPAN\s0 will install just fine. Upgrading is not required, but is recommended. .Sp Fixed in version: 0.43 .IP "Data::Peek" 4 .IX Item "Data::Peek" Some tests depended on \f(CW$!\fR and \f(CW$?\fR being modified in subtle ways. A patch was applied to correct things that changed. .Sp The module itself works fine, there is no need to upgrade. .Sp Fixed in version: 0.45 .IP "circular::require" 4 .IX Item "circular::require" Some tests were fragile and required base.pm to be loaded at a late stage. Test2 was loading base.pm too early. The tests were updated to fix this. .Sp The module itself never broke, you do not need to upgrade. .Sp Fixed in version: 0.12 .IP "Test::Module::Used" 4 .IX Item "Test::Module::Used" A test worked around a now-fixed planning bug. There is no need to upgrade if you have an old version installed. New versions install fine if you want them. .Sp Fixed in version: 0.2.5 .IP "Test::Moose::More" 4 .IX Item "Test::Moose::More" Some tests were fragile, but have been fixed. The actual breakage was from the subtest comment indentation change. .Sp No need to upgrade, old versions work fine. Only new versions will install. .Sp Fixed in version: 0.025 .IP "Test::FITesque" 4 .IX Item "Test::FITesque" This was broken by a bugfix to how planning is done. The test was updated after the bugfix. .Sp Fixed in version: 0.04 .IP "autouse" 4 .IX Item "autouse" A test broke because it depended on Scalar::Util not being loaded. Test2 loads Scalar::Util. The test was updated to load Test2 after checking Scalar::Util's load status. .Sp There is no need to upgrade if you already have it installed. .Sp Fixed in version: 1.11 .SS "\s-1NEED TO UPGRADE\s0" .IX Subsection "NEED TO UPGRADE" .IP "Test::SharedFork" 4 .IX Item "Test::SharedFork" Old versions need to directly access Test::Builder singleton hash elements. The latest version on \s-1CPAN\s0 will still do this on old Test::Builder, but will defer to Test2::IPC on Test2. .Sp Fixed in version: 0.35 .IP "Test::Builder::Clutch" 4 .IX Item "Test::Builder::Clutch" This works by doing overriding methods on the singleton, and directly accessing hash values on the singleton. A new version has been released that uses the Test2 \s-1API\s0 to accomplish the same result in a saner way. .Sp Fixed in version: 0.07 .IP "Test::Dist::VersionSync" 4 .IX Item "Test::Dist::VersionSync" This had Test::Builder2 conditionals. This was fixed by removing the conditionals. .Sp Fixed in version: 1.1.4 .IP "Test::Modern" 4 .IX Item "Test::Modern" This relied on \f(CW\*(C`Test::Builder\->_try()\*(C'\fR which was a private method, documented as something nobody should use. This was fixed by using a different tool. .Sp Fixed in version: 0.012 .IP "Test::UseAllModules" 4 .IX Item "Test::UseAllModules" Version 0.14 relied on \f(CW\*(C`Test::Builder\->history\*(C'\fR which was available in Test::Builder 1.5. Versions 0.12 and 0.13 relied on other Test::Builder internals. .Sp Fixed in version: 0.15 .IP "Test::More::Prefix" 4 .IX Item "Test::More::Prefix" Worked by applying a role that wrapped \f(CW\*(C`Test::Builder\->_print_comment\*(C'\fR. Fixed by adding an event filter that modifies the message instead when running under Test2. .Sp Fixed in version: 0.007 .SS "\s-1STILL BROKEN\s0" .IX Subsection "STILL BROKEN" .IP "Test::Aggregate" 4 .IX Item "Test::Aggregate" This distribution directly accesses the hash keys in the Test::Builder singleton. It also approaches the problem from the wrong angle, please consider using Test2::Harness or App::ForkProve which both solve the same problem at the harness level. .Sp Still broken as of version: 0.373 .IP "Test::Wrapper" 4 .IX Item "Test::Wrapper" This module directly uses hash keys in the Test::Builder singleton. This module is also obsolete thanks to the benefits of Test2. Use \f(CW\*(C`intercept()\*(C'\fR from Test2::API to achieve a similar result. .Sp Still broken as of version: 0.3.0 .IP "Test::ParallelSubtest" 4 .IX Item "Test::ParallelSubtest" This module overrides \f(CW\*(C`Test::Builder::subtest()\*(C'\fR and \&\f(CW\*(C`Test::Builder::done_testing()\*(C'\fR. It also directly accesses hash elements of the singleton. It has not yet been fixed. .Sp Alternatives: Test2::AsyncSubtest and Test2::Workflow (not stable). .Sp Still broken as of version: 0.05 .IP "Test::Pretty" 4 .IX Item "Test::Pretty" See https://github.com/tokuhirom/Test\-Pretty/issues/25 .Sp The author admits the module is crazy, and he is awaiting a stable release of something new (Test2) to completely rewrite it in a sane way. .Sp Still broken as of version: 0.32 .IP "Net::BitTorrent" 4 .IX Item "Net::BitTorrent" The tests for this module directly access Test::Builder hash keys. Most, if not all of these hash keys have public \s-1API\s0 methods that could be used instead to avoid the problem. .Sp Still broken in version: 0.052 .IP "Test::Group" 4 .IX Item "Test::Group" It monkeypatches Test::Builder, and calls it \*(L"black magic\*(R" in the code. .Sp Still broken as of version: 0.20 .IP "Test::Flatten" 4 .IX Item "Test::Flatten" This modifies the Test::Builder internals in many ways. A better was to accomplish the goal of this module is to write your own subtest function. .Sp Still broken as of version: 0.11 .IP "Log::Dispatch::Config::TestLog" 4 .IX Item "Log::Dispatch::Config::TestLog" Modifies Test::Builder internals. .Sp Still broken as of version: 0.02 .IP "Test::Able" 4 .IX Item "Test::Able" Modifies Test::Builder internals. .Sp Still broken as of version: 0.11 .SH "MAKE ASSERTIONS \-> SEND EVENTS" .IX Header "MAKE ASSERTIONS -> SEND EVENTS" .SS "\s-1LEGACY\s0" .IX Subsection "LEGACY" .Vb 1 \& use Test::Builder; \& \& # A majority of tools out there do this: \& # my $TB = Test::Builder\->new; \& # This works, but has always been wrong, forcing Test::Builder to implement \& # subtests as a horrific hack. It also causes problems for tools that try \& # to replace the singleton (also discouraged). \& \& sub my_ok($;$) { \& my ($bool, $name) = @_; \& my $TB = Test::Builder\->new; \& $TB\->ok($bool, $name); \& } \& \& sub my_diag($) { \& my ($msg) = @_; \& my $TB = Test::Builder\->new; \& $TB\->diag($msg); \& } .Ve .SS "\s-1TEST2\s0" .IX Subsection "TEST2" .Vb 1 \& use Test2::API qw/context/; \& \& sub my_ok($;$) { \& my ($bool, $name) = @_; \& my $ctx = context(); \& $ctx\->ok($bool, $name); \& $ctx\->release; \& } \& \& sub my_diag($) { \& my ($msg) = @_; \& my $ctx = context(); \& $ctx\->diag($msg); \& $ctx\->release; \& } .Ve .PP The context object has \s-1API\s0 compatible implementations of the following methods: .ie n .IP "ok($bool, $name)" 4 .el .IP "ok($bool, \f(CW$name\fR)" 4 .IX Item "ok($bool, $name)" .PD 0 .IP "diag(@messages)" 4 .IX Item "diag(@messages)" .IP "note(@messages)" 4 .IX Item "note(@messages)" .ie n .IP "subtest($name, $code)" 4 .el .IP "subtest($name, \f(CW$code\fR)" 4 .IX Item "subtest($name, $code)" .PD .PP If you are looking for helpers with \f(CW\*(C`is\*(C'\fR, \f(CW\*(C`like\*(C'\fR, and others, see Test2::Suite. .SH "WRAP EXISTING TOOLS" .IX Header "WRAP EXISTING TOOLS" .SS "\s-1LEGACY\s0" .IX Subsection "LEGACY" .Vb 1 \& use Test::More; \& \& sub exclusive_ok { \& my ($bool1, $bool2, $name) = @_; \& \& # Ensure errors are reported 1 level higher \& local $Test::Builder::Level = $Test::Builder::Level + 1; \& \& $ok = $bool1 || $bool2; \& $ok &&= !($bool1 && $bool2); \& ok($ok, $name); \& \& return $bool; \& } .Ve .PP Every single tool in the chain from this, to \f(CW\*(C`ok\*(C'\fR, to anything \f(CW\*(C`ok\*(C'\fR calls needs to increment the \f(CW$Level\fR variable. When an error occurs Test::Builder will do a trace to the stack frame determined by \f(CW$Level\fR, and report that file+line as the one where the error occurred. If you or any other tool you use forgets to set \f(CW$Level\fR then errors will be reported to the wrong place. .SS "\s-1TEST2\s0" .IX Subsection "TEST2" .Vb 1 \& use Test::More; \& \& sub exclusive_ok { \& my ($bool1, $bool2, $name) = @_; \& \& # Grab and store the context, even if you do not need to use it \& # directly. \& my $ctx = context(); \& \& $ok = $bool1 || $bool2; \& $ok &&= !($bool1 && $bool2); \& ok($ok, $name); \& \& $ctx\->release; \& return $bool; \& } .Ve .PP Instead of using \f(CW$Level\fR to perform a backtrace, Test2 uses a context object. In this sample you create a context object and store it. This locks the context (errors report 1 level up from here) for all wrapped tools to find. You do not need to use the context object, but you do need to store it in a variable. Once the sub ends the \f(CW$ctx\fR variable is destroyed which lets future tools find their own. .SH "USING UTF8" .IX Header "USING UTF8" .SS "\s-1LEGACY\s0" .IX Subsection "LEGACY" .Vb 3 \& # Set the mode BEFORE anything loads Test::Builder \& use open \*(Aq:std\*(Aq, \*(Aq:encoding(utf8)\*(Aq; \& use Test::More; .Ve .PP Or .PP .Vb 5 \& # Modify the filehandles \& my $builder = Test::More\->builder; \& binmode $builder\->output, ":encoding(utf8)"; \& binmode $builder\->failure_output, ":encoding(utf8)"; \& binmode $builder\->todo_output, ":encoding(utf8)"; .Ve .SS "\s-1TEST2\s0" .IX Subsection "TEST2" .Vb 1 \& use Test2::API qw/test2_stack/; \& \& test2_stack\->top\->format\->encoding(\*(Aqutf8\*(Aq); .Ve .PP Though a much better way is to use the Test2::Plugin::UTF8 plugin, which is part of Test2::Suite. .SH "AUTHORS, CONTRIBUTORS AND REVIEWERS" .IX Header "AUTHORS, CONTRIBUTORS AND REVIEWERS" The following people have all contributed to this document in some way, even if only for review. .IP "Chad Granum (\s-1EXODIST\s0) " 4 .IX Item "Chad Granum (EXODIST) " .SH "SOURCE" .IX Header "SOURCE" The source code repository for Test2 can be found at \&\fIhttp://github.com/Test\-More/test\-more/\fR. .SH "MAINTAINER" .IX Header "MAINTAINER" .IP "Chad Granum " 4 .IX Item "Chad Granum " .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2019 Chad Granum . .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP See \fIhttp://www.perl.com/perl/misc/Artistic.html\fR man3/Test2::Formatter::TAP.3pm000044400000014605147645265660011656 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test2::Formatter::TAP 3" .TH Test2::Formatter::TAP 3 "2019-09-06" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test2::Formatter::TAP \- Standard TAP formatter .SH "DESCRIPTION" .IX Header "DESCRIPTION" This is what takes events and turns them into \s-1TAP.\s0 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& use Test2::Formatter::TAP; \& my $tap = Test2::Formatter::TAP\->new(); \& \& # Switch to utf8 \& $tap\->encoding(\*(Aqutf8\*(Aq); \& \& $tap\->write($event, $number); # Output an event .Ve .SH "METHODS" .IX Header "METHODS" .ie n .IP "$bool = $tap\->no_numbers" 4 .el .IP "\f(CW$bool\fR = \f(CW$tap\fR\->no_numbers" 4 .IX Item "$bool = $tap->no_numbers" .PD 0 .ie n .IP "$tap\->set_no_numbers($bool)" 4 .el .IP "\f(CW$tap\fR\->set_no_numbers($bool)" 4 .IX Item "$tap->set_no_numbers($bool)" .PD Use to turn numbers on and off. .ie n .IP "$arrayref = $tap\->handles" 4 .el .IP "\f(CW$arrayref\fR = \f(CW$tap\fR\->handles" 4 .IX Item "$arrayref = $tap->handles" .PD 0 .ie n .IP "$tap\->set_handles(\e@handles);" 4 .el .IP "\f(CW$tap\fR\->set_handles(\e@handles);" 4 .IX Item "$tap->set_handles(@handles);" .PD Can be used to get/set the filehandles. Indexes are identified by the \&\f(CW\*(C`OUT_STD\*(C'\fR and \f(CW\*(C`OUT_ERR\*(C'\fR constants. .ie n .IP "$encoding = $tap\->encoding" 4 .el .IP "\f(CW$encoding\fR = \f(CW$tap\fR\->encoding" 4 .IX Item "$encoding = $tap->encoding" .PD 0 .ie n .IP "$tap\->encoding($encoding)" 4 .el .IP "\f(CW$tap\fR\->encoding($encoding)" 4 .IX Item "$tap->encoding($encoding)" .PD Get or set the encoding. By default no encoding is set, the original settings of \s-1STDOUT\s0 and \s-1STDERR\s0 are used. .Sp This directly modifies the stored filehandles, it does not create new ones. .ie n .IP "$tap\->write($e, $num)" 4 .el .IP "\f(CW$tap\fR\->write($e, \f(CW$num\fR)" 4 .IX Item "$tap->write($e, $num)" Write an event to the console. .SH "SOURCE" .IX Header "SOURCE" The source code repository for Test2 can be found at \&\fIhttp://github.com/Test\-More/test\-more/\fR. .SH "MAINTAINERS" .IX Header "MAINTAINERS" .IP "Chad Granum " 4 .IX Item "Chad Granum " .SH "AUTHORS" .IX Header "AUTHORS" .PD 0 .IP "Chad Granum " 4 .IX Item "Chad Granum " .IP "Kent Fredric " 4 .IX Item "Kent Fredric " .PD .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2019 Chad Granum . .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP See \fIhttp://dev.perl.org/licenses/\fR man3/Test2::Event::Note.3pm000044400000012007147645265660011247 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test2::Event::Note 3" .TH Test2::Event::Note 3 "2019-09-06" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test2::Event::Note \- Note event type .SH "DESCRIPTION" .IX Header "DESCRIPTION" Notes, typically rendered to \s-1STDOUT.\s0 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& use Test2::API qw/context/; \& use Test2::Event::Note; \& \& my $ctx = context(); \& my $event = $ctx\->Note($message); .Ve .SH "ACCESSORS" .IX Header "ACCESSORS" .ie n .IP "$note\->message" 4 .el .IP "\f(CW$note\fR\->message" 4 .IX Item "$note->message" The message for the note. .SH "SOURCE" .IX Header "SOURCE" The source code repository for Test2 can be found at \&\fIhttp://github.com/Test\-More/test\-more/\fR. .SH "MAINTAINERS" .IX Header "MAINTAINERS" .IP "Chad Granum " 4 .IX Item "Chad Granum " .SH "AUTHORS" .IX Header "AUTHORS" .PD 0 .IP "Chad Granum " 4 .IX Item "Chad Granum " .PD .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2019 Chad Granum . .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP See \fIhttp://dev.perl.org/licenses/\fR man3/JSON::backportPP::Compat5005.3pm000044400000010624147645265660012636 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "JSON::backportPP::Compat5005 3" .TH JSON::backportPP::Compat5005 3 "2017-12-21" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" JSON::PP5005 \- Helper module in using JSON::PP in Perl 5.005 .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\s-1JSON::PP\s0 calls internally. .SH "AUTHOR" .IX Header "AUTHOR" Makamaka Hannyaharamitu, .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" Copyright 2007\-2012 by Makamaka Hannyaharamitu .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. man3/TAP::Harness::Beyond.3pm000044400000050672147645265660011541 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "TAP::Harness::Beyond 3" .TH TAP::Harness::Beyond 3 "2015-04-17" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test::Harness::Beyond \- Beyond make test .SH "Beyond make test" .IX Header "Beyond make test" Test::Harness is responsible for running test scripts, analysing their output and reporting success or failure. When I type \&\fImake test\fR (or \fI./Build test\fR) for a module, Test::Harness is usually used to run the tests (not all modules use Test::Harness but the majority do). .PP To start exploring some of the features of Test::Harness I need to switch from \fImake test\fR to the \fIprove\fR command (which ships with Test::Harness). For the following examples I'll also need a recent version of Test::Harness installed; 3.14 is current as I write. .PP For the examples I'm going to assume that we're working with a \&'normal' Perl module distribution. Specifically I'll assume that typing \fImake\fR or \fI./Build\fR causes the built, ready-to-install module code to be available below ./blib/lib and ./blib/arch and that there's a directory called 't' that contains our tests. Test::Harness isn't hardwired to that configuration but it saves me from explaining which files live where for each example. .PP Back to \fIprove\fR; like \fImake test\fR it runs a test suite \- but it provides far more control over which tests are executed, in what order and how their results are reported. Typically \fImake test\fR runs all the test scripts below the 't' directory. To do the same thing with prove I type: .PP .Vb 1 \& prove \-rb t .Ve .PP The switches here are \-r to recurse into any directories below 't' and \-b which adds ./blib/lib and ./blib/arch to Perl's include path so that the tests can find the code they will be testing. If I'm testing a module of which an earlier version is already installed I need to be careful about the include path to make sure I'm not running my tests against the installed version rather than the new one that I'm working on. .PP Unlike \fImake test\fR, typing \fIprove\fR doesn't automatically rebuild my module. If I forget to make before prove I will be testing against older versions of those files \- which inevitably leads to confusion. I either get into the habit of typing .PP .Vb 1 \& make && prove \-rb t .Ve .PP or \- if I have no \s-1XS\s0 code that needs to be built I use the modules below \fIlib\fR instead .PP .Vb 1 \& prove \-Ilib \-r t .Ve .PP So far I've shown you nothing that \fImake test\fR doesn't do. Let's fix that. .SS "Saved State" .IX Subsection "Saved State" If I have failing tests in a test suite that consists of more than a handful of scripts and takes more than a few seconds to run it rapidly becomes tedious to run the whole test suite repeatedly as I track down the problems. .PP I can tell prove just to run the tests that are failing like this: .PP .Vb 1 \& prove \-b t/this_fails.t t/so_does_this.t .Ve .PP That speeds things up but I have to make a note of which tests are failing and make sure that I run those tests. Instead I can use prove's \-\-state switch and have it keep track of failing tests for me. First I do a complete run of the test suite and tell prove to save the results: .PP .Vb 1 \& prove \-rb \-\-state=save t .Ve .PP That stores a machine readable summary of the test run in a file called '.prove' in the current directory. If I have failures I can then run just the failing scripts like this: .PP .Vb 1 \& prove \-b \-\-state=failed .Ve .PP I can also tell prove to save the results again so that it updates its idea of which tests failed: .PP .Vb 1 \& prove \-b \-\-state=failed,save .Ve .PP As soon as one of my failing tests passes it will be removed from the list of failed tests. Eventually I fix them all and prove can find no failing tests to run: .PP .Vb 2 \& Files=0, Tests=0, 0 wallclock secs ( 0.00 usr + 0.00 sys = 0.00 CPU) \& Result: NOTESTS .Ve .PP As I work on a particular part of my module it's most likely that the tests that cover that code will fail. I'd like to run the whole test suite but have it prioritize these 'hot' tests. I can tell prove to do this: .PP .Vb 1 \& prove \-rb \-\-state=hot,save t .Ve .PP All the tests will run but those that failed most recently will be run first. If no tests have failed since I started saving state all tests will run in their normal order. This combines full test coverage with early notification of failures. .PP The \-\-state switch supports a number of options; for example to run failed tests first followed by all remaining tests ordered by the timestamps of the test scripts \- and save the results \- I can use .PP .Vb 1 \& prove \-rb \-\-state=failed,new,save t .Ve .PP See the prove documentation (type prove \-\-man) for the full list of state options. .PP When I tell prove to save state it writes a file called '.prove' ('_prove' on Windows) in the current directory. It's a \s-1YAML\s0 document so it's quite easy to write tools of your own that work on the saved test state \- but the format isn't officially documented so it might change without (much) warning in the future. .SS "Parallel Testing" .IX Subsection "Parallel Testing" If my tests take too long to run I may be able to speed them up by running multiple test scripts in parallel. This is particularly effective if the tests are I/O bound or if I have multiple \s-1CPU\s0 cores. I tell prove to run my tests in parallel like this: .PP .Vb 1 \& prove \-rb \-j 9 t .Ve .PP The \-j switch enables parallel testing; the number that follows it is the maximum number of tests to run in parallel. Sometimes tests that pass when run sequentially will fail when run in parallel. For example if two different test scripts use the same temporary file or attempt to listen on the same socket I'll have problems running them in parallel. If I see unexpected failures I need to check my tests to work out which of them are trampling on the same resource and rename temporary files or add locks as appropriate. .PP To get the most performance benefit I want to have the test scripts that take the longest to run start first \- otherwise I'll be waiting for the one test that takes nearly a minute to complete after all the others are done. I can use the \-\-state switch to run the tests in slowest to fastest order: .PP .Vb 1 \& prove \-rb \-j 9 \-\-state=slow,save t .Ve .SS "Non-Perl Tests" .IX Subsection "Non-Perl Tests" The Test Anything Protocol (http://testanything.org/) isn't just for Perl. Just about any language can be used to write tests that output \s-1TAP.\s0 There are \s-1TAP\s0 based testing libraries for C, \*(C+, \s-1PHP,\s0 Python and many others. If I can't find a \s-1TAP\s0 library for my language of choice it's easy to generate valid \s-1TAP.\s0 It looks like this: .PP .Vb 4 \& 1..3 \& ok 1 \- init OK \& ok 2 \- opened file \& not ok 3 \- appended to file .Ve .PP The first line is the plan \- it specifies the number of tests I'm going to run so that it's easy to check that the test script didn't exit before running all the expected tests. The following lines are the test results \- 'ok' for pass, 'not ok' for fail. Each test has a number and, optionally, a description. And that's it. Any language that can produce output like that on \s-1STDOUT\s0 can be used to write tests. .PP Recently I've been rekindling a two-decades-old interest in Forth. Evidently I have a masochistic streak that even Perl can't satisfy. I want to write tests in Forth and run them using prove (you can find my gforth \s-1TAP\s0 experiments at https://svn.hexten.net/andy/Forth/Testing/). I can use the \-\-exec switch to tell prove to run the tests using gforth like this: .PP .Vb 1 \& prove \-r \-\-exec gforth t .Ve .PP Alternately, if the language used to write my tests allows a shebang line I can use that to specify the interpreter. Here's a test written in \s-1PHP:\s0 .PP .Vb 6 \& #!/usr/bin/php \& .Ve .PP If I save that as t/phptest.t the shebang line will ensure that it runs correctly along with all my other tests. .SS "Mixing it up" .IX Subsection "Mixing it up" Subtle interdependencies between test programs can mask problems \- for example an earlier test may neglect to remove a temporary file that affects the behaviour of a later test. To find this kind of problem I use the \-\-shuffle and \-\-reverse options to run my tests in random or reversed order. .SS "Rolling My Own" .IX Subsection "Rolling My Own" If I need a feature that prove doesn't provide I can easily write my own. .PP Typically you'll want to change how \s-1TAP\s0 gets \fIinput\fR into and \fIoutput\fR from the parser. App::Prove supports arbitrary plugins, and TAP::Harness supports custom \fIformatters\fR and \fIsource handlers\fR that you can load using either prove or Module::Build; there are many examples to base mine on. For more details see App::Prove, TAP::Parser::SourceHandler, and TAP::Formatter::Base. .PP If writing a plugin is not enough, you can write your own test harness; one of the motives for the 3.00 rewrite of Test::Harness was to make it easier to subclass and extend. .PP The Test::Harness module is a compatibility wrapper around TAP::Harness. For new applications I should use TAP::Harness directly. As we'll see, prove uses TAP::Harness. .PP When I run prove it processes its arguments, figures out which test scripts to run and then passes control to TAP::Harness to run the tests, parse, analyse and present the results. By subclassing TAP::Harness I can customise many aspects of the test run. .PP I want to log my test results in a database so I can track them over time. To do this I override the summary method in TAP::Harness. I start with a simple prototype that dumps the results as a \s-1YAML\s0 document: .PP .Vb 1 \& package My::TAP::Harness; \& \& use base \*(AqTAP::Harness\*(Aq; \& use YAML; \& \& sub summary { \& my ( $self, $aggregate ) = @_; \& print Dump( $aggregate ); \& $self\->SUPER::summary( $aggregate ); \& } \& \& 1; .Ve .PP I need to tell prove to use my My::TAP::Harness. If My::TAP::Harness is on Perl's \f(CW@INC\fR include path I can .PP .Vb 1 \& prove \-\-harness=My::TAP::Harness \-rb t .Ve .PP If I don't have My::TAP::Harness installed on \f(CW@INC\fR I need to provide the correct path to perl when I run prove: .PP .Vb 1 \& perl \-Ilib \`which prove\` \-\-harness=My::TAP::Harness \-rb t .Ve .PP I can incorporate these options into my own version of prove. It's pretty simple. Most of the work of prove is handled by App::Prove. The important code in prove is just: .PP .Vb 1 \& use App::Prove; \& \& my $app = App::Prove\->new; \& $app\->process_args(@ARGV); \& exit( $app\->run ? 0 : 1 ); .Ve .PP If I write a subclass of App::Prove I can customise any aspect of the test runner while inheriting all of prove's behaviour. Here's myprove: .PP .Vb 2 \& #!/usr/bin/env perl use lib qw( lib ); # Add ./lib to @INC \& use App::Prove; \& \& my $app = App::Prove\->new; \& \& # Use custom TAP::Harness subclass \& $app\->harness( \*(AqMy::TAP::Harness\*(Aq ); \& \& $app\->process_args( @ARGV ); exit( $app\->run ? 0 : 1 ); .Ve .PP Now I can run my tests like this .PP .Vb 1 \& ./myprove \-rb t .Ve .SS "Deeper Customisation" .IX Subsection "Deeper Customisation" Now that I know how to subclass and replace TAP::Harness I can replace any other part of the harness. To do that I need to know which classes are responsible for which functionality. Here's a brief guided tour; the default class for each component is shown in parentheses. Normally any replacements I write will be subclasses of these default classes. .PP When I run my tests TAP::Harness creates a scheduler (TAP::Parser::Scheduler) to work out the running order for the tests, an aggregator (TAP::Parser::Aggregator) to collect and analyse the test results and a formatter (TAP::Formatter::Console) to display those results. .PP If I'm running my tests in parallel there may also be a multiplexer (TAP::Parser::Multiplexer) \- the component that allows multiple tests to run simultaneously. .PP Once it has created those helpers TAP::Harness starts running the tests. For each test it creates a new parser (TAP::Parser) which is responsible for running the test script and parsing its output. .PP To replace any of these components I call one of these harness methods with the name of the replacement class: .PP .Vb 5 \& aggregator_class \& formatter_class \& multiplexer_class \& parser_class \& scheduler_class .Ve .PP For example, to replace the aggregator I would .PP .Vb 1 \& $harness\->aggregator_class( \*(AqMy::Aggregator\*(Aq ); .Ve .PP Alternately I can supply the names of my substitute classes to the TAP::Harness constructor: .PP .Vb 3 \& my $harness = TAP::Harness\->new( \& { aggregator_class => \*(AqMy::Aggregator\*(Aq } \& ); .Ve .PP If I need to reach even deeper into the internals of the harness I can replace the classes that TAP::Parser uses to execute test scripts and tokenise their output. Before running a test script TAP::Parser creates a grammar (TAP::Parser::Grammar) to decode the raw \s-1TAP\s0 into tokens, a result factory (TAP::Parser::ResultFactory) to turn the decoded \s-1TAP\s0 results into objects and, depending on whether it's running a test script or reading \s-1TAP\s0 from a file, scalar or array a source or an iterator (TAP::Parser::IteratorFactory). .PP Each of these objects may be replaced by calling one of these parser methods: .PP .Vb 5 \& source_class \& perl_source_class \& grammar_class \& iterator_factory_class \& result_factory_class .Ve .SS "Callbacks" .IX Subsection "Callbacks" As an alternative to subclassing the components I need to change I can attach callbacks to the default classes. TAP::Harness exposes these callbacks: .PP .Vb 5 \& parser_args Tweak the parameters used to create the parser \& made_parser Just made a new parser \& before_runtests About to run tests \& after_runtests Have run all tests \& after_test Have run an individual test script .Ve .PP TAP::Parser also supports callbacks; bailout, comment, plan, test, unknown, version and yaml are called for the corresponding \s-1TAP\s0 result types, \s-1ALL\s0 is called for all results, \s-1ELSE\s0 is called for all results for which a named callback is not installed and \s-1EOF\s0 is called once at the end of each \s-1TAP\s0 stream. .PP To install a callback I pass the name of the callback and a subroutine reference to TAP::Harness or TAP::Parser's callback method: .PP .Vb 3 \& $harness\->callback( after_test => sub { \& my ( $script, $desc, $parser ) = @_; \& } ); .Ve .PP I can also pass callbacks to the constructor: .PP .Vb 8 \& my $harness = TAP::Harness\->new({ \& callbacks => { \& after_test => sub { \& my ( $script, $desc, $parser ) = @_; \& # Do something interesting here \& } \& } \& }); .Ve .PP When it comes to altering the behaviour of the test harness there's more than one way to do it. Which way is best depends on my requirements. In general if I only want to observe test execution without changing the harness' behaviour (for example to log test results to a database) I choose callbacks. If I want to make the harness behave differently subclassing gives me more control. .SS "Parsing \s-1TAP\s0" .IX Subsection "Parsing TAP" Perhaps I don't need a complete test harness. If I already have a \&\s-1TAP\s0 test log that I need to parse all I need is TAP::Parser and the various classes it depends upon. Here's the code I need to run a test and parse its \s-1TAP\s0 output .PP .Vb 1 \& use TAP::Parser; \& \& my $parser = TAP::Parser\->new( { source => \*(Aqt/simple.t\*(Aq } ); \& while ( my $result = $parser\->next ) { \& print $result\->as_string, "\en"; \& } .Ve .PP Alternately I can pass an open filehandle as source and have the parser read from that rather than attempting to run a test script: .PP .Vb 6 \& open my $tap, \*(Aq<\*(Aq, \*(Aqtests.tap\*(Aq \& or die "Can\*(Aqt read TAP transcript ($!)\en"; \& my $parser = TAP::Parser\->new( { source => $tap } ); \& while ( my $result = $parser\->next ) { \& print $result\->as_string, "\en"; \& } .Ve .PP This approach is useful if I need to convert my \s-1TAP\s0 based test results into some other representation. See TAP::Convert::TET (http://search.cpan.org/dist/TAP\-Convert\-TET/) for an example of this approach. .SS "Getting Support" .IX Subsection "Getting Support" The Test::Harness developers hang out on the tapx-dev mailing list[1]. For discussion of general, language independent \s-1TAP\s0 issues there's the tap\-l[2] list. Finally there's a wiki dedicated to the Test Anything Protocol[3]. Contributions to the wiki, patches and suggestions are all welcome. .PP [1] [2] [3] man3/TAP::Formatter::Console::ParallelSession.3pm000044400000011405147645265660015457 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "TAP::Formatter::Console::ParallelSession 3" .TH TAP::Formatter::Console::ParallelSession 3 "2018-03-19" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" TAP::Formatter::Console::ParallelSession \- Harness output delegate for parallel console output .SH "VERSION" .IX Header "VERSION" Version 3.42 .SH "DESCRIPTION" .IX Header "DESCRIPTION" This provides console orientated output formatting for TAP::Harness when run with multiple \*(L"jobs\*(R" in TAP::Harness. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .SH "METHODS" .IX Header "METHODS" .SS "Class Methods" .IX Subsection "Class Methods" \fI\f(CI\*(C`header\*(C'\fI\fR .IX Subsection "header" .PP Output test preamble .PP \fI\f(CI\*(C`result\*(C'\fI\fR .IX Subsection "result" .PP .Vb 1 \& Called by the harness for each line of TAP it receives . .Ve .PP \fI\f(CI\*(C`clear_for_close\*(C'\fI\fR .IX Subsection "clear_for_close" .PP \fI\f(CI\*(C`close_test\*(C'\fI\fR .IX Subsection "close_test" man3/Test2::EventFacet::Plan.3pm000044400000015262147645265660012205 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test2::EventFacet::Plan 3" .TH Test2::EventFacet::Plan 3 "2019-09-06" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test2::EventFacet::Plan \- Facet for setting the plan .SH "DESCRIPTION" .IX Header "DESCRIPTION" Events use this facet when they need to set the plan. .SH "FIELDS" .IX Header "FIELDS" .ie n .IP "$string = $plan\->{details}" 4 .el .IP "\f(CW$string\fR = \f(CW$plan\fR\->{details}" 4 .IX Item "$string = $plan->{details}" .PD 0 .ie n .IP "$string = $plan\->\fIdetails()\fR" 4 .el .IP "\f(CW$string\fR = \f(CW$plan\fR\->\fIdetails()\fR" 4 .IX Item "$string = $plan->details()" .PD Human readable explanation for the plan being set. This is normally not rendered by most formatters except when the \f(CW\*(C`skip\*(C'\fR field is also set. .ie n .IP "$positive_int = $plan\->{count}" 4 .el .IP "\f(CW$positive_int\fR = \f(CW$plan\fR\->{count}" 4 .IX Item "$positive_int = $plan->{count}" .PD 0 .ie n .IP "$positive_int = $plan\->\fIcount()\fR" 4 .el .IP "\f(CW$positive_int\fR = \f(CW$plan\fR\->\fIcount()\fR" 4 .IX Item "$positive_int = $plan->count()" .PD Set the number of expected assertions. This should usually be set to \f(CW0\fR when \&\f(CW\*(C`skip\*(C'\fR or \f(CW\*(C`none\*(C'\fR are also set. .ie n .IP "$bool = $plan\->{skip}" 4 .el .IP "\f(CW$bool\fR = \f(CW$plan\fR\->{skip}" 4 .IX Item "$bool = $plan->{skip}" .PD 0 .ie n .IP "$bool = $plan\->\fIskip()\fR" 4 .el .IP "\f(CW$bool\fR = \f(CW$plan\fR\->\fIskip()\fR" 4 .IX Item "$bool = $plan->skip()" .PD When true the entire test should be skipped. This is usually paired with an explanation in the \f(CW\*(C`details\*(C'\fR field, and a \f(CW\*(C`control\*(C'\fR facet that has \&\f(CW\*(C`terminate\*(C'\fR set to \f(CW0\fR. .ie n .IP "$bool = $plan\->{none}" 4 .el .IP "\f(CW$bool\fR = \f(CW$plan\fR\->{none}" 4 .IX Item "$bool = $plan->{none}" .PD 0 .ie n .IP "$bool = $plan\->\fInone()\fR" 4 .el .IP "\f(CW$bool\fR = \f(CW$plan\fR\->\fInone()\fR" 4 .IX Item "$bool = $plan->none()" .PD This is mainly used by legacy Test::Builder tests which set the plan to \f(CW\*(C`no plan\*(C'\fR, a construct that predates the much better \f(CW\*(C`done_testing()\*(C'\fR. .Sp If you are using this in non-legacy code you may need to reconsider the course of your life, maybe a hermitage would suite you? .SH "SOURCE" .IX Header "SOURCE" The source code repository for Test2 can be found at \&\fIhttp://github.com/Test\-More/test\-more/\fR. .SH "MAINTAINERS" .IX Header "MAINTAINERS" .IP "Chad Granum " 4 .IX Item "Chad Granum " .SH "AUTHORS" .IX Header "AUTHORS" .PD 0 .IP "Chad Granum " 4 .IX Item "Chad Granum " .PD .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2019 Chad Granum . .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP See \fIhttp://dev.perl.org/licenses/\fR man3/NetAddr::IP::UtilPP.3pm000044400000026051147645265660011272 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "NetAddr::IP::UtilPP 3" .TH NetAddr::IP::UtilPP 3 "2012-08-10" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" NetAddr::IP::UtilPP \-\- pure Perl functions for NetAddr::IP::Util .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 10 \& use NetAddr::IP::UtilPP qw( \& hasbits \& shiftleft \& addconst \& add128 \& sub128 \& notcontiguous \& ipv4to6 \& mask4to6 \& ipanyto6 \& maskanyto6 \& ipv6to4 \& bin2bcd \& bcd2bin \& ); \& \& use NetAddr::IP::UtilPP qw(:all) \& \& $rv = hasbits($bits128); \& $bitsX2 = shiftleft($bits128,$n); \& $carry = addconst($ipv6naddr,$signed_32con); \& ($carry,$ipv6naddr)=addconst($ipv6naddr,$signed_32con); \& $carry = add128($ipv6naddr1,$ipv6naddr2); \& ($carry,$ipv6naddr)=add128($ipv6naddr1,$ipv6naddr2); \& $carry = sub128($ipv6naddr1,$ipv6naddr2); \& ($spurious,$cidr) = notcontiguous($mask128); \& ($carry,$ipv6naddr)=sub128($ipv6naddr1,$ipv6naddr2); \& $ipv6naddr = ipv4to6($netaddr); \& $ipv6naddr = mask4to6($netaddr); \& $ipv6naddr = ipanyto6($netaddr); \& $ipv6naddr = maskanyto6($netaddr); \& $netaddr = ipv6to4($pv6naddr); \& $bcdtext = bin2bcd($bits128); \& $bits128 = bcd2bin($bcdtxt); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBNetAddr::IP::UtilPP\fR provides pure Perl functions for \fBNetAddr::IP::Util\fR .IP "\(bu" 4 \&\f(CW$rv\fR = hasbits($bits128); .Sp This function returns true if there are one's present in the 128 bit string and false if all the bits are zero. .Sp .Vb 3 \& i.e. if (hasbits($bits128)) { \& &do_something; \& } \& \& or if (hasbits($bits128 & $mask128) { \& &do_something; \& } .Ve .Sp This allows the implementation of logical functions of the form of: .Sp .Vb 2 \& if ($bits128 & $mask128) { \& ... \& \& input: 128 bit IPv6 string \& returns: true if any bits are present .Ve .IP "\(bu" 4 \&\f(CW$bitsXn\fR = shiftleft($bits128,$n); .Sp .Vb 3 \& input: 128 bit string variable, \& number of shifts [optional] \& returns: bits X n shifts \& \& NOTE: input bits are returned \& if $n is not specified .Ve .IP "\(bu" 4 addconst($ipv6naddr,$signed_32con); .Sp Add a signed constant to a 128 bit string variable. .Sp .Vb 4 \& input: 128 bit IPv6 string, \& signed 32 bit integer \& returns: scalar carry \& array (carry, result) .Ve .IP "\(bu" 4 add128($ipv6naddr1,$ipv6naddr2); .Sp Add two 128 bit string variables. .Sp .Vb 4 \& input: 128 bit string var1, \& 128 bit string var2 \& returns: scalar carry \& array (carry, result) .Ve .IP "\(bu" 4 sub128($ipv6naddr1,$ipv6naddr2); .Sp Subtract two 128 bit string variables. .Sp .Vb 4 \& input: 128 bit string var1, \& 128 bit string var2 \& returns: scalar carry \& array (carry, result) .Ve .Sp Note: The carry from this operation is the result of adding the one's complement of \s-1ARG2 +1\s0 to the \s-1ARG1.\s0 It is logically \&\fB\s-1NOT\s0 borrow\fR. .Sp .Vb 2 \& i.e. if ARG1 >= ARG2 then carry = 1 \& or if ARG1 < ARG2 then carry = 0 .Ve .IP "\(bu" 4 ($spurious,$cidr) = notcontiguous($mask128); .Sp This function counts the bit positions remaining in the mask when the rightmost '0's are removed. .Sp .Vb 6 \& input: 128 bit netmask \& returns true if there are spurious \& zero bits remaining in the \& mask, false if the mask is \& contiguous one\*(Aqs, \& 128 bit cidr .Ve .IP "\(bu" 4 \&\f(CW$ipv6naddr\fR = ipv4to6($netaddr); .Sp Convert an ipv4 network address into an ipv6 network address. .Sp .Vb 2 \& input: 32 bit network address \& returns: 128 bit network address .Ve .IP "\(bu" 4 \&\f(CW$ipv6naddr\fR = mask4to6($netaddr); .Sp Convert an ipv4 netowrk address into an ipv6 network mask. .Sp .Vb 2 \& input: 32 bit network/mask address \& returns: 128 bit network/mask address .Ve .Sp \&\s-1NOTE:\s0 returns the high 96 bits as one's .IP "\(bu" 4 \&\f(CW$ipv6naddr\fR = ipanyto6($netaddr); .Sp Similar to ipv4to6 except that this function takes either an IPv4 or IPv6 input and always returns a 128 bit IPv6 network address. .Sp .Vb 2 \& input: 32 or 128 bit network address \& returns: 128 bit network address .Ve .IP "\(bu" 4 \&\f(CW$ipv6naddr\fR = maskanyto6($netaddr); .Sp Similar to mask4to6 except that this function takes either an IPv4 or IPv6 netmask and always returns a 128 bit IPv6 netmask. .Sp .Vb 2 \& input: 32 or 128 bit network mask \& returns: 128 bit network mask .Ve .IP "\(bu" 4 \&\f(CW$netaddr\fR = ipv6to4($pv6naddr); .Sp Truncate the upper 96 bits of a 128 bit address and return the lower 32 bits. Returns an IPv4 address as returned by inet_aton. .Sp .Vb 2 \& input: 128 bit network address \& returns: 32 bit inet_aton network address .Ve .IP "\(bu" 4 \&\f(CW$bcdtext\fR = bin2bcd($bits128); .Sp Convert a 128 bit binary string into binary coded decimal text digits. .Sp .Vb 2 \& input: 128 bit string variable \& returns: string of bcd text digits .Ve .IP "\(bu" 4 \&\f(CW$bits128\fR = bcd2bin($bcdtxt); .Sp Convert a bcd text string to 128 bit string variable .Sp .Vb 2 \& input: string of bcd text digits \& returns: 128 bit string variable .Ve .SH "EXPORT_OK" .IX Header "EXPORT_OK" .Vb 10 \& hasbits \& shiftleft \& addconst \& add128 \& sub128 \& notcontiguous \& ipv4to6 \& mask4to6 \& ipanyto6 \& maskanyto6 \& ipv6to4 \& bin2bcd \& bcd2bin \& comp128 \& bin2bcdn \& bcdn2txt \& bcdn2bin \& simple_pack \& threads .Ve .SH "AUTHOR" .IX Header "AUTHOR" Michael Robinton .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2003 \- 2012, Michael Robinton .PP All rights reserved. .PP This program is free software; you can redistribute it and/or modify it under the terms of either: .PP .Vb 3 \& a) the GNU General Public License as published by the Free \& Software Foundation; either version 2, or (at your option) any \& later version, or \& \& b) the "Artistic License" which comes with this distribution. .Ve .PP This program is distributed in the hope that it will be useful, but \s-1WITHOUT ANY WARRANTY\s0; without even the implied warranty of \&\s-1MERCHANTABILITY\s0 or \s-1FITNESS FOR A PARTICULAR PURPOSE. \s0 See either the \s-1GNU\s0 General Public License or the Artistic License for more details. .PP You should have received a copy of the Artistic License with this distribution, in the file named \*(L"Artistic\*(R". If not, I'll be glad to provide one. .PP You should also have received a copy of the \s-1GNU\s0 General Public License along with this program in the file named \*(L"Copying\*(R". If not, write to the .PP .Vb 3 \& Free Software Foundation, Inc., \& 51 Franklin Street, Fifth Floor \& Boston, MA 02110\-1301 USA .Ve .PP or visit their web page on the internet at: .PP .Vb 1 \& http://www.gnu.org/copyleft/gpl.html. .Ve .SH "AUTHOR" .IX Header "AUTHOR" Michael Robinton man3/CPAN::Meta::Validator.3pm000044400000013603147645265660011617 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CPAN::Meta::Validator 3" .TH CPAN::Meta::Validator 3 "2016-08-18" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" CPAN::Meta::Validator \- validate CPAN distribution metadata structures .SH "VERSION" .IX Header "VERSION" version 2.150010 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& my $struct = decode_json_file(\*(AqMETA.json\*(Aq); \& \& my $cmv = CPAN::Meta::Validator\->new( $struct ); \& \& unless ( $cmv\->is_valid ) { \& my $msg = "Invalid META structure. Errors found:\en"; \& $msg .= join( "\en", $cmv\->errors ); \& die $msg; \& } .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This module validates a \s-1CPAN\s0 Meta structure against the version of the the specification claimed in the \f(CW\*(C`meta\-spec\*(C'\fR field of the structure. .SH "METHODS" .IX Header "METHODS" .SS "new" .IX Subsection "new" .Vb 1 \& my $cmv = CPAN::Meta::Validator\->new( $struct ) .Ve .PP The constructor must be passed a metadata structure. .SS "is_valid" .IX Subsection "is_valid" .Vb 3 \& if ( $cmv\->is_valid ) { \& ... \& } .Ve .PP Returns a boolean value indicating whether the metadata provided is valid. .SS "errors" .IX Subsection "errors" .Vb 1 \& warn( join "\en", $cmv\->errors ); .Ve .PP Returns a list of errors seen during validation. .SH "BUGS" .IX Header "BUGS" Please report any bugs or feature using the \s-1CPAN\s0 Request Tracker. Bugs can be submitted through the web interface at .PP When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature. .SH "AUTHORS" .IX Header "AUTHORS" .IP "\(bu" 4 David Golden .IP "\(bu" 4 Ricardo Signes .IP "\(bu" 4 Adam Kennedy .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is copyright (c) 2010 by David Golden, Ricardo Signes, Adam Kennedy and Contributors. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. man3/WWW::Mechanize::FAQ.3pm000044400000057706147645265660011275 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "WWW::Mechanize::FAQ 3" .TH WWW::Mechanize::FAQ 3 "2020-02-20" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" WWW::Mechanize::FAQ \- Frequently Asked Questions about WWW::Mechanize .SH "VERSION" .IX Header "VERSION" version 1.96 .SH "How to get help with WWW::Mechanize" .IX Header "How to get help with WWW::Mechanize" If your question isn't answered here in the \s-1FAQ,\s0 please turn to the communities at: .IP "\(bu" 4 StackOverflow .IP "\(bu" 4 #lwp on irc.perl.org .IP "\(bu" 4 .IP "\(bu" 4 The libwww-perl mailing list at .SH "JavaScript" .IX Header "JavaScript" .SS "I have this web page that has JavaScript on it, and my Mech program doesn't work." .IX Subsection "I have this web page that has JavaScript on it, and my Mech program doesn't work." That's because WWW::Mechanize doesn't operate on the JavaScript. It only understands the \s-1HTML\s0 parts of the page. .SS "I thought Mech was supposed to work like a web browser." .IX Subsection "I thought Mech was supposed to work like a web browser." It does pretty much, but it doesn't support JavaScript. .PP I added some basic attempts at picking up URLs in \f(CW\*(C`window.open()\*(C'\fR calls and return them in \f(CW\*(C`$mech\->links\*(C'\fR. They work sometimes. .PP Since Javascript is completely visible to the client, it cannot be used to prevent a scraper from following links. But it can make life difficult. If you want to scrape specific pages, then a solution is always possible. .PP One typical use of Javascript is to perform argument checking before posting to the server. The \s-1URL\s0 you want is probably just buried in the Javascript function. Do a regular expression match on \&\f(CW\*(C`$mech\->content()\*(C'\fR to find the link that you want and \f(CW\*(C`$mech\->get\*(C'\fR it directly (this assumes that you know what you are looking for in advance). .PP In more difficult cases, the Javascript is used for \s-1URL\s0 mangling to satisfy the needs of some middleware. In this case you need to figure out what the Javascript is doing (why are these URLs always really long?). There is probably some function with one or more arguments which calculates the new \s-1URL.\s0 Step one: using your favorite browser, get the before and after URLs and save them to files. Edit each file, converting the argument separators ('?', '&' or ';') into newlines. Now it is easy to use diff or comm to find out what Javascript did to the \s-1URL.\s0 Step 2 \- find the function call which created the \s-1URL \-\s0 you will need to parse and interpret its argument list. The Javascript Debugger in the Firebug extension for Firefox helps with the analysis. At this point, it is fairly trivial to write your own function which emulates the Javascript for the pages you want to process. .PP Here's another approach that answers the question, \*(L"It works in Firefox, but why not Mech?\*(R" Everything the web server knows about the client is present in the \s-1HTTP\s0 request. If two requests are identical, the results should be identical. So the real question is \*(L"What is different between the mech request and the Firefox request?\*(R" .PP The Firefox extension \*(L"Tamper Data\*(R" is an effective tool for examining the headers of the requests to the server. Compare that with what \s-1LWP\s0 is sending. Once the two are identical, the action of the server should be the same as well. .PP I say \*(L"should\*(R", because this is an oversimplification \- some values are naturally unique, e.g. a SessionID, but if a SessionID is present, that is probably sufficient, even though the value will be different between the \s-1LWP\s0 request and the Firefox request. The server could use the session to store information which is troublesome, but that's not the first place to look (and highly unlikely to be relevant when you are requesting the login page of your site). .PP Generally the problem is to be found in missing or incorrect \s-1POSTDATA\s0 arguments, Cookies, User-Agents, Accepts, etc. If you are using mech, then redirects and cookies should not be a problem, but are listed here for completeness. If you are missing headers, \f(CW\*(C`$mech\->add_header\*(C'\fR can be used to add the headers that you need. .SS "Which modules work like Mechanize and have JavaScript support?" .IX Subsection "Which modules work like Mechanize and have JavaScript support?" In no particular order: Gtk2::WebKit::Mechanize, Win32::IE::Mechanize, WWW::Mechanize::Firefox, WWW::Scripter, WWW::Selenium .SH "How do I do X?" .IX Header "How do I do X?" .SS "Can I do [such\-and\-such] with WWW::Mechanize?" .IX Subsection "Can I do [such-and-such] with WWW::Mechanize?" If it's possible with LWP::UserAgent, then yes. WWW::Mechanize is a subclass of LWP::UserAgent, so all the wondrous magic of that class is inherited. .SS "How do I use WWW::Mechanize through a proxy server?" .IX Subsection "How do I use WWW::Mechanize through a proxy server?" See the docs in LWP::UserAgent on how to use the proxy. Short version: .PP .Vb 1 \& $mech\->proxy([\*(Aqhttp\*(Aq, \*(Aqftp\*(Aq], \*(Aqhttp://proxy.example.com:8000/\*(Aq); .Ve .PP or get the specs from the environment: .PP .Vb 1 \& $mech\->env_proxy(); \& \& # Environment set like so: \& gopher_proxy=http://proxy.my.place/ \& wais_proxy=http://proxy.my.place/ \& no_proxy="localhost,my.domain" \& export gopher_proxy wais_proxy no_proxy .Ve .SS "How can I see what fields are on the forms?" .IX Subsection "How can I see what fields are on the forms?" Use the mech-dump utility, optionally installed with Mechanize. .PP .Vb 6 \& $ mech\-dump \-\-forms http://search.cpan.org \& Dumping forms \& GET http://search.cpan.org/search \& query= \& mode=all (option) [*all|module|dist|author] \& =CPAN Search (submit) .Ve .SS "How do I get Mech to handle authentication?" .IX Subsection "How do I get Mech to handle authentication?" .Vb 1 \& use MIME::Base64; \& \& my $agent = WWW::Mechanize\->new(); \& my @args = ( \& Authorization => "Basic " . \& MIME::Base64::encode( USER . \*(Aq:\*(Aq . PASS ) \& ); \& \& $agent\->credentials( ADDRESS, REALM, USER, PASS ); \& $agent\->get( URL, @args ); .Ve .PP If you want to use the credentials for all future requests, you can also use the LWP::UserAgent \f(CW\*(C`default_header()\*(C'\fR method instead of the extra arguments to \f(CW\*(C`get()\*(C'\fR .PP .Vb 2 \& $mech\->default_header( \& Authorization => \*(AqBasic \*(Aq . encode_base64( USER . \*(Aq:\*(Aq . PASSWORD ) ); .Ve .SS "How can I get WWW::Mechanize to execute this JavaScript?" .IX Subsection "How can I get WWW::Mechanize to execute this JavaScript?" You can't. JavaScript is entirely client-based, and WWW::Mechanize is a client that doesn't understand JavaScript. See the top part of this \s-1FAQ.\s0 .SS "How do I check a checkbox that doesn't have a value defined?" .IX Subsection "How do I check a checkbox that doesn't have a value defined?" Set it to the value of \*(L"on\*(R". .PP .Vb 1 \& $mech\->field( my_checkbox => \*(Aqon\*(Aq ); .Ve .SS "How do I handle frames?" .IX Subsection "How do I handle frames?" You don't deal with them as frames, per se, but as links. Extract them with .PP .Vb 1 \& my @frame_links = $mech\->find_link( tag => "frame" ); .Ve .SS "How do I get a list of \s-1HTTP\s0 headers and their values?" .IX Subsection "How do I get a list of HTTP headers and their values?" All HTTP::Headers methods work on a HTTP::Response object which is returned by the \fI\fIget()\fI\fR, \fI\fIreload()\fI\fR, \fI\fIresponse()\fI/\fIres()\fI\fR, \fI\fIclick()\fI\fR, \&\fI\fIsubmit_form()\fI\fR, and \fI\fIrequest()\fI\fR methods. .PP .Vb 6 \& my $mech = WWW::Mechanize\->new( autocheck => 1 ); \& $mech\->get( \*(Aqhttp://my.site.com\*(Aq ); \& my $response = $mech\->response(); \& for my $key ( $response\->header_field_names() ) { \& print $key, " : ", $response\->header( $key ), "\en"; \& } .Ve .SS "How do I enable keep-alive?" .IX Subsection "How do I enable keep-alive?" Since WWW::Mechanize is a subclass of LWP::UserAgent, you can use the same mechanism to enable keep-alive: .PP .Vb 3 \& use LWP::ConnCache; \& ... \& $mech\->conn_cache(LWP::ConnCache\->new); .Ve .SS "How can I change/specify the action parameter of an \s-1HTML\s0 form?" .IX Subsection "How can I change/specify the action parameter of an HTML form?" You can access the action of the form by utilizing the HTML::Form object returned from one of the specifying form methods. .PP Using \f(CW\*(C`$mech\->form_number($number)\*(C'\fR: .PP .Vb 4 \& my $mech = WWW::mechanize\->new; \& $mech\->get(\*(Aqhttp://someurlhere.com\*(Aq); \& # Access the form using its Zero\-Based Index by DOM order \& $mech\->form_number(0)\->action(\*(Aqhttp://newAction\*(Aq); #ABS URL .Ve .PP Using \f(CW\*(C`$mech\->form_name($number)\*(C'\fR: .PP .Vb 4 \& my $mech = WWW::mechanize\->new; \& $mech\->get(\*(Aqhttp://someurlhere.com\*(Aq); \& #Access the form using its Zero\-Based Index by DOM order \& $mech\->form_name(\*(AqtrgForm\*(Aq)\->action(\*(Aqhttp://newAction\*(Aq); #ABS URL .Ve .SS "How do I save an image? How do I save a large tarball?" .IX Subsection "How do I save an image? How do I save a large tarball?" An image is just content. You get the image and save it. .PP .Vb 2 \& $mech\->get( \*(Aqphoto.jpg\*(Aq ); \& $mech\->save_content( \*(Aq/path/to/my/directory/photo.jpg\*(Aq ); .Ve .PP You can also save any content directly to disk using the \f(CW\*(C`:content_file\*(C'\fR flag to \f(CW\*(C`get()\*(C'\fR, which is part of LWP::UserAgent. .PP .Vb 2 \& $mech\->get( \*(Aqhttp://www.cpan.org/src/stable.tar.gz\*(Aq, \& \*(Aq:content_file\*(Aq => \*(Aqstable.tar.gz\*(Aq ); .Ve .ie n .SS "How do I pick a specific value from a ""\fP list?" .IX Subsection "How do I pick a specific value from a
      }s \& or die "Can\*(Aqt find the population table\en"; \& $t = $1; \& @outer = $t =~ m{(.*?)
, and ). .IP "\fB:html4\fR" 4 .IX Item ":html4" Import all methods that generate \s-1HTML 4\s0 elements (such as , and ). .IP "\fB:netscape\fR" 4 .IX Item ":netscape" Import the , and
tags. .IP "\fB:html\fR" 4 .IX Item ":html" Import all HTML-generating shortcuts (i.e. 'html2', 'html3', 'html4' and 'netscape') .IP "\fB:standard\fR" 4 .IX Item ":standard" Import \*(L"standard\*(R" features, 'html2', 'html3', 'html4', 'ssl', 'form' and 'cgi'. .PP If you import any of the state-maintaining \s-1CGI\s0 or form-generating methods, a default \s-1CGI\s0 object will be created and initialized automatically the first time you use any of the methods that require one to be present. This includes \&\fB\f(BIparam()\fB\fR, \fB\f(BItextfield()\fB\fR, \fB\f(BIsubmit()\fB\fR and the like. (If you need direct access to the \s-1CGI\s0 object, you can find it in the global variable \fB\f(CB$CGI::Q\fB\fR). .SS "Pragmas" .IX Subsection "Pragmas" Additional \s-1HTML\s0 generation related pragms: .IP "\-nosticky" 4 .IX Item "-nosticky" By default the \s-1CGI\s0 module implements a state-preserving behavior called \&\*(L"sticky\*(R" fields. The way this works is that if you are regenerating a form, the methods that generate the form field values will interrogate \fIparam()\fR to see if similarly-named parameters are present in the query string. If they find a like-named parameter, they will use it to set their default values. .Sp Sometimes this isn't what you want. The \fB\-nosticky\fR pragma prevents this behavior. You can also selectively change the sticky behavior in each element that you generate. .IP "\-tabindex" 4 .IX Item "-tabindex" Automatically add tab index attributes to each form field. With this option turned off, you can still add tab indexes manually by passing a \-tabindex option to each field-generating method. .IP "\-no_xhtml" 4 .IX Item "-no_xhtml" By default, \s-1CGI\s0.pm versions 2.69 and higher emit \s-1XHTML \&\s0(http://www.w3.org/TR/xhtml1/). The \-no_xhtml pragma disables this feature. Thanks to Michalis Kabrianis for this feature. .Sp If \fIstart_html()\fR's \-dtd parameter specifies an \s-1HTML 2.0, 3.2, 4.0\s0 or 4.01 \s-1DTD, XHTML\s0 will automatically be disabled without needing to use this pragma. .SS "Special forms for importing HTML-tag functions" .IX Subsection "Special forms for importing HTML-tag functions" Many of the methods generate \s-1HTML\s0 tags. As described below, tag functions automatically generate both the opening and closing tags. For example: .PP .Vb 1 \& print h1(\*(AqLevel 1 Header\*(Aq); .Ve .PP produces .PP .Vb 1 \&

Level 1 Header

.Ve .PP There will be some times when you want to produce the start and end tags yourself. In this case, you can use the form start_\fItag_name\fR and end_\fItag_name\fR, as in: .PP .Vb 1 \& print start_h1,\*(AqLevel 1 Header\*(Aq,end_h1; .Ve .SS "Creating the \s-1HTML\s0 document header" .IX Subsection "Creating the HTML document header" .Vb 10 \& print start_html( \& \-title => \*(AqSecrets of the Pyramids\*(Aq, \& \-author => \*(Aqfred@capricorn.org\*(Aq, \& \-base => \*(Aqtrue\*(Aq, \& \-target => \*(Aq_blank\*(Aq, \& \-meta => {\*(Aqkeywords\*(Aq=>\*(Aqpharaoh secret mummy\*(Aq, \& \*(Aqcopyright\*(Aq => \*(Aqcopyright 1996 King Tut\*(Aq}, \& \-style => {\*(Aqsrc\*(Aq=>\*(Aq/styles/style1.css\*(Aq}, \& \-BGCOLOR => \*(Aqblue\*(Aq \& ); .Ve .PP The \fIstart_html()\fR routine creates the top of the page, along with a lot of optional information that controls the page's appearance and behavior. .PP This method returns a canned \s-1HTML\s0 header and the opening tag. All parameters are optional. In the named parameter form, recognized parameters are \-title, \-author, \-base, \-xbase, \-dtd, \-lang and \-target (see below for the explanation). Any additional parameters you provide, such as the unofficial \&\s-1BGCOLOR\s0 attribute, are added to the tag. Additional parameters must be proceeded by a hyphen. .PP The argument \fB\-xbase\fR allows you to provide an \s-1HREF\s0 for the tag different from the current location, as in .PP .Vb 1 \& \-xbase => "http://home.mcom.com/" .Ve .PP All relative links will be interpreted relative to this tag. .PP The argument \fB\-target\fR allows you to provide a default target frame for all the links and fill-out forms on the page. \fBThis is a non-standard \s-1HTTP\s0 feature\fR \&\fBwhich only works with some browsers!\fR .PP .Vb 1 \& \-target => "answer_window" .Ve .PP All relative links will be interpreted relative to this tag. You add arbitrary meta information to the header with the \fB\-meta\fR argument. This argument expects a reference to a hash containing name/value pairs of meta information. These will be turned into a series of header tags that look something like this: .PP .Vb 2 \& \& .Ve .PP To create an HTTP-EQUIV type of tag, use \fB\-head\fR, described below. .PP The \fB\-style\fR argument is used to incorporate cascading stylesheets into your code. See the section on \s-1CASCADING STYLESHEETS\s0 for more information. .PP The \fB\-lang\fR argument is used to incorporate a language attribute into the tag. For example: .PP .Vb 1 \& print $q\->start_html( \-lang => \*(Aqfr\-CA\*(Aq ); .Ve .PP The default if not specified is \*(L"en-US\*(R" for \s-1US\s0 English, unless the \-dtd parameter specifies an \s-1HTML 2.0\s0 or 3.2 \s-1DTD,\s0 in which case the lang attribute is left off. You can force the lang attribute to left off in other cases by passing an empty string (\-lang=>''). .PP The \fB\-encoding\fR argument can be used to specify the character set for \s-1XHTML.\s0 It defaults to iso\-8859\-1 if not specified. .PP The \fB\-dtd\fR argument can be used to specify a public \s-1DTD\s0 identifier string. For example: .PP .Vb 1 \& \-dtd => \*(Aq\-//W3C//DTD HTML 4.01 Transitional//EN\*(Aq) .Ve .PP Alternatively, it can take public and system \s-1DTD\s0 identifiers as an array: .PP .Vb 4 \& \-dtd => [ \& \*(Aq\-//W3C//DTD HTML 4.01 Transitional//EN\*(Aq, \& \*(Aqhttp://www.w3.org/TR/html4/loose.dtd\*(Aq \& ] .Ve .PP For the public \s-1DTD\s0 identifier to be considered, it must be valid. Otherwise it will be replaced by the default \s-1DTD.\s0 If the public \s-1DTD\s0 contains '\s-1XHTML\s0', \s-1CGI\s0.pm will emit \s-1XML.\s0 .PP The \fB\-declare_xml\fR argument, when used in conjunction with \s-1XHTML,\s0 will put a declaration at the top of the \s-1HTML\s0 header. The sole purpose of this declaration is to declare the character set encoding. In the absence of \&\-declare_xml, the output \s-1HTML\s0 will contain a tag that specifies the encoding, allowing the \s-1HTML\s0 to pass most validators. The default for \-declare_xml is false. .PP You can place other arbitrary \s-1HTML\s0 elements to the section with the \&\fB\-head\fR tag. For example, to place a element in the head section, use this: .PP .Vb 6 \& print start_html( \& \-head => Link({ \& \-rel => \*(Aqshortcut icon\*(Aq, \& \-href => \*(Aqfavicon.ico\*(Aq \& }) \& ); .Ve .PP To incorporate multiple \s-1HTML\s0 elements into the section, just pass an array reference: .PP .Vb 12 \& print start_html( \& \-head => [ \& Link({ \& \-rel => \*(Aqnext\*(Aq, \& \-href => \*(Aqhttp://www.capricorn.com/s2.html\*(Aq \& }), \& Link({ \& \-rel => \*(Aqprevious\*(Aq, \& \-href => \*(Aqhttp://www.capricorn.com/s1.html\*(Aq \& }) \& ] \& ); .Ve .PP And here's how to create an HTTP-EQUIV tag: .PP .Vb 6 \& print start_html( \& \-head => meta({ \& \-http_equiv => \*(AqContent\-Type\*(Aq, \& \-content => \*(Aqtext/html\*(Aq \& }) \& ); .Ve .PP \&\s-1JAVASCRIPTING:\s0 The \fB\-script\fR, \fB\-noScript\fR, \fB\-onLoad\fR, \fB\-onMouseOver\fR, \&\fB\-onMouseOut\fR and \fB\-onUnload\fR parameters are used to add JavaScript calls to your pages. \fB\-script\fR should point to a block of text containing JavaScript function definitions. This block will be placed within a \*(C'\fR in a \s-1JSON\s0 text, with the cost of bloating the size of \s-1JSON\s0 texts. .PP This option may be useful when you embed \s-1JSON\s0 in \s-1HTML,\s0 but embedding arbitrary \s-1JSON\s0 in \s-1HTML \s0(by some \s-1HTML\s0 template toolkit or by string interpolation) is risky in general. You must escape necessary characters in correct order, depending on the context. .PP \&\f(CW\*(C`decode\*(C'\fR will not be affected in any way. .SS "indent_length" .IX Subsection "indent_length" .Vb 2 \& $json = $json\->indent_length($number_of_spaces) \& $length = $json\->get_indent_length .Ve .PP This option is only useful when you also enable \f(CW\*(C`indent\*(C'\fR or \f(CW\*(C`pretty\*(C'\fR. .PP \&\s-1JSON::XS\s0 indents with three spaces when you \f(CW\*(C`encode\*(C'\fR (if requested by \f(CW\*(C`indent\*(C'\fR or \f(CW\*(C`pretty\*(C'\fR), and the number cannot be changed. \&\s-1JSON::PP\s0 allows you to change/get the number of indent spaces with these mutator/accessor. The default number of spaces is three (the same as \&\s-1JSON::XS\s0), and the acceptable range is from \f(CW0\fR (no indentation; it'd be better to disable indentation by \f(CWindent(0)\fR) to \f(CW15\fR. .SS "sort_by" .IX Subsection "sort_by" .Vb 2 \& $json = $json\->sort_by($code_ref) \& $json = $json\->sort_by($subroutine_name) .Ve .PP If you just want to sort keys (names) in \s-1JSON\s0 objects when you \&\f(CW\*(C`encode\*(C'\fR, enable \f(CW\*(C`canonical\*(C'\fR option (see above) that allows you to sort object keys alphabetically. .PP If you do need to sort non-alphabetically for whatever reasons, you can give a code reference (or a subroutine name) to \f(CW\*(C`sort_by\*(C'\fR, then the argument will be passed to Perl's \f(CW\*(C`sort\*(C'\fR built-in function. .PP As the sorting is done in the \s-1JSON::PP\s0 scope, you usually need to prepend \f(CW\*(C`JSON::PP::\*(C'\fR to the subroutine name, and the special variables \&\f(CW$a\fR and \f(CW$b\fR used in the subrontine used by \f(CW\*(C`sort\*(C'\fR function. .PP Example: .PP .Vb 9 \& my %ORDER = (id => 1, class => 2, name => 3); \& $json\->sort_by(sub { \& ($ORDER{$JSON::PP::a} // 999) <=> ($ORDER{$JSON::PP::b} // 999) \& or $JSON::PP::a cmp $JSON::PP::b \& }); \& print $json\->encode([ \& {name => \*(AqCPAN\*(Aq, id => 1, href => \*(Aqhttp://cpan.org\*(Aq} \& ]); \& # [{"id":1,"name":"CPAN","href":"http://cpan.org"}] .Ve .PP Note that \f(CW\*(C`sort_by\*(C'\fR affects all the plain hashes in the data structure. If you need finer control, \f(CW\*(C`tie\*(C'\fR necessary hashes with a module that implements ordered hash (such as Hash::Ordered and Tie::IxHash). \&\f(CW\*(C`canonical\*(C'\fR and \f(CW\*(C`sort_by\*(C'\fR don't affect the key order in \f(CW\*(C`tie\*(C'\fRd hashes. .PP .Vb 5 \& use Hash::Ordered; \& tie my %hash, \*(AqHash::Ordered\*(Aq, \& (name => \*(AqCPAN\*(Aq, id => 1, href => \*(Aqhttp://cpan.org\*(Aq); \& print $json\->encode([\e%hash]); \& # [{"name":"CPAN","id":1,"href":"http://cpan.org"}] # order is kept .Ve .SH "INCREMENTAL PARSING" .IX Header "INCREMENTAL PARSING" This section is also taken from \s-1JSON::XS.\s0 .PP In some cases, there is the need for incremental parsing of \s-1JSON\s0 texts. While this module always has to keep both \s-1JSON\s0 text and resulting Perl data structure in memory at one time, it does allow you to parse a \&\s-1JSON\s0 stream incrementally. It does so by accumulating text until it has a full \s-1JSON\s0 object, which it then can decode. This process is similar to using \f(CW\*(C`decode_prefix\*(C'\fR to see if a full \s-1JSON\s0 object is available, but is much more efficient (and can be implemented with a minimum of method calls). .PP \&\s-1JSON::PP\s0 will only attempt to parse the \s-1JSON\s0 text once it is sure it has enough text to get a decisive result, using a very simple but truly incremental parser. This means that it sometimes won't stop as early as the full parser, for example, it doesn't detect mismatched parentheses. The only thing it guarantees is that it starts decoding as soon as a syntactically valid \s-1JSON\s0 text has been seen. This means you need to set resource limits (e.g. \f(CW\*(C`max_size\*(C'\fR) to ensure the parser will stop parsing in the presence if syntax errors. .PP The following methods implement this incremental parser. .SS "incr_parse" .IX Subsection "incr_parse" .Vb 1 \& $json\->incr_parse( [$string] ) # void context \& \& $obj_or_undef = $json\->incr_parse( [$string] ) # scalar context \& \& @obj_or_empty = $json\->incr_parse( [$string] ) # list context .Ve .PP This is the central parsing function. It can both append new text and extract objects from the stream accumulated so far (both of these functions are optional). .PP If \f(CW$string\fR is given, then this string is appended to the already existing \s-1JSON\s0 fragment stored in the \f(CW$json\fR object. .PP After that, if the function is called in void context, it will simply return without doing anything further. This can be used to add more text in as many chunks as you want. .PP If the method is called in scalar context, then it will try to extract exactly \fIone\fR \s-1JSON\s0 object. If that is successful, it will return this object, otherwise it will return \f(CW\*(C`undef\*(C'\fR. If there is a parse error, this method will croak just as \f(CW\*(C`decode\*(C'\fR would do (one can then use \&\f(CW\*(C`incr_skip\*(C'\fR to skip the erroneous part). This is the most common way of using the method. .PP And finally, in list context, it will try to extract as many objects from the stream as it can find and return them, or the empty list otherwise. For this to work, there must be no separators (other than whitespace) between the \s-1JSON\s0 objects or arrays, instead they must be concatenated back-to-back. If an error occurs, an exception will be raised as in the scalar context case. Note that in this case, any previously-parsed \s-1JSON\s0 texts will be lost. .PP Example: Parse some \s-1JSON\s0 arrays/objects in a given string and return them. .PP .Vb 1 \& my @objs = JSON::PP\->new\->incr_parse ("[5][7][1,2]"); .Ve .SS "incr_text" .IX Subsection "incr_text" .Vb 1 \& $lvalue_string = $json\->incr_text .Ve .PP This method returns the currently stored \s-1JSON\s0 fragment as an lvalue, that is, you can manipulate it. This \fIonly\fR works when a preceding call to \&\f(CW\*(C`incr_parse\*(C'\fR in \fIscalar context\fR successfully returned an object. Under all other circumstances you must not call this function (I mean it. although in simple tests it might actually work, it \fIwill\fR fail under real world conditions). As a special exception, you can also call this method before having parsed anything. .PP That means you can only use this function to look at or manipulate text before or after complete \s-1JSON\s0 objects, not while the parser is in the middle of parsing a \s-1JSON\s0 object. .PP This function is useful in two cases: a) finding the trailing text after a \&\s-1JSON\s0 object or b) parsing multiple \s-1JSON\s0 objects separated by non-JSON text (such as commas). .SS "incr_skip" .IX Subsection "incr_skip" .Vb 1 \& $json\->incr_skip .Ve .PP This will reset the state of the incremental parser and will remove the parsed text from the input buffer so far. This is useful after \&\f(CW\*(C`incr_parse\*(C'\fR died, in which case the input buffer and incremental parser state is left unchanged, to skip the text parsed so far and to reset the parse state. .PP The difference to \f(CW\*(C`incr_reset\*(C'\fR is that only text until the parse error occurred is removed. .SS "incr_reset" .IX Subsection "incr_reset" .Vb 1 \& $json\->incr_reset .Ve .PP This completely resets the incremental parser, that is, after this call, it will be as if the parser had never parsed anything. .PP This is useful if you want to repeatedly parse \s-1JSON\s0 objects and want to ignore any trailing data, which means you have to reset the parser after each successful decode. .SH "MAPPING" .IX Header "MAPPING" Most of this section is also taken from \s-1JSON::XS.\s0 .PP This section describes how \s-1JSON::PP\s0 maps Perl values to \s-1JSON\s0 values and vice versa. These mappings are designed to \*(L"do the right thing\*(R" in most circumstances automatically, preserving round-tripping characteristics (what you put in comes out as something equivalent). .PP For the more enlightened: note that in the following descriptions, lowercase \fIperl\fR refers to the Perl interpreter, while uppercase \fIPerl\fR refers to the abstract Perl language itself. .SS "\s-1JSON \-\s0> \s-1PERL\s0" .IX Subsection "JSON -> PERL" .IP "object" 4 .IX Item "object" A \s-1JSON\s0 object becomes a reference to a hash in Perl. No ordering of object keys is preserved (\s-1JSON\s0 does not preserve object key ordering itself). .IP "array" 4 .IX Item "array" A \s-1JSON\s0 array becomes a reference to an array in Perl. .IP "string" 4 .IX Item "string" A \s-1JSON\s0 string becomes a string scalar in Perl \- Unicode codepoints in \s-1JSON\s0 are represented by the same codepoints in the Perl string, so no manual decoding is necessary. .IP "number" 4 .IX Item "number" A \s-1JSON\s0 number becomes either an integer, numeric (floating point) or string scalar in perl, depending on its range and any fractional parts. On the Perl level, there is no difference between those as Perl handles all the conversion details, but an integer may take slightly less memory and might represent more values exactly than floating point numbers. .Sp If the number consists of digits only, \s-1JSON::PP\s0 will try to represent it as an integer value. If that fails, it will try to represent it as a numeric (floating point) value if that is possible without loss of precision. Otherwise it will preserve the number as a string value (in which case you lose roundtripping ability, as the \s-1JSON\s0 number will be re-encoded to a \s-1JSON\s0 string). .Sp Numbers containing a fractional or exponential part will always be represented as numeric (floating point) values, possibly at a loss of precision (in which case you might lose perfect roundtripping ability, but the \s-1JSON\s0 number will still be re-encoded as a \s-1JSON\s0 number). .Sp Note that precision is not accuracy \- binary floating point values cannot represent most decimal fractions exactly, and when converting from and to floating point, \s-1JSON::PP\s0 only guarantees precision up to but not including the least significant bit. .Sp When \f(CW\*(C`allow_bignum\*(C'\fR is enabled, big integer values and any numeric values will be converted into Math::BigInt and Math::BigFloat objects respectively, without becoming string scalars or losing precision. .IP "true, false" 4 .IX Item "true, false" These \s-1JSON\s0 atoms become \f(CW\*(C`JSON::PP::true\*(C'\fR and \f(CW\*(C`JSON::PP::false\*(C'\fR, respectively. They are overloaded to act almost exactly like the numbers \&\f(CW1\fR and \f(CW0\fR. You can check whether a scalar is a \s-1JSON\s0 boolean by using the \f(CW\*(C`JSON::PP::is_bool\*(C'\fR function. .IP "null" 4 .IX Item "null" A \s-1JSON\s0 null atom becomes \f(CW\*(C`undef\*(C'\fR in Perl. .ie n .IP "shell-style comments (""# \f(CItext\f(CW"")" 4 .el .IP "shell-style comments (\f(CW# \f(CItext\f(CW\fR)" 4 .IX Item "shell-style comments (# text)" As a nonstandard extension to the \s-1JSON\s0 syntax that is enabled by the \&\f(CW\*(C`relaxed\*(C'\fR setting, shell-style comments are allowed. They can start anywhere outside strings and go till the end of the line. .ie n .IP "tagged values (""(\f(CItag\f(CW)\f(CIvalue\f(CW"")." 4 .el .IP "tagged values (\f(CW(\f(CItag\f(CW)\f(CIvalue\f(CW\fR)." 4 .IX Item "tagged values ((tag)value)." Another nonstandard extension to the \s-1JSON\s0 syntax, enabled with the \&\f(CW\*(C`allow_tags\*(C'\fR setting, are tagged values. In this implementation, the \&\fItag\fR must be a perl package/class name encoded as a \s-1JSON\s0 string, and the \&\fIvalue\fR must be a \s-1JSON\s0 array encoding optional constructor arguments. .Sp See \*(L"\s-1OBJECT SERIALISATION\*(R"\s0, below, for details. .SS "\s-1PERL \-\s0> \s-1JSON\s0" .IX Subsection "PERL -> JSON" The mapping from Perl to \s-1JSON\s0 is slightly more difficult, as Perl is a truly typeless language, so we can only guess which \s-1JSON\s0 type is meant by a Perl value. .IP "hash references" 4 .IX Item "hash references" Perl hash references become \s-1JSON\s0 objects. As there is no inherent ordering in hash keys (or \s-1JSON\s0 objects), they will usually be encoded in a pseudo-random order. \s-1JSON::PP\s0 can optionally sort the hash keys (determined by the \fIcanonical\fR flag and/or \fIsort_by\fR property), so the same data structure will serialise to the same \s-1JSON\s0 text (given same settings and version of \s-1JSON::PP\s0), but this incurs a runtime overhead and is only rarely useful, e.g. when you want to compare some \&\s-1JSON\s0 text against another for equality. .IP "array references" 4 .IX Item "array references" Perl array references become \s-1JSON\s0 arrays. .IP "other references" 4 .IX Item "other references" Other unblessed references are generally not allowed and will cause an exception to be thrown, except for references to the integers \f(CW0\fR and \&\f(CW1\fR, which get turned into \f(CW\*(C`false\*(C'\fR and \f(CW\*(C`true\*(C'\fR atoms in \s-1JSON.\s0 You can also use \f(CW\*(C`JSON::PP::false\*(C'\fR and \f(CW\*(C`JSON::PP::true\*(C'\fR to improve readability. .Sp .Vb 1 \& to_json [\e0, JSON::PP::true] # yields [false,true] .Ve .IP "JSON::PP::true, JSON::PP::false" 4 .IX Item "JSON::PP::true, JSON::PP::false" These special values become \s-1JSON\s0 true and \s-1JSON\s0 false values, respectively. You can also use \f(CW\*(C`\e1\*(C'\fR and \f(CW\*(C`\e0\*(C'\fR directly if you want. .IP "JSON::PP::null" 4 .IX Item "JSON::PP::null" This special value becomes \s-1JSON\s0 null. .IP "blessed objects" 4 .IX Item "blessed objects" Blessed objects are not directly representable in \s-1JSON,\s0 but \f(CW\*(C`JSON::PP\*(C'\fR allows various ways of handling objects. See \*(L"\s-1OBJECT SERIALISATION\*(R"\s0, below, for details. .IP "simple scalars" 4 .IX Item "simple scalars" Simple Perl scalars (any scalar that is not a reference) are the most difficult objects to encode: \s-1JSON::PP\s0 will encode undefined scalars as \&\s-1JSON \s0\f(CW\*(C`null\*(C'\fR values, scalars that have last been used in a string context before encoding as \s-1JSON\s0 strings, and anything else as number value: .Sp .Vb 4 \& # dump as number \& encode_json [2] # yields [2] \& encode_json [\-3.0e17] # yields [\-3e+17] \& my $value = 5; encode_json [$value] # yields [5] \& \& # used as string, so dump as string \& print $value; \& encode_json [$value] # yields ["5"] \& \& # undef becomes null \& encode_json [undef] # yields [null] .Ve .Sp You can force the type to be a \s-1JSON\s0 string by stringifying it: .Sp .Vb 5 \& my $x = 3.1; # some variable containing a number \& "$x"; # stringified \& $x .= ""; # another, more awkward way to stringify \& print $x; # perl does it for you, too, quite often \& # (but for older perls) .Ve .Sp You can force the type to be a \s-1JSON\s0 number by numifying it: .Sp .Vb 3 \& my $x = "3"; # some variable containing a string \& $x += 0; # numify it, ensuring it will be dumped as a number \& $x *= 1; # same thing, the choice is yours. .Ve .Sp You can not currently force the type in other, less obscure, ways. .Sp Since version 2.91_01, \s-1JSON::PP\s0 uses a different number detection logic that converts a scalar that is possible to turn into a number safely. The new logic is slightly faster, and tends to help people who use older perl or who want to encode complicated data structure. However, this may results in a different \s-1JSON\s0 text from the one \s-1JSON::XS\s0 encodes (and thus may break tests that compare entire \s-1JSON\s0 texts). If you do need the previous behavior for compatibility or for finer control, set \s-1PERL_JSON_PP_USE_B\s0 environmental variable to true before you \&\f(CW\*(C`use\*(C'\fR \s-1JSON::PP \s0(or \s-1JSON\s0.pm). .Sp Note that numerical precision has the same meaning as under Perl (so binary to decimal conversion follows the same rules as in Perl, which can differ to other languages). Also, your perl interpreter might expose extensions to the floating point numbers of your platform, such as infinities or NaN's \- these cannot be represented in \s-1JSON,\s0 and it is an error to pass those in. .Sp \&\s-1JSON::PP \s0(and \s-1JSON::XS\s0) trusts what you pass to \f(CW\*(C`encode\*(C'\fR method (or \f(CW\*(C`encode_json\*(C'\fR function) is a clean, validated data structure with values that can be represented as valid \s-1JSON\s0 values only, because it's not from an external data source (as opposed to \s-1JSON\s0 texts you pass to \&\f(CW\*(C`decode\*(C'\fR or \f(CW\*(C`decode_json\*(C'\fR, which \s-1JSON::PP\s0 considers tainted and doesn't trust). As \s-1JSON::PP\s0 doesn't know exactly what you and consumers of your \s-1JSON\s0 texts want the unexpected values to be (you may want to convert them into null, or to stringify them with or without normalisation (string representation of infinities/NaN may vary depending on platforms), or to croak without conversion), you're advised to do what you and your consumers need before you encode, and also not to numify values that may start with values that look like a number (including infinities/NaN), without validating. .SS "\s-1OBJECT SERIALISATION\s0" .IX Subsection "OBJECT SERIALISATION" As \s-1JSON\s0 cannot directly represent Perl objects, you have to choose between a pure \s-1JSON\s0 representation (without the ability to deserialise the object automatically again), and a nonstandard extension to the \s-1JSON\s0 syntax, tagged values. .PP \fI\s-1SERIALISATION\s0\fR .IX Subsection "SERIALISATION" .PP What happens when \f(CW\*(C`JSON::PP\*(C'\fR encounters a Perl object depends on the \&\f(CW\*(C`allow_blessed\*(C'\fR, \f(CW\*(C`convert_blessed\*(C'\fR, \f(CW\*(C`allow_tags\*(C'\fR and \f(CW\*(C`allow_bignum\*(C'\fR settings, which are used in this order: .ie n .IP "1. ""allow_tags"" is enabled and the object has a ""FREEZE"" method." 4 .el .IP "1. \f(CWallow_tags\fR is enabled and the object has a \f(CWFREEZE\fR method." 4 .IX Item "1. allow_tags is enabled and the object has a FREEZE method." In this case, \f(CW\*(C`JSON::PP\*(C'\fR creates a tagged \s-1JSON\s0 value, using a nonstandard extension to the \s-1JSON\s0 syntax. .Sp This works by invoking the \f(CW\*(C`FREEZE\*(C'\fR method on the object, with the first argument being the object to serialise, and the second argument being the constant string \f(CW\*(C`JSON\*(C'\fR to distinguish it from other serialisers. .Sp The \f(CW\*(C`FREEZE\*(C'\fR method can return any number of values (i.e. zero or more). These values and the paclkage/classname of the object will then be encoded as a tagged \s-1JSON\s0 value in the following format: .Sp .Vb 1 \& ("classname")[FREEZE return values...] .Ve .Sp e.g.: .Sp .Vb 3 \& ("URI")["http://www.google.com/"] \& ("MyDate")[2013,10,29] \& ("ImageData::JPEG")["Z3...VlCg=="] .Ve .Sp For example, the hypothetical \f(CW\*(C`My::Object\*(C'\fR \f(CW\*(C`FREEZE\*(C'\fR method might use the objects \f(CW\*(C`type\*(C'\fR and \f(CW\*(C`id\*(C'\fR members to encode the object: .Sp .Vb 2 \& sub My::Object::FREEZE { \& my ($self, $serialiser) = @_; \& \& ($self\->{type}, $self\->{id}) \& } .Ve .ie n .IP "2. ""convert_blessed"" is enabled and the object has a ""TO_JSON"" method." 4 .el .IP "2. \f(CWconvert_blessed\fR is enabled and the object has a \f(CWTO_JSON\fR method." 4 .IX Item "2. convert_blessed is enabled and the object has a TO_JSON method." In this case, the \f(CW\*(C`TO_JSON\*(C'\fR method of the object is invoked in scalar context. It must return a single scalar that can be directly encoded into \&\s-1JSON.\s0 This scalar replaces the object in the \s-1JSON\s0 text. .Sp For example, the following \f(CW\*(C`TO_JSON\*(C'\fR method will convert all \s-1URI\s0 objects to \s-1JSON\s0 strings when serialised. The fact that these values originally were \s-1URI\s0 objects is lost. .Sp .Vb 4 \& sub URI::TO_JSON { \& my ($uri) = @_; \& $uri\->as_string \& } .Ve .ie n .IP "3. ""allow_bignum"" is enabled and the object is a ""Math::BigInt"" or ""Math::BigFloat""." 4 .el .IP "3. \f(CWallow_bignum\fR is enabled and the object is a \f(CWMath::BigInt\fR or \f(CWMath::BigFloat\fR." 4 .IX Item "3. allow_bignum is enabled and the object is a Math::BigInt or Math::BigFloat." The object will be serialised as a \s-1JSON\s0 number value. .ie n .IP "4. ""allow_blessed"" is enabled." 4 .el .IP "4. \f(CWallow_blessed\fR is enabled." 4 .IX Item "4. allow_blessed is enabled." The object will be serialised as a \s-1JSON\s0 null value. .IP "5. none of the above" 4 .IX Item "5. none of the above" If none of the settings are enabled or the respective methods are missing, \&\f(CW\*(C`JSON::PP\*(C'\fR throws an exception. .PP \fI\s-1DESERIALISATION\s0\fR .IX Subsection "DESERIALISATION" .PP For deserialisation there are only two cases to consider: either nonstandard tagging was used, in which case \f(CW\*(C`allow_tags\*(C'\fR decides, or objects cannot be automatically be deserialised, in which case you can use postprocessing or the \f(CW\*(C`filter_json_object\*(C'\fR or \&\f(CW\*(C`filter_json_single_key_object\*(C'\fR callbacks to get some real objects our of your \s-1JSON.\s0 .PP This section only considers the tagged value case: a tagged \s-1JSON\s0 object is encountered during decoding and \f(CW\*(C`allow_tags\*(C'\fR is disabled, a parse error will result (as if tagged values were not part of the grammar). .PP If \f(CW\*(C`allow_tags\*(C'\fR is enabled, \f(CW\*(C`JSON::PP\*(C'\fR will look up the \f(CW\*(C`THAW\*(C'\fR method of the package/classname used during serialisation (it will not attempt to load the package as a Perl module). If there is no such method, the decoding will fail with an error. .PP Otherwise, the \f(CW\*(C`THAW\*(C'\fR method is invoked with the classname as first argument, the constant string \f(CW\*(C`JSON\*(C'\fR as second argument, and all the values from the \s-1JSON\s0 array (the values originally returned by the \&\f(CW\*(C`FREEZE\*(C'\fR method) as remaining arguments. .PP The method must then return the object. While technically you can return any Perl scalar, you might have to enable the \f(CW\*(C`allow_nonref\*(C'\fR setting to make that work in all cases, so better return an actual blessed reference. .PP As an example, let's implement a \f(CW\*(C`THAW\*(C'\fR function that regenerates the \&\f(CW\*(C`My::Object\*(C'\fR from the \f(CW\*(C`FREEZE\*(C'\fR example earlier: .PP .Vb 2 \& sub My::Object::THAW { \& my ($class, $serialiser, $type, $id) = @_; \& \& $class\->new (type => $type, id => $id) \& } .Ve .SH "ENCODING/CODESET FLAG NOTES" .IX Header "ENCODING/CODESET FLAG NOTES" This section is taken from \s-1JSON::XS.\s0 .PP The interested reader might have seen a number of flags that signify encodings or codesets \- \f(CW\*(C`utf8\*(C'\fR, \f(CW\*(C`latin1\*(C'\fR and \f(CW\*(C`ascii\*(C'\fR. There seems to be some confusion on what these do, so here is a short comparison: .PP \&\f(CW\*(C`utf8\*(C'\fR controls whether the \s-1JSON\s0 text created by \f(CW\*(C`encode\*(C'\fR (and expected by \f(CW\*(C`decode\*(C'\fR) is \s-1UTF\-8\s0 encoded or not, while \f(CW\*(C`latin1\*(C'\fR and \f(CW\*(C`ascii\*(C'\fR only control whether \f(CW\*(C`encode\*(C'\fR escapes character values outside their respective codeset range. Neither of these flags conflict with each other, although some combinations make less sense than others. .PP Care has been taken to make all flags symmetrical with respect to \&\f(CW\*(C`encode\*(C'\fR and \f(CW\*(C`decode\*(C'\fR, that is, texts encoded with any combination of these flag values will be correctly decoded when the same flags are used \&\- in general, if you use different flag settings while encoding vs. when decoding you likely have a bug somewhere. .PP Below comes a verbose discussion of these flags. Note that a \*(L"codeset\*(R" is simply an abstract set of character-codepoint pairs, while an encoding takes those codepoint numbers and \fIencodes\fR them, in our case into octets. Unicode is (among other things) a codeset, \s-1UTF\-8\s0 is an encoding, and \s-1ISO\-8859\-1 \s0(= latin 1) and \s-1ASCII\s0 are both codesets \fIand\fR encodings at the same time, which can be confusing. .ie n .IP """utf8"" flag disabled" 4 .el .IP "\f(CWutf8\fR flag disabled" 4 .IX Item "utf8 flag disabled" When \f(CW\*(C`utf8\*(C'\fR is disabled (the default), then \f(CW\*(C`encode\*(C'\fR/\f(CW\*(C`decode\*(C'\fR generate and expect Unicode strings, that is, characters with high ordinal Unicode values (> 255) will be encoded as such characters, and likewise such characters are decoded as-is, no changes to them will be done, except \&\*(L"(re\-)interpreting\*(R" them as Unicode codepoints or Unicode characters, respectively (to Perl, these are the same thing in strings unless you do funny/weird/dumb stuff). .Sp This is useful when you want to do the encoding yourself (e.g. when you want to have \s-1UTF\-16\s0 encoded \s-1JSON\s0 texts) or when some other layer does the encoding for you (for example, when printing to a terminal using a filehandle that transparently encodes to \s-1UTF\-8\s0 you certainly do \s-1NOT\s0 want to \s-1UTF\-8\s0 encode your data first and have Perl encode it another time). .ie n .IP """utf8"" flag enabled" 4 .el .IP "\f(CWutf8\fR flag enabled" 4 .IX Item "utf8 flag enabled" If the \f(CW\*(C`utf8\*(C'\fR\-flag is enabled, \f(CW\*(C`encode\*(C'\fR/\f(CW\*(C`decode\*(C'\fR will encode all characters using the corresponding \s-1UTF\-8\s0 multi-byte sequence, and will expect your input strings to be encoded as \s-1UTF\-8,\s0 that is, no \*(L"character\*(R" of the input string must have any value > 255, as \s-1UTF\-8\s0 does not allow that. .Sp The \f(CW\*(C`utf8\*(C'\fR flag therefore switches between two modes: disabled means you will get a Unicode string in Perl, enabled means you get an \s-1UTF\-8\s0 encoded octet/binary string in Perl. .ie n .IP """latin1"" or ""ascii"" flags enabled" 4 .el .IP "\f(CWlatin1\fR or \f(CWascii\fR flags enabled" 4 .IX Item "latin1 or ascii flags enabled" With \f(CW\*(C`latin1\*(C'\fR (or \f(CW\*(C`ascii\*(C'\fR) enabled, \f(CW\*(C`encode\*(C'\fR will escape characters with ordinal values > 255 (> 127 with \f(CW\*(C`ascii\*(C'\fR) and encode the remaining characters as specified by the \f(CW\*(C`utf8\*(C'\fR flag. .Sp If \f(CW\*(C`utf8\*(C'\fR is disabled, then the result is also correctly encoded in those character sets (as both are proper subsets of Unicode, meaning that a Unicode string with all character values < 256 is the same thing as a \&\s-1ISO\-8859\-1\s0 string, and a Unicode string with all character values < 128 is the same thing as an \s-1ASCII\s0 string in Perl). .Sp If \f(CW\*(C`utf8\*(C'\fR is enabled, you still get a correct UTF\-8\-encoded string, regardless of these flags, just some more characters will be escaped using \&\f(CW\*(C`\euXXXX\*(C'\fR then before. .Sp Note that \s-1ISO\-8859\-1\-\s0\fIencoded\fR strings are not compatible with \s-1UTF\-8\s0 encoding, while ASCII-encoded strings are. That is because the \s-1ISO\-8859\-1\s0 encoding is \s-1NOT\s0 a subset of \s-1UTF\-8 \s0(despite the \s-1ISO\-8859\-1 \s0\fIcodeset\fR being a subset of Unicode), while \s-1ASCII\s0 is. .Sp Surprisingly, \f(CW\*(C`decode\*(C'\fR will ignore these flags and so treat all input values as governed by the \f(CW\*(C`utf8\*(C'\fR flag. If it is disabled, this allows you to decode \s-1ISO\-8859\-1\-\s0 and ASCII-encoded strings, as both strict subsets of Unicode. If it is enabled, you can correctly decode \s-1UTF\-8\s0 encoded strings. .Sp So neither \f(CW\*(C`latin1\*(C'\fR nor \f(CW\*(C`ascii\*(C'\fR are incompatible with the \f(CW\*(C`utf8\*(C'\fR flag \- they only govern when the \s-1JSON\s0 output engine escapes a character or not. .Sp The main use for \f(CW\*(C`latin1\*(C'\fR is to relatively efficiently store binary data as \s-1JSON,\s0 at the expense of breaking compatibility with most \s-1JSON\s0 decoders. .Sp The main use for \f(CW\*(C`ascii\*(C'\fR is to force the output to not contain characters with values > 127, which means you can interpret the resulting string as \s-1UTF\-8, ISO\-8859\-1, ASCII, KOI8\-R\s0 or most about any character set and 8\-bit\-encoding, and still get the same data structure back. This is useful when your channel for \s-1JSON\s0 transfer is not 8\-bit clean or the encoding might be mangled in between (e.g. in mail), and works because \s-1ASCII\s0 is a proper subset of most 8\-bit and multibyte encodings in use in the world. .SH "BUGS" .IX Header "BUGS" Please report bugs on a specific behavior of this module to \s-1RT\s0 or GitHub issues (preferred): .PP .PP .PP As for new features and requests to change common behaviors, please ask the author of \s-1JSON::XS \s0(Marc Lehmann, ) first, by email (important!), to keep compatibility among \s-1JSON\s0.pm backends. .PP Generally speaking, if you need something special for you, you are advised to create a new module, maybe based on JSON::Tiny, which is smaller and written in a much cleaner way than this module. .SH "SEE ALSO" .IX Header "SEE ALSO" The \fIjson_pp\fR command line utility for quick experiments. .PP \&\s-1JSON::XS\s0, Cpanel::JSON::XS, and JSON::Tiny for faster alternatives. \&\s-1JSON\s0 and JSON::MaybeXS for easy migration. .PP JSON::PP::Compat5005 and JSON::PP::Compat5006 for older perl users. .PP \&\s-1RFC4627 \s0() .PP \&\s-1RFC7159 \s0() .PP \&\s-1RFC8259 \s0() .SH "AUTHOR" .IX Header "AUTHOR" Makamaka Hannyaharamitu, .SH "CURRENT MAINTAINER" .IX Header "CURRENT MAINTAINER" Kenichi Ishigaki, .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" Copyright 2007\-2016 by Makamaka Hannyaharamitu .PP Most of the documentation is taken from \s-1JSON::XS\s0 by Marc Lehmann .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. man3/App::Prove.3pm000044400000030030147645265660007762 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "App::Prove 3" .TH App::Prove 3 "2018-03-19" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" App::Prove \- Implements the "prove" command. .SH "VERSION" .IX Header "VERSION" Version 3.42 .SH "DESCRIPTION" .IX Header "DESCRIPTION" Test::Harness provides a command, \f(CW\*(C`prove\*(C'\fR, which runs a \s-1TAP\s0 based test suite and prints a report. The \f(CW\*(C`prove\*(C'\fR command is a minimal wrapper around an instance of this module. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use App::Prove; \& \& my $app = App::Prove\->new; \& $app\->process_args(@ARGV); \& $app\->run; .Ve .SH "METHODS" .IX Header "METHODS" .SS "Class Methods" .IX Subsection "Class Methods" \fI\f(CI\*(C`new\*(C'\fI\fR .IX Subsection "new" .PP Create a new \f(CW\*(C`App::Prove\*(C'\fR. Optionally a hash ref of attribute initializers may be passed. .PP \fI\f(CI\*(C`state_class\*(C'\fI\fR .IX Subsection "state_class" .PP Getter/setter for the name of the class used for maintaining state. This class should either subclass from \f(CW\*(C`App::Prove::State\*(C'\fR or provide an identical interface. .PP \fI\f(CI\*(C`state_manager\*(C'\fI\fR .IX Subsection "state_manager" .PP Getter/setter for the instance of the \f(CW\*(C`state_class\*(C'\fR. .PP \fI\f(CI\*(C`add_rc_file\*(C'\fI\fR .IX Subsection "add_rc_file" .PP .Vb 1 \& $prove\->add_rc_file(\*(Aqmyproj/.proverc\*(Aq); .Ve .PP Called before \f(CW\*(C`process_args\*(C'\fR to prepend the contents of an rc file to the options. .PP \fI\f(CI\*(C`process_args\*(C'\fI\fR .IX Subsection "process_args" .PP .Vb 1 \& $prove\->process_args(@args); .Ve .PP Processes the command-line arguments. Attributes will be set appropriately. Any filenames may be found in the \f(CW\*(C`argv\*(C'\fR attribute. .PP Dies on invalid arguments. .PP \fI\f(CI\*(C`run\*(C'\fI\fR .IX Subsection "run" .PP Perform whatever actions the command line args specified. The \f(CW\*(C`prove\*(C'\fR command line tool consists of the following code: .PP .Vb 1 \& use App::Prove; \& \& my $app = App::Prove\->new; \& $app\->process_args(@ARGV); \& exit( $app\->run ? 0 : 1 ); # if you need the exit code .Ve .PP \fI\f(CI\*(C`require_harness\*(C'\fI\fR .IX Subsection "require_harness" .PP Load a harness replacement class. .PP .Vb 1 \& $prove\->require_harness($for => $class_name); .Ve .PP \fI\f(CI\*(C`print_version\*(C'\fI\fR .IX Subsection "print_version" .PP Display the version numbers of the loaded TAP::Harness and the current Perl. .SS "Attributes" .IX Subsection "Attributes" After command line parsing the following attributes reflect the values of the corresponding command line switches. They may be altered before calling \f(CW\*(C`run\*(C'\fR. .ie n .IP """archive""" 4 .el .IP "\f(CWarchive\fR" 4 .IX Item "archive" .PD 0 .ie n .IP """argv""" 4 .el .IP "\f(CWargv\fR" 4 .IX Item "argv" .ie n .IP """backwards""" 4 .el .IP "\f(CWbackwards\fR" 4 .IX Item "backwards" .ie n .IP """blib""" 4 .el .IP "\f(CWblib\fR" 4 .IX Item "blib" .ie n .IP """color""" 4 .el .IP "\f(CWcolor\fR" 4 .IX Item "color" .ie n .IP """directives""" 4 .el .IP "\f(CWdirectives\fR" 4 .IX Item "directives" .ie n .IP """dry""" 4 .el .IP "\f(CWdry\fR" 4 .IX Item "dry" .ie n .IP """exec""" 4 .el .IP "\f(CWexec\fR" 4 .IX Item "exec" .ie n .IP """extensions""" 4 .el .IP "\f(CWextensions\fR" 4 .IX Item "extensions" .ie n .IP """failures""" 4 .el .IP "\f(CWfailures\fR" 4 .IX Item "failures" .ie n .IP """comments""" 4 .el .IP "\f(CWcomments\fR" 4 .IX Item "comments" .ie n .IP """formatter""" 4 .el .IP "\f(CWformatter\fR" 4 .IX Item "formatter" .ie n .IP """harness""" 4 .el .IP "\f(CWharness\fR" 4 .IX Item "harness" .ie n .IP """ignore_exit""" 4 .el .IP "\f(CWignore_exit\fR" 4 .IX Item "ignore_exit" .ie n .IP """includes""" 4 .el .IP "\f(CWincludes\fR" 4 .IX Item "includes" .ie n .IP """jobs""" 4 .el .IP "\f(CWjobs\fR" 4 .IX Item "jobs" .ie n .IP """lib""" 4 .el .IP "\f(CWlib\fR" 4 .IX Item "lib" .ie n .IP """merge""" 4 .el .IP "\f(CWmerge\fR" 4 .IX Item "merge" .ie n .IP """modules""" 4 .el .IP "\f(CWmodules\fR" 4 .IX Item "modules" .ie n .IP """parse""" 4 .el .IP "\f(CWparse\fR" 4 .IX Item "parse" .ie n .IP """plugins""" 4 .el .IP "\f(CWplugins\fR" 4 .IX Item "plugins" .ie n .IP """quiet""" 4 .el .IP "\f(CWquiet\fR" 4 .IX Item "quiet" .ie n .IP """really_quiet""" 4 .el .IP "\f(CWreally_quiet\fR" 4 .IX Item "really_quiet" .ie n .IP """recurse""" 4 .el .IP "\f(CWrecurse\fR" 4 .IX Item "recurse" .ie n .IP """rules""" 4 .el .IP "\f(CWrules\fR" 4 .IX Item "rules" .ie n .IP """show_count""" 4 .el .IP "\f(CWshow_count\fR" 4 .IX Item "show_count" .ie n .IP """show_help""" 4 .el .IP "\f(CWshow_help\fR" 4 .IX Item "show_help" .ie n .IP """show_man""" 4 .el .IP "\f(CWshow_man\fR" 4 .IX Item "show_man" .ie n .IP """show_version""" 4 .el .IP "\f(CWshow_version\fR" 4 .IX Item "show_version" .ie n .IP """shuffle""" 4 .el .IP "\f(CWshuffle\fR" 4 .IX Item "shuffle" .ie n .IP """state""" 4 .el .IP "\f(CWstate\fR" 4 .IX Item "state" .ie n .IP """state_class""" 4 .el .IP "\f(CWstate_class\fR" 4 .IX Item "state_class" .ie n .IP """taint_fail""" 4 .el .IP "\f(CWtaint_fail\fR" 4 .IX Item "taint_fail" .ie n .IP """taint_warn""" 4 .el .IP "\f(CWtaint_warn\fR" 4 .IX Item "taint_warn" .ie n .IP """test_args""" 4 .el .IP "\f(CWtest_args\fR" 4 .IX Item "test_args" .ie n .IP """timer""" 4 .el .IP "\f(CWtimer\fR" 4 .IX Item "timer" .ie n .IP """verbose""" 4 .el .IP "\f(CWverbose\fR" 4 .IX Item "verbose" .ie n .IP """warnings_fail""" 4 .el .IP "\f(CWwarnings_fail\fR" 4 .IX Item "warnings_fail" .ie n .IP """warnings_warn""" 4 .el .IP "\f(CWwarnings_warn\fR" 4 .IX Item "warnings_warn" .ie n .IP """tapversion""" 4 .el .IP "\f(CWtapversion\fR" 4 .IX Item "tapversion" .ie n .IP """trap""" 4 .el .IP "\f(CWtrap\fR" 4 .IX Item "trap" .PD .SH "PLUGINS" .IX Header "PLUGINS" \&\f(CW\*(C`App::Prove\*(C'\fR provides support for 3rd\-party plugins. These are currently loaded at run-time, \fIafter\fR arguments have been parsed (so you can not change the way arguments are processed, sorry), typically with the \&\f(CW\*(C`\-P\f(CIplugin\f(CW\*(C'\fR switch, eg: .PP .Vb 1 \& prove \-PMyPlugin .Ve .PP This will search for a module named \f(CW\*(C`App::Prove::Plugin::MyPlugin\*(C'\fR, or failing that, \f(CW\*(C`MyPlugin\*(C'\fR. If the plugin can't be found, \f(CW\*(C`prove\*(C'\fR will complain & exit. .PP You can pass an argument to your plugin by appending an \f(CW\*(C`=\*(C'\fR after the plugin name, eg \f(CW\*(C`\-PMyPlugin=foo\*(C'\fR. You can pass multiple arguments using commas: .PP .Vb 1 \& prove \-PMyPlugin=foo,bar,baz .Ve .PP These are passed in to your plugin's \f(CW\*(C`load()\*(C'\fR class method (if it has one), along with a reference to the \f(CW\*(C`App::Prove\*(C'\fR object that is invoking your plugin: .PP .Vb 2 \& sub load { \& my ($class, $p) = @_; \& \& my @args = @{ $p\->{args} }; \& # @args will contain ( \*(Aqfoo\*(Aq, \*(Aqbar\*(Aq, \*(Aqbaz\*(Aq ) \& $p\->{app_prove}\->do_something; \& ... \& } .Ve .PP Note that the user's arguments are also passed to your plugin's \f(CW\*(C`import()\*(C'\fR function as a list, eg: .PP .Vb 5 \& sub import { \& my ($class, @args) = @_; \& # @args will contain ( \*(Aqfoo\*(Aq, \*(Aqbar\*(Aq, \*(Aqbaz\*(Aq ) \& ... \& } .Ve .PP This is for backwards compatibility, and may be deprecated in the future. .SS "Sample Plugin" .IX Subsection "Sample Plugin" Here's a sample plugin, for your reference: .PP .Vb 1 \& package App::Prove::Plugin::Foo; \& \& # Sample plugin, try running with: \& # prove \-PFoo=bar \-r \-j3 \& # prove \-PFoo \-Q \& # prove \-PFoo=bar,My::Formatter \& \& use strict; \& use warnings; \& \& sub load { \& my ($class, $p) = @_; \& my @args = @{ $p\->{args} }; \& my $app = $p\->{app_prove}; \& \& print "loading plugin: $class, args: ", join(\*(Aq, \*(Aq, @args ), "\en"; \& \& # turn on verbosity \& $app\->verbose( 1 ); \& \& # set the formatter? \& $app\->formatter( $args[1] ) if @args > 1; \& \& # print some of App::Prove\*(Aqs state: \& for my $attr (qw( jobs quiet really_quiet recurse verbose )) { \& my $val = $app\->$attr; \& $val = \*(Aqundef\*(Aq unless defined( $val ); \& print "$attr: $val\en"; \& } \& \& return 1; \& } \& \& 1; .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" prove, TAP::Harness man3/Module::Build::Base.3pm000044400000012045147645265660011420 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Module::Build::Base 3" .TH Module::Build::Base 3 "2020-03-05" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Module::Build::Base \- Default methods for Module::Build .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& Please see the Module::Build documentation. .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \f(CW\*(C`Module::Build::Base\*(C'\fR module defines the core functionality of \&\f(CW\*(C`Module::Build\*(C'\fR. Its methods may be overridden by any of the platform-dependent modules in the \f(CW\*(C`Module::Build::Platform::\*(C'\fR namespace, but the intention here is to make this base module as platform-neutral as possible. Nicely enough, Perl has several core tools available in the \f(CW\*(C`File::\*(C'\fR namespace for doing this, so the task isn't very difficult. .PP Please see the \f(CW\*(C`Module::Build\*(C'\fR documentation for more details. .SH "AUTHOR" .IX Header "AUTHOR" Ken Williams .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 2001\-2006 Ken Williams. All rights reserved. .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIperl\fR\|(1), \fIModule::Build\fR\|(3) man3/HTML::Parse.3pm000044400000020130147645265660007765 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "HTML::Parse 3" .TH HTML::Parse 3 "2020-03-05" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" HTML::Parse \- Deprecated, a wrapper around HTML::TreeBuilder .SH "VERSION" .IX Header "VERSION" This document describes version 5.07 of HTML::Parse, released August 31, 2017 as part of HTML-Tree. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& See the documentation for HTML::TreeBuilder .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Disclaimer: This module is provided only for backwards compatibility with earlier versions of this library. New code should \fInot\fR use this module, and should really use the HTML::Parser and HTML::TreeBuilder modules directly, instead. .PP The \f(CW\*(C`HTML::Parse\*(C'\fR module provides functions to parse \s-1HTML\s0 documents. There are two functions exported by this module: .ie n .IP "parse_html($html) or parse_html($html, $obj)" 4 .el .IP "parse_html($html) or parse_html($html, \f(CW$obj\fR)" 4 .IX Item "parse_html($html) or parse_html($html, $obj)" This function is really just a synonym for \f(CW$obj\fR\->parse($html) and \f(CW$obj\fR is assumed to be a subclass of \f(CW\*(C`HTML::Parser\*(C'\fR. Refer to HTML::Parser for more documentation. .Sp If \f(CW$obj\fR is not specified, the \f(CW$obj\fR will default to an internally created new \f(CW\*(C`HTML::TreeBuilder\*(C'\fR object configured with \fIstrict_comment()\fR turned on. That class implements a parser that builds (and is) a \s-1HTML\s0 syntax tree with HTML::Element objects as nodes. .Sp The return value from \fIparse_html()\fR is \f(CW$obj\fR. .IP "parse_htmlfile($file, [$obj])" 4 .IX Item "parse_htmlfile($file, [$obj])" Same as \fIparse_html()\fR, but pulls the \s-1HTML\s0 to parse, from the named file. .Sp Returns \f(CW\*(C`undef\*(C'\fR if the file could not be opened, or \f(CW$obj\fR otherwise. .PP When a \f(CW\*(C`HTML::TreeBuilder\*(C'\fR object is created, the following variables control how parsing takes place: .ie n .IP "$HTML::Parse::IMPLICIT_TAGS" 4 .el .IP "\f(CW$HTML::Parse::IMPLICIT_TAGS\fR" 4 .IX Item "$HTML::Parse::IMPLICIT_TAGS" Setting this variable to true will instruct the parser to try to deduce implicit elements and implicit end tags. If this variable is false you get a parse tree that just reflects the text as it stands. Might be useful for quick & dirty parsing. Default is true. .Sp Implicit elements have the \fIimplicit()\fR attribute set. .ie n .IP "$HTML::Parse::IGNORE_UNKNOWN" 4 .el .IP "\f(CW$HTML::Parse::IGNORE_UNKNOWN\fR" 4 .IX Item "$HTML::Parse::IGNORE_UNKNOWN" This variable contols whether unknow tags should be represented as elements in the parse tree. Default is true. .ie n .IP "$HTML::Parse::IGNORE_TEXT" 4 .el .IP "\f(CW$HTML::Parse::IGNORE_TEXT\fR" 4 .IX Item "$HTML::Parse::IGNORE_TEXT" Do not represent the text content of elements. This saves space if all you want is to examine the structure of the document. Default is false. .ie n .IP "$HTML::Parse::WARN" 4 .el .IP "\f(CW$HTML::Parse::WARN\fR" 4 .IX Item "$HTML::Parse::WARN" Call \fIwarn()\fR with an appropriate message for syntax errors. Default is false. .SH "REMEMBER!" .IX Header "REMEMBER!" HTML::TreeBuilder objects should be explicitly destroyed when you're finished with them. See HTML::TreeBuilder. .SH "SEE ALSO" .IX Header "SEE ALSO" HTML::Parser, HTML::TreeBuilder, HTML::Element .SH "AUTHOR" .IX Header "AUTHOR" Current maintainers: .IP "\(bu" 4 Christopher J. Madsen \f(CW\*(C`\*(C'\fR .IP "\(bu" 4 Jeff Fearn \f(CW\*(C`\*(C'\fR .PP Original HTML-Tree author: .IP "\(bu" 4 Gisle Aas .PP Former maintainers: .IP "\(bu" 4 Sean M. Burke .IP "\(bu" 4 Andy Lester .IP "\(bu" 4 Pete Krawczyk \f(CW\*(C`\*(C'\fR .PP You can follow or contribute to HTML-Tree's development at . .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" Copyright 1995\-1998 Gisle Aas, 1999\-2004 Sean M. Burke, 2005 Andy Lester, 2006 Pete Krawczyk, 2010 Jeff Fearn, 2012 Christopher J. Madsen. .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP The programs in this library are distributed in the hope that they will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose. man3/File::Path.3pm000044400000101371147645265660007731 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "File::Path 3" .TH File::Path 3 "2018-08-31" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" File::Path \- Create or remove directory trees .SH "VERSION" .IX Header "VERSION" 2.16 \- released August 31 2018. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use File::Path qw(make_path remove_tree); \& \& @created = make_path(\*(Aqfoo/bar/baz\*(Aq, \*(Aq/zug/zwang\*(Aq); \& @created = make_path(\*(Aqfoo/bar/baz\*(Aq, \*(Aq/zug/zwang\*(Aq, { \& verbose => 1, \& mode => 0711, \& }); \& make_path(\*(Aqfoo/bar/baz\*(Aq, \*(Aq/zug/zwang\*(Aq, { \& chmod => 0777, \& }); \& \& $removed_count = remove_tree(\*(Aqfoo/bar/baz\*(Aq, \*(Aq/zug/zwang\*(Aq, { \& verbose => 1, \& error => \emy $err_list, \& safe => 1, \& }); \& \& # legacy (interface promoted before v2.00) \& @created = mkpath(\*(Aq/foo/bar/baz\*(Aq); \& @created = mkpath(\*(Aq/foo/bar/baz\*(Aq, 1, 0711); \& @created = mkpath([\*(Aq/foo/bar/baz\*(Aq, \*(Aqblurfl/quux\*(Aq], 1, 0711); \& $removed_count = rmtree(\*(Aqfoo/bar/baz\*(Aq, 1, 1); \& $removed_count = rmtree([\*(Aqfoo/bar/baz\*(Aq, \*(Aqblurfl/quux\*(Aq], 1, 1); \& \& # legacy (interface promoted before v2.06) \& @created = mkpath(\*(Aqfoo/bar/baz\*(Aq, \*(Aq/zug/zwang\*(Aq, { verbose => 1, mode => 0711 }); \& $removed_count = rmtree(\*(Aqfoo/bar/baz\*(Aq, \*(Aq/zug/zwang\*(Aq, { verbose => 1, mode => 0711 }); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This module provides a convenient way to create directories of arbitrary depth and to delete an entire directory subtree from the filesystem. .PP The following functions are provided: .ie n .IP "make_path( $dir1, $dir2, .... )" 4 .el .IP "make_path( \f(CW$dir1\fR, \f(CW$dir2\fR, .... )" 4 .IX Item "make_path( $dir1, $dir2, .... )" .PD 0 .ie n .IP "make_path( $dir1, $dir2, ...., \e%opts )" 4 .el .IP "make_path( \f(CW$dir1\fR, \f(CW$dir2\fR, ...., \e%opts )" 4 .IX Item "make_path( $dir1, $dir2, ...., %opts )" .PD The \f(CW\*(C`make_path\*(C'\fR function creates the given directories if they don't exist before, much like the Unix command \f(CW\*(C`mkdir \-p\*(C'\fR. .Sp The function accepts a list of directories to be created. Its behaviour may be tuned by an optional hashref appearing as the last parameter on the call. .Sp The function returns the list of directories actually created during the call; in scalar context the number of directories created. .Sp The following keys are recognised in the option hash: .RS 4 .ie n .IP "mode => $num" 4 .el .IP "mode => \f(CW$num\fR" 4 .IX Item "mode => $num" The numeric permissions mode to apply to each created directory (defaults to \f(CW0777\fR), to be modified by the current \f(CW\*(C`umask\*(C'\fR. If the directory already exists (and thus does not need to be created), the permissions will not be modified. .Sp \&\f(CW\*(C`mask\*(C'\fR is recognised as an alias for this parameter. .ie n .IP "chmod => $num" 4 .el .IP "chmod => \f(CW$num\fR" 4 .IX Item "chmod => $num" Takes a numeric mode to apply to each created directory (not modified by the current \f(CW\*(C`umask\*(C'\fR). If the directory already exists (and thus does not need to be created), the permissions will not be modified. .ie n .IP "verbose => $bool" 4 .el .IP "verbose => \f(CW$bool\fR" 4 .IX Item "verbose => $bool" If present, will cause \f(CW\*(C`make_path\*(C'\fR to print the name of each directory as it is created. By default nothing is printed. .IP "error => \e$err" 4 .IX Item "error => $err" If present, it should be a reference to a scalar. This scalar will be made to reference an array, which will be used to store any errors that are encountered. See the \*(L"\s-1ERROR HANDLING\*(R"\s0 section for more information. .Sp If this parameter is not used, certain error conditions may raise a fatal error that will cause the program to halt, unless trapped in an \f(CW\*(C`eval\*(C'\fR block. .ie n .IP "owner => $owner" 4 .el .IP "owner => \f(CW$owner\fR" 4 .IX Item "owner => $owner" .PD 0 .ie n .IP "user => $owner" 4 .el .IP "user => \f(CW$owner\fR" 4 .IX Item "user => $owner" .ie n .IP "uid => $owner" 4 .el .IP "uid => \f(CW$owner\fR" 4 .IX Item "uid => $owner" .PD If present, will cause any created directory to be owned by \f(CW$owner\fR. If the value is numeric, it will be interpreted as a uid; otherwise a username is assumed. An error will be issued if the username cannot be mapped to a uid, the uid does not exist or the process lacks the privileges to change ownership. .Sp Ownership of directories that already exist will not be changed. .Sp \&\f(CW\*(C`user\*(C'\fR and \f(CW\*(C`uid\*(C'\fR are aliases of \f(CW\*(C`owner\*(C'\fR. .ie n .IP "group => $group" 4 .el .IP "group => \f(CW$group\fR" 4 .IX Item "group => $group" If present, will cause any created directory to be owned by the group \&\f(CW$group\fR. If the value is numeric, it will be interpreted as a gid; otherwise a group name is assumed. An error will be issued if the group name cannot be mapped to a gid, the gid does not exist or the process lacks the privileges to change group ownership. .Sp Group ownership of directories that already exist will not be changed. .Sp .Vb 1 \& make_path \*(Aq/var/tmp/webcache\*(Aq, {owner=>\*(Aqnobody\*(Aq, group=>\*(Aqnogroup\*(Aq}; .Ve .RE .RS 4 .RE .ie n .IP "mkpath( $dir )" 4 .el .IP "mkpath( \f(CW$dir\fR )" 4 .IX Item "mkpath( $dir )" .PD 0 .ie n .IP "mkpath( $dir, $verbose, $mode )" 4 .el .IP "mkpath( \f(CW$dir\fR, \f(CW$verbose\fR, \f(CW$mode\fR )" 4 .IX Item "mkpath( $dir, $verbose, $mode )" .ie n .IP "mkpath( [$dir1, $dir2,...], $verbose, $mode )" 4 .el .IP "mkpath( [$dir1, \f(CW$dir2\fR,...], \f(CW$verbose\fR, \f(CW$mode\fR )" 4 .IX Item "mkpath( [$dir1, $dir2,...], $verbose, $mode )" .ie n .IP "mkpath( $dir1, $dir2,..., \e%opt )" 4 .el .IP "mkpath( \f(CW$dir1\fR, \f(CW$dir2\fR,..., \e%opt )" 4 .IX Item "mkpath( $dir1, $dir2,..., %opt )" .PD The \f(CW\*(C`mkpath()\*(C'\fR function provide the legacy interface of \&\f(CW\*(C`make_path()\*(C'\fR with a different interpretation of the arguments passed. The behaviour and return value of the function is otherwise identical to \f(CW\*(C`make_path()\*(C'\fR. .ie n .IP "remove_tree( $dir1, $dir2, .... )" 4 .el .IP "remove_tree( \f(CW$dir1\fR, \f(CW$dir2\fR, .... )" 4 .IX Item "remove_tree( $dir1, $dir2, .... )" .PD 0 .ie n .IP "remove_tree( $dir1, $dir2, ...., \e%opts )" 4 .el .IP "remove_tree( \f(CW$dir1\fR, \f(CW$dir2\fR, ...., \e%opts )" 4 .IX Item "remove_tree( $dir1, $dir2, ...., %opts )" .PD The \f(CW\*(C`remove_tree\*(C'\fR function deletes the given directories and any files and subdirectories they might contain, much like the Unix command \f(CW\*(C`rm \-rf\*(C'\fR or the Windows commands \f(CW\*(C`rmdir /s\*(C'\fR and \f(CW\*(C`rd /s\*(C'\fR. .Sp The function accepts a list of directories to be removed. (In point of fact, it will also accept filesystem entries which are not directories, such as regular files and symlinks. But, as its name suggests, its intent is to remove trees rather than individual files.) .Sp \&\f(CW\*(C`remove_tree()\*(C'\fR's behaviour may be tuned by an optional hashref appearing as the last parameter on the call. If an empty string is passed to \f(CW\*(C`remove_tree\*(C'\fR, an error will occur. .Sp \&\fB\s-1NOTE:\s0\fR For security reasons, we strongly advise use of the hashref-as-final-argument syntax \*(-- specifically, with a setting of the \f(CW\*(C`safe\*(C'\fR element to a true value. .Sp .Vb 6 \& remove_tree( $dir1, $dir2, ...., \& { \& safe => 1, \& ... # other key\-value pairs \& }, \& ); .Ve .Sp The function returns the number of files successfully deleted. .Sp The following keys are recognised in the option hash: .RS 4 .ie n .IP "verbose => $bool" 4 .el .IP "verbose => \f(CW$bool\fR" 4 .IX Item "verbose => $bool" If present, will cause \f(CW\*(C`remove_tree\*(C'\fR to print the name of each file as it is unlinked. By default nothing is printed. .ie n .IP "safe => $bool" 4 .el .IP "safe => \f(CW$bool\fR" 4 .IX Item "safe => $bool" When set to a true value, will cause \f(CW\*(C`remove_tree\*(C'\fR to skip the files for which the process lacks the required privileges needed to delete files, such as delete privileges on \s-1VMS.\s0 In other words, the code will make no attempt to alter file permissions. Thus, if the process is interrupted, no filesystem object will be left in a more permissive mode. .ie n .IP "keep_root => $bool" 4 .el .IP "keep_root => \f(CW$bool\fR" 4 .IX Item "keep_root => $bool" When set to a true value, will cause all files and subdirectories to be removed, except the initially specified directories. This comes in handy when cleaning out an application's scratch directory. .Sp .Vb 1 \& remove_tree( \*(Aq/tmp\*(Aq, {keep_root => 1} ); .Ve .IP "result => \e$res" 4 .IX Item "result => $res" If present, it should be a reference to a scalar. This scalar will be made to reference an array, which will be used to store all files and directories unlinked during the call. If nothing is unlinked, the array will be empty. .Sp .Vb 2 \& remove_tree( \*(Aq/tmp\*(Aq, {result => \emy $list} ); \& print "unlinked $_\en" for @$list; .Ve .Sp This is a useful alternative to the \f(CW\*(C`verbose\*(C'\fR key. .IP "error => \e$err" 4 .IX Item "error => $err" If present, it should be a reference to a scalar. This scalar will be made to reference an array, which will be used to store any errors that are encountered. See the \*(L"\s-1ERROR HANDLING\*(R"\s0 section for more information. .Sp Removing things is a much more dangerous proposition than creating things. As such, there are certain conditions that \&\f(CW\*(C`remove_tree\*(C'\fR may encounter that are so dangerous that the only sane action left is to kill the program. .Sp Use \f(CW\*(C`error\*(C'\fR to trap all that is reasonable (problems with permissions and the like), and let it die if things get out of hand. This is the safest course of action. .RE .RS 4 .RE .ie n .IP "rmtree( $dir )" 4 .el .IP "rmtree( \f(CW$dir\fR )" 4 .IX Item "rmtree( $dir )" .PD 0 .ie n .IP "rmtree( $dir, $verbose, $safe )" 4 .el .IP "rmtree( \f(CW$dir\fR, \f(CW$verbose\fR, \f(CW$safe\fR )" 4 .IX Item "rmtree( $dir, $verbose, $safe )" .ie n .IP "rmtree( [$dir1, $dir2,...], $verbose, $safe )" 4 .el .IP "rmtree( [$dir1, \f(CW$dir2\fR,...], \f(CW$verbose\fR, \f(CW$safe\fR )" 4 .IX Item "rmtree( [$dir1, $dir2,...], $verbose, $safe )" .ie n .IP "rmtree( $dir1, $dir2,..., \e%opt )" 4 .el .IP "rmtree( \f(CW$dir1\fR, \f(CW$dir2\fR,..., \e%opt )" 4 .IX Item "rmtree( $dir1, $dir2,..., %opt )" .PD The \f(CW\*(C`rmtree()\*(C'\fR function provide the legacy interface of \&\f(CW\*(C`remove_tree()\*(C'\fR with a different interpretation of the arguments passed. The behaviour and return value of the function is otherwise identical to \f(CW\*(C`remove_tree()\*(C'\fR. .Sp \&\fB\s-1NOTE:\s0\fR For security reasons, we strongly advise use of the hashref-as-final-argument syntax, specifically with a setting of the \f(CW\*(C`safe\*(C'\fR element to a true value. .Sp .Vb 6 \& rmtree( $dir1, $dir2, ...., \& { \& safe => 1, \& ... # other key\-value pairs \& }, \& ); .Ve .SS "\s-1ERROR HANDLING\s0" .IX Subsection "ERROR HANDLING" .IP "\fB\s-1NOTE:\s0\fR" 4 .IX Item "NOTE:" The following error handling mechanism is consistent throughout all code paths \s-1EXCEPT\s0 in cases where the \s-1ROOT\s0 node is nonexistent. In version 2.11 the maintainers attempted to rectify this inconsistency but too many downstream modules encountered problems. In such case, if you require root node evaluation or error checking prior to calling \&\f(CW\*(C`make_path\*(C'\fR or \f(CW\*(C`remove_tree\*(C'\fR, you should take additional precautions. .PP If \f(CW\*(C`make_path\*(C'\fR or \f(CW\*(C`remove_tree\*(C'\fR encounters an error, a diagnostic message will be printed to \f(CW\*(C`STDERR\*(C'\fR via \f(CW\*(C`carp\*(C'\fR (for non-fatal errors) or via \f(CW\*(C`croak\*(C'\fR (for fatal errors). .PP If this behaviour is not desirable, the \f(CW\*(C`error\*(C'\fR attribute may be used to hold a reference to a variable, which will be used to store the diagnostics. The variable is made a reference to an array of hash references. Each hash contain a single key/value pair where the key is the name of the file, and the value is the error message (including the contents of \f(CW$!\fR when appropriate). If a general error is encountered the diagnostic key will be empty. .PP An example usage looks like: .PP .Vb 10 \& remove_tree( \*(Aqfoo/bar\*(Aq, \*(Aqbar/rat\*(Aq, {error => \emy $err} ); \& if ($err && @$err) { \& for my $diag (@$err) { \& my ($file, $message) = %$diag; \& if ($file eq \*(Aq\*(Aq) { \& print "general error: $message\en"; \& } \& else { \& print "problem unlinking $file: $message\en"; \& } \& } \& } \& else { \& print "No error encountered\en"; \& } .Ve .PP Note that if no errors are encountered, \f(CW$err\fR will reference an empty array. This means that \f(CW$err\fR will always end up \s-1TRUE\s0; so you need to test \f(CW@$err\fR to determine if errors occurred. .SS "\s-1NOTES\s0" .IX Subsection "NOTES" \&\f(CW\*(C`File::Path\*(C'\fR blindly exports \f(CW\*(C`mkpath\*(C'\fR and \f(CW\*(C`rmtree\*(C'\fR into the current namespace. These days, this is considered bad style, but to change it now would break too much code. Nonetheless, you are invited to specify what it is you are expecting to use: .PP .Vb 1 \& use File::Path \*(Aqrmtree\*(Aq; .Ve .PP The routines \f(CW\*(C`make_path\*(C'\fR and \f(CW\*(C`remove_tree\*(C'\fR are \fBnot\fR exported by default. You must specify which ones you want to use. .PP .Vb 1 \& use File::Path \*(Aqremove_tree\*(Aq; .Ve .PP Note that a side-effect of the above is that \f(CW\*(C`mkpath\*(C'\fR and \f(CW\*(C`rmtree\*(C'\fR are no longer exported at all. This is due to the way the \f(CW\*(C`Exporter\*(C'\fR module works. If you are migrating a codebase to use the new interface, you will have to list everything explicitly. But that's just good practice anyway. .PP .Vb 1 \& use File::Path qw(remove_tree rmtree); .Ve .PP \fI\s-1API CHANGES\s0\fR .IX Subsection "API CHANGES" .PP The \s-1API\s0 was changed in the 2.0 branch. For a time, \f(CW\*(C`mkpath\*(C'\fR and \&\f(CW\*(C`rmtree\*(C'\fR tried, unsuccessfully, to deal with the two different calling mechanisms. This approach was considered a failure. .PP The new semantics are now only available with \f(CW\*(C`make_path\*(C'\fR and \&\f(CW\*(C`remove_tree\*(C'\fR. The old semantics are only available through \&\f(CW\*(C`mkpath\*(C'\fR and \f(CW\*(C`rmtree\*(C'\fR. Users are strongly encouraged to upgrade to at least 2.08 in order to avoid surprises. .PP \fI\s-1SECURITY CONSIDERATIONS\s0\fR .IX Subsection "SECURITY CONSIDERATIONS" .PP There were race conditions in the 1.x implementations of File::Path's \&\f(CW\*(C`rmtree\*(C'\fR function (although sometimes patched depending on the \s-1OS\s0 distribution or platform). The 2.0 version contains code to avoid the problem mentioned in \s-1CVE\-2002\-0435.\s0 .PP See the following pages for more information: .PP .Vb 3 \& http://bugs.debian.org/cgi\-bin/bugreport.cgi?bug=286905 \& http://www.nntp.perl.org/group/perl.perl5.porters/2005/01/msg97623.html \& http://www.debian.org/security/2005/dsa\-696 .Ve .PP Additionally, unless the \f(CW\*(C`safe\*(C'\fR parameter is set (or the third parameter in the traditional interface is \s-1TRUE\s0), should a \&\f(CW\*(C`remove_tree\*(C'\fR be interrupted, files that were originally in read-only mode may now have their permissions set to a read-write (or \*(L"delete \&\s-1OK\*(R"\s0) mode. .PP The following \s-1CVE\s0 reports were previously filed against File-Path and are believed to have been addressed: .IP "\(bu" 4 .IP "\(bu" 4 .PP In February 2017 the cPanel Security Team reported an additional vulnerability in File-Path. The \f(CW\*(C`chmod()\*(C'\fR logic to make directories traversable can be abused to set the mode on an attacker-chosen file to an attacker-chosen value. This is due to the time-of-check-to-time-of-use (\s-1TOCTTOU\s0) race condition () between the \&\f(CW\*(C`stat()\*(C'\fR that decides the inode is a directory and the \f(CW\*(C`chmod()\*(C'\fR that tries to make it user-rwx. \s-1CPAN\s0 versions 2.13 and later incorporate a patch provided by John Lightsey to address this problem. This vulnerability has been reported as \s-1CVE\-2017\-6512.\s0 .SH "DIAGNOSTICS" .IX Header "DIAGNOSTICS" \&\s-1FATAL\s0 errors will cause the program to halt (\f(CW\*(C`croak\*(C'\fR), since the problem is so severe that it would be dangerous to continue. (This can always be trapped with \f(CW\*(C`eval\*(C'\fR, but it's not a good idea. Under the circumstances, dying is the best thing to do). .PP \&\s-1SEVERE\s0 errors may be trapped using the modern interface. If the they are not trapped, or if the old interface is used, such an error will cause the program will halt. .PP All other errors may be trapped using the modern interface, otherwise they will be \f(CW\*(C`carp\*(C'\fRed about. Program execution will not be halted. .IP "mkdir [path]: [errmsg] (\s-1SEVERE\s0)" 4 .IX Item "mkdir [path]: [errmsg] (SEVERE)" \&\f(CW\*(C`make_path\*(C'\fR was unable to create the path. Probably some sort of permissions error at the point of departure or insufficient resources (such as free inodes on Unix). .IP "No root path(s) specified" 4 .IX Item "No root path(s) specified" \&\f(CW\*(C`make_path\*(C'\fR was not given any paths to create. This message is only emitted if the routine is called with the traditional interface. The modern interface will remain silent if given nothing to do. .IP "No such file or directory" 4 .IX Item "No such file or directory" On Windows, if \f(CW\*(C`make_path\*(C'\fR gives you this warning, it may mean that you have exceeded your filesystem's maximum path length. .IP "cannot fetch initial working directory: [errmsg]" 4 .IX Item "cannot fetch initial working directory: [errmsg]" \&\f(CW\*(C`remove_tree\*(C'\fR attempted to determine the initial directory by calling \&\f(CW\*(C`Cwd::getcwd\*(C'\fR, but the call failed for some reason. No attempt will be made to delete anything. .IP "cannot stat initial working directory: [errmsg]" 4 .IX Item "cannot stat initial working directory: [errmsg]" \&\f(CW\*(C`remove_tree\*(C'\fR attempted to stat the initial directory (after having successfully obtained its name via \f(CW\*(C`getcwd\*(C'\fR), however, the call failed for some reason. No attempt will be made to delete anything. .IP "cannot chdir to [dir]: [errmsg]" 4 .IX Item "cannot chdir to [dir]: [errmsg]" \&\f(CW\*(C`remove_tree\*(C'\fR attempted to set the working directory in order to begin deleting the objects therein, but was unsuccessful. This is usually a permissions issue. The routine will continue to delete other things, but this directory will be left intact. .IP "directory [dir] changed before chdir, expected dev=[n] ino=[n], actual dev=[n] ino=[n], aborting. (\s-1FATAL\s0)" 4 .IX Item "directory [dir] changed before chdir, expected dev=[n] ino=[n], actual dev=[n] ino=[n], aborting. (FATAL)" \&\f(CW\*(C`remove_tree\*(C'\fR recorded the device and inode of a directory, and then moved into it. It then performed a \f(CW\*(C`stat\*(C'\fR on the current directory and detected that the device and inode were no longer the same. As this is at the heart of the race condition problem, the program will die at this point. .IP "cannot make directory [dir] read+writeable: [errmsg]" 4 .IX Item "cannot make directory [dir] read+writeable: [errmsg]" \&\f(CW\*(C`remove_tree\*(C'\fR attempted to change the permissions on the current directory to ensure that subsequent unlinkings would not run into problems, but was unable to do so. The permissions remain as they were, and the program will carry on, doing the best it can. .IP "cannot read [dir]: [errmsg]" 4 .IX Item "cannot read [dir]: [errmsg]" \&\f(CW\*(C`remove_tree\*(C'\fR tried to read the contents of the directory in order to acquire the names of the directory entries to be unlinked, but was unsuccessful. This is usually a permissions issue. The program will continue, but the files in this directory will remain after the call. .IP "cannot reset chmod [dir]: [errmsg]" 4 .IX Item "cannot reset chmod [dir]: [errmsg]" \&\f(CW\*(C`remove_tree\*(C'\fR, after having deleted everything in a directory, attempted to restore its permissions to the original state but failed. The directory may wind up being left behind. .IP "cannot remove [dir] when cwd is [dir]" 4 .IX Item "cannot remove [dir] when cwd is [dir]" The current working directory of the program is \fI/some/path/to/here\fR and you are attempting to remove an ancestor, such as \fI/some/path\fR. The directory tree is left untouched. .Sp The solution is to \f(CW\*(C`chdir\*(C'\fR out of the child directory to a place outside the directory tree to be removed. .IP "cannot chdir to [parent\-dir] from [child\-dir]: [errmsg], aborting. (\s-1FATAL\s0)" 4 .IX Item "cannot chdir to [parent-dir] from [child-dir]: [errmsg], aborting. (FATAL)" \&\f(CW\*(C`remove_tree\*(C'\fR, after having deleted everything and restored the permissions of a directory, was unable to chdir back to the parent. The program halts to avoid a race condition from occurring. .IP "cannot stat prior working directory [dir]: [errmsg], aborting. (\s-1FATAL\s0)" 4 .IX Item "cannot stat prior working directory [dir]: [errmsg], aborting. (FATAL)" \&\f(CW\*(C`remove_tree\*(C'\fR was unable to stat the parent directory after having returned from the child. Since there is no way of knowing if we returned to where we think we should be (by comparing device and inode) the only way out is to \f(CW\*(C`croak\*(C'\fR. .IP "previous directory [parent\-dir] changed before entering [child\-dir], expected dev=[n] ino=[n], actual dev=[n] ino=[n], aborting. (\s-1FATAL\s0)" 4 .IX Item "previous directory [parent-dir] changed before entering [child-dir], expected dev=[n] ino=[n], actual dev=[n] ino=[n], aborting. (FATAL)" When \f(CW\*(C`remove_tree\*(C'\fR returned from deleting files in a child directory, a check revealed that the parent directory it returned to wasn't the one it started out from. This is considered a sign of malicious activity. .IP "cannot make directory [dir] writeable: [errmsg]" 4 .IX Item "cannot make directory [dir] writeable: [errmsg]" Just before removing a directory (after having successfully removed everything it contained), \f(CW\*(C`remove_tree\*(C'\fR attempted to set the permissions on the directory to ensure it could be removed and failed. Program execution continues, but the directory may possibly not be deleted. .IP "cannot remove directory [dir]: [errmsg]" 4 .IX Item "cannot remove directory [dir]: [errmsg]" \&\f(CW\*(C`remove_tree\*(C'\fR attempted to remove a directory, but failed. This may be because some objects that were unable to be removed remain in the directory, or it could be a permissions issue. The directory will be left behind. .IP "cannot restore permissions of [dir] to [0nnn]: [errmsg]" 4 .IX Item "cannot restore permissions of [dir] to [0nnn]: [errmsg]" After having failed to remove a directory, \f(CW\*(C`remove_tree\*(C'\fR was unable to restore its permissions from a permissive state back to a possibly more restrictive setting. (Permissions given in octal). .IP "cannot make file [file] writeable: [errmsg]" 4 .IX Item "cannot make file [file] writeable: [errmsg]" \&\f(CW\*(C`remove_tree\*(C'\fR attempted to force the permissions of a file to ensure it could be deleted, but failed to do so. It will, however, still attempt to unlink the file. .IP "cannot unlink file [file]: [errmsg]" 4 .IX Item "cannot unlink file [file]: [errmsg]" \&\f(CW\*(C`remove_tree\*(C'\fR failed to remove a file. Probably a permissions issue. .IP "cannot restore permissions of [file] to [0nnn]: [errmsg]" 4 .IX Item "cannot restore permissions of [file] to [0nnn]: [errmsg]" After having failed to remove a file, \f(CW\*(C`remove_tree\*(C'\fR was also unable to restore the permissions on the file to a possibly less permissive setting. (Permissions given in octal). .IP "unable to map [owner] to a uid, ownership not changed"");" 4 .IX Item "unable to map [owner] to a uid, ownership not changed"");" \&\f(CW\*(C`make_path\*(C'\fR was instructed to give the ownership of created directories to the symbolic name [owner], but \f(CW\*(C`getpwnam\*(C'\fR did not return the corresponding numeric uid. The directory will be created, but ownership will not be changed. .IP "unable to map [group] to a gid, group ownership not changed" 4 .IX Item "unable to map [group] to a gid, group ownership not changed" \&\f(CW\*(C`make_path\*(C'\fR was instructed to give the group ownership of created directories to the symbolic name [group], but \f(CW\*(C`getgrnam\*(C'\fR did not return the corresponding numeric gid. The directory will be created, but group ownership will not be changed. .SH "SEE ALSO" .IX Header "SEE ALSO" .IP "\(bu" 4 File::Remove .Sp Allows files and directories to be moved to the Trashcan/Recycle Bin (where they may later be restored if necessary) if the operating system supports such functionality. This feature may one day be made available directly in \f(CW\*(C`File::Path\*(C'\fR. .IP "\(bu" 4 File::Find::Rule .Sp When removing directory trees, if you want to examine each file to decide whether to delete it (and possibly leaving large swathes alone), \fIFile::Find::Rule\fR offers a convenient and flexible approach to examining directory trees. .SH "BUGS AND LIMITATIONS" .IX Header "BUGS AND LIMITATIONS" The following describes \fIFile::Path\fR limitations and how to report bugs. .SS "\s-1MULTITHREADED APPLICATIONS\s0" .IX Subsection "MULTITHREADED APPLICATIONS" \&\fIFile::Path\fR \f(CW\*(C`rmtree\*(C'\fR and \f(CW\*(C`remove_tree\*(C'\fR will not work with multithreaded applications due to its use of \f(CW\*(C`chdir\*(C'\fR. At this time, no warning or error is generated in this situation. You will certainly encounter unexpected results. .PP The implementation that surfaces this limitation will not be changed. See the \&\fIFile::Path::Tiny\fR module for functionality similar to \fIFile::Path\fR but which does not \f(CW\*(C`chdir\*(C'\fR. .SS "\s-1NFS\s0 Mount Points" .IX Subsection "NFS Mount Points" \&\fIFile::Path\fR is not responsible for triggering the automounts, mirror mounts, and the contents of network mounted filesystems. If your \s-1NFS\s0 implementation requires an action to be performed on the filesystem in order for \&\fIFile::Path\fR to perform operations, it is strongly suggested you assure filesystem availability by reading the root of the mounted filesystem. .SS "\s-1REPORTING BUGS\s0" .IX Subsection "REPORTING BUGS" Please report all bugs on the \s-1RT\s0 queue, either via the web interface: .PP .PP or by email: .PP .Vb 1 \& bug\-File\-Path@rt.cpan.org .Ve .PP In either case, please \fBattach\fR patches to the bug report rather than including them inline in the web post or the body of the email. .PP You can also send pull requests to the Github repository: .PP .SH "ACKNOWLEDGEMENTS" .IX Header "ACKNOWLEDGEMENTS" Paul Szabo identified the race condition originally, and Brendan O'Dea wrote an implementation for Debian that addressed the problem. That code was used as a basis for the current code. Their efforts are greatly appreciated. .PP Gisle Aas made a number of improvements to the documentation for 2.07 and his advice and assistance is also greatly appreciated. .SH "AUTHORS" .IX Header "AUTHORS" Prior authors and maintainers: Tim Bunce, Charles Bailey, and David Landgren <\fIdavid@landgren.net\fR>. .PP Current maintainers are Richard Elberger <\fIriche@cpan.org\fR> and James (Jim) Keenan <\fIjkeenan@cpan.org\fR>. .SH "CONTRIBUTORS" .IX Header "CONTRIBUTORS" Contributors to File::Path, in alphabetical order by first name. .IP "<\fIbulkdd@cpan.org\fR>" 1 .IX Item "" .PD 0 .IP "Charlie Gonzalez <\fIitcharlie@cpan.org\fR>" 1 .IX Item "Charlie Gonzalez " .IP "Craig A. Berry <\fIcraigberry@mac.com\fR>" 1 .IX Item "Craig A. Berry " .IP "James E Keenan <\fIjkeenan@cpan.org\fR>" 1 .IX Item "James E Keenan " .IP "John Lightsey <\fIjohn@perlsec.org\fR>" 1 .IX Item "John Lightsey " .IP "Nigel Horne <\fInjh@bandsman.co.uk\fR>" 1 .IX Item "Nigel Horne " .IP "Richard Elberger <\fIriche@cpan.org\fR>" 1 .IX Item "Richard Elberger " .IP "Ryan Yee <\fIryee@cpan.org\fR>" 1 .IX Item "Ryan Yee " .IP "Skye Shaw <\fIshaw@cpan.org\fR>" 1 .IX Item "Skye Shaw " .IP "Tom Lutz <\fItommylutz@gmail.com\fR>" 1 .IX Item "Tom Lutz " .IP "Will Sheppard <\fIwillsheppard@github\fR>" 1 .IX Item "Will Sheppard " .PD .SH "COPYRIGHT" .IX Header "COPYRIGHT" This module is copyright (C) Charles Bailey, Tim Bunce, David Landgren, James Keenan and Richard Elberger 1995\-2018. All rights reserved. .SH "LICENSE" .IX Header "LICENSE" This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. man3/TAP::Parser::Result::YAML.3pm000044400000011432147645265660012266 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "TAP::Parser::Result::YAML 3" .TH TAP::Parser::Result::YAML 3 "2018-03-19" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" TAP::Parser::Result::YAML \- YAML result token. .SH "VERSION" .IX Header "VERSION" Version 3.42 .SH "DESCRIPTION" .IX Header "DESCRIPTION" This is a subclass of TAP::Parser::Result. A token of this class will be returned if a \s-1YAML\s0 block is encountered. .PP .Vb 2 \& 1..1 \& ok 1 \- woo hooo! .Ve .PP \&\f(CW1..1\fR is the plan. Gotta have a plan. .SH "OVERRIDDEN METHODS" .IX Header "OVERRIDDEN METHODS" Mainly listed here to shut up the pitiful screams of the pod coverage tests. They keep me awake at night. .IP "\(bu" 4 \&\f(CW\*(C`as_string\*(C'\fR .IP "\(bu" 4 \&\f(CW\*(C`raw\*(C'\fR .SS "Instance Methods" .IX Subsection "Instance Methods" \fI\f(CI\*(C`data\*(C'\fI\fR .IX Subsection "data" .PP .Vb 3 \& if ( $result\->is_yaml ) { \& print $result\->data; \& } .Ve .PP Return the parsed \s-1YAML\s0 data for this result man3/WWW::Mechanize::Image.3pm000044400000015334147645265660011677 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "WWW::Mechanize::Image 3" .TH WWW::Mechanize::Image 3 "2020-02-20" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" WWW::Mechanize::Image \- Image object for WWW::Mechanize .SH "VERSION" .IX Header "VERSION" version 1.96 .SH "SYNOPSIS" .IX Header "SYNOPSIS" Image object to encapsulate all the stuff that Mech needs .SH "Constructor" .IX Header "Constructor" .SS "\fInew()\fP" .IX Subsection "new()" Creates and returns a new \f(CW\*(C`WWW::Mechanize::Image\*(C'\fR object. .PP .Vb 10 \& my $image = WWW::Mechanize::Image\->new( { \& url => $url, \& base => $base, \& tag => $tag, \& name => $name, # From the INPUT tag \& height => $height, # optional \& width => $width, # optional \& alt => $alt, # optional \& attrs => $attr_ref, # optional \& } ); .Ve .SH "Accessors" .IX Header "Accessors" .ie n .SS "$image\->\fIurl()\fP" .el .SS "\f(CW$image\fP\->\fIurl()\fP" .IX Subsection "$image->url()" Image \s-1URL\s0 from the \f(CW\*(C`src\*(C'\fR attribute of the source tag. .PP May be \f(CW\*(C`undef\*(C'\fR if source tag has no \f(CW\*(C`src\*(C'\fR attribute. .ie n .SS "$image\->\fIbase()\fP" .el .SS "\f(CW$image\fP\->\fIbase()\fP" .IX Subsection "$image->base()" Base \s-1URL\s0 to which the links are relative. .ie n .SS "$image\->\fIname()\fP" .el .SS "\f(CW$image\fP\->\fIname()\fP" .IX Subsection "$image->name()" Name for the field from the \s-1NAME\s0 attribute, if any. .ie n .SS "$image\->\fItag()\fP" .el .SS "\f(CW$image\fP\->\fItag()\fP" .IX Subsection "$image->tag()" Tag name (either \*(L"image\*(R" or \*(L"input\*(R") .ie n .SS "$image\->\fIheight()\fP" .el .SS "\f(CW$image\fP\->\fIheight()\fP" .IX Subsection "$image->height()" Image height .ie n .SS "$image\->\fIwidth()\fP" .el .SS "\f(CW$image\fP\->\fIwidth()\fP" .IX Subsection "$image->width()" Image width .ie n .SS "$image\->\fIalt()\fP" .el .SS "\f(CW$image\fP\->\fIalt()\fP" .IX Subsection "$image->alt()" \&\s-1ALT\s0 attribute from the source tag, if any. .ie n .SS "$image\->\fIattrs()\fP" .el .SS "\f(CW$image\fP\->\fIattrs()\fP" .IX Subsection "$image->attrs()" Hash ref of all the attributes and attribute values in the tag. .ie n .SS "$image\->\s-1\fIURI\s0()\fP" .el .SS "\f(CW$image\fP\->\s-1\fIURI\s0()\fP" .IX Subsection "$image->URI()" Returns the \s-1URL\s0 as a \s-1URI::URL\s0 object. .ie n .SS "$image\->\fIurl_abs()\fP" .el .SS "\f(CW$image\fP\->\fIurl_abs()\fP" .IX Subsection "$image->url_abs()" Returns the \s-1URL\s0 as an absolute \s-1URL\s0 string. .SH "SEE ALSO" .IX Header "SEE ALSO" WWW::Mechanize and WWW::Mechanize::Link .SH "AUTHOR" .IX Header "AUTHOR" Andy Lester .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is copyright (c) 2004\-2016 by Andy Lester. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. man3/Module::Build::PPMMaker.3pm000044400000011426147645265660012164 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Module::Build::PPMMaker 3" .TH Module::Build::PPMMaker 3 "2020-03-05" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Module::Build::PPMMaker \- Perl Package Manager file creation .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& On the command line, builds a .ppd file: \& ./Build ppd .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This package contains the code that builds \fI.ppd\fR \*(L"Perl Package Description\*(R" files, in support of ActiveState's \*(L"Perl Package Manager\*(R". Details are here: .SH "AUTHOR" .IX Header "AUTHOR" Dave Rolsky , Ken Williams .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 2001\-2006 Ken Williams. All rights reserved. .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIperl\fR\|(1), \fIModule::Build\fR\|(3) man3/TAP::Parser::Result.3pm000044400000022144147645265660011421 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "TAP::Parser::Result 3" .TH TAP::Parser::Result 3 "2018-03-19" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" TAP::Parser::Result \- Base class for TAP::Parser output objects .SH "VERSION" .IX Header "VERSION" Version 3.42 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& # abstract class \- not meant to be used directly \& # see TAP::Parser::ResultFactory for preferred usage \& \& # directly: \& use TAP::Parser::Result; \& my $token = {...}; \& my $result = TAP::Parser::Result\->new( $token ); .Ve .SS "\s-1DESCRIPTION\s0" .IX Subsection "DESCRIPTION" This is a simple base class used by TAP::Parser to store objects that represent the current bit of test output data from \s-1TAP \s0(usually a single line). Unless you're subclassing, you probably won't need to use this module directly. .SS "\s-1METHODS\s0" .IX Subsection "METHODS" \fI\f(CI\*(C`new\*(C'\fI\fR .IX Subsection "new" .PP .Vb 1 \& # see TAP::Parser::ResultFactory for preferred usage \& \& # to use directly: \& my $result = TAP::Parser::Result\->new($token); .Ve .PP Returns an instance the appropriate class for the test token passed in. .SS "Boolean methods" .IX Subsection "Boolean methods" The following methods all return a boolean value and are to be overridden in the appropriate subclass. .IP "\(bu" 4 \&\f(CW\*(C`is_plan\*(C'\fR .Sp Indicates whether or not this is the test plan line. .Sp .Vb 1 \& 1..3 .Ve .IP "\(bu" 4 \&\f(CW\*(C`is_pragma\*(C'\fR .Sp Indicates whether or not this is a pragma line. .Sp .Vb 1 \& pragma +strict .Ve .IP "\(bu" 4 \&\f(CW\*(C`is_test\*(C'\fR .Sp Indicates whether or not this is a test line. .Sp .Vb 1 \& ok 1 Is OK! .Ve .IP "\(bu" 4 \&\f(CW\*(C`is_comment\*(C'\fR .Sp Indicates whether or not this is a comment. .Sp .Vb 1 \& # this is a comment .Ve .IP "\(bu" 4 \&\f(CW\*(C`is_bailout\*(C'\fR .Sp Indicates whether or not this is bailout line. .Sp .Vb 1 \& Bail out! We\*(Aqre out of dilithium crystals. .Ve .IP "\(bu" 4 \&\f(CW\*(C`is_version\*(C'\fR .Sp Indicates whether or not this is a \s-1TAP\s0 version line. .Sp .Vb 1 \& TAP version 4 .Ve .IP "\(bu" 4 \&\f(CW\*(C`is_unknown\*(C'\fR .Sp Indicates whether or not the current line could be parsed. .Sp .Vb 1 \& ... this line is junk ... .Ve .IP "\(bu" 4 \&\f(CW\*(C`is_yaml\*(C'\fR .Sp Indicates whether or not this is a \s-1YAML\s0 chunk. .PP \fI\f(CI\*(C`raw\*(C'\fI\fR .IX Subsection "raw" .PP .Vb 1 \& print $result\->raw; .Ve .PP Returns the original line of text which was parsed. .PP \fI\f(CI\*(C`type\*(C'\fI\fR .IX Subsection "type" .PP .Vb 1 \& my $type = $result\->type; .Ve .PP Returns the \*(L"type\*(R" of a token, such as \f(CW\*(C`comment\*(C'\fR or \f(CW\*(C`test\*(C'\fR. .PP \fI\f(CI\*(C`as_string\*(C'\fI\fR .IX Subsection "as_string" .PP .Vb 1 \& print $result\->as_string; .Ve .PP Prints a string representation of the token. This might not be the exact output, however. Tests will have test numbers added if not present, \s-1TODO\s0 and \&\s-1SKIP\s0 directives will be capitalized and, in general, things will be cleaned up. If you need the original text for the token, see the \f(CW\*(C`raw\*(C'\fR method. .PP \fI\f(CI\*(C`is_ok\*(C'\fI\fR .IX Subsection "is_ok" .PP .Vb 1 \& if ( $result\->is_ok ) { ... } .Ve .PP Reports whether or not a given result has passed. Anything which is \fBnot\fR a test result returns true. This is merely provided as a convenient shortcut. .PP \fI\f(CI\*(C`passed\*(C'\fI\fR .IX Subsection "passed" .PP Deprecated. Please use \f(CW\*(C`is_ok\*(C'\fR instead. .PP \fI\f(CI\*(C`has_directive\*(C'\fI\fR .IX Subsection "has_directive" .PP .Vb 3 \& if ( $result\->has_directive ) { \& ... \& } .Ve .PP Indicates whether or not the given result has a \s-1TODO\s0 or \s-1SKIP\s0 directive. .PP \fI\f(CI\*(C`has_todo\*(C'\fI\fR .IX Subsection "has_todo" .PP .Vb 3 \& if ( $result\->has_todo ) { \& ... \& } .Ve .PP Indicates whether or not the given result has a \s-1TODO\s0 directive. .PP \fI\f(CI\*(C`has_skip\*(C'\fI\fR .IX Subsection "has_skip" .PP .Vb 3 \& if ( $result\->has_skip ) { \& ... \& } .Ve .PP Indicates whether or not the given result has a \s-1SKIP\s0 directive. .PP \fI\f(CI\*(C`set_directive\*(C'\fI\fR .IX Subsection "set_directive" .PP Set the directive associated with this token. Used internally to fake \&\s-1TODO\s0 tests. .SH "SUBCLASSING" .IX Header "SUBCLASSING" Please see \*(L"\s-1SUBCLASSING\*(R"\s0 in TAP::Parser for a subclassing overview. .PP Remember: if you want your subclass to be automatically used by the parser, you'll have to register it with \*(L"register_type\*(R" in TAP::Parser::ResultFactory. .PP If you're creating a completely new result \fItype\fR, you'll probably need to subclass TAP::Parser::Grammar too, or else it'll never get used. .SS "Example" .IX Subsection "Example" .Vb 1 \& package MyResult; \& \& use strict; \& \& use base \*(AqTAP::Parser::Result\*(Aq; \& \& # register with the factory: \& TAP::Parser::ResultFactory\->register_type( \*(Aqmy_type\*(Aq => _\|_PACKAGE_\|_ ); \& \& sub as_string { \*(AqMy results all look the same\*(Aq } .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" TAP::Object, TAP::Parser, TAP::Parser::ResultFactory, TAP::Parser::Result::Bailout, TAP::Parser::Result::Comment, TAP::Parser::Result::Plan, TAP::Parser::Result::Pragma, TAP::Parser::Result::Test, TAP::Parser::Result::Unknown, TAP::Parser::Result::Version, TAP::Parser::Result::YAML, man3/TAP::Parser::Scheduler::Job.3pm000044400000013731147645265660012702 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "TAP::Parser::Scheduler::Job 3" .TH TAP::Parser::Scheduler::Job 3 "2018-03-19" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" TAP::Parser::Scheduler::Job \- A single testing job. .SH "VERSION" .IX Header "VERSION" Version 3.42 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use TAP::Parser::Scheduler::Job; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Represents a single test 'job'. .SH "METHODS" .IX Header "METHODS" .SS "Class Methods" .IX Subsection "Class Methods" \fI\f(CI\*(C`new\*(C'\fI\fR .IX Subsection "new" .PP .Vb 3 \& my $job = TAP::Parser::Scheduler::Job\->new( \& $filename, $description \& ); .Ve .PP Given the filename and description of a test as scalars, returns a new TAP::Parser::Scheduler::Job object. .SS "Instance Methods" .IX Subsection "Instance Methods" \fI\f(CI\*(C`on_finish\*(C'\fI\fR .IX Subsection "on_finish" .PP .Vb 1 \& $self\->on_finish(\e&method). .Ve .PP Register a closure to be called when this job is destroyed. The callback will be passed the \f(CW\*(C`TAP::Parser::Scheduler::Job\*(C'\fR object as it's only argument. .PP \fI\f(CI\*(C`finish\*(C'\fI\fR .IX Subsection "finish" .PP .Vb 1 \& $self\->finish; .Ve .PP Called when a job is complete to unlock it. If a callback has been registered with \f(CW\*(C`on_finish\*(C'\fR, it calls it. Otherwise, it does nothing. .SS "Attributes" .IX Subsection "Attributes" .Vb 3 \& $self\->filename; \& $self\->description; \& $self\->context; .Ve .PP These are all \*(L"getters\*(R" which return the data set for these attributes during object construction. .PP \fI\f(CI\*(C`filename\*(C'\fI\fR .IX Subsection "filename" .PP \fI\f(CI\*(C`description\*(C'\fI\fR .IX Subsection "description" .PP \fI\f(CI\*(C`context\*(C'\fI\fR .IX Subsection "context" .PP \fI\f(CI\*(C`as_array_ref\*(C'\fI\fR .IX Subsection "as_array_ref" .PP For backwards compatibility in callbacks. .PP \fI\f(CI\*(C`is_spinner\*(C'\fI\fR .IX Subsection "is_spinner" .PP .Vb 1 \& $self\->is_spinner; .Ve .PP Returns false indicating that this is a real job rather than a \&'spinner'. Spinners are returned when the scheduler still has pending jobs but can't (because of locking) return one right now. man3/Mail::RFC822::Address.3pm000044400000016156147645265660011406 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Address 3" .TH Address 3 "2002-04-13" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Mail::RFC822::Address \- Perl extension for validating email addresses according to RFC822 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use Mail::RFC822::Address qw(valid validlist); \& \& if (valid("pdw@ex\-parrot.com")) { \& print "That\*(Aqs a valid address\en"; \& } \& \& if (validlist("pdw@ex\-parrot.com, other@elsewhere.com")) { \& print "That\*(Aqs a valid list of addresses\en"; \& } .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Mail::RFC822::Address validates email addresses against the grammar described in \s-1RFC 822\s0 using regular expressions. How to validate a user supplied email address is a \s-1FAQ \s0(see perlfaq9): the only sure way to see if a supplied email address is genuine is to send an email to it and see if the user recieves it. The one useful check that can be performed on an address is to check that the email address is syntactically valid. That is what this module does. .PP This module is functionally equivalent to RFC::RFC822::Address, but uses regular expressions rather than the Parse::RecDescent parser. This means that startup time is greatly reduced making it suitable for use in transient scripts such as \s-1CGI\s0 scripts. .SS "valid ( address )" .IX Subsection "valid ( address )" Returns true or false to indicate if address is an \s-1RFC822\s0 valid address. .SS "validlist ( addresslist )" .IX Subsection "validlist ( addresslist )" In scalar context, returns true if the parameter is an \s-1RFC822\s0 valid list of addresses. .PP In list context, returns an empty list on failure (an invalid address was found); otherwise a list whose first element is the number of addresses found and whose remaining elements are the addresses. This is needed to disambiguate failure (invalid) from success with no addresses found, because an empty string is a valid list. .SH "AUTHOR" .IX Header "AUTHOR" Paul Warren, pdw@ex\-parrot.com .SH "CREDITS" .IX Header "CREDITS" Most of the test suite in test.pl is taken from RFC::RFC822::Address, written by Abigail, abigail@foad.org .SH "COPYRIGHT and LICENSE" .IX Header "COPYRIGHT and LICENSE" This program is copyright 2001\-2002 by Paul Warren. .PP Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \*(L"Software\*(R"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. .PP \&\s-1THE SOFTWARE IS PROVIDED \*(L"AS IS\*(R", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \s0 .SH "SEE ALSO" .IX Header "SEE ALSO" RFC::RFC822::Address, Mail::Address man3/URI::Escape.3pm000044400000023115147645265660010014 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "URI::Escape 3" .TH URI::Escape 3 "2019-01-09" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" URI::Escape \- Percent\-encode and percent\-decode unsafe characters .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 4 \& use URI::Escape; \& $safe = uri_escape("10% is enough\en"); \& $verysafe = uri_escape("foo", "\e0\-\e377"); \& $str = uri_unescape($safe); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This module provides functions to percent-encode and percent-decode \s-1URI\s0 strings as defined by \s-1RFC 3986.\s0 Percent-encoding \s-1URI\s0's is informally called \*(L"\s-1URI\s0 escaping\*(R". This is the terminology used by this module, which predates the formalization of the terms by the \s-1RFC\s0 by several years. .PP A \s-1URI\s0 consists of a restricted set of characters. The restricted set of characters consists of digits, letters, and a few graphic symbols chosen from those common to most of the character encodings and input facilities available to Internet users. They are made up of the \&\*(L"unreserved\*(R" and \*(L"reserved\*(R" character sets as defined in \s-1RFC 3986.\s0 .PP .Vb 4 \& unreserved = ALPHA / DIGIT / "\-" / "." / "_" / "~" \& reserved = ":" / "/" / "?" / "#" / "[" / "]" / "@" \& "!" / "$" / "&" / "\*(Aq" / "(" / ")" \& / "*" / "+" / "," / ";" / "=" .Ve .PP In addition, any byte (octet) can be represented in a \s-1URI\s0 by an escape sequence: a triplet consisting of the character \*(L"%\*(R" followed by two hexadecimal digits. A byte can also be represented directly by a character, using the US-ASCII character for that octet. .PP Some of the characters are \fIreserved\fR for use as delimiters or as part of certain \s-1URI\s0 components. These must be escaped if they are to be treated as ordinary data. Read \s-1RFC 3986\s0 for further details. .PP The functions provided (and exported by default) from this module are: .ie n .IP "uri_escape( $string )" 4 .el .IP "uri_escape( \f(CW$string\fR )" 4 .IX Item "uri_escape( $string )" .PD 0 .ie n .IP "uri_escape( $string, $unsafe )" 4 .el .IP "uri_escape( \f(CW$string\fR, \f(CW$unsafe\fR )" 4 .IX Item "uri_escape( $string, $unsafe )" .PD Replaces each unsafe character in the \f(CW$string\fR with the corresponding escape sequence and returns the result. The \f(CW$string\fR argument should be a string of bytes. The \fIuri_escape()\fR function will croak if given a characters with code above 255. Use \fIuri_escape_utf8()\fR if you know you have such chars or/and want chars in the 128 .. 255 range treated as \&\s-1UTF\-8.\s0 .Sp The \fIuri_escape()\fR function takes an optional second argument that overrides the set of characters that are to be escaped. The set is specified as a string that can be used in a regular expression character class (between [ ]). E.g.: .Sp .Vb 3 \& "\ex00\-\ex1f\ex7f\-\exff" # all control and hi\-bit characters \& "a\-z" # all lower case characters \& "^A\-Za\-z" # everything not a letter .Ve .Sp The default set of characters to be escaped is all those which are \&\fInot\fR part of the \f(CW\*(C`unreserved\*(C'\fR character class shown above as well as the reserved characters. I.e. the default is: .Sp .Vb 1 \& "^A\-Za\-z0\-9\e\-\e._~" .Ve .ie n .IP "uri_escape_utf8( $string )" 4 .el .IP "uri_escape_utf8( \f(CW$string\fR )" 4 .IX Item "uri_escape_utf8( $string )" .PD 0 .ie n .IP "uri_escape_utf8( $string, $unsafe )" 4 .el .IP "uri_escape_utf8( \f(CW$string\fR, \f(CW$unsafe\fR )" 4 .IX Item "uri_escape_utf8( $string, $unsafe )" .PD Works like \fIuri_escape()\fR, but will encode chars as \s-1UTF\-8\s0 before escaping them. This makes this function able to deal with characters with code above 255 in \f(CW$string\fR. Note that chars in the 128 .. 255 range will be escaped differently by this function compared to what \&\fIuri_escape()\fR would. For chars in the 0 .. 127 range there is no difference. .Sp Equivalent to: .Sp .Vb 2 \& utf8::encode($string); \& my $uri = uri_escape($string); .Ve .Sp Note: JavaScript has a function called \fIescape()\fR that produces the sequence \*(L"%uXXXX\*(R" for chars in the 256 .. 65535 range. This function has really nothing to do with \s-1URI\s0 escaping but some folks got confused since it \*(L"does the right thing\*(R" in the 0 .. 255 range. Because of this you sometimes see \*(L"URIs\*(R" with these kind of escapes. The JavaScript \fIencodeURIComponent()\fR function is similar to \fIuri_escape_utf8()\fR. .IP "uri_unescape($string,...)" 4 .IX Item "uri_unescape($string,...)" Returns a string with each \f(CW%XX\fR sequence replaced with the actual byte (octet). .Sp This does the same as: .Sp .Vb 1 \& $string =~ s/%([0\-9A\-Fa\-f]{2})/chr(hex($1))/eg; .Ve .Sp but does not modify the string in-place as this \s-1RE\s0 would. Using the \&\fIuri_unescape()\fR function instead of the \s-1RE\s0 might make the code look cleaner and is a few characters less to type. .Sp In a simple benchmark test I did, calling the function (instead of the inline \s-1RE\s0 above) if a few chars were unescaped was something like 40% slower, and something like 700% slower if none were. If you are going to unescape a lot of times it might be a good idea to inline the \s-1RE.\s0 .Sp If the \fIuri_unescape()\fR function is passed multiple strings, then each one is returned unescaped. .PP The module can also export the \f(CW%escapes\fR hash, which contains the mapping from all 256 bytes to the corresponding escape codes. Lookup in this hash is faster than evaluating \f(CW\*(C`sprintf("%%%02X", ord($byte))\*(C'\fR each time. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\s-1URI\s0 .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 1995\-2004 Gisle Aas. .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. man3/Test2::Event::Ok.3pm000044400000013304147645265660010714 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test2::Event::Ok 3" .TH Test2::Event::Ok 3 "2019-09-06" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test2::Event::Ok \- Ok event type .SH "DESCRIPTION" .IX Header "DESCRIPTION" Ok events are generated whenever you run a test that produces a result. Examples are \f(CW\*(C`ok()\*(C'\fR, and \f(CW\*(C`is()\*(C'\fR. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& use Test2::API qw/context/; \& use Test2::Event::Ok; \& \& my $ctx = context(); \& my $event = $ctx\->ok($bool, $name, \e@diag); .Ve .PP or: .PP .Vb 6 \& my $ctx = context(); \& my $event = $ctx\->send_event( \& \*(AqOk\*(Aq, \& pass => $bool, \& name => $name, \& ); .Ve .SH "ACCESSORS" .IX Header "ACCESSORS" .ie n .IP "$rb = $e\->pass" 4 .el .IP "\f(CW$rb\fR = \f(CW$e\fR\->pass" 4 .IX Item "$rb = $e->pass" The original true/false value of whatever was passed into the event (but reduced down to 1 or 0). .ie n .IP "$name = $e\->name" 4 .el .IP "\f(CW$name\fR = \f(CW$e\fR\->name" 4 .IX Item "$name = $e->name" Name of the test. .ie n .IP "$b = $e\->effective_pass" 4 .el .IP "\f(CW$b\fR = \f(CW$e\fR\->effective_pass" 4 .IX Item "$b = $e->effective_pass" This is the true/false value of the test after \s-1TODO\s0 and similar modifiers are taken into account. .SH "SOURCE" .IX Header "SOURCE" The source code repository for Test2 can be found at \&\fIhttp://github.com/Test\-More/test\-more/\fR. .SH "MAINTAINERS" .IX Header "MAINTAINERS" .IP "Chad Granum " 4 .IX Item "Chad Granum " .SH "AUTHORS" .IX Header "AUTHORS" .PD 0 .IP "Chad Granum " 4 .IX Item "Chad Granum " .PD .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2019 Chad Granum . .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP See \fIhttp://dev.perl.org/licenses/\fR man3/Test::Output.3pm000044400000041232147645265660010374 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test::Output 3" .TH Test::Output 3 "2017-03-29" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test::Output \- Utilities to test STDOUT and STDERR messages. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& use Test::More tests => 4; \& use Test::Output; \& \& sub writer { \& print "Write out.\en"; \& print STDERR "Error out.\en"; \& } \& \& stdout_is(\e&writer,"Write out.\en",\*(AqTest STDOUT\*(Aq); \& \& stderr_isnt(\e&writer,"No error out.\en",\*(AqTest STDERR\*(Aq); \& \& combined_is( \& \e&writer, \& "Write out.\enError out.\en", \& \*(AqTest STDOUT & STDERR combined\*(Aq \& ); \& \& output_is( \& \e&writer, \& "Write out.\en", \& "Error out.\en", \& \*(AqTest STDOUT & STDERR\*(Aq \& ); \& \& # Use bare blocks. \& \& stdout_is { print "test" } "test", "Test STDOUT"; \& stderr_isnt { print "bad test" } "test", "Test STDERR"; \& output_is { print \*(AqSTDOUT\*(Aq; print STDERR \*(AqSTDERR\*(Aq } \& "STDOUT", "STDERR", "Test output"; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Test::Output provides a simple interface for testing output sent to \f(CW\*(C`STDOUT\*(C'\fR or \f(CW\*(C`STDERR\*(C'\fR. A number of different utilities are included to try and be as flexible as possible to the tester. .PP Likewise, Capture::Tiny provides a much more robust capture mechanism without than the original Test::Output::Tie. .SH "TESTS" .IX Header "TESTS" .SS "\s-1STDOUT\s0" .IX Subsection "STDOUT" .IP "\fBstdout_is\fR" 4 .IX Item "stdout_is" .PD 0 .IP "\fBstdout_isnt\fR" 4 .IX Item "stdout_isnt" .PD .Vb 4 \& stdout_is ( $coderef, $expected, \*(Aqdescription\*(Aq ); \& stdout_is { ... } $expected, \*(Aqdescription\*(Aq; \& stdout_isnt( $coderef, $expected, \*(Aqdescription\*(Aq ); \& stdout_isnt { ... } $expected, \*(Aqdescription\*(Aq; .Ve .Sp \&\f(CW\*(C`stdout_is()\*(C'\fR captures output sent to \f(CW\*(C`STDOUT\*(C'\fR from \f(CW$coderef\fR and compares it against \f(CW$expected\fR. The test passes if equal. .Sp \&\f(CW\*(C`stdout_isnt()\*(C'\fR passes if \f(CW\*(C`STDOUT\*(C'\fR is not equal to \f(CW$expected\fR. .IP "\fBstdout_like\fR" 4 .IX Item "stdout_like" .PD 0 .IP "\fBstdout_unlike\fR" 4 .IX Item "stdout_unlike" .PD .Vb 4 \& stdout_like ( $coderef, qr/$expected/, \*(Aqdescription\*(Aq ); \& stdout_like { ... } qr/$expected/, \*(Aqdescription\*(Aq; \& stdout_unlike( $coderef, qr/$expected/, \*(Aqdescription\*(Aq ); \& stdout_unlike { ... } qr/$expected/, \*(Aqdescription\*(Aq; .Ve .Sp \&\f(CW\*(C`stdout_like()\*(C'\fR captures the output sent to \f(CW\*(C`STDOUT\*(C'\fR from \f(CW$coderef\fR and compares it to the regex in \f(CW$expected\fR. The test passes if the regex matches. .Sp \&\f(CW\*(C`stdout_unlike()\*(C'\fR passes if \s-1STDOUT\s0 does not match the regex. .SS "\s-1STDERR\s0" .IX Subsection "STDERR" .IP "\fBstderr_is\fR" 4 .IX Item "stderr_is" .PD 0 .IP "\fBstderr_isnt\fR" 4 .IX Item "stderr_isnt" .PD .Vb 2 \& stderr_is ( $coderef, $expected, \*(Aqdescription\*(Aq ); \& stderr_is {... } $expected, \*(Aqdescription\*(Aq; \& \& stderr_isnt( $coderef, $expected, \*(Aqdescription\*(Aq ); \& stderr_isnt {... } $expected, \*(Aqdescription\*(Aq; .Ve .Sp \&\f(CW\*(C`stderr_is()\*(C'\fR is similar to \f(CW\*(C`stdout_is\*(C'\fR, except that it captures \f(CW\*(C`STDERR\*(C'\fR. The test passes if \f(CW\*(C`STDERR\*(C'\fR from \f(CW$coderef\fR equals \f(CW$expected\fR. .Sp \&\f(CW\*(C`stderr_isnt()\*(C'\fR passes if \f(CW\*(C`STDERR\*(C'\fR is not equal to \f(CW$expected\fR. .IP "\fBstderr_like\fR" 4 .IX Item "stderr_like" .PD 0 .IP "\fBstderr_unlike\fR" 4 .IX Item "stderr_unlike" .PD .Vb 4 \& stderr_like ( $coderef, qr/$expected/, \*(Aqdescription\*(Aq ); \& stderr_like { ...} qr/$expected/, \*(Aqdescription\*(Aq; \& stderr_unlike( $coderef, qr/$expected/, \*(Aqdescription\*(Aq ); \& stderr_unlike { ...} qr/$expected/, \*(Aqdescription\*(Aq; .Ve .Sp \&\f(CW\*(C`stderr_like()\*(C'\fR is similar to \f(CW\*(C`stdout_like()\*(C'\fR except that it compares the regex \&\f(CW$expected\fR to \f(CW\*(C`STDERR\*(C'\fR captured from \f(CW$codref\fR. The test passes if the regex matches. .Sp \&\f(CW\*(C`stderr_unlike()\*(C'\fR passes if \f(CW\*(C`STDERR\*(C'\fR does not match the regex. .SS "\s-1COMBINED OUTPUT\s0" .IX Subsection "COMBINED OUTPUT" .IP "\fBcombined_is\fR" 4 .IX Item "combined_is" .PD 0 .IP "\fBcombined_isnt\fR" 4 .IX Item "combined_isnt" .PD .Vb 4 \& combined_is ( $coderef, $expected, \*(Aqdescription\*(Aq ); \& combined_is {... } $expected, \*(Aqdescription\*(Aq; \& combined_isnt ( $coderef, $expected, \*(Aqdescription\*(Aq ); \& combined_isnt {... } $expected, \*(Aqdescription\*(Aq; .Ve .Sp \&\f(CW\*(C`combined_is()\*(C'\fR directs \f(CW\*(C`STDERR\*(C'\fR to \f(CW\*(C`STDOUT\*(C'\fR then captures \f(CW\*(C`STDOUT\*(C'\fR. This is equivalent to UNIXs \f(CW\*(C`2>&1\*(C'\fR. The test passes if the combined \f(CW\*(C`STDOUT\*(C'\fR and \f(CW\*(C`STDERR\*(C'\fR from \f(CW$coderef\fR equals \f(CW$expected\fR. .Sp \&\f(CW\*(C`combined_isnt()\*(C'\fR passes if combined \f(CW\*(C`STDOUT\*(C'\fR and \f(CW\*(C`STDERR\*(C'\fR are not equal to \f(CW$expected\fR. .IP "\fBcombined_like\fR" 4 .IX Item "combined_like" .PD 0 .IP "\fBcombined_unlike\fR" 4 .IX Item "combined_unlike" .PD .Vb 4 \& combined_like ( $coderef, qr/$expected/, \*(Aqdescription\*(Aq ); \& combined_like { ...} qr/$expected/, \*(Aqdescription\*(Aq; \& combined_unlike ( $coderef, qr/$expected/, \*(Aqdescription\*(Aq ); \& combined_unlike { ...} qr/$expected/, \*(Aqdescription\*(Aq; .Ve .Sp \&\f(CW\*(C`combined_like()\*(C'\fR is similar to \f(CW\*(C`combined_is()\*(C'\fR except that it compares a regex (\f(CW\*(C`$expected)\*(C'\fR to \f(CW\*(C`STDOUT\*(C'\fR and \f(CW\*(C`STDERR\*(C'\fR captured from \f(CW$codref\fR. The test passes if the regex matches. .Sp \&\f(CW\*(C`combined_unlike()\*(C'\fR passes if the combined \f(CW\*(C`STDOUT\*(C'\fR and \f(CW\*(C`STDERR\*(C'\fR does not match the regex. .SS "\s-1OUTPUT\s0" .IX Subsection "OUTPUT" .IP "\fBoutput_is\fR" 4 .IX Item "output_is" .PD 0 .IP "\fBoutput_isnt\fR" 4 .IX Item "output_isnt" .PD .Vb 4 \& output_is ( $coderef, $expected_stdout, $expected_stderr, \*(Aqdescription\*(Aq ); \& output_is {... } $expected_stdout, $expected_stderr, \*(Aqdescription\*(Aq; \& output_isnt( $coderef, $expected_stdout, $expected_stderr, \*(Aqdescription\*(Aq ); \& output_isnt {... } $expected_stdout, $expected_stderr, \*(Aqdescription\*(Aq; .Ve .Sp The \f(CW\*(C`output_is()\*(C'\fR function is a combination of the \f(CW\*(C`stdout_is()\*(C'\fR and \f(CW\*(C`stderr_is()\*(C'\fR functions. For example: .Sp .Vb 1 \& output_is(sub {print "foo"; print STDERR "bar";},\*(Aqfoo\*(Aq,\*(Aqbar\*(Aq); .Ve .Sp is functionally equivalent to .Sp .Vb 2 \& stdout_is(sub {print "foo";},\*(Aqfoo\*(Aq) \& && stderr_is(sub {print STDERR "bar";\*(Aqbar\*(Aq); .Ve .Sp except that \f(CW$coderef\fR is only executed once. .Sp Unlike \f(CW\*(C`stdout_is()\*(C'\fR and \f(CW\*(C`stderr_is()\*(C'\fR which ignore \s-1STDERR\s0 and \s-1STDOUT\s0 respectively, \f(CW\*(C`output_is()\*(C'\fR requires both \f(CW\*(C`STDOUT\*(C'\fR and \f(CW\*(C`STDERR\*(C'\fR to match in order to pass. Setting either \f(CW$expected_stdout\fR or \f(CW$expected_stderr\fR to \f(CW\*(C`undef\*(C'\fR ignores \f(CW\*(C`STDOUT\*(C'\fR or \f(CW\*(C`STDERR\*(C'\fR respectively. .Sp .Vb 1 \& output_is(sub {print "foo"; print STDERR "bar";},\*(Aqfoo\*(Aq,undef); .Ve .Sp is the same as .Sp .Vb 1 \& stdout_is(sub {print "foo";},\*(Aqfoo\*(Aq) .Ve .Sp \&\f(CW\*(C`output_isnt()\*(C'\fR provides the opposite function of \f(CW\*(C`output_is()\*(C'\fR. It is a combination of \f(CW\*(C`stdout_isnt()\*(C'\fR and \f(CW\*(C`stderr_isnt()\*(C'\fR. .Sp .Vb 1 \& output_isnt(sub {print "foo"; print STDERR "bar";},\*(Aqbar\*(Aq,\*(Aqfoo\*(Aq); .Ve .Sp is functionally equivalent to .Sp .Vb 2 \& stdout_is(sub {print "foo";},\*(Aqbar\*(Aq) \& && stderr_is(sub {print STDERR "bar";\*(Aqfoo\*(Aq); .Ve .Sp As with \f(CW\*(C`output_is()\*(C'\fR, setting either \f(CW$expected_stdout\fR or \f(CW$expected_stderr\fR to \&\f(CW\*(C`undef\*(C'\fR ignores the output to that facility. .Sp .Vb 1 \& output_isnt(sub {print "foo"; print STDERR "bar";},undef,\*(Aqfoo\*(Aq); .Ve .Sp is the same as .Sp .Vb 1 \& stderr_is(sub {print STDERR "bar";},\*(Aqfoo\*(Aq) .Ve .IP "\fBoutput_like\fR" 4 .IX Item "output_like" .PD 0 .IP "\fBoutput_unlike\fR" 4 .IX Item "output_unlike" .PD .Vb 4 \& output_like ( $coderef, $regex_stdout, $regex_stderr, \*(Aqdescription\*(Aq ); \& output_like { ... } $regex_stdout, $regex_stderr, \*(Aqdescription\*(Aq; \& output_unlike( $coderef, $regex_stdout, $regex_stderr, \*(Aqdescription\*(Aq ); \& output_unlike { ... } $regex_stdout, $regex_stderr, \*(Aqdescription\*(Aq; .Ve .Sp \&\f(CW\*(C`output_like()\*(C'\fR and \f(CW\*(C`output_unlike()\*(C'\fR follow the same principles as \f(CW\*(C`output_is()\*(C'\fR and \f(CW\*(C`output_isnt()\*(C'\fR except they use a regular expression for matching. .Sp \&\f(CW\*(C`output_like()\*(C'\fR attempts to match \f(CW$regex_stdout\fR and \f(CW$regex_stderr\fR against \&\f(CW\*(C`STDOUT\*(C'\fR and \f(CW\*(C`STDERR\*(C'\fR produced by \f(CW$coderef\fR. The test passes if both match. .Sp .Vb 1 \& output_like(sub {print "foo"; print STDERR "bar";},qr/foo/,qr/bar/); .Ve .Sp The above test is successful. .Sp Like \f(CW\*(C`output_is()\*(C'\fR, setting either \f(CW$regex_stdout\fR or \f(CW$regex_stderr\fR to \&\f(CW\*(C`undef\*(C'\fR ignores the output to that facility. .Sp .Vb 1 \& output_like(sub {print "foo"; print STDERR "bar";},qr/foo/,undef); .Ve .Sp is the same as .Sp .Vb 1 \& stdout_like(sub {print "foo"; print STDERR "bar";},qr/foo/); .Ve .Sp \&\f(CW\*(C`output_unlike()\*(C'\fR test pass if output from \f(CW$coderef\fR doesn't match \&\f(CW$regex_stdout\fR and \f(CW$regex_stderr\fR. .SH "EXPORTS" .IX Header "EXPORTS" By default, all subroutines are exported by default. .IP "\(bu" 4 :stdout \- the subs with \f(CW\*(C`stdout\*(C'\fR in the name. .IP "\(bu" 4 :stderr \- the subs with \f(CW\*(C`stderr\*(C'\fR in the name. .IP "\(bu" 4 :functions \- the subs with \f(CW\*(C`_from\*(C'\fR at the end. .IP "\(bu" 4 :output \- the subs with \f(CW\*(C`output\*(C'\fR in the name. .IP "\(bu" 4 :combined \- the subs with \f(CW\*(C`combined\*(C'\fR in the name. .IP "\(bu" 4 :tests \- everything that outputs \s-1TAP\s0 .IP "\(bu" 4 :all \- everything (which is the same as the default) .SH "FUNCTIONS" .IX Header "FUNCTIONS" .SS "stdout_from" .IX Subsection "stdout_from" .Vb 2 \& my $stdout = stdout_from($coderef) \& my $stdout = stdout_from { ... }; .Ve .PP \&\fIstdout_from()\fR executes \f(CW$coderef\fR and captures \s-1STDOUT.\s0 .SS "stderr_from" .IX Subsection "stderr_from" .Vb 2 \& my $stderr = stderr_from($coderef) \& my $stderr = stderr_from { ... }; .Ve .PP \&\f(CW\*(C`stderr_from()\*(C'\fR executes \f(CW$coderef\fR and captures \f(CW\*(C`STDERR\*(C'\fR. .SS "output_from" .IX Subsection "output_from" .Vb 2 \& my ($stdout, $stderr) = output_from($coderef) \& my ($stdout, $stderr) = output_from {...}; .Ve .PP \&\f(CW\*(C`output_from()\*(C'\fR executes \f(CW$coderef\fR one time capturing both \f(CW\*(C`STDOUT\*(C'\fR and \f(CW\*(C`STDERR\*(C'\fR. .SS "combined_from" .IX Subsection "combined_from" .Vb 2 \& my $combined = combined_from($coderef); \& my $combined = combined_from {...}; .Ve .PP \&\f(CW\*(C`combined_from()\*(C'\fR executes \f(CW$coderef\fR one time combines \f(CW\*(C`STDOUT\*(C'\fR and \f(CW\*(C`STDERR\*(C'\fR, and captures them. \f(CW\*(C`combined_from()\*(C'\fR is equivalent to using \f(CW\*(C`2>&1\*(C'\fR in \s-1UNIX.\s0 .SH "AUTHOR" .IX Header "AUTHOR" Currently maintained by brian d foy, \f(CW\*(C`bdfoy@cpan.org\*(C'\fR. .PP Shawn Sorichetti, \f(CW\*(C`\*(C'\fR .SH "SOURCE AVAILABILITY" .IX Header "SOURCE AVAILABILITY" This module is in Github: .PP .Vb 1 \& http://github.com/briandfoy/test\-output/tree/master .Ve .SH "BUGS" .IX Header "BUGS" Please report any bugs or feature requests to \&\f(CW\*(C`bug\-test\-output@rt.cpan.org\*(C'\fR, or through the web interface at . I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. .SH "ACKNOWLEDGEMENTS" .IX Header "ACKNOWLEDGEMENTS" Thanks to chromatic whose TieOut.pm was the basis for capturing output. .PP Also thanks to rjbs for his help cleaning the documentation, and pushing me to Sub::Exporter. (This feature has been removed since it uses none of Sub::Exporter's strengths). .PP Thanks to David Wheeler for providing code block support and tests. .PP Thanks to Michael G Schwern for the solution to combining \f(CW\*(C`STDOUT\*(C'\fR and \f(CW\*(C`STDERR\*(C'\fR. .SH "COPYRIGHT & LICENSE" .IX Header "COPYRIGHT & LICENSE" Copyright 2005\-2013 Shawn Sorichetti, All Rights Reserved. .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. man3/Test2::Event::Fail.3pm000044400000011664147645265660011225 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test2::Event::Fail 3" .TH Test2::Event::Fail 3 "2019-09-06" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test2::Event::Fail \- Event for a simple failed assertion .SH "DESCRIPTION" .IX Header "DESCRIPTION" This is an optimal representation of a failed assertion. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use Test2::API qw/context/; \& \& sub fail { \& my ($name) = @_; \& my $ctx = context(); \& $ctx\->fail($name); \& $ctx\->release; \& } .Ve .SH "SOURCE" .IX Header "SOURCE" The source code repository for Test2 can be found at \&\fIhttp://github.com/Test\-More/test\-more/\fR. .SH "MAINTAINERS" .IX Header "MAINTAINERS" .IP "Chad Granum " 4 .IX Item "Chad Granum " .SH "AUTHORS" .IX Header "AUTHORS" .PD 0 .IP "Chad Granum " 4 .IX Item "Chad Granum " .PD .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2019 Chad Granum . .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP See \fIhttp://dev.perl.org/licenses/\fR man3/WWW::Mechanize.3pm000044400000224377147645265660010561 0ustar00.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "WWW::Mechanize 3" .TH WWW::Mechanize 3 "2020-02-20" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" WWW::Mechanize \- Handy web browsing in a Perl object .SH "VERSION" .IX Header "VERSION" version 1.96 .SH "SYNOPSIS" .IX Header "SYNOPSIS" WWW::Mechanize supports performing a sequence of page fetches including following links and submitting forms. Each fetched page is parsed and its links and forms are extracted. A link or a form can be selected, form fields can be filled and the next page can be fetched. Mech also stores a history of the URLs you've visited, which can be queried and revisited. .PP .Vb 2 \& use WWW::Mechanize (); \& my $mech = WWW::Mechanize\->new(); \& \& $mech\->get( $url ); \& \& $mech\->follow_link( n => 3 ); \& $mech\->follow_link( text_regex => qr/download this/i ); \& $mech\->follow_link( url => \*(Aqhttp://host.com/index.html\*(Aq ); \& \& $mech\->submit_form( \& form_number => 3, \& fields => { \& username => \*(Aqmungo\*(Aq, \& password => \*(Aqlost\-and\-alone\*(Aq, \& } \& ); \& \& $mech\->submit_form( \& form_name => \*(Aqsearch\*(Aq, \& fields => { query => \*(Aqpot of gold\*(Aq, }, \& button => \*(AqSearch Now\*(Aq \& ); \& \& # Enable strict form processing to catch typos and non\-existant form fields. \& my $strict_mech = WWW::Mechanize\->new( strict_forms => 1); \& \& $strict_mech\->get( $url ); \& \& # This method call will die, saving you lots of time looking for the bug. \& $strict_mech\->submit_form( \& form_number => 3, \& fields => { \& usernaem => \*(Aqmungo\*(Aq, # typo in field name \& password => \*(Aqlost\-and\-alone\*(Aq, \& extra_field => 123, # field does not exist \& } \& ); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\f(CW\*(C`WWW::Mechanize\*(C'\fR, or Mech for short, is a Perl module for stateful programmatic web browsing, used for automating interaction with websites. .PP Features include: .IP "\(bu" 4 All \s-1HTTP\s0 methods .IP "\(bu" 4 High-level hyperlink and \s-1HTML\s0 form support, without having to parse \s-1HTML\s0 yourself .IP "\(bu" 4 \&\s-1SSL\s0 support .IP "\(bu" 4 Automatic cookies .IP "\(bu" 4 Custom \s-1HTTP\s0 headers .IP "\(bu" 4 Automatic handling of redirections .IP "\(bu" 4 Proxies .IP "\(bu" 4 \&\s-1HTTP\s0 authentication .PP Mech is well suited for use in testing web applications. If you use one of the Test::*, like Test::HTML::Lint modules, you can check the fetched content and use that as input to a test call. .PP .Vb 2 \& use Test::More; \& like( $mech\->content(), qr/$expected/, "Got expected content" ); .Ve .PP Each page fetch stores its \s-1URL\s0 in a history stack which you can traverse. .PP .Vb 1 \& $mech\->back(); .Ve .PP If you want finer control over your page fetching, you can use these methods. \f(CW\*(C`follow_link\*(C'\fR and \f(CW\*(C`submit_form\*(C'\fR are just high level wrappers around them. .PP .Vb 7 \& $mech\->find_link( n => $number ); \& $mech\->form_number( $number ); \& $mech\->form_name( $name ); \& $mech\->field( $name, $value ); \& $mech\->set_fields( %field_values ); \& $mech\->set_visible( @criteria ); \& $mech\->click( $button ); .Ve .PP WWW::Mechanize is a proper subclass of LWP::UserAgent and you can also use any of LWP::UserAgent's methods. .PP .Vb 1 \& $mech\->add_header($name => $value); .Ve .PP Please note that Mech does \s-1NOT\s0 support JavaScript, you need additional software for that. Please check \*(L"JavaScript\*(R" in WWW::Mechanize::FAQ for more. .SH "IMPORTANT LINKS" .IX Header "IMPORTANT LINKS" .IP "\(bu" 4 .Sp The queue for bugs & enhancements in WWW::Mechanize. Please note that the queue at is no longer maintained. .IP "\(bu" 4 .Sp The \s-1CPAN\s0 documentation page for Mechanize. .IP "\(bu" 4 .Sp Frequently asked questions. Make sure you read here \s-1FIRST.\s0 .SH "CONSTRUCTOR AND STARTUP" .IX Header "CONSTRUCTOR AND STARTUP" .SS "\fInew()\fP" .IX Subsection "new()" Creates and returns a new WWW::Mechanize object, hereafter referred to as the \*(L"agent\*(R". .PP .Vb 1 \& my $mech = WWW::Mechanize\->new() .Ve .PP The constructor for WWW::Mechanize overrides two of the parms to the LWP::UserAgent constructor: .PP .Vb 2 \& agent => \*(AqWWW\-Mechanize/#.##\*(Aq \& cookie_jar => {} # an empty, memory\-only HTTP::Cookies object .Ve .PP You can override these overrides by passing parms to the constructor, as in: .PP .Vb 1 \& my $mech = WWW::Mechanize\->new( agent => \*(Aqwonderbot 1.01\*(Aq ); .Ve .PP If you want none of the overhead of a cookie jar, or don't want your bot accepting cookies, you have to explicitly disallow it, like so: .PP .Vb 1 \& my $mech = WWW::Mechanize\->new( cookie_jar => undef ); .Ve .PP Here are the parms that WWW::Mechanize recognizes. These do not include parms that LWP::UserAgent recognizes. .IP "\(bu" 4 \&\f(CW\*(C`autocheck => [0|1]\*(C'\fR .Sp Checks each request made to see if it was successful. This saves you the trouble of manually checking yourself. Any errors found are errors, not warnings. .Sp The default value is \s-1ON,\s0 unless it's being subclassed, in which case it is \s-1OFF. \s0 This means that standalone WWW::Mechanize instances have autocheck turned on, which is protective for the vast majority of Mech users who don't bother checking the return value of \fIget()\fR and \fIpost()\fR and can't figure why their code fails. However, if WWW::Mechanize is subclassed, such as for Test::WWW::Mechanize or Test::WWW::Mechanize::Catalyst, this may not be an appropriate default, so it's off. .IP "\(bu" 4 \&\f(CW\*(C`noproxy => [0|1]\*(C'\fR .Sp Turn off the automatic call to the LWP::UserAgent \f(CW\*(C`env_proxy\*(C'\fR function. .Sp This needs to be explicitly turned off if you're using Crypt::SSLeay to access a https site via a proxy server. Note: you still need to set your \&\s-1HTTPS_PROXY\s0 environment variable as appropriate. .IP "\(bu" 4 \&\f(CW\*(C`onwarn => \e&func\*(C'\fR .Sp Reference to a \f(CW\*(C`warn\*(C'\fR\-compatible function, such as \f(CW\*(C`Carp::carp\*(C'\fR, that is called when a warning needs to be shown. .Sp If this is set to \f(CW\*(C`undef\*(C'\fR, no warnings will ever be shown. However, it's probably better to use the \f(CW\*(C`quiet\*(C'\fR method to control that behavior. .Sp If this value is not passed, Mech uses \f(CW\*(C`Carp::carp\*(C'\fR if Carp is installed, or \f(CW\*(C`CORE::warn\*(C'\fR if not. .IP "\(bu" 4 \&\f(CW\*(C`onerror => \e&func\*(C'\fR .Sp Reference to a \f(CW\*(C`die\*(C'\fR\-compatible function, such as \f(CW\*(C`Carp::croak\*(C'\fR, that is called when there's a fatal error. .Sp If this is set to \f(CW\*(C`undef\*(C'\fR, no errors will ever be shown. .Sp If this value is not passed, Mech uses \f(CW\*(C`Carp::croak\*(C'\fR if Carp is installed, or \f(CW\*(C`CORE::die\*(C'\fR if not. .IP "\(bu" 4 \&\f(CW\*(C`quiet => [0|1]\*(C'\fR .Sp Don't complain on warnings. Setting \f(CW\*(C`quiet => 1\*(C'\fR is the same as calling \f(CW\*(C`$mech\->quiet(1)\*(C'\fR. Default is off. .IP "\(bu" 4 \&\f(CW\*(C`stack_depth => $value\*(C'\fR .Sp Sets the depth of the page stack that keeps track of all the downloaded pages. Default is effectively infinite stack size. If the stack is eating up your memory, then set this to a smaller number, say 5 or 10. Setting this to zero means Mech will keep no history. .PP In addition, WWW::Mechanize also allows you to globally enable strict and verbose mode for form handling, which is done with HTML::Form. .IP "\(bu" 4 \&\f(CW\*(C`strict_forms => [0|1]\*(C'\fR .Sp Globally sets the HTML::Form strict flag which causes form submission to croak if any of the passed fields don't exist in the form, and/or a value doesn't exist in a select element. This can still be disabled in individual calls to \f(CW\*(C`submit_form()\*(C'\fR. .Sp Default is off. .IP "\(bu" 4 \&\f(CW\*(C`verbose_forms => [0|1]\*(C'\fR .Sp Globally sets the HTML::Form verbose flag which causes form submission to warn about any bad \s-1HTML\s0 form constructs found. This cannot be disabled later. .Sp Default is off. .PP To support forms, WWW::Mechanize's constructor pushes \s-1POST\s0 on to the agent's \f(CW\*(C`requests_redirectable\*(C'\fR list (see also LWP::UserAgent.) .ie n .SS "$mech\->agent_alias( $alias )" .el .SS "\f(CW$mech\fP\->agent_alias( \f(CW$alias\fP )" .IX Subsection "$mech->agent_alias( $alias )" Sets the user agent string to the expanded version from a table of actual user strings. \&\fI\f(CI$alias\fI\fR can be one of the following: .IP "\(bu" 4 Windows \s-1IE 6\s0 .IP "\(bu" 4 Windows Mozilla .IP "\(bu" 4 Mac Safari .IP "\(bu" 4 Mac Mozilla .IP "\(bu" 4 Linux Mozilla .IP "\(bu" 4 Linux Konqueror .PP then it will be replaced with a more interesting one. For instance, .PP .Vb 1 \& $mech\->agent_alias( \*(AqWindows IE 6\*(Aq ); .Ve .PP sets your User-Agent to .PP .Vb 1 \& Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) .Ve .PP The list of valid aliases can be returned from \f(CW\*(C`known_agent_aliases()\*(C'\fR. The current list is: .IP "\(bu" 4 Windows \s-1IE 6\s0 .IP "\(bu" 4 Windows Mozilla .IP "\(bu" 4 Mac Safari .IP "\(bu" 4 Mac Mozilla .IP "\(bu" 4 Linux Mozilla .IP "\(bu" 4 Linux Konqueror .SS "\fIknown_agent_aliases()\fP" .IX Subsection "known_agent_aliases()" Returns a list of all the agent aliases that Mech knows about. .SH "PAGE-FETCHING METHODS" .IX Header "PAGE-FETCHING METHODS" .ie n .SS "$mech\->get( $uri )" .el .SS "\f(CW$mech\fP\->get( \f(CW$uri\fP )" .IX Subsection "$mech->get( $uri )" Given a \s-1URL/URI,\s0 fetches it. Returns an HTTP::Response object. \&\fI\f(CI$uri\fI\fR can be a well-formed \s-1URL\s0 string, a \s-1URI\s0 object, or a WWW::Mechanize::Link object. .PP The results are stored internally in the agent object, but you don't know that. Just use the accessors listed below. Poking at the internals is deprecated and subject to change in the future. .PP \&\f(CW\*(C`get()\*(C'\fR is a well-behaved overloaded version of the method in LWP::UserAgent. This lets you do things like .PP .Vb 1 \& $mech\->get( $uri, \*(Aq:content_file\*(Aq => $tempfile ); .Ve .PP and you can rest assured that the parms will get filtered down appropriately. .PP \&\fB\s-1NOTE:\s0\fR Because \f(CW\*(C`:content_file\*(C'\fR causes the page contents to be stored in a file instead of the response object, some Mech functions that expect it to be there won't work as expected. Use with caution. .ie n .SS "$mech\->post( $uri, content => $content )" .el .SS "\f(CW$mech\fP\->post( \f(CW$uri\fP, content => \f(CW$content\fP )" .IX Subsection "$mech->post( $uri, content => $content )" POSTs \fI\f(CI$content\fI\fR to \f(CW$uri\fR. Returns an HTTP::Response object. \&\fI\f(CI$uri\fI\fR can be a well-formed \s-1URI\s0 string, a \s-1URI\s0 object, or a WWW::Mechanize::Link object. .ie n .SS "$mech\->put( $uri, content => $content )" .el .SS "\f(CW$mech\fP\->put( \f(CW$uri\fP, content => \f(CW$content\fP )" .IX Subsection "$mech->put( $uri, content => $content )" PUTs \fI\f(CI$content\fI\fR to \f(CW$uri\fR. Returns an HTTP::Response object. \&\fI\f(CI$uri\fI\fR can be a well-formed \s-1URI\s0 string, a \s-1URI\s0 object, or a WWW::Mechanize::Link object. .ie n .SS "$mech\->\fIreload()\fP" .el .SS "\f(CW$mech\fP\->\fIreload()\fP" .IX Subsection "$mech->reload()" Acts like the reload button in a browser: repeats the current request. The history (as per the \fIback()\fR method) is not altered. .PP Returns the HTTP::Response object from the reload, or \f(CW\*(C`undef\*(C'\fR if there's no current request. .ie n .SS "$mech\->\fIback()\fP" .el .SS "\f(CW$mech\fP\->\fIback()\fP" .IX Subsection "$mech->back()" The equivalent of hitting the \*(L"back\*(R" button in a browser. Returns to the previous page. Won't go back past the first page. (Really, what would it do if it could?) .PP Returns true if it could go back, or false if not. .ie n .SS "$mech\->\fIclear_history()\fP" .el .SS "\f(CW$mech\fP\->\fIclear_history()\fP" .IX Subsection "$mech->clear_history()" This deletes all the history entries and returns true. .ie n .SS "$mech\->\fIhistory_count()\fP" .el .SS "\f(CW$mech\fP\->\fIhistory_count()\fP" .IX Subsection "$mech->history_count()" This returns the number of items in the browser history. This number \fIdoes\fR include the most recently made request. .ie n .SS "$mech\->history($n)" .el .SS "\f(CW$mech\fP\->history($n)" .IX Subsection "$mech->history($n)" This returns the \fIn\fRth item in history. The 0th item is the most recent request and response, which would be acted on by methods like \&\f(CW\*(C`find_link()\*(C'\fR. The 1th item is the state you'd return to if you called \&\f(CW\*(C`back()\*(C'\fR. .PP The maximum useful value for \f(CW$n\fR is \f(CW\*(C`$mech\->history_count \- 1\*(C'\fR. Requests beyond that bound will return \f(CW\*(C`undef\*(C'\fR. .PP History items are returned as hash references, in the form: .PP .Vb 1 \& { req => $http_request, res => $http_response } .Ve .SH "STATUS METHODS" .IX Header "STATUS METHODS" .ie n .SS "$mech\->\fIsuccess()\fP" .el .SS "\f(CW$mech\fP\->\fIsuccess()\fP" .IX Subsection "$mech->success()" Returns a boolean telling whether the last request was successful. If there hasn't been an operation yet, returns false. .PP This is a convenience function that wraps \f(CW\*(C`$mech\->res\->is_success\*(C'\fR. .ie n .SS "$mech\->\fIuri()\fP" .el .SS "\f(CW$mech\fP\->\fIuri()\fP" .IX Subsection "$mech->uri()" Returns the current \s-1URI\s0 as a \s-1URI\s0 object. This object stringifies to the \s-1URI\s0 itself. .ie n .SS "$mech\->\fIresponse()\fP / $mech\->\fIres()\fP" .el .SS "\f(CW$mech\fP\->\fIresponse()\fP / \f(CW$mech\fP\->\fIres()\fP" .IX Subsection "$mech->response() / $mech->res()" Return the current response as an HTTP::Response object. .PP Synonym for \f(CW\*(C`$mech\->response()\*(C'\fR .ie n .SS "$mech\->\fIstatus()\fP" .el .SS "\f(CW$mech\fP\->\fIstatus()\fP" .IX Subsection "$mech->status()" Returns the \s-1HTTP\s0 status code of the response. This is a 3\-digit number like 200 for \s-1OK, 404\s0 for not found, and so on. .ie n .SS "$mech\->\fIct()\fP / $mech\->\fIcontent_type()\fP" .el .SS "\f(CW$mech\fP\->\fIct()\fP / \f(CW$mech\fP\->\fIcontent_type()\fP" .IX Subsection "$mech->ct() / $mech->content_type()" Returns the content type of the response. .ie n .SS "$mech\->\fIbase()\fP" .el .SS "\f(CW$mech\fP\->\fIbase()\fP" .IX Subsection "$mech->base()" Returns the base \s-1URI\s0 for the current response .ie n .SS "$mech\->\fIforms()\fP" .el .SS "\f(CW$mech\fP\->\fIforms()\fP" .IX Subsection "$mech->forms()" When called in a list context, returns a list of the forms found in the last fetched page. In a scalar context, returns a reference to an array with those forms. The forms returned are all HTML::Form objects. .ie n .SS "$mech\->\fIcurrent_form()\fP" .el .SS "\f(CW$mech\fP\->\fIcurrent_form()\fP" .IX Subsection "$mech->current_form()" Returns the current form as an HTML::Form object. .ie n .SS "$mech\->\fIlinks()\fP" .el .SS "\f(CW$mech\fP\->\fIlinks()\fP" .IX Subsection "$mech->links()" When called in a list context, returns a list of the links found in the last fetched page. In a scalar context it returns a reference to an array with those links. Each link is a WWW::Mechanize::Link object. .ie n .SS "$mech\->\fIis_html()\fP" .el .SS "\f(CW$mech\fP\->\fIis_html()\fP" .IX Subsection "$mech->is_html()" Returns true/false on whether our content is \s-1HTML,\s0 according to the \&\s-1HTTP\s0 headers. .ie n .SS "$mech\->\fItitle()\fP" .el .SS "\f(CW$mech\fP\->\fItitle()\fP" .IX Subsection "$mech->title()" Returns the contents of the \f(CW\*(C`\*(C'\fR tag, as parsed by HTML::HeadParser. Returns undef if the content is not \s-1HTML.\s0 .SH "CONTENT-HANDLING METHODS" .IX Header "CONTENT-HANDLING METHODS" .ie n .SS "$mech\->content(...)" .el .SS "\f(CW$mech\fP\->content(...)" .IX Subsection "$mech->content(...)" Returns the content that the mech uses internally for the last page fetched. Ordinarily this is the same as \&\f(CW\*(C`$mech\->response()\->decoded_content()\*(C'\fR, but this may differ for \s-1HTML\s0 documents if update_html is overloaded (in which case the value passed to the base-class implementation of same will be returned), and/or extra named arguments are passed to \fI\fIcontent()\fI\fR: .ie n .IP "\fI\fI$mech\fI\->content( format => 'text' )\fR" 2 .el .IP "\fI\f(CI$mech\fI\->content( format => 'text' )\fR" 2 .IX Item "$mech->content( format => 'text' )" Returns a text-only version of the page, with all \s-1HTML\s0 markup stripped. This feature requires \fIHTML::TreeBuilder\fR version 5 or higher to be installed, or a fatal error will be thrown. This works only if the contents are \s-1HTML.\s0 .ie n .IP "\fI\fI$mech\fI\->content( base_href => [$base_href|undef] )\fR" 2 .el .IP "\fI\f(CI$mech\fI\->content( base_href => [$base_href|undef] )\fR" 2 .IX Item "$mech->content( base_href => [$base_href|undef] )" Returns the \s-1HTML\s0 document, modified to contain a \&\f(CW\*(C`<base href="$base_href">\*(C'\fR mark-up in the header. \&\fI\f(CI$base_href\fI\fR is \f(CW\*(C`$mech\->base()\*(C'\fR if not specified. This is handy to pass the \s-1HTML\s0 to e.g. HTML::Display. This works only if the contents are \s-1HTML.\s0 .ie n .IP "\fI\fI$mech\fI\->content( raw => 1 )\fR" 2 .el .IP "\fI\f(CI$mech\fI\->content( raw => 1 )\fR" 2 .IX Item "$mech->content( raw => 1 )" Returns \f(CW\*(C`$self\->response()\->content()\*(C'\fR, i.e. the raw contents from the response. .ie n .IP "\fI\fI$mech\fI\->content( decoded_by_headers => 1 )\fR" 2 .el .IP "\fI\f(CI$mech\fI\->content( decoded_by_headers => 1 )\fR" 2 .IX Item "$mech->content( decoded_by_headers => 1 )" Returns the content after applying all \f(CW\*(C`Content\-Encoding\*(C'\fR headers but with not additional mangling. .ie n .IP "\fI\fI$mech\fI\->content( charset => \f(CI$charset\fI )\fR" 2 .el .IP "\fI\f(CI$mech\fI\->content( charset => \f(CI$charset\fI )\fR" 2 .IX Item "$mech->content( charset => $charset )" Returns \f(CW\*(C`$self\->response()\->decoded_content(charset => $charset)\*(C'\fR (see HTTP::Response for details). .PP To preserve backwards compatibility, additional parameters will be ignored unless none of \f(CW\*(C`raw | decoded_by_headers | charset\*(C'\fR is specified and the text is \s-1HTML,\s0 in which case an error will be triggered. .ie n .SS "$mech\->\fItext()\fP" .el .SS "\f(CW$mech\fP\->\fItext()\fP" .IX Subsection "$mech->text()" Returns the text of the current \s-1HTML\s0 content. If the content isn't \&\s-1HTML, \s0\f(CW$mech\fR will die. .PP The text is extracted by parsing the content, and then the extracted text is cached, so don't worry about performance of calling this repeatedly. .SH "LINK METHODS" .IX Header "LINK METHODS" .ie n .SS "$mech\->\fIlinks()\fP" .el .SS "\f(CW$mech\fP\->\fIlinks()\fP" .IX Subsection "$mech->links()" Lists all the links on the current page. Each link is a WWW::Mechanize::Link object. In list context, returns a list of all links. In scalar context, returns an array reference of all links. .ie n .SS "$mech\->follow_link(...)" .el .SS "\f(CW$mech\fP\->follow_link(...)" .IX Subsection "$mech->follow_link(...)" Follows a specified link on the page. You specify the match to be found using the same parms that \f(CW\*(C`find_link()\*(C'\fR uses. .PP Here some examples: .IP "\(bu" 4 3rd link called \*(L"download\*(R" .Sp .Vb 1 \& $mech\->follow_link( text => \*(Aqdownload\*(Aq, n => 3 ); .Ve .IP "\(bu" 4 first link where the \s-1URL\s0 has \*(L"download\*(R" in it, regardless of case: .Sp .Vb 1 \& $mech\->follow_link( url_regex => qr/download/i ); .Ve .Sp or .Sp .Vb 1 \& $mech\->follow_link( url_regex => qr/(?i:download)/ ); .Ve .IP "\(bu" 4 3rd link on the page .Sp .Vb 1 \& $mech\->follow_link( n => 3 ); .Ve .IP "\(bu" 4 the link with the url .Sp .Vb 1 \& $mech\->follow_link( url => \*(Aq/other/page\*(Aq ); .Ve .Sp or .Sp .Vb 1 \& $mech\->follow_link( url => \*(Aqhttp://example.com/page\*(Aq ); .Ve .PP Returns the result of the \f(CW\*(C`GET\*(C'\fR method (an HTTP::Response object) if a link was found. .PP If the page has no links, or the specified link couldn't be found, returns \&\f(CW\*(C`undef\*(C'\fR. If \f(CW\*(C`autocheck\*(C'\fR is enabled an exception will be thrown instead. .ie n .SS "$mech\->find_link( ... )" .el .SS "\f(CW$mech\fP\->find_link( ... )" .IX Subsection "$mech->find_link( ... )" Finds a link in the currently fetched page. It returns a WWW::Mechanize::Link object which describes the link. (You'll probably be most interested in the \f(CW\*(C`url()\*(C'\fR property.) If it fails to find a link it returns undef. .PP You can take the \s-1URL\s0 part and pass it to the \f(CW\*(C`get()\*(C'\fR method. If that's your plan, you might as well use the \f(CW\*(C`follow_link()\*(C'\fR method directly, since it does the \f(CW\*(C`get()\*(C'\fR for you automatically. .PP Note that \f(CW\*(C`<FRAME SRC="...">\*(C'\fR tags are parsed out of the the \s-1HTML\s0 and treated as links so this method works with them. .PP You can select which link to find by passing in one or more of these key/value pairs: .IP "\(bu" 4 \&\f(CW\*(C`text => \*(Aqstring\*(Aq,\*(C'\fR and \f(CW\*(C`text_regex => qr/regex/,\*(C'\fR .Sp \&\f(CW\*(C`text\*(C'\fR matches the text of the link against \fIstring\fR, which must be an exact match. To select a link with text that is exactly \*(L"download\*(R", use .Sp .Vb 1 \& $mech\->find_link( text => \*(Aqdownload\*(Aq ); .Ve .Sp \&\f(CW\*(C`text_regex\*(C'\fR matches the text of the link against \fIregex\fR. To select a link with text that has \*(L"download\*(R" anywhere in it, regardless of case, use .Sp .Vb 1 \& $mech\->find_link( text_regex => qr/download/i ); .Ve .Sp Note that the text extracted from the page's links are trimmed. For example, \f(CW\*(C`<a> foo </a>\*(C'\fR is stored as 'foo', and searching for leading or trailing spaces will fail. .IP "\(bu" 4 \&\f(CW\*(C`url => \*(Aqstring\*(Aq,\*(C'\fR and \f(CW\*(C`url_regex => qr/regex/,\*(C'\fR .Sp Matches the \s-1URL\s0 of the link against \fIstring\fR or \fIregex\fR, as appropriate. The \s-1URL\s0 may be a relative \s-1URL,\s0 like \fIfoo/bar.html\fR, depending on how it's coded on the page. .IP "\(bu" 4 \&\f(CW\*(C`url_abs => string\*(C'\fR and \f(CW\*(C`url_abs_regex => regex\*(C'\fR .Sp Matches the absolute \s-1URL\s0 of the link against \fIstring\fR or \fIregex\fR, as appropriate. The \s-1URL\s0 will be an absolute \s-1URL,\s0 even if it's relative in the page. .IP "\(bu" 4 \&\f(CW\*(C`name => string\*(C'\fR and \f(CW\*(C`name_regex => regex\*(C'\fR .Sp Matches the name of the link against \fIstring\fR or \fIregex\fR, as appropriate. .IP "\(bu" 4 \&\f(CW\*(C`id => string\*(C'\fR and \f(CW\*(C`id_regex => regex\*(C'\fR .Sp Matches the attribute 'id' of the link against \fIstring\fR or \&\fIregex\fR, as appropriate. .IP "\(bu" 4 \&\f(CW\*(C`class => string\*(C'\fR and \f(CW\*(C`class_regex => regex\*(C'\fR .Sp Matches the attribute 'class' of the link against \fIstring\fR or \&\fIregex\fR, as appropriate. .IP "\(bu" 4 \&\f(CW\*(C`tag => string\*(C'\fR and \f(CW\*(C`tag_regex => regex\*(C'\fR .Sp Matches the tag that the link came from against \fIstring\fR or \fIregex\fR, as appropriate. The \f(CW\*(C`tag_regex\*(C'\fR is probably most useful to check for more than one tag, as in: .Sp .Vb 1 \& $mech\->find_link( tag_regex => qr/^(a|frame)$/ ); .Ve .Sp The tags and attributes looked at are defined below. .PP If \f(CW\*(C`n\*(C'\fR is not specified, it defaults to 1. Therefore, if you don't specify any parms, this method defaults to finding the first link on the page. .PP Note that you can specify multiple text or \s-1URL\s0 parameters, which will be ANDed together. For example, to find the first link with text of \*(L"News\*(R" and with \*(L"cnn.com\*(R" in the \s-1URL,\s0 use: .PP .Vb 1 \& $mech\->find_link( text => \*(AqNews\*(Aq, url_regex => qr/cnn\e.com/ ); .Ve .PP The return value is a reference to an array containing a WWW::Mechanize::Link object for every link in \f(CW\*(C`$self\->content\*(C'\fR. .PP The links come from the following: .ie n .IP """<a href=...>""" 4 .el .IP "\f(CW<a href=...>\fR" 4 .IX Item "<a href=...>" .PD 0 .ie n .IP """<area href=...>""" 4 .el .IP "\f(CW<area href=...>\fR" 4 .IX Item "<area href=...>" .ie n .IP """<frame src=...>""" 4 .el .IP "\f(CW<frame src=...>\fR" 4 .IX Item "<frame src=...>" .ie n .IP """<iframe src=...>""" 4 .el .IP "\f(CW<iframe src=...>\fR" 4 .IX Item "<iframe src=...>" .ie n .IP """<link href=...>""" 4 .el .IP "\f(CW<link href=...>\fR" 4 .IX Item "<link href=...>" .ie n .IP """<meta content=...>""" 4 .el .IP "\f(CW<meta content=...>\fR" 4 .IX Item "<meta content=...>" .PD .ie n .SS "$mech\->find_all_links( ... )" .el .SS "\f(CW$mech\fP\->find_all_links( ... )" .IX Subsection "$mech->find_all_links( ... )" Returns all the links on the current page that match the criteria. The method for specifying link criteria is the same as in \&\f(CW\*(C`find_link()\*(C'\fR. Each of the links returned is a WWW::Mechanize::Link object. .PP In list context, \f(CW\*(C`find_all_links()\*(C'\fR returns a list of the links. Otherwise, it returns a reference to the list of links. .PP \&\f(CW\*(C`find_all_links()\*(C'\fR with no parameters returns all links in the page. .ie n .SS "$mech\->find_all_inputs( ... criteria ... )" .el .SS "\f(CW$mech\fP\->find_all_inputs( ... criteria ... )" .IX Subsection "$mech->find_all_inputs( ... criteria ... )" \&\fIfind_all_inputs()\fR returns an array of all the input controls in the current form whose properties match all of the regexes passed in. The controls returned are all descended from HTML::Form::Input. See \*(L"\s-1INPUTS\*(R"\s0 in HTML::Form for details. .PP If no criteria are passed, all inputs will be returned. .PP If there is no current page, there is no form on the current page, or there are no submit controls in the current form then the return will be an empty array. .PP You may use a regex or a literal string: .PP .Vb 5 \& # get all textarea controls whose names begin with "customer" \& my @customer_text_inputs = $mech\->find_all_inputs( \& type => \*(Aqtextarea\*(Aq, \& name_regex => qr/^customer/, \& ); \& \& # get all text or textarea controls called "customer" \& my @customer_text_inputs = $mech\->find_all_inputs( \& type_regex => qr/^(text|textarea)$/, \& name => \*(Aqcustomer\*(Aq, \& ); .Ve .ie n .SS "$mech\->find_all_submits( ... criteria ... )" .el .SS "\f(CW$mech\fP\->find_all_submits( ... criteria ... )" .IX Subsection "$mech->find_all_submits( ... criteria ... )" \&\f(CW\*(C`find_all_submits()\*(C'\fR does the same thing as \f(CW\*(C`find_all_inputs()\*(C'\fR except that it only returns controls that are submit controls, ignoring other types of input controls like text and checkboxes. .SH "IMAGE METHODS" .IX Header "IMAGE METHODS" .ie n .SS "$mech\->images" .el .SS "\f(CW$mech\fP\->images" .IX Subsection "$mech->images" Lists all the images on the current page. Each image is a WWW::Mechanize::Image object. In list context, returns a list of all images. In scalar context, returns an array reference of all images. .ie n .SS "$mech\->\fIfind_image()\fP" .el .SS "\f(CW$mech\fP\->\fIfind_image()\fP" .IX Subsection "$mech->find_image()" Finds an image in the current page. It returns a WWW::Mechanize::Image object which describes the image. If it fails to find an image it returns undef. .PP You can select which image to find by passing in one or more of these key/value pairs: .IP "\(bu" 4 \&\f(CW\*(C`alt => \*(Aqstring\*(Aq\*(C'\fR and \f(CW\*(C`alt_regex => qr/regex/\*(C'\fR .Sp \&\f(CW\*(C`alt\*(C'\fR matches the \s-1ALT\s0 attribute of the image against \fIstring\fR, which must be an exact match. To select a image with an \s-1ALT\s0 tag that is exactly \*(L"download\*(R", use .Sp .Vb 1 \& $mech\->find_image( alt => \*(Aqdownload\*(Aq ); .Ve .Sp \&\f(CW\*(C`alt_regex\*(C'\fR matches the \s-1ALT\s0 attribute of the image against a regular expression. To select an image with an \s-1ALT\s0 attribute that has \*(L"download\*(R" anywhere in it, regardless of case, use .Sp .Vb 1 \& $mech\->find_image( alt_regex => qr/download/i ); .Ve .IP "\(bu" 4 \&\f(CW\*(C`url => \*(Aqstring\*(Aq\*(C'\fR and \f(CW\*(C`url_regex => qr/regex/\*(C'\fR .Sp Matches the \s-1URL\s0 of the image against \fIstring\fR or \fIregex\fR, as appropriate. The \s-1URL\s0 may be a relative \s-1URL,\s0 like \fIfoo/bar.html\fR, depending on how it's coded on the page. .IP "\(bu" 4 \&\f(CW\*(C`url_abs => string\*(C'\fR and \f(CW\*(C`url_abs_regex => regex\*(C'\fR .Sp Matches the absolute \s-1URL\s0 of the image against \fIstring\fR or \fIregex\fR, as appropriate. The \s-1URL\s0 will be an absolute \s-1URL,\s0 even if it's relative in the page. .IP "\(bu" 4 \&\f(CW\*(C`tag => string\*(C'\fR and \f(CW\*(C`tag_regex => regex\*(C'\fR .Sp Matches the tag that the image came from against \fIstring\fR or \fIregex\fR, as appropriate. The \f(CW\*(C`tag_regex\*(C'\fR is probably most useful to check for more than one tag, as in: .Sp .Vb 1 \& $mech\->find_image( tag_regex => qr/^(img|input)$/ ); .Ve .Sp The tags supported are \f(CW\*(C`<img>\*(C'\fR and \f(CW\*(C`<input>\*(C'\fR. .IP "\(bu" 4 \&\f(CW\*(C`id => string\*(C'\fR and \f(CW\*(C`id_regex => regex\*(C'\fR .Sp \&\f(CW\*(C`id\*(C'\fR matches the id attribute of the image against \fIstring\fR, which must be an exact match. To select an image with the exact id \*(L"download-image\*(R", use .Sp .Vb 1 \& $mech\->find_image( id => \*(Aqdownload\-image\*(Aq ); .Ve .Sp \&\f(CW\*(C`id_regex\*(C'\fR matches the id attribute of the image against a regular expression. To select the first image with an id that contains \*(L"download\*(R" anywhere in it, use .Sp .Vb 1 \& $mech\->find_image( id_regex => qr/download/ ); .Ve .IP "\(bu" 4 \&\f(CW\*(C`classs => string\*(C'\fR and \f(CW\*(C`class_regex => regex\*(C'\fR .Sp \&\f(CW\*(C`class\*(C'\fR matches the class attribute of the image against \fIstring\fR, which must be an exact match. To select an image with the exact class \*(L"img-fuid\*(R", use .Sp .Vb 1 \& $mech\->find_image( class => \*(Aqimg\-fluid\*(Aq ); .Ve .Sp To select an image with the class attribute \*(L"rounded float-left\*(R", use .Sp .Vb 1 \& $mech\->find_image( class => \*(Aqrounded float\-left\*(Aq ); .Ve .Sp Note that the classes have to be matched as a complete string, in the exact order they appear in the website's source code. .Sp \&\f(CW\*(C`class_regex\*(C'\fR matches the class attribute of the image against a regular expression. Use this if you want a partial class name, or if an image has several classes, but you only care about one. .Sp To select the first image with the class \*(L"rounded\*(R", where there are multiple images that might also have either class \*(L"float-left\*(R" or \*(L"float-right\*(R", use .Sp .Vb 1 \& $mech\->find_image( class_regex => qr/\ebrounded\eb/ ); .Ve .Sp Selecting an image with multiple classes where you do not care about the order they appear in the website's source code is not currently supported. .PP If \f(CW\*(C`n\*(C'\fR is not specified, it defaults to 1. Therefore, if you don't specify any parms, this method defaults to finding the first image on the page. .PP Note that you can specify multiple \s-1ALT\s0 or \s-1URL\s0 parameters, which will be ANDed together. For example, to find the first image with \&\s-1ALT\s0 text of \*(L"News\*(R" and with \*(L"cnn.com\*(R" in the \s-1URL,\s0 use: .PP .Vb 1 \& $mech\->find_image( image => \*(AqNews\*(Aq, url_regex => qr/cnn\e.com/ ); .Ve .PP The return value is a reference to an array containing a WWW::Mechanize::Image object for every image in \f(CW\*(C`$self\->content\*(C'\fR. .ie n .SS "$mech\->find_all_images( ... )" .el .SS "\f(CW$mech\fP\->find_all_images( ... )" .IX Subsection "$mech->find_all_images( ... )" Returns all the images on the current page that match the criteria. The method for specifying image criteria is the same as in \&\f(CW\*(C`find_image()\*(C'\fR. Each of the images returned is a WWW::Mechanize::Image object. .PP In list context, \f(CW\*(C`find_all_images()\*(C'\fR returns a list of the images. Otherwise, it returns a reference to the list of images. .PP \&\f(CW\*(C`find_all_images()\*(C'\fR with no parameters returns all images in the page. .SH "FORM METHODS" .IX Header "FORM METHODS" These methods let you work with the forms on a page. The idea is to choose a form that you'll later work with using the field methods below. .ie n .SS "$mech\->forms" .el .SS "\f(CW$mech\fP\->forms" .IX Subsection "$mech->forms" Lists all the forms on the current page. Each form is an HTML::Form object. In list context, returns a list of all forms. In scalar context, returns an array reference of all forms. .ie n .SS "$mech\->form_number($number)" .el .SS "\f(CW$mech\fP\->form_number($number)" .IX Subsection "$mech->form_number($number)" Selects the \fInumber\fRth form on the page as the target for subsequent calls to \f(CW\*(C`field()\*(C'\fR and \f(CW\*(C`click()\*(C'\fR. Also returns the form that was selected. .PP If it is found, the form is returned as an HTML::Form object and set internally for later use with Mech's form methods such as \&\f(CW\*(C`field()\*(C'\fR and \&\f(CW\*(C`click()\*(C'\fR. When called in a list context, the number of the found form is also returned as a second value. .PP Emits a warning and returns undef if no form is found. .PP The first form is number 1, not zero. .ie n .SS "$mech\->form_name( $name )" .el .SS "\f(CW$mech\fP\->form_name( \f(CW$name\fP )" .IX Subsection "$mech->form_name( $name )" Selects a form by name. If there is more than one form on the page with that name, then the first one is used, and a warning is generated. .PP If it is found, the form is returned as an HTML::Form object and set internally for later use with Mech's form methods such as \&\f(CW\*(C`field()\*(C'\fR and \&\f(CW\*(C`click()\*(C'\fR. .PP Returns undef if no form is found. .ie n .SS "$mech\->form_id( $name )" .el .SS "\f(CW$mech\fP\->form_id( \f(CW$name\fP )" .IX Subsection "$mech->form_id( $name )" Selects a form by \s-1ID. \s0 If there is more than one form on the page with that \s-1ID,\s0 then the first one is used, and a warning is generated. .PP If it is found, the form is returned as an HTML::Form object and set internally for later use with Mech's form methods such as \&\f(CW\*(C`field()\*(C'\fR and \&\f(CW\*(C`click()\*(C'\fR. .PP If no form is found it returns \f(CW\*(C`undef\*(C'\fR. This will also trigger a warning, unless \f(CW\*(C`quiet\*(C'\fR is enabled. .ie n .SS "$mech\->all_forms_with_fields( @fields )" .el .SS "\f(CW$mech\fP\->all_forms_with_fields( \f(CW@fields\fP )" .IX Subsection "$mech->all_forms_with_fields( @fields )" Selects a form by passing in a list of field names it must contain. All matching forms (perhaps none) are returned as a list of HTML::Form objects. .ie n .SS "$mech\->form_with_fields( @fields )" .el .SS "\f(CW$mech\fP\->form_with_fields( \f(CW@fields\fP )" .IX Subsection "$mech->form_with_fields( @fields )" Selects a form by passing in a list of field names it must contain. If there is more than one form on the page with that matches, then the first one is used, and a warning is generated. .PP If it is found, the form is returned as an HTML::Form object and set internally for later used with Mech's form methods such as \&\f(CW\*(C`field()\*(C'\fR and \&\f(CW\*(C`click()\*(C'\fR. .PP Returns undef and emits a warning if no form is found. .PP Note that this functionality requires libwww-perl 5.69 or higher. .ie n .SS "$mech\->all_forms_with( $attr1 => $value1, $attr2 => $value2, ... )" .el .SS "\f(CW$mech\fP\->all_forms_with( \f(CW$attr1\fP => \f(CW$value1\fP, \f(CW$attr2\fP => \f(CW$value2\fP, ... )" .IX Subsection "$mech->all_forms_with( $attr1 => $value1, $attr2 => $value2, ... )" Searches for forms with arbitrary attribute/value pairs within the <form> tag. (Currently does not work for attribute \f(CW\*(C`action\*(C'\fR due to implementation details of HTML::Form.) When given more than one pair, all criteria must match. Using \f(CW\*(C`undef\*(C'\fR as value means that the attribute in question must not be present. .PP All matching forms (perhaps none) are returned as a list of HTML::Form objects. .ie n .SS "$mech\->form_with( $attr1 => $value1, $attr2 => $value2, ... )" .el .SS "\f(CW$mech\fP\->form_with( \f(CW$attr1\fP => \f(CW$value1\fP, \f(CW$attr2\fP => \f(CW$value2\fP, ... )" .IX Subsection "$mech->form_with( $attr1 => $value1, $attr2 => $value2, ... )" Searches for forms with arbitrary attribute/value pairs within the <form> tag. (Currently does not work for attribute \f(CW\*(C`action\*(C'\fR due to implementation details of HTML::Form.) When given more than one pair, all criteria must match. Using \f(CW\*(C`undef\*(C'\fR as value means that the attribute in question must not be present. .PP If it is found, the form is returned as an HTML::Form object and set internally for later used with Mech's form methods such as \&\f(CW\*(C`field()\*(C'\fR and \&\f(CW\*(C`click()\*(C'\fR. .PP Returns undef if no form is found. .SH "FIELD METHODS" .IX Header "FIELD METHODS" These methods allow you to set the values of fields in a given form. .ie n .SS "$mech\->field( $name, $value, $number )" .el .SS "\f(CW$mech\fP\->field( \f(CW$name\fP, \f(CW$value\fP, \f(CW$number\fP )" .IX Subsection "$mech->field( $name, $value, $number )" .ie n .SS "$mech\->field( $name, \e@values, $number )" .el .SS "\f(CW$mech\fP\->field( \f(CW$name\fP, \e@values, \f(CW$number\fP )" .IX Subsection "$mech->field( $name, @values, $number )" Given the name of a field, set its value to the value specified. This applies to the current form (as set by the \&\f(CW\*(C`form_name()\*(C'\fR or \&\f(CW\*(C`form_number()\*(C'\fR method or defaulting to the first form on the page). .PP The optional \fI\f(CI$number\fI\fR parameter is used to distinguish between two fields with the same name. The fields are numbered from 1. .ie n .SS "$mech\->select($name, $value)" .el .SS "\f(CW$mech\fP\->select($name, \f(CW$value\fP)" .IX Subsection "$mech->select($name, $value)" .ie n .SS "$mech\->select($name, \e@values)" .el .SS "\f(CW$mech\fP\->select($name, \e@values)" .IX Subsection "$mech->select($name, @values)" Given the name of a \f(CW\*(C`select\*(C'\fR field, set its value to the value specified. If the field is not \f(CW\*(C`<select multiple>\*(C'\fR and the \&\f(CW$value\fR is an array, only the \fBfirst\fR value will be set. [Note: the documentation previously claimed that only the last value would be set, but this was incorrect.] Passing \f(CW$value\fR as a hash with an \f(CW\*(C`n\*(C'\fR key selects an item by number (e.g. \&\f(CW\*(C`{n => 3}\*(C'\fR or \f(CW\*(C`{n => [2,4]}\*(C'\fR). The numbering starts at 1. This applies to the current form. .PP If you have a field with \f(CW\*(C`<select multiple>\*(C'\fR and you pass a single \&\f(CW$value\fR, then \f(CW$value\fR will be added to the list of fields selected, without clearing the others. However, if you pass an array reference, then all previously selected values will be cleared. .PP Returns true on successfully setting the value. On failure, returns false and calls \f(CW\*(C`$self\->warn()\*(C'\fR with an error message. .ie n .SS "$mech\->set_fields( $name => $value ... )" .el .SS "\f(CW$mech\fP\->set_fields( \f(CW$name\fP => \f(CW$value\fP ... )" .IX Subsection "$mech->set_fields( $name => $value ... )" This method sets multiple fields of the current form. It takes a list of field name and value pairs. If there is more than one field with the same name, the first one found is set. If you want to select which of the duplicate field to set, use a value which is an anonymous array which has the field value and its number as the 2 elements. .PP .Vb 2 \& # set the second foo field \& $mech\->set_fields( $name => [ \*(Aqfoo\*(Aq, 2 ] ); .Ve .PP The fields are numbered from 1. .PP This applies to the current form. .ie n .SS "$mech\->set_visible( @criteria )" .el .SS "\f(CW$mech\fP\->set_visible( \f(CW@criteria\fP )" .IX Subsection "$mech->set_visible( @criteria )" This method sets fields of the current form without having to know their names. So if you have a login screen that wants a username and password, you do not have to fetch the form and inspect the source (or use the \fImech-dump\fR utility, installed with WWW::Mechanize) to see what the field names are; you can just say .PP .Vb 1 \& $mech\->set_visible( $username, $password ); .Ve .PP and the first and second fields will be set accordingly. The method is called set_\fIvisible\fR because it acts only on visible fields; hidden form inputs are not considered. The order of the fields is the order in which they appear in the \s-1HTML\s0 source which is nearly always the order anyone viewing the page would think they are in, but some creative work with tables could change that; caveat user. .PP Each element in \f(CW@criteria\fR is either a field value or a field specifier. A field value is a scalar. A field specifier allows you to specify the \fItype\fR of input field you want to set and is denoted with an arrayref containing two elements. So you could specify the first radio button with .PP .Vb 1 \& $mech\->set_visible( [ radio => \*(AqKCRW\*(Aq ] ); .Ve .PP Field values and specifiers can be intermixed, hence .PP .Vb 1 \& $mech\->set_visible( \*(Aqfred\*(Aq, \*(Aqsecret\*(Aq, [ option => \*(AqChecking\*(Aq ] ); .Ve .PP would set the first two fields to \*(L"fred\*(R" and \*(L"secret\*(R", and the \fInext\fR \&\f(CW\*(C`OPTION\*(C'\fR menu field to \*(L"Checking\*(R". .PP The possible field specifier types are: \*(L"text\*(R", \*(L"password\*(R", \*(L"hidden\*(R", \&\*(L"textarea\*(R", \*(L"file\*(R", \*(L"image\*(R", \*(L"submit\*(R", \*(L"radio\*(R", \*(L"checkbox\*(R" and \*(L"option\*(R". .PP \&\f(CW\*(C`set_visible\*(C'\fR returns the number of values set. .ie n .SS "$mech\->tick( $name, $value [, $set] )" .el .SS "\f(CW$mech\fP\->tick( \f(CW$name\fP, \f(CW$value\fP [, \f(CW$set\fP] )" .IX Subsection "$mech->tick( $name, $value [, $set] )" \&\*(L"Ticks\*(R" the first checkbox that has both the name and value associated with it on the current form. Dies if there is no named check box for that value. Passing in a false value as the third optional argument will cause the checkbox to be unticked. .ie n .SS "$mech\->untick($name, $value)" .el .SS "\f(CW$mech\fP\->untick($name, \f(CW$value\fP)" .IX Subsection "$mech->untick($name, $value)" Causes the checkbox to be unticked. Shorthand for \&\f(CW\*(C`tick($name,$value,undef)\*(C'\fR .ie n .SS "$mech\->value( $name [, $number] )" .el .SS "\f(CW$mech\fP\->value( \f(CW$name\fP [, \f(CW$number\fP] )" .IX Subsection "$mech->value( $name [, $number] )" Given the name of a field, return its value. This applies to the current form. .PP The optional \fI\f(CI$number\fI\fR parameter is used to distinguish between two fields with the same name. The fields are numbered from 1. .PP If the field is of type file (file upload field), the value is always cleared to prevent remote sites from downloading your local files. To upload a file, specify its file name explicitly. .ie n .SS "$mech\->click( $button [, $x, $y] )" .el .SS "\f(CW$mech\fP\->click( \f(CW$button\fP [, \f(CW$x\fP, \f(CW$y\fP] )" .IX Subsection "$mech->click( $button [, $x, $y] )" Has the effect of clicking a button on the current form. The first argument is the name of the button to be clicked. The second and third arguments (optional) allow you to specify the (x,y) coordinates of the click. .PP If there is only one button on the form, \f(CW\*(C`$mech\->click()\*(C'\fR with no arguments simply clicks that one button. .PP Returns an HTTP::Response object. .ie n .SS "$mech\->click_button( ... )" .el .SS "\f(CW$mech\fP\->click_button( ... )" .IX Subsection "$mech->click_button( ... )" Has the effect of clicking a button on the current form by specifying its name, value, or index. Its arguments are a list of key/value pairs. Only one of name, number, input or value must be specified in the keys. .IP "\(bu" 4 \&\f(CW\*(C`name => name\*(C'\fR .Sp Clicks the button named \fIname\fR in the current form. .IP "\(bu" 4 \&\f(CW\*(C`id => id\*(C'\fR .Sp Clicks the button with the id \fIid\fR in the current form. .IP "\(bu" 4 \&\f(CW\*(C`number => n\*(C'\fR .Sp Clicks the \fIn\fRth button in the current form. Numbering starts at 1. .IP "\(bu" 4 \&\f(CW\*(C`value => value\*(C'\fR .Sp Clicks the button with the value \fIvalue\fR in the current form. .IP "\(bu" 4 \&\f(CW\*(C`input => $inputobject\*(C'\fR .Sp Clicks on the button referenced by \f(CW$inputobject\fR, an instance of HTML::Form::SubmitInput obtained e.g. from .Sp .Vb 1 \& $mech\->current_form()\->find_input( undef, \*(Aqsubmit\*(Aq ) .Ve .Sp \&\f(CW$inputobject\fR must belong to the current form. .IP "\(bu" 4 \&\f(CW\*(C`x => x\*(C'\fR .IP "\(bu" 4 \&\f(CW\*(C`y => y\*(C'\fR .Sp These arguments (optional) allow you to specify the (x,y) coordinates of the click. .ie n .SS "$mech\->\fIsubmit()\fP" .el .SS "\f(CW$mech\fP\->\fIsubmit()\fP" .IX Subsection "$mech->submit()" Submits the current form, without specifying a button to click. Actually, no button is clicked at all. .PP Returns an HTTP::Response object. .PP This used to be a synonym for \f(CW\*(C`$mech\->click( \*(Aqsubmit\*(Aq )\*(C'\fR, but is no longer so. .ie n .SS "$mech\->submit_form( ... )" .el .SS "\f(CW$mech\fP\->submit_form( ... )" .IX Subsection "$mech->submit_form( ... )" This method lets you select a form from the previously fetched page, fill in its fields, and submit it. It combines the \f(CW\*(C`form_number\*(C'\fR/\f(CW\*(C`form_name\*(C'\fR, \&\f(CW\*(C`set_fields\*(C'\fR and \f(CW\*(C`click\*(C'\fR methods into one higher level call. Its arguments are a list of key/value pairs, all of which are optional. .IP "\(bu" 4 \&\f(CW\*(C`fields => \e%fields\*(C'\fR .Sp Specifies the fields to be filled in the current form. .IP "\(bu" 4 \&\f(CW\*(C`with_fields => \e%fields\*(C'\fR .Sp Probably all you need for the common case. It combines a smart form selector and data setting in one operation. It selects the first form that contains all fields mentioned in \f(CW\*(C`\e%fields\*(C'\fR. This is nice because you don't need to know the name or number of the form to do this. .Sp (calls \f(CW\*(C`form_with_fields()\*(C'\fR and \f(CW\*(C`set_fields()\*(C'\fR). .Sp If you choose \f(CW\*(C`with_fields\*(C'\fR, the \f(CW\*(C`fields\*(C'\fR option will be ignored. The \&\f(CW\*(C`form_number\*(C'\fR, \f(CW\*(C`form_name\*(C'\fR and \f(CW\*(C`form_id\*(C'\fR options will still be used. An exception will be thrown unless exactly one form matches all of the provided criteria. .IP "\(bu" 4 \&\f(CW\*(C`form_number => n\*(C'\fR .Sp Selects the \fIn\fRth form (calls \&\f(CW\*(C`form_number()\*(C'\fR. If this parm is not specified, the currently-selected form is used. .IP "\(bu" 4 \&\f(CW\*(C`form_name => name\*(C'\fR .Sp Selects the form named \fIname\fR (calls \&\f(CW\*(C`form_name()\*(C'\fR) .IP "\(bu" 4 \&\f(CW\*(C`form_id => ID\*(C'\fR .Sp Selects the form with \s-1ID \s0\fI\s-1ID\s0\fR (calls \&\f(CW\*(C`form_id()\*(C'\fR) .IP "\(bu" 4 \&\f(CW\*(C`button => button\*(C'\fR .Sp Clicks on button \fIbutton\fR (calls \f(CW\*(C`click()\*(C'\fR) .IP "\(bu" 4 \&\f(CW\*(C`x => x, y => y\*(C'\fR .Sp Sets the x or y values for \f(CW\*(C`click()\*(C'\fR .IP "\(bu" 4 \&\f(CW\*(C`strict_forms => bool\*(C'\fR .Sp Sets the HTML::Form strict flag which causes form submission to croak if any of the passed fields don't exist on the page, and/or a value doesn't exist in a select element. By default HTML::Form sets this value to false. .Sp This behavior can also be turned on globally by passing \f(CW\*(C`strict_forms => 1\*(C'\fR to \&\f(CW\*(C`WWW::Mechanize\->new\*(C'\fR. If you do that, you can still disable it for individual calls by passing \f(CW\*(C`strict_forms => 0\*(C'\fR here. .PP If no form is selected, the first form found is used. .PP If \fIbutton\fR is not passed, then the \f(CW\*(C`submit()\*(C'\fR method is used instead. .PP If you want to submit a file and get its content from a scalar rather than a file in the filesystem, you can use: .PP .Vb 1 \& $mech\->submit_form(with_fields => { logfile => [ [ undef, \*(Aqwhatever\*(Aq, Content => $content ], 1 ] } ); .Ve .PP Returns an HTTP::Response object. .SH "MISCELLANEOUS METHODS" .IX Header "MISCELLANEOUS METHODS" .ie n .SS "$mech\->add_header( name => $value [, name => $value... ] )" .el .SS "\f(CW$mech\fP\->add_header( name => \f(CW$value\fP [, name => \f(CW$value\fP... ] )" .IX Subsection "$mech->add_header( name => $value [, name => $value... ] )" Sets \s-1HTTP\s0 headers for the agent to add or remove from the \s-1HTTP\s0 request. .PP .Vb 1 \& $mech\->add_header( Encoding => \*(Aqtext/klingon\*(Aq ); .Ve .PP If a \fIvalue\fR is \f(CW\*(C`undef\*(C'\fR, then that header will be removed from any future requests. For example, to never send a Referer header: .PP .Vb 1 \& $mech\->add_header( Referer => undef ); .Ve .PP If you want to delete a header, use \f(CW\*(C`delete_header\*(C'\fR. .PP Returns the number of name/value pairs added. .PP \&\fB\s-1NOTE\s0\fR: This method was very different in WWW::Mechanize before 1.00. Back then, the headers were stored in a package hash, not as a member of the object instance. Calling \f(CW\*(C`add_header()\*(C'\fR would modify the headers for every WWW::Mechanize object, even after your object no longer existed. .ie n .SS "$mech\->delete_header( name [, name ... ] )" .el .SS "\f(CW$mech\fP\->delete_header( name [, name ... ] )" .IX Subsection "$mech->delete_header( name [, name ... ] )" Removes \s-1HTTP\s0 headers from the agent's list of special headers. For instance, you might need to do something like: .PP .Vb 2 \& # Don\*(Aqt send a Referer for this URL \& $mech\->add_header( Referer => undef ); \& \& # Get the URL \& $mech\->get( $url ); \& \& # Back to the default behavior \& $mech\->delete_header( \*(AqReferer\*(Aq ); .Ve .ie n .SS "$mech\->quiet(true/false)" .el .SS "\f(CW$mech\fP\->quiet(true/false)" .IX Subsection "$mech->quiet(true/false)" Allows you to suppress warnings to the screen. .PP .Vb 3 \& $mech\->quiet(0); # turns on warnings (the default) \& $mech\->quiet(1); # turns off warnings \& $mech\->quiet(); # returns the current quietness status .Ve .ie n .SS "$mech\->stack_depth( $max_depth )" .el .SS "\f(CW$mech\fP\->stack_depth( \f(CW$max_depth\fP )" .IX Subsection "$mech->stack_depth( $max_depth )" Get or set the page stack depth. Use this if you're doing a lot of page scraping and running out of memory. .PP A value of 0 means \*(L"no history at all.\*(R" By default, the max stack depth is humongously large, effectively keeping all history. .ie n .SS "$mech\->save_content( $filename, %opts )" .el .SS "\f(CW$mech\fP\->save_content( \f(CW$filename\fP, \f(CW%opts\fP )" .IX Subsection "$mech->save_content( $filename, %opts )" Dumps the contents of \f(CW\*(C`$mech\->content\*(C'\fR into \fI\f(CI$filename\fI\fR. \&\fI\f(CI$filename\fI\fR will be overwritten. Dies if there are any errors. .PP If the content type does not begin with \*(L"text/\*(R", then the content is saved in binary mode (i.e. \f(CW\*(C`binmode()\*(C'\fR is set on the output filehandle). .PP Additional arguments can be passed as \fIkey\fR/\fIvalue\fR pairs: .ie n .IP "\fI\fI$mech\fI\->save_content( \f(CI$filename\fI, binary => 1 )\fR" 4 .el .IP "\fI\f(CI$mech\fI\->save_content( \f(CI$filename\fI, binary => 1 )\fR" 4 .IX Item "$mech->save_content( $filename, binary => 1 )" Filehandle is set with \f(CW\*(C`binmode\*(C'\fR to \f(CW\*(C`:raw\*(C'\fR and contents are taken calling \f(CW\*(C`$self\->content(decoded_by_headers => 1)\*(C'\fR. Same as calling: .Sp .Vb 2 \& $mech\->save_content( $filename, binmode => \*(Aq:raw\*(Aq, \& decoded_by_headers => 1 ); .Ve .Sp This \fIshould\fR be the safest way to save contents verbatim. .ie n .IP "\fI\fI$mech\fI\->save_content( \f(CI$filename\fI, binmode => \f(CI$binmode\fI )\fR" 4 .el .IP "\fI\f(CI$mech\fI\->save_content( \f(CI$filename\fI, binmode => \f(CI$binmode\fI )\fR" 4 .IX Item "$mech->save_content( $filename, binmode => $binmode )" Filehandle is set to binary mode. If \f(CW$binmode\fR begins with ':', it is passed as a parameter to \f(CW\*(C`binmode\*(C'\fR: .Sp .Vb 1 \& binmode $fh, $binmode; .Ve .Sp otherwise the filehandle is set to binary mode if \f(CW$binmode\fR is true: .Sp .Vb 1 \& binmode $fh; .Ve .IP "\fIall other arguments\fR" 4 .IX Item "all other arguments" are passed as-is to \f(CW\*(C`$mech\->content(%opts)\*(C'\fR. In particular, \&\f(CW\*(C`decoded_by_headers\*(C'\fR might come handy if you want to revert the effect of line compression performed by the web server but without further interpreting the contents (e.g. decoding it according to the charset). .ie n .SS "$mech\->dump_headers( [$fh] )" .el .SS "\f(CW$mech\fP\->dump_headers( [$fh] )" .IX Subsection "$mech->dump_headers( [$fh] )" Prints a dump of the \s-1HTTP\s0 response headers for the most recent response. If \fI\f(CI$fh\fI\fR is not specified or is undef, it dumps to \&\s-1STDOUT.\s0 .PP Unlike the rest of the dump_* methods, \f(CW$fh\fR can be a scalar. It will be used as a file name. .ie n .SS "$mech\->dump_links( [[$fh], $absolute] )" .el .SS "\f(CW$mech\fP\->dump_links( [[$fh], \f(CW$absolute\fP] )" .IX Subsection "$mech->dump_links( [[$fh], $absolute] )" Prints a dump of the links on the current page to \fI\f(CI$fh\fI\fR. If \fI\f(CI$fh\fI\fR is not specified or is undef, it dumps to \s-1STDOUT.\s0 .PP If \fI\f(CI$absolute\fI\fR is true, links displayed are absolute, not relative. .ie n .SS "$mech\->dump_images( [[$fh], $absolute] )" .el .SS "\f(CW$mech\fP\->dump_images( [[$fh], \f(CW$absolute\fP] )" .IX Subsection "$mech->dump_images( [[$fh], $absolute] )" Prints a dump of the images on the current page to \fI\f(CI$fh\fI\fR. If \fI\f(CI$fh\fI\fR is not specified or is undef, it dumps to \s-1STDOUT.\s0 .PP If \fI\f(CI$absolute\fI\fR is true, links displayed are absolute, not relative. .PP The output will include empty lines for images that have no \f(CW\*(C`src\*(C'\fR attribute and therefore no \f(CW\*(C`<\-\*(C'\fRurl>>. .ie n .SS "$mech\->dump_forms( [$fh] )" .el .SS "\f(CW$mech\fP\->dump_forms( [$fh] )" .IX Subsection "$mech->dump_forms( [$fh] )" Prints a dump of the forms on the current page to \fI\f(CI$fh\fI\fR. If \fI\f(CI$fh\fI\fR is not specified or is undef, it dumps to \s-1STDOUT.\s0 Running the following: .PP .Vb 3 \& my $mech = WWW::Mechanize\->new(); \& $mech\->get("https://www.google.com/"); \& $mech\->dump_forms; .Ve .PP will print: .PP .Vb 10 \& GET https://www.google.com/search [f] \& ie=ISO\-8859\-1 (hidden readonly) \& hl=en (hidden readonly) \& source=hp (hidden readonly) \& biw= (hidden readonly) \& bih= (hidden readonly) \& q= (text) \& btnG=Google Search (submit) \& btnI=I\*(Aqm Feeling Lucky (submit) \& gbv=1 (hidden readonly) .Ve .ie n .SS "$mech\->dump_text( [$fh] )" .el .SS "\f(CW$mech\fP\->dump_text( [$fh] )" .IX Subsection "$mech->dump_text( [$fh] )" Prints a dump of the text on the current page to \fI\f(CI$fh\fI\fR. If \fI\f(CI$fh\fI\fR is not specified or is undef, it dumps to \s-1STDOUT.\s0 .SH "OVERRIDDEN LWP::UserAgent METHODS" .IX Header "OVERRIDDEN LWP::UserAgent METHODS" .ie n .SS "$mech\->\fIclone()\fP" .el .SS "\f(CW$mech\fP\->\fIclone()\fP" .IX Subsection "$mech->clone()" Clone the mech object. The clone will be using the same cookie jar as the original mech. .ie n .SS "$mech\->\fIredirect_ok()\fP" .el .SS "\f(CW$mech\fP\->\fIredirect_ok()\fP" .IX Subsection "$mech->redirect_ok()" An overloaded version of \f(CW\*(C`redirect_ok()\*(C'\fR in LWP::UserAgent. This method is used to determine whether a redirection in the request should be followed. .PP Note that WWW::Mechanize's constructor pushes \s-1POST\s0 on to the agent's \&\f(CW\*(C`requests_redirectable\*(C'\fR list. .ie n .SS "$mech\->request( $request [, $arg [, $size]])" .el .SS "\f(CW$mech\fP\->request( \f(CW$request\fP [, \f(CW$arg\fP [, \f(CW$size\fP]])" .IX Subsection "$mech->request( $request [, $arg [, $size]])" Overloaded version of \f(CW\*(C`request()\*(C'\fR in LWP::UserAgent. Performs the actual request. Normally, if you're using WWW::Mechanize, it's because you don't want to deal with this level of stuff anyway. .PP Note that \f(CW$request\fR will be modified. .PP Returns an HTTP::Response object. .ie n .SS "$mech\->update_html( $html )" .el .SS "\f(CW$mech\fP\->update_html( \f(CW$html\fP )" .IX Subsection "$mech->update_html( $html )" Allows you to replace the \s-1HTML\s0 that the mech has found. Updates the forms and links parse-trees that the mech uses internally. .PP Say you have a page that you know has malformed output, and you want to update it so the links come out correctly: .PP .Vb 3 \& my $html = $mech\->content; \& $html =~ s[</option>.{0,3}</td>][</option></select></td>]isg; \& $mech\->update_html( $html ); .Ve .PP This method is also used internally by the mech itself to update its own \s-1HTML\s0 content when loading a page. This means that if you would like to \fIsystematically\fR perform the above \s-1HTML\s0 substitution, you would overload \fIupdate_html\fR in a subclass thusly: .PP .Vb 2 \& package MyMech; \& use base \*(AqWWW::Mechanize\*(Aq; \& \& sub update_html { \& my ($self, $html) = @_; \& $html =~ s[</option>.{0,3}</td>][</option></select></td>]isg; \& $self\->WWW::Mechanize::update_html( $html ); \& } .Ve .PP If you do this, then the mech will use the tidied-up \s-1HTML\s0 instead of the original both when parsing for its own needs, and for returning to you through \f(CW\*(C`content()\*(C'\fR. .PP Overloading this method is also the recommended way of implementing extra validation steps (e.g. link checkers) for every \s-1HTML\s0 page received. \*(L"warn\*(R" and \*(L"die\*(R" would then come in handy to signal validation errors. .ie n .SS "$mech\->credentials( $username, $password )" .el .SS "\f(CW$mech\fP\->credentials( \f(CW$username\fP, \f(CW$password\fP )" .IX Subsection "$mech->credentials( $username, $password )" Provide credentials to be used for \s-1HTTP\s0 Basic authentication for all sites and realms until further notice. .PP The four argument form described in LWP::UserAgent is still supported. .ie n .SS "$mech\->get_basic_credentials( $realm, $uri, $isproxy )" .el .SS "\f(CW$mech\fP\->get_basic_credentials( \f(CW$realm\fP, \f(CW$uri\fP, \f(CW$isproxy\fP )" .IX Subsection "$mech->get_basic_credentials( $realm, $uri, $isproxy )" Returns the credentials for the realm and \s-1URI.\s0 .ie n .SS "$mech\->\fIclear_credentials()\fP" .el .SS "\f(CW$mech\fP\->\fIclear_credentials()\fP" .IX Subsection "$mech->clear_credentials()" Remove any credentials set up with \f(CW\*(C`credentials()\*(C'\fR. .SH "INHERITED UNCHANGED LWP::UserAgent METHODS" .IX Header "INHERITED UNCHANGED LWP::UserAgent METHODS" As a subclass of LWP::UserAgent, WWW::Mechanize inherits all of LWP::UserAgent's methods. Many of which are overridden or extended. The following methods are inherited unchanged. View the LWP::UserAgent documentation for their implementation descriptions. .PP This is not meant to be an inclusive list. \s-1LWP::UA\s0 may have added others. .ie n .SS "$mech\->\fIhead()\fP" .el .SS "\f(CW$mech\fP\->\fIhead()\fP" .IX Subsection "$mech->head()" Inherited from LWP::UserAgent. .ie n .SS "$mech\->\fImirror()\fP" .el .SS "\f(CW$mech\fP\->\fImirror()\fP" .IX Subsection "$mech->mirror()" Inherited from LWP::UserAgent. .ie n .SS "$mech\->\fIsimple_request()\fP" .el .SS "\f(CW$mech\fP\->\fIsimple_request()\fP" .IX Subsection "$mech->simple_request()" Inherited from LWP::UserAgent. .ie n .SS "$mech\->\fIis_protocol_supported()\fP" .el .SS "\f(CW$mech\fP\->\fIis_protocol_supported()\fP" .IX Subsection "$mech->is_protocol_supported()" Inherited from LWP::UserAgent. .ie n .SS "$mech\->\fIprepare_request()\fP" .el .SS "\f(CW$mech\fP\->\fIprepare_request()\fP" .IX Subsection "$mech->prepare_request()" Inherited from LWP::UserAgent. .ie n .SS "$mech\->\fIprogress()\fP" .el .SS "\f(CW$mech\fP\->\fIprogress()\fP" .IX Subsection "$mech->progress()" Inherited from LWP::UserAgent. .SH "INTERNAL-ONLY METHODS" .IX Header "INTERNAL-ONLY METHODS" These methods are only used internally. You probably don't need to know about them. .ie n .SS "$mech\->_update_page($request, $response)" .el .SS "\f(CW$mech\fP\->_update_page($request, \f(CW$response\fP)" .IX Subsection "$mech->_update_page($request, $response)" Updates all internal variables in \f(CW$mech\fR as if \f(CW$request\fR was just performed, and returns \f(CW$response\fR. The page stack is \fBnot\fR altered by this method, it is up to caller (e.g. \&\f(CW\*(C`request\*(C'\fR) to do that. .ie n .SS "$mech\->_modify_request( $req )" .el .SS "\f(CW$mech\fP\->_modify_request( \f(CW$req\fP )" .IX Subsection "$mech->_modify_request( $req )" Modifies a HTTP::Request before the request is sent out, for both \s-1GET\s0 and \s-1POST\s0 requests. .PP We add a \f(CW\*(C`Referer\*(C'\fR header, as well as header to note that we can accept gzip encoded content, if Compress::Zlib is installed. .ie n .SS "$mech\->\fI_make_request()\fP" .el .SS "\f(CW$mech\fP\->\fI_make_request()\fP" .IX Subsection "$mech->_make_request()" Convenience method to make it easier for subclasses like WWW::Mechanize::Cached to intercept the request. .ie n .SS "$mech\->\fI_reset_page()\fP" .el .SS "\f(CW$mech\fP\->\fI_reset_page()\fP" .IX Subsection "$mech->_reset_page()" Resets the internal fields that track page parsed stuff. .ie n .SS "$mech\->\fI_extract_links()\fP" .el .SS "\f(CW$mech\fP\->\fI_extract_links()\fP" .IX Subsection "$mech->_extract_links()" Extracts links from the content of a webpage, and populates the \f(CW\*(C`{links}\*(C'\fR property with WWW::Mechanize::Link objects. .ie n .SS "$mech\->\fI_push_page_stack()\fP" .el .SS "\f(CW$mech\fP\->\fI_push_page_stack()\fP" .IX Subsection "$mech->_push_page_stack()" The agent keeps a stack of visited pages, which it can pop when it needs to go \s-1BACK\s0 and so on. .PP The current page needs to be pushed onto the stack before we get a new page, and the stack needs to be popped when \s-1BACK\s0 occurs. .PP Neither of these take any arguments, they just operate on the \f(CW$mech\fR object. .ie n .SS "warn( @messages )" .el .SS "warn( \f(CW@messages\fP )" .IX Subsection "warn( @messages )" Centralized warning method, for diagnostics and non-fatal problems. Defaults to calling \f(CW\*(C`CORE::warn\*(C'\fR, but may be overridden by setting \&\f(CW\*(C`onwarn\*(C'\fR in the constructor. .ie n .SS "die( @messages )" .el .SS "die( \f(CW@messages\fP )" .IX Subsection "die( @messages )" Centralized error method. Defaults to calling \f(CW\*(C`CORE::die\*(C'\fR, but may be overridden by setting \f(CW\*(C`onerror\*(C'\fR in the constructor. .SH "BEST PRACTICES" .IX Header "BEST PRACTICES" The default settings can get you up and running quickly, but there are settings you can change in order to make your life easier. .IP "autocheck" 4 .IX Item "autocheck" \&\f(CW\*(C`autocheck\*(C'\fR can save you the overhead of checking status codes for success. You may outgrow it as your needs get more sophisticated, but it's a safe option to start with. .Sp .Vb 1 \& my $agent = WWW::Mechanize\->new( autocheck => 1 ); .Ve .IP "cookie_jar" 4 .IX Item "cookie_jar" You are encouraged to install Mozilla::PublicSuffix and use HTTP::CookieJar::LWP as your cookie jar. HTTP::CookieJar::LWP provides a better security model matching that of current Web browsers when Mozilla::PublicSuffix is installed. .Sp .Vb 1 \& use HTTP::CookieJar::LWP (); \& \& my $jar = HTTP::CookieJar::LWP\->new; \& my $agent = WWW::Mechanize\->new( cookie_jar => $jar ); .Ve .IP "protocols_allowed" 4 .IX Item "protocols_allowed" This option is inherited directly from LWP::UserAgent. It allows you to whitelist the protocols you're willing to allow. .Sp .Vb 3 \& my $agent = WWW::Mechanize\->new( \& protocols_allowed => [ \*(Aqhttp\*(Aq, \*(Aqhttps\*(Aq ] \& ); .Ve .Sp This will prevent you from inadvertently following URLs like \&\f(CW\*(C`file:///etc/passwd\*(C'\fR .IP "protocols_forbidden" 4 .IX Item "protocols_forbidden" This option is also inherited directly from LWP::UserAgent. It allows you to blacklist the protocols you're unwilling to allow. .Sp .Vb 3 \& my $agent = WWW::Mechanize\->new( \& protocols_forbidden => [ \*(Aqfile\*(Aq, \*(Aqmailto\*(Aq, \*(Aqssh\*(Aq, ] \& ); .Ve .Sp This will prevent you from inadvertently following URLs like \&\f(CW\*(C`file:///etc/passwd\*(C'\fR .IP "strict_forms" 4 .IX Item "strict_forms" Consider turning on the \f(CW\*(C`strict_forms\*(C'\fR option when you create a new Mech. This will perform a helpful sanity check on form fields every time you are submitting a form, which can save you a lot of debugging time. .Sp .Vb 1 \& my $agent = WWW::Mechanize\->new( strict_forms => 1 ); .Ve .Sp If you do not want to have this option globally, you can still turn it on for individual forms. .Sp .Vb 1 \& $agent\->submit_form( fields => { foo => \*(Aqbar\*(Aq } , strict_forms => 1 ); .Ve .SH "WWW::MECHANIZE'S GIT REPOSITORY" .IX Header "WWW::MECHANIZE'S GIT REPOSITORY" WWW::Mechanize is hosted at GitHub. .PP Repository: <https://github.com/libwww\-perl/WWW\-Mechanize>. Bugs: <https://github.com/libwww\-perl/WWW\-Mechanize/issues>. .SH "OTHER DOCUMENTATION" .IX Header "OTHER DOCUMENTATION" .SS "\fISpidering Hacks\fP, by Kevin Hemenway and Tara Calishain" .IX Subsection "Spidering Hacks, by Kevin Hemenway and Tara Calishain" \&\fISpidering Hacks\fR from O'Reilly (<http://www.oreilly.com/catalog/spiderhks/>) is a great book for anyone wanting to know more about screen-scraping and spidering. .PP There are six hacks that use Mech or a Mech derivative: .IP "#21 WWW::Mechanize 101" 4 .IX Item "#21 WWW::Mechanize 101" .PD 0 .IP "#22 Scraping with WWW::Mechanize" 4 .IX Item "#22 Scraping with WWW::Mechanize" .IP "#36 Downloading Images from Webshots" 4 .IX Item "#36 Downloading Images from Webshots" .IP "#44 Archiving Yahoo! Groups Messages with WWW::Yahoo::Groups" 4 .IX Item "#44 Archiving Yahoo! Groups Messages with WWW::Yahoo::Groups" .IP "#64 Super Author Searching" 4 .IX Item "#64 Super Author Searching" .IP "#73 Scraping \s-1TV\s0 Listings" 4 .IX Item "#73 Scraping TV Listings" .PD .PP The book was also positively reviewed on Slashdot: <http://books.slashdot.org/article.pl?sid=03/12/11/2126256> .SH "ONLINE RESOURCES AND SUPPORT" .IX Header "ONLINE RESOURCES AND SUPPORT" .IP "\(bu" 4 WWW::Mechanize mailing list .Sp The Mech mailing list is at <http://groups.google.com/group/www\-mechanize\-users> and is specific to Mechanize, unlike the \s-1LWP\s0 mailing list below. Although it is a users list, all development discussion takes place here, too. .IP "\(bu" 4 \&\s-1LWP\s0 mailing list .Sp The \s-1LWP\s0 mailing list is at <http://lists.perl.org/showlist.cgi?name=libwww>, and is more user-oriented and well-populated than the WWW::Mechanize list. .IP "\(bu" 4 Perlmonks .Sp <http://perlmonks.org> is an excellent community of support, and many questions about Mech have already been answered there. .IP "\(bu" 4 WWW::Mechanize::Examples .Sp A random array of examples submitted by users, included with the Mechanize distribution. .SH "ARTICLES ABOUT WWW::MECHANIZE" .IX Header "ARTICLES ABOUT WWW::MECHANIZE" .IP "\(bu" 4 <http://www.ibm.com/developerworks/linux/library/wa\-perlsecure/> .Sp \&\s-1IBM\s0 article \*(L"Secure Web site access with Perl\*(R" .IP "\(bu" 4 <http://www.oreilly.com/catalog/googlehks2/chapter/hack84.pdf> .Sp Leland Johnson's hack #84 in \fIGoogle Hacks, 2nd Edition\fR is an example of a production script that uses WWW::Mechanize and HTML::TableContentParser. It takes in keywords and returns the estimated price of these keywords on Google's AdWords program. .IP "\(bu" 4 <http://www.perl.com/pub/a/2004/06/04/recorder.html> .Sp Linda Julien writes about using HTTP::Recorder to create WWW::Mechanize scripts. .IP "\(bu" 4 <http://www.developer.com/lang/other/article.php/3454041> .Sp Jason Gilmore's article on using WWW::Mechanize for scraping sales information from Amazon and eBay. .IP "\(bu" 4 <http://www.perl.com/pub/a/2003/01/22/mechanize.html> .Sp Chris Ball's article about using WWW::Mechanize for scraping \s-1TV\s0 listings. .IP "\(bu" 4 <http://www.stonehenge.com/merlyn/LinuxMag/col47.html> .Sp Randal Schwartz's article on scraping Yahoo News for images. It's already out of date: He manually walks the list of links hunting for matches, which wouldn't have been necessary if the \&\f(CW\*(C`find_link()\*(C'\fR method existed at press time. .IP "\(bu" 4 <http://www.perladvent.org/2002/16th/> .Sp WWW::Mechanize on the Perl Advent Calendar, by Mark Fowler. .IP "\(bu" 4 <http://www.linux\-magazin.de/ausgaben/2004/03/datenruessel/> .Sp Michael Schilli's article on Mech and WWW::Mechanize::Shell for the German magazine \fILinux Magazin\fR. .SS "Other modules that use Mechanize" .IX Subsection "Other modules that use Mechanize" Here are modules that use or subclass Mechanize. Let me know of any others: .IP "\(bu" 4 Finance::Bank::LloydsTSB .IP "\(bu" 4 HTTP::Recorder .Sp Acts as a proxy for web interaction, and then generates WWW::Mechanize scripts. .IP "\(bu" 4 Win32::IE::Mechanize .Sp Just like Mech, but using Microsoft Internet Explorer to do the work. .IP "\(bu" 4 WWW::Bugzilla .IP "\(bu" 4 WWW::CheckSite .IP "\(bu" 4 WWW::Google::Groups .IP "\(bu" 4 WWW::Hotmail .IP "\(bu" 4 WWW::Mechanize::Cached .IP "\(bu" 4 WWW::Mechanize::Cached::GZip .IP "\(bu" 4 WWW::Mechanize::FormFiller .IP "\(bu" 4 WWW::Mechanize::Shell .IP "\(bu" 4 WWW::Mechanize::Sleepy .IP "\(bu" 4 WWW::Mechanize::SpamCop .IP "\(bu" 4 WWW::Mechanize::Timed .IP "\(bu" 4 WWW::SourceForge .IP "\(bu" 4 WWW::Yahoo::Groups .IP "\(bu" 4 WWW::Scripter .SH "ACKNOWLEDGEMENTS" .IX Header "ACKNOWLEDGEMENTS" Thanks to the numerous people who have helped out on WWW::Mechanize in one way or another, including Kirrily Robert for the original \f(CW\*(C`WWW::Automate\*(C'\fR, Lyle Hopkins, Damien Clark, Ansgar Burchardt, Gisle Aas, Jeremy Ary, Hilary Holz, Rafael Kitover, Norbert Buchmuller, Dave Page, David Sainty, H.Merijn Brand, Matt Lawrence, Michael Schwern, Adriano Ferreira, Miyagawa, Peteris Krumins, Rafael Kitover, David Steinbrunner, Kevin Falcone, Mike O'Regan, Mark Stosberg, Uri Guttman, Peter Scott, Philippe Bruhat, Ian Langworth, John Beppu, Gavin Estey, Jim Brandt, Ask Bjoern Hansen, Greg Davies, Ed Silva, Mark-Jason Dominus, Autrijus Tang, Mark Fowler, Stuart Children, Max Maischein, Meng Wong, Prakash Kailasa, Abigail, Jan Pazdziora, Dominique Quatravaux, Scott Lanning, Rob Casey, Leland Johnson, Joshua Gatcomb, Julien Beasley, Abe Timmerman, Peter Stevens, Pete Krawczyk, Tad McClellan, and the late great Iain Truskett. .SH "AUTHOR" .IX Header "AUTHOR" Andy Lester <andy at petdance.com> .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is copyright (c) 2004\-2016 by Andy Lester. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������man3/TAP::Harness.3pm�������������������������������������������������������������������������������0000444�����������������00000055100�14764526566�0010203 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "TAP::Harness 3" .TH TAP::Harness 3 "2018-03-19" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" TAP::Harness \- Run test scripts with statistics .SH "VERSION" .IX Header "VERSION" Version 3.42 .SH "DESCRIPTION" .IX Header "DESCRIPTION" This is a simple test harness which allows tests to be run and results automatically aggregated and output to \s-1STDOUT.\s0 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 3 \& use TAP::Harness; \& my $harness = TAP::Harness\->new( \e%args ); \& $harness\->runtests(@tests); .Ve .SH "METHODS" .IX Header "METHODS" .SS "Class Methods" .IX Subsection "Class Methods" \fI\f(CI\*(C`new\*(C'\fI\fR .IX Subsection "new" .PP .Vb 5 \& my %args = ( \& verbosity => 1, \& lib => [ \*(Aqlib\*(Aq, \*(Aqblib/lib\*(Aq, \*(Aqblib/arch\*(Aq ], \& ) \& my $harness = TAP::Harness\->new( \e%args ); .Ve .PP The constructor returns a new \f(CW\*(C`TAP::Harness\*(C'\fR object. It accepts an optional hashref whose allowed keys are: .IP "\(bu" 4 \&\f(CW\*(C`verbosity\*(C'\fR .Sp Set the verbosity level: .Sp .Vb 6 \& 1 verbose Print individual test results to STDOUT. \& 0 normal \& \-1 quiet Suppress some test output (mostly failures \& while tests are running). \& \-2 really quiet Suppress everything but the tests summary. \& \-3 silent Suppress everything. .Ve .IP "\(bu" 4 \&\f(CW\*(C`timer\*(C'\fR .Sp Append run time for each test to output. Uses Time::HiRes if available. .IP "\(bu" 4 \&\f(CW\*(C`failures\*(C'\fR .Sp Show test failures (this is a no-op if \f(CW\*(C`verbose\*(C'\fR is selected). .IP "\(bu" 4 \&\f(CW\*(C`comments\*(C'\fR .Sp Show test comments (this is a no-op if \f(CW\*(C`verbose\*(C'\fR is selected). .IP "\(bu" 4 \&\f(CW\*(C`show_count\*(C'\fR .Sp Update the running test count during testing. .IP "\(bu" 4 \&\f(CW\*(C`normalize\*(C'\fR .Sp Set to a true value to normalize the \s-1TAP\s0 that is emitted in verbose modes. .IP "\(bu" 4 \&\f(CW\*(C`lib\*(C'\fR .Sp Accepts a scalar value or array ref of scalar values indicating which paths to allowed libraries should be included if Perl tests are executed. Naturally, this only makes sense in the context of tests written in Perl. .IP "\(bu" 4 \&\f(CW\*(C`switches\*(C'\fR .Sp Accepts a scalar value or array ref of scalar values indicating which switches should be included if Perl tests are executed. Naturally, this only makes sense in the context of tests written in Perl. .IP "\(bu" 4 \&\f(CW\*(C`test_args\*(C'\fR .Sp A reference to an \f(CW@INC\fR style array of arguments to be passed to each test program. .Sp .Vb 1 \& test_args => [\*(Aqfoo\*(Aq, \*(Aqbar\*(Aq], .Ve .Sp if you want to pass different arguments to each test then you should pass a hash of arrays, keyed by the alias for each test: .Sp .Vb 4 \& test_args => { \& my_test => [\*(Aqfoo\*(Aq, \*(Aqbar\*(Aq], \& other_test => [\*(Aqbaz\*(Aq], \& } .Ve .IP "\(bu" 4 \&\f(CW\*(C`color\*(C'\fR .Sp Attempt to produce color output. .IP "\(bu" 4 \&\f(CW\*(C`exec\*(C'\fR .Sp Typically, Perl tests are run through this. However, anything which spits out \s-1TAP\s0 is fine. You can use this argument to specify the name of the program (and optional switches) to run your tests with: .Sp .Vb 1 \& exec => [\*(Aq/usr/bin/ruby\*(Aq, \*(Aq\-w\*(Aq] .Ve .Sp You can also pass a subroutine reference in order to determine and return the proper program to run based on a given test script. The subroutine reference should expect the TAP::Harness object itself as the first argument, and the file name as the second argument. It should return an array reference containing the command to be run and including the test file name. It can also simply return \f(CW\*(C`undef\*(C'\fR, in which case TAP::Harness will fall back on executing the test script in Perl: .Sp .Vb 2 \& exec => sub { \& my ( $harness, $test_file ) = @_; \& \& # Let Perl tests run. \& return undef if $test_file =~ /[.]t$/; \& return [ qw( /usr/bin/ruby \-w ), $test_file ] \& if $test_file =~ /[.]rb$/; \& } .Ve .Sp If the subroutine returns a scalar with a newline or a filehandle, it will be interpreted as raw \s-1TAP\s0 or as a \s-1TAP\s0 stream, respectively. .IP "\(bu" 4 \&\f(CW\*(C`merge\*(C'\fR .Sp If \f(CW\*(C`merge\*(C'\fR is true the harness will create parsers that merge \s-1STDOUT\s0 and \s-1STDERR\s0 together for any processes they start. .IP "\(bu" 4 \&\f(CW\*(C`sources\*(C'\fR .Sp \&\fI\s-1NEW\s0 to 3.18\fR. .Sp If set, \f(CW\*(C`sources\*(C'\fR must be a hashref containing the names of the TAP::Parser::SourceHandlers to load and/or configure. The values are a hash of configuration that will be accessible to the source handlers via \&\*(L"config_for\*(R" in TAP::Parser::Source. .Sp For example: .Sp .Vb 5 \& sources => { \& Perl => { exec => \*(Aq/path/to/custom/perl\*(Aq }, \& File => { extensions => [ \*(Aq.tap\*(Aq, \*(Aq.txt\*(Aq ] }, \& MyCustom => { some => \*(Aqconfig\*(Aq }, \& } .Ve .Sp The \f(CW\*(C`sources\*(C'\fR parameter affects how \f(CW\*(C`source\*(C'\fR, \f(CW\*(C`tap\*(C'\fR and \f(CW\*(C`exec\*(C'\fR parameters are handled. .Sp For more details, see the \f(CW\*(C`sources\*(C'\fR parameter in \*(L"new\*(R" in TAP::Parser, TAP::Parser::Source, and TAP::Parser::IteratorFactory. .IP "\(bu" 4 \&\f(CW\*(C`aggregator_class\*(C'\fR .Sp The name of the class to use to aggregate test results. The default is TAP::Parser::Aggregator. .IP "\(bu" 4 \&\f(CW\*(C`version\*(C'\fR .Sp \&\fI\s-1NEW\s0 to 3.22\fR. .Sp Assume this \s-1TAP\s0 version for TAP::Parser instead of default \s-1TAP\s0 version 12. .IP "\(bu" 4 \&\f(CW\*(C`formatter_class\*(C'\fR .Sp The name of the class to use to format output. The default is TAP::Formatter::Console, or TAP::Formatter::File if the output isn't a \s-1TTY.\s0 .IP "\(bu" 4 \&\f(CW\*(C`multiplexer_class\*(C'\fR .Sp The name of the class to use to multiplex tests during parallel testing. The default is TAP::Parser::Multiplexer. .IP "\(bu" 4 \&\f(CW\*(C`parser_class\*(C'\fR .Sp The name of the class to use to parse \s-1TAP.\s0 The default is TAP::Parser. .IP "\(bu" 4 \&\f(CW\*(C`scheduler_class\*(C'\fR .Sp The name of the class to use to schedule test execution. The default is TAP::Parser::Scheduler. .IP "\(bu" 4 \&\f(CW\*(C`formatter\*(C'\fR .Sp If set \f(CW\*(C`formatter\*(C'\fR must be an object that is capable of formatting the \&\s-1TAP\s0 output. See TAP::Formatter::Console for an example. .IP "\(bu" 4 \&\f(CW\*(C`errors\*(C'\fR .Sp If parse errors are found in the \s-1TAP\s0 output, a note of this will be made in the summary report. To see all of the parse errors, set this argument to true: .Sp .Vb 1 \& errors => 1 .Ve .IP "\(bu" 4 \&\f(CW\*(C`directives\*(C'\fR .Sp If set to a true value, only test results with directives will be displayed. This overrides other settings such as \f(CW\*(C`verbose\*(C'\fR or \&\f(CW\*(C`failures\*(C'\fR. .IP "\(bu" 4 \&\f(CW\*(C`ignore_exit\*(C'\fR .Sp If set to a true value instruct \f(CW\*(C`TAP::Parser\*(C'\fR to ignore exit and wait status from test scripts. .IP "\(bu" 4 \&\f(CW\*(C`jobs\*(C'\fR .Sp The maximum number of parallel tests to run at any time. Which tests can be run in parallel is controlled by \f(CW\*(C`rules\*(C'\fR. The default is to run only one test at a time. .IP "\(bu" 4 \&\f(CW\*(C`rules\*(C'\fR .Sp A reference to a hash of rules that control which tests may be executed in parallel. If no rules are declared and CPAN::Meta::YAML is available, \&\f(CW\*(C`TAP::Harness\*(C'\fR attempts to load rules from a \s-1YAML\s0 file specified by the \&\f(CW\*(C`rulesfile\*(C'\fR parameter. If no rules file exists, the default is for all tests to be eligible to be run in parallel. .Sp Here some simple examples. For the full details of the data structure and the related glob-style pattern matching, see \&\*(L"Rules data structure\*(R" in TAP::Parser::Scheduler. .Sp .Vb 4 \& # Run all tests in sequence, except those starting with "p" \& $harness\->rules({ \& par => \*(Aqt/p*.t\*(Aq \& }); \& \& # Equivalent YAML file \& \-\-\- \& par: t/p*.t \& \& # Run all tests in parallel, except those starting with "p" \& $harness\->rules({ \& seq => [ \& { seq => \*(Aqt/p*.t\*(Aq }, \& { par => \*(Aq**\*(Aq }, \& ], \& }); \& \& # Equivalent YAML file \& \-\-\- \& seq: \& \- seq: t/p*.t \& \- par: ** \& \& # Run some startup tests in sequence, then some parallel tests than some \& # teardown tests in sequence. \& $harness\->rules({ \& seq => [ \& { seq => \*(Aqt/startup/*.t\*(Aq }, \& { par => [\*(Aqt/a/*.t\*(Aq,\*(Aqt/b/*.t\*(Aq,\*(Aqt/c/*.t\*(Aq], } \& { seq => \*(Aqt/shutdown/*.t\*(Aq }, \& ], \& \& }); \& \& # Equivalent YAML file \& \-\-\- \& seq: \& \- seq: t/startup/*.t \& \- par: \& \- t/a/*.t \& \- t/b/*.t \& \- t/c/*.t \& \- seq: t/shutdown/*.t .Ve .Sp This is an experimental feature and the interface may change. .IP "\(bu" 4 \&\f(CW\*(C`rulesfiles\*(C'\fR .Sp This specifies where to find a \s-1YAML\s0 file of test scheduling rules. If not provided, it looks for a default file to use. It first checks for a file given in the \f(CW\*(C`HARNESS_RULESFILE\*(C'\fR environment variable, then it checks for \&\fItestrules.yml\fR and then \fIt/testrules.yml\fR. .IP "\(bu" 4 \&\f(CW\*(C`stdout\*(C'\fR .Sp A filehandle for catching standard output. .IP "\(bu" 4 \&\f(CW\*(C`trap\*(C'\fR .Sp Attempt to print summary information if run is interrupted by \&\s-1SIGINT \s0(Ctrl-C). .PP Any keys for which the value is \f(CW\*(C`undef\*(C'\fR will be ignored. .SS "Instance Methods" .IX Subsection "Instance Methods" \fI\f(CI\*(C`runtests\*(C'\fI\fR .IX Subsection "runtests" .PP .Vb 1 \& $harness\->runtests(@tests); .Ve .PP Accepts an array of \f(CW@tests\fR to be run. This should generally be the names of test files, but this is not required. Each element in \f(CW@tests\fR will be passed to \f(CW\*(C`TAP::Parser::new()\*(C'\fR as a \f(CW\*(C`source\*(C'\fR. See TAP::Parser for more information. .PP It is possible to provide aliases that will be displayed in place of the test name by supplying the test as a reference to an array containing \&\f(CW\*(C`[ $test, $alias ]\*(C'\fR: .PP .Vb 2 \& $harness\->runtests( [ \*(Aqt/foo.t\*(Aq, \*(AqFoo Once\*(Aq ], \& [ \*(Aqt/foo.t\*(Aq, \*(AqFoo Twice\*(Aq ] ); .Ve .PP Normally it is an error to attempt to run the same test twice. Aliases allow you to overcome this limitation by giving each run of the test a unique name. .PP Tests will be run in the order found. .PP If the environment variable \f(CW\*(C`PERL_TEST_HARNESS_DUMP_TAP\*(C'\fR is defined it should name a directory into which a copy of the raw \s-1TAP\s0 for each test will be written. \s-1TAP\s0 is written to files named for each test. Subdirectories will be created as needed. .PP Returns a TAP::Parser::Aggregator containing the test results. .PP \fI\f(CI\*(C`summary\*(C'\fI\fR .IX Subsection "summary" .PP .Vb 1 \& $harness\->summary( $aggregator ); .Ve .PP Output the summary for a TAP::Parser::Aggregator. .PP \fI\f(CI\*(C`aggregate_tests\*(C'\fI\fR .IX Subsection "aggregate_tests" .PP .Vb 1 \& $harness\->aggregate_tests( $aggregate, @tests ); .Ve .PP Run the named tests and display a summary of result. Tests will be run in the order found. .PP Test results will be added to the supplied TAP::Parser::Aggregator. \&\f(CW\*(C`aggregate_tests\*(C'\fR may be called multiple times to run several sets of tests. Multiple \f(CW\*(C`Test::Harness\*(C'\fR instances may be used to pass results to a single aggregator so that different parts of a complex test suite may be run using different \f(CW\*(C`TAP::Harness\*(C'\fR settings. This is useful, for example, in the case where some tests should run in parallel but others are unsuitable for parallel execution. .PP .Vb 8 \& my $formatter = TAP::Formatter::Console\->new; \& my $ser_harness = TAP::Harness\->new( { formatter => $formatter } ); \& my $par_harness = TAP::Harness\->new( \& { formatter => $formatter, \& jobs => 9 \& } \& ); \& my $aggregator = TAP::Parser::Aggregator\->new; \& \& $aggregator\->start(); \& $ser_harness\->aggregate_tests( $aggregator, @ser_tests ); \& $par_harness\->aggregate_tests( $aggregator, @par_tests ); \& $aggregator\->stop(); \& $formatter\->summary($aggregator); .Ve .PP Note that for simpler testing requirements it will often be possible to replace the above code with a single call to \f(CW\*(C`runtests\*(C'\fR. .PP Each element of the \f(CW@tests\fR array is either: .IP "\(bu" 4 the source name of a test to run .IP "\(bu" 4 a reference to a [ source name, display name ] array .PP In the case of a perl test suite, typically \fIsource names\fR are simply the file names of the test scripts to run. .PP When you supply a separate display name it becomes possible to run a test more than once; the display name is effectively the alias by which the test is known inside the harness. The harness doesn't care if it runs the same test more than once when each invocation uses a different name. .PP \fI\f(CI\*(C`make_scheduler\*(C'\fI\fR .IX Subsection "make_scheduler" .PP Called by the harness when it needs to create a TAP::Parser::Scheduler. Override in a subclass to provide an alternative scheduler. \f(CW\*(C`make_scheduler\*(C'\fR is passed the list of tests that was passed to \f(CW\*(C`aggregate_tests\*(C'\fR. .PP \fI\f(CI\*(C`jobs\*(C'\fI\fR .IX Subsection "jobs" .PP Gets or sets the number of concurrent test runs the harness is handling. By default, this value is 1 \*(-- for parallel testing, this should be set higher. .PP \fI\f(CI\*(C`make_parser\*(C'\fI\fR .IX Subsection "make_parser" .PP Make a new parser and display formatter session. Typically used and/or overridden in subclasses. .PP .Vb 1 \& my ( $parser, $session ) = $harness\->make_parser; .Ve .PP \fI\f(CI\*(C`finish_parser\*(C'\fI\fR .IX Subsection "finish_parser" .PP Terminate use of a parser. Typically used and/or overridden in subclasses. The parser isn't destroyed as a result of this. .SH "CONFIGURING" .IX Header "CONFIGURING" \&\f(CW\*(C`TAP::Harness\*(C'\fR is designed to be easy to configure. .SS "Plugins" .IX Subsection "Plugins" \&\f(CW\*(C`TAP::Parser\*(C'\fR plugins let you change the way \s-1TAP\s0 is \fIinput\fR to and \fIoutput\fR from the parser. .PP TAP::Parser::SourceHandlers handle \s-1TAP \s0\fIinput\fR. You can configure them and load custom handlers using the \f(CW\*(C`sources\*(C'\fR parameter to \*(L"new\*(R". .PP TAP::Formatters handle \s-1TAP \s0\fIoutput\fR. You can load custom formatters by using the \f(CW\*(C`formatter_class\*(C'\fR parameter to \*(L"new\*(R". To configure a formatter, you currently need to instantiate it outside of TAP::Harness and pass it in with the \f(CW\*(C`formatter\*(C'\fR parameter to \*(L"new\*(R". This \fImay\fR be addressed by adding a \fIformatters\fR parameter to \*(L"new\*(R" in the future. .ie n .SS """Module::Build""" .el .SS "\f(CWModule::Build\fP" .IX Subsection "Module::Build" Module::Build version \f(CW0.30\fR supports \f(CW\*(C`TAP::Harness\*(C'\fR. .PP To load \f(CW\*(C`TAP::Harness\*(C'\fR plugins, you'll need to use the \f(CW\*(C`tap_harness_args\*(C'\fR parameter to \f(CW\*(C`new\*(C'\fR, typically from your \f(CW\*(C`Build.PL\*(C'\fR. For example: .PP .Vb 10 \& Module::Build\->new( \& module_name => \*(AqMyApp\*(Aq, \& test_file_exts => [qw(.t .tap .txt)], \& use_tap_harness => 1, \& tap_harness_args => { \& sources => { \& MyCustom => {}, \& File => { \& extensions => [\*(Aq.tap\*(Aq, \*(Aq.txt\*(Aq], \& }, \& }, \& formatter_class => \*(AqTAP::Formatter::HTML\*(Aq, \& }, \& build_requires => { \& \*(AqModule::Build\*(Aq => \*(Aq0.30\*(Aq, \& \*(AqTAP::Harness\*(Aq => \*(Aq3.18\*(Aq, \& }, \& )\->create_build_script; .Ve .PP See \*(L"new\*(R" .ie n .SS """ExtUtils::MakeMaker""" .el .SS "\f(CWExtUtils::MakeMaker\fP" .IX Subsection "ExtUtils::MakeMaker" ExtUtils::MakeMaker does not support TAP::Harness out-of-the-box. .ie n .SS """prove""" .el .SS "\f(CWprove\fP" .IX Subsection "prove" prove supports \f(CW\*(C`TAP::Harness\*(C'\fR plugins, and has a plugin system of its own. See \*(L"\s-1FORMATTERS\*(R"\s0 in prove, \*(L"\s-1SOURCE HANDLERS\*(R"\s0 in prove and App::Prove for more details. .SH "WRITING PLUGINS" .IX Header "WRITING PLUGINS" If you can't configure \f(CW\*(C`TAP::Harness\*(C'\fR to do what you want, and you can't find an existing plugin, consider writing one. .PP The two primary use cases supported by TAP::Harness for plugins are \fIinput\fR and \fIoutput\fR: .IP "Customize how \s-1TAP\s0 gets into the parser" 2 .IX Item "Customize how TAP gets into the parser" To do this, you can either extend an existing TAP::Parser::SourceHandler, or write your own. It's a pretty simple \s-1API,\s0 and they can be loaded and configured using the \f(CW\*(C`sources\*(C'\fR parameter to \*(L"new\*(R". .IP "Customize how \s-1TAP\s0 results are output from the parser" 2 .IX Item "Customize how TAP results are output from the parser" To do this, you can either extend an existing TAP::Formatter, or write your own. Writing formatters are a bit more involved than writing a \&\fISourceHandler\fR, as you'll need to understand the TAP::Parser \s-1API. A\s0 good place to start is by understanding how \*(L"aggregate_tests\*(R" works. .Sp Custom formatters can be loaded configured using the \f(CW\*(C`formatter_class\*(C'\fR parameter to \*(L"new\*(R". .SH "SUBCLASSING" .IX Header "SUBCLASSING" If you can't configure \f(CW\*(C`TAP::Harness\*(C'\fR to do exactly what you want, and writing a plugin isn't an option, consider extending it. It is designed to be (mostly) easy to subclass, though the cases when sub-classing is necessary should be few and far between. .SS "Methods" .IX Subsection "Methods" The following methods are ones you may wish to override if you want to subclass \f(CW\*(C`TAP::Harness\*(C'\fR. .ie n .IP """new""" 4 .el .IP "``new''" 4 .IX Item "new" .PD 0 .ie n .IP """runtests""" 4 .el .IP "``runtests''" 4 .IX Item "runtests" .ie n .IP """summary""" 4 .el .IP "``summary''" 4 .IX Item "summary" .PD .SH "REPLACING" .IX Header "REPLACING" If you like the \f(CW\*(C`prove\*(C'\fR utility and TAP::Parser but you want your own harness, all you need to do is write one and provide \f(CW\*(C`new\*(C'\fR and \&\f(CW\*(C`runtests\*(C'\fR methods. Then you can use the \f(CW\*(C`prove\*(C'\fR utility like so: .PP .Vb 1 \& prove \-\-harness My::Test::Harness .Ve .PP Note that while \f(CW\*(C`prove\*(C'\fR accepts a list of tests (or things to be tested), \f(CW\*(C`new\*(C'\fR has a fairly rich set of arguments. You'll probably want to read over this code carefully to see how all of them are being used. .SH "SEE ALSO" .IX Header "SEE ALSO" Test::Harness ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������man3/CGI::Cookie.3pm��������������������������������������������������������������������������������0000444�����������������00000040755�14764526566�0010001 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CGI::Cookie 3" .TH CGI::Cookie 3 "2020-02-03" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" CGI::Cookie \- Interface to HTTP Cookies .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& use CGI qw/:standard/; \& use CGI::Cookie; \& \& # Create new cookies and send them \& $cookie1 = CGI::Cookie\->new(\-name=>\*(AqID\*(Aq,\-value=>123456); \& $cookie2 = CGI::Cookie\->new(\-name=>\*(Aqpreferences\*(Aq, \& \-value=>{ font => Helvetica, \& size => 12 } \& ); \& print header(\-cookie=>[$cookie1,$cookie2]); \& \& # fetch existing cookies \& %cookies = CGI::Cookie\->fetch; \& $id = $cookies{\*(AqID\*(Aq}\->value; \& \& # create cookies returned from an external source \& %cookies = CGI::Cookie\->parse($ENV{COOKIE}); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" CGI::Cookie is an interface to \s-1HTTP/1.1\s0 cookies, a mechanism that allows Web servers to store persistent information on the browser's side of the connection. Although CGI::Cookie is intended to be used in conjunction with \s-1CGI\s0.pm (and is in fact used by it internally), you can use this module independently. .PP For full information on cookies see .PP .Vb 1 \& https://tools.ietf.org/html/rfc6265 .Ve .SH "USING CGI::Cookie" .IX Header "USING CGI::Cookie" CGI::Cookie is object oriented. Each cookie object has a name and a value. The name is any scalar value. The value is any scalar or array value (associative arrays are also allowed). Cookies also have several optional attributes, including: .IP "\fB1. expiration date\fR" 4 .IX Item "1. expiration date" The expiration date tells the browser how long to hang on to the cookie. If the cookie specifies an expiration date in the future, the browser will store the cookie information in a disk file and return it to the server every time the user reconnects (until the expiration date is reached). If the cookie species an expiration date in the past, the browser will remove the cookie from the disk file. If the expiration date is not specified, the cookie will persist only until the user quits the browser. .IP "\fB2. domain\fR" 4 .IX Item "2. domain" This is a partial or complete domain name for which the cookie is valid. The browser will return the cookie to any host that matches the partial domain name. For example, if you specify a domain name of \*(L".capricorn.com\*(R", then the browser will return the cookie to Web servers running on any of the machines \*(L"www.capricorn.com\*(R", \&\*(L"ftp.capricorn.com\*(R", \*(L"feckless.capricorn.com\*(R", etc. Domain names must contain at least two periods to prevent attempts to match on top level domains like \*(L".edu\*(R". If no domain is specified, then the browser will only return the cookie to servers on the host the cookie originated from. .IP "\fB3. path\fR" 4 .IX Item "3. path" If you provide a cookie path attribute, the browser will check it against your script's \s-1URL\s0 before returning the cookie. For example, if you specify the path \*(L"/cgi\-bin\*(R", then the cookie will be returned to each of the scripts \*(L"/cgi\-bin/tally.pl\*(R", \*(L"/cgi\-bin/order.pl\*(R", and \&\*(L"/cgi\-bin/customer_service/complain.pl\*(R", but not to the script \&\*(L"/cgi\-private/site_admin.pl\*(R". By default, the path is set to \*(L"/\*(R", so that all scripts at your site will receive the cookie. .IP "\fB4. secure flag\fR" 4 .IX Item "4. secure flag" If the \*(L"secure\*(R" attribute is set, the cookie will only be sent to your script if the \s-1CGI\s0 request is occurring on a secure channel, such as \s-1SSL.\s0 .IP "\fB5. httponly flag\fR" 4 .IX Item "5. httponly flag" If the \*(L"httponly\*(R" attribute is set, the cookie will only be accessible through \s-1HTTP\s0 Requests. This cookie will be inaccessible via JavaScript (to prevent \s-1XSS\s0 attacks). .Sp This feature is supported by nearly all modern browsers. .Sp See these URLs for more information: .Sp .Vb 2 \& http://msdn.microsoft.com/en\-us/library/ms533046.aspx \& http://www.browserscope.org/?category=security&v=top .Ve .IP "\fB6. samesite flag\fR" 4 .IX Item "6. samesite flag" Allowed settings are \f(CW\*(C`Strict\*(C'\fR and \f(CW\*(C`Lax\*(C'\fR. .Sp As of June 2016, support is limited to recent releases of Chrome and Opera. .Sp <https://tools.ietf.org/html/draft\-west\-first\-party\-cookies\-07> .SS "Creating New Cookies" .IX Subsection "Creating New Cookies" .Vb 9 \& my $c = CGI::Cookie\->new(\-name => \*(Aqfoo\*(Aq, \& \-value => \*(Aqbar\*(Aq, \& \-expires => \*(Aq+3M\*(Aq, \& \*(Aq\-max\-age\*(Aq => \*(Aq+3M\*(Aq, \& \-domain => \*(Aq.capricorn.com\*(Aq, \& \-path => \*(Aq/cgi\-bin/database\*(Aq, \& \-secure => 1, \& \-samesite=> "Lax" \& ); .Ve .PP Create cookies from scratch with the \fBnew\fR method. The \fB\-name\fR and \&\fB\-value\fR parameters are required. The name must be a scalar value. The value can be a scalar, an array reference, or a hash reference. (At some point in the future cookies will support one of the Perl object serialization protocols for full generality). .PP \&\fB\-expires\fR accepts any of the relative or absolute date formats recognized by \s-1CGI\s0.pm, for example \*(L"+3M\*(R" for three months in the future. See \s-1CGI\s0.pm's documentation for details. .PP \&\fB\-max\-age\fR accepts the same data formats as \fB\-expires\fR, but sets a relative value instead of an absolute like \fB\-expires\fR. This is intended to be more secure since a clock could be changed to fake an absolute time. In practice, as of 2011, \f(CW\*(C`\-max\-age\*(C'\fR still does not enjoy the widespread support that \f(CW\*(C`\-expires\*(C'\fR has. You can set both, and browsers that support \&\f(CW\*(C`\-max\-age\*(C'\fR should ignore the \f(CW\*(C`Expires\*(C'\fR header. The drawback to this approach is the bit of bandwidth for sending an extra header on each cookie. .PP \&\fB\-domain\fR points to a domain name or to a fully qualified host name. If not specified, the cookie will be returned only to the Web server that created it. .PP \&\fB\-path\fR points to a partial \s-1URL\s0 on the current server. The cookie will be returned to all URLs beginning with the specified path. If not specified, it defaults to '/', which returns the cookie to all pages at your site. .PP \&\fB\-secure\fR if set to a true value instructs the browser to return the cookie only when a cryptographic protocol is in use. .PP \&\fB\-httponly\fR if set to a true value, the cookie will not be accessible via JavaScript. .PP \&\fB\-samesite\fR may be \f(CW\*(C`Lax\*(C'\fR, \f(CW\*(C`Strict\*(C'\fR, or \f(CW\*(C`None\*(C'\fR and is an evolving part of the standards for cookies. Please refer to current documentation regarding it. .PP For compatibility with Apache::Cookie, you may optionally pass in a mod_perl request object as the first argument to \f(CW\*(C`new()\*(C'\fR. It will simply be ignored: .PP .Vb 3 \& my $c = CGI::Cookie\->new($r, \& \-name => \*(Aqfoo\*(Aq, \& \-value => [\*(Aqbar\*(Aq,\*(Aqbaz\*(Aq]); .Ve .SS "Sending the Cookie to the Browser" .IX Subsection "Sending the Cookie to the Browser" The simplest way to send a cookie to the browser is by calling the \fIbake()\fR method: .PP .Vb 1 \& $c\->bake; .Ve .PP This will print the Set-Cookie \s-1HTTP\s0 header to \s-1STDOUT\s0 using \s-1CGI\s0.pm. \s-1CGI\s0.pm will be loaded for this purpose if it is not already. Otherwise \s-1CGI\s0.pm is not required or used by this module. .PP Under mod_perl, pass in an Apache request object: .PP .Vb 1 \& $c\->bake($r); .Ve .PP If you want to set the cookie yourself, Within a \s-1CGI\s0 script you can send a cookie to the browser by creating one or more Set-Cookie: fields in the \&\s-1HTTP\s0 header. Here is a typical sequence: .PP .Vb 3 \& my $c = CGI::Cookie\->new(\-name => \*(Aqfoo\*(Aq, \& \-value => [\*(Aqbar\*(Aq,\*(Aqbaz\*(Aq], \& \-expires => \*(Aq+3M\*(Aq); \& \& print "Set\-Cookie: $c\en"; \& print "Content\-Type: text/html\en\en"; .Ve .PP To send more than one cookie, create several Set-Cookie: fields. .PP If you are using \s-1CGI\s0.pm, you send cookies by providing a \-cookie argument to the \fIheader()\fR method: .PP .Vb 1 \& print header(\-cookie=>$c); .Ve .PP Mod_perl users can set cookies using the request object's \fIheader_out()\fR method: .PP .Vb 1 \& $r\->headers_out\->set(\*(AqSet\-Cookie\*(Aq => $c); .Ve .PP Internally, Cookie overloads the "" operator to call its \fIas_string()\fR method when incorporated into the \s-1HTTP\s0 header. \fIas_string()\fR turns the Cookie's internal representation into an RFC-compliant text representation. You may call \fIas_string()\fR yourself if you prefer: .PP .Vb 1 \& print "Set\-Cookie: ",$c\->as_string,"\en"; .Ve .SS "Recovering Previous Cookies" .IX Subsection "Recovering Previous Cookies" .Vb 1 \& %cookies = CGI::Cookie\->fetch; .Ve .PP \&\fBfetch\fR returns an associative array consisting of all cookies returned by the browser. The keys of the array are the cookie names. You can iterate through the cookies this way: .PP .Vb 4 \& %cookies = CGI::Cookie\->fetch; \& for (keys %cookies) { \& do_something($cookies{$_}); \& } .Ve .PP In a scalar context, \fIfetch()\fR returns a hash reference, which may be more efficient if you are manipulating multiple cookies. .PP \&\s-1CGI\s0.pm uses the \s-1URL\s0 escaping methods to save and restore reserved characters in its cookies. If you are trying to retrieve a cookie set by a foreign server, this escaping method may trip you up. Use \fIraw_fetch()\fR instead, which has the same semantics as \fIfetch()\fR, but performs no unescaping. .PP You may also retrieve cookies that were stored in some external form using the \fIparse()\fR class method: .PP .Vb 2 \& $COOKIES = \`cat /usr/tmp/Cookie_stash\`; \& %cookies = CGI::Cookie\->parse($COOKIES); .Ve .PP If you are in a mod_perl environment, you can save some overhead by passing the request object to \fIfetch()\fR like this: .PP .Vb 1 \& CGI::Cookie\->fetch($r); .Ve .PP If the value passed to \fIparse()\fR is undefined, an empty array will returned in list context, and an empty hashref will be returned in scalar context. .SS "Manipulating Cookies" .IX Subsection "Manipulating Cookies" Cookie objects have a series of accessor methods to get and set cookie attributes. Each accessor has a similar syntax. Called without arguments, the accessor returns the current value of the attribute. Called with an argument, the accessor changes the attribute and returns its new value. .IP "\fB\f(BIname()\fB\fR" 4 .IX Item "name()" Get or set the cookie's name. Example: .Sp .Vb 2 \& $name = $c\->name; \& $new_name = $c\->name(\*(Aqfred\*(Aq); .Ve .IP "\fB\f(BIvalue()\fB\fR" 4 .IX Item "value()" Get or set the cookie's value. Example: .Sp .Vb 2 \& $value = $c\->value; \& @new_value = $c\->value([\*(Aqa\*(Aq,\*(Aqb\*(Aq,\*(Aqc\*(Aq,\*(Aqd\*(Aq]); .Ve .Sp \&\fB\f(BIvalue()\fB\fR is context sensitive. In a list context it will return the current value of the cookie as an array. In a scalar context it will return the \fBfirst\fR value of a multivalued cookie. .IP "\fB\f(BIdomain()\fB\fR" 4 .IX Item "domain()" Get or set the cookie's domain. .IP "\fB\f(BIpath()\fB\fR" 4 .IX Item "path()" Get or set the cookie's path. .IP "\fB\f(BIexpires()\fB\fR" 4 .IX Item "expires()" Get or set the cookie's expiration time. .IP "\fB\f(BImax_age()\fB\fR" 4 .IX Item "max_age()" Get or set the cookie's max_age value. .SH "AUTHOR INFORMATION" .IX Header "AUTHOR INFORMATION" The \s-1CGI\s0.pm distribution is copyright 1995\-2007, Lincoln D. Stein. It is distributed under the Artistic License 2.0. It is currently maintained by Lee Johnson with help from many contributors. .PP Address bug reports and comments to: https://github.com/leejo/CGI.pm/issues .PP The original bug tracker can be found at: https://rt.cpan.org/Public/Dist/Display.html?Queue=CGI.pm .PP When sending bug reports, please provide the version of \s-1CGI\s0.pm, the version of Perl, the name and version of your Web server, and the name and version of the operating system you are using. If the problem is even remotely browser dependent, please provide information about the affected browsers as well. .SH "BUGS" .IX Header "BUGS" This section intentionally left blank. .SH "SEE ALSO" .IX Header "SEE ALSO" CGI::Carp, \s-1CGI\s0 .PP \&\s-1RFC 2109\s0 <http://www.ietf.org/rfc/rfc2109.txt>, \s-1RFC 2695\s0 <http://www.ietf.org/rfc/rfc2965.txt> �������������������man3/Test::Builder::IO::Scalar.3pm������������������������������������������������������������������0000444�����������������00000026430�14764526566�0012413 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test::Builder::IO::Scalar 3" .TH Test::Builder::IO::Scalar 3 "2019-09-06" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test::Builder::IO::Scalar \- A copy of IO::Scalar for Test::Builder .SH "DESCRIPTION" .IX Header "DESCRIPTION" This is a copy of IO::Scalar which ships with Test::Builder to support scalar references as filehandles on Perl 5.6. Newer versions of Perl simply use \f(CW\*(C`open()\*(C'\fR's built in support. .PP Test::Builder can not have dependencies on other modules without careful consideration, so its simply been copied into the distribution. .SH "COPYRIGHT and LICENSE" .IX Header "COPYRIGHT and LICENSE" This file came from the \*(L"IO-stringy\*(R" Perl5 toolkit. .PP Copyright (c) 1996 by Eryq. All rights reserved. Copyright (c) 1999,2001 by ZeeGee Software Inc. All rights reserved. .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .SS "Construction" .IX Subsection "Construction" .IP "new [\s-1ARGS...\s0]" 4 .IX Item "new [ARGS...]" \&\fIClass method.\fR Return a new, unattached scalar handle. If any arguments are given, they're sent to \fIopen()\fR. .IP "open [\s-1SCALARREF\s0]" 4 .IX Item "open [SCALARREF]" \&\fIInstance method.\fR Open the scalar handle on a new scalar, pointed to by \s-1SCALARREF.\s0 If no \s-1SCALARREF\s0 is given, a \*(L"private\*(R" scalar is created to hold the file data. .Sp Returns the self object on success, undefined on error. .IP "opened" 4 .IX Item "opened" \&\fIInstance method.\fR Is the scalar handle opened on something? .IP "close" 4 .IX Item "close" \&\fIInstance method.\fR Disassociate the scalar handle from its underlying scalar. Done automatically on destroy. .SS "Input and output" .IX Subsection "Input and output" .IP "flush" 4 .IX Item "flush" \&\fIInstance method.\fR No-op, provided for \s-1OO\s0 compatibility. .IP "getc" 4 .IX Item "getc" \&\fIInstance method.\fR Return the next character, or undef if none remain. .IP "getline" 4 .IX Item "getline" \&\fIInstance method.\fR Return the next line, or undef on end of string. Can safely be called in an array context. Currently, lines are delimited by \*(L"\en\*(R". .IP "getlines" 4 .IX Item "getlines" \&\fIInstance method.\fR Get all remaining lines. It will \fIcroak()\fR if accidentally called in a scalar context. .IP "print \s-1ARGS...\s0" 4 .IX Item "print ARGS..." \&\fIInstance method.\fR Print \s-1ARGS\s0 to the underlying scalar. .Sp \&\fBWarning:\fR this continues to always cause a seek to the end of the string, but if you perform \fIseek()\fRs and \fItell()\fRs, it is still safer to explicitly seek-to-end before subsequent \fIprint()\fRs. .IP "read \s-1BUF, NBYTES,\s0 [\s-1OFFSET\s0]" 4 .IX Item "read BUF, NBYTES, [OFFSET]" \&\fIInstance method.\fR Read some bytes from the scalar. Returns the number of bytes actually read, 0 on end-of-file, undef on error. .IP "write \s-1BUF, NBYTES,\s0 [\s-1OFFSET\s0]" 4 .IX Item "write BUF, NBYTES, [OFFSET]" \&\fIInstance method.\fR Write some bytes to the scalar. .IP "sysread \s-1BUF, LEN,\s0 [\s-1OFFSET\s0]" 4 .IX Item "sysread BUF, LEN, [OFFSET]" \&\fIInstance method.\fR Read some bytes from the scalar. Returns the number of bytes actually read, 0 on end-of-file, undef on error. .IP "syswrite \s-1BUF, NBYTES,\s0 [\s-1OFFSET\s0]" 4 .IX Item "syswrite BUF, NBYTES, [OFFSET]" \&\fIInstance method.\fR Write some bytes to the scalar. .SS "Seeking/telling and other attributes" .IX Subsection "Seeking/telling and other attributes" .IP "autoflush" 4 .IX Item "autoflush" \&\fIInstance method.\fR No-op, provided for \s-1OO\s0 compatibility. .IP "binmode" 4 .IX Item "binmode" \&\fIInstance method.\fR No-op, provided for \s-1OO\s0 compatibility. .IP "clearerr" 4 .IX Item "clearerr" \&\fIInstance method.\fR Clear the error and \s-1EOF\s0 flags. A no-op. .IP "eof" 4 .IX Item "eof" \&\fIInstance method.\fR Are we at end of file? .IP "seek \s-1OFFSET, WHENCE\s0" 4 .IX Item "seek OFFSET, WHENCE" \&\fIInstance method.\fR Seek to a given position in the stream. .IP "sysseek \s-1OFFSET, WHENCE\s0" 4 .IX Item "sysseek OFFSET, WHENCE" \&\fIInstance method.\fR Identical to \f(CW\*(C`seek OFFSET, WHENCE\*(C'\fR, \fIq.v.\fR .IP "tell" 4 .IX Item "tell" \&\fIInstance method.\fR Return the current position in the stream, as a numeric offset. .IP "use_RS [\s-1YESNO\s0]" 4 .IX Item "use_RS [YESNO]" \&\fIInstance method.\fR \&\fBDeprecated and ignored.\fR Obey the current setting of $/, like IO::Handle does? Default is false in 1.x, but cold-welded true in 2.x and later. .IP "setpos \s-1POS\s0" 4 .IX Item "setpos POS" \&\fIInstance method.\fR Set the current position, using the opaque value returned by \f(CW\*(C`getpos()\*(C'\fR. .IP "getpos" 4 .IX Item "getpos" \&\fIInstance method.\fR Return the current position in the string, as an opaque object. .IP "sref" 4 .IX Item "sref" \&\fIInstance method.\fR Return a reference to the underlying scalar. .SH "WARNINGS" .IX Header "WARNINGS" Perl's \s-1TIEHANDLE\s0 spec was incomplete prior to 5.005_57; it was missing support for \f(CW\*(C`seek()\*(C'\fR, \f(CW\*(C`tell()\*(C'\fR, and \f(CW\*(C`eof()\*(C'\fR. Attempting to use these functions with an IO::Scalar will not work prior to 5.005_57. IO::Scalar will not have the relevant methods invoked; and even worse, this kind of bug can lie dormant for a while. If you turn warnings on (via \f(CW$^W\fR or \f(CW\*(C`perl \-w\*(C'\fR), and you see something like this... .PP .Vb 1 \& attempt to seek on unopened filehandle .Ve .PP \&...then you are probably trying to use one of these functions on an IO::Scalar with an old Perl. The remedy is to simply use the \s-1OO\s0 version; e.g.: .PP .Vb 2 \& $SH\->seek(0,0); ### GOOD: will work on any 5.005 \& seek($SH,0,0); ### WARNING: will only work on 5.005_57 and beyond .Ve .SH "VERSION" .IX Header "VERSION" \&\f(CW$Id:\fR Scalar.pm,v 1.6 2005/02/10 21:21:53 dfs Exp $ .SH "AUTHORS" .IX Header "AUTHORS" .SS "Primary Maintainer" .IX Subsection "Primary Maintainer" David F. Skoll (\fIdfs@roaringpenguin.com\fR). .SS "Principal author" .IX Subsection "Principal author" Eryq (\fIeryq@zeegee.com\fR). President, ZeeGee Software Inc (\fIhttp://www.zeegee.com\fR). .SS "Other contributors" .IX Subsection "Other contributors" The full set of contributors always includes the folks mentioned in \*(L"\s-1CHANGE LOG\*(R"\s0 in IO::Stringy. But just the same, special thanks to the following individuals for their invaluable contributions (if I've forgotten or misspelled your name, please email me!): .PP \&\fIAndy Glew,\fR for contributing \f(CW\*(C`getc()\*(C'\fR. .PP \&\fIBrandon Browning,\fR for suggesting \f(CW\*(C`opened()\*(C'\fR. .PP \&\fIDavid Richter,\fR for finding and fixing the bug in \f(CW\*(C`PRINTF()\*(C'\fR. .PP \&\fIEric L. Brine,\fR for his offset-using \fIread()\fR and \fIwrite()\fR implementations. .PP \&\fIRichard Jones,\fR for his patches to massively improve the performance of \f(CW\*(C`getline()\*(C'\fR and add \f(CW\*(C`sysread\*(C'\fR and \f(CW\*(C`syswrite\*(C'\fR. .PP \&\fIB. K. Oxley (binkley),\fR for stringification and inheritance improvements, and sundry good ideas. .PP \&\fIDoug Wilson,\fR for the IO::Handle inheritance and automatic tie-ing. .SH "SEE ALSO" .IX Header "SEE ALSO" IO::String, which is quite similar but which was designed more-recently and with an IO::Handle\-like interface in mind, so you could mix \s-1OO\-\s0 and native-filehandle usage without using \fItied()\fR. .PP \&\fINote:\fR as of version 2.x, these classes all work like their IO::Handle counterparts, so we have comparable functionality to IO::String. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������man3/TAP::Formatter::Color.3pm����������������������������������������������������������������������0000444�����������������00000012630�14764526566�0011727 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "TAP::Formatter::Color 3" .TH TAP::Formatter::Color 3 "2018-03-19" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" TAP::Formatter::Color \- Run Perl test scripts with color .SH "VERSION" .IX Header "VERSION" Version 3.42 .SH "DESCRIPTION" .IX Header "DESCRIPTION" Note that this harness is \fIexperimental\fR. You may not like the colors I've chosen and I haven't yet provided an easy way to override them. .PP This test harness is the same as TAP::Harness, but test results are output in color. Passing tests are printed in green. Failing tests are in red. Skipped tests are blue on a white background and \s-1TODO\s0 tests are printed in white. .PP If Term::ANSIColor cannot be found (and Win32::Console::ANSI if running under Windows) tests will be run without color. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 3 \& use TAP::Formatter::Color; \& my $harness = TAP::Formatter::Color\->new( \e%args ); \& $harness\->runtests(@tests); .Ve .SH "METHODS" .IX Header "METHODS" .SS "Class Methods" .IX Subsection "Class Methods" \fI\f(CI\*(C`new\*(C'\fI\fR .IX Subsection "new" .PP The constructor returns a new \f(CW\*(C`TAP::Formatter::Color\*(C'\fR object. If Term::ANSIColor is not installed, returns undef. .PP \fI\f(CI\*(C`can_color\*(C'\fI\fR .IX Subsection "can_color" .PP .Vb 1 \& Test::Formatter::Color\->can_color() .Ve .PP Returns a boolean indicating whether or not this module can actually generate colored output. This will be false if it could not load the modules needed for the current platform. .PP \fI\f(CI\*(C`set_color\*(C'\fI\fR .IX Subsection "set_color" .PP Set the output color. ��������������������������������������������������������������������������������������������������������man3/Test::utf8.3pm���������������������������������������������������������������������������������0000444�����������������00000024165�14764526566�0007770 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test::utf8 3" .TH Test::utf8 3 "2014-01-13" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test::utf8 \- handy utf8 tests .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 3 \& # check the string is good \& is_valid_string($string); # check the string is valid \& is_sane_utf8($string); # check not double encoded \& \& # check the string has certain attributes \& is_flagged_utf8($string1); # has utf8 flag set \& is_within_ascii($string2); # only has ascii chars in it \& isnt_within_ascii($string3); # has chars outside the ascii range \& is_within_latin_1($string4); # only has latin\-1 chars in it \& isnt_within_ascii($string5); # has chars outside the latin\-1 range .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This module is a collection of tests useful for dealing with utf8 strings in Perl. .PP This module has two types of tests: The validity tests check if a string is valid and not corrupt, whereas the characteristics tests will check that string has a given set of characteristics. .SS "Validity Tests" .IX Subsection "Validity Tests" .ie n .IP "is_valid_string($string, $testname)" 4 .el .IP "is_valid_string($string, \f(CW$testname\fR)" 4 .IX Item "is_valid_string($string, $testname)" Checks if the string is \*(L"valid\*(R", i.e. this passes and returns true unless the internal utf8 flag hasn't been set on scalar that isn't made up of a valid utf\-8 byte sequence. .Sp This should \fInever\fR happen and, in theory, this test should always pass. Unless you (or a module you use) goes monkeying around inside a scalar using Encode's private functions or \s-1XS\s0 code you shouldn't ever end up in a situation where you've got a corrupt scalar. But if you do, and you do, then this function should help you detect the problem. .Sp To be clear, here's an example of the error case this can detect: .Sp .Vb 4 \& my $mark = "Mark"; \& my $leon = "L\ex{e9}on"; \& is_valid_string($mark); # passes, not utf\-8 \& is_valid_string($leon); # passes, not utf\-8 \& \& my $iloveny = "I \ex{2665} NY"; \& is_valid_string($iloveny); # passes, proper utf\-8 \& \& my $acme = "L\ex{c3}\ex{a9}on"; \& Encode::_utf8_on($acme); # (please don\*(Aqt do things like this) \& is_valid_string($acme); # passes, proper utf\-8 byte sequence upgraded \& \& Encode::_utf8_on($leon); # (this is why you don\*(Aqt do things like this) \& is_valid_string($leon); # fails! the byte \ex{e9} isn\*(Aqt valid utf\-8 .Ve .ie n .IP "is_sane_utf8($string, $name)" 4 .el .IP "is_sane_utf8($string, \f(CW$name\fR)" 4 .IX Item "is_sane_utf8($string, $name)" This test fails if the string contains something that looks like it might be dodgy utf8, i.e. containing something that looks like the multi-byte sequence for a latin\-1 character but perl hasn't been instructed to treat as such. Strings that are not utf8 always automatically pass. .Sp Some examples may help: .Sp .Vb 2 \& # This will pass as it\*(Aqs a normal latin\-1 string \& is_sane_utf8("Hello L\ex{e9}eon"); \& \& # this will fail because the \ex{c3}\ex{a9} looks like the \& # utf8 byte sequence for e\-acute \& my $string = "Hello L\ex{c3}\ex{a9}on"; \& is_sane_utf8($string); \& \& # this will pass because the utf8 is correctly interpreted as utf8 \& Encode::_utf8_on($string) \& is_sane_utf8($string); .Ve .Sp Obviously this isn't a hundred percent reliable. The edge case where this will fail is where you have \f(CW\*(C`\ex{c2}\*(C'\fR (which is \*(L"\s-1LATIN CAPITAL LETTER WITH CIRCUMFLEX\*(R"\s0) or \f(CW\*(C`\ex{c3}\*(C'\fR (which is \*(L"\s-1LATIN CAPITAL LETTER WITH TILDE\*(R"\s0) followed by one of the latin\-1 punctuation symbols. .Sp .Vb 4 \& # a capital letter A with tilde surrounded by smart quotes \& # this will fail because it\*(Aqll see the "\ex{c2}\ex{94}" and think \& # it\*(Aqs actually the utf8 sequence for the end smart quote \& is_sane_utf8("\ex{93}\ex{c2}\ex{94}"); .Ve .Sp However, since this hardly comes up this test is reasonably reliable in most cases. Still, care should be applied in cases where dynamic data is placed next to latin\-1 punctuation to avoid false negatives. .Sp There exists two situations to cause this test to fail; The string contains utf8 byte sequences and the string hasn't been flagged as utf8 (this normally means that you got it from an external source like a C library; When Perl needs to store a string internally as utf8 it does it's own encoding and flagging transparently) or a utf8 flagged string contains byte sequences that when translated to characters themselves look like a utf8 byte sequence. The test diagnostics tells you which is the case. .SS "String Characteristic Tests" .IX Subsection "String Characteristic Tests" These routines allow you to check the range of characters in a string. Note that these routines are blind to the actual encoding perl internally uses to store the characters, they just check if the string contains only characters that can be represented in the named encoding: .IP "is_within_ascii" 4 .IX Item "is_within_ascii" Tests that a string only contains characters that are in the \s-1ASCII\s0 character set. .IP "is_within_latin_1" 4 .IX Item "is_within_latin_1" Tests that a string only contains characters that are in latin\-1. .PP Simply check if a scalar is or isn't flagged as utf8 by perl's internals: .ie n .IP "is_flagged_utf8($string, $name)" 4 .el .IP "is_flagged_utf8($string, \f(CW$name\fR)" 4 .IX Item "is_flagged_utf8($string, $name)" Passes if the string is flagged by perl's internals as utf8, fails if it's not. .IP "isnt_flagged_utf8($string,$name)" 4 .IX Item "isnt_flagged_utf8($string,$name)" The opposite of \f(CW\*(C`is_flagged_utf8\*(C'\fR, passes if and only if the string isn't flagged as utf8 by perl's internals. .Sp Note: you can refer to this function as \f(CW\*(C`isn\*(Aqt_flagged_utf8\*(C'\fR if you really want to. .SH "AUTHOR" .IX Header "AUTHOR" Written by Mark Fowler \fBmark@twoshortplanks.com\fR .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright Mark Fowler 2004,2012. All rights reserved. .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .SH "BUGS" .IX Header "BUGS" None known. Please report any to me via the \s-1CPAN RT\s0 system. See http://rt.cpan.org/ for more details. .SH "SEE ALSO" .IX Header "SEE ALSO" Test::DoubleEncodedEntities for testing for double encoded \s-1HTML\s0 entities. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������man3/TAP::Parser::Result::Bailout.3pm���������������������������������������������������������������0000444�����������������00000011751�14764526566�0013127 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "TAP::Parser::Result::Bailout 3" .TH TAP::Parser::Result::Bailout 3 "2018-03-19" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" TAP::Parser::Result::Bailout \- Bailout result token. .SH "VERSION" .IX Header "VERSION" Version 3.42 .SH "DESCRIPTION" .IX Header "DESCRIPTION" This is a subclass of TAP::Parser::Result. A token of this class will be returned if a bail out line is encountered. .PP .Vb 3 \& 1..5 \& ok 1 \- woo hooo! \& Bail out! Well, so much for "woo hooo!" .Ve .SH "OVERRIDDEN METHODS" .IX Header "OVERRIDDEN METHODS" Mainly listed here to shut up the pitiful screams of the pod coverage tests. They keep me awake at night. .IP "\(bu" 4 \&\f(CW\*(C`as_string\*(C'\fR .SS "Instance Methods" .IX Subsection "Instance Methods" \fI\f(CI\*(C`explanation\*(C'\fI\fR .IX Subsection "explanation" .PP .Vb 4 \& if ( $result\->is_bailout ) { \& my $explanation = $result\->explanation; \& print "We bailed out because ($explanation)"; \& } .Ve .PP If, and only if, a token is a bailout token, you can get an \*(L"explanation\*(R" via this method. The explanation is the text after the mystical \*(L"Bail out!\*(R" words which appear in the tap output. �����������������������man3/TAP::Parser::SourceHandler::Perl.3pm�����������������������������������������������������������0000444�����������������00000017602�14764526566�0013713 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "TAP::Parser::SourceHandler::Perl 3" .TH TAP::Parser::SourceHandler::Perl 3 "2018-03-19" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" TAP::Parser::SourceHandler::Perl \- Stream TAP from a Perl executable .SH "VERSION" .IX Header "VERSION" Version 3.42 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& use TAP::Parser::Source; \& use TAP::Parser::SourceHandler::Perl; \& \& my $source = TAP::Parser::Source\->new\->raw( \e\*(Aqscript.pl\*(Aq ); \& $source\->assemble_meta; \& \& my $class = \*(AqTAP::Parser::SourceHandler::Perl\*(Aq; \& my $vote = $class\->can_handle( $source ); \& my $iter = $class\->make_iterator( $source ); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This is a \fIPerl\fR TAP::Parser::SourceHandler \- it has 2 jobs: .PP 1. Figure out if the TAP::Parser::Source it's given is actually a Perl script (\*(L"can_handle\*(R"). .PP 2. Creates an iterator for Perl sources (\*(L"make_iterator\*(R"). .PP Unless you're writing a plugin or subclassing TAP::Parser, you probably won't need to use this module directly. .SH "METHODS" .IX Header "METHODS" .SS "Class Methods" .IX Subsection "Class Methods" \fI\f(CI\*(C`can_handle\*(C'\fI\fR .IX Subsection "can_handle" .PP .Vb 1 \& my $vote = $class\->can_handle( $source ); .Ve .PP Only votes if \f(CW$source\fR looks like a file. Casts the following votes: .PP .Vb 6 \& 0.9 if it has a shebang ala "#!...perl" \& 0.75 if it has any shebang \& 0.8 if it\*(Aqs a .t file \& 0.9 if it\*(Aqs a .pl file \& 0.75 if it\*(Aqs in a \*(Aqt\*(Aq directory \& 0.25 by default (backwards compat) .Ve .PP \fI\f(CI\*(C`make_iterator\*(C'\fI\fR .IX Subsection "make_iterator" .PP .Vb 1 \& my $iterator = $class\->make_iterator( $source ); .Ve .PP Constructs & returns a new TAP::Parser::Iterator::Process for the source. Assumes \f(CW\*(C`$source\->raw\*(C'\fR contains a reference to the perl script. \f(CW\*(C`croak\*(C'\fRs if the file could not be found. .PP The command to run is built as follows: .PP .Vb 1 \& $perl @switches $perl_script @test_args .Ve .PP The perl command to use is determined by \*(L"get_perl\*(R". The command generated is guaranteed to preserve: .PP .Vb 3 \& PERL5LIB \& PERL5OPT \& Taint Mode, if set in the script\*(Aqs shebang .Ve .PP \&\fINote:\fR the command generated will \fInot\fR respect any shebang line defined in your Perl script. This is only a problem if you have compiled a custom version of Perl or if you want to use a specific version of Perl for one test and a different version for another, for example: .PP .Vb 2 \& #!/path/to/a/custom_perl \-\-some \-\-args \& #!/usr/local/perl\-5.6/bin/perl \-w .Ve .PP Currently you need to write a plugin to get around this. .PP \fI\f(CI\*(C`get_taint\*(C'\fI\fR .IX Subsection "get_taint" .PP Decode any taint switches from a Perl shebang line. .PP .Vb 2 \& # $taint will be \*(Aqt\*(Aq \& my $taint = TAP::Parser::SourceHandler::Perl\->get_taint( \*(Aq#!/usr/bin/perl \-t\*(Aq ); \& \& # $untaint will be undefined \& my $untaint = TAP::Parser::SourceHandler::Perl\->get_taint( \*(Aq#!/usr/bin/perl\*(Aq ); .Ve .PP \fI\f(CI\*(C`get_perl\*(C'\fI\fR .IX Subsection "get_perl" .PP Gets the version of Perl currently running the test suite. .SH "SUBCLASSING" .IX Header "SUBCLASSING" Please see \*(L"\s-1SUBCLASSING\*(R"\s0 in TAP::Parser for a subclassing overview. .SS "Example" .IX Subsection "Example" .Vb 1 \& package MyPerlSourceHandler; \& \& use strict; \& \& use TAP::Parser::SourceHandler::Perl; \& \& use base \*(AqTAP::Parser::SourceHandler::Perl\*(Aq; \& \& # use the version of perl from the shebang line in the test file \& sub get_perl { \& my $self = shift; \& if (my $shebang = $self\->shebang( $self\->{file} )) { \& $shebang =~ /^#!(.*\ebperl.*?)(?:(?:\es)|(?:$))/; \& return $1 if $1; \& } \& return $self\->SUPER::get_perl(@_); \& } .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" TAP::Object, TAP::Parser, TAP::Parser::IteratorFactory, TAP::Parser::SourceHandler, TAP::Parser::SourceHandler::Executable, TAP::Parser::SourceHandler::File, TAP::Parser::SourceHandler::Handle, TAP::Parser::SourceHandler::RawTAP ������������������������������������������������������������������������������������������������������������������������������man3/Test::Builder::TodoDiag.3pm��������������������������������������������������������������������0000444�����������������00000011505�14764526566�0012261 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Test::Builder::TodoDiag 3" .TH Test::Builder::TodoDiag 3 "2019-09-06" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test::Builder::TodoDiag \- Test::Builder subclass of Test2::Event::Diag .SH "DESCRIPTION" .IX Header "DESCRIPTION" This is used to encapsulate diag messages created inside \s-1TODO.\s0 .SH "SYNOPSIS" .IX Header "SYNOPSIS" You do not need to use this directly. .SH "SOURCE" .IX Header "SOURCE" The source code repository for Test2 can be found at \&\fIhttp://github.com/Test\-More/test\-more/\fR. .SH "MAINTAINERS" .IX Header "MAINTAINERS" .IP "Chad Granum <exodist@cpan.org>" 4 .IX Item "Chad Granum <exodist@cpan.org>" .SH "AUTHORS" .IX Header "AUTHORS" .PD 0 .IP "Chad Granum <exodist@cpan.org>" 4 .IX Item "Chad Granum <exodist@cpan.org>" .PD .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2019 Chad Granum <exodist@cpan.org>. .PP This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .PP See \fIhttp://dev.perl.org/licenses/\fR �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������man3/App::Prove::State.3pm��������������������������������������������������������������������������0000444�����������������00000017201�14764526566�0011154 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "App::Prove::State 3" .TH App::Prove::State 3 "2018-03-19" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" App::Prove::State \- State storage for the "prove" command. .SH "VERSION" .IX Header "VERSION" Version 3.42 .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \f(CW\*(C`prove\*(C'\fR command supports a \f(CW\*(C`\-\-state\*(C'\fR option that instructs it to store persistent state across runs. This module implements that state and the operations that may be performed on it. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& # Re\-run failed tests \& $ prove \-\-state=failed,save \-rbv .Ve .SH "METHODS" .IX Header "METHODS" .SS "Class Methods" .IX Subsection "Class Methods" \fI\f(CI\*(C`new\*(C'\fI\fR .IX Subsection "new" .PP Accepts a hashref with the following key/value pairs: .IP "\(bu" 4 \&\f(CW\*(C`store\*(C'\fR .Sp The filename of the data store holding the data that App::Prove::State reads. .IP "\(bu" 4 \&\f(CW\*(C`extensions\*(C'\fR (optional) .Sp The test name extensions. Defaults to \f(CW\*(C`.t\*(C'\fR. .IP "\(bu" 4 \&\f(CW\*(C`result_class\*(C'\fR (optional) .Sp The name of the \f(CW\*(C`result_class\*(C'\fR. Defaults to \f(CW\*(C`App::Prove::State::Result\*(C'\fR. .ie n .SS """result_class""" .el .SS "\f(CWresult_class\fP" .IX Subsection "result_class" Getter/setter for the name of the class used for tracking test results. This class should either subclass from \f(CW\*(C`App::Prove::State::Result\*(C'\fR or provide an identical interface. .ie n .SS """extensions""" .el .SS "\f(CWextensions\fP" .IX Subsection "extensions" Get or set the list of extensions that files must have in order to be considered tests. Defaults to ['.t']. .ie n .SS """results""" .el .SS "\f(CWresults\fP" .IX Subsection "results" Get the results of the last test run. Returns a \f(CW\*(C`result_class()\*(C'\fR instance. .ie n .SS """commit""" .el .SS "\f(CWcommit\fP" .IX Subsection "commit" Save the test results. Should be called after all tests have run. .SS "Instance Methods" .IX Subsection "Instance Methods" \fI\f(CI\*(C`apply_switch\*(C'\fI\fR .IX Subsection "apply_switch" .PP .Vb 1 \& $self\->apply_switch(\*(Aqfailed,save\*(Aq); .Ve .PP Apply a list of switch options to the state, updating the internal object state as a result. Nothing is returned. .PP Diagnostics: \- \*(L"Illegal state option: \f(CW%s\fR\*(R" .ie n .IP """last""" 4 .el .IP "\f(CWlast\fR" 4 .IX Item "last" Run in the same order as last time .ie n .IP """failed""" 4 .el .IP "\f(CWfailed\fR" 4 .IX Item "failed" Run only the failed tests from last time .ie n .IP """passed""" 4 .el .IP "\f(CWpassed\fR" 4 .IX Item "passed" Run only the passed tests from last time .ie n .IP """all""" 4 .el .IP "\f(CWall\fR" 4 .IX Item "all" Run all tests in normal order .ie n .IP """hot""" 4 .el .IP "\f(CWhot\fR" 4 .IX Item "hot" Run the tests that most recently failed first .ie n .IP """todo""" 4 .el .IP "\f(CWtodo\fR" 4 .IX Item "todo" Run the tests ordered by number of todos. .ie n .IP """slow""" 4 .el .IP "\f(CWslow\fR" 4 .IX Item "slow" Run the tests in slowest to fastest order. .ie n .IP """fast""" 4 .el .IP "\f(CWfast\fR" 4 .IX Item "fast" Run test tests in fastest to slowest order. .ie n .IP """new""" 4 .el .IP "\f(CWnew\fR" 4 .IX Item "new" Run the tests in newest to oldest order. .ie n .IP """old""" 4 .el .IP "\f(CWold\fR" 4 .IX Item "old" Run the tests in oldest to newest order. .ie n .IP """save""" 4 .el .IP "\f(CWsave\fR" 4 .IX Item "save" Save the state on exit. .PP \fI\f(CI\*(C`get_tests\*(C'\fI\fR .IX Subsection "get_tests" .PP Given a list of args get the names of tests that should run .PP \fI\f(CI\*(C`observe_test\*(C'\fI\fR .IX Subsection "observe_test" .PP Store the results of a test. .PP \fI\f(CI\*(C`save\*(C'\fI\fR .IX Subsection "save" .PP Write the state to a file. .PP \fI\f(CI\*(C`load\*(C'\fI\fR .IX Subsection "load" .PP Load the state from a file �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������man1/cpanm.1����������������������������������������������������������������������������������������0000444�����������������00000064045�14764526566�0006614 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CPANM 1" .TH CPANM 1 "2018-04-19" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" cpanm \- get, unpack build and install modules from CPAN .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 10 \& cpanm Test::More # install Test::More \& cpanm MIYAGAWA/Plack\-0.99_05.tar.gz # full distribution path \& cpanm http://example.org/LDS/CGI.pm\-3.20.tar.gz # install from URL \& cpanm ~/dists/MyCompany\-Enterprise\-1.00.tar.gz # install from a local file \& cpanm \-\-interactive Task::Kensho # Configure interactively \& cpanm . # install from local directory \& cpanm \-\-installdeps . # install all the deps for the current directory \& cpanm \-L extlib Plack # install Plack and all non\-core deps into extlib \& cpanm \-\-mirror http://cpan.cpantesters.org/ DBI # use the fast\-syncing mirror \& cpanm \-\-from https://cpan.metacpan.org/ Plack # use only the HTTPS mirror .Ve .SH "COMMANDS" .IX Header "COMMANDS" .IP "(arguments)" 4 .IX Item "(arguments)" Command line arguments can be either a module name, distribution file, local file path, \s-1HTTP URL\s0 or git repository \s-1URL.\s0 Following commands will all work as you expect. .Sp .Vb 6 \& cpanm Plack \& cpanm Plack/Request.pm \& cpanm MIYAGAWA/Plack\-1.0000.tar.gz \& cpanm /path/to/Plack\-1.0000.tar.gz \& cpanm http://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/Plack\-0.9990.tar.gz \& cpanm git://github.com/plack/Plack.git .Ve .Sp Additionally, you can use the notation using \f(CW\*(C`~\*(C'\fR and \f(CW\*(C`@\*(C'\fR to specify version for a given module. \f(CW\*(C`~\*(C'\fR specifies the version requirement in the CPAN::Meta::Spec format, while \f(CW\*(C`@\*(C'\fR pins the exact version, and is a shortcut for \f(CW\*(C`~"== VERSION"\*(C'\fR. .Sp .Vb 3 \& cpanm Plack~1.0000 # 1.0000 or later \& cpanm Plack~">= 1.0000, < 2.0000" # latest of 1.xxxx \& cpanm Plack@0.9990 # specific version. same as Plack~"== 0.9990" .Ve .Sp The version query including specific version or range will be sent to MetaCPAN to search for previous releases. The query will search for BackPAN archives by default, unless you specify \f(CW\*(C`\-\-dev\*(C'\fR option, in which case, archived versions will be filtered out. .Sp For a git repository, you can specify a branch, tag, or commit \s-1SHA\s0 to build. The default is \f(CW\*(C`master\*(C'\fR .Sp .Vb 2 \& cpanm git://github.com/plack/Plack.git@1.0000 # tag \& cpanm git://github.com/plack/Plack.git@devel # branch .Ve .IP "\-i, \-\-install" 4 .IX Item "-i, --install" Installs the modules. This is a default behavior and this is just a compatibility option to make it work like cpan or cpanp. .IP "\-\-self\-upgrade" 4 .IX Item "--self-upgrade" Upgrades itself. It's just an alias for: .Sp .Vb 1 \& cpanm App::cpanminus .Ve .IP "\-\-info" 4 .IX Item "--info" Displays the distribution information in \&\f(CW\*(C`AUTHOR/Dist\-Name\-ver.tar.gz\*(C'\fR format in the standard out. .IP "\-\-installdeps" 4 .IX Item "--installdeps" Installs the dependencies of the target distribution but won't build itself. Handy if you want to try the application from a version controlled repository such as git. .Sp .Vb 1 \& cpanm \-\-installdeps . .Ve .IP "\-\-look" 4 .IX Item "--look" Download and unpack the distribution and then open the directory with your shell. Handy to poke around the source code or do manual testing. .IP "\-h, \-\-help" 4 .IX Item "-h, --help" Displays the help message. .IP "\-V, \-\-version" 4 .IX Item "-V, --version" Displays the version number. .SH "OPTIONS" .IX Header "OPTIONS" You can specify the default options in \f(CW\*(C`PERL_CPANM_OPT\*(C'\fR environment variable. .IP "\-f, \-\-force" 4 .IX Item "-f, --force" Force install modules even when testing failed. .IP "\-n, \-\-notest" 4 .IX Item "-n, --notest" Skip the testing of modules. Use this only when you just want to save time for installing hundreds of distributions to the same perl and architecture you've already tested to make sure it builds fine. .Sp Defaults to false, and you can say \f(CW\*(C`\-\-no\-notest\*(C'\fR to override when it is set in the default options in \f(CW\*(C`PERL_CPANM_OPT\*(C'\fR. .IP "\-\-test\-only" 4 .IX Item "--test-only" Run the tests only, and do not install the specified module or distributions. Handy if you want to verify the new (or even old) releases pass its unit tests without installing the module. .Sp Note that if you specify this option with a module or distribution that has dependencies, these dependencies will be installed if you don't currently have them. .IP "\-S, \-\-sudo" 4 .IX Item "-S, --sudo" Switch to the root user with \f(CW\*(C`sudo\*(C'\fR when installing modules. Use this if you want to install modules to the system perl include path. .Sp Defaults to false, and you can say \f(CW\*(C`\-\-no\-sudo\*(C'\fR to override when it is set in the default options in \f(CW\*(C`PERL_CPANM_OPT\*(C'\fR. .IP "\-v, \-\-verbose" 4 .IX Item "-v, --verbose" Makes the output verbose. It also enables the interactive configuration. (See \-\-interactive) .IP "\-q, \-\-quiet" 4 .IX Item "-q, --quiet" Makes the output even more quiet than the default. It only shows the successful/failed dependencies to the output. .IP "\-l, \-\-local\-lib" 4 .IX Item "-l, --local-lib" Sets the local::lib compatible path to install modules to. You don't need to set this if you already configure the shell environment variables using local::lib, but this can be used to override that as well. .IP "\-L, \-\-local\-lib\-contained" 4 .IX Item "-L, --local-lib-contained" Same with \f(CW\*(C`\-\-local\-lib\*(C'\fR but with \-\-self\-contained set. All non-core dependencies will be installed even if they're already installed. .Sp For instance, .Sp .Vb 1 \& cpanm \-L extlib Plack .Ve .Sp would install Plack and all of its non-core dependencies into the directory \f(CW\*(C`extlib\*(C'\fR, which can be loaded from your application with: .Sp .Vb 1 \& use local::lib \*(Aq/path/to/extlib\*(Aq; .Ve .Sp Note that this option does \fB\s-1NOT\s0\fR reliably work with perl installations supplied by operating system vendors that strips standard modules from perl, such as \s-1RHEL,\s0 Fedora and CentOS, \fB\s-1UNLESS\s0\fR you also install packages supplying all the modules that have been stripped. For these systems you will probably want to install the \f(CW\*(C`perl\-core\*(C'\fR meta-package which does just that. .IP "\-\-self\-contained" 4 .IX Item "--self-contained" When examining the dependencies, assume no non-core modules are installed on the system. Handy if you want to bundle application dependencies in one directory so you can distribute to other machines. .IP "\-\-exclude\-vendor" 4 .IX Item "--exclude-vendor" Don't include modules installed under the 'vendor' paths when searching for core modules when the \f(CW\*(C`\-\-self\-contained\*(C'\fR flag is in effect. This restores the behaviour from before version 1.7023 .IP "\-\-mirror" 4 .IX Item "--mirror" Specifies the base \s-1URL\s0 for the \s-1CPAN\s0 mirror to use, such as \&\f(CW\*(C`http://cpan.cpantesters.org/\*(C'\fR (you can omit the trailing slash). You can specify multiple mirror URLs by repeating the command line option. .Sp You can use a local directory that has a \s-1CPAN\s0 mirror structure (created by tools such as OrePAN or Pinto) by using a special \&\s-1URL\s0 scheme \f(CW\*(C`file://\*(C'\fR. If the given \s-1URL\s0 begins with `/` (without any scheme), it is considered as a file scheme as well. .Sp .Vb 2 \& cpanm \-\-mirror file:///path/to/mirror \& cpanm \-\-mirror ~/minicpan # Because shell expands ~ to /home/user .Ve .Sp Defaults to \f(CW\*(C`http://www.cpan.org/\*(C'\fR. .IP "\-\-mirror\-only" 4 .IX Item "--mirror-only" Download the mirror's 02packages.details.txt.gz index file instead of querying the \s-1CPAN\s0 Meta \s-1DB.\s0 This will also effectively opt out sending your local perl versions to backend database servers such as \s-1CPAN\s0 Meta \&\s-1DB\s0 and MetaCPAN. .Sp Select this option if you are using a local mirror of \s-1CPAN,\s0 such as minicpan when you're offline, or your own \s-1CPAN\s0 index (a.k.a darkpan). .IP "\-\-from, \-M" 4 .IX Item "--from, -M" .Vb 2 \& cpanm \-M https://cpan.metacpan.org/ \& cpanm \-\-from https://cpan.metacpan.org/ .Ve .Sp Use the given mirror \s-1URL\s0 and its index as the \fIonly\fR source to search and download modules from. .Sp It works similar to \f(CW\*(C`\-\-mirror\*(C'\fR and \f(CW\*(C`\-\-mirror\-only\*(C'\fR combined, with a small difference: unlike \f(CW\*(C`\-\-mirror\*(C'\fR which \fIappends\fR the \s-1URL\s0 to the list of mirrors, \f(CW\*(C`\-\-from\*(C'\fR (or \f(CW\*(C`\-M\*(C'\fR for short) uses the specified \s-1URL\s0 as its \fIonly\fR source to download index and modules from. This makes the option always override the default mirror, which might have been set via global options such as the one set by \f(CW\*(C`PERL_CPANM_OPT\*(C'\fR environment variable. .Sp \&\fBTip:\fR It might be useful if you name these options with your shell aliases, like: .Sp .Vb 2 \& alias minicpanm=\*(Aqcpanm \-\-from ~/minicpan\*(Aq \& alias darkpan=\*(Aqcpanm \-\-from http://mycompany.example.com/DPAN\*(Aq .Ve .IP "\-\-mirror\-index" 4 .IX Item "--mirror-index" \&\fB\s-1EXPERIMENTAL\s0\fR: Specifies the file path to \f(CW\*(C`02packages.details.txt\*(C'\fR for module search index. .IP "\-\-cpanmetadb" 4 .IX Item "--cpanmetadb" \&\fB\s-1EXPERIMENTAL\s0\fR: Specifies an alternate \s-1URI\s0 for \s-1CPAN\s0 MetaDB index lookups. .IP "\-\-metacpan" 4 .IX Item "--metacpan" Prefers MetaCPAN \s-1API\s0 over \s-1CPAN\s0 MetaDB. .IP "\-\-cpanfile" 4 .IX Item "--cpanfile" \&\fB\s-1EXPERIMENTAL\s0\fR: Specified an alternate path for cpanfile to search for, when \f(CW\*(C`\-\-installdeps\*(C'\fR command is in use. Defaults to \f(CW\*(C`cpanfile\*(C'\fR. .IP "\-\-prompt" 4 .IX Item "--prompt" Prompts when a test fails so that you can skip, force install, retry or look in the shell to see what's going wrong. It also prompts when one of the dependency failed if you want to proceed the installation. .Sp Defaults to false, and you can say \f(CW\*(C`\-\-no\-prompt\*(C'\fR to override if it's set in the default options in \f(CW\*(C`PERL_CPANM_OPT\*(C'\fR. .IP "\-\-dev" 4 .IX Item "--dev" \&\fB\s-1EXPERIMENTAL\s0\fR: search for a newer developer release as well. Defaults to false. .IP "\-\-reinstall" 4 .IX Item "--reinstall" cpanm, when given a module name in the command line (i.e. \f(CW\*(C`cpanm Plack\*(C'\fR), checks the locally installed version first and skips if it is already installed. This option makes it skip the check, so: .Sp .Vb 1 \& cpanm \-\-reinstall Plack .Ve .Sp would reinstall Plack even if your locally installed version is latest, or even newer (which would happen if you install a developer release from version control repositories). .Sp Defaults to false. .IP "\-\-interactive" 4 .IX Item "--interactive" Makes the configuration (such as \f(CW\*(C`Makefile.PL\*(C'\fR and \f(CW\*(C`Build.PL\*(C'\fR) interactive, so you can answer questions in the distribution that requires custom configuration or Task:: distributions. .Sp Defaults to false, and you can say \f(CW\*(C`\-\-no\-interactive\*(C'\fR to override when it's set in the default options in \f(CW\*(C`PERL_CPANM_OPT\*(C'\fR. .IP "\-\-pp, \-\-pureperl" 4 .IX Item "--pp, --pureperl" Prefer Pure perl build of modules by setting \f(CW\*(C`PUREPERL_ONLY=1\*(C'\fR for MakeMaker and \f(CW\*(C`\-\-pureperl\-only\*(C'\fR for Build.PL based distributions. Note that not all of the \s-1CPAN\s0 modules support this convention yet. .IP "\-\-with\-recommends, \-\-with\-suggests" 4 .IX Item "--with-recommends, --with-suggests" \&\fB\s-1EXPERIMENTAL\s0\fR: Installs dependencies declared as \f(CW\*(C`recommends\*(C'\fR and \&\f(CW\*(C`suggests\*(C'\fR respectively, per \s-1META\s0 spec. When these dependencies fail to install, cpanm continues the installation, since they're just recommendation/suggestion. .Sp Enabling this could potentially make a circular dependency for a few modules on \s-1CPAN,\s0 when \f(CW\*(C`recommends\*(C'\fR adds a module that \f(CW\*(C`recommends\*(C'\fR back the module in return. .Sp There's also \f(CW\*(C`\-\-without\-recommend\*(C'\fR and \f(CW\*(C`\-\-without\-suggests\*(C'\fR to override the default decision made earlier in \f(CW\*(C`PERL_CPANM_OPT\*(C'\fR. .Sp Defaults to false for both. .IP "\-\-with\-develop" 4 .IX Item "--with-develop" \&\fB\s-1EXPERIMENTAL\s0\fR: Installs develop phase dependencies in \s-1META\s0 files or \&\f(CW\*(C`cpanfile\*(C'\fR when used with \f(CW\*(C`\-\-installdeps\*(C'\fR. Defaults to false. .IP "\-\-with\-configure" 4 .IX Item "--with-configure" \&\fB\s-1EXPERIMENTAL\s0\fR: Installs configure phase dependencies in \f(CW\*(C`cpanfile\*(C'\fR when used with \f(CW\*(C`\-\-installdeps\*(C'\fR. Defaults to false. .IP "\-\-with\-feature, \-\-without\-feature, \-\-with\-all\-features" 4 .IX Item "--with-feature, --without-feature, --with-all-features" \&\fB\s-1EXPERIMENTAL\s0\fR: Specifies the feature to enable, if a module supports optional features per \s-1META\s0 spec 2.0. .Sp .Vb 1 \& cpanm \-\-with\-feature=opt_csv Spreadsheet::Read .Ve .Sp the features can also be interactively chosen when \f(CW\*(C`\-\-interactive\*(C'\fR option is enabled. .Sp \&\f(CW\*(C`\-\-with\-all\-features\*(C'\fR enables all the optional features, and \&\f(CW\*(C`\-\-without\-feature\*(C'\fR can select a feature to disable. .IP "\-\-configure\-timeout, \-\-build\-timeout, \-\-test\-timeout" 4 .IX Item "--configure-timeout, --build-timeout, --test-timeout" Specify the timeout length (in seconds) to wait for the configure, build and test process. Current default values are: 60 for configure, 3600 for build and 1800 for test. .IP "\-\-configure\-args, \-\-build\-args, \-\-test\-args, \-\-install\-args" 4 .IX Item "--configure-args, --build-args, --test-args, --install-args" \&\fB\s-1EXPERIMENTAL\s0\fR: Pass arguments for configure/build/test/install commands respectively, for a given module to install. .Sp .Vb 1 \& cpanm DBD::mysql \-\-configure\-args="\-\-cflags=... \-\-libs=..." .Ve .Sp The argument is only enabled for the module passed as a command line argument, not dependencies. .IP "\-\-scandeps" 4 .IX Item "--scandeps" \&\fB\s-1DEPRECATED\s0\fR: Scans the depencencies of given modules and output the tree in a text format. (See \f(CW\*(C`\-\-format\*(C'\fR below for more options) .Sp Because this command doesn't actually install any distributions, it will be useful that by typing: .Sp .Vb 1 \& cpanm \-\-scandeps Catalyst::Runtime .Ve .Sp you can make sure what modules will be installed. .Sp This command takes into account which modules you already have installed in your system. If you want to see what modules will be installed against a vanilla perl installation, you might want to combine it with \f(CW\*(C`\-L\*(C'\fR option. .IP "\-\-format" 4 .IX Item "--format" \&\fB\s-1DEPRECATED\s0\fR: Determines what format to display the scanned dependency tree. Available options are \f(CW\*(C`tree\*(C'\fR, \f(CW\*(C`json\*(C'\fR, \f(CW\*(C`yaml\*(C'\fR and \&\f(CW\*(C`dists\*(C'\fR. .RS 4 .IP "tree" 8 .IX Item "tree" Displays the tree in a plain text format. This is the default value. .IP "json, yaml" 8 .IX Item "json, yaml" Outputs the tree in a \s-1JSON\s0 or \s-1YAML\s0 format. \s-1JSON\s0 and \s-1YAML\s0 modules need to be installed respectively. The output tree is represented as a recursive tuple of: .Sp .Vb 1 \& [ distribution, dependencies ] .Ve .Sp and the container is an array containing the root elements. Note that there may be multiple root nodes, since you can give multiple modules to the \f(CW\*(C`\-\-scandeps\*(C'\fR command. .IP "dists" 8 .IX Item "dists" \&\f(CW\*(C`dists\*(C'\fR is a special output format, where it prints the distribution filename in the \fIdepth first order\fR after the dependency resolution, like: .Sp .Vb 5 \& GAAS/MIME\-Base64\-3.13.tar.gz \& GAAS/URI\-1.58.tar.gz \& PETDANCE/HTML\-Tagset\-3.20.tar.gz \& GAAS/HTML\-Parser\-3.68.tar.gz \& GAAS/libwww\-perl\-5.837.tar.gz .Ve .Sp which means you can install these distributions in this order without extra dependencies. When combined with \f(CW\*(C`\-L\*(C'\fR option, it will be useful to replay installations on other machines. .RE .RS 4 .RE .IP "\-\-save\-dists" 4 .IX Item "--save-dists" Specifies the optional directory path to copy downloaded tarballs in the \s-1CPAN\s0 mirror compatible directory structure i.e. \fIauthors/id/A/AU/AUTHORS/Foo\-Bar\-version.tar.gz\fR .Sp If the distro tarball did not come from \s-1CPAN,\s0 for example from a local file or from GitHub, then it will be saved under \&\fIvendor/Foo\-Bar\-version.tar.gz\fR. .IP "\-\-uninst\-shadows" 4 .IX Item "--uninst-shadows" Uninstalls the shadow files of the distribution that you're installing. This eliminates the confusion if you're trying to install core (dual-life) modules from \s-1CPAN\s0 against perl 5.10 or older, or modules that used to be XS-based but switched to pure perl at some version. .Sp If you run cpanm as root and use \f(CW\*(C`INSTALL_BASE\*(C'\fR or equivalent to specify custom installation path, you \s-1SHOULD\s0 disable this option so you won't accidentally uninstall dual-life modules from the core include path. .Sp Defaults to true if your perl version is smaller than 5.12, and you can disable that with \f(CW\*(C`\-\-no\-uninst\-shadows\*(C'\fR. .Sp \&\fB\s-1NOTE\s0\fR: Since version 1.3000 this flag is turned off by default for perl newer than 5.12, since with 5.12 \f(CW@INC\fR contains site_perl directory \&\fIbefore\fR the perl core library path, and uninstalling shadows is not necessary anymore and does more harm by deleting files from the core library path. .IP "\-\-uninstall, \-U" 4 .IX Item "--uninstall, -U" Uninstalls a module from the library path. It finds a packlist for given modules, and removes all the files included in the same distribution. .Sp If you enable local::lib, it only removes files from the local::lib directory. .Sp If you try to uninstall a module in \f(CW\*(C`perl\*(C'\fR directory (i.e. core module), an error will be thrown. .Sp A dialog will be prompted to confirm the files to be deleted. If you pass \&\f(CW\*(C`\-f\*(C'\fR option as well, the dialog will be skipped and uninstallation will be forced. .IP "\-\-cascade\-search" 4 .IX Item "--cascade-search" \&\fB\s-1EXPERIMENTAL\s0\fR: Specifies whether to cascade search when you specify multiple mirrors and a mirror doesn't have a module or has a lower version of the module than requested. Defaults to false. .IP "\-\-skip\-installed" 4 .IX Item "--skip-installed" Specifies whether a module given in the command line is skipped if its latest version is already installed. Defaults to true. .Sp \&\fB\s-1NOTE\s0\fR: The \f(CW\*(C`PERL5LIB\*(C'\fR environment variable have to be correctly set for this to work with modules installed using local::lib, unless you always use the \f(CW\*(C`\-l\*(C'\fR option. .IP "\-\-skip\-satisfied" 4 .IX Item "--skip-satisfied" \&\fB\s-1EXPERIMENTAL\s0\fR: Specifies whether a module (and version) given in the command line is skipped if it's already installed. .Sp If you run: .Sp .Vb 1 \& cpanm \-\-skip\-satisfied CGI DBI~1.2 .Ve .Sp cpanm won't install them if you already have \s-1CGI \s0(for whatever versions) or have \s-1DBI\s0 with version higher than 1.2. It is similar to \&\f(CW\*(C`\-\-skip\-installed\*(C'\fR but while \f(CW\*(C`\-\-skip\-installed\*(C'\fR checks if the \&\fIlatest\fR version of \s-1CPAN\s0 is installed, \f(CW\*(C`\-\-skip\-satisfied\*(C'\fR checks if a requested version (or not, which means any version) is installed. .Sp Defaults to false. .IP "\-\-verify" 4 .IX Item "--verify" Verify the integrity of distribution files retrieved from \s-1PAUSE\s0 using \&\s-1CHECKSUMS\s0 and \s-1SIGNATURES \s0(if found). Defaults to false. .IP "\-\-report\-perl\-version" 4 .IX Item "--report-perl-version" Whether it reports the locally installed perl version to the various web server as part of User-Agent. Defaults to true unless \s-1CI\s0 related environment variables such as \f(CW\*(C`TRAVIS\*(C'\fR, \f(CW\*(C`CI\*(C'\fR or \f(CW\*(C`AUTOMATED_TESTING\*(C'\fR is enabled. You can disable it by using \f(CW\*(C`\-\-no\-report\-perl\-version\*(C'\fR. .IP "\-\-auto\-cleanup" 4 .IX Item "--auto-cleanup" Specifies the number of days in which cpanm's work directories expire. Defaults to 7, which means old work directories will be cleaned up in one week. .Sp You can set the value to \f(CW0\fR to make cpan never cleanup those directories. .IP "\-\-man\-pages" 4 .IX Item "--man-pages" Generates man pages for executables (man1) and libraries (man3). .Sp Defaults to true (man pages generated) unless \f(CW\*(C`\-L|\-\-local\-lib\-contained\*(C'\fR option is supplied in which case it's set to false. You can disable it with \f(CW\*(C`\-\-no\-man\-pages\*(C'\fR. .IP "\-\-lwp" 4 .IX Item "--lwp" Uses \s-1LWP\s0 module to download stuff over \s-1HTTP.\s0 Defaults to true, and you can say \f(CW\*(C`\-\-no\-lwp\*(C'\fR to disable using \s-1LWP,\s0 when you want to upgrade \&\s-1LWP\s0 from \s-1CPAN\s0 on some broken perl systems. .IP "\-\-wget" 4 .IX Item "--wget" Uses \s-1GNU\s0 Wget (if available) to download stuff. Defaults to true, and you can say \f(CW\*(C`\-\-no\-wget\*(C'\fR to disable using Wget (versions of Wget older than 1.9 don't support the \f(CW\*(C`\-\-retry\-connrefused\*(C'\fR option used by cpanm). .IP "\-\-curl" 4 .IX Item "--curl" Uses cURL (if available) to download stuff. Defaults to true, and you can say \f(CW\*(C`\-\-no\-curl\*(C'\fR to disable using cURL. .Sp Normally with \f(CW\*(C`\-\-lwp\*(C'\fR, \f(CW\*(C`\-\-wget\*(C'\fR and \f(CW\*(C`\-\-curl\*(C'\fR options set to true (which is the default) cpanm tries \s-1LWP\s0, Wget, cURL and HTTP::Tiny (in that order) and uses the first one available. .SH "ENVIRONMENT VARIABLES" .IX Header "ENVIRONMENT VARIABLES" .IP "\s-1PERL_CPANM_HOME\s0" 4 .IX Item "PERL_CPANM_HOME" The directory cpanm should use to store downloads and build and test modules. Defaults to the \f(CW\*(C`.cpanm\*(C'\fR directory in your user's home directory. .IP "\s-1PERL_CPANM_OPT\s0" 4 .IX Item "PERL_CPANM_OPT" If set, adds a set of default options to every cpanm command. These options come first, and so are overridden by command-line options. .SH "SEE ALSO" .IX Header "SEE ALSO" App::cpanminus .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright 2010\- Tatsuhiko Miyagawa. .SH "AUTHOR" .IX Header "AUTHOR" Tatsuhiko Miyagawa �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������man1/use-devel-checklib.1���������������������������������������������������������������������������0000444�����������������00000012200�14764526566�0011133 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "USE-DEVEL-CHECKLIB 1" .TH USE-DEVEL-CHECKLIB 1 "2019-11-12" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" use\-devel\-checklib \- (DEPRECATED)a script to package Devel::CheckLib with your code. .SH "DESCRIPTION" .IX Header "DESCRIPTION" This script was \s-1DEPRECATED.\s0 .PP If you need to depend on this library, you should use `configure_requires` in Makefile.PL or Build.PL instead. .SH "WARNINGS, BUGS and FEEDBACK" .IX Header "WARNINGS, BUGS and FEEDBACK" This script has not been thoroughly tested. You should check by hand that it has done what you expected after running it. .PP If you use Module::Build::Compat to write a Makefile.PL, then you will need to re-run this script whenever you have generated a new Makefile.PL. .PP I welcome feedback about my code, including constructive criticism. Bug reports should be made using <http://rt.cpan.org/> or by email. .SH "SEE ALSO" .IX Header "SEE ALSO" Devel::CheckLib .SH "AUTHOR" .IX Header "AUTHOR" David Cantrell <\fIdavid@cantrell.org.uk\fR> .SH "COPYRIGHT and LICENCE" .IX Header "COPYRIGHT and LICENCE" Copyright 2007 David Cantrell .PP This software is free-as-in-speech software, and may be used, distributed, and modified under the same conditions as perl itself. .SH "CONSPIRACY" .IX Header "CONSPIRACY" This module is also free-as-in-mason software. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������man1/mech-dump.1������������������������������������������������������������������������������������0000444�����������������00000013600�14764526566�0007364 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "MECH-DUMP 1" .TH MECH-DUMP 1 "2020-02-20" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" mech\-dump \- Dumps information about a web page .SH "VERSION" .IX Header "VERSION" version 1.96 .SH "SYNOPSIS" .IX Header "SYNOPSIS" mech-dump [options] [file|url] .PP Options: .PP .Vb 5 \& \-\-headers Dump HTTP response headers \& \-\-forms Dump table of forms (default action) \& \-\-links Dump table of links \& \-\-images Dump table of images \& \-\-all Dump all four of the above, in that order \& \& \-\-text Dumps the textual part of the web page \& \& \-\-user=user Set the username \& \-\-password=pass Set the password \& \-\-cookie\-file=filename Set the filename to use for persistent cookies \& \& \-\-agent=agent Specify the UserAgent to pass \& \-\-agent\-alias=alias \& Specify the alias for the UserAgent to pass. \& Pick one of: \& * Windows IE 6 \& * Windows Mozilla \& * Mac Safari \& * Mac Mozilla \& * Linux Mozilla \& * Linux Konqueror \& \& \-\-absolute Show URLs as absolute, even if relative in the page \& \-\-help Show this message .Ve .PP The order of the options specified is relevant. Repeated options get repeated dumps. .PP Proxy settings are specified through the environment (e.g. \f(CW\*(C`http_proxy=http://proxy.my.place/\*(C'\fR). See LWP::UserAgent for details. .SH "SEE ALSO" .IX Header "SEE ALSO" WWW::Mechanize .SH "AUTHOR" .IX Header "AUTHOR" Andy Lester <andy at petdance.com> .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is copyright (c) 2004\-2016 by Andy Lester. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. ��������������������������������������������������������������������������������������������������������������������������������man1/config_data.1����������������������������������������������������������������������������������0000444�����������������00000020200�14764526566�0007735 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CONFIG_DATA 1" .TH CONFIG_DATA 1 "2020-03-05" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" config_data \- Query or change configuration of Perl modules .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 3 \& # Get config/feature values \& config_data \-\-module Foo::Bar \-\-feature bazzable \& config_data \-\-module Foo::Bar \-\-config magic_number \& \& # Set config/feature values \& config_data \-\-module Foo::Bar \-\-set_feature bazzable=1 \& config_data \-\-module Foo::Bar \-\-set_config magic_number=42 \& \& # Print a usage message \& config_data \-\-help .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The \f(CW\*(C`config_data\*(C'\fR tool provides a command-line interface to the configuration of Perl modules. By \*(L"configuration\*(R", we mean something akin to \*(L"user preferences\*(R" or \*(L"local settings\*(R". This is a formalization and abstraction of the systems that people like Andreas Koenig (\f(CW\*(C`CPAN::Config\*(C'\fR), Jon Swartz (\f(CW\*(C`HTML::Mason::Config\*(C'\fR), Andy Wardley (\f(CW\*(C`Template::Config\*(C'\fR), and Larry Wall (perl's own Config.pm) have developed independently. .PP The configuration system employed here was developed in the context of \&\f(CW\*(C`Module::Build\*(C'\fR. Under this system, configuration information for a module \f(CW\*(C`Foo\*(C'\fR, for example, is stored in a module called \&\f(CW\*(C`Foo::ConfigData\*(C'\fR) (I would have called it \f(CW\*(C`Foo::Config\*(C'\fR, but that was taken by all those other systems mentioned in the previous paragraph...). These \f(CW\*(C`...::ConfigData\*(C'\fR modules contain the configuration data, as well as publicly accessible methods for querying and setting (yes, actually re-writing) the configuration data. The \f(CW\*(C`config_data\*(C'\fR script (whose docs you are currently reading) is merely a front-end for those methods. If you wish, you may create alternate front-ends. .PP The two types of data that may be stored are called \f(CW\*(C`config\*(C'\fR values and \f(CW\*(C`feature\*(C'\fR values. A \f(CW\*(C`config\*(C'\fR value may be any perl scalar, including references to complex data structures. It must, however, be serializable using \f(CW\*(C`Data::Dumper\*(C'\fR. A \f(CW\*(C`feature\*(C'\fR is a boolean (1 or 0) value. .SH "USAGE" .IX Header "USAGE" This script functions as a basic getter/setter wrapper around the configuration of a single module. On the command line, specify which module's configuration you're interested in, and pass options to get or set \f(CW\*(C`config\*(C'\fR or \f(CW\*(C`feature\*(C'\fR values. The following options are supported: .IP "module" 4 .IX Item "module" Specifies the name of the module to configure (required). .IP "feature" 4 .IX Item "feature" When passed the name of a \f(CW\*(C`feature\*(C'\fR, shows its value. The value will be 1 if the feature is enabled, 0 if the feature is not enabled, or empty if the feature is unknown. When no feature name is supplied, the names and values of all known features will be shown. .IP "config" 4 .IX Item "config" When passed the name of a \f(CW\*(C`config\*(C'\fR entry, shows its value. The value will be displayed using \f(CW\*(C`Data::Dumper\*(C'\fR (or similar) as perl code. When no config name is supplied, the names and values of all known config entries will be shown. .IP "set_feature" 4 .IX Item "set_feature" Sets the given \f(CW\*(C`feature\*(C'\fR to the given boolean value. Specify the value as either 1 or 0. .IP "set_config" 4 .IX Item "set_config" Sets the given \f(CW\*(C`config\*(C'\fR entry to the given value. .IP "eval" 4 .IX Item "eval" If the \f(CW\*(C`\-\-eval\*(C'\fR option is used, the values in \f(CW\*(C`set_config\*(C'\fR will be evaluated as perl code before being stored. This allows moderately complicated data structures to be stored. For really complicated structures, you probably shouldn't use this command-line interface, just use the Perl \s-1API\s0 instead. .IP "help" 4 .IX Item "help" Prints a help message, including a few examples, and exits. .SH "AUTHOR" .IX Header "AUTHOR" Ken Williams, kwilliams@cpan.org .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 1999, Ken Williams. All rights reserved. .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fIModule::Build\fR\|(3), \fIperl\fR\|(1). ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������man1/json_pp.1��������������������������������������������������������������������������������������0000444�����������������00000015621�14764526566�0007162 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "JSON_PP 1" .TH JSON_PP 1 "2019-06-29" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" json_pp \- JSON::PP command utility .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& json_pp [\-v] [\-f from_format] [\-t to_format] [\-json_opt options_to_json1[,options_to_json2[,...]]] .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" json_pp converts between some input and output formats (one of them is \s-1JSON\s0). This program was copied from json_xs and modified. .PP The default input format is json and the default output format is json with pretty option. .SH "OPTIONS" .IX Header "OPTIONS" .SS "\-f" .IX Subsection "-f" .Vb 1 \& \-f from_format .Ve .PP Reads a data in the given format from \s-1STDIN.\s0 .PP Format types: .IP "json" 4 .IX Item "json" as \s-1JSON\s0 .IP "eval" 4 .IX Item "eval" as Perl code .SS "\-t" .IX Subsection "-t" Writes a data in the given format to \s-1STDOUT.\s0 .IP "null" 4 .IX Item "null" no action. .IP "json" 4 .IX Item "json" as \s-1JSON\s0 .IP "dumper" 4 .IX Item "dumper" as Data::Dumper .SS "\-json_opt" .IX Subsection "-json_opt" options to \s-1JSON::PP\s0 .PP Acceptable options are: .PP .Vb 2 \& ascii latin1 utf8 pretty indent space_before space_after relaxed canonical allow_nonref \& allow_singlequote allow_barekey allow_bignum loose escape_slash indent_length .Ve .PP Multiple options must be separated by commas: .PP .Vb 1 \& Right: \-json_opt pretty,canonical \& \& Wrong: \-json_opt pretty \-json_opt canonical .Ve .SS "\-v" .IX Subsection "-v" Verbose option, but currently no action in fact. .SS "\-V" .IX Subsection "-V" Prints version and exits. .SH "EXAMPLES" .IX Header "EXAMPLES" .Vb 2 \& $ perl \-e\*(Aqprint q|{"foo":"XX","bar":1234567890000000000000000}|\*(Aq |\e \& json_pp \-f json \-t dumper \-json_opt pretty,utf8,allow_bignum \& \& $VAR1 = { \& \*(Aqbar\*(Aq => bless( { \& \*(Aqvalue\*(Aq => [ \& \*(Aq0000000\*(Aq, \& \*(Aq0000000\*(Aq, \& \*(Aq5678900\*(Aq, \& \*(Aq1234\*(Aq \& ], \& \*(Aqsign\*(Aq => \*(Aq+\*(Aq \& }, \*(AqMath::BigInt\*(Aq ), \& \*(Aqfoo\*(Aq => "\ex{3042}\ex{3044}" \& }; \& \& $ perl \-e\*(Aqprint q|{"foo":"XX","bar":1234567890000000000000000}|\*(Aq |\e \& json_pp \-f json \-t dumper \-json_opt pretty \& \& $VAR1 = { \& \*(Aqbar\*(Aq => \*(Aq1234567890000000000000000\*(Aq, \& \*(Aqfoo\*(Aq => "\ex{e3}\ex{81}\ex{82}\ex{e3}\ex{81}\ex{84}" \& }; .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" \&\s-1JSON::PP\s0, json_xs .SH "AUTHOR" .IX Header "AUTHOR" Makamaka Hannyaharamitu, <makamaka[at]cpan.org> .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" Copyright 2010 by Makamaka Hannyaharamitu .PP This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. ���������������������������������������������������������������������������������������������������������������man1/corelist.1�������������������������������������������������������������������������������������0000444�����������������00000023120�14764526566�0007327 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "CORELIST 1" .TH CORELIST 1 "2020-02-10" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" corelist \- a commandline frontend to Module::CoreList .SH "DESCRIPTION" .IX Header "DESCRIPTION" See Module::CoreList for one. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 9 \& corelist \-v \& corelist [\-a|\-d] <ModuleName> | /<ModuleRegex>/ [<ModuleVersion>] ... \& corelist [\-v <PerlVersion>] [ <ModuleName> | /<ModuleRegex>/ ] ... \& corelist [\-r <PerlVersion>] ... \& corelist \-\-utils [\-d] <UtilityName> [<UtilityName>] ... \& corelist \-\-utils \-v <PerlVersion> \& corelist \-\-feature <FeatureName> [<FeatureName>] ... \& corelist \-\-diff PerlVersion PerlVersion \& corelist \-\-upstream <ModuleName> .Ve .SH "OPTIONS" .IX Header "OPTIONS" .IP "\-a" 4 .IX Item "-a" lists all versions of the given module (or the matching modules, in case you used a module regexp) in the perls Module::CoreList knows about. .Sp .Vb 1 \& corelist \-a Unicode \& \& Unicode was first released with perl v5.6.2 \& v5.6.2 3.0.1 \& v5.8.0 3.2.0 \& v5.8.1 4.0.0 \& v5.8.2 4.0.0 \& v5.8.3 4.0.0 \& v5.8.4 4.0.1 \& v5.8.5 4.0.1 \& v5.8.6 4.0.1 \& v5.8.7 4.1.0 \& v5.8.8 4.1.0 \& v5.8.9 5.1.0 \& v5.9.0 4.0.0 \& v5.9.1 4.0.0 \& v5.9.2 4.0.1 \& v5.9.3 4.1.0 \& v5.9.4 4.1.0 \& v5.9.5 5.0.0 \& v5.10.0 5.0.0 \& v5.10.1 5.1.0 \& v5.11.0 5.1.0 \& v5.11.1 5.1.0 \& v5.11.2 5.1.0 \& v5.11.3 5.2.0 \& v5.11.4 5.2.0 \& v5.11.5 5.2.0 \& v5.12.0 5.2.0 \& v5.12.1 5.2.0 \& v5.12.2 5.2.0 \& v5.12.3 5.2.0 \& v5.12.4 5.2.0 \& v5.13.0 5.2.0 \& v5.13.1 5.2.0 \& v5.13.2 5.2.0 \& v5.13.3 5.2.0 \& v5.13.4 5.2.0 \& v5.13.5 5.2.0 \& v5.13.6 5.2.0 \& v5.13.7 6.0.0 \& v5.13.8 6.0.0 \& v5.13.9 6.0.0 \& v5.13.10 6.0.0 \& v5.13.11 6.0.0 \& v5.14.0 6.0.0 \& v5.14.1 6.0.0 \& v5.15.0 6.0.0 .Ve .IP "\-d" 4 .IX Item "-d" finds the first perl version where a module has been released by date, and not by version number (as is the default). .IP "\-\-diff" 4 .IX Item "--diff" Given two versions of perl, this prints a human-readable table of all module changes between the two. The output format may change in the future, and is meant for \fIhumans\fR, not programs. For programs, use the Module::CoreList \&\s-1API.\s0 .IP "\-? or \-help" 4 .IX Item "-? or -help" help! help! help! to see more help, try \-\-man. .IP "\-man" 4 .IX Item "-man" all of the help .IP "\-v" 4 .IX Item "-v" lists all of the perl release versions we got the CoreList for. .Sp If you pass a version argument (value of \f(CW$]\fR, like \f(CW5.00503\fR or \f(CW5.008008\fR), you get a list of all the modules and their respective versions. (If you have the \f(CW\*(C`version\*(C'\fR module, you can also use new-style version numbers, like \f(CW5.8.8\fR.) .Sp In module filtering context, it can be used as Perl version filter. .IP "\-r" 4 .IX Item "-r" lists all of the perl releases and when they were released .Sp If you pass a perl version you get the release date for that version only. .IP "\-\-utils" 4 .IX Item "--utils" lists the first version of perl each named utility program was released with .Sp May be used with \-d to modify the first release criteria. .Sp If used with \-v <version> then all utilities released with that version of perl are listed, and any utility programs named on the command line are ignored. .IP "\-\-feature, \-f" 4 .IX Item "--feature, -f" lists the first version bundle of each named feature given .IP "\-\-upstream, \-u" 4 .IX Item "--upstream, -u" Shows if the given module is primarily maintained in perl core or on \s-1CPAN\s0 and bug tracker \s-1URL.\s0 .PP As a special case, if you specify the module name \f(CW\*(C`Unicode\*(C'\fR, you'll get the version number of the Unicode Character Database bundled with the requested perl versions. .SH "EXAMPLES" .IX Header "EXAMPLES" .Vb 1 \& $ corelist File::Spec \& \& File::Spec was first released with perl 5.005 \& \& $ corelist File::Spec 0.83 \& \& File::Spec 0.83 was released with perl 5.007003 \& \& $ corelist File::Spec 0.89 \& \& File::Spec 0.89 was not in CORE (or so I think) \& \& $ corelist File::Spec::Aliens \& \& File::Spec::Aliens was not in CORE (or so I think) \& \& $ corelist /IPC::Open/ \& \& IPC::Open2 was first released with perl 5 \& \& IPC::Open3 was first released with perl 5 \& \& $ corelist /MANIFEST/i \& \& ExtUtils::Manifest was first released with perl 5.001 \& \& $ corelist /Template/ \& \& /Template/ has no match in CORE (or so I think) \& \& $ corelist \-v 5.8.8 B \& \& B 1.09_01 \& \& $ corelist \-v 5.8.8 /^B::/ \& \& B::Asmdata 1.01 \& B::Assembler 0.07 \& B::Bblock 1.02_01 \& B::Bytecode 1.01_01 \& B::C 1.04_01 \& B::CC 1.00_01 \& B::Concise 0.66 \& B::Debug 1.02_01 \& B::Deparse 0.71 \& B::Disassembler 1.05 \& B::Lint 1.03 \& B::O 1.00 \& B::Showlex 1.02 \& B::Stackobj 1.00 \& B::Stash 1.00 \& B::Terse 1.03_01 \& B::Xref 1.01 .Ve .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 2002\-2007 by D.H. aka PodMaster .PP Currently maintained by the perl 5 porters <perl5\-porters@perl.org>. .PP This program is distributed under the same terms as perl itself. See http://perl.org/ or http://cpan.org/ for more info on that. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������man1/prove.1����������������������������������������������������������������������������������������0000444�����������������00000050155�14764526566�0006646 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PROVE 1" .TH PROVE 1 "2017-07-23" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" prove \- Run tests through a TAP harness. .SH "USAGE" .IX Header "USAGE" .Vb 1 \& prove [options] [files or directories] .Ve .SH "OPTIONS" .IX Header "OPTIONS" Boolean options: .PP .Vb 10 \& \-v, \-\-verbose Print all test lines. \& \-l, \-\-lib Add \*(Aqlib\*(Aq to the path for your tests (\-Ilib). \& \-b, \-\-blib Add \*(Aqblib/lib\*(Aq and \*(Aqblib/arch\*(Aq to the path for \& your tests \& \-s, \-\-shuffle Run the tests in random order. \& \-c, \-\-color Colored test output (default). \& \-\-nocolor Do not color test output. \& \-\-count Show the X/Y test count when not verbose \& (default) \& \-\-nocount Disable the X/Y test count. \& \-D \-\-dry Dry run. Show test that would have run. \& \-f, \-\-failures Show failed tests. \& \-o, \-\-comments Show comments. \& \-\-ignore\-exit Ignore exit status from test scripts. \& \-m, \-\-merge Merge test scripts\*(Aq STDERR with their STDOUT. \& \-r, \-\-recurse Recursively descend into directories. \& \-\-reverse Run the tests in reverse order. \& \-q, \-\-quiet Suppress some test output while running tests. \& \-Q, \-\-QUIET Only print summary results. \& \-p, \-\-parse Show full list of TAP parse errors, if any. \& \-\-directives Only show results with TODO or SKIP directives. \& \-\-timer Print elapsed time after each test. \& \-\-trap Trap Ctrl\-C and print summary on interrupt. \& \-\-normalize Normalize TAP output in verbose output \& \-T Enable tainting checks. \& \-t Enable tainting warnings. \& \-W Enable fatal warnings. \& \-w Enable warnings. \& \-h, \-\-help Display this help \& \-?, Display this help \& \-V, \-\-version Display the version \& \-H, \-\-man Longer manpage for prove \& \-\-norc Don\*(Aqt process default .proverc .Ve .PP Options that take arguments: .PP .Vb 10 \& \-I Library paths to include. \& \-P Load plugin (searches App::Prove::Plugin::*.) \& \-M Load a module. \& \-e, \-\-exec Interpreter to run the tests (\*(Aq\*(Aq for compiled \& tests.) \& \-\-ext Set the extension for tests (default \*(Aq.t\*(Aq) \& \-\-harness Define test harness to use. See TAP::Harness. \& \-\-formatter Result formatter to use. See FORMATTERS. \& \-\-source Load and/or configure a SourceHandler. See \& SOURCE HANDLERS. \& \-a, \-\-archive out.tgz Store the resulting TAP in an archive file. \& \-j, \-\-jobs N Run N test jobs in parallel (try 9.) \& \-\-state=opts Control prove\*(Aqs persistent state. \& \-\-statefile=file Use \`file\` instead of \`.prove\` for state \& \-\-rc=rcfile Process options from rcfile \& \-\-rules Rules for parallel vs sequential processing. .Ve .SH "NOTES" .IX Header "NOTES" .SS ".proverc" .IX Subsection ".proverc" If \fI~/.proverc\fR or \fI./.proverc\fR exist they will be read and any options they contain processed before the command line options. Options in \fI.proverc\fR are specified in the same way as command line options: .PP .Vb 3 \& # .proverc \& \-\-state=hot,fast,save \& \-j9 .Ve .PP Additional option files may be specified with the \f(CW\*(C`\-\-rc\*(C'\fR option. Default option file processing is disabled by the \f(CW\*(C`\-\-norc\*(C'\fR option. .PP Under Windows and \s-1VMS\s0 the option file is named \fI_proverc\fR rather than \&\fI.proverc\fR and is sought only in the current directory. .ie n .SS "Reading from ""STDIN""" .el .SS "Reading from \f(CWSTDIN\fP" .IX Subsection "Reading from STDIN" If you have a list of tests (or URLs, or anything else you want to test) in a file, you can add them to your tests by using a '\-': .PP .Vb 1 \& prove \- < my_list_of_things_to_test.txt .Ve .PP See the \f(CW\*(C`README\*(C'\fR in the \f(CW\*(C`examples\*(C'\fR directory of this distribution. .SS "Default Test Directory" .IX Subsection "Default Test Directory" If no files or directories are supplied, \f(CW\*(C`prove\*(C'\fR looks for all files matching the pattern \f(CW\*(C`t/*.t\*(C'\fR. .SS "Colored Test Output" .IX Subsection "Colored Test Output" Colored test output using TAP::Formatter::Color is the default, but if output is not to a terminal, color is disabled. You can override this by adding the \f(CW\*(C`\-\-color\*(C'\fR switch. .PP Color support requires Term::ANSIColor and, on windows platforms, also Win32::Console::ANSI. If the necessary module(s) are not installed colored output will not be available. .SS "Exit Code" .IX Subsection "Exit Code" If the tests fail \f(CW\*(C`prove\*(C'\fR will exit with non-zero status. .SS "Arguments to Tests" .IX Subsection "Arguments to Tests" It is possible to supply arguments to tests. To do so separate them from prove's own arguments with the arisdottle, '::'. For example .PP .Vb 1 \& prove \-v t/mytest.t :: \-\-url http://example.com .Ve .PP would run \fIt/mytest.t\fR with the options '\-\-url http://example.com'. When running multiple tests they will each receive the same arguments. .ie n .SS """\-\-exec""" .el .SS "\f(CW\-\-exec\fP" .IX Subsection "--exec" Normally you can just pass a list of Perl tests and the harness will know how to execute them. However, if your tests are not written in Perl or if you want all tests invoked exactly the same way, use the \f(CW\*(C`\-e\*(C'\fR, or \f(CW\*(C`\-\-exec\*(C'\fR switch: .PP .Vb 3 \& prove \-\-exec \*(Aq/usr/bin/ruby \-w\*(Aq t/ \& prove \-\-exec \*(Aq/usr/bin/perl \-Tw \-mstrict \-Ilib\*(Aq t/ \& prove \-\-exec \*(Aq/path/to/my/customer/exec\*(Aq .Ve .ie n .SS """\-\-merge""" .el .SS "\f(CW\-\-merge\fP" .IX Subsection "--merge" If you need to make sure your diagnostics are displayed in the correct order relative to test results you can use the \f(CW\*(C`\-\-merge\*(C'\fR option to merge the test scripts' \s-1STDERR\s0 into their \s-1STDOUT.\s0 .PP This guarantees that \s-1STDOUT \s0(where the test results appear) and \s-1STDERR \&\s0(where the diagnostics appear) will stay in sync. The harness will display any diagnostics your tests emit on \s-1STDERR.\s0 .PP Caveat: this is a bit of a kludge. In particular note that if anything that appears on \s-1STDERR\s0 looks like a test result the test harness will get confused. Use this option only if you understand the consequences and can live with the risk. .ie n .SS """\-\-trap""" .el .SS "\f(CW\-\-trap\fP" .IX Subsection "--trap" The \f(CW\*(C`\-\-trap\*(C'\fR option will attempt to trap \s-1SIGINT \s0(Ctrl-C) during a test run and display the test summary even if the run is interrupted .ie n .SS """\-\-state""" .el .SS "\f(CW\-\-state\fP" .IX Subsection "--state" You can ask \f(CW\*(C`prove\*(C'\fR to remember the state of previous test runs and select and/or order the tests to be run based on that saved state. .PP The \f(CW\*(C`\-\-state\*(C'\fR switch requires an argument which must be a comma separated list of one or more of the following options. .ie n .IP """last""" 4 .el .IP "\f(CWlast\fR" 4 .IX Item "last" Run the same tests as the last time the state was saved. This makes it possible, for example, to recreate the ordering of a shuffled test. .Sp .Vb 2 \& # Run all tests in random order \& $ prove \-b \-\-state=save \-\-shuffle \& \& # Run them again in the same order \& $ prove \-b \-\-state=last .Ve .ie n .IP """failed""" 4 .el .IP "\f(CWfailed\fR" 4 .IX Item "failed" Run only the tests that failed on the last run. .Sp .Vb 2 \& # Run all tests \& $ prove \-b \-\-state=save \& \& # Run failures \& $ prove \-b \-\-state=failed .Ve .Sp If you also specify the \f(CW\*(C`save\*(C'\fR option newly passing tests will be excluded from subsequent runs. .Sp .Vb 2 \& # Repeat until no more failures \& $ prove \-b \-\-state=failed,save .Ve .ie n .IP """passed""" 4 .el .IP "\f(CWpassed\fR" 4 .IX Item "passed" Run only the passed tests from last time. Useful to make sure that no new problems have been introduced. .ie n .IP """all""" 4 .el .IP "\f(CWall\fR" 4 .IX Item "all" Run all tests in normal order. Multple options may be specified, so to run all tests with the failures from last time first: .Sp .Vb 1 \& $ prove \-b \-\-state=failed,all,save .Ve .ie n .IP """hot""" 4 .el .IP "\f(CWhot\fR" 4 .IX Item "hot" Run the tests that most recently failed first. The last failure time of each test is stored. The \f(CW\*(C`hot\*(C'\fR option causes tests to be run in most\-recent\- failure order. .Sp .Vb 1 \& $ prove \-b \-\-state=hot,save .Ve .Sp Tests that have never failed will not be selected. To run all tests with the most recently failed first use .Sp .Vb 1 \& $ prove \-b \-\-state=hot,all,save .Ve .Sp This combination of options may also be specified thus .Sp .Vb 1 \& $ prove \-b \-\-state=adrian .Ve .ie n .IP """todo""" 4 .el .IP "\f(CWtodo\fR" 4 .IX Item "todo" Run any tests with todos. .ie n .IP """slow""" 4 .el .IP "\f(CWslow\fR" 4 .IX Item "slow" Run the tests in slowest to fastest order. This is useful in conjunction with the \f(CW\*(C`\-j\*(C'\fR parallel testing switch to ensure that your slowest tests start running first. .Sp .Vb 1 \& $ prove \-b \-\-state=slow \-j9 .Ve .ie n .IP """fast""" 4 .el .IP "\f(CWfast\fR" 4 .IX Item "fast" Run test tests in fastest to slowest order. .ie n .IP """new""" 4 .el .IP "\f(CWnew\fR" 4 .IX Item "new" Run the tests in newest to oldest order based on the modification times of the test scripts. .ie n .IP """old""" 4 .el .IP "\f(CWold\fR" 4 .IX Item "old" Run the tests in oldest to newest order. .ie n .IP """fresh""" 4 .el .IP "\f(CWfresh\fR" 4 .IX Item "fresh" Run those test scripts that have been modified since the last test run. .ie n .IP """save""" 4 .el .IP "\f(CWsave\fR" 4 .IX Item "save" Save the state on exit. The state is stored in a file called \fI.prove\fR (\fI_prove\fR on Windows and \s-1VMS\s0) in the current directory. .PP The \f(CW\*(C`\-\-state\*(C'\fR switch may be used more than once. .PP .Vb 1 \& $ prove \-b \-\-state=hot \-\-state=all,save .Ve .SS "\-\-rules" .IX Subsection "--rules" The \f(CW\*(C`\-\-rules\*(C'\fR option is used to control which tests are run sequentially and which are run in parallel, if the \f(CW\*(C`\-\-jobs\*(C'\fR option is specified. The option may be specified multiple times, and the order matters. .PP The most practical use is likely to specify that some tests are not \&\*(L"parallel-ready\*(R". Since mentioning a file with \-\-rules doesn't cause it to be selected to run as a test, you can \*(L"set and forget\*(R" some rules preferences in your .proverc file. Then you'll be able to take maximum advantage of the performance benefits of parallel testing, while some exceptions are still run in parallel. .PP \fI\-\-rules examples\fR .IX Subsection "--rules examples" .PP .Vb 2 \& # All tests are allowed to run in parallel, except those starting with "p" \& \-\-rules=\*(Aqseq=t/p*.t\*(Aq \-\-rules=\*(Aqpar=**\*(Aq \& \& # All tests must run in sequence except those starting with "p", which should be run parallel \& \-\-rules=\*(Aqpar=t/p*.t\*(Aq .Ve .PP \fI\-\-rules resolution\fR .IX Subsection "--rules resolution" .IP "\(bu" 4 By default, all tests are eligible to be run in parallel. Specifying any of your own rules removes this one. .IP "\(bu" 4 \&\*(L"First match wins\*(R". The first rule that matches a test will be the one that applies. .IP "\(bu" 4 Any test which does not match a rule will be run in sequence at the end of the run. .IP "\(bu" 4 The existence of a rule does not imply selecting a test. You must still specify the tests to run. .IP "\(bu" 4 Specifying a rule to allow tests to run in parallel does not make them run in parallel. You still need specify the number of parallel \f(CW\*(C`jobs\*(C'\fR in your Harness object. .PP \fI\-\-rules Glob-style pattern matching\fR .IX Subsection "--rules Glob-style pattern matching" .PP We implement our own glob-style pattern matching for \-\-rules. Here are the supported patterns: .PP .Vb 5 \& ** is any number of characters, including /, within a pathname \& * is zero or more characters within a filename/directory name \& ? is exactly one character within a filename/directory name \& {foo,bar,baz} is any of foo, bar or baz. \& \e is an escape character .Ve .PP \fIMore advanced specifications for parallel vs sequence run rules\fR .IX Subsection "More advanced specifications for parallel vs sequence run rules" .PP If you need more advanced management of what runs in parallel vs in sequence, see the associated 'rules' documentation in TAP::Harness and TAP::Parser::Scheduler. If what's possible directly through \f(CW\*(C`prove\*(C'\fR is not sufficient, you can write your own harness to access these features directly. .ie n .SS "@INC" .el .SS "\f(CW@INC\fP" .IX Subsection "@INC" prove introduces a separation between \*(L"options passed to the perl which runs prove\*(R" and \*(L"options passed to the perl which runs tests\*(R"; this distinction is by design. Thus the perl which is running a test starts with the default \f(CW@INC\fR. Additional library directories can be added via the \f(CW\*(C`PERL5LIB\*(C'\fR environment variable, via \-Ifoo in \f(CW\*(C`PERL5OPT\*(C'\fR or via the \f(CW\*(C`\-Ilib\*(C'\fR option to \fIprove\fR. .SS "Taint Mode" .IX Subsection "Taint Mode" Normally when a Perl program is run in taint mode the contents of the \&\f(CW\*(C`PERL5LIB\*(C'\fR environment variable do not appear in \f(CW@INC\fR. .PP Because \f(CW\*(C`PERL5LIB\*(C'\fR is often used during testing to add build directories to \f(CW@INC\fR prove passes the names of any directories found in \f(CW\*(C`PERL5LIB\*(C'\fR as \-I switches. The net effect of this is that \&\f(CW\*(C`PERL5LIB\*(C'\fR is honoured even when prove is run in taint mode. .SH "FORMATTERS" .IX Header "FORMATTERS" You can load a custom TAP::Parser::Formatter: .PP .Vb 1 \& prove \-\-formatter MyFormatter .Ve .SH "SOURCE HANDLERS" .IX Header "SOURCE HANDLERS" You can load custom TAP::Parser::SourceHandlers, to change the way the parser interprets particular \fIsources\fR of \s-1TAP.\s0 .PP .Vb 1 \& prove \-\-source MyHandler \-\-source YetAnother t .Ve .PP If you want to provide config to the source you can use: .PP .Vb 4 \& prove \-\-source MyCustom \e \& \-\-source Perl \-\-perl\-option \*(Aqfoo=bar baz\*(Aq \-\-perl\-option avg=0.278 \e \& \-\-source File \-\-file\-option extensions=.txt \-\-file\-option extensions=.tmp t \& \-\-source pgTAP \-\-pgtap\-option pset=format=html \-\-pgtap\-option pset=border=2 .Ve .PP Each \f(CW\*(C`\-\-$source\-option\*(C'\fR option must specify a key/value pair separated by an \&\f(CW\*(C`=\*(C'\fR. If an option can take multiple values, just specify it multiple times, as with the \f(CW\*(C`extensions=\*(C'\fR examples above. If the option should be a hash reference, specify the value as a second pair separated by a \f(CW\*(C`=\*(C'\fR, as in the \&\f(CW\*(C`pset=\*(C'\fR examples above (escape \f(CW\*(C`=\*(C'\fR with a backslash). .PP All \f(CW\*(C`\-\-sources\*(C'\fR are combined into a hash, and passed to \*(L"new\*(R" in TAP::Harness's \&\f(CW\*(C`sources\*(C'\fR parameter. .PP See TAP::Parser::IteratorFactory for more details on how configuration is passed to \fISourceHandlers\fR. .SH "PLUGINS" .IX Header "PLUGINS" Plugins can be loaded using the \f(CW\*(C`\-P\f(CIplugin\f(CW\*(C'\fR syntax, eg: .PP .Vb 1 \& prove \-PMyPlugin .Ve .PP This will search for a module named \f(CW\*(C`App::Prove::Plugin::MyPlugin\*(C'\fR, or failing that, \f(CW\*(C`MyPlugin\*(C'\fR. If the plugin can't be found, \f(CW\*(C`prove\*(C'\fR will complain & exit. .PP You can pass arguments to your plugin by appending \f(CW\*(C`=arg1,arg2,etc\*(C'\fR to the plugin name: .PP .Vb 1 \& prove \-PMyPlugin=fou,du,fafa .Ve .PP Please check individual plugin documentation for more details. .SS "Available Plugins" .IX Subsection "Available Plugins" For an up-to-date list of plugins available, please check \s-1CPAN:\s0 .PP <http://search.cpan.org/search?query=App%3A%3AProve+Plugin> .SS "Writing Plugins" .IX Subsection "Writing Plugins" Please see \*(L"\s-1PLUGINS\*(R"\s0 in App::Prove. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������man1/htmltree.1�������������������������������������������������������������������������������������0000444�����������������00000010340�14764526566�0007327 0����������������������������������������������������������������������������������������������������ustar�00�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������.\" Automatically generated by Pod::Man 2.27 (Pod::Simple 3.28) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "HTMLTREE 1" .TH HTMLTREE 1 "2020-03-05" "perl v5.16.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" htmltree \- Parse the given HTML file(s) and dump the parse tree .SH "SYNOPSIS" .IX Header "SYNOPSIS" htmltree \-D3 \-w file1 file2 file3 .PP .Vb 4 \& Options: \& \-D[number] sets HTML::TreeBuilder::Debug to that figure. \& \-w turns on $tree\->warn(1) for the new tree \& \-h Help message .Ve ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������man7/ea-php71.7.gz����������������������������������������������������������������������������������0000644�����������������00000002047�14764613633�0007457 0����������������������������������������������������������������������������������������������������ustar�00������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������V]O8}@ #e[ hE)M±#ۡʿc'M ľ{5I:9=W8t/-wZXENJ꫊kL]& KVS܌%G4gެo|\5.a+-M 5JKaǭ:w#,t8aw:&5\Q7 cc寧b9[L J#$-dy<[f'K'xڛּ\8 V^ )7Mk|p{� @J*Mw_ ?Z9ϕ =lBih+B<qVI-+Pe 0B J 5%DAb!5[G! k%3]mKL&IAR :/*ץD٬liSmڣ:pqՈ*X RHGh๩yVs-@y%7=G]C:Z9F}SlQD#uA=fԵq s*[+ռKJJڊucGU0SsH1JȹP^ll7*!CvfЋğ FンA*u!U0TDaDQg[KY*ɪVcf+|S3ZֈvV<됄BnLnşݰ]e=Ő `5XG\3d;rM]e w+n  P:.8{|( pFÒ!h1a QF_g(x<E(/..κ`s b돯~4K%}KUku\pWicB v�n.9;M~Pspz8>ÊH⦟y\<LCտ d'YInNX2[\-2YȌv6-5#B 7jQXS}p{9D ,,\rx`- ЗR<Ppg`w{@nw{-x|<.:hا .F1 �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������