创建.带有objective-c和OpenSSL的PEM文件



im试图在Objective-C或Swift中实现以下命令行。u2028u2028

openssl x509 -req -in 20060.csr -CA root.pem -CAkey root.key -CAcreateserial -out 20060.pem -days 825 -sha256

我已经为我的iOS项目编译并构建了openssl,并成功创建了带有一些KeyChain函数的20060.csr文件。我已经有root.pem和root.key文件了。

如何在Objc中通过编程实现这一点?

创建PEM文件(CertificateSigningRequest.PEM(的代码。

- (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:nn%@", 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);
//close the file
fclose(pemFile);
}
- (NSString *)pemFilePath {
NSString *documentsFolder = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
return [documentsFolder stringByAppendingPathComponent:@"CertificateSigningRequest.pem"];
}

最新更新