![]() |
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 CSR with Uncommon FieldsSee more CSR ExamplesDemonstrates how to generate a new RSA key and a Certificate Signing Request (CSR) for this:csr.common.name=Admin forInformation-MainShop csr.serial.number=1-XYZ|2-2.0|3-999695 csr.organization.identifier=990099994100099 csr.organization.unit.name=9999910000 csr.organization.name=9999910000 csr.country.name=SA csr.invoice.type=1100 csr.location.address=King Fahed Road csr.industry.business.category=MainOffice 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 // 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 Set ComCommonName Of hoCsr To "Admin forInformation-MainShop" // Country Name (2 letter code) Set ComCountry Of hoCsr To "SA" // Organization Name (eg, company) Set ComCompany Of hoCsr To "9999910000" // Organizational Unit Name (eg, secion/division) Set ComCompanyDivision Of hoCsr To "9999910000" // See https://www.alvestrand.no/objectid/2.5.4.html for OIDs for the following fields: // csr.serial.number=1-XYZ|2-2.0|3-999695 // 2.5.4.5 - id-at-serialNumber Get ComSetSubjectField Of hoCsr "2.5.4.5" "1-XYZ|2-2.0|3-999695" "UTF8String" To iSuccess // csr.organization.identifier=990099994100099 // 2.5.4.45 - id-at-uniqueIdentifier Don't know if this is correct. Get ComSetSubjectField Of hoCsr "2.5.4.45" "1100" "UTF8String" To iSuccess // csr.invoice.type=1100 // Don't know what this OID would be... Get ComSetSubjectField Of hoCsr "2.5.4.99" "1100" "UTF8String" To iSuccess // csr.location.address=King Fahed Road // 2.5.4.9 - id-at-streetAddress Get ComSetSubjectField Of hoCsr "2.5.4.9" "King Fahed Road" "UTF8String" To iSuccess // csr.industry.business.category=MainOffice // 2.5.4.15 - id-at-businessCategory Get ComSetSubjectField Of hoCsr "2.5.4.15" "MainOffice" "UTF8String" To iSuccess // 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 // ... // ... // hJnYCvjzFz4O9VtT+JtP9ldRHWV3KpZ8ne3AjD+F // -----END CERTIFICATE REQUEST----- End_Procedure |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.