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 ActiveX) Get Public Key from CSRDemonstrates how to get the public key from a CSR.
<?php // This requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // For versions of Chilkat < 10.0.0, use new COM('Chilkat_9_5_0.Chilkat.Pem') $pem = new COM("Chilkat.Pem"); // No password is required. Pass an empty password string.. $noPassword = ''; $success = $pem->LoadPemFile('qa_data/csr/csr2.pem',$noPassword); if ($success != 1) { print $pem->LastErrorText . "\n"; exit; } $strBase64 = $pem->getEncodedItem('csr','','base64',0); // For versions of Chilkat < 10.0.0, use new COM('Chilkat_9_5_0.Chilkat.Asn') $asn = new COM("Chilkat.Asn"); $success = $asn->LoadEncoded($strBase64,'base64'); if ($success != 1) { print $asn->LastErrorText . "\n"; exit; } // Convert the ASN.1 to XML. // For versions of Chilkat < 10.0.0, use new COM('Chilkat_9_5_0.Chilkat.Xml') $xml = new COM("Chilkat.Xml"); $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. // For versions of Chilkat < 10.0.0, use new COM('Chilkat_9_5_0.Chilkat.BinData') $bd = new COM("Chilkat.BinData"); $bd->AppendEncoded($strModulusHex,'hex'); $modulus64 = $bd->getEncoded('base64'); print 'modulus64 = ' . $modulus64 . "\n"; print '----' . "\n"; // Build the XML for the public key. // For versions of Chilkat < 10.0.0, use new COM('Chilkat_9_5_0.Chilkat.Xml') $xmlPubKey = new COM("Chilkat.Xml"); $xmlPubKey->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. // For versions of Chilkat < 10.0.0, use new COM('Chilkat_9_5_0.Chilkat.PublicKey') $pubkey = new COM("Chilkat.PublicKey"); $success = $pubkey->LoadFromString($xmlPubKey->getXml()); if ($success != 1) { print $pubkey->LastErrorText . "\n"; exit; } // Show the public key as PEM. $preferPkcs1 = 1; print $pubkey->getPem($preferPkcs1) . "\n"; ?> |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.