Find Jobs
Hire Freelancers

Add a class with 3 methods to an existing Xcode project

$250-750 USD

Anulowano
Opublikowano prawie 11 lat temu

$250-750 USD

Płatne przy odbiorze
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.
Identyfikator projektu: 4438845

Informację o projekcie

Zdalny projekt
Aktywny 11 lat temu

Szukasz sposobu na zarobienie pieniędzy?

Korzyści ze składania ofert na Freelancer.com

Ustal budżet i ramy czasowe
Otrzymuj wynagrodzenie za swoją pracę
Przedstaw swoją propozycję
Rejestracja i składanie ofert jest bezpłatne

O kliencie

Flaga HONG KONG
Sheung Wan, Hong Kong
5,0
1
Zweryfikowana metoda płatności
Członek od kwi 11, 2013

Weryfikacja Klienta

Dziękujemy! Przesłaliśmy Ci e-mailem link do odebrania darmowego bonusu.
Coś poszło nie tak podczas wysyłania wiadomości e-mail. Proszę spróbować ponownie.
Zarejestrowani Użytkownicy Całkowita Liczba Opublikowanych Projektów
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Wczytywanie podglądu
Udzielono pozwolenia na Geolokalizację.
Twoja sesja logowania wygasła i zostałeś wylogowany. Proszę, zalogować się ponownie.