/** @page exampleSSL-HttpsUploadCert HTTPS Upload Cert

This program will demonstrate how to upload certificates and keys to support
SSL/TLS web page access. The uploaded information is stored in the on-chip
flash memory using the standard file system. The serial port provides a debug
menu.

It has a compiled in cert and key, in ServerCert.cpp and ServerKey.cpp, so that
if the HTTPS page is accessed before the certificate and key are uploaded, you
will still get a secure connection. You can generate a certificate and key to
upload to the device using the makeca and makeserver scripts found in
"<nndk_install>\CreateCerts\<ECDSA or RSA>". The first script will allow you to
generate the CA certificate used to sign the server certificate.

The display on the web interface will indicate whether you are using the compiled
certificate and key (listed as "Default"), or the uploaded version (listed as
"User Installed").


\note Browsers are starting to require a valid certificate on the device, as well as the installation of the Certificate Authority (CA) certificate installed in the browser for self-signed certs. Receiving a warning message in the browser and selecting the option to continue anyway may work for variables posted in a form, but it will not work when posting a file.


HOW TO BUILD THIS APPLICATION:

This application requires a few items to be configured in NBEclipse or your
command line makefile.

-# This example uses the on-chip flash file system, which is different from
    the FAT file system for SD/MMC cards.  You will need to add the
    "libStdFFile.a" library through the project properties:
       - In NBEclipse, right-click on your project, and select "Properties"
       - Select "C/C++ Builds -> Settings" on the left-hand side
       - Select "GNU C/C++ Linker -> Libraries" under the "Tool Settings" tab
       - In the "Libraries" list box, add "StdFFile" by using the action icons
         provided in top-right corner of the list box
       - In the "Library search path (-L)", add the path to the library, which
         should be `${NNDK_ROOT}/platform/${PLATFORM}/original/lib`

-# MOD54415, MOD54417, NANO54415 and SB800EX Platforms:
    Modify the compcode memory address range to specify the amount of on-chip flash to be used for the file system:
       - In NBEclipse, right-click on your project, and select "Properties"
       - Select "C/C++ Builds -> Settings" on the left-hand side
       - Select "NetBurner Compcode -> General" under the "Tool Settings" tab
       - Modify the "Memory Range" based on the "COMPCODEFLAGS" information
         in the project's "nbfactory.h" header file.  The range used depends
         on the platform.  For example, the MODM7AE70 would change from this:

            0xFFC08000 0xFFC80000

         to this:

            0x00406004 0x00580000

         For our latest version of NBEclipse, the default values are already provided
         for each platform, so no changes should be necessary, unless you want to
         change how much storage is available.

-# MODM7AE70 and SBE70LC Platforms: \n
   Enable the Always Locate Application at Fixed Address feature. To greatly reduce the amount of time it takes to program flash memory, the default setting is to allow the application to be located at any address in flash, which enables unused flash areas to be erased in the background. If this setting is not enabled, sectors used by the EFFS STD flash file system may be erased. Note that is requirement only applies to the the standard onchip file system. The external flash card EFFS FAT file system in not affected.

	- In NBEclipse right-click on the project, then go to Properties > C/C++ Build > Settings >	NB Flashpack > General and check the checkbox.
	- When using command line tools and makefiles, set the cflag option as shown below:
      \code
      ifeq ($(PLATFORM),MODM7AE70)
         # Disable application memory address relocation.
         EXTRAPACKARGS += -cflag C:3
      endif
      ifeq ($(PLATFORM),SBE70LC)
         # Disable application memory address relocation.
         EXTRAPACKARGS += -cflag C:3
      endif
	  \endcode



Note that any changes made in NBEclipse project properties will only
apply to that specific project.  The changes will need to be made again
if you create a new project.

*/
