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