Commit 1781cf6f authored by Bhavesh Yadav's avatar Bhavesh Yadav

Added week6

parent 42620614
---> Generate private key
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out private-key2048.pem
---> Print info about private key
openssl pkey -in private-key.pem -text
---> Generate Public key
openssl pkey -in private-key.pem -out public-key.pem -pubout
---> Print public key info
openssl pkey -in public-key.pem -pubin -text
---> using genrsa
openssl genrsa -out key.pem 1024
openssl rsa -in key.pem -text -noout
openssl rsa -in key.pem -pubout -out pub-key.pem
to encrypt key
openssl rsa -in key.pem -des3 -out enc-key.pem
------ encrypt and decrypt using rsa
openssl rsautl -encrypt -in <input_file> -inkey <llave> \
-out <output_file> -pubin (if only public key file)
openssl rsautl -decrypt -in <input_file> -inkey <llave> \
-out <output_file>
\ No newline at end of file
Hello world. Thi
\ No newline at end of file
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,07582C3DBF330094
/DwImoCXVJozDk6xdWIboKttSlYPlIESetnCKisQeI01k2dGbQ/MbcTXbOG9tpS0
QJ5tRctiRNTSxKTGtPMaL8j+5fvz/SKU1M19RVWQTtc5wy7/Y0My0EI8ULiwgnw5
9UBsHLC/y0qGQm2yiMtPSrEdVVjhGBUrTYn+P8hwBVhJsBhBfVE8jOOR4H2Gp0Mc
OLJNJWtOM/aOtazuNUjkpzthv/Zbd+6RQla4BWm7Mj4uio0o6QHwKrWvaD+JTohw
DPPxEeY8dULa+X/9d/sP2xW6nNCbw8wDcxfECNPOGaMVsn3F4xvXp/CV4It5YBOP
9+dsX9lfKQCEZ1zRzxl9xKprw3zNGFP4Q7jz8YvfSlI09RZFKaycRPDp3pKuvDoO
5dOZDcVOuTrVd8h+y2bKmR53Qi4ZMfg74NwxRgBuJPNjtiODVMP7Q9k3BeeDj1Ib
4vta8aebe2joYRlVPxk6RSz4Ds3hzzpnZHIxWc9Jr5DoN+fhWtj3Il6zAB8BTGur
M7stulI82DO4dmzY6Y++Nols10Mev1YNIy1Zn3YLrc8qKvZ9qHA/9qAlTTvlXbu/
cNLOPP/nd3T/TAP51YlBLEM2rHte2AjTvRNmgBkEvfj7UuNcCZytId6t6r07U8/z
5KP7JozauS9cdbGvoRFaQaqxK53Hhl0nD4fFKxP9Kt1V2VlNWSh5e6y/DnoqBJ+i
3dMydAo5QQ0wMgMFJEfelp5jXR4BWP1xD5TcoogawsyuRf5YQtEeJU7pl529JXIq
Uztcc++Q9ZkqQ2135M2DFi5+nWca3u4CHfgkOpSooR1YVMwNOK68NQ==
-----END RSA PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDvDqoMOgIZ6q7Y+bG4AbTZOx8dbLIZhRrxCTmEnA3fhAA8of9D
coMoeDhqct9iBK2W0gmPnTRYqPzV9Zwt0GT1yirvoDbcbE+qzuwCQlH+DpfDry9K
bYBUvIKQm5QMPTmfnK2N9zc8TTC7xZZ1BZOnkUW4qNduEpQVK5bm6An9uwIDAQAB
AoGAIqRUXgs17L2GcujUKR8OLwCTRLdQo8QXIGC+1gmrNP2y7xZmoEaC3SV2v25A
Erss0JNFUWttf3+VjAfYhwcQ6gmX0H/pIrQ1btDjLHsGvFFRU6j44U+nCMDxkFbW
DEza2PqsAc7XVEw5vYLM3kyjtMgOafJQE7qHYPFq1AblkGkCQQD82pm/as7cMBXU
/9yE4AKgZ2fj36BwFMO9XT81Nio7BGoxbn6HF6R/FzwDCEhXPqFtJn2rAb4tbMlK
UPbMCSSXAkEA8ggeP6NAjeHhF038wv4JH2EmOYvSaM2YD0imRe2pbkwEj5VOYlF8
DXHk/eACiQZox3FB0Zl3buUpMXkde8ngfQJBAOHyaX8ub2k9ItUyShkGn/I8VQ7A
r3pYY81cfPYMz9HrEQXZCgGn89uJpJvFE/e6RL/nrFZaeVnYI0tgbBlJdkMCQQCg
3LBuD20KYASg3p6OYxVhG8qyGLJiIbNdBSYt+AXSXwfw/oU4Z3wR248dBVPqCq59
UFM0odF1jS3RyfPEoKppAkBkh+2cAsl/KrfYuN11VexrIX3y/epTl6eHrKe5M+Hh
QqmuSHQRU5GxwhpCwced8cLvD8HRf5DoxoW/ABWHx6jH
-----END RSA PRIVATE KEY-----
Hello world. Thi
\ No newline at end of file
Hello world. Thi
\ No newline at end of file
~/:Fqlt }{rf]ΠQ S6Jx=]U*r0&v'rhJzx?8lĮU-J4H9N h[L̷ w=
\ No newline at end of file
hello world
70M
p`F$VC)ۏu%yrgSH0A{Cަvq'փQZ L) MQ9: M-:*ݺ{i/309c#Oa
\ No newline at end of file
hello world
-----BEGIN PRIVATE KEY-----
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALZsOqr2JmB5F0CZ
Jpt37ivfPNMJNlS+VqbxU1naetznFb+kOHDRp5D+hgM2sq07cmpmQSXlxIKrhZXL
NL5+EiISaG0LIGp3gFKryvdQrqEI8KzMEA0tFtZ5eIlTrCik25oqxcMCcDg4g5rs
7Vg06jWdeZYiokEe0tMrQ8rhHvB7AgMBAAECgYB7XAj4X2hoSLqepnJjI+DdriKV
m18wQ16ZmgwBcSswgtxEMiswr7Ye6N97ANwnJVIj/W4E0LHoo1C8kSPjxaFAYMLg
cg/nJ6vv4Mz0aR262NIyWtWXfp2SpzecYneLLbpqbvTD/dIvUzP6n0PPUEQyquPX
b/qjgoN7kKfazaJP4QJBAN8La4MMxQ2pFeWxJSMLwZO1MokLEvlKg0py/zlzJtQL
7Mnq2oWoqlWR0d4l+thbExLAlxrz5qfIHmXTwwBB6GMCQQDRYE2aDQ3RtM/83kJM
ZpQkQJPAxdDgZE6glbXCoRbD5cD8uC+yJxn0/nulddglHqabpQftP2cQAfLYEG8V
RbcJAkAguttG+su7ynElKI6LiwEX/MHyrEZXgKCtfxyGwKgU+77+jlEMxghg0Coc
0DP0JcExwkMqOFpDirEzPhTiZ8mDAkAEJMTEZLe+S7bGCVwEiQ8rfH+wE/ojRrjr
oqrbNDbwH47nMXn4K5/u4k5uItvpOCcR830pq9SNU4yLzB92q0+JAkEAtL9IHc88
RVFC1M1JiCOeifJTsyn8ohYmksf8POIbG4a5TqG3xXj6b+pLfqOcdLELrCgNX0D6
lp6cAEgkB9SS/g==
-----END PRIVATE KEY-----
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCXufxarA06Pud7
uT9m7ulzdLdWd/3sZnln5ntX7JZuNQVhfHYpuUf47T8IOiyc9Hr/ZlnyHKJcOtvp
GB4rdMmhtDr/vDWFUCJ2bXDX/pUBpGzvjET+VpJPxauRaOtRRH5xCANqE/icE+Is
e4zMQQGJAxw0Jr7UPy06VCnWTMn+NgjyUiK4ZHOK8RbndLtMb8seHZcVlOe5gmfE
1dU765yRz7tPmgODcaej0T2DZkYrj4+0H3nKRsH49Udvhw4XJUn3GfDXCYpR3RDe
C42mRHlqkCyIPt+3ae+E61br9Kr3/E1j6C/st3wTVnqiwX08UTVITAkNhbXBbOOx
/RYnxcJtAgMBAAECggEAEihU1fkPIDBU/Y5+0u+2inWmVzfG8JqW3uNLUYtjuU6p
FTCS541f2p9x0qc7nZD4g0YZb4sTtxvoI24adjLkynBKOz6n3QtpBGk2fvLdnDO0
Qbq0qwdrPRa34JAA0Vn0E8zUs8YuE2ehwpcKk4sYBvCTWH5mifoBjKBz3UyVQ9G+
dlc57xGKdUqSgYBJMyFo1AshxWI6vKF2WU/+Gbzym9MSec8+Fodfp2YhOT07Nz9W
0Ek4uCIo3scGAC+5RW9bZ8jCyc3v/49FSQLlY8lbZCeDc1LlrhXvMmWFl8/Jyb+8
zh5XKFigS754Z7yYRMHocaPWJss7eDaHm0u8Erh51QKBgQDFXt+nTdrjbW/VzBo8
S/VY/Lz7y1sYOFeHxK8JoJGkTI0I9YTelnJbnShFl2Wwa3ogDGgELzdRDqm6JRcs
oocmaJKud6sS3et+yK2aUmEbegSytSJSvXJoqhiLJJQSr7eXl/Rn6SoukT1Kdqmr
WtaGTiS94DrE5Tw3K7bjnm2VrwKBgQDEzBa4ccSgDKD0duJr1AjbpH7vjRLdzkIM
697f6waHeOAtednfT5bfswq9QTZDi7XMGwCCQjd1UuEFNJOsJfdRcd1QUwHWz/s0
ZVSaKfxlftxfQrLDMWc2rcGHjJRHJydZIoKj27zOdYG7JicHuenAtzsttuztaxcw
AaT5PMjMowKBgQCgC4HCseA4IWrZbEst785A3ZkFeO4iYrWfs37YiKrxFt4akLSw
pkCPR437eHwOJej/CfBizELH6OL6vc7f898x5wRik0lW4DtxMJuNkxWJaVVb8IOn
olWex6dlVUD5MiHmvGKEzE7XOhEAS97jw6JHgCBNFAGz3csJVdpVEwf7owKBgQCc
Gkt3eP7/+aR+5gKKh8GTAHOT7zJk8OQhvcOnmJUwRqiESiCRa1+BCFNfdefmQl8t
jMmliYLWNKy7ZU4yAlegqhJkUcOmsolPsYUfWGiV1cBWa+DCxmBZ1hAqRk+j9SHY
KXC5K2cj2b/TRNs23LjXnkB57Z0YYpcdBGDpNtcMwwKBgQCesyM8VxpB4bZrzrhj
5E1Wl2+iXg1iUhj3jovX3Qk+UapXda9ObvI2xSI7Jw71GJFQFVC9yJxZHs8cH0lI
7/Lv85uRrR7TXM1+U8bQi40PUhiyMwKQe9M/vYvO+nFtXgPWTof6ivscRXn/KCWJ
w4e4bjmqofPW8D7cdNFWJJap+Q==
-----END PRIVATE KEY-----
Exercise 4
encrypt -
- Read the symmmetric key from file (See fread(..))
- Encrypt the symmetric key using public key encryption and write it into a file named "C1" (You can use the public_encrypt(..) function of Exercise 2)
- Set the encryption key (See AES_set_encrypt_key())
- Generate random IV of 16 bytes (See RAND_bytes(..) ) and write it into a file named "IV"
- Encrypt the message using AES encryption (See AES_cfb128_encrypt(..))
- While encryption, take care that you encrypt the message in chunks of AES_BLOCK_SIZE and write it into a file named "C2"
decrypt -
- Read the cipher C1 from file (See fread(..))
- Decrypt the C1 using private key decryption to get the symmetric key (You can use the private_decrypt(..) function of Exercise 2)
- Set the encryption key (See AES_set_encrypt_key())
- Read the IV from file (See fread(..))
- Decrypt the message using AES decryption (See AES_cfb128_encrypt(..) and you may use the parameter AES_DECRYPT for decryption)
- While decryption, take care that you decrypt the cipher in chunks of AES_BLOCK_SIZE and write it into a file with name given in the parameter (char* decrypted_file)
General Guidance -
- While reading/writing a file take care that it may have special characters (like '\0', '\n' etc.) which may cause partial read/write.
To avoid these you may use fread() and fwrite() to read/write all the bytes.
- Close all the files that you open
testhybriddecrypt : hybrid_test_decrypt.c
gcc -o $@ hybrid_test_decrypt.c -L. -l_modelencrypt -lcrypto
test :
./testhybriddecrypt message.txt private.pem public.pem symmetric_key.txt
\ No newline at end of file
1. Write your private_decrypt function in hybrid_test_decrypt.c file
2. build executable using
make
3. run test using
make test
if output is 1 then your code is correct else it is wrong.
#include <openssl/aes.h>
#include <openssl/rand.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <openssl/pem.h>
#include <openssl/ssl.h>
#include <openssl/rsa.h>
#include <openssl/evp.h>
#include <openssl/bio.h>
#include <openssl/err.h>
#include "modelEncrypt.h"
void hybrid_decrypt(char* private_key_file, char* decrypted_file) {
/* your code goes here */
}
int main(int argc, char *argv[]) {
if(argc < 4){
printf("Usage : \narg1:message_file \narg2:private_key_file \narg3:public_key_file \narg4:symmetric_key\n");
exit(1);
}
encrypt(argv[4],argv[1], argv[3]);
hybrid_decrypt(argv[2], "decrypted_message.txt");
printf("output : %d\n",compare_files("message.txt","decrypted_message.txt"));
return 0;
}
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
\ No newline at end of file
#ifndef __HYBRIDENCRYPT_H__
#define __HYBRIDENCRYPT_H__
int compare_files(char*f1, char*f2);
void encrypt(char * symmetric_key_file, char* message_file, char* public_key_file);
#endif
\ No newline at end of file
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAunbfRz2Mfp/Bd3Wa2W6exB10RbQQ/CjdYCAfxCPaCRG0u9vZ
7qncUZXguNrEYqcb4avXZp214C/PGya4zR81p9lDI6jf6Sm2DKd5mY5J9Gcw3c2c
0fFee0Ggz6iVjcZfXXlmwUS8bQkMSBEGJ/CvOcBqHXEGN/ser1tAMxx7levsbj1B
YbqdkZ5hcnRpBbS/bDU4VXiDozjTdM/7hrF74JklwqfUsCy85lQEyNOxTCfVeVrW
eoKqLvQzFfj5OUiB7J5jCXpkupny2M8Q41da8VgyJtY/Vtz0nFnp5Orithqt1CFK
2ngFaeNHB9DE2UCmevorYPub3Du0NZDZxhSskQIDAQABAoIBAQCT71mnsKo1j9Oz
Tifjl8L4fxHPd1P+awFvkS0CtRr4FQcaAAwAMN1uEQXwQwiJ6GDTgz1q2XcBfYzH
0snNW5R7LYD52rKCzyfzFDACZwQ/llsLrmRboC7AhUnrVqoIiDkC9R1T+o+vxfzr
dC45I9gxbnoCD7jKUz5+C1x88H0QbHlCpJfIRURyM+O+U66opudutQSOOIyxTPdu
6LE43UR5y8mUl1XER/qSs/Nt0QW8NBqFboz2qy9iglGXV6cJPU1ydD5ZW96yn6YM
XNth1qAtWlreL0F6mGBm7bNW9VyQnHrYtPgtq/LK8TbN1inb23BiJprkzeOVeF9s
m0UesmH9AoGBANqM0BroeJifVVUmp/jX9Oc1NhhKgtPCafGCGz0nZKikBxoaZx0t
6Z71vFzPwA59Mcd+45faXosrUUs8iLa3TN/1B0tGY8B9cpMcsBvcHfhIuIqEycF5
btpFtVT43XlaboJjZWfG+svhCW0k0EUJl8BFPgsEBSUroxwPl/XGqN1bAoGBANpq
jEehKHjwIxPvthmhglbUrQ2fZPbwxFy/OEfTQJGZtoHrRwq1eSiXTR4sfHcqPBaq
cqntpt2iyWH5izWeUPlgSoDHRv2URjn+61C2DfHgAYx2UneBJM5WRy4/f4lwqVJV
4wARWMdBLITOuhgP4ExAo/2vPwZmzVdBi62CS+WDAoGBAMRJhjs0oeOJ7008G87+
vwHNo9krStdAHIEBds91Cw3/zDUgk438h3/yewvstzUMMmJXz7e6NAHQlQH6y1s3
xD69RqDQBpWC1h3UvUM4bl5pif03CDHRi8NUqmk330q38tr+xLvxVZ05b4rsbnYj
CH1ycyfXo3tf9u4j/zqKA25TAoGADnQ4nlDi7cXufFZDtcSDbJ2caidfNhxO0lhx
MAeh4UDL3CMmy2WhA/enSdTl07j+yv0yo14vycEJFKu/86drcmVV6NnHL+bNEu90
wR2bJKOPVq1J3dC1D9aT1VKsbPsAqYs3f3ymZGFCwfMwS4FZdZJdh98+C31oH1se
FDhoL2MCgYAd6lwkJHAH1tKMqDSnP6CYKMSfrNqJkOwZV4juArn3g5MzFjwTY024
iHPamOpgg/2STsV9s50gwKtOdZHlxWvWI9nWxRF5/oXPNcguV8FJXGV18w+/Yse9
Vd8YME3l+yTuAuNwQUFEpeuUOfmRdLQ8iEA51Z6cp0C/hm2nHAcsyw==
-----END RSA PRIVATE KEY-----
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAunbfRz2Mfp/Bd3Wa2W6e
xB10RbQQ/CjdYCAfxCPaCRG0u9vZ7qncUZXguNrEYqcb4avXZp214C/PGya4zR81
p9lDI6jf6Sm2DKd5mY5J9Gcw3c2c0fFee0Ggz6iVjcZfXXlmwUS8bQkMSBEGJ/Cv
OcBqHXEGN/ser1tAMxx7levsbj1BYbqdkZ5hcnRpBbS/bDU4VXiDozjTdM/7hrF7
4JklwqfUsCy85lQEyNOxTCfVeVrWeoKqLvQzFfj5OUiB7J5jCXpkupny2M8Q41da
8VgyJtY/Vtz0nFnp5Orithqt1CFK2ngFaeNHB9DE2UCmevorYPub3Du0NZDZxhSs
kQIDAQAB
-----END PUBLIC KEY-----
testhybridencrypt : hybrid_test_encrypt.c
gcc -o $@ hybrid_test_encrypt.c -L. -l_modeldecrypt -lcrypto
test :
./testhybridencrypt message.txt private.pem public.pem symmetric_key.txt
1. Write your encrypt function in hybrid_test_encrypt.c file
2. build executable using
make
3. run test using
make test
if output is 1 then your code is correct else it is wrong.
#include <openssl/aes.h>
#include <openssl/rand.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <openssl/pem.h>
#include <openssl/ssl.h>
#include <openssl/rsa.h>
#include <openssl/evp.h>
#include <openssl/bio.h>
#include <openssl/err.h>
#include "modelDecrypt.h"
int padding = RSA_PKCS1_OAEP_PADDING;
RSA * createRSAWithFilename(char * filename,int public)
{
FILE * fp = fopen(filename,"rb");
if(fp == NULL)
{
printf("Unable to open file %s \n",filename);
return NULL;
}
RSA *rsa= RSA_new() ;
if(public)
{
rsa = PEM_read_RSA_PUBKEY(fp, &rsa,NULL, NULL);
}
else
{
rsa = PEM_read_RSAPrivateKey(fp, &rsa,NULL, NULL);
}
return rsa;
}
// int private_decrypt(unsigned char * enc_data,int data_len,char * fname, unsigned char *decrypted)
// {
// int result = 0;
// RSA *rsa = createRSAWithFilename(fname,1);
// result = RSA_public_decrypt(data_len,enc_data,decrypted,rsa,padding);
// /* your code goes here */
// return result;
// }
void hybrid_encrypt(char * symmetric_key_file, char* message_file, char* public_key_file) {
puts("in hybrid file");
int result = 0;
RSA *rsa = createRSAWithFilename(public_key_file,0);
char symmKey[2048];
char encKey[2048];
FILE *fp = fopen(symmetric_key_file, "r");
puts("reading file");
fseek(fp, 0, SEEK_END);
size_t keyLen = ftell(fp);
rewind(fp);
fread(symmKey, keyLen, 1, fp);
puts(symmKey);
printf("%ld",keyLen);
puts("fread");
result = RSA_public_encrypt(keyLen,symmKey,encKey,rsa,padding);
puts("result");
puts(encKey);
puts("enckey");
}
int main(int argc, char *argv[]) {
if(argc < 4){
printf("Usage : \narg1:message_file \narg2:private_key_file \narg3:public_key_file \narg4:symmetric_key\n");
exit(1);
}
puts("calling hybrid encyrpt");
hybrid_encrypt(argv[4],argv[1], argv[3]);
decrypt(argv[2], "decrypted_message.txt");
printf("output : %d\n",compare_files("message.txt","decrypted_message.txt"));
return 0;
}
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
\ No newline at end of file
#ifndef __model_hybrid_decrypt_h__
#define __model_hybrid_decrypt_h__
int compare_files(char*f1, char*f2);
void decrypt(char* private_key_file, char* decrypted_file);
#endif
\ No newline at end of file
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAunbfRz2Mfp/Bd3Wa2W6exB10RbQQ/CjdYCAfxCPaCRG0u9vZ
7qncUZXguNrEYqcb4avXZp214C/PGya4zR81p9lDI6jf6Sm2DKd5mY5J9Gcw3c2c
0fFee0Ggz6iVjcZfXXlmwUS8bQkMSBEGJ/CvOcBqHXEGN/ser1tAMxx7levsbj1B
YbqdkZ5hcnRpBbS/bDU4VXiDozjTdM/7hrF74JklwqfUsCy85lQEyNOxTCfVeVrW
eoKqLvQzFfj5OUiB7J5jCXpkupny2M8Q41da8VgyJtY/Vtz0nFnp5Orithqt1CFK
2ngFaeNHB9DE2UCmevorYPub3Du0NZDZxhSskQIDAQABAoIBAQCT71mnsKo1j9Oz
Tifjl8L4fxHPd1P+awFvkS0CtRr4FQcaAAwAMN1uEQXwQwiJ6GDTgz1q2XcBfYzH
0snNW5R7LYD52rKCzyfzFDACZwQ/llsLrmRboC7AhUnrVqoIiDkC9R1T+o+vxfzr
dC45I9gxbnoCD7jKUz5+C1x88H0QbHlCpJfIRURyM+O+U66opudutQSOOIyxTPdu
6LE43UR5y8mUl1XER/qSs/Nt0QW8NBqFboz2qy9iglGXV6cJPU1ydD5ZW96yn6YM
XNth1qAtWlreL0F6mGBm7bNW9VyQnHrYtPgtq/LK8TbN1inb23BiJprkzeOVeF9s
m0UesmH9AoGBANqM0BroeJifVVUmp/jX9Oc1NhhKgtPCafGCGz0nZKikBxoaZx0t
6Z71vFzPwA59Mcd+45faXosrUUs8iLa3TN/1B0tGY8B9cpMcsBvcHfhIuIqEycF5
btpFtVT43XlaboJjZWfG+svhCW0k0EUJl8BFPgsEBSUroxwPl/XGqN1bAoGBANpq
jEehKHjwIxPvthmhglbUrQ2fZPbwxFy/OEfTQJGZtoHrRwq1eSiXTR4sfHcqPBaq
cqntpt2iyWH5izWeUPlgSoDHRv2URjn+61C2DfHgAYx2UneBJM5WRy4/f4lwqVJV
4wARWMdBLITOuhgP4ExAo/2vPwZmzVdBi62CS+WDAoGBAMRJhjs0oeOJ7008G87+
vwHNo9krStdAHIEBds91Cw3/zDUgk438h3/yewvstzUMMmJXz7e6NAHQlQH6y1s3
xD69RqDQBpWC1h3UvUM4bl5pif03CDHRi8NUqmk330q38tr+xLvxVZ05b4rsbnYj
CH1ycyfXo3tf9u4j/zqKA25TAoGADnQ4nlDi7cXufFZDtcSDbJ2caidfNhxO0lhx
MAeh4UDL3CMmy2WhA/enSdTl07j+yv0yo14vycEJFKu/86drcmVV6NnHL+bNEu90
wR2bJKOPVq1J3dC1D9aT1VKsbPsAqYs3f3ymZGFCwfMwS4FZdZJdh98+C31oH1se
FDhoL2MCgYAd6lwkJHAH1tKMqDSnP6CYKMSfrNqJkOwZV4juArn3g5MzFjwTY024
iHPamOpgg/2STsV9s50gwKtOdZHlxWvWI9nWxRF5/oXPNcguV8FJXGV18w+/Yse9
Vd8YME3l+yTuAuNwQUFEpeuUOfmRdLQ8iEA51Z6cp0C/hm2nHAcsyw==
-----END RSA PRIVATE KEY-----
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAunbfRz2Mfp/Bd3Wa2W6e
xB10RbQQ/CjdYCAfxCPaCRG0u9vZ7qncUZXguNrEYqcb4avXZp214C/PGya4zR81
p9lDI6jf6Sm2DKd5mY5J9Gcw3c2c0fFee0Ggz6iVjcZfXXlmwUS8bQkMSBEGJ/Cv
OcBqHXEGN/ser1tAMxx7levsbj1BYbqdkZ5hcnRpBbS/bDU4VXiDozjTdM/7hrF7
4JklwqfUsCy85lQEyNOxTCfVeVrWeoKqLvQzFfj5OUiB7J5jCXpkupny2M8Q41da
8VgyJtY/Vtz0nFnp5Orithqt1CFK2ngFaeNHB9DE2UCmevorYPub3Du0NZDZxhSs
kQIDAQAB
-----END PUBLIC KEY-----
Exercise 2
public_encrypt -
- Read the RSA public key into RSA structure (see PEM_read_RSA_PUBKEY(..) for guidance)
- encrypt the message (see RSA_public_encrypt)
- Use RSA_PKCS1_OAEP_PADDING for padding
private_decrypt -
- Read the RSA private key into RSA structure (see PEM_read_RSAPrivateKey(..) for guidance)
- decrypt the message (see RSA_private_decrypt)
- Use RSA_PKCS1_OAEP_PADDING for padding
rsatestdecrypt : rsa_test_decrypt.c
gcc -o $@ rsa_test_decrypt.c -L. -l_modelrsaencrypt -lcrypto
test :
./rsatestdecrypt message.txt private.pem public.pem
\ No newline at end of file
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
\ No newline at end of file
#ifndef __modelENCRYPTRSA_H__
#define __modelENCRYPTRSA_H__
void printLastError(char *msg);
int compare_files(char*f1, char*f2);
int public_encrypt(unsigned char * data,int data_len,char * fname, unsigned char *encrypted);
#endif
\ No newline at end of file
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAunbfRz2Mfp/Bd3Wa2W6exB10RbQQ/CjdYCAfxCPaCRG0u9vZ
7qncUZXguNrEYqcb4avXZp214C/PGya4zR81p9lDI6jf6Sm2DKd5mY5J9Gcw3c2c
0fFee0Ggz6iVjcZfXXlmwUS8bQkMSBEGJ/CvOcBqHXEGN/ser1tAMxx7levsbj1B
YbqdkZ5hcnRpBbS/bDU4VXiDozjTdM/7hrF74JklwqfUsCy85lQEyNOxTCfVeVrW
eoKqLvQzFfj5OUiB7J5jCXpkupny2M8Q41da8VgyJtY/Vtz0nFnp5Orithqt1CFK
2ngFaeNHB9DE2UCmevorYPub3Du0NZDZxhSskQIDAQABAoIBAQCT71mnsKo1j9Oz
Tifjl8L4fxHPd1P+awFvkS0CtRr4FQcaAAwAMN1uEQXwQwiJ6GDTgz1q2XcBfYzH
0snNW5R7LYD52rKCzyfzFDACZwQ/llsLrmRboC7AhUnrVqoIiDkC9R1T+o+vxfzr
dC45I9gxbnoCD7jKUz5+C1x88H0QbHlCpJfIRURyM+O+U66opudutQSOOIyxTPdu
6LE43UR5y8mUl1XER/qSs/Nt0QW8NBqFboz2qy9iglGXV6cJPU1ydD5ZW96yn6YM
XNth1qAtWlreL0F6mGBm7bNW9VyQnHrYtPgtq/LK8TbN1inb23BiJprkzeOVeF9s
m0UesmH9AoGBANqM0BroeJifVVUmp/jX9Oc1NhhKgtPCafGCGz0nZKikBxoaZx0t
6Z71vFzPwA59Mcd+45faXosrUUs8iLa3TN/1B0tGY8B9cpMcsBvcHfhIuIqEycF5
btpFtVT43XlaboJjZWfG+svhCW0k0EUJl8BFPgsEBSUroxwPl/XGqN1bAoGBANpq
jEehKHjwIxPvthmhglbUrQ2fZPbwxFy/OEfTQJGZtoHrRwq1eSiXTR4sfHcqPBaq
cqntpt2iyWH5izWeUPlgSoDHRv2URjn+61C2DfHgAYx2UneBJM5WRy4/f4lwqVJV
4wARWMdBLITOuhgP4ExAo/2vPwZmzVdBi62CS+WDAoGBAMRJhjs0oeOJ7008G87+
vwHNo9krStdAHIEBds91Cw3/zDUgk438h3/yewvstzUMMmJXz7e6NAHQlQH6y1s3
xD69RqDQBpWC1h3UvUM4bl5pif03CDHRi8NUqmk330q38tr+xLvxVZ05b4rsbnYj
CH1ycyfXo3tf9u4j/zqKA25TAoGADnQ4nlDi7cXufFZDtcSDbJ2caidfNhxO0lhx
MAeh4UDL3CMmy2WhA/enSdTl07j+yv0yo14vycEJFKu/86drcmVV6NnHL+bNEu90
wR2bJKOPVq1J3dC1D9aT1VKsbPsAqYs3f3ymZGFCwfMwS4FZdZJdh98+C31oH1se
FDhoL2MCgYAd6lwkJHAH1tKMqDSnP6CYKMSfrNqJkOwZV4juArn3g5MzFjwTY024
iHPamOpgg/2STsV9s50gwKtOdZHlxWvWI9nWxRF5/oXPNcguV8FJXGV18w+/Yse9
Vd8YME3l+yTuAuNwQUFEpeuUOfmRdLQ8iEA51Z6cp0C/hm2nHAcsyw==
-----END RSA PRIVATE KEY-----
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAunbfRz2Mfp/Bd3Wa2W6e
xB10RbQQ/CjdYCAfxCPaCRG0u9vZ7qncUZXguNrEYqcb4avXZp214C/PGya4zR81
p9lDI6jf6Sm2DKd5mY5J9Gcw3c2c0fFee0Ggz6iVjcZfXXlmwUS8bQkMSBEGJ/Cv
OcBqHXEGN/ser1tAMxx7levsbj1BYbqdkZ5hcnRpBbS/bDU4VXiDozjTdM/7hrF7
4JklwqfUsCy85lQEyNOxTCfVeVrWeoKqLvQzFfj5OUiB7J5jCXpkupny2M8Q41da
8VgyJtY/Vtz0nFnp5Orithqt1CFK2ngFaeNHB9DE2UCmevorYPub3Du0NZDZxhSs
kQIDAQAB
-----END PUBLIC KEY-----
#include <openssl/pem.h>
#include <openssl/ssl.h>
#include <openssl/rsa.h>
#include <openssl/evp.h>
#include <openssl/bio.h>
#include <openssl/err.h>
#include <stdio.h>
#include <string.h>
#include "model_encrypt_rsa.h"
int padding = RSA_PKCS1_OAEP_PADDING;
RSA * createRSAWithFilename(char * filename,int public)
{
FILE * fp = fopen(filename,"rb");
if(fp == NULL)
{
printf("Unable to open file %s \n",filename);
return NULL;
}
RSA *rsa= RSA_new() ;
if(public)
{
rsa = PEM_read_RSA_PUBKEY(fp, &rsa,NULL, NULL);
}
else
{
rsa = PEM_read_RSAPrivateKey(fp, &rsa,NULL, NULL);
}
return rsa;
}
int private_decrypt(unsigned char * enc_data,int data_len,char * fname, unsigned char *decrypted)
{
int result = 0;
RSA *rsa = createRSAWithFilename(fname,0);
result = RSA_public_decrypt(data_len,enc_data,decrypted,rsa,padding);
/* your code goes here */
return result;
}
int main(int argc, char *argv[]){
if(argc < 4){
printf("Usage : arg1:message_file arg2:private_key_file arg3:public_key_file\n");
exit(1);
}
char plainText[2048/8]; //key length : 2048
FILE *fp = fopen(argv[1], "r");
fseek(fp, 0, SEEK_END);
size_t size = ftell(fp);
rewind(fp);
fread(plainText, size, 1, fp);
unsigned char encrypted[4098]={};
unsigned char decrypted[4098]={};
int encrypted_length= public_encrypt((unsigned char*) plainText,strlen(plainText),argv[3],encrypted);
if(encrypted_length == -1)
{
printLastError("Public Encrypt failed ");
exit(0);
}
int decrypted_length = private_decrypt(encrypted,encrypted_length,argv[2], decrypted);
if(decrypted_length == -1)
{
printLastError("Private Decrypt failed ");
exit(0);
}
FILE *file = fopen("decrypted_message.txt", "w");
int results = fputs((const char*) decrypted, file);
if (results == EOF) {
printf("Error in writing to file\n");
// Failed to write do error code here.
}
fclose(file);
printf("output : %d\n",compare_files("message.txt","decrypted_message.txt"));
}
rsatestencrypt : rsa_test_encrypt.c
gcc -o $@ rsa_test_encrypt.c -L. -l_modelrsadecrypt -lcrypto
test :
./rsatestencrypt message.txt private.pem public.pem
\ No newline at end of file
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
\ No newline at end of file
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
\ No newline at end of file
#ifndef __MODELDECRYPTRSA_H_
#define _MODELDECRYPTRSA_H_
void printLastError(char *msg);
int compare_files(char*f1, char*f2);
int private_decrypt(unsigned char * enc_data,int data_len,char * fname, unsigned char *decrypted);
#endif
\ No newline at end of file
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAunbfRz2Mfp/Bd3Wa2W6exB10RbQQ/CjdYCAfxCPaCRG0u9vZ
7qncUZXguNrEYqcb4avXZp214C/PGya4zR81p9lDI6jf6Sm2DKd5mY5J9Gcw3c2c
0fFee0Ggz6iVjcZfXXlmwUS8bQkMSBEGJ/CvOcBqHXEGN/ser1tAMxx7levsbj1B
YbqdkZ5hcnRpBbS/bDU4VXiDozjTdM/7hrF74JklwqfUsCy85lQEyNOxTCfVeVrW
eoKqLvQzFfj5OUiB7J5jCXpkupny2M8Q41da8VgyJtY/Vtz0nFnp5Orithqt1CFK
2ngFaeNHB9DE2UCmevorYPub3Du0NZDZxhSskQIDAQABAoIBAQCT71mnsKo1j9Oz
Tifjl8L4fxHPd1P+awFvkS0CtRr4FQcaAAwAMN1uEQXwQwiJ6GDTgz1q2XcBfYzH
0snNW5R7LYD52rKCzyfzFDACZwQ/llsLrmRboC7AhUnrVqoIiDkC9R1T+o+vxfzr
dC45I9gxbnoCD7jKUz5+C1x88H0QbHlCpJfIRURyM+O+U66opudutQSOOIyxTPdu
6LE43UR5y8mUl1XER/qSs/Nt0QW8NBqFboz2qy9iglGXV6cJPU1ydD5ZW96yn6YM
XNth1qAtWlreL0F6mGBm7bNW9VyQnHrYtPgtq/LK8TbN1inb23BiJprkzeOVeF9s
m0UesmH9AoGBANqM0BroeJifVVUmp/jX9Oc1NhhKgtPCafGCGz0nZKikBxoaZx0t
6Z71vFzPwA59Mcd+45faXosrUUs8iLa3TN/1B0tGY8B9cpMcsBvcHfhIuIqEycF5
btpFtVT43XlaboJjZWfG+svhCW0k0EUJl8BFPgsEBSUroxwPl/XGqN1bAoGBANpq
jEehKHjwIxPvthmhglbUrQ2fZPbwxFy/OEfTQJGZtoHrRwq1eSiXTR4sfHcqPBaq
cqntpt2iyWH5izWeUPlgSoDHRv2URjn+61C2DfHgAYx2UneBJM5WRy4/f4lwqVJV
4wARWMdBLITOuhgP4ExAo/2vPwZmzVdBi62CS+WDAoGBAMRJhjs0oeOJ7008G87+
vwHNo9krStdAHIEBds91Cw3/zDUgk438h3/yewvstzUMMmJXz7e6NAHQlQH6y1s3
xD69RqDQBpWC1h3UvUM4bl5pif03CDHRi8NUqmk330q38tr+xLvxVZ05b4rsbnYj
CH1ycyfXo3tf9u4j/zqKA25TAoGADnQ4nlDi7cXufFZDtcSDbJ2caidfNhxO0lhx
MAeh4UDL3CMmy2WhA/enSdTl07j+yv0yo14vycEJFKu/86drcmVV6NnHL+bNEu90
wR2bJKOPVq1J3dC1D9aT1VKsbPsAqYs3f3ymZGFCwfMwS4FZdZJdh98+C31oH1se
FDhoL2MCgYAd6lwkJHAH1tKMqDSnP6CYKMSfrNqJkOwZV4juArn3g5MzFjwTY024
iHPamOpgg/2STsV9s50gwKtOdZHlxWvWI9nWxRF5/oXPNcguV8FJXGV18w+/Yse9
Vd8YME3l+yTuAuNwQUFEpeuUOfmRdLQ8iEA51Z6cp0C/hm2nHAcsyw==
-----END RSA PRIVATE KEY-----
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAunbfRz2Mfp/Bd3Wa2W6e
xB10RbQQ/CjdYCAfxCPaCRG0u9vZ7qncUZXguNrEYqcb4avXZp214C/PGya4zR81
p9lDI6jf6Sm2DKd5mY5J9Gcw3c2c0fFee0Ggz6iVjcZfXXlmwUS8bQkMSBEGJ/Cv
OcBqHXEGN/ser1tAMxx7levsbj1BYbqdkZ5hcnRpBbS/bDU4VXiDozjTdM/7hrF7
4JklwqfUsCy85lQEyNOxTCfVeVrWeoKqLvQzFfj5OUiB7J5jCXpkupny2M8Q41da
8VgyJtY/Vtz0nFnp5Orithqt1CFK2ngFaeNHB9DE2UCmevorYPub3Du0NZDZxhSs
kQIDAQAB
-----END PUBLIC KEY-----
#include <openssl/pem.h>
#include <openssl/ssl.h>
#include <openssl/rsa.h>
#include <openssl/evp.h>
#include <openssl/bio.h>
#include <openssl/err.h>
#include <stdio.h>
#include<string.h>
#include "model_decrypt_rsa.h"
int padding = RSA_PKCS1_OAEP_PADDING;
RSA * createRSAWithFilename(char * filename,int public)
{
FILE * fp = fopen(filename,"rb");
if(fp == NULL)
{
printf("Unable to open file %s \n",filename);
return NULL;
}
RSA *rsa= RSA_new() ;
if(public)
{
rsa = PEM_read_RSA_PUBKEY(fp, &rsa,NULL, NULL);
}
else
{
rsa = PEM_read_RSAPrivateKey(fp, &rsa,NULL, NULL);
}
return rsa;
}
int public_encrypt(unsigned char * data,int data_len,char * fname, unsigned char *encrypted)
{
int result = 0;
RSA *rsa = createRSAWithFilename(fname,1);
result = RSA_public_encrypt(data_len,data,encrypted,rsa,padding);
return result;
}
int main(int argc, char *argv[]){
if(argc < 4){
printf("Usage : arg1:message_file arg2:private_key_file arg3:public_key_file\n");
exit(1);
}
char plainText[2048/8]; //key length : 2048
FILE *fp = fopen(argv[1], "r");
fseek(fp, 0, SEEK_END);
size_t size = ftell(fp);
rewind(fp);
fread(plainText, size, 1, fp);
unsigned char encrypted[4098]={};
unsigned char decrypted[4098]={};
int encrypted_length= public_encrypt((unsigned char*) plainText,strlen(plainText),argv[3],encrypted);
if(encrypted_length == -1)
{
printLastError("Public Encrypt failed ");
exit(0);
}
int decrypted_length = private_decrypt(encrypted,encrypted_length,argv[2], decrypted);
if(decrypted_length == -1)
{
printLastError("Private Decrypt failed ");
exit(0);
}
FILE *file = fopen("decrypted_message.txt", "w");
int results = fputs((const char*) decrypted, file);
if (results == EOF) {
printf("Error in writing to file\n");
// Failed to write do error code here.
}
fclose(file);
printf("output : %d ", compare_files("message.txt","decrypted_message.txt"));
return 0;
}
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDvDqoMOgIZ6q7Y+bG4AbTZOx8d
bLIZhRrxCTmEnA3fhAA8of9DcoMoeDhqct9iBK2W0gmPnTRYqPzV9Zwt0GT1yirv
oDbcbE+qzuwCQlH+DpfDry9KbYBUvIKQm5QMPTmfnK2N9zc8TTC7xZZ1BZOnkUW4
qNduEpQVK5bm6An9uwIDAQAB
-----END PUBLIC KEY-----
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCpKzVcchaIHvVAYK+TkA82Nhli
wY4QbCfVyJ77nw/4U8wnN68QLuswujdjUl5KYBIS9f0a3wTaP8wdLMnQFseZSuYF
P0ZGwBN0ftn4D+cbXKRYyXnn8Mm4qMrRPuh7BJbbtSi03RuND14urti+QcOsoU/7
FwHl9Z5EgkN7AztGwwIDAQAB
-----END PUBLIC KEY-----
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,46A455A8E97BAFE41468DFC0029DD716
QKBhiXZ6j/EIvWzbKEFDjFJvB0kAGPMTVN+QRwd7NzMlU97jgks/QsV8IKlNi9vw
LhmpdY7LF+yt/cw/xZq+LA3/bT8Rbnwt1hFx23TnPLPZ4AI/3Yhbz9Oj++U2X+r/
/PuxzjOFKPrHUSqh0/Vhin/vNER7DF5Z2jtYwoKTOL1FRlDM3mn5HcJK5y9LOSzh
7l96YhQ7knllQ2NnQ7cuURTYJSjVqFGxGoGgiAct+aI+PvbtfYXEFbWspNZ3/kg8
kGiT4/n20rFbHJpdDXukRklHoFYaWu1cGRFslkopriWC3KouJ631BFGeOGiDs47E
8olashosy4fyJlaClxaXu2X8WzuF4eBBZMKdE+daohjoh8o2oesYWOdQq29bu5RT
siDi58uKV9n6lwMiogrFvD+wnSHJo52ZJPO6SShLM+pgpTVUcMpT8qgPA5GnfDNR
4iAzF6zXcRQXh3HICIvgLn9eHVnLmX8cUB8b7ef/0yLU1n+2l4uSOvi+7Ezvq9kN
9xglBlw9u8+pGxiFfUfDS8DeGAg9OIEqmrbOyu+/jHrcCP1154EgC1eU6iWB66gc
bIq9OhEiaXjDi/Pygdc8tYCIGKVQeC1OrAEn6GaJ/M9ANSDVGIfr345D+HoAaoGy
Cw44QHZ0Jbv2Rca33ynsSKpcwhe03gpSNA+/poGkqXTD2iv8m0DvmiylcO4TI2eE
zQuF15d3co6bJPjcFgzu2gu+sS6w8gHxxnttqrS8SLOKPuFTfhMwny02fAg/iNdu
Nk1EDZiNqupJSADNXhWAu++u6bA7CU5I4Dh594LeDOFbHl5T2rPmPHzhBcHWuux7
eC6JeGQ7F39AWNCSVP3oZiHJ4usYKE4eQJvSdSvBWVFcVHfL6nayzm5qe4qJ7TA7
4hnY0QFPVM6nAB9SgDRKLh3v5XiPpCCeC4JFiWxCCnR3iOlRlNiH3xVAa0dDySYs
k+rjNGsOcaGSMu91+/s7UJivrGub0nZ/1PfCzeKcZUYE5T5c/m5H+79B9XpblISC
jgGRcMnbI1mi5HE7q04SW3XHPEU+cUqoP1Ab3qEzhjQi4oGJNxMkbaN6TKUwK0P/
RqeYE+H7Ym6aTukrdpcJNJ8i9kW9t0oiNH6bmd6iFEcVh3267SJvgJAokuZYDEEK
bRy0y//mULehV+/VFphwwq9kc7xL7/iERXlvv61AVouf7BL+J9KgrEPrciR7HW7b
TY3BuHaSaAARVk3/Emoh4McPE9+0MrRV09udjzGLg4TMXM48BBZHgeBQw84+q5cF
baXiRMQB5fWP367yySVlRdUCKIW8loweqj7mzOmd87+0FadalarM0ZJnYFfDMo3H
BPX6fMsHIeFmeOzzMSKygpXXv7ayxVrXSklQOIFzWEmjjIwlZi4EO3RG4L//HhEO
aPUJujJLPy+ytTIHtyPmZzE/F3F66RnV0DArVLCMQNiDilQ+7nhtEsHza735LcxK
Qu5rfiZo/N9QE7xF7Xs4705tuM+Xo4AQSE/G3gqeaPLJluEGoHVVJKjWV6rvnOK0
7TwCo7lN/Rwp1RMcC5kJGC2ucNgF37rXxHhP2/Ale5lw+45OXoTVYHcBcH0wMlu1
-----END RSA PRIVATE KEY-----
-->openssl speed
1024 bits private rsa : 42517 in 9.92s 0.00023s
1024 bits public rsa 856376 in 9.95s 0.000011s --slowest
--> measured
1024 bits rsa encrypt with script - 23 and 21 seconds (5000 times) 0.0044
1024 bits rsa decrypt with script - 25 and 24.25 (5000 times) 0.005
--->aes-128-cbc
323406 in 3 seconds 0.00000927s
\ No newline at end of file
counter=1
startTime=$(date +%s)
while [ $counter -le 5000 ]
do
openssl rsautl -decrypt -in message_enc.txt -inkey key.pem -out message_decoded.txt
((counter++))
done
endTime=$(date +%s)
echo "Time taken : $(($endTime - $startTime))"
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment