Jiab77/cryptknock

compile error: cryptknockd.c:470:17: error: storage size of ‘ctx’ isn’t known

jingkang99 opened this issue · 2 comments

since ssl lib API changed, the source code need be fixed

https://stackoverflow.com/questions/55992010/openssl-error-storage-size-of-ctx-isn-t-known

gcc cryptknockd.c -o cryptknockd -lssl -lcrypto -lpcap

In file included from /usr/include/inttypes.h:25:0,
from /usr/include/openssl/e_os2.h:243,
from /usr/include/openssl/dh.h:16,
from cryptknockd.c:30:
/usr/include/features.h:184:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]

warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"

^~~~~~~
cryptknockd.c: In function ‘read_options’:
cryptknockd.c:422:7: warning: implicit declaration of function ‘getopt_long’; did you mean ‘getopt’? [-Wimplicit-function-declaration]
i = getopt_long(argc, argv, "i:s:d:", NULL, NULL);
^~~~~~~~~~~
getopt
cryptknockd.c: In function ‘decrypt_pass’:
cryptknockd.c:470:17: error: storage size of ‘ctx’ isn’t known
EVP_CIPHER_CTX ctx;
^~~
cryptknockd.c: In function ‘dh_receive_packet’:
cryptknockd.c:674:16: error: dereferencing pointer to incomplete type ‘DH {aka struct dh_st}’
BN_hex2bn(&(dh->g), g);

@jingkang99, thanks a lot for your issue. Do you have any ideas what lines needs to be changed to fix it?

@jingkang99, I'm pretty bad in C and C++ programming as I'm still a beginner but apparently the fix needs to be applied in:

  • cryptknock.c - Method encrypt_password - Line 243
  • cryptknockd.c - Method decrypt_pass - Line 468

All other methods are not related to openssl.