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) HTTP Basic Auth with Secure StringsDemonstrates how to do HTTP basic authentication using secure strings. This example requires Chilkat v9.5.0.71 or greater.
#import <CkoJsonObject.h> #import <CkoCrypt2.h> #import <CkoSecureString.h> #import <CkoHttp.h> #import <NSString.h> // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. BOOL success; // Imagine we've previously saved our encrypted login and password within a JSON config file // that contains this: // { // "http_login": "mCrOmA7mBA7Au9RuJGb9hw==", // "http_password": "jJtiI9TgErTTpqBz9JtHBw==" // } CkoJsonObject *json = [[CkoJsonObject alloc] init]; [json LoadFile: @"qa_data/passwords/http.json"]; CkoCrypt2 *crypt = [[CkoCrypt2 alloc] init]; // These are the encryption settings we previously used to encrypt the credentials within the JSON config file. crypt.CryptAlgorithm = @"aes"; crypt.CipherMode = @"cbc"; crypt.KeyLength = [NSNumber numberWithInt:128]; [crypt SetEncodedKey: @"000102030405060708090A0B0C0D0E0F" encoding: @"hex"]; [crypt SetEncodedIV: @"000102030405060708090A0B0C0D0E0F" encoding: @"hex"]; crypt.EncodingMode = @"base64"; CkoSecureString *ssLogin = [[CkoSecureString alloc] init]; CkoSecureString *ssPassword = [[CkoSecureString alloc] init]; // Decrypt to the secure string. (the strings will still held in memory encrypted, but are now encrypted using // a randomly generated session key.) [crypt DecryptSecureENC: [json StringOf: @"http_login"] secureStr: ssLogin]; [crypt DecryptSecureENC: [json StringOf: @"http_password"] secureStr: ssPassword]; CkoHttp *http = [[CkoHttp alloc] init]; // Cause the "Authorization: Basic ..." header to be added to HTTP requests // by setting the Login and Password properties. However, instead of setting the password property // directly, set it via the SetPassword method using the secure string. http.Login = [ssLogin Access]; [http SetPassword: ssPassword]; // Also indicate that Basic authentication is to be used.. http.BasicAuth = YES; // Do an HTTP GET w/ Basic authentication. // REMEMBER: Always use TLS with Basic authentication. Otherwise your credentials are exposed for the world to see.. NSString *responseStr = [http QuickGetStr: @"https://www.chilkatsoft.com/helloWorld.html"]; // Show the request header we sent in the QuickGetStr: NSLog(@"%@",http.LastHeader); // The LastHeader looks something like this: // GET /helloWorld.html HTTP/1.1 // Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 // Connection: keep-alive // User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0 // Accept-Language: en-us,en;q=0.5 // Authorization: Basic bXlIdHRwTG9naW46bXlIdHRwUGFzc3dvcmQ= // Accept-Encoding: gzip // Host: www.chilkatsoft.com |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.