{
    "content": [
        {
            "type": "text",
            "text": "# EVP_MAC-HMAC (man)\n\n## NAME\n\nEVPMAC-HMAC - The HMAC EVPMAC implementation\n\n## DESCRIPTION\n\nSupport for computing HMAC MACs through the EVPMAC API.\n\n## Sections\n\n- **NAME**\n- **DESCRIPTION** (2 subsections)\n- **SEE ALSO**\n- **COPYRIGHT**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "EVP_MAC-HMAC",
        "section": "",
        "mode": "man",
        "summary": "EVPMAC-HMAC - The HMAC EVPMAC implementation",
        "synopsis": null,
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [
            {
                "name": "EVPMACCTXgetparams",
                "section": "3",
                "url": "https://www.chedong.com/phpMan.php/man/EVPMACCTXgetparams/3/json"
            },
            {
                "name": "EVPMACCTXsetparams",
                "section": "3",
                "url": "https://www.chedong.com/phpMan.php/man/EVPMACCTXsetparams/3/json"
            },
            {
                "name": "EVPMAC",
                "section": "3",
                "url": "https://www.chedong.com/phpMan.php/man/EVPMAC/3/json"
            },
            {
                "name": "OSSLPARAM",
                "section": "3",
                "url": "https://www.chedong.com/phpMan.php/man/OSSLPARAM/3/json"
            },
            {
                "name": "HMAC",
                "section": "3",
                "url": "https://www.chedong.com/phpMan.php/man/HMAC/3/json"
            }
        ],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 4,
                "subsections": [
                    {
                        "name": "Identity",
                        "lines": 5
                    },
                    {
                        "name": "Supported parameters",
                        "lines": 35
                    }
                ]
            },
            {
                "name": "SEE ALSO",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "COPYRIGHT",
                "lines": 9,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "EVPMAC-HMAC - The HMAC EVPMAC implementation\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "Support for computing HMAC MACs through the EVPMAC API.\n\nThis implementation uses EVPMD functions to get access to the underlying digest.\n",
                "subsections": [
                    {
                        "name": "Identity",
                        "content": "This implementation is identified with this name and properties, to be used with\nEVPMACfetch():\n\n\"HMAC\", \"provider=default\" or \"provider=fips\"\n"
                    },
                    {
                        "name": "Supported parameters",
                        "content": "The general description of these parameters can be found in \"PARAMETERS\" in EVPMAC(3).\n\nThe following parameter can be set with EVPMACCTXsetparams():\n\n\"key\" (OSSLMACPARAMKEY) <octet string>\nSets the MAC key.  Setting this parameter is identical to passing a key to\nEVPMACinit(3).\n\n\"digest\" (OSSLMACPARAMDIGEST) <UTF8 string>\nSets the name of the underlying digest to be used.\n\n\"properties\" (OSSLMACPARAMPROPERTIES) <UTF8 string>\nSets the properties to be queried when trying to fetch the underlying digest.  This must\nbe given together with the digest naming parameter (\"digest\", or OSSLMACPARAMDIGEST)\nto be considered valid.\n\n\"digest-noinit\" (OSSLMACPARAMDIGESTNOINIT) <integer>\nA flag to set the MAC digest to not initialise the implementation specific data.  The\nvalue 0 or 1 is expected.\n\n\"digest-oneshot\" (OSSLMACPARAMDIGESTONESHOT) <integer>\nA flag to set the MAC digest to be a one-shot operation.  The value 0 or 1 is expected.\n\n\"tls-data-size\" (OSSLMACPARAMTLSDATASIZE) <unsigned integer>\n\nThe following parameter can be retrieved with EVPMACCTXgetparams():\n\n\"size\" (OSSLMACPARAMSIZE) <unsigned integer>\nThe \"size\" parameter can also be retrieved with EVPMACCTXgetmacsize().  The length\nof the \"size\" parameter is equal to that of an unsigned int.\n\n\"block-size\" (OSSLMACPARAMSIZE) <unsigned integer>\nGets the MAC block size.  The \"block-size\" parameter can also be retrieved with\nEVPMACCTXgetblocksize().\n"
                    }
                ]
            },
            "SEE ALSO": {
                "content": "EVPMACCTXgetparams(3), EVPMACCTXsetparams(3), \"PARAMETERS\" in EVPMAC(3),\nOSSLPARAM(3), HMAC(3)\n",
                "subsections": []
            },
            "COPYRIGHT": {
                "content": "Copyright 2018-2021 The OpenSSL Project Authors. All Rights Reserved.\n\nLicensed under the Apache License 2.0 (the \"License\").  You may not use this file except in\ncompliance with the License.  You can obtain a copy in the file LICENSE in the source\ndistribution or at <https://www.openssl.org/source/license.html>.\n\n\n\n3.0.2                                        2026-06-02                           EVPMAC-HMAC(7SSL)",
                "subsections": []
            }
        }
    }
}