13 nov 12.30 pm
Dependencies: mbed-rtos mbed wolfSSL
main.cpp
00001 #include "mbed.h" 00002 00003 #include <iostream> 00004 #include <string.h> 00005 #include <wolfssl/openssl/rsa.h> 00006 #include <wolfssl/openssl/pem.h> 00007 #include <wolfssl/openssl/err.h> 00008 00009 #include "openssl_rsa.h" 00010 00011 00012 using namespace std; 00013 00014 00015 int main() { 00016 00017 LOG("OpenSSL_RSA has been started."); 00018 00019 RSA *private_key; 00020 RSA *public_key; 00021 00022 char message[KEY_LENGTH / 8] = "Batuhan AVLAYAN - OpenSSL_RSA demo"; 00023 char *encrypt = NULL; 00024 char *decrypt = NULL; 00025 00026 char private_key_pem[12] = "private_key"; 00027 char public_key_pem[11] = "public_key"; 00028 00029 LOG(KEY_LENGTH); 00030 LOG(PUBLIC_EXPONENT); 00031 00032 RSA *keypair = RSA_generate_key(KEY_LENGTH, PUBLIC_EXPONENT, NULL, NULL); 00033 LOG("Generate key has been created."); 00034 00035 private_key = create_RSA(keypair, PRIVATE_KEY_PEM, private_key_pem); 00036 LOG("Private key pem file has been created."); 00037 00038 public_key = create_RSA(keypair, PUBLIC_KEY_PEM, public_key_pem); 00039 LOG("Public key pem file has been created.");; 00040 00041 encrypt = (char*)malloc(RSA_size(public_key)); 00042 int encrypt_length = public_encrypt(strlen(message) + 1, (unsigned char*)message, (unsigned char*)encrypt, public_key, RSA_PKCS1_OAEP_PADDING); 00043 if(encrypt_length == -1) { 00044 LOG("An error occurred in public_encrypt() method"); 00045 } 00046 LOG("Data has been encrypted."); 00047 00048 create_encrypted_file(encrypt, public_key); 00049 LOG("Encrypted file has been created."); 00050 00051 decrypt = (char *)malloc(encrypt_length); 00052 int decrypt_length = private_decrypt(encrypt_length, (unsigned char*)encrypt, (unsigned char*)decrypt, private_key, RSA_PKCS1_OAEP_PADDING); 00053 if(decrypt_length == -1) { 00054 LOG("An error occurred in private_decrypt() method"); 00055 } 00056 LOG("Data has been decrypted."); 00057 00058 FILE *decrypted_file = fopen("decrypted_file.txt", "w"); 00059 fwrite(decrypt, sizeof(*decrypt), decrypt_length - 1, decrypted_file); 00060 fclose(decrypted_file); 00061 LOG("Decrypted file has been created."); 00062 00063 RSA_free(keypair); 00064 free(private_key); 00065 free(public_key); 00066 free(encrypt); 00067 free(decrypt); 00068 LOG("OpenSSL_RSA has been finished."); 00069 00070 return 0; 00071 }
Generated on Wed Jul 13 2022 19:35:43 by 1.7.2