This example uses wolfSSL to generate a Certificate Signing Request (CSR) using a key that is generated and stored in the SE050:
-
Generates a 256 bit ECC key pair in SE050.
-
Generates a certificate request with wolfCrypt and signs it with the ECC private key from step 1.
-
Converts the CSR from DER to PEM format and prints that to the console.
-
Deletes the generated key in SE050 (for example cleanup), and cleans up wolfSSL library resources.
Before building this demo, follow initial setup instructions in the parent README.md.
Once this example directory has been copied into the SE05x middleware directory tree in the correct location, compiling the middleware will also compile this demo application:
$ cd /home/pi/se_mw/simw-top_build/raspbian_native_se050_t1oi2c
$ cmake --build .
To run the demo:
$ cd /home/pi/se_mw/simw-top_build/raspbian_native_se050_t1oi2c/bin
$ ./wolfcrypt_generate_csr
On successful run, output similar to the following will print out:
App :INFO :PlugAndTrust_v04.02.00_20220524
App :INFO :Running ./wolfcrypt_generate_csr
App :INFO :If you want to over-ride the selection, use ENV=EX_SSS_BOOT_SSS_PORT or pass in command line arguments.
App :INFO :Using default PlatfSCP03 keys. You can use keys from file using ENV=EX_SSS_BOOT_SCP03_PATH
sss :INFO :atr (Len=35)
00 A0 00 00 03 96 04 03 E8 00 FE 02 0B 03 E8 08
01 00 00 00 00 64 00 00 0A 4A 43 4F 50 34 20 41
54 50 4F
App :INFO :Running wc_se050_set_config()
App :INFO :SE050 config successfully set in wolfSSL
App :INFO :wolfCrypt example of CSR generation
App :INFO :Initializing RNG
App :INFO :Generating ECC key in SE050
sss :WARN :nxEnsure:'ret == SM_OK' failed. At Line:6971 Function:sss_se05x_TXn
sss :WARN :Could not delete Key id FFFF
App :INFO :Generated ECC key in SE050 ID: 0x0000ffff
App :INFO :Generated CSR (530 bytes)
App :INFO :-----BEGIN CERTIFICATE REQUEST-----
MIIBTjCB8wIBAjCBkDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAk1UMRAwDgYDVQQH
DAdCb3plbWFuMREwDwYDVQQKDAhUZXN0IE9yZzEUMBIGA1UECwwLRGV2ZWxvcG1l
bnQxGDAWBgNVBAMMD3d3dy5leGFtcGxlLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5m
b0BleGFtcGxlLmNvbTBZMBM
App :INFO :Erasing ECC key stored in SE050 slot: 0x0000ffff
App :INFO :Done with sample app
App :INFO :ex_sss Finished