Lines Matching full:ctx
291 void aes_encrypt(void *ctx, const u8 *plain, u8 *crypt)
293 struct aes_context *akey = ctx;
306 void aes_encrypt_deinit(void *ctx)
308 struct aes_context *akey = ctx;
323 void aes_decrypt(void *ctx, const u8 *crypt, u8 *plain)
325 struct aes_context *akey = ctx;
338 void aes_decrypt_deinit(void *ctx)
340 aes_encrypt_deinit(ctx);
355 struct crypto_hash *ctx;
393 ctx = os_zalloc(sizeof(*ctx));
394 if (ctx == NULL)
397 ctx->alg = alg;
399 if (!CryptAcquireContext(&ctx->prov, NULL, NULL, PROV_RSA_FULL, 0)) {
401 os_free(ctx);
409 if (!CryptImportKey(ctx->prov, (BYTE *) &key_blob,
411 &ctx->key)) {
413 CryptReleaseContext(ctx->prov, 0);
414 os_free(ctx);
419 if (!CryptCreateHash(ctx->prov, calg, ctx->key, 0, &ctx->hash)) {
421 CryptReleaseContext(ctx->prov, 0);
422 os_free(ctx);
441 if (!CryptSetHashParam(ctx->hash, HP_HMAC_INFO, (BYTE *) &info,
444 CryptDestroyHash(ctx->hash);
445 CryptReleaseContext(ctx->prov, 0);
446 os_free(ctx);
451 return ctx;
455 void crypto_hash_update(struct crypto_hash *ctx, const u8 *data, size_t len)
457 if (ctx == NULL || ctx->error)
460 if (!CryptHashData(ctx->hash, (BYTE *) data, len, 0)) {
462 ctx->error = 1;
467 int crypto_hash_finish(struct crypto_hash *ctx, u8 *mac, size_t *len)
472 if (ctx == NULL)
478 if (ctx->error) {
484 if (!CryptGetHashParam(ctx->hash, HP_HASHVAL, mac, &hlen, 0)) {
491 if (ctx->alg == CRYPTO_HASH_ALG_HMAC_SHA1 ||
492 ctx->alg == CRYPTO_HASH_ALG_HMAC_MD5)
493 CryptDestroyKey(ctx->key);
495 os_free(ctx);
511 struct crypto_cipher *ctx;
552 ctx = os_zalloc(sizeof(*ctx));
553 if (ctx == NULL)
556 if (!CryptAcquireContext(&ctx->prov, NULL, MS_ENH_RSA_AES_PROV,
562 if (!CryptImportKey(ctx->prov, (BYTE *) &key_blob,
563 sizeof(key_blob), 0, 0, &ctx->key)) {
568 if (!CryptSetKeyParam(ctx->key, KP_MODE, (BYTE *) &mode, 0)) {
573 if (iv && !CryptSetKeyParam(ctx->key, KP_IV, (BYTE *) iv, 0)) {
578 return ctx;
581 CryptDestroyKey(ctx->key);
583 CryptReleaseContext(ctx->prov, 0);
585 os_free(ctx);
590 int crypto_cipher_encrypt(struct crypto_cipher *ctx, const u8 *plain,
597 if (!CryptEncrypt(ctx->key, 0, FALSE, 0, crypt, &dlen, len)) {
607 int crypto_cipher_decrypt(struct crypto_cipher *ctx, const u8 *crypt,
614 if (!CryptDecrypt(ctx->key, 0, FALSE, 0, plain, &dlen)) {
623 void crypto_cipher_deinit(struct crypto_cipher *ctx)
625 CryptDestroyKey(ctx->key);
626 CryptReleaseContext(ctx->prov, 0);
627 os_free(ctx);