int rsa_api_gen_keys(char *pub_key, int len1, char *priv_key, int len2) { if ((len1 <= (PUB_KEY_LEN+1)) || (len2 <= (PRI_KEY_LEN+1))) { os_printf("invalid len %d %d \n", len1, len2); return -1; } struct public_key_class pub; struct private_key_class priv; rsa_gen_keys(&pub, &priv); os_printf("get pub %lld %lld \n", pub.modulus, pub.exponent); os_printf("get pri %lld %lld \n", priv.modulus, priv.exponent); os_sprintf(pub_key, "%032lld%032lld", pub.modulus, pub.exponent); os_sprintf(priv_key, "%032lld%032lld", priv.modulus, priv.exponent); return 0; }
int main() { printf("Hello world!"); struct public_key_class pub; struct private_key_class priv; rsa_gen_keys(&pub, &priv, "./primes.txt"); char *string_to_encode = "hello, my name is nemo."; int message_length = strlen(string_to_encode); printf("\nLength of string is: %d\n", message_length); printf("\nEncrypting message: '%s'\n", string_to_encode); long long *encoded_message = rsa_encrypt(string_to_encode, message_length, &pub); if (encoded_message == NULL) { printf("Encoded message is NULL!"); } printf("Encoding complete!\n"); char *decoded_message = rsa_decrypt(encoded_message, 8*message_length, &priv); printf("\n Decoded Message: '%s'", decoded_message); free(encoded_message); free(decoded_message); return 0; }