15:21 9nov

Dependencies:   mbed mbedtls

main.cpp

Committer:
preyaa4
Date:
2018-11-09
Revision:
0:5d1b6c97e2fe
Child:
1:c8f7fe71d151

File content as of revision 0:5d1b6c97e2fe:

#include "mbed.h"
#include "mbedtls/pk.h"
#include "mbedtls/ctr_drbg.h"


int main(){
    int ret = 0;
    mbedtls_pk_context pk;

    mbedtls_pk_init( &pk );
    const unsigned char key[]="-----BEGIN RSA PUBLIC KEY-----"
"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMYfnvWtC8Id5bPKae5yXSxQTt"
"+Zpul6AnnZWfI2TtIarvjHBFUtXRo96y7hoL4VWOPKGCsRqMFDkrbeUjRrx8iL91"
"4/srnyf6sh9c8Zk04xEOpK1ypvBz+Ks4uZObtjnnitf0NBGdjMKxveTq+VE7BWUI"
"yQjtQ8mbDOsiLLvh7wIDAQAB"
"-----END RSA PUBLIC KEY-----";
    

    /*
     * Read the RSA public key
     */
    if( ( ret = mbedtls_pk_parse_public_key( &pk, key,sizeof(key)) ) != 0 )
    {
        printf( " failed\n  ! mbedtls_pk_parse_public_key returned -0x%04x\n", -ret );
        goto exit;
    }
    
        unsigned char buf[MBEDTLS_MPI_MAX_SIZE];
    size_t olen = 0;

    /*
     * Calculate the RSA encryption of the data.
     */
    printf( "\n  . Generating the encrypted value" );
    fflush( stdout );
    const unsigned char to_encrypt[] ="HelloWorld";
    mbedtls_ctr_drbg_context ctr_drbg;
    
    if( ( ret = mbedtls_pk_encrypt( &pk, to_encrypt, sizeof(to_encrypt),
                                    buf, &olen, sizeof(buf),
                                    mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 )
    {
        printf( " failed\n  ! mbedtls_pk_encrypt returned -0x%04x\n", -ret );
        goto exit;
    }
    exit:
    return 0;
}