Lines Matching refs:ctx
66 void HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,
75 ctx->md=md;
78 md=ctx->md;
84 OPENSSL_assert(j <= (int)sizeof(ctx->key));
87 EVP_DigestInit_ex(&ctx->md_ctx,md, impl);
88 EVP_DigestUpdate(&ctx->md_ctx,key,len);
89 EVP_DigestFinal_ex(&(ctx->md_ctx),ctx->key,
90 &ctx->key_length);
94 OPENSSL_assert(len>=0 && len<=(int)sizeof(ctx->key));
95 memcpy(ctx->key,key,len);
96 ctx->key_length=len;
98 if(ctx->key_length != HMAC_MAX_MD_CBLOCK)
99 memset(&ctx->key[ctx->key_length], 0,
100 HMAC_MAX_MD_CBLOCK - ctx->key_length);
106 pad[i]=0x36^ctx->key[i];
107 EVP_DigestInit_ex(&ctx->i_ctx,md, impl);
108 EVP_DigestUpdate(&ctx->i_ctx,pad,EVP_MD_block_size(md));
111 pad[i]=0x5c^ctx->key[i];
112 EVP_DigestInit_ex(&ctx->o_ctx,md, impl);
113 EVP_DigestUpdate(&ctx->o_ctx,pad,EVP_MD_block_size(md));
115 EVP_MD_CTX_copy_ex(&ctx->md_ctx,&ctx->i_ctx);
118 void HMAC_Init(HMAC_CTX *ctx, const void *key, int len,
122 HMAC_CTX_init(ctx);
123 HMAC_Init_ex(ctx,key,len,md, NULL);
126 void HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len)
128 EVP_DigestUpdate(&ctx->md_ctx,data,len);
131 void HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len)
137 j=EVP_MD_block_size(ctx->md);
139 EVP_DigestFinal_ex(&ctx->md_ctx,buf,&i);
140 EVP_MD_CTX_copy_ex(&ctx->md_ctx,&ctx->o_ctx);
141 EVP_DigestUpdate(&ctx->md_ctx,buf,i);
142 EVP_DigestFinal_ex(&ctx->md_ctx,md,len);
145 void HMAC_CTX_init(HMAC_CTX *ctx)
147 EVP_MD_CTX_init(&ctx->i_ctx);
148 EVP_MD_CTX_init(&ctx->o_ctx);
149 EVP_MD_CTX_init(&ctx->md_ctx);
152 void HMAC_CTX_cleanup(HMAC_CTX *ctx)
154 EVP_MD_CTX_cleanup(&ctx->i_ctx);
155 EVP_MD_CTX_cleanup(&ctx->o_ctx);
156 EVP_MD_CTX_cleanup(&ctx->md_ctx);
157 memset(ctx,0,sizeof *ctx);
176 void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags)
178 EVP_MD_CTX_set_flags(&ctx->i_ctx, flags);
179 EVP_MD_CTX_set_flags(&ctx->o_ctx, flags);
180 EVP_MD_CTX_set_flags(&ctx->md_ctx, flags);