Find Jobs
Hire Freelancers

Add a class with 3 methods to an existing Xcode project

$250-750 USD

Скасований
Опублікований almost 11 years ago

$250-750 USD

Оплачується при отриманні
Below is a link to a project that enables OpenSSL to be compiled for ARM7 ARM7s and used within a cocoa touch Application [login to view URL] I need a simple class adding to this project that can accomplish the following two openssl tasks: 1. Decrypt an RSA encrypted string with a public key and store the result in an NSString object: E.g. Take the following string.... NSString *encrypted = @"UXPMk2jt7ppMNJ0TTGue1OOWgSq+NfX96Qgb7DpN6jPw+6ibSyAwEJlLlVz4UCM2tyBQ5Ui+S/vdxXDk86EymBOrngcwwP1d+ygNM2K94L0IXQSjlmePxD+daBK7RJbgF5P35Lib+/L6jfY+yLk1AYze4TIA7pEwbt4EWgn+0iU="; ... and decode with the following key using the RSA_Verify method from the openssl library: -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+ynZ7EvJ0F+IoGmlme/j/MpH4 7BxrIuDTJCOS99j82IL3Ww9Ubm28yOMHYPdi23WPDhR80ugaBWAnmqUZWvYKjqd4 Z4D0sJ0NVW3DDgZ4gS57zFqlvGgdVhzaVimfs7qDxIJ1o8GMuXWseZV2ZpmIjdnF ZBol5zZTqNfk89RNnQIDAQAB -----END PUBLIC KEY----- The openssl command line equivalent command of this would be: - openssl rsautl -verify -in encrypted -out decrypted -inkey [login to view URL] -pubin where encrypted is a file containing the base64decoded contents of the string. 2. Generate and verify ECDSA signatures. E.g. using the following keys: -----BEGIN EC PARAMETERS----- BgUrgQQABg== -----END EC PARAMETERS----- -----BEGIN EC PRIVATE KEY----- MD4CAQEEDnX12/boHtk0uEctbBm6oAcGBSuBBAAGoSADHgAEmRk5gNdPlbzK2Jou ZNlrma5zzJ5b65b6jLJPDQ== -----END EC PRIVATE KEY----- -----BEGIN PUBLIC KEY----- MDIwEAYHKoZIzj0CAQYFK4EEAAYDHgAEmRk5gNdPlbzK2JouZNlrma5zzJ5b65b6 jLJPDQ== -----END PUBLIC KEY----- - add functionality to do the equivalent of: echo -n 'Hello World' | openssl dgst -ecdsa-with-SHA1 -sign [login to view URL] | openssl enc -base64 (outputs MCACDi9BVg0y2C4IxtMmlgHiAg5xQj8w4VOioXLoBoF5qA==) and then verify: echo 'MCACDi9BVg0y2C4IxtMmlgHiAg5xQj8w4VOioXLoBoF5qA==' | openssl enc -d -a > [login to view URL] && \ echo -n 'Hello World' | openssl dgst -ecdsa-with-SHA1 -verify [login to view URL] -keyform PEM -signature [login to view URL] (outputs Verified OK) -------- The certificates cannot be generated on the device as they will be supplied by an external server in the live app. If this can be accomplished using the native crypto libraries then there is no need for openssl, however I believe that the new native libraries do not provide ECDSA functionality, hence the need for OpenSSL This is quite a simple job for an experienced Objective-C / C programmer, the main complexity comes in the type casting required to interface to and from the OpenSSL which will do all of the heavy lifting. There is no need to provide a functional UI - output to NSLog is sufficient, essentially the output should a class with the following 3 methods: -(NSString)decryptBase64RSAEncryptedString:(NSString *)encryptedString withCertificate:(NSString *)certificate; -(NSString)generateBase64EndcodedECDSASignatureForText:(NSString *)textToSign withCertificate:(NSString *)certificate; -(bool)validateBase64EncodedECDSASignature:(NSString *)signature forString:(NSString *)stringToValidate withCertificate:(NSString *)certificate; and if you like for good measure ;-) you can add a method to decode JSON result of the RSA description into an NSDictionary Object.
ID проекту: 4438845

Про проект

Дистанційний проект
Активність 11 yrs ago

Хочете заробити?

Переваги подання заявок на Freelancer

Вкажіть свій бюджет та терміни
Отримайте гроші за свою роботу
Опишіть свою пропозицію
Реєстрація та подання заявок у проекти є безкоштовними

Про клієнта

Прапор HONG KONG
Sheung Wan, Hong Kong
5,0
1
Спосіб оплати верифіковано
На сайті з квіт. 11, 2013

Верифікація клієнта

Дякуємо! Ми надіслали на вашу електронну пошту посилання для отримання безкоштовного кредиту.
Під час надсилання електронного листа сталася помилка. Будь ласка, спробуйте ще раз.
Зареєстрованих користувачів Загальна кількість опублікованих робіт
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Завантажуємо для перегляду
Дозвіл на визначення геолокації надано.
Ваш сеанс входу закінчився, і сеанс було закрито. Будь ласка, увійдіть знову.