Find Jobs
Hire Freelancers

Security assignment

$30-250 USD

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

$30-250 USD

Оплачується при отриманні
Use the openssl library ([login to view URL]) to write the following two functions for encryption and decryption in a file fscrypt.cc. You should use block cipher method blowfish for encryption. Blowfish uses 64-bit blocks and typically 128-bit keys. // put the following lines in fscrypt.h #include "openssl/blowfish.h" // encrypt plaintext of length bufsize. Use keystr as the key. const int BLOCKSIZE = 8; // Block size for blowfish void *fs_encrypt(void *plaintext, int bufsize, char *keystr, int *resultlen); // decrypt ciphertext of length bufsize. Use keystr as the key. void *fs_decrypt(void *ciphertext, int bufsize, char *keystr, int *resultlen); Both functions allocate the result buffer of at least the required size (using new()) and return a pointer to it. Both functions also return the number of valid bytes in the result buffer in resultlen. The application code is responsible for deleting the buffer. Use CBC mode of encryption. For padding, pad with length of the pad in all the padded characters. Assume that the initialization vector contains NULL characters (all 0's). Description of blowfish functions can be found at [login to view URL] Use the following functions to faciliate your work: BF_set_key: use all characters of the keystr, excluding NULL terminator. Valid keystr is assumed to be a string. BF_cbc_encrypt and BF_ecb_encrypt ================================================ #include <assert.h> #include <stdio.h> #include <string.h> #include "fscrypt.h" int main() { char s[] = "hello world"; char *outbuf, *recvbuf; char pass[] = "top secret"; int len = 0; int recvlen = 0; outbuf = (char *) fs_encrypt((void *) s, strlen(s)+1, pass, &len); printf("%s %d\n", "length after encryption = ", len); int i = 0; printf("ciphertext = "); for (i = 0; i < len; i++) printf("%02x", outbuf[i]); printf("\n"); recvbuf = (char *) fs_decrypt((void *) outbuf, len, pass, &recvlen); assert(memcmp(s, recvbuf, recvlen) == 0); assert(recvlen == (strlen(s) + 1)); printf("plaintext = %s\n", recvbuf); } ================================================
ID проекту: 6627626

Про проект

5 пропозицій(-ї)
Дистанційний проект
Активність 10 yrs ago

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

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

Вкажіть свій бюджет та терміни
Отримайте гроші за свою роботу
Опишіть свою пропозицію
Реєстрація та подання заявок у проекти є безкоштовними
5 фрілансерів(-и) готові виконати цю роботу у середньому за $93 USD
Аватарка користувача
Hello I'm interesting your project very well I'm a Good C/C++, Crypto, Math, Algorithm expert. I understand your req exactly. I m quite well experienced in these assignment jobs. Let's go ahead with me I want to service for you continously. Thanks
$70 USD за 1 день
4,9 (932 відгуки(-ів))
9,1
9,1
Аватарка користувача
I am very proficient in c, c++. I have 15 years c++ developing experience now, and I have worked for 5 years. My work is online game developing, and mainly focus on server side, the lauguage is c++ under linux. I used c++ to make many great projects, for example, I made the tools which can convert java files to c++ scripts which has the same effect, of course garbage collection included. I also made our own mobile game using c++, I even can show you the demo of client. Trust me, please let expert help you.
$49 USD за 2 дні(-в)
4,9 (226 відгуки(-ів))
7,4
7,4
Аватарка користувача
Hello I am a c/c++ programmer. I can do this job perfectly. If you have interest for me, please keep message in here. Sincerely
$126 USD за 2 дні(-в)
4,9 (8 відгуки(-ів))
4,3
4,3
Аватарка користувача
A proposal has not yet been provided
$155 USD за 3 дні(-в)
0,0 (0 відгуки(-ів))
0,0
0,0
Аватарка користувача
A proposal has not yet been provided
$66 USD за 3 дні(-в)
0,0 (0 відгуки(-ів))
0,0
0,0

Про клієнта

Прапор UNITED STATES
dallas, United States
5,0
2
На сайті з жовт. 12, 2014

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

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