Worked around some compiler errors with GCC 4.4 and 4.5.
[BearSSL] / inc / bearssl.h
index 3436789..3d5e63a 100644 (file)
@@ -42,6 +42,7 @@
  * | bearssl_rand.h  | Pseudorandom byte generators                      |
  * | bearssl_prf.h   | PRF implementations (for SSL/TLS)                 |
  * | bearssl_block.h | Symmetric encryption                              |
+ * | bearssl_aead.h  | AEAD algorithms (combined encryption + MAC)       |
  * | bearssl_rsa.h   | RSA encryption and signatures                     |
  * | bearssl_ec.h    | Elliptic curves support (including ECDSA)         |
  * | bearssl_ssl.h   | SSL/TLS engine interface                          |
 #include "bearssl_x509.h"
 #include "bearssl_pem.h"
 
+/** \brief Type for a configuration option.
+ *
+ * A "configuration option" is a value that is selected when the BearSSL
+ * library itself is compiled. Most options are boolean; their value is
+ * then either 1 (option is enabled) or 0 (option is disabled). Some
+ * values have other integer values. Option names correspond to macro
+ * names. Some of the options can be explicitly set in the internal
+ * `"config.h"` file.
+ */
+typedef struct {
+       /** \brief Configurable option name. */
+       const char *name;
+       /** \brief Configurable option value. */
+       long value;
+} br_config_option;
+
+/** \brief Get configuration report.
+ *
+ * This function returns compiled configuration options, each as a
+ * 'long' value. Names match internal macro names, in particular those
+ * that can be set in the `"config.h"` inner file. For boolean options,
+ * the numerical value is 1 if enabled, 0 if disabled. For maximum
+ * key sizes, values are expressed in bits.
+ *
+ * The returned array is terminated by an entry whose `name` is `NULL`.
+ *
+ * \return  the configuration report.
+ */
+const br_config_option *br_get_config(void);
+
 #endif