![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
15:21 9nov
main.cpp@0:5d1b6c97e2fe, 2018-11-09 (annotated)
- Committer:
- preyaa4
- Date:
- Fri Nov 09 09:50:56 2018 +0000
- Revision:
- 0:5d1b6c97e2fe
- Child:
- 1:c8f7fe71d151
,,
Who changed what in which revision?
User | Revision | Line number | New 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 | } |