C++
C++
Get a Certificate's Key Size
See more Certificates Examples
Demonstrates how to get the RSA key size of a certificate (for example, 1024-bit, 2048-bit, etc.)Chilkat C++ Downloads
#include <CkStringBuilder.h>
#include <CkCert.h>
#include <CkPublicKey.h>
#include <CkXml.h>
#include <CkBinData.h>
void ChilkatSample(void)
{
bool success = false;
// For this example, I have a certificate in raw base64 format (not PEM),
// that looks like this: "MIIGkDCCBHigAwIBAgIUMDA ... s/iqLsLA=="
CkStringBuilder sbCertBase64;
success = sbCertBase64.LoadFile("qa_data/certs/base64Cert.txt","utf-8");
CkCert cert;
success = cert.LoadFromBase64(sbCertBase64.getAsString());
if (success == false) {
std::cout << cert.lastErrorText() << "\r\n";
return;
}
// Get the public key.
CkPublicKey pubKey;
cert.GetPublicKey(pubKey);
int numBits = pubKey.get_KeySize();
std::cout << "Number of bits = " << numBits << "\r\n";
// If using an older version of Chilkat, the key size can be obtained like this:
CkXml xml;
xml.LoadXml(pubKey.getXml());
CkBinData binDat;
binDat.AppendEncoded(xml.getChildContent("Modulus"),"base64");
numBits = 8 * binDat.get_NumBytes();
std::cout << "Number of bits = " << numBits << "\r\n";
}