Tworzenie programowego pliku .pem w Objective-C?

Próbuję utworzyć plik PEM programowo z żądania podpisania certyfikatu za pomocą Objective-C i biblioteki OpenSSL w aplikacji na iPhone'a. Wygenerowałem raport CSR (typu X509_REQ *), postępując zgodnie z odpowiedzią Adria Navarro na to pytanie:

Generowanie żądania podpisania certyfikatu OpenSSL w systemie iOS za pomocą kluczy przechowywanych w pęku kluczy

Potwierdziłem, że CSR jest ważny, drukując go na konsoli.

Poniżej znajduje się mój kod do tworzenia pliku PEM (CertificateSigningRequest.pem). Kończy się tworzeniem pustego pliku (0 bajtów i bez tekstu). Czy robię coś złego, tak że nie jest w stanie zapisać do pliku przez PEM_write_X509_REQ? (Zwróć uwagę, że sprawdzam plik, pobierając folder aplikacji za pośrednictwem Organizatora).

Z góry dziękuję za wszelką pomoc, jaką możesz udzielić, i daj mi znać, jeśli mam podać dodatkowe informacje.

- (void)createPemFileWithCertificateSigningRequest:(X509_REQ *)certSigningRequest
{
    //delete existing PEM file if there is one
    [self deletePemFile];

    //create empty PEM file
    NSString *pemFilePath = [self pemFilePath];
    if (![[NSFileManager defaultManager] createFileAtPath:pemFilePath contents:nil attributes:nil])
    {
        NSLog(@"Error creating file for PEM");
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error creating file for PEM" message:[NSString stringWithFormat:@"Could not create file at the following location:\n\n%@", pemFilePath] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alertView show];
        return;
    }

    //get a FILE struct for the PEM file
    NSFileHandle *outputFileHandle = [NSFileHandle fileHandleForWritingAtPath:pemFilePath];
    FILE *pemFile = fdopen([outputFileHandle fileDescriptor], "w");

    //write the CSR to the PEM file
    PEM_write_X509_REQ(pemFile, certSigningRequest);
}

- (NSString *)pemFilePath
{
    NSString *documentsFolder = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    return [documentsFolder stringByAppendingPathComponent:@"CertificateSigningRequest.pem"];
}

questionAnswers(1)

yourAnswerToTheQuestion