| Adding new libraries |
| -------------------- |
| |
| When adding a new sub-library to OpenSSL, assign it a library number |
| ERR_LIB_XXX, define a macro XXXerr() (both in err.h), add its |
| name to ERR_str_libraries[] (in crypto/err/err.c), and add |
| ERR_load_XXX_strings() to the ERR_load_crypto_strings() function |
| (in crypto/err/err_all.c). Finally, add an entry: |
| |
| L XXX xxx.h xxx_err.c |
| |
| to crypto/err/openssl.ec, and add xxx_err.c to the Makefile. |
| Running make errors will then generate a file xxx_err.c, and |
| add all error codes used in the library to xxx.h. |
| |
| Additionally the library include file must have a certain form. |
| Typically it will initially look like this: |
| |
| #ifndef HEADER_XXX_H |
| #define HEADER_XXX_H |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| /* Include files */ |
| |
| #include <openssl/bio.h> |
| #include <openssl/x509.h> |
| |
| /* Macros, structures and function prototypes */ |
| |
| |
| /* BEGIN ERROR CODES */ |
| |
| The BEGIN ERROR CODES sequence is used by the error code |
| generation script as the point to place new error codes, any text |
| after this point will be overwritten when make errors is run. |
| The closing #endif etc will be automatically added by the script. |
| |
| The generated C error code file xxx_err.c will load the header |
| files stdio.h, openssl/err.h and openssl/xxx.h so the |
| header file must load any additional header files containing any |
| definitions it uses. |