#pragma once

/* 
embedded version of CERT_FILE

#define CERT_FILE "../../../../certs/server-cert.pem"

example to generate this CA_FILE text for a new file:

paste into file: embedded_SERVER_CERT.h

sed 's/\(.*\)\r/"\1\\n"/g' ../../../certs/server-cert.pem 

see also this DER to C script:

https://github.com/wolfSSL/wolfssl/blob/master/scripts/dertoc.pl

*/


#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpointer-sign"
const unsigned char * CERT_FILE = ""
    
/* TODO this is a test example! DO NOT USE IN PRODUCTION!! */

/* insert your ca-cert.pem text below */ 
"Certificate:\n"
"    Data:\n"
"        Version: 3 (0x2)\n"
"        Serial Number: 1 (0x1)\n"
"        Signature Algorithm: sha256WithRSAEncryption\n"
"        Issuer: C = US, ST = Montana, L = Bozeman, O = Sawtooth, OU = Consulting, CN = www.wolfssl.com, emailAddress = info@wolfssl.com\n"
"        Validity\n"
"            Not Before: Jun 19 13:23:41 2020 GMT\n"
"            Not After : Mar 16 13:23:41 2023 GMT\n"
"        Subject: C = US, ST = Montana, L = Bozeman, O = wolfSSL, OU = Support, CN = www.wolfssl.com, emailAddress = info@wolfssl.com\n"
"        Subject Public Key Info:\n"
"            Public Key Algorithm: rsaEncryption\n"
"                RSA Public-Key: (2048 bit)\n"
"                Modulus:\n"
"                    00:c0:95:08:e1:57:41:f2:71:6d:b7:d2:45:41:27:\n"
"                    01:65:c6:45:ae:f2:bc:24:30:b8:95:ce:2f:4e:d6:\n"
"                    f6:1c:88:bc:7c:9f:fb:a8:67:7f:fe:5c:9c:51:75:\n"
"                    f7:8a:ca:07:e7:35:2f:8f:e1:bd:7b:c0:2f:7c:ab:\n"
"                    64:a8:17:fc:ca:5d:7b:ba:e0:21:e5:72:2e:6f:2e:\n"
"                    86:d8:95:73:da:ac:1b:53:b9:5f:3f:d7:19:0d:25:\n"
"                    4f:e1:63:63:51:8b:0b:64:3f:ad:43:b8:a5:1c:5c:\n"
"                    34:b3:ae:00:a0:63:c5:f6:7f:0b:59:68:78:73:a6:\n"
"                    8c:18:a9:02:6d:af:c3:19:01:2e:b8:10:e3:c6:cc:\n"
"                    40:b4:69:a3:46:33:69:87:6e:c4:bb:17:a6:f3:e8:\n"
"                    dd:ad:73:bc:7b:2f:21:b5:fd:66:51:0c:bd:54:b3:\n"
"                    e1:6d:5f:1c:bc:23:73:d1:09:03:89:14:d2:10:b9:\n"
"                    64:c3:2a:d0:a1:96:4a:bc:e1:d4:1a:5b:c7:a0:c0:\n"
"                    c1:63:78:0f:44:37:30:32:96:80:32:23:95:a1:77:\n"
"                    ba:13:d2:97:73:e2:5d:25:c9:6a:0d:c3:39:60:a4:\n"
"                    b4:b0:69:42:42:09:e9:d8:08:bc:33:20:b3:58:22:\n"
"                    a7:aa:eb:c4:e1:e6:61:83:c5:d2:96:df:d9:d0:4f:\n"
"                    ad:d7\n"
"                Exponent: 65537 (0x10001)\n"
"        X509v3 extensions:\n"
"            X509v3 Subject Key Identifier: \n"
"                B3:11:32:C9:92:98:84:E2:C9:F8:D0:3B:6E:03:42:CA:1F:0E:8E:3C\n"
"            X509v3 Authority Key Identifier: \n"
"                keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5\n"
"                DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com\n"
"                serial:5E:BA:A4:F4:B1:F7:48:25:E3:5F:9B:DA:A1:13:ED:D5:2B:03:67:15\n"
"\n"
"            X509v3 Basic Constraints: \n"
"                CA:TRUE\n"
"            X509v3 Subject Alternative Name: \n"
"                DNS:example.com, IP Address:127.0.0.1\n"
"            X509v3 Extended Key Usage: \n"
"                TLS Web Server Authentication, TLS Web Client Authentication\n"
"    Signature Algorithm: sha256WithRSAEncryption\n"
"         35:91:e6:72:cc:0b:f1:47:8f:3d:e3:5d:52:2f:83:b8:b1:3b:\n"
"         6d:d6:ac:13:79:74:14:ff:07:8d:ee:74:77:64:ff:b8:83:1d:\n"
"         81:80:84:bb:38:fa:8f:f3:75:29:23:ce:e5:09:a8:13:85:14:\n"
"         b6:6a:35:30:2c:1c:c4:0f:23:67:ea:ed:cb:91:c4:05:e3:ec:\n"
"         6b:be:11:bf:d9:9a:ab:93:17:9f:e4:9a:59:d4:e7:cc:ce:dc:\n"
"         83:10:f5:cd:de:d7:35:75:4b:aa:7a:7a:ba:02:a0:b0:b5:c1:\n"
"         8a:6b:b1:72:cf:64:59:4e:d3:a4:a1:6c:64:4b:14:cf:a3:d6:\n"
"         37:0a:e6:f9:5b:21:be:de:0c:c1:cf:43:e1:18:0b:19:13:6b:\n"
"         8e:3d:df:0f:a7:43:fb:35:67:4a:50:e8:09:46:34:bd:f4:ab:\n"
"         1a:8f:bd:4d:1c:6b:20:be:1c:8c:ca:66:98:ba:03:67:f2:1c:\n"
"         3c:1e:01:f0:4d:c6:85:82:6f:a9:49:f7:1b:7d:6b:db:76:84:\n"
"         73:bb:16:c5:6e:74:ab:7b:fb:1c:e9:91:bb:29:73:1c:de:27:\n"
"         b4:67:3b:10:51:f4:17:eb:b8:38:a0:9a:eb:37:5b:76:8f:39:\n"
"         12:39:35:d1:ca:fe:c0:26:fb:73:50:1e:2d:b9:d2:ba:e5:4c:\n"
"         35:bd:ed:7b\n"
"-----BEGIN CERTIFICATE-----\n"
"MIIE6DCCA9CgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx\n"
"EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh\n"
"d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz\n"
"bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMjAwNjE5\n"
"MTMyMzQxWhcNMjMwMzE2MTMyMzQxWjCBkDELMAkGA1UEBhMCVVMxEDAOBgNVBAgM\n"
"B01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xEDAOBgNVBAoMB3dvbGZTU0wxEDAO\n"
"BgNVBAsMB1N1cHBvcnQxGDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEfMB0GCSqG\n"
"SIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEP\n"
"ADCCAQoCggEBAMCVCOFXQfJxbbfSRUEnAWXGRa7yvCQwuJXOL07W9hyIvHyf+6hn\n"
"f/5cnFF194rKB+c1L4/hvXvAL3yrZKgX/Mpde7rgIeVyLm8uhtiVc9qsG1O5Xz/X\n"
"GQ0lT+FjY1GLC2Q/rUO4pRxcNLOuAKBjxfZ/C1loeHOmjBipAm2vwxkBLrgQ48bM\n"
"QLRpo0YzaYduxLsXpvPo3a1zvHsvIbX9ZlEMvVSz4W1fHLwjc9EJA4kU0hC5ZMMq\n"
"0KGWSrzh1Bpbx6DAwWN4D0Q3MDKWgDIjlaF3uhPSl3PiXSXJag3DOWCktLBpQkIJ\n"
"6dgIvDMgs1gip6rrxOHmYYPF0pbf2dBPrdcCAwEAAaOCAUUwggFBMB0GA1UdDgQW\n"
"BBSzETLJkpiE4sn40DtuA0LKHw6OPDCB1AYDVR0jBIHMMIHJgBQnjmcRdMMmHT/t\n"
"M2OzpNgdMOXo1aGBmqSBlzCBlDELMAkGA1UEBhMCVVMxEDAOBgNVBAgMB01vbnRh\n"
"bmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNhd3Rvb3RoMRMwEQYDVQQL\n"
"DApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNzbC5jb20xHzAdBgkqhkiG\n"
"9w0BCQEWEGluZm9Ad29sZnNzbC5jb22CFF66pPSx90gl41+b2qET7dUrA2cVMAwG\n"
"A1UdEwQFMAMBAf8wHAYDVR0RBBUwE4ILZXhhbXBsZS5jb22HBH8AAAEwHQYDVR0l\n"
"BBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMA0GCSqGSIb3DQEBCwUAA4IBAQA1keZy\n"
"zAvxR489411SL4O4sTtt1qwTeXQU/weN7nR3ZP+4gx2BgIS7OPqP83UpI87lCagT\n"
"hRS2ajUwLBzEDyNn6u3LkcQF4+xrvhG/2Zqrkxef5JpZ1OfMztyDEPXN3tc1dUuq\n"
"enq6AqCwtcGKa7Fyz2RZTtOkoWxkSxTPo9Y3Cub5WyG+3gzBz0PhGAsZE2uOPd8P\n"
"p0P7NWdKUOgJRjS99Ksaj71NHGsgvhyMymaYugNn8hw8HgHwTcaFgm+pSfcbfWvb\n"
"doRzuxbFbnSre/sc6ZG7KXMc3ie0ZzsQUfQX67g4oJrrN1t2jzkSOTXRyv7AJvtz\n"
"UB4tudK65Uw1ve17\n"
"-----END CERTIFICATE-----\n"
"Certificate:\n"
"    Data:\n"
"        Version: 3 (0x2)\n"
"        Serial Number:\n"
"            5e:ba:a4:f4:b1:f7:48:25:e3:5f:9b:da:a1:13:ed:d5:2b:03:67:15\n"
"        Signature Algorithm: sha256WithRSAEncryption\n"
"        Issuer: C = US, ST = Montana, L = Bozeman, O = Sawtooth, OU = Consulting, CN = www.wolfssl.com, emailAddress = info@wolfssl.com\n"
"        Validity\n"
"            Not Before: Jun 19 13:23:41 2020 GMT\n"
"            Not After : Mar 16 13:23:41 2023 GMT\n"
"        Subject: C = US, ST = Montana, L = Bozeman, O = Sawtooth, OU = Consulting, CN = www.wolfssl.com, emailAddress = info@wolfssl.com\n"
"        Subject Public Key Info:\n"
"            Public Key Algorithm: rsaEncryption\n"
"                RSA Public-Key: (2048 bit)\n"
"                Modulus:\n"
"                    00:bf:0c:ca:2d:14:b2:1e:84:42:5b:cd:38:1f:4a:\n"
"                    f2:4d:75:10:f1:b6:35:9f:df:ca:7d:03:98:d3:ac:\n"
"                    de:03:66:ee:2a:f1:d8:b0:7d:6e:07:54:0b:10:98:\n"
"                    21:4d:80:cb:12:20:e7:cc:4f:de:45:7d:c9:72:77:\n"
"                    32:ea:ca:90:bb:69:52:10:03:2f:a8:f3:95:c5:f1:\n"
"                    8b:62:56:1b:ef:67:6f:a4:10:41:95:ad:0a:9b:e3:\n"
"                    a5:c0:b0:d2:70:76:50:30:5b:a8:e8:08:2c:7c:ed:\n"
"                    a7:a2:7a:8d:38:29:1c:ac:c7:ed:f2:7c:95:b0:95:\n"
"                    82:7d:49:5c:38:cd:77:25:ef:bd:80:75:53:94:3c:\n"
"                    3d:ca:63:5b:9f:15:b5:d3:1d:13:2f:19:d1:3c:db:\n"
"                    76:3a:cc:b8:7d:c9:e5:c2:d7:da:40:6f:d8:21:dc:\n"
"                    73:1b:42:2d:53:9c:fe:1a:fc:7d:ab:7a:36:3f:98:\n"
"                    de:84:7c:05:67:ce:6a:14:38:87:a9:f1:8c:b5:68:\n"
"                    cb:68:7f:71:20:2b:f5:a0:63:f5:56:2f:a3:26:d2:\n"
"                    b7:6f:b1:5a:17:d7:38:99:08:fe:93:58:6f:fe:c3:\n"
"                    13:49:08:16:0b:a7:4d:67:00:52:31:67:23:4e:98:\n"
"                    ed:51:45:1d:b9:04:d9:0b:ec:d8:28:b3:4b:bd:ed:\n"
"                    36:79\n"
"                Exponent: 65537 (0x10001)\n"
"        X509v3 extensions:\n"
"            X509v3 Subject Key Identifier: \n"
"                27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5\n"
"            X509v3 Authority Key Identifier: \n"
"                keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5\n"
"                DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com\n"
"                serial:5E:BA:A4:F4:B1:F7:48:25:E3:5F:9B:DA:A1:13:ED:D5:2B:03:67:15\n"
"\n"
"            X509v3 Basic Constraints: \n"
"                CA:TRUE\n"
"            X509v3 Subject Alternative Name: \n"
"                DNS:example.com, IP Address:127.0.0.1\n"
"            X509v3 Extended Key Usage: \n"
"                TLS Web Server Authentication, TLS Web Client Authentication\n"
"    Signature Algorithm: sha256WithRSAEncryption\n"
"         b9:ed:94:3e:00:73:2d:a5:d1:04:b3:fb:dc:f0:b7:0d:3d:ad:\n"
"         96:74:4c:92:67:ad:6d:7c:e2:99:6a:33:ca:b2:0f:04:5a:a5:\n"
"         67:f8:e3:0b:3d:f5:d0:5b:1e:20:52:12:92:28:ea:31:a3:51:\n"
"         9e:8b:d2:39:e4:25:ea:61:61:41:16:2d:54:50:d3:fb:d0:34:\n"
"         00:10:f1:7b:bc:f0:08:a7:f5:27:5e:7e:40:9d:99:b0:d3:31:\n"
"         11:c3:9d:a9:51:a0:17:cf:83:2c:55:84:e0:d5:92:a0:05:3a:\n"
"         9f:b8:75:f8:1b:e5:f7:a4:6c:e9:aa:25:8b:19:93:46:1f:3f:\n"
"         33:af:47:29:cf:7b:8b:59:27:eb:d7:4f:cb:33:19:fa:5f:ee:\n"
"         d8:13:e9:0c:07:ad:3b:c0:7f:10:d7:e4:ed:e8:db:16:e1:1f:\n"
"         a4:7f:16:3c:bd:d7:11:f2:d4:3a:a9:9b:95:e1:39:51:99:eb:\n"
"         5b:65:46:ef:63:84:73:95:23:b8:bf:b5:f6:4d:12:71:f7:ff:\n"
"         33:aa:4a:8c:65:73:73:89:69:df:a6:dc:a4:91:ff:ae:c7:28:\n"
"         93:b5:1a:de:a9:8f:2b:30:85:83:8b:99:82:ca:b3:7c:11:10:\n"
"         88:9d:8e:6c:2c:f3:05:6f:cb:80:85:16:b7:ed:e4:68:fb:b6:\n"
"         b6:31:8a:7d\n"
"-----BEGIN CERTIFICATE-----\n"
"MIIE/zCCA+egAwIBAgIUXrqk9LH3SCXjX5vaoRPt1SsDZxUwDQYJKoZIhvcNAQEL\n"
"BQAwgZQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdC\n"
"b3plbWFuMREwDwYDVQQKDAhTYXd0b290aDETMBEGA1UECwwKQ29uc3VsdGluZzEY\n"
"MBYGA1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdv\n"
"bGZzc2wuY29tMB4XDTIwMDYxOTEzMjM0MVoXDTIzMDMxNjEzMjM0MVowgZQxCzAJ\n"
"BgNVBAYTAlVTMRAwDgYDVQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREw\n"
"DwYDVQQKDAhTYXd0b290aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwP\n"
"d3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29t\n"
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvwzKLRSyHoRCW804H0ry\n"
"TXUQ8bY1n9/KfQOY06zeA2buKvHYsH1uB1QLEJghTYDLEiDnzE/eRX3Jcncy6sqQ\n"
"u2lSEAMvqPOVxfGLYlYb72dvpBBBla0Km+OlwLDScHZQMFuo6AgsfO2nonqNOCkc\n"
"rMft8nyVsJWCfUlcOM13Je+9gHVTlDw9ymNbnxW10x0TLxnRPNt2Osy4fcnlwtfa\n"
"QG/YIdxzG0ItU5z+Gvx9q3o2P5jehHwFZ85qFDiHqfGMtWjLaH9xICv1oGP1Vi+j\n"
"JtK3b7FaF9c4mQj+k1hv/sMTSQgWC6dNZwBSMWcjTpjtUUUduQTZC+zYKLNLve02\n"
"eQIDAQABo4IBRTCCAUEwHQYDVR0OBBYEFCeOZxF0wyYdP+0zY7Ok2B0w5ejVMIHU\n"
"BgNVHSMEgcwwgcmAFCeOZxF0wyYdP+0zY7Ok2B0w5ejVoYGapIGXMIGUMQswCQYD\n"
"VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8G\n"
"A1UECgwIU2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3\n"
"dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbYIU\n"
"Xrqk9LH3SCXjX5vaoRPt1SsDZxUwDAYDVR0TBAUwAwEB/zAcBgNVHREEFTATggtl\n"
"eGFtcGxlLmNvbYcEfwAAATAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw\n"
"DQYJKoZIhvcNAQELBQADggEBALntlD4Acy2l0QSz+9zwtw09rZZ0TJJnrW184plq\n"
"M8qyDwRapWf44ws99dBbHiBSEpIo6jGjUZ6L0jnkJephYUEWLVRQ0/vQNAAQ8Xu8\n"
"8Ain9SdefkCdmbDTMRHDnalRoBfPgyxVhODVkqAFOp+4dfgb5fekbOmqJYsZk0Yf\n"
"PzOvRynPe4tZJ+vXT8szGfpf7tgT6QwHrTvAfxDX5O3o2xbhH6R/Fjy91xHy1Dqp\n"
"m5XhOVGZ61tlRu9jhHOVI7i/tfZNEnH3/zOqSoxlc3OJad+m3KSR/67HKJO1Gt6p\n"
"jyswhYOLmYLKs3wREIidjmws8wVvy4CFFrft5Gj7trYxin0=\n"
"-----END CERTIFICATE-----\n"
/* insert your ca-cert.pem text above */    
"\x00"
; 

/* an long integer calculation of the size of our CA_FILE */
long sizeof_CERT_FILE() {
    unsigned char * p;
    p = strchr(CERT_FILE, 0);
    return p - CERT_FILE + 1;
}

#pragma GCC diagnostic pop