![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) Generate Key and Certificate Signing Request (CSR)Demonstrates how to generate a new RSA key and a Certificate Signing Request (CSR). Note: This example requires Chilkat v9.5.0.65 or greater. Note: This example requires Chilkat v11.0.0 or greater.
Use ChilkatAx-win32.pkg Procedure Test Boolean iSuccess Handle hoRsa Variant vPrivKey Handle hoPrivKey Handle hoCsr String sPemStr Handle hoFac String sTemp1 Boolean bTemp1 Move False To iSuccess // Note: Requires Chilkat v9.5.0.65 or greater. // This requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // First generate an RSA private key. Get Create (RefClass(cComChilkatRsa)) To hoRsa If (Not(IsComObjectCreated(hoRsa))) Begin Send CreateComObject of hoRsa End // Generate a random 2048-bit RSA key. Get Create (RefClass(cComChilkatPrivateKey)) To hoPrivKey If (Not(IsComObjectCreated(hoPrivKey))) Begin Send CreateComObject of hoPrivKey End Get pvComObject of hoPrivKey to vPrivKey Get ComGenKey Of hoRsa 2048 vPrivKey To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoRsa To sTemp1 Showln sTemp1 Procedure_Return End // Create the CSR object and set properties. Get Create (RefClass(cComChilkatCsr)) To hoCsr If (Not(IsComObjectCreated(hoCsr))) Begin Send CreateComObject of hoCsr End // Specify the Common Name. This is the only required property. // For SSL/TLS certificates, this would be the domain name. // For email certificates this would be the email address. Set ComCommonName Of hoCsr To "mysubdomain.mydomain.com" // Country Name (2 letter code) Set ComCountry Of hoCsr To "GB" // State or Province Name (full name) Set ComState Of hoCsr To "Yorks" // Locality Name (eg, city) Set ComLocality Of hoCsr To "York" // Organization Name (eg, company) Set ComCompany Of hoCsr To "Internet Widgits Pty Ltd" // Organizational Unit Name (eg, secion/division) Set ComCompanyDivision Of hoCsr To "IT" // Email address Set ComEmailAddress Of hoCsr To "support@mydomain.com" // Create the CSR using the private key. Get pvComObject of hoPrivKey to vPrivKey Get ComGenCsrPem Of hoCsr vPrivKey To sPemStr Get ComLastMethodSuccess Of hoCsr To bTemp1 If (bTemp1 <> True) Begin Get ComLastErrorText Of hoCsr To sTemp1 Showln sTemp1 Procedure_Return End // Save the private key and CSR to a files. Get ComSavePkcs8EncryptedPemFile Of hoPrivKey "password" "qa_output/privKey1.pem" To iSuccess Get Create (RefClass(cComCkFileAccess)) To hoFac If (Not(IsComObjectCreated(hoFac))) Begin Send CreateComObject of hoFac End Get ComWriteEntireTextFile Of hoFac "qa_output/csr1.pem" sPemStr "utf-8" False To iSuccess // Show the CSR. Showln sPemStr // Sample output: // The CSR PEM can be checked here: // https://www.networking4all.com/en/support/tools/csr+check/ // Copy-and-paste the PEM into the online CSR Decoding / CSR Verification form // -----BEGIN CERTIFICATE REQUEST----- // MIIC6jCCAdICAQAwgaQxITAfBgNVBAMMGG15c3ViZG9tYWluLm15ZG9tYWluLmNv // bTELMAkGA1UEBhMCR0IxDjAMBgNVBAgMBVlvcmtzMQ0wCwYDVQQHDARZb3JrMSEw // HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxCzAJBgNVBAsMAklUMSMw // IQYJKoZIhvcNAQkBFhRzdXBwb3J0QG15ZG9tYWluLmNvbTCCASIwDQYJKoZIhvcN // AQEBBQADggEPADCCAQoCggEBALnQ0un/wF8whk+gPuiAlf3qvx14jgAOV6Erm6EB // H7WACPCpnKcm/8KP+7uoPiwRQaENhMeCgf45vcivl2p6aAn/spLXyEkXyw2d8wFb // YYAGRkiz4Xf7ASJiKuwcOtORz+sSDzgtdfokHfXU1cYeFE2yQhSdLUY5fMn425+g // KoEEsRSjSDe6AKru4+4iGNrLKd8pB9IA5/jOE139IkWlB9r5fEPD5bUTsgqXk9eb // 68O0gc712V2eZK07N24lDmFC4bIMTD4csDWocR5hFHXj7NX7c8sOBDcpEb9mPIk4 // elxubnhkfnjhOi4J3lDHcT/0ALnbLhf9LnaiKqs+5VcVZvECAwEAAaAAMA0GCSqG // SIb3DQEBBQUAA4IBAQC0AETLIcP3foh5nbu2hVFS8uCUNZ5hEIR1eXmYZmZoBQq2 // 26ZAoT4CZwixlggC+n7WvAXJ5Pzxpl4wLV4loTiQzaKPX1w0ERo5ZRwLy0n56oG2 // 6QG+WTViT1C8rlgtVwkCFNOXr0kSSRs8FdaPllqKxK1hxYSL7zwNpumsk39F2cDt // vhcekvH0V3BuGrQFm3dKN/0azW6GOod9+Vq4VzSyOe3kp15oxLBsZOFOu/REujcw // Tzu2jt1asQKUm60CZ9wNHpYepR0Ww40uP1slbehEaFDa6V8b60/tlHHmBbJ4/fy5 // hJnYCvjzFz4O9VtT+JtP9ldRHWV3KpZ8ne3AjD+F // -----END CERTIFICATE REQUEST----- End_Procedure |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.