asn1/SGP32Definitions: upgrade ASN.1 spec to V.1.2
This replaces the existing SGP.32 V.1.0.1 ASN.1 spec with the unmodified, official SGP.32 V.1.2 spec.
Unfortunately V.1.2 is not backward compatible to V.1.0.1. This means that the eIM application will still compile, but the result will be non-functional. The incompatibility problems will be addressed in the follow-up patches of this patchset.
- Some ASN.1 structs from SGP.22 are re-defined under the same name by SGP.32. This leads to name clashes, which most ASN.1 compilers have problems with. Prefixing the re-defined struct in SGP.32 with "SGP32-" solves the problem.
- The erlang asn1ct ASN.1 compiler seems to misinterpret the ASN.1 spec when a context specific tag is used (redundently) on a child struct definition and in the parent definition at the same time. Removing te context specific tag on the child struct definition solves the problem.
esipa_rest_utils: fix searchCritera.profileClass type conversion
We currently use utils:hex_to_integer to convert the ProfileClass, which is supposedly a string, to integer. However, hex_to_inteteger does not exist and when looking into the related JSON schema definition of we see that the profileClass member is already defined as integer. This means that ProfileClass already arrives as integer and can be used as it is. removing the hex_to_integer call solves the problem.
certificates: fix certificate location, make sure cert/key files are readable
The certificate and key files are placed in the config directory. This is an unfortunate location, since it causes a lot of trouble when referencing those files.
The erlang documentation suggests to place so called auxillary files in a "priv" directory on the same level as the config directory. The path to the priv directory can then be located using code:priv_dir.
see also: https://www.erlang.org/docs/26/design_principles/applications.html
Let's adopt this mechanism by adding utility functions that allow us to resolve the file paths to files inside the priv directory. Let's also automatically check if the referenced file is readable, so that we get a proper error in the log in case a certificate or key file is missing