### Start Source: https://wiki.overbyte.eu/wiki/index.php/THttpServer.OnGetDocument Starts the web server to begin listening for incoming HTTP requests. ```APIDOC ## Start ### Description Starts the web server so it listens for incoming requests. ### Method Method call ### Signature procedure Start; ``` -------------------------------- ### Configure WebAppServer and Host settings in INI Source: https://wiki.overbyte.eu/wiki/index.php/TWSocketServer.State Example configuration for SSL certificate automation and host binding settings as used in OverbyteIcsSslMultiWebServ.ini. ```ini [WebAppServer] SslCertAutoOrder=True CertExpireDays=30 X509ProxyURL= SrvSupplierTitle=LetsEncrypt-New SrvAcmeSupplier=AcmeLetsEncrypt SrvAcmeCertProfile=tlsserver SrvAcmeCertValidity=90 SrvCertChallenge=ChallAlpnApp SrvCertPKeyType=PrivKeyECsecp256 SrvCertSignDigest=Digest_sha256 ``` ```ini [Host4] Hosts=test7.ftptest.org,test7.ftptest.org.uk,test7.ftptest.co.uk HostTag=HTTP-FTPTEST Desc=test7-LetsEncrypt BindIpAddr=192.168.1.123 BindNonPort=80 BindSslPort=443 HostEnabled=False SslSecLevel=sslSrvSecInterFS WellKnownPath=c:\websites\well-known\ WebRedirectURL=https://www.telecom-tariffs.co.uk/ WebRedirectStat=301 SslCert=c:\certificates\local\test7_ftptest_org.pfx SslPassword=password CliCertMethod=sslCliCertNone CertSupplierProto=SuppProtoAcmeV2 ``` -------------------------------- ### Blocking Pseudo Code Example Source: https://wiki.overbyte.eu/wiki/index.php/Asynchronous_Paradigm Demonstrates a blocking pattern that fails with non-blocking ICS components because execution continues before the connection is established. ```text Connect; Send(Something); ``` -------------------------------- ### Example Certificate File List Source: https://wiki.overbyte.eu/wiki/index.php/FAQ_Order_SSL_Certificates A list of files generated upon completion of a Let's Encrypt order for the domain test3.telecom-tariffs.co.uk. ```text ics-control.db AcmePrivateKey.pem AcmePublicKey.pem LE-SA-v1.2-November-15-2017.pdf LE-5860824-test3_telecom-tariffs_co_uk-bundle.pem LE-5860824-test3_telecom-tariffs_co_uk-certonly.pem LE-5860824-test3_telecom-tariffs_co_uk-inters.pem LE-5860824-test3_telecom-tariffs_co_uk-privatekey.pem LE-5860824-test3_telecom-tariffs_co_uk-request.pem LE-5860824-test3_telecom-tariffs_co_uk.pfx test3_telecom-tariffs_co_uk-bundle.pem test3_telecom-tariffs_co_uk-certonly.pem test3_telecom-tariffs_co_uk-inters.pem test3_telecom-tariffs_co_uk-privatekey.pem test3_telecom-tariffs_co_uk-request.pem test3_telecom-tariffs_co_uk.pfx ``` -------------------------------- ### Use Name method in C++ Source: https://wiki.overbyte.eu/wiki/index.php/TemplateProp Example of calling the Name method within a C++ loop to perform a dummy operation. ```cpp for (int n = 0; n < 10; n++) { BusyString += Coffee->Name(BusyString); } ``` -------------------------------- ### Use Name method in Delphi Source: https://wiki.overbyte.eu/wiki/index.php/TemplateProp Example of calling the Name method within a loop to perform a dummy operation. ```delphi for n := 1 to 10 do BusyString := BusyString + Coffee.Name(BusyString); ``` -------------------------------- ### function AcmeCheckSaveOrder(DomainCheck: Boolean = True; UpdateDB: Boolean = False): Boolean; Source: https://wiki.overbyte.eu/wiki/index.php/FAQ_Order_SSL_Certificates Starts the certificate order process by validating properties and domain accessibility. ```APIDOC ## function AcmeCheckSaveOrder(DomainCheck: Boolean = True; UpdateDB: Boolean = False): Boolean ### Description This is the main function to start a certificate order. It checks the Common Name is included in the SANs, validates the challenge method, and optionally checks domain accessibility. ``` -------------------------------- ### Implement ReceiveStr in OnDataAvailable Source: https://wiki.overbyte.eu/wiki/index.php/TWSocket.State Example usage of ReceiveStr within an OnDataAvailable event handler. ```Pascal procedure TMySocket.MyOnDataAvailable(Sender: TObject; ErrCode: Word); var s :String; // received packet begin if ErrCode <> 0 then begin exit; end; s:=ReceiveStr; end; ``` -------------------------------- ### Redistribute SSL Certificate Domain Source: https://wiki.overbyte.eu/wiki/index.php?action=edit&title=FAQ_Order_SSL_Certificates Copies certificate files to the web server for orders in Collected or Installed states. ```Delphi function CertRedistDomain(const aDomain: String): Boolean; ``` -------------------------------- ### Initiating Non-Blocking Connection Source: https://wiki.overbyte.eu/wiki/index.php/Asynchronous_Paradigm Shows how to assign an event handler and initiate a connection in an asynchronous environment. ```pascal **procedure** TForm1.MySendData; **begin ** WSocket1.OnSessionConnected := WSocket1SessionConnected; WSocket1.Connect; **end**; ``` -------------------------------- ### List of New Sample Applications Source: https://wiki.overbyte.eu/wiki/index.php?printable=yes&title=ICS_V8.60 A collection of new sample projects provided with ICS V8.60 for testing various protocols and functionalities. ```text OverbyteIcsMailQuTst.dpr Simple mailing list tool using Mail Queue using SSL. ``` ```text OverbyteIcsIpStmLogTst.dpr Test IP stream logging, sending streams as client or server using SSL. ``` ```text OverbyteIcsWhoisCliTst.dpr Test Whois protocol, looks up servers automatically. ``` ```text OverbyteIcsTimeTst.dpr Test SNTP time protocol as client or server. ``` ```text OverbyteIcsXferTst.dpr File transfer testing, file copying, FTP upload and download, HTTP download, and file listing, with SSL. ``` ```text OverbyteIcsXferTstW.dpr Same as OverbyteIcsXferTst but Unicode for Delphi 2007. ``` -------------------------------- ### function AcmeV2StartChallgs: Boolean; Source: https://wiki.overbyte.eu/wiki/index.php/FAQ_Order_SSL_Certificates Requests the supplier to test the challenges. ```APIDOC ## function AcmeV2StartChallgs: Boolean ### Description Asks the supplier to test the challenges. The Order Issue State will be updated to ChallgPend. ``` -------------------------------- ### Creating a socket in C# Source: https://wiki.overbyte.eu/wiki/index.php/FAQ._Microsoft_.NET_framework Initializes a TWSocket instance and configures connection parameters after referencing the custom-built ICS DLL. ```csharp using OverByte.Ics; using OverByte.Ics.Units; lSocket = new TWSocket(null); lSocket.Addr = "127.0.0.1"; lSocket.Port = "10001"; lSocket.LineMode = true; lSocket.OnSessionConnected += new TSessionConnected(lSocket_OnSessionConnected); lSocket.OnDataAvailable += new TDataAvailable(lSocket_OnDataAvailable); lSocket.Connect(); ``` -------------------------------- ### List of Available PEM CA Bundle Files Source: https://wiki.overbyte.eu/wiki/index.php/FAQ_SSL/TLS_Certificate_Authority_Root_Stores Displays the available certificate bundles and the count of certificates contained within each file. ```text apple.pem - 156 Certificates google_aosp.pem - 143 Certificates microsoft_windows.pem - 310 Certificates mozilla_nss.pem - 145 Certificates openjdk.pem - 89 Certificates oracle_java.pem - 91 Certificates ``` -------------------------------- ### OpenSSL Resource Files Source: https://wiki.overbyte.eu/wiki/index.php?printable=yes&title=ICS_V9.1 List of available OpenSSL resource files for different versions and platforms. ```text LibV30OpenSSL32.RES LibV30OpenSSL64.RES LibV31OpenSSL32.RES LibV31OpenSSL64.RES LibV32OpenSSL32.RES LibV32OpenSSL64.RES ``` -------------------------------- ### function AcmeV2GetChallgs: Boolean; Source: https://wiki.overbyte.eu/wiki/index.php/FAQ_Order_SSL_Certificates Places a certificate order with the supplier to retrieve challenges. ```APIDOC ## function AcmeV2GetChallgs: Boolean ### Description Places a certificate order with the supplier. The supplier provides challenges for each domain in the order. ``` -------------------------------- ### Concurrent Connection Management Source: https://wiki.overbyte.eu/wiki/index.php/Asynchronous_Paradigm Illustrates handling multiple connections within a single thread using non-blocking calls and event-driven responses. ```pascal **procedure** TForm1.MySendData; **var** I : Integer; **begin ** **for** I := 0 **to** List.Count -1 **do** TWSocket(List[I]).Connect; **end**; ``` ```pascal **procedure** TForm1.WSocket1SessionConnect(Sender: TObject; ErrCode: Word); **begin** **if** ErrCode = 0 **then** TWSocket(Sender).Send(Something); **end**; ``` -------------------------------- ### Blacklist and Logging Unit Source: https://wiki.overbyte.eu/wiki/index.php?printable=yes&title=ICS_V8.60 Includes utilities for IP blacklisting and file logging. ```Pascal OverbyteIcsBlacklist.pas - TIcsBlackList, TIcsStringBuild, TIcsBuffLogStream Blacklisting of malicious IP addresses, file logging functions. ``` -------------------------------- ### function SetAcmeAccount(CreateNew: Boolean = False): Boolean; Source: https://wiki.overbyte.eu/wiki/index.php/FAQ_Order_SSL_Certificates Opens the supplier account and optionally creates a new one. ```APIDOC ## function SetAcmeAccount(CreateNew: Boolean = False): Boolean ### Description Opens the supplier account as in CertDirWork, optionally creating a new account for AcmeSupplier if the directory does not exist or is empty. ``` -------------------------------- ### Multi-File HTTP Client Unit Source: https://wiki.overbyte.eu/wiki/index.php?printable=yes&title=ICS_V8.60 Downloads multiple files via HTTP from lists or parsed links. ```Pascal OverbyteIcsHttpMulti.pas - TIcsHttpMulti HTTP client that downloads multiple files from a list or by parsing web links. ``` -------------------------------- ### TFtpServer Methods Source: https://wiki.overbyte.eu/wiki/index.php/TFtpServer.UserData Methods available to control the state of the FTP server and manage client connections. ```APIDOC ## Start ### Description Starts the FTP server and begins listening for incoming client connections. ## Stop ### Description Stops the FTP server from listening for new connections. Note that this does not disconnect currently connected clients. ## Disconnect ### Description Disconnects a specific client from the server. ## DisconnectAll ### Description Disconnects all currently connected clients from the server. ## IsClient ### Description Checks if a given object is an active client instance. ``` -------------------------------- ### TCoffee.Name(const Parameter: string): string Source: https://wiki.overbyte.eu/wiki/index.php/TemplateProp A method that takes a string argument and returns the same string. ```APIDOC ## function TCoffee.Name(const Parameter: string): string ### Description Name takes a string as an argument and returns the same string. This method is inherited from TCustomCoffee.Name. ### Parameters - **Parameter** (string) - Required - The input string to be returned. ### Returns - (string) - The same string provided as the input parameter. ``` -------------------------------- ### Multi-File FTP Client Unit Source: https://wiki.overbyte.eu/wiki/index.php?printable=yes&title=ICS_V8.60 Enables FTP operations on multiple files and sub-directories. ```Pascal OverbyteIcsFtpMulti.pas - TIcsFtpMulti FTP client that indexes, uploads or downloads multiple files in multiple sub-directories optionally only transferring different files. ``` -------------------------------- ### Additional ICS Resource Files Source: https://wiki.overbyte.eu/wiki/index.php?printable=yes&title=ICS_V9.1 List of smaller resource files containing certificates, port lists, and MAC prefixes. ```text ICSCerts.RES (contains ICSRootCA.pem and ICS_Intermediate_Short-bundle.pem) ICSPortList.RES (contains ICSPortList.txt) nmap-mac-prefixes.RES (contains nmap-mac-prefixes.txt) ``` -------------------------------- ### Root Certificate Authority Bundle Resource Files Source: https://wiki.overbyte.eu/wiki/index.php?printable=yes&title=ICS_V9.1 Resource files for root certificate bundles with their corresponding compiler defines. ```text RootCaCertsBundle.RES {$DEFINE OpenSSL_CA_Bundle_Large} sslRootCACertsBundle.RES {$DEFINE OpenSSL_CA_Bundle_Small} TrustedCaBundle.RES {$DEFINE OpenSSL_CA_Bundle_Medium} ``` -------------------------------- ### Handling Session Connection Event Source: https://wiki.overbyte.eu/wiki/index.php/Asynchronous_Paradigm Event handler triggered once the asynchronous connection is successfully established. ```pascal **procedure** TForm1.WSocket1SessionConnected(Sender: TObject; ErrCode: Word); **begin** WSocket1.Send(Something); **end**; ``` -------------------------------- ### Whois Client Unit Source: https://wiki.overbyte.eu/wiki/index.php?printable=yes&title=ICS_V8.60 Provides a Whois protocol client with server directory support. ```Pascal OverbyteIcsWhoisCli.pas - TIcsWhoisCli Whois protocol client with server directory. ``` -------------------------------- ### function DBFindAccSupp(const ATitle: String): Integer; Source: https://wiki.overbyte.eu/wiki/index.php/FAQ_Order_SSL_Certificates Searches for a Supplier Title in the AcmeSuppRecs records. ```APIDOC ## function DBFindAccSupp(const ATitle: String): Integer ### Description Searches for a Supplier Title in the AcmeSuppRecs records, returning the index if found, or -1. ``` -------------------------------- ### TSmtpCli Methods Source: https://wiki.overbyte.eu/wiki/index.php/TSmtpCli.Port A list of available methods for controlling the SMTP client, including connection management, command execution, and message handling. ```APIDOC ## Methods - **Abort()**: Cancels any transactions in progress and closes the server connection. - **Auth()**: Sends the SMTP AUTH command to start the authentication process. - **CalcMsgSize()**: Calculates the message size (V7). - **CalcMsgSizeSync()**: Calculates the message size synchronously (V7). - **Connect()**: Connects to the mail server. - **Create()**: Constructor. - **Data()**: Sends the SMTP DATA command. - **Destroy()**: Destructor. - **Ehlo()**: Sends the SMTP EHLO command. - **Helo()**: Sends the SMTP HELO command. - **HighLevelAsync()**: Executes multiple commands consecutively. - **Mail()**: Executes MailFrom, RcptTo, and Data methods consecutively. - **MailFrom()**: Sends the SMTP MAIL command. - **MailFromSIZE()**: Sends the SMTP MAIL command with message size appended (V7). - **Open()**: Executes Connect, Ehlo, and Auth methods consecutively. - **Quit()**: Sends the SMTP QUIT command. - **RcptNameAdd()**: Assigns recipients to the various recipient lists. - **RcptTo()**: Sends the SMTP RCPT command for each recipient in the lists. - **Rset()**: Sends the SMTP RSET command. - **ThreadAttach()**: Attaches the component to the current thread context. - **ThreadDetach()**: Detaches the component from the current thread context. - **Vrfy()**: Sends the SMTP VRFY command. ``` -------------------------------- ### function AcmeV2TestChallgs: Boolean; Source: https://wiki.overbyte.eu/wiki/index.php/FAQ_Order_SSL_Certificates Locally tests the acquired challenges. ```APIDOC ## function AcmeV2TestChallgs: Boolean ### Description Once challenges have been acquired from the supplier, this function locally tests them. ``` -------------------------------- ### function DBSuppliersRead: Boolean; Source: https://wiki.overbyte.eu/wiki/index.php/FAQ_Order_SSL_Certificates Opens and reads the Acme Supplier Database into an array of AcmeSuppRecs records. ```APIDOC ## function DBSuppliersRead: Boolean ### Description Opens and reads the Acme Supplier Database (C:\ProgramData\ICS-Acme-Accounts\ics-acme-accounts.db) into an array of AcmeSuppRecs records. ``` -------------------------------- ### Define TWSocket.ReceiveStr Source: https://wiki.overbyte.eu/wiki/index.php/TWSocket.State The function signature for ReceiveStr. ```Pascal **function** ReceiveStr: **string**; ``` -------------------------------- ### TFtpClient Methods Source: https://wiki.overbyte.eu/wiki/index.php/TFtpClient.UserName Methods available for controlling FTP operations, including connection management and file transfer control. ```APIDOC ## Methods ### Abort Abort the current operation and drops the connection. ### AbortAsync Abort the current operation and drops the connection (non-blocking). ### AbortXfer Abort the current file transfer but does not close the connection. ### AbortXferAsync Abort the current file transfer but does not close the connection (non-blocking). ### DirectoryAsync An "all-in-one" command. It calls Open, User, Pass, Pasv, Cwd, List and Quit commands. ### Quit Closes the connection from the server. ### QuitAsync Closes the connection from the server (non-blocking). ``` -------------------------------- ### function DBWriteCNDomain: Boolean; Source: https://wiki.overbyte.eu/wiki/index.php/FAQ_Order_SSL_Certificates Saves or updates properties for a certificate to the account database. ```APIDOC ## function DBWriteCNDomain: Boolean ### Description Save or update properties for CertCommonName certificate to the account database. ``` -------------------------------- ### THttpCli Methods Source: https://wiki.overbyte.eu/wiki/index.php/THttpCli.URL Methods available for controlling the THttpCli component and performing HTTP requests. ```APIDOC ## THttpCli Methods ### Abort Abort the current operation. ### Close Close the current connection (synchronous). ### CloseAsync Close the current connection (asynchronous). ### Create Create a new component instance. ### Destroy Destroy the current component instance. ### Get Request an URL using GET method (synchronous). ### GetASync Request an URL using GET method (asynchronous). ### Head Request the header for an URL (synchronous). ### HeadASync Request the header for an URL (asynchronous). ### Post Request an URL using the POST method (synchronous). ### PostASync Request an URL using the POST method (asynchronous). ### Put Request an URL using the PUT method (synchronous). ### PutASync Request an URL using the PUT method (asynchronous). ``` -------------------------------- ### TPop3Client Methods Source: https://wiki.overbyte.eu/wiki/index.php/TPop3Cli.Uidl A collection of methods available for the TPop3Client component to manage POP3 server sessions. ```APIDOC ## Apop ### Description Uses APOP authentication to log in without sending plain text credentials. Note that not all servers support this method. ## Connect ### Description Establishes a connection to the POP3 server. Requires Host, UserName, PassWord, and optionally Port properties to be set beforehand. ## Dele ### Description Marks a message for deletion on the server. Requires the MsgNum property to be set. Deleted messages can be recovered using Rset before the session terminates. ## Last ### Description Retrieves the highest message number accessed during the current session. ## List ### Description Displays information about messages. If MsgNum is set, displays info for that specific message; otherwise, displays info for all messages. Triggers OnListBegin, OnListLine, and OnListEnd events. ## Noop ### Description Sends a no-operation command to the server, useful for keeping the connection alive during idle periods. ## Pass ### Description Sends the password to the server. Should be called after the User method. ## Quit ### Description Logs off the server and terminates the session. ## Retr ### Description Retrieves a specific message from the server. Requires the MsgNum property to be set. ## Rpop ### Description An alternative authentication method to Pass, requiring a reserved TCP port (< 1024). Validates access based on the user and host. ## Rset ### Description Unmarks all messages previously marked for deletion and resets the 'highest message accessed' counter. ## Stat ### Description Requests the server to provide the total number of messages and the total size of the mail account in octets. ## Top ### Description Retrieves the header and a specified number of lines of a message body. Requires MsgNum and MsgLines properties to be set. ## Uidl ### Description Retrieves the unique identifier (UIDL) for a message. Requires the MsgNum property to be set. ## User ### Description Sends the username to the server. Requires the UserName property to be set. ``` -------------------------------- ### File Copying Unit Source: https://wiki.overbyte.eu/wiki/index.php?printable=yes&title=ICS_V8.60 Supports indexing, copying, and deleting files across directories and volumes. ```Pascal OverbyteIcsFileCopy.pas - TIcsFileCopy Indexing, copying and deleting of multiple file directories, optionally only transferring different files, it will copy entire volumes. ``` -------------------------------- ### AcmeV2OrderFinal Source: https://wiki.overbyte.eu/wiki/index.php/FAQ_Order_SSL_Certificates Finalizes an SSL certificate order by creating a private key and CSR, then sending it to the supplier. ```APIDOC ## function AcmeV2OrderFinal(LogErrors: Boolean = True): Boolean ### Description Finalizes the order after challenges are tested. It generates a private key and CSR, sends them to the supplier, and updates the order state to IssuePend. ### Parameters - **LogErrors** (Boolean) - Optional - Whether to log errors during the process. Defaults to True. ``` -------------------------------- ### AcmeV2CollectCert Source: https://wiki.overbyte.eu/wiki/index.php/FAQ_Order_SSL_Certificates Downloads the issued SSL/TLS certificate and associated intermediate certificates. ```APIDOC ## function AcmeV2CollectCert: Boolean ### Description Downloads the issued certificate, validates the trust chain, creates output files based on configuration, and updates the order state to Collected. ``` -------------------------------- ### function DBReadCNDomain(const CNDomain: String): Boolean; Source: https://wiki.overbyte.eu/wiki/index.php/FAQ_Order_SSL_Certificates Reads order properties for a specific Common Name from the account database. ```APIDOC ## function DBReadCNDomain(const CNDomain: String): Boolean ### Description For an open supplier account, reads all the properties for an order with the Common Name from the account database, if found, including one or more subject alternate names. ``` -------------------------------- ### Handling Data Availability Source: https://wiki.overbyte.eu/wiki/index.php/Asynchronous_Paradigm Processes incoming data via an event handler rather than waiting for a read request to complete. ```pascal **procedure** TForm1.WSocket1DataAvailable(Sender: TObject; ErrCode: Word); **var** S : **String**; **begin** **if** ErrCode = 0 **then** **begin** S := WSocket1.ReceiveStr; **if** S = 'Hello'#13#10 **then** SendStr('Hi there'#13#10); **end**; **end**; ``` -------------------------------- ### SSL Client Security Levels Source: https://wiki.overbyte.eu/wiki/index.php?printable=yes&title=ICS_V8.58 List of available SslCliSecurity settings for configuring SSL/TLS protocols and cipher requirements. ```text sslCliSecIgnore - ignore, use old settings sslCliSecNone - all protocols and ciphers, any key lengths sslCliSecSsl3Only - SSLv3 only, all ciphers, any key lengths, MD5 sslCliSecTls1Only - TLSv1 only, all ciphers, RSA/DH keys=>2048 sslCliSecTls11Only - TLSv1.1 only, all ciphers, RSA/DH keys=>2048 sslCliSecTls12Only - TLSv1.2 only, all ciphers, RSA/DH keys=>2048 sslCliSecTls13Only - TLSv1.3 only, all ciphers, RSA/DH keys=>2048 sslCliSecTls1 - TLSv1 or later, all ciphers, RSA/DH keys=>1024 sslCliSecTls11 - TLSv1.1 or later, all ciphers, RSA/DH keys=>1024 sslCliSecTls12 - TLSv1.2 or later, all ciphers, RSA/DH keys=>2048 sslCliSecBack - TLSv1 or later, backward ciphers, RSA/DH keys=>1024, ECC=>160, no MD5, SHA1 sslCliSecInter - TLSv1.1 or later, intermediate ciphers, RSA/DH keys=>2048, ECC=>224, no RC4, no SHA1 certs sslCliSecHigh - TLSv1.2 or later, high ciphers, RSA/DH keys=>2048, ECC=>224, no RC4, no SHA1 certs sslCliSecHigh128 - TLSv1.2 or later, high ciphers, RSA/DH keys=>3072, ECC=>256, FS forced sslCliSecHigh192 - TLSv1.2 or later, high ciphers, RSA/DH keys=>7680, ECC=>384, FS forced sslCliSecDefault - currently equal to sslCliSecTls11 but will change soon to sslCliSecHigh when TLSv1.1 is deprecated. ``` -------------------------------- ### Unicode Multi-File HTTP Client Unit Source: https://wiki.overbyte.eu/wiki/index.php?printable=yes&title=ICS_V8.60 Unicode-enabled version of the multi-file HTTP client for Delphi 2007. ```Pascal OverbyteIcsHttpMultiW.pas - TIcsHttpMulti Same as OverbyteIcsHttpMulti but Unicode for Delphi 2007. ``` -------------------------------- ### Unicode Multi-File FTP Client Unit Source: https://wiki.overbyte.eu/wiki/index.php?printable=yes&title=ICS_V8.60 Unicode-enabled version of the multi-file FTP client for Delphi 2007. ```Pascal OverbyteIcsFtpMultiW.pas - TIcsFtpMulti Same as OverbyteIcsFtpMulti but Unicode for Delphi 2007. ``` -------------------------------- ### CertRedistDomain Source: https://wiki.overbyte.eu/wiki/index.php/FAQ_Order_SSL_Certificates Redistributes certificate files to the web server. ```APIDOC ## function CertRedistDomain(const aDomain: String): Boolean ### Description Copies certificate files to the web server for orders in the Collected or Installed state. ### Parameters - **aDomain** (String) - Required - The domain name. ``` -------------------------------- ### Define ICS Private Key File Encryption Types Source: https://wiki.overbyte.eu/wiki/index.php/FAQ_Using_TSslCertTools Enumeration of available encryption ciphers for private key files. ```Pascal TSslPrivKeyCipher = ( PrivKeyEncNone, PrivKeyEncTripleDES, PrivKeyEncIDEA, PrivKeyEncAES128, PrivKeyEncAES192, PrivKeyEncAES256, PrivKeyEncBlowfish128); ``` -------------------------------- ### Define ICS Private Key Algorithms Source: https://wiki.overbyte.eu/wiki/index.php/FAQ_Using_TSslCertTools Enumeration of private key algorithms and bit lengths. RSA PSS keys require OpenSSL 1.1.1 or later, and higher bit lengths significantly increase computational overhead. ```Pascal TSslPrivKeyType = ( PrivKeyRsa1024, { level 1 - 80 bits } PrivKeyRsa2048, { level 2 - 112 bits } PrivKeyRsa3072, { level 3 - 128 bits } PrivKeyRsa4096, { level 3 - 128 bits } PrivKeyRsa7680, { level 4 - 192 bits } PrivKeyRsa15360, { level 5 - 256 bits } PrivKeyECsecp256, { level 3 - 128 bits } PrivKeyECsecp384, { level 4 - 192 bits } PrivKeyECsecp512, { level 5 - 256 bits } PrivKeyEd25519, { level 3 - 128 bits } PrivKeyRsaPss2048, { level 2 - 112 bits } PrivKeyRsaPss3072, { level 3 - 128 bits } PrivKeyRsaPss4096, { level 3 - 128 bits } PrivKeyRsaPss7680, { level 4 - 192 bits } PrivKeyRsaPss15360); { level 5 - 256 bits } ``` -------------------------------- ### Configure ICS CA Bundle Size Source: https://wiki.overbyte.eu/wiki/index.php/FAQ_SSL/TLS_Certificate_Authority_Root_Stores Define the desired CA bundle size in OverbyteIcsDef.inc to include the corresponding resource in the application build. ```Pascal {$DEFINE OpenSSL_CA_Bundle_Small} {$DEFINE OpenSSL_CA_Bundle_Medium} {$DEFINE OpenSSL_CA_Bundle_Large} ``` -------------------------------- ### Define TServerObject.FOnRequestDone Source: https://wiki.overbyte.eu/wiki/index.php/Special%3ARandomRootpage The event is defined as a protected TNotifyEvent within the TServerObject class. ```pascal **protected** FOnRequestDone : TNotifyEvent; ``` -------------------------------- ### ICS V9.1 Compiler Defines for OpenSSL Configuration Source: https://wiki.overbyte.eu/wiki/index.php?printable=yes&title=ICS_V9.1 These defines are located in OverbyteIcsDefs.inc and control how OpenSSL is linked, loaded, and managed within the application. ```Pascal {$DEFINE USE_SSL} ``` ```Pascal {$DEFINE OpenSSL_Resource_Files} ``` ```Pascal {$DEFINE OpenSSL_32} ``` ```Pascal {$DEFINE OpenSSL_ProgramData} ``` ```Pascal {$DEFINE YuOpenSSL} ``` ```Pascal {$DEFINE OpenSSL_CA_Bundle_Small} ``` ```Pascal {$DEFINE OpenSSL_AutoLoad_CA_Bundle} ``` ```Pascal {$DEFINE AUTO_X509_CERTS} ``` -------------------------------- ### HTML Parser Unit Source: https://wiki.overbyte.eu/wiki/index.php?printable=yes&title=ICS_V8.60 Provides parsing capabilities for HTML web pages. ```Pascal OverbyteIcsHtmlPars.pas - TIcsHTMLParser HTML web page parser. ``` -------------------------------- ### Unicode FTP Client Unit Source: https://wiki.overbyte.eu/wiki/index.php?printable=yes&title=ICS_V8.60 Unicode-enabled version of the FTP client for Delphi 2007. ```Pascal OverbyteIcsFtpCliW.pas - TFtpClientW, TSslFtpClientW Same as OverbyteIcsFtpCli but Unicode for Delphi 2007. ``` -------------------------------- ### function AcmeV2OrderStatus: Boolean; Source: https://wiki.overbyte.eu/wiki/index.php/FAQ_Order_SSL_Certificates Requests the current Acme order status from the supplier. ```APIDOC ## function AcmeV2OrderStatus: Boolean ### Description Requests the Acme order status at any point during the order process. ``` -------------------------------- ### Perform DES Encryption or Decryption Source: https://wiki.overbyte.eu/wiki/index.php/DES Executes the DES algorithm on an 8-byte block using a specified key. Set the Encrypt parameter to True for encryption or False for decryption. ```Pascal procedure DES( { Function encrypt/decrypt data using DES algotithm } const Input : TArrayOf8Bytes; { 64 bit of input } var Output : TArrayOf8Bytes; { 64 bit output from DES algorithm } const Key : TArrayOf8Bytes; { 64 bit key for DES algorithm } Encrypt : Boolean); { TRUE to encrypt, FALSE to decrypt } ``` -------------------------------- ### SNTP Time Protocol Unit Source: https://wiki.overbyte.eu/wiki/index.php?printable=yes&title=ICS_V8.60 Implements SNTP time server and client functionality. ```Pascal OverbyteIcsSntp.pas -TIcsTimeServer, IcsTimeClient Time server and client supporting SNTP time protocol. ``` -------------------------------- ### IP Stream Logging Unit Source: https://wiki.overbyte.eu/wiki/index.php?printable=yes&title=ICS_V8.60 Provides IP stream logging capabilities for TCP and UDP clients or servers. ```Pascal OverbyteIcsIpStreamLog.pas - TIcsIpStrmLog IP stream logging, using TCP Client or Server, UDP Client or Server, sends simple text. ``` -------------------------------- ### Unicode FTP Server Unit Source: https://wiki.overbyte.eu/wiki/index.php?printable=yes&title=ICS_V8.60 Unicode-enabled version of the FTP server for Delphi 2007. ```Pascal OverbyteIcsFtpSrvW.pas - TFtpServerW, TSslFtpServerW Same as OverbyteIcsFtpSrvW but Unicode for Delphi 2007. ``` -------------------------------- ### DBReadCNDomDates Source: https://wiki.overbyte.eu/wiki/index.php/FAQ_Order_SSL_Certificates Reads domain properties to check for certificate renewal status. ```APIDOC ## function DBReadCNDomDates(const CNDomain: String): Boolean ### Description Reads specific properties for a domain to determine if the Acme supplier should be contacted for renewal information. ### Parameters - **CNDomain** (String) - Required - The domain name to check. ``` -------------------------------- ### ReceiveStr Source: https://wiki.overbyte.eu/wiki/index.php/TWSocket.State Retrieves the next complete line sent to the socket, including the delimiter characters defined by LineEnd. ```APIDOC ## function ReceiveStr: string ### Description ReceiveStr is used to receive the next complete line sent to the attached IP/port. It is primarily used within the OnDataAvailable event when the component is configured to use LineMode. ### Returns - **string** - The complete line received, including the delimiter characters defined by LineEnd. ### Usage Example ```delphi procedure TMySocket.MyOnDataAvailable(Sender: TObject; ErrCode: Word); var s: String; begin if ErrCode <> 0 then begin exit; end; s := ReceiveStr; end; ``` ``` -------------------------------- ### procedure DES Source: https://wiki.overbyte.eu/wiki/index.php/DES Encrypts or decrypts a 64-bit block of data using the DES algorithm. ```APIDOC ## procedure DES ### Description Encrypts or decrypts 64-bit data using the DES algorithm. ### Signature procedure DES(const Input: TArrayOf8Bytes; var Output: TArrayOf8Bytes; const Key: TArrayOf8Bytes; Encrypt: Boolean); ### Parameters - **Input** (TArrayOf8Bytes) - Required - 64 bit of input data. - **Output** (TArrayOf8Bytes) - Required - 64 bit output from the DES algorithm. - **Key** (TArrayOf8Bytes) - Required - 64 bit key for the DES algorithm. - **Encrypt** (Boolean) - Required - TRUE to encrypt, FALSE to decrypt. ``` -------------------------------- ### function CloseAccount: Boolean; Source: https://wiki.overbyte.eu/wiki/index.php/FAQ_Order_SSL_Certificates Closes the currently open account. ```APIDOC ## function CloseAccount: Boolean ### Description Close the account, if open. ``` -------------------------------- ### CertCancelDomain Source: https://wiki.overbyte.eu/wiki/index.php/FAQ_Order_SSL_Certificates Cancels an existing certificate order with the supplier. ```APIDOC ## function CertCancelDomain(const aDomain: String): Boolean ### Description Cancels an order that is in the Collected or Installed state, potentially triggering a refund. ### Parameters - **aDomain** (String) - Required - The domain name. ``` -------------------------------- ### Unicode File Copying Unit Source: https://wiki.overbyte.eu/wiki/index.php?printable=yes&title=ICS_V8.60 Unicode-enabled version of the file copying unit for Delphi 2007. ```Pascal OverbyteIcsFileCopyW.pas - TIcsFileCopyW Same as OverbyteIcsFileCopy but Unicode for Delphi 2007. ``` -------------------------------- ### CloseAccount Source: https://wiki.overbyte.eu/wiki/index.php?action=edit&title=FAQ_Order_SSL_Certificates Closes the currently open supplier account. ```APIDOC ## function CloseAccount: Boolean ### Description Closes the currently open supplier account. ### Returns - **Boolean** - True if the account was closed successfully. ``` -------------------------------- ### SMTP Mail Queue Unit Source: https://wiki.overbyte.eu/wiki/index.php?printable=yes&title=ICS_V8.60 Handles SMTP mail queuing with support for retries and multiple servers. ```Pascal OverbyteIcsMailQueue.pas - TIcsMailQueue SMTP Mail Queue with extended retries, multiple SMTP servers or MX look up. ``` -------------------------------- ### CertRenewalDomain Source: https://wiki.overbyte.eu/wiki/index.php/FAQ_Order_SSL_Certificates Queries the supplier for the certificate renewal expiry threshold. ```APIDOC ## function CertRenewalDomain(const aDomain: String): Boolean ### Description Asks the Acme supplier how many days before expiry a certificate should be renewed. ### Parameters - **aDomain** (String) - Required - The domain name. ``` -------------------------------- ### Define TemplateProp Name method Source: https://wiki.overbyte.eu/wiki/index.php/TemplateProp The method signature for the Name function inherited from TCustomCoffee. ```delphi **function** TCoffee.Name(**const** Parameter: **string**): **string**; ``` -------------------------------- ### Synchronous SMTP Methods Source: https://wiki.overbyte.eu/wiki/index.php/TSyncSmtpCli The TSyncSmtpCli component provides synchronous versions of standard SMTP operations. These methods block execution until the specific task is completed. ```APIDOC ## Synchronous SMTP Methods ### Description These methods perform SMTP operations synchronously, meaning they do not return control to the caller until the operation has finished. ### Methods - **AbortSync** - Aborts the current operation. - **AuthSync** - Performs SMTP authentication. - **ConnectSync** - Establishes a connection to the SMTP server. - **DataSync** - Sends the email data. - **EhloSync** - Sends the EHLO command. - **HeloSync** - Sends the HELO command. - **MailSync** - Initiates the mail transaction. - **MailFromSync** - Sets the sender address. - **OpenSync** - Opens the connection. - **QuitSync** - Sends the QUIT command and closes the connection. - **RcptToSync** - Sets the recipient address. - **RsetSync** - Resets the current SMTP session. - **VrfySync** - Verifies an email address. ``` -------------------------------- ### Unicode FTP Server Threaded Unit Source: https://wiki.overbyte.eu/wiki/index.php?printable=yes&title=ICS_V8.60 Unicode-enabled threaded FTP server unit for Delphi 2007. ```Pascal OverbyteIcsFtpSrvWT.pas Same as OverbyteIcsFtpSrvWT but Unicode for Delphi 2007. ``` -------------------------------- ### THttpCli Events Source: https://wiki.overbyte.eu/wiki/index.php/THttpCli.URL Events triggered by the THttpCli component during the request/response lifecycle. ```APIDOC ## THttpCli Events - OnBeforeHeaderSend: Triggered before the header is sent. - OnCommand: Triggered for each command sent. - OnCookie: Triggered when a cookie has been received. - OnDataPush: Received data outside of any request. - OnDataPush2: Received data outside of a header. - OnDocBegin: Triggered when the document part is about to be received. - OnDocData: Triggered for each packet of the document part. - OnDocEnd: Triggered when the document is complete. - OnHeaderBegin: Triggered when the first header line is about to be received. - OnHeaderData: Triggered for each received header line. - OnHeaderEnd: Triggered when the header has been completely received. - OnLocationChange: Triggered whenever the server sent a location change. - OnRequestDone: Triggered when a request is completed. - OnRequestHeaderBegin: Triggered when the first header line is about to be sent. - OnRequestHeaderEnd: Triggered when the last header line has been sent. - OnSendBegin: Triggered before sending document part. - OnSendData: Triggered when sending document part. - OnSendEnd: Triggered when document has been sent completely. - OnSessionClosed: Triggered when the current connection has been closed. - OnSessionConnected: Triggered when the connection has been openend. - OnSocketError: Triggered when a socket error occured. - OnSocksConnected: Triggered when connected to socks server. - OnSocksError: Triggered when a error occurs with the socks server. - OnStateChange: Triggered when component state change. ``` -------------------------------- ### CertRevokeDomain Source: https://wiki.overbyte.eu/wiki/index.php/FAQ_Order_SSL_Certificates Cancels and revokes an existing certificate order. ```APIDOC ## function CertRevokeDomain(const aDomain: String): Boolean ### Description Cancels and revokes an order that is in the Collected or Installed state. ### Parameters - **aDomain** (String) - Required - The domain name. ``` -------------------------------- ### Define ICS Message Digest Types Source: https://wiki.overbyte.eu/wiki/index.php/FAQ_Using_TSslCertTools Enumeration of supported message digest or hash types. SHA3 and Shake algorithms require OpenSSL 1.1.1 or later. ```Pascal TEvpDigest = ( Digest_md5, Digest_mdc2, Digest_sha1, Digest_sha224, Digest_sha256, Digest_sha384, Digest_sha512, Digest_ripemd160, Digest_sha3_224, Digest_sha3_256, Digest_sha3_384, Digest_sha3_512, Digest_shake128, Digest_shake256, Digest_None); ``` -------------------------------- ### Define DES Data Types Source: https://wiki.overbyte.eu/wiki/index.php/DES Defines the 8-byte array structure required for DES block operations. ```Pascal TArrayOf8Bytes = array [0..7] of Byte; PArrayOf8Bytes = ^TArrayOf8Bytes; ``` -------------------------------- ### TSmtpCli Events Source: https://wiki.overbyte.eu/wiki/index.php/TSmtpCli.Port A list of events triggered by the TSmtpCli component during the SMTP lifecycle. ```APIDOC ## Events - **OnAfterFileOpen**: Triggered after the attempt to open a file to be attached. - **OnAttachContentType**: Triggered before the content-type header line of an attachment part header is formed. - **OnAttachHeader**: Triggered after all header lines of an attachment part header have been formed. - **OnBeforeFileOpen**: Triggered before the attempt to open a file to be attached. - **OnCommand**: Triggered on every command that is sent. - **OnDisplay**: Triggered on every command/response; useful for debugging. - **OnGetData**: Triggered when the component requests the next data line. - **OnHeaderLine**: Triggered on each mail header line. - **OnMessageDataSent**: Triggered whenever message data have been sent (V7). - **OnProcessHeader**: Triggered before the mail header lines are formed. - **OnRcptToError**: Triggered when a recipient is rejected by the server. - **OnRequestDone**: Triggered when a request is completed. - **OnResponse**: Triggered on the server's response. - **OnSessionClosed**: Triggered when the connection has been closed. - **OnSessionConnected**: Triggered when a connection has been established. ``` -------------------------------- ### ICS Cryptography Types Source: https://wiki.overbyte.eu/wiki/index.php?action=edit&title=FAQ_Using_TSslCertTools Enumerations for message digests, private key algorithms, and encryption ciphers used by the component. ```Pascal TEvpDigest = ( Digest_md5, Digest_mdc2, Digest_sha1, Digest_sha224, Digest_sha256, Digest_sha384, Digest_sha512, Digest_ripemd160, Digest_sha3_224, Digest_sha3_256, Digest_sha3_384, Digest_sha3_512, Digest_shake128, Digest_shake256, Digest_None); ``` ```Pascal TSslPrivKeyType = ( PrivKeyRsa1024, { level 1 - 80 bits } PrivKeyRsa2048, { level 2 - 112 bits } PrivKeyRsa3072, { level 3 - 128 bits } PrivKeyRsa4096, { level 3 - 128 bits } PrivKeyRsa7680, { level 4 - 192 bits } PrivKeyRsa15360, { level 5 - 256 bits } PrivKeyECsecp256, { level 3 - 128 bits } PrivKeyECsecp384, { level 4 - 192 bits } PrivKeyECsecp512, { level 5 - 256 bits } PrivKeyEd25519, { level 3 - 128 bits } PrivKeyRsaPss2048, { level 2 - 112 bits } PrivKeyRsaPss3072, { level 3 - 128 bits } PrivKeyRsaPss4096, { level 3 - 128 bits } PrivKeyRsaPss7680, { level 4 - 192 bits } PrivKeyRsa15360); { level 5 - 256 bits } ``` ```Pascal TSslPrivKeyCipher = ( PrivKeyEncNone, PrivKeyEncTripleDES, PrivKeyEncIDEA, PrivKeyEncAES128, PrivKeyEncAES192, PrivKeyEncAES256, PrivKeyEncBlowfish128); ``` -------------------------------- ### Remove SSL Certificate Domain Source: https://wiki.overbyte.eu/wiki/index.php?action=edit&title=FAQ_Order_SSL_Certificates Removes an order from the database to prevent further processing or re-use. ```Delphi function CertRemoveDomain(const aDomain: String): Boolean; ``` -------------------------------- ### CertRemoveDomain Source: https://wiki.overbyte.eu/wiki/index.php/FAQ_Order_SSL_Certificates Removes an order record from the database. ```APIDOC ## function CertRemoveDomain(const aDomain: String): Boolean ### Description Deletes an order from the database to prevent further processing. ### Parameters - **aDomain** (String) - Required - The domain name. ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.