Lines Matching defs:ctx

66 void HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,
74 ctx->md = md;
76 md = ctx->md;
81 OPENSSL_assert(j <= (int)sizeof(ctx->key));
83 EVP_DigestInit_ex(&ctx->md_ctx, md, impl);
84 EVP_DigestUpdate(&ctx->md_ctx, key, len);
85 EVP_DigestFinal_ex(&(ctx->md_ctx), ctx->key, &ctx->key_length);
87 OPENSSL_assert(len >= 0 && len <= (int)sizeof(ctx->key));
88 memcpy(ctx->key, key, len);
89 ctx->key_length = len;
91 if (ctx->key_length != HMAC_MAX_MD_CBLOCK)
92 memset(&ctx->key[ctx->key_length], 0,
93 HMAC_MAX_MD_CBLOCK - ctx->key_length);
98 pad[i] = 0x36 ^ ctx->key[i];
99 EVP_DigestInit_ex(&ctx->i_ctx, md, impl);
100 EVP_DigestUpdate(&ctx->i_ctx, pad, EVP_MD_block_size(md));
103 pad[i] = 0x5c ^ ctx->key[i];
104 EVP_DigestInit_ex(&ctx->o_ctx, md, impl);
105 EVP_DigestUpdate(&ctx->o_ctx, pad, EVP_MD_block_size(md));
107 EVP_MD_CTX_copy_ex(&ctx->md_ctx, &ctx->i_ctx);
110 void HMAC_Init(HMAC_CTX *ctx, const void *key, int len, const EVP_MD *md)
113 HMAC_CTX_init(ctx);
114 HMAC_Init_ex(ctx, key, len, md, NULL);
117 void HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len)
119 EVP_DigestUpdate(&ctx->md_ctx, data, len);
122 void HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len)
127 EVP_DigestFinal_ex(&ctx->md_ctx, buf, &i);
128 EVP_MD_CTX_copy_ex(&ctx->md_ctx, &ctx->o_ctx);
129 EVP_DigestUpdate(&ctx->md_ctx, buf, i);
130 EVP_DigestFinal_ex(&ctx->md_ctx, md, len);
133 void HMAC_CTX_init(HMAC_CTX *ctx)
135 EVP_MD_CTX_init(&ctx->i_ctx);
136 EVP_MD_CTX_init(&ctx->o_ctx);
137 EVP_MD_CTX_init(&ctx->md_ctx);
140 void HMAC_CTX_cleanup(HMAC_CTX *ctx)
142 EVP_MD_CTX_cleanup(&ctx->i_ctx);
143 EVP_MD_CTX_cleanup(&ctx->o_ctx);
144 EVP_MD_CTX_cleanup(&ctx->md_ctx);
145 memset(ctx, 0, sizeof *ctx);
165 void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags)
167 EVP_MD_CTX_set_flags(&ctx->i_ctx, flags);
168 EVP_MD_CTX_set_flags(&ctx->o_ctx, flags);
169 EVP_MD_CTX_set_flags(&ctx->md_ctx, flags);