Sample code for 30+ languages & platforms
Objective-C

Create PKCS7 Signed File (.p7m)

See more Encryption Examples

Demonstrates how to sign a file to create a .p7m that contains both the file contents and the signature.

Chilkat Objective-C Downloads

Objective-C
#import <CkoCrypt2.h>
#import <CkoCertStore.h>
#import <CkoJsonObject.h>
#import <CkoCert.h>
#import <NSString.h>

BOOL success = NO;

//  This example requires the Chilkat API to have been previously unlocked.
//  See Global Unlock Sample for sample code.

CkoCrypt2 *crypt = [[CkoCrypt2 alloc] init];

CkoCertStore *certStore = [[CkoCertStore alloc] init];

//  Load a PFX file into a certificate store object.
success = [certStore LoadPfxFile: @"myPfx.pfx" password: @"pfxPassword"];
if (success != YES) {
    NSLog(@"%@",certStore.LastErrorText);
    return;
}

//  Get the certificate by subject common name.
//  This should be the cert within the PFX that also
//  has a private key (also stored within the PFX).
CkoJsonObject *jsonCN = [[CkoJsonObject alloc] init];
[jsonCN UpdateString: @"CN" value: @"myCert"];
CkoCert *cert = [[CkoCert alloc] init];
success = [certStore FindCert: jsonCN cert: cert];
if (success == NO) {
    NSLog(@"%@",certStore.LastErrorText);
    return;
}

//  Tell the crypt object to use the certificate for signing:
success = [crypt SetSigningCert: cert];

//  Sign a file, producing a .p7m as output.
//  The input file is unchanged, the test.p7m contains the 
//  contents of the input file and the signature.
NSString *inFile = @"test.txt";
NSString *outFile = @"testp7m";
success = [crypt CreateP7M: inFile p7mPath: outFile];
if (success != YES) {
    NSLog(@"%@",crypt.LastErrorText);
    return;
}

NSLog(@"%@",@"Success!");