Go to the documentation of this file.
65 #include "../internal.h"
91 if (!pkey || !pkey->
ameth) {
144 if (
ctx->pmeth &&
ctx->pmeth->cleanup) {
153 if (!
ctx->pmeth || !
ctx->pmeth->copy) {
165 ret->engine =
ctx->engine;
166 ret->operation =
ctx->operation;
168 if (
ctx->pkey != NULL) {
173 if (
ctx->peerkey != NULL) {
175 ret->peerkey =
ctx->peerkey;
192 if (!
ctx || !
ctx->pmeth || !
ctx->pmeth->ctrl) {
196 if (keytype != -1 &&
ctx->pmeth->pkey_id != keytype) {
206 if (optype != -1 && !(
ctx->operation & optype)) {
211 return ctx->pmeth->ctrl(
ctx,
cmd, p1, p2);
215 if (
ctx == NULL ||
ctx->pmeth == NULL ||
216 (
ctx->pmeth->sign == NULL &&
ctx->pmeth->sign_message == NULL)) {
226 const uint8_t *digest,
size_t digest_len) {
227 if (!
ctx || !
ctx->pmeth || !
ctx->pmeth->sign) {
235 return ctx->pmeth->sign(
ctx, sig, sig_len, digest, digest_len);
239 if (
ctx == NULL ||
ctx->pmeth == NULL ||
240 (
ctx->pmeth->verify == NULL &&
ctx->pmeth->verify_message == NULL)) {
249 const uint8_t *digest,
size_t digest_len) {
250 if (!
ctx || !
ctx->pmeth || !
ctx->pmeth->verify) {
258 return ctx->pmeth->verify(
ctx, sig, sig_len, digest, digest_len);
262 if (!
ctx || !
ctx->pmeth || !
ctx->pmeth->encrypt) {
272 if (!
ctx || !
ctx->pmeth || !
ctx->pmeth->encrypt) {
280 return ctx->pmeth->encrypt(
ctx,
out, outlen,
in, inlen);
284 if (!
ctx || !
ctx->pmeth || !
ctx->pmeth->decrypt) {
294 if (!
ctx || !
ctx->pmeth || !
ctx->pmeth->decrypt) {
302 return ctx->pmeth->decrypt(
ctx,
out, outlen,
in, inlen);
306 if (!
ctx || !
ctx->pmeth || !
ctx->pmeth->verify_recover) {
315 const uint8_t *sig,
size_t sig_len) {
316 if (!
ctx || !
ctx->pmeth || !
ctx->pmeth->verify_recover) {
324 return ctx->pmeth->verify_recover(
ctx,
out, out_len, sig, sig_len);
328 if (!
ctx || !
ctx->pmeth || !
ctx->pmeth->derive) {
338 if (!
ctx || !
ctx->pmeth ||
339 !(
ctx->pmeth->derive ||
ctx->pmeth->encrypt ||
ctx->pmeth->decrypt) ||
366 if (
ctx->pkey->type != peer->
type) {
397 if (!
ctx || !
ctx->pmeth || !
ctx->pmeth->derive) {
405 return ctx->pmeth->derive(
ctx,
key, out_key_len);
409 if (!
ctx || !
ctx->pmeth || !
ctx->pmeth->keygen) {
418 if (!
ctx || !
ctx->pmeth || !
ctx->pmeth->keygen) {
439 if (!
ctx->pmeth->keygen(
ctx, *out_pkey)) {
448 if (!
ctx || !
ctx->pmeth || !
ctx->pmeth->paramgen) {
457 if (!
ctx || !
ctx->pmeth || !
ctx->pmeth->paramgen) {
478 if (!
ctx->pmeth->paramgen(
ctx, *out_pkey)) {
int EVP_PKEY_keygen(EVP_PKEY_CTX *ctx, EVP_PKEY **out_pkey)
int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, uint8_t *out, size_t *outlen, const uint8_t *in, size_t inlen)
int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, uint8_t *out, size_t *outlen, const uint8_t *in, size_t inlen)
int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx)
#define EVP_R_COMMAND_NOT_SUPPORTED
static const EVP_PKEY_METHOD *const evp_methods[]
void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx)
EVP_PKEY * EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx)
#define EVP_PKEY_OP_PARAMGEN
int EVP_PKEY_sign(EVP_PKEY_CTX *ctx, uint8_t *sig, size_t *sig_len, const uint8_t *digest, size_t digest_len)
#define EVP_PKEY_CTRL_PEER_KEY
#define OPENSSL_PUT_ERROR(library, reason)
#define EVP_PKEY_OP_DERIVE
static const EVP_PKEY_METHOD * evp_pkey_meth_find(int type)
int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, uint8_t *key, size_t *out_key_len)
#define EVP_R_OPERATON_NOT_INITIALIZED
#define EVP_PKEY_OP_UNDEFINED
static void * OPENSSL_memset(void *dst, int c, size_t n)
int EVP_PKEY_keygen_init(EVP_PKEY_CTX *ctx)
EVP_PKEY_CTX * EVP_PKEY_CTX_dup(EVP_PKEY_CTX *ctx)
int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx)
EVP_PKEY_CTX * EVP_PKEY_CTX_new_id(int id, ENGINE *e)
#define ERR_add_error_dataf
int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype, int cmd, int p1, void *p2)
int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx)
#define EVP_R_DIFFERENT_PARAMETERS
const EVP_PKEY_ASN1_METHOD * ameth
int(* init)(EVP_PKEY_CTX *ctx)
#define EVP_PKEY_OP_DECRYPT
int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx)
#define EVP_PKEY_OP_ENCRYPT
int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx)
EVP_PKEY_CTX * EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e)
#define EVP_PKEY_OP_VERIFY
#define EVP_R_UNSUPPORTED_ALGORITHM
int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx)
#define EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE
#define EVP_PKEY_OP_VERIFYRECOVER
#define ed25519_pkey_meth
UniquePtr< SSL_SESSION > ret
int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer)
int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx)
#define EVP_PKEY_missing_parameters
#define EVP_PKEY_OP_KEYGEN
#define EVP_R_NO_OPERATION_SET
#define EVP_R_DIFFERENT_KEY_TYPES
#define EVP_R_INVALID_OPERATION
int EVP_PKEY_verify(EVP_PKEY_CTX *ctx, const uint8_t *sig, size_t sig_len, const uint8_t *digest, size_t digest_len)
int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, uint8_t *out, size_t *out_len, const uint8_t *sig, size_t sig_len)
#define EVP_PKEY_cmp_parameters
static EVP_PKEY_CTX * evp_pkey_ctx_new(EVP_PKEY *pkey, ENGINE *e, int id)
#define ERR_R_MALLOC_FAILURE
int EVP_PKEY_paramgen(EVP_PKEY_CTX *ctx, EVP_PKEY **out_pkey)
grpc
Author(s):
autogenerated on Fri May 16 2025 02:58:19