15:21 9nov

Dependencies:   mbed mbedtls

Committer:
preyaa4
Date:
Fri Nov 09 09:50:56 2018 +0000
Revision:
0:5d1b6c97e2fe
Child:
1:c8f7fe71d151
,,

Who changed what in which revision?

UserRevisionLine numberNew contents of line
preyaa4 0:5d1b6c97e2fe 1 #include "mbed.h"
preyaa4 0:5d1b6c97e2fe 2 #include "mbedtls/pk.h"
preyaa4 0:5d1b6c97e2fe 3 #include "mbedtls/ctr_drbg.h"
preyaa4 0:5d1b6c97e2fe 4
preyaa4 0:5d1b6c97e2fe 5
preyaa4 0:5d1b6c97e2fe 6 int main(){
preyaa4 0:5d1b6c97e2fe 7 int ret = 0;
preyaa4 0:5d1b6c97e2fe 8 mbedtls_pk_context pk;
preyaa4 0:5d1b6c97e2fe 9
preyaa4 0:5d1b6c97e2fe 10 mbedtls_pk_init( &pk );
preyaa4 0:5d1b6c97e2fe 11 const unsigned char key[]="-----BEGIN RSA PUBLIC KEY-----"
preyaa4 0:5d1b6c97e2fe 12 "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMYfnvWtC8Id5bPKae5yXSxQTt"
preyaa4 0:5d1b6c97e2fe 13 "+Zpul6AnnZWfI2TtIarvjHBFUtXRo96y7hoL4VWOPKGCsRqMFDkrbeUjRrx8iL91"
preyaa4 0:5d1b6c97e2fe 14 "4/srnyf6sh9c8Zk04xEOpK1ypvBz+Ks4uZObtjnnitf0NBGdjMKxveTq+VE7BWUI"
preyaa4 0:5d1b6c97e2fe 15 "yQjtQ8mbDOsiLLvh7wIDAQAB"
preyaa4 0:5d1b6c97e2fe 16 "-----END RSA PUBLIC KEY-----";
preyaa4 0:5d1b6c97e2fe 17
preyaa4 0:5d1b6c97e2fe 18
preyaa4 0:5d1b6c97e2fe 19 /*
preyaa4 0:5d1b6c97e2fe 20 * Read the RSA public key
preyaa4 0:5d1b6c97e2fe 21 */
preyaa4 0:5d1b6c97e2fe 22 if( ( ret = mbedtls_pk_parse_public_key( &pk, key,sizeof(key)) ) != 0 )
preyaa4 0:5d1b6c97e2fe 23 {
preyaa4 0:5d1b6c97e2fe 24 printf( " failed\n ! mbedtls_pk_parse_public_key returned -0x%04x\n", -ret );
preyaa4 0:5d1b6c97e2fe 25 goto exit;
preyaa4 0:5d1b6c97e2fe 26 }
preyaa4 0:5d1b6c97e2fe 27
preyaa4 0:5d1b6c97e2fe 28 unsigned char buf[MBEDTLS_MPI_MAX_SIZE];
preyaa4 0:5d1b6c97e2fe 29 size_t olen = 0;
preyaa4 0:5d1b6c97e2fe 30
preyaa4 0:5d1b6c97e2fe 31 /*
preyaa4 0:5d1b6c97e2fe 32 * Calculate the RSA encryption of the data.
preyaa4 0:5d1b6c97e2fe 33 */
preyaa4 0:5d1b6c97e2fe 34 printf( "\n . Generating the encrypted value" );
preyaa4 0:5d1b6c97e2fe 35 fflush( stdout );
preyaa4 0:5d1b6c97e2fe 36 const unsigned char to_encrypt[] ="HelloWorld";
preyaa4 0:5d1b6c97e2fe 37 mbedtls_ctr_drbg_context ctr_drbg;
preyaa4 0:5d1b6c97e2fe 38
preyaa4 0:5d1b6c97e2fe 39 if( ( ret = mbedtls_pk_encrypt( &pk, to_encrypt, sizeof(to_encrypt),
preyaa4 0:5d1b6c97e2fe 40 buf, &olen, sizeof(buf),
preyaa4 0:5d1b6c97e2fe 41 mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 )
preyaa4 0:5d1b6c97e2fe 42 {
preyaa4 0:5d1b6c97e2fe 43 printf( " failed\n ! mbedtls_pk_encrypt returned -0x%04x\n", -ret );
preyaa4 0:5d1b6c97e2fe 44 goto exit;
preyaa4 0:5d1b6c97e2fe 45 }
preyaa4 0:5d1b6c97e2fe 46 exit:
preyaa4 0:5d1b6c97e2fe 47 return 0;
preyaa4 0:5d1b6c97e2fe 48 }