Objective-C
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
#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!");