301N November 2018
/
encrypt
15:21 9nov
main.cpp@2:cee7ee508f77, 2018-11-09 (annotated)
- Committer:
- kpan
- Date:
- Fri Nov 09 09:58:06 2018 +0000
- Revision:
- 2:cee7ee508f77
- Parent:
- 1:c8f7fe71d151
- Child:
- 3:7a6787f99da2
LED out;
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" |
kpan | 1:c8f7fe71d151 | 4 | PwmOut r(LED_RED); |
kpan | 1:c8f7fe71d151 | 5 | PwmOut g(LED_GREEN); |
kpan | 1:c8f7fe71d151 | 6 | PwmOut b(LED_BLUE); |
kpan | 1:c8f7fe71d151 | 7 | r = g = b = 1; |
kpan | 1:c8f7fe71d151 | 8 | g = 0; |
preyaa4 | 0:5d1b6c97e2fe | 9 | int main(){ |
preyaa4 | 0:5d1b6c97e2fe | 10 | int ret = 0; |
preyaa4 | 0:5d1b6c97e2fe | 11 | mbedtls_pk_context pk; |
preyaa4 | 0:5d1b6c97e2fe | 12 | |
preyaa4 | 0:5d1b6c97e2fe | 13 | mbedtls_pk_init( &pk ); |
preyaa4 | 0:5d1b6c97e2fe | 14 | const unsigned char key[]="-----BEGIN RSA PUBLIC KEY-----" |
preyaa4 | 0:5d1b6c97e2fe | 15 | "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMYfnvWtC8Id5bPKae5yXSxQTt" |
preyaa4 | 0:5d1b6c97e2fe | 16 | "+Zpul6AnnZWfI2TtIarvjHBFUtXRo96y7hoL4VWOPKGCsRqMFDkrbeUjRrx8iL91" |
preyaa4 | 0:5d1b6c97e2fe | 17 | "4/srnyf6sh9c8Zk04xEOpK1ypvBz+Ks4uZObtjnnitf0NBGdjMKxveTq+VE7BWUI" |
preyaa4 | 0:5d1b6c97e2fe | 18 | "yQjtQ8mbDOsiLLvh7wIDAQAB" |
preyaa4 | 0:5d1b6c97e2fe | 19 | "-----END RSA PUBLIC KEY-----"; |
preyaa4 | 0:5d1b6c97e2fe | 20 | |
preyaa4 | 0:5d1b6c97e2fe | 21 | |
preyaa4 | 0:5d1b6c97e2fe | 22 | /* |
preyaa4 | 0:5d1b6c97e2fe | 23 | * Read the RSA public key |
preyaa4 | 0:5d1b6c97e2fe | 24 | */ |
preyaa4 | 0:5d1b6c97e2fe | 25 | if( ( ret = mbedtls_pk_parse_public_key( &pk, key,sizeof(key)) ) != 0 ) |
preyaa4 | 0:5d1b6c97e2fe | 26 | { |
preyaa4 | 0:5d1b6c97e2fe | 27 | printf( " failed\n ! mbedtls_pk_parse_public_key returned -0x%04x\n", -ret ); |
kpan | 1:c8f7fe71d151 | 28 | g = b = 1; |
kpan | 1:c8f7fe71d151 | 29 | r = 0; |
preyaa4 | 0:5d1b6c97e2fe | 30 | goto exit; |
preyaa4 | 0:5d1b6c97e2fe | 31 | } |
preyaa4 | 0:5d1b6c97e2fe | 32 | |
preyaa4 | 0:5d1b6c97e2fe | 33 | unsigned char buf[MBEDTLS_MPI_MAX_SIZE]; |
preyaa4 | 0:5d1b6c97e2fe | 34 | size_t olen = 0; |
preyaa4 | 0:5d1b6c97e2fe | 35 | |
preyaa4 | 0:5d1b6c97e2fe | 36 | /* |
preyaa4 | 0:5d1b6c97e2fe | 37 | * Calculate the RSA encryption of the data. |
preyaa4 | 0:5d1b6c97e2fe | 38 | */ |
preyaa4 | 0:5d1b6c97e2fe | 39 | printf( "\n . Generating the encrypted value" ); |
preyaa4 | 0:5d1b6c97e2fe | 40 | fflush( stdout ); |
preyaa4 | 0:5d1b6c97e2fe | 41 | const unsigned char to_encrypt[] ="HelloWorld"; |
preyaa4 | 0:5d1b6c97e2fe | 42 | mbedtls_ctr_drbg_context ctr_drbg; |
preyaa4 | 0:5d1b6c97e2fe | 43 | |
preyaa4 | 0:5d1b6c97e2fe | 44 | if( ( ret = mbedtls_pk_encrypt( &pk, to_encrypt, sizeof(to_encrypt), |
preyaa4 | 0:5d1b6c97e2fe | 45 | buf, &olen, sizeof(buf), |
preyaa4 | 0:5d1b6c97e2fe | 46 | mbedtls_ctr_drbg_random, &ctr_drbg ) ) != 0 ) |
preyaa4 | 0:5d1b6c97e2fe | 47 | { |
preyaa4 | 0:5d1b6c97e2fe | 48 | printf( " failed\n ! mbedtls_pk_encrypt returned -0x%04x\n", -ret ); |
kpan | 1:c8f7fe71d151 | 49 | r = g = 1; |
kpan | 1:c8f7fe71d151 | 50 | b = 0; |
preyaa4 | 0:5d1b6c97e2fe | 51 | goto exit; |
preyaa4 | 0:5d1b6c97e2fe | 52 | } |
preyaa4 | 0:5d1b6c97e2fe | 53 | exit: |
preyaa4 | 0:5d1b6c97e2fe | 54 | return 0; |
kpan | 2:cee7ee508f77 | 55 | } |