13 nov 12.30 pm

Dependencies:   mbed-rtos mbed wolfSSL

Revision:
0:1c8dabfe6522
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Nov 13 07:06:14 2018 +0000
@@ -0,0 +1,71 @@
+#include "mbed.h"
+
+#include <iostream>
+#include <string.h>
+#include <wolfssl/openssl/rsa.h>
+#include <wolfssl/openssl/pem.h>
+#include <wolfssl/openssl/err.h>
+
+#include "openssl_rsa.h"
+
+
+using namespace std;
+
+
+int main() {
+    
+    LOG("OpenSSL_RSA has been started.");
+    
+    RSA *private_key;
+    RSA *public_key;
+
+    char message[KEY_LENGTH / 8] = "Batuhan AVLAYAN - OpenSSL_RSA demo";
+    char *encrypt = NULL;
+    char *decrypt = NULL;
+
+    char private_key_pem[12] = "private_key";
+    char public_key_pem[11]  = "public_key";
+
+    LOG(KEY_LENGTH);
+    LOG(PUBLIC_EXPONENT);
+    
+    RSA *keypair = RSA_generate_key(KEY_LENGTH, PUBLIC_EXPONENT, NULL, NULL);
+    LOG("Generate key has been created.");
+
+    private_key = create_RSA(keypair, PRIVATE_KEY_PEM, private_key_pem);
+    LOG("Private key pem file has been created.");
+
+    public_key  = create_RSA(keypair, PUBLIC_KEY_PEM, public_key_pem);
+    LOG("Public key pem file has been created.");;
+
+    encrypt = (char*)malloc(RSA_size(public_key));
+    int encrypt_length = public_encrypt(strlen(message) + 1, (unsigned char*)message, (unsigned char*)encrypt, public_key, RSA_PKCS1_OAEP_PADDING);
+    if(encrypt_length == -1) {
+        LOG("An error occurred in public_encrypt() method");
+    }
+    LOG("Data has been encrypted.");
+
+    create_encrypted_file(encrypt, public_key);
+    LOG("Encrypted file has been created.");
+
+    decrypt = (char *)malloc(encrypt_length);
+    int decrypt_length = private_decrypt(encrypt_length, (unsigned char*)encrypt, (unsigned char*)decrypt, private_key, RSA_PKCS1_OAEP_PADDING);
+    if(decrypt_length == -1) {
+        LOG("An error occurred in private_decrypt() method");
+    }
+    LOG("Data has been decrypted.");
+
+    FILE *decrypted_file = fopen("decrypted_file.txt", "w");
+    fwrite(decrypt, sizeof(*decrypt), decrypt_length - 1, decrypted_file);
+    fclose(decrypted_file);
+    LOG("Decrypted file has been created.");
+    
+    RSA_free(keypair);
+    free(private_key);
+    free(public_key);
+    free(encrypt);
+    free(decrypt);
+    LOG("OpenSSL_RSA has been finished.");
+
+    return 0;
+}
\ No newline at end of file