Sample code for 30+ languages & platforms
Objective-C

Example: Crypt2.GetSignedAttributes method

Demonstrates how to call the GetSignedAttributes method.

Chilkat Objective-C Downloads

Objective-C
#import <CkoCrypt2.h>
#import <CkoBinData.h>
#import <CkoJsonObject.h>
#import <CkoStringBuilder.h>

BOOL success = NO;

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

CkoBinData *bdPkcs7 = [[CkoBinData alloc] init];
success = [bdPkcs7 LoadFile: @"qa_data/cades/CAdES-T/Signature-C-T-1.p7m"];
if (success == NO) {
    NSLog(@"%@",bdPkcs7.LastErrorText);
    return;
}

CkoJsonObject *json = [[CkoJsonObject alloc] init];
json.EmitCompact = NO;

CkoStringBuilder *sbJson = [[CkoStringBuilder alloc] init];
int i = 0;
BOOL tryNext = YES;
while (tryNext) {
    if ([crypt GetSignedAttributes: [NSNumber numberWithInt: i] pkcs7Der: bdPkcs7 sbJson: sbJson] == YES) {
        [json LoadSb: sbJson];
        NSLog(@"%d%@",i,@": ");
        NSLog(@"%@",[json Emit]);
    }
    else {
        tryNext = NO;
    }

    i = i + 1;
}

//  Sample output:

//  0: 
//  {
//    "signedAttributes": [
//      {
//        "oid": "1.2.840.113549.1.9.3",
//        "name": "Content Type"
//      },
//      {
//        "oid": "1.2.840.113549.1.9.5",
//        "name": "Signing Time"
//      },
//      {
//        "oid": "1.2.840.113549.1.9.4",
//        "name": "Message Digest"
//      },
//      {
//        "oid": "1.2.840.113549.1.9.16.2.47",
//        "name": "Signing Certificate V2"
//      }
//    ]
//  }