The core problem seems to be that of defines BIGNUM as a typedef of struct bignum_st, but does not define that structure anywhere.

The declarations of the header of openssl 1.0.2 are still including such a definition; but the openssl 1.1 distributed with openSUSE 15.1 does no longer define the structure, and it's found nowhere in so the compiler has no chance to know whether 'p' and/or 'g' are members of that structure.

So the first approach here might be that the code in tlsInt.h does not define TCLTLS_OPENSSL_PRE_1_1_API for e.g. OPENSSL_VERSION_NUMBER == 0x1010009fL as defined in opensslv.h .