Sample code for 30+ languages & platforms
Objective-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 Objective-C Downloads

Objective-C
#import <CkoStringBuilder.h>
#import <CkoCert.h>
#import <CkoPublicKey.h>
#import <CkoXml.h>
#import <CkoBinData.h>

BOOL success = NO;

// For this example, I have a certificate in raw base64 format (not PEM),
// that looks like this:  "MIIGkDCCBHigAwIBAgIUMDA ... s/iqLsLA=="
CkoStringBuilder *sbCertBase64 = [[CkoStringBuilder alloc] init];
success = [sbCertBase64 LoadFile: @"qa_data/certs/base64Cert.txt" charset: @"utf-8"];

CkoCert *cert = [[CkoCert alloc] init];
success = [cert LoadFromBase64: [sbCertBase64 GetAsString]];
if (success == NO) {
    NSLog(@"%@",cert.LastErrorText);
    return;
}

// Get the public key.
CkoPublicKey *pubKey = [[CkoPublicKey alloc] init];
[cert GetPublicKey: pubKey];

int numBits = [pubKey.KeySize intValue];
NSLog(@"%@%d",@"Number of bits = ",numBits);

// If using an older version of Chilkat, the key size can be obtained like this:
CkoXml *xml = [[CkoXml alloc] init];
[xml LoadXml: [pubKey GetXml]];

CkoBinData *binDat = [[CkoBinData alloc] init];
[binDat AppendEncoded: [xml GetChildContent: @"Modulus"] encoding: @"base64"];

numBits = 8 * [binDat.NumBytes intValue];
NSLog(@"%@%d",@"Number of bits = ",numBits);