Exemple #1
0
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;
}
Exemple #2
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;
    
}