Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PHP Extension) Get Public Key from CSRDemonstrates how to get the public key from a CSR.
<?php // The version number (9_5_0) should match version of the Chilkat extension used, omitting the micro-version number. // For example, if using Chilkat v9.5.0.48, then include as shown here: include("chilkat_9_5_0.php"); // This requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. $pem = new CkPem(); // No password is required. Pass an empty password string.. $noPassword = ''; $success = $pem->LoadPemFile('qa_data/csr/csr2.pem',$noPassword); if ($success != true) { print $pem->lastErrorText() . "\n"; exit; } $strBase64 = $pem->getEncodedItem('csr','','base64',0); $asn = new CkAsn(); $success = $asn->LoadEncoded($strBase64,'base64'); if ($success != true) { print $asn->lastErrorText() . "\n"; exit; } // Convert the ASN.1 to XML. $xml = new CkXml(); $success = $xml->LoadXml($asn->asnToXml()); print $xml->getXml() . "\n"; print '----' . "\n"; $strModulusHex = $xml->getChildContent('bits'); print 'strModulusHex = ' . $strModulusHex . "\n"; print '----' . "\n"; // We need the modulus as base64. $bd = new CkBinData(); $bd->AppendEncoded($strModulusHex,'hex'); $modulus64 = $bd->getEncoded('base64'); print 'modulus64 = ' . $modulus64 . "\n"; print '----' . "\n"; // Build the XML for the public key. $xmlPubKey = new CkXml(); $xmlPubKey->put_Tag('RSAPublicKey'); $xmlPubKey->UpdateChildContent('Modulus',$modulus64); // The RSA exponent will always be decimal 65537 (base64 = AQAB) $xmlPubKey->UpdateChildContent('Exponent','AQAB'); print 'RSA public key as XML:' . "\n"; print $xmlPubKey->getXml() . "\n"; print '----' . "\n"; // Load the XML into a Chilkat public key object. $pubkey = new CkPublicKey(); $success = $pubkey->LoadFromString($xmlPubKey->getXml()); if ($success != true) { print $pubkey->lastErrorText() . "\n"; exit; } // Show the public key as PEM. $preferPkcs1 = true; print $pubkey->getPem($preferPkcs1) . "\n"; ?> |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.