why `unsigned long` is it a signature of some OpenSSL's method?