Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Objective-C) AWS KMS Import PFX KeySee more AWS KMS ExamplesImports a certificate's private key from a .pfx file to new key created in AWS KMS. Note: This example requires Chilkat v9.5.0.96 or later.
#import <CkoCert.h> #import <CkoPrivateKey.h> #import <CkoJsonObject.h> // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // Note: This example is using a relative file path. You can also specify a full file path, such as "C:/someDir/myCertAndKey.pfx" // or a file path the makes sense on non-Windows operating systems.. CkoCert *cert = [[CkoCert alloc] init]; BOOL success = [cert LoadPfxFile: @"qa_data/pfx/myCertAndKey.pfx" password: @"pfx_password"]; if (success == NO) { NSLog(@"%@",cert.LastErrorText); return; } // Get the cert's private key. This is what will be uploaded to AWS KMS. CkoPrivateKey *privKey = [cert ExportPrivateKey]; if (cert.LastMethodSuccess == NO) { NSLog(@"%@",@"The certificate does not have a private key."); return; } CkoJsonObject *json = [[CkoJsonObject alloc] init]; [json UpdateString: @"service" value: @"aws-kms"]; [json UpdateString: @"auth.access_key" value: @"AWS_ACCESS_KEY"]; [json UpdateString: @"auth.secret_key" value: @"AWS_SECRET_KEY"]; [json UpdateString: @"auth.region" value: @"us-west-2"]; [json UpdateString: @"description" value: @"Test of uploading existing private key to AWS KMS"]; // Let's add some information about the certificate this key belongs to. // This is for informational purposes only, so that we can examine the tags // in the AWS KMS console and know the corresponding certificate. [json UpdateString: @"tags[0].key" value: @"CertSerial"]; [json UpdateString: @"tags[0].value" value: cert.SerialNumber]; [json UpdateString: @"tags[1].key" value: @"CertIssuer"]; [json UpdateString: @"tags[1].value" value: cert.IssuerCN]; [json UpdateString: @"tags[2].key" value: @"CertSubject"]; [json UpdateString: @"tags[2].value" value: cert.SubjectCN]; [json UpdateString: @"keyUsage" value: @"SIGN_VERIFY"]; // The UploadToCloud method was added in Chilkat v9.5.0.96 CkoJsonObject *jsonOut = [[CkoJsonObject alloc] init]; success = [privKey UploadToCloud: json jsonOut: jsonOut]; if (success == NO) { NSLog(@"%@",privKey.LastErrorText); return; } // When successful, the jsonOut contains information about the private key in AWS KMS. // Most importantly, the KeyId. jsonOut.EmitCompact = NO; NSLog(@"%@",[jsonOut Emit]); // Sample JSON result: // { // "AWSAccountId": "954491834127", // "Arn": "arn:aws:kms:us-west-2:954491834127:key/187012e8-008f-4fc7-b100-5efe6146dff2", // "KeySpec": "RSA_4096", // "Description": "Test of uploading existing private key to AWS KMS", // "KeyId": "187012e8-008f-4fc7-b100-5efe6146dff2", // "KeyUsage": "SIGN_VERIFY" // } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.