Lines Matching refs:ctx
120 void EVP_MD_CTX_init(EVP_MD_CTX *ctx) in EVP_MD_CTX_init() argument
122 memset(ctx,'\0',sizeof *ctx); in EVP_MD_CTX_init()
127 EVP_MD_CTX *ctx=OPENSSL_malloc(sizeof *ctx); in EVP_MD_CTX_create() local
129 EVP_MD_CTX_init(ctx); in EVP_MD_CTX_create()
131 return ctx; in EVP_MD_CTX_create()
134 int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type) in EVP_DigestInit() argument
136 EVP_MD_CTX_init(ctx); in EVP_DigestInit()
137 return EVP_DigestInit_ex(ctx, type, NULL); in EVP_DigestInit()
140 int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl) in EVP_DigestInit_ex() argument
142 EVP_MD_CTX_clear_flags(ctx,EVP_MD_CTX_FLAG_CLEANED); in EVP_DigestInit_ex()
148 if (ctx->engine && ctx->digest && (!type || in EVP_DigestInit_ex()
149 (type && (type->type == ctx->digest->type)))) in EVP_DigestInit_ex()
156 if(ctx->engine) in EVP_DigestInit_ex()
157 ENGINE_finish(ctx->engine); in EVP_DigestInit_ex()
184 ctx->engine = impl; in EVP_DigestInit_ex()
187 ctx->engine = NULL; in EVP_DigestInit_ex()
190 if(!ctx->digest) in EVP_DigestInit_ex()
196 if (ctx->digest != type) in EVP_DigestInit_ex()
198 if (ctx->digest && ctx->digest->ctx_size) in EVP_DigestInit_ex()
199 OPENSSL_free(ctx->md_data); in EVP_DigestInit_ex()
200 ctx->digest=type; in EVP_DigestInit_ex()
202 ctx->md_data=OPENSSL_malloc(type->ctx_size); in EVP_DigestInit_ex()
207 return ctx->digest->init(ctx); in EVP_DigestInit_ex()
210 int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *data, in EVP_DigestUpdate() argument
213 return ctx->digest->update(ctx,data,count); in EVP_DigestUpdate()
217 int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *size) in EVP_DigestFinal() argument
220 ret = EVP_DigestFinal_ex(ctx, md, size); in EVP_DigestFinal()
221 EVP_MD_CTX_cleanup(ctx); in EVP_DigestFinal()
226 int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, unsigned int *size) in EVP_DigestFinal_ex() argument
230 OPENSSL_assert(ctx->digest->md_size <= EVP_MAX_MD_SIZE); in EVP_DigestFinal_ex()
231 ret=ctx->digest->final(ctx,md); in EVP_DigestFinal_ex()
233 *size=ctx->digest->md_size; in EVP_DigestFinal_ex()
234 if (ctx->digest->cleanup) in EVP_DigestFinal_ex()
236 ctx->digest->cleanup(ctx); in EVP_DigestFinal_ex()
237 EVP_MD_CTX_set_flags(ctx,EVP_MD_CTX_FLAG_CLEANED); in EVP_DigestFinal_ex()
239 memset(ctx->md_data,0,ctx->digest->ctx_size); in EVP_DigestFinal_ex()
291 EVP_MD_CTX ctx; in EVP_Digest() local
294 EVP_MD_CTX_init(&ctx); in EVP_Digest()
295 EVP_MD_CTX_set_flags(&ctx,EVP_MD_CTX_FLAG_ONESHOT); in EVP_Digest()
296 ret=EVP_DigestInit_ex(&ctx, type, impl) in EVP_Digest()
297 && EVP_DigestUpdate(&ctx, data, count) in EVP_Digest()
298 && EVP_DigestFinal_ex(&ctx, md, size); in EVP_Digest()
299 EVP_MD_CTX_cleanup(&ctx); in EVP_Digest()
304 void EVP_MD_CTX_destroy(EVP_MD_CTX *ctx) in EVP_MD_CTX_destroy() argument
306 EVP_MD_CTX_cleanup(ctx); in EVP_MD_CTX_destroy()
307 OPENSSL_free(ctx); in EVP_MD_CTX_destroy()
311 int EVP_MD_CTX_cleanup(EVP_MD_CTX *ctx) in EVP_MD_CTX_cleanup() argument
316 if (ctx->digest && ctx->digest->cleanup in EVP_MD_CTX_cleanup()
317 && !EVP_MD_CTX_test_flags(ctx,EVP_MD_CTX_FLAG_CLEANED)) in EVP_MD_CTX_cleanup()
318 ctx->digest->cleanup(ctx); in EVP_MD_CTX_cleanup()
319 if (ctx->digest && ctx->digest->ctx_size && ctx->md_data in EVP_MD_CTX_cleanup()
320 && !EVP_MD_CTX_test_flags(ctx, EVP_MD_CTX_FLAG_REUSE)) in EVP_MD_CTX_cleanup()
322 OPENSSL_cleanse(ctx->md_data,ctx->digest->ctx_size); in EVP_MD_CTX_cleanup()
323 OPENSSL_free(ctx->md_data); in EVP_MD_CTX_cleanup()
326 if(ctx->engine) in EVP_MD_CTX_cleanup()
329 ENGINE_finish(ctx->engine); in EVP_MD_CTX_cleanup()
331 memset(ctx,'\0',sizeof *ctx); in EVP_MD_CTX_cleanup()