{
    "mode": "man",
    "parameter": "evp",
    "section": "7",
    "url": "https://www.chedong.com/phpMan.php/man/evp/7/json",
    "generated": "2026-08-12T00:56:48Z",
    "synopsis": "#include <openssl/evp.h>",
    "sections": {
        "NAME": {
            "content": "evp - high-level cryptographic functions\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "#include <openssl/evp.h>\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "The EVP library provides a high-level interface to cryptographic functions.\n\nThe EVPSealXXX and EVPOpenXXX functions provide public key encryption and decryption to\nimplement digital \"envelopes\".\n\nThe EVPDigestSignXXX and EVPDigestVerifyXXX functions implement digital signatures and\nMessage Authentication Codes (MACs). Also see the older EVPSignXXX and EVPVerifyXXX\nfunctions.\n\nSymmetric encryption is available with the EVPEncryptXXX functions.  The EVPDigestXXX\nfunctions provide message digests.\n\nThe EVPPKEYXXX functions provide a high-level interface to asymmetric algorithms. To create\na new EVPPKEY see EVPPKEYnew(3). EVPPKEYs can be associated with a private key of a\nparticular algorithm by using the functions described on the EVPPKEYfromdata(3) page, or\nnew keys can be generated using EVPPKEYkeygen(3).  EVPPKEYs can be compared using\nEVPPKEYeq(3), or printed using EVPPKEYprintprivate(3). EVPPKEYtodata(3) can be used to\nconvert a key back into an OSSLPARAM(3) array.\n\nThe EVPPKEY functions support the full range of asymmetric algorithm operations:\n\nFor key agreement see EVPPKEYderive(3)\nFor signing and verifying see EVPPKEYsign(3), EVPPKEYverify(3) and\nEVPPKEYverifyrecover(3). However, note that these functions do not perform a digest of the\ndata to be signed. Therefore, normally you would use the EVPDigestSignInit(3) functions for\nthis purpose.\nFor encryption and decryption see EVPPKEYencrypt(3) and EVPPKEYdecrypt(3) respectively.\nHowever, note that these functions perform encryption and decryption only. As public key\nencryption is an expensive operation, normally you would wrap an encrypted message in a\n\"digital envelope\" using the EVPSealInit(3) and EVPOpenInit(3) functions.\n\nThe  EVPBytesToKey(3)  function provides some limited support for password based encryption.\nCareful selection of the parameters will provide a PKCS#5 PBKDF1  compatible  implementation.\nHowever, new applications should not typically use this (preferring, for example, PBKDF2 from\nPCKS#5).\n\nThe EVPEncodeXXX and EVPDecodeXXX functions implement base 64 encoding and decoding.\n\nAll  the  symmetric  algorithms  (ciphers),  digests  and  asymmetric  algorithms (public key\nalgorithms) can be replaced by  ENGINE  modules  providing  alternative  implementations.  If\nENGINE implementations of ciphers or digests are registered as defaults, then the various EVP\nfunctions  will  automatically use those implementations automatically in preference to built\nin software implementations. For more information, consult the engine(3) man page.\n\nAlthough low-level algorithm specific functions  exist  for  many  algorithms  their  use  is\ndiscouraged.  They cannot be used with an ENGINE and ENGINE versions of new algorithms cannot\nbe accessed using the low-level functions.  Also makes code harder to adapt to new algorithms\nand some options are not cleanly supported at the low-level  and  some  operations  are  more\nefficient using the high-level interface.\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "EVPDigestInit(3),        EVPEncryptInit(3),        EVPOpenInit(3),        EVPSealInit(3),\nEVPDigestSignInit(3),      EVPSignInit(3),      EVPVerifyInit(3),       EVPEncodeInit(3),\nEVPPKEYnew(3),      EVPPKEYfromdata(3),      EVPPKEYtodata(3),      EVPPKEYkeygen(3),\nEVPPKEYprintprivate(3),   EVPPKEYdecrypt(3),   EVPPKEYencrypt(3),    EVPPKEYsign(3),\nEVPPKEYverify(3),    EVPPKEYverifyrecover(3),   EVPPKEYderive(3),   EVPBytesToKey(3),\nENGINEbyid(3)\n",
            "subsections": []
        },
        "COPYRIGHT": {
            "content": "Copyright 2000-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\n3.0.13                                       2026-07-29                                    EVP(7SSL)",
            "subsections": []
        }
    },
    "summary": "evp - high-level cryptographic functions",
    "flags": [],
    "examples": [],
    "see_also": [
        {
            "name": "EVPDigestInit",
            "section": "3",
            "url": "https://www.chedong.com/phpMan.php/man/EVPDigestInit/3/json"
        },
        {
            "name": "EVPEncryptInit",
            "section": "3",
            "url": "https://www.chedong.com/phpMan.php/man/EVPEncryptInit/3/json"
        },
        {
            "name": "EVPOpenInit",
            "section": "3",
            "url": "https://www.chedong.com/phpMan.php/man/EVPOpenInit/3/json"
        },
        {
            "name": "EVPSealInit",
            "section": "3",
            "url": "https://www.chedong.com/phpMan.php/man/EVPSealInit/3/json"
        },
        {
            "name": "EVPDigestSignInit",
            "section": "3",
            "url": "https://www.chedong.com/phpMan.php/man/EVPDigestSignInit/3/json"
        },
        {
            "name": "EVPSignInit",
            "section": "3",
            "url": "https://www.chedong.com/phpMan.php/man/EVPSignInit/3/json"
        },
        {
            "name": "EVPVerifyInit",
            "section": "3",
            "url": "https://www.chedong.com/phpMan.php/man/EVPVerifyInit/3/json"
        },
        {
            "name": "EVPEncodeInit",
            "section": "3",
            "url": "https://www.chedong.com/phpMan.php/man/EVPEncodeInit/3/json"
        },
        {
            "name": "EVPPKEYnew",
            "section": "3",
            "url": "https://www.chedong.com/phpMan.php/man/EVPPKEYnew/3/json"
        },
        {
            "name": "EVPPKEYfromdata",
            "section": "3",
            "url": "https://www.chedong.com/phpMan.php/man/EVPPKEYfromdata/3/json"
        },
        {
            "name": "EVPPKEYtodata",
            "section": "3",
            "url": "https://www.chedong.com/phpMan.php/man/EVPPKEYtodata/3/json"
        },
        {
            "name": "EVPPKEYkeygen",
            "section": "3",
            "url": "https://www.chedong.com/phpMan.php/man/EVPPKEYkeygen/3/json"
        },
        {
            "name": "EVPPKEYprintprivate",
            "section": "3",
            "url": "https://www.chedong.com/phpMan.php/man/EVPPKEYprintprivate/3/json"
        },
        {
            "name": "EVPPKEYdecrypt",
            "section": "3",
            "url": "https://www.chedong.com/phpMan.php/man/EVPPKEYdecrypt/3/json"
        },
        {
            "name": "EVPPKEYencrypt",
            "section": "3",
            "url": "https://www.chedong.com/phpMan.php/man/EVPPKEYencrypt/3/json"
        },
        {
            "name": "EVPPKEYsign",
            "section": "3",
            "url": "https://www.chedong.com/phpMan.php/man/EVPPKEYsign/3/json"
        },
        {
            "name": "EVPPKEYverify",
            "section": "3",
            "url": "https://www.chedong.com/phpMan.php/man/EVPPKEYverify/3/json"
        },
        {
            "name": "EVPPKEYverifyrecover",
            "section": "3",
            "url": "https://www.chedong.com/phpMan.php/man/EVPPKEYverifyrecover/3/json"
        },
        {
            "name": "EVPPKEYderive",
            "section": "3",
            "url": "https://www.chedong.com/phpMan.php/man/EVPPKEYderive/3/json"
        },
        {
            "name": "EVPBytesToKey",
            "section": "3",
            "url": "https://www.chedong.com/phpMan.php/man/EVPBytesToKey/3/json"
        },
        {
            "name": "ENGINEbyid",
            "section": "3",
            "url": "https://www.chedong.com/phpMan.php/man/ENGINEbyid/3/json"
        }
    ]
}