20 #ifndef GL_OPENSSL_NAME    21 # error "Please define GL_OPENSSL_NAME to 1,5,256 etc."    24 #ifndef _GL_INLINE_HEADER_BEGIN    25 # error "Please include config.h first."    28 #ifndef GL_OPENSSL_INLINE    29 # define GL_OPENSSL_INLINE _GL_INLINE    33 #define _GLCRYPTO_CONCAT_(prefix, suffix) prefix##suffix    34 #define _GLCRYPTO_CONCAT(prefix, suffix) _GLCRYPTO_CONCAT_ (prefix, suffix)    36 #if GL_OPENSSL_NAME == 5    37 # define OPENSSL_ALG md5    39 # define OPENSSL_ALG _GLCRYPTO_CONCAT (sha, GL_OPENSSL_NAME)    43 #if BASE_OPENSSL_TYPE != GL_OPENSSL_NAME    44 # undef BASE_OPENSSL_TYPE    45 # if GL_OPENSSL_NAME == 224    46 #  define BASE_OPENSSL_TYPE 256    47 # elif GL_OPENSSL_NAME == 384    48 #  define BASE_OPENSSL_TYPE 512    50 # define md5_CTX MD5_CTX    51 # define sha1_CTX SHA_CTX    52 # define sha224_CTX SHA256_CTX    53 # define sha224_ctx sha256_ctx    54 # define sha256_CTX SHA256_CTX    55 # define sha384_CTX SHA512_CTX    56 # define sha384_ctx sha512_ctx    57 # define sha512_CTX SHA512_CTX    60 # define _gl_CTX _GLCRYPTO_CONCAT (OPENSSL_ALG, _CTX)     61 # define _gl_ctx _GLCRYPTO_CONCAT (OPENSSL_ALG, _ctx)     63 struct _gl_ctx { _gl_CTX CTX; };
    67 #define md5_prefix MD5    68 #define sha1_prefix SHA1    69 #define sha224_prefix SHA224    70 #define sha256_prefix SHA256    71 #define sha384_prefix SHA384    72 #define sha512_prefix SHA512    73 #define _GLCRYPTO_PREFIX _GLCRYPTO_CONCAT (OPENSSL_ALG, _prefix)    74 #define OPENSSL_FN(suffix) _GLCRYPTO_CONCAT (_GLCRYPTO_PREFIX, suffix)    75 #define GL_CRYPTO_FN(suffix) _GLCRYPTO_CONCAT (OPENSSL_ALG, suffix)    79 { (void) 
OPENSSL_FN (_Init) ((_gl_CTX *) ctx); }
    82 #if ! (GL_OPENSSL_NAME == 224 || GL_OPENSSL_NAME == 384)    85 { 
OPENSSL_FN (_Update) ((_gl_CTX *) ctx, buf, len); }
    94 { 
OPENSSL_FN (_Final) ((
unsigned char *) res, (_gl_CTX *) ctx); 
return res; }
    98 { 
return OPENSSL_FN () ((
const unsigned char *) buf, len, (
unsigned char *) res); }
   104   _gl_CTX tmp_ctx = *(_gl_CTX *) ctx;
   105   OPENSSL_FN (_Final) ((
unsigned char *) res, &tmp_ctx);
   112 #undef _GLCRYPTO_PREFIX   114 #undef GL_OPENSSL_NAME GL_OPENSSL_INLINE void GL_CRYPTO_FN() _process_bytes(const void *buf, size_t len, struct _gl_ctx *ctx)
 
GL_OPENSSL_INLINE void GL_CRYPTO_FN() _init_ctx(struct _gl_ctx *ctx)
 
#define OPENSSL_FN(suffix)
 
GL_OPENSSL_INLINE void *GL_CRYPTO_FN() _buffer(const char *buf, size_t len, void *restrict res)
 
#define GL_OPENSSL_INLINE
 
GL_OPENSSL_INLINE void *GL_CRYPTO_FN() _read_ctx(const struct _gl_ctx *ctx, void *restrict res)
 
GL_OPENSSL_INLINE void *GL_CRYPTO_FN() _finish_ctx(struct _gl_ctx *ctx, void *restrict res)
 
GL_OPENSSL_INLINE void GL_CRYPTO_FN() _process_block(const void *buf, size_t len, struct _gl_ctx *ctx)
 
#define _GL_INLINE_HEADER_BEGIN
 
#define GL_CRYPTO_FN(suffix)
 
#define _GL_INLINE_HEADER_END