Lines Matching refs:ctx

38 #define HMAC_CTX_new() &(ctx->_ctx), HMAC_CTX_init(&(ctx->_ctx))
43 isc_hmacmd5_init(isc_hmacmd5_t *ctx, const unsigned char *key,
46 ctx->ctx = HMAC_CTX_new();
47 RUNTIME_CHECK(ctx->ctx != NULL);
48 RUNTIME_CHECK(HMAC_Init_ex(ctx->ctx, (const void *) key,
53 isc_hmacmd5_invalidate(isc_hmacmd5_t *ctx) {
54 if (ctx->ctx == NULL)
56 HMAC_CTX_free(ctx->ctx);
57 ctx->ctx = NULL;
61 isc_hmacmd5_update(isc_hmacmd5_t *ctx, const unsigned char *buf,
64 RUNTIME_CHECK(HMAC_Update(ctx->ctx, buf, (int) len) == 1);
68 isc_hmacmd5_sign(isc_hmacmd5_t *ctx, unsigned char *digest) {
69 RUNTIME_CHECK(HMAC_Final(ctx->ctx, digest, NULL) == 1);
70 HMAC_CTX_free(ctx->ctx);
71 ctx->ctx = NULL;
82 isc_hmacmd5_init(isc_hmacmd5_t *ctx, const unsigned char *key,
111 RUNTIME_CHECK(pk11_get_session(ctx, OP_DIGEST, ISC_TRUE, ISC_FALSE,
113 ctx->object = CK_INVALID_HANDLE;
115 (ctx->session, keyTemplate,
116 (CK_ULONG) 6, &ctx->object));
117 INSIST(ctx->object != CK_INVALID_HANDLE);
118 PK11_FATALCHECK(pkcs_C_SignInit, (ctx->session, &mech, ctx->object));
122 isc_hmacmd5_invalidate(isc_hmacmd5_t *ctx) {
126 if (ctx->handle == NULL)
128 (void) pkcs_C_SignFinal(ctx->session, garbage, &len);
130 if (ctx->object != CK_INVALID_HANDLE)
131 (void) pkcs_C_DestroyObject(ctx->session, ctx->object);
132 ctx->object = CK_INVALID_HANDLE;
133 pk11_return_session(ctx);
137 isc_hmacmd5_update(isc_hmacmd5_t *ctx, const unsigned char *buf,
145 (ctx->session, pPart, (CK_ULONG) len));
149 isc_hmacmd5_sign(isc_hmacmd5_t *ctx, unsigned char *digest) {
154 (ctx->session, (CK_BYTE_PTR) digest, &len));
155 if (ctx->object != CK_INVALID_HANDLE)
156 (void) pkcs_C_DestroyObject(ctx->session, ctx->object);
157 ctx->object = CK_INVALID_HANDLE;
158 pk11_return_session(ctx);
168 isc_hmacmd5_init(isc_hmacmd5_t *ctx, const unsigned char *key,
176 RUNTIME_CHECK(pk11_get_session(ctx, OP_DIGEST, ISC_TRUE, ISC_FALSE,
178 RUNTIME_CHECK((ctx->key = pk11_mem_get(PADLEN)) != NULL);
183 PK11_FATALCHECK(pkcs_C_DigestInit, (ctx->session, &mech));
186 (ctx->session, kPart, (CK_ULONG) len));
189 (ctx->session, (CK_BYTE_PTR) ctx->key, &kl));
191 memmove(ctx->key, key, len);
192 PK11_FATALCHECK(pkcs_C_DigestInit, (ctx->session, &mech));
195 ipad[i] ^= ctx->key[i];
197 (ctx->session, ipad, (CK_ULONG) PADLEN));
201 isc_hmacmd5_invalidate(isc_hmacmd5_t *ctx) {
202 if (ctx->key != NULL)
203 pk11_mem_put(ctx->key, PADLEN);
204 ctx->key = NULL;
205 isc_md5_invalidate(ctx);
209 isc_hmacmd5_update(isc_hmacmd5_t *ctx, const unsigned char *buf,
217 (ctx->session, pPart, (CK_ULONG) len));
221 isc_hmacmd5_sign(isc_hmacmd5_t *ctx, unsigned char *digest) {
229 (ctx->session, (CK_BYTE_PTR) digest,
233 opad[i] ^= ctx->key[i];
234 pk11_mem_put(ctx->key, PADLEN);
235 ctx->key = NULL;
236 PK11_FATALCHECK(pkcs_C_DigestInit, (ctx->session, &mech));
238 (ctx->session, opad, (CK_ULONG) PADLEN));
240 (ctx->session, (CK_BYTE_PTR) digest, len));
242 (ctx->session,
245 pk11_return_session(ctx);
259 isc_hmacmd5_init(isc_hmacmd5_t *ctx, const unsigned char *key,
265 memset(ctx->key, 0, sizeof(ctx->key));
266 if (len > sizeof(ctx->key)) {
270 isc_md5_final(&md5ctx, ctx->key);
272 memmove(ctx->key, key, len);
274 isc_md5_init(&ctx->md5ctx);
277 ipad[i] ^= ctx->key[i];
278 isc_md5_update(&ctx->md5ctx, ipad, sizeof(ipad));
282 isc_hmacmd5_invalidate(isc_hmacmd5_t *ctx) {
283 isc_md5_invalidate(&ctx->md5ctx);
284 isc_safe_memwipe(ctx->key, sizeof(ctx->key));
292 isc_hmacmd5_update(isc_hmacmd5_t *ctx, const unsigned char *buf,
295 isc_md5_update(&ctx->md5ctx, buf, len);
302 isc_hmacmd5_sign(isc_hmacmd5_t *ctx, unsigned char *digest) {
306 isc_md5_final(&ctx->md5ctx, digest);
310 opad[i] ^= ctx->key[i];
312 isc_md5_init(&ctx->md5ctx);
313 isc_md5_update(&ctx->md5ctx, opad, sizeof(opad));
314 isc_md5_update(&ctx->md5ctx, digest, ISC_MD5_DIGESTLENGTH);
315 isc_md5_final(&ctx->md5ctx, digest);
316 isc_hmacmd5_invalidate(ctx);
326 isc_hmacmd5_verify(isc_hmacmd5_t *ctx, unsigned char *digest) {
327 return (isc_hmacmd5_verify2(ctx, digest, ISC_MD5_DIGESTLENGTH));
331 isc_hmacmd5_verify2(isc_hmacmd5_t *ctx, unsigned char *digest, size_t len) {
335 isc_hmacmd5_sign(ctx, newdigest);
350 isc_hmacmd5_t ctx;
392 isc_hmacmd5_init(&ctx, key, 16U);
393 isc_hmacmd5_update(&ctx, input, 8U);
394 result = isc_hmacmd5_verify2(&ctx, expected, sizeof(expected));
400 isc_hmacmd5_init(&ctx, key, 1U);
401 isc_hmacmd5_update(&ctx, input, 8U);
402 return (isc_hmacmd5_verify2(&ctx, expected2, sizeof(expected2)));