mirror of
https://github.com/openssl/openssl.git
synced 2024-11-27 05:21:51 +08:00
Move some EVP internals to evp_int.h
Move EVP internals to evp_int.h, remove -Ievp hack from crypto/Makefile Reviewed-by: Matt Caswell <matt@openssl.org>
This commit is contained in:
parent
5fe736e5fc
commit
27af42f9ac
@ -7,7 +7,7 @@ TOP= ..
|
|||||||
CC= cc
|
CC= cc
|
||||||
INCLUDE= -I. -I$(TOP) -I../include $(ZLIB_INCLUDE)
|
INCLUDE= -I. -I$(TOP) -I../include $(ZLIB_INCLUDE)
|
||||||
# INCLUDES targets sudbirs!
|
# INCLUDES targets sudbirs!
|
||||||
INCLUDES= -I.. -I../.. -I../modes -I../evp -I../include -I../../include $(ZLIB_INCLUDE)
|
INCLUDES= -I.. -I../.. -I../modes -I../include -I../../include $(ZLIB_INCLUDE)
|
||||||
CFLAG= -g
|
CFLAG= -g
|
||||||
MAKEDEPPROG= makedepend
|
MAKEDEPPROG= makedepend
|
||||||
MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
|
MAKEDEPEND= $(TOP)/util/domd $(TOP) -MD $(MAKEDEPPROG)
|
||||||
|
@ -57,7 +57,7 @@
|
|||||||
#include <openssl/x509v3.h>
|
#include <openssl/x509v3.h>
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
#include <openssl/cmac.h>
|
#include <openssl/cmac.h>
|
||||||
#include "evp_locl.h"
|
#include "internal/evp_int.h"
|
||||||
|
|
||||||
/* The context structure and "key" is simply a CMAC_CTX */
|
/* The context structure and "key" is simply a CMAC_CTX */
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@
|
|||||||
# include <openssl/dsa.h>
|
# include <openssl/dsa.h>
|
||||||
#endif
|
#endif
|
||||||
#include <openssl/objects.h>
|
#include <openssl/objects.h>
|
||||||
#include "evp_locl.h"
|
#include "internal/evp_int.h"
|
||||||
|
|
||||||
/* DH pkey context structure */
|
/* DH pkey context structure */
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@
|
|||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
#include <openssl/bn.h>
|
#include <openssl/bn.h>
|
||||||
#include "evp_locl.h"
|
#include "internal/evp_int.h"
|
||||||
#include "dsa_locl.h"
|
#include "dsa_locl.h"
|
||||||
|
|
||||||
/* DSA pkey context structure */
|
/* DSA pkey context structure */
|
||||||
|
@ -64,7 +64,7 @@
|
|||||||
#include "ec_lcl.h"
|
#include "ec_lcl.h"
|
||||||
#include <openssl/ecdsa.h>
|
#include <openssl/ecdsa.h>
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
#include "evp_locl.h"
|
#include "internal/evp_int.h"
|
||||||
|
|
||||||
/* EC pkey context structure */
|
/* EC pkey context structure */
|
||||||
|
|
||||||
|
@ -261,71 +261,6 @@ const EVP_CIPHER *EVP_##cname##_ecb(void) { return &cname##_ecb; }
|
|||||||
(fl)|EVP_CIPH_FLAG_DEFAULT_ASN1, \
|
(fl)|EVP_CIPH_FLAG_DEFAULT_ASN1, \
|
||||||
cipher##_init_key, NULL, NULL, NULL, NULL)
|
cipher##_init_key, NULL, NULL, NULL, NULL)
|
||||||
|
|
||||||
struct evp_pkey_ctx_st {
|
|
||||||
/* Method associated with this operation */
|
|
||||||
const EVP_PKEY_METHOD *pmeth;
|
|
||||||
/* Engine that implements this method or NULL if builtin */
|
|
||||||
ENGINE *engine;
|
|
||||||
/* Key: may be NULL */
|
|
||||||
EVP_PKEY *pkey;
|
|
||||||
/* Peer key for key agreement, may be NULL */
|
|
||||||
EVP_PKEY *peerkey;
|
|
||||||
/* Actual operation */
|
|
||||||
int operation;
|
|
||||||
/* Algorithm specific data */
|
|
||||||
void *data;
|
|
||||||
/* Application specific data */
|
|
||||||
void *app_data;
|
|
||||||
/* Keygen callback */
|
|
||||||
EVP_PKEY_gen_cb *pkey_gencb;
|
|
||||||
/* implementation specific keygen data */
|
|
||||||
int *keygen_info;
|
|
||||||
int keygen_info_count;
|
|
||||||
} /* EVP_PKEY_CTX */ ;
|
|
||||||
|
|
||||||
#define EVP_PKEY_FLAG_DYNAMIC 1
|
|
||||||
|
|
||||||
struct evp_pkey_method_st {
|
|
||||||
int pkey_id;
|
|
||||||
int flags;
|
|
||||||
int (*init) (EVP_PKEY_CTX *ctx);
|
|
||||||
int (*copy) (EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src);
|
|
||||||
void (*cleanup) (EVP_PKEY_CTX *ctx);
|
|
||||||
int (*paramgen_init) (EVP_PKEY_CTX *ctx);
|
|
||||||
int (*paramgen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey);
|
|
||||||
int (*keygen_init) (EVP_PKEY_CTX *ctx);
|
|
||||||
int (*keygen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey);
|
|
||||||
int (*sign_init) (EVP_PKEY_CTX *ctx);
|
|
||||||
int (*sign) (EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,
|
|
||||||
const unsigned char *tbs, size_t tbslen);
|
|
||||||
int (*verify_init) (EVP_PKEY_CTX *ctx);
|
|
||||||
int (*verify) (EVP_PKEY_CTX *ctx,
|
|
||||||
const unsigned char *sig, size_t siglen,
|
|
||||||
const unsigned char *tbs, size_t tbslen);
|
|
||||||
int (*verify_recover_init) (EVP_PKEY_CTX *ctx);
|
|
||||||
int (*verify_recover) (EVP_PKEY_CTX *ctx,
|
|
||||||
unsigned char *rout, size_t *routlen,
|
|
||||||
const unsigned char *sig, size_t siglen);
|
|
||||||
int (*signctx_init) (EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx);
|
|
||||||
int (*signctx) (EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,
|
|
||||||
EVP_MD_CTX *mctx);
|
|
||||||
int (*verifyctx_init) (EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx);
|
|
||||||
int (*verifyctx) (EVP_PKEY_CTX *ctx, const unsigned char *sig, int siglen,
|
|
||||||
EVP_MD_CTX *mctx);
|
|
||||||
int (*encrypt_init) (EVP_PKEY_CTX *ctx);
|
|
||||||
int (*encrypt) (EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen,
|
|
||||||
const unsigned char *in, size_t inlen);
|
|
||||||
int (*decrypt_init) (EVP_PKEY_CTX *ctx);
|
|
||||||
int (*decrypt) (EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen,
|
|
||||||
const unsigned char *in, size_t inlen);
|
|
||||||
int (*derive_init) (EVP_PKEY_CTX *ctx);
|
|
||||||
int (*derive) (EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen);
|
|
||||||
int (*ctrl) (EVP_PKEY_CTX *ctx, int type, int p1, void *p2);
|
|
||||||
int (*ctrl_str) (EVP_PKEY_CTX *ctx, const char *type, const char *value);
|
|
||||||
} /* EVP_PKEY_METHOD */ ;
|
|
||||||
|
|
||||||
void evp_pkey_set_cb_translate(BN_GENCB *cb, EVP_PKEY_CTX *ctx);
|
|
||||||
|
|
||||||
int PKCS5_v2_PBKDF2_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass,
|
int PKCS5_v2_PBKDF2_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass,
|
||||||
int passlen, ASN1_TYPE *param,
|
int passlen, ASN1_TYPE *param,
|
||||||
const EVP_CIPHER *c, const EVP_MD *md,
|
const EVP_CIPHER *c, const EVP_MD *md,
|
||||||
|
@ -62,7 +62,7 @@
|
|||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
#include <openssl/objects.h>
|
#include <openssl/objects.h>
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
#include "evp_locl.h"
|
#include "internal/evp_int.h"
|
||||||
|
|
||||||
static int do_sigver_init(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,
|
static int do_sigver_init(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx,
|
||||||
const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey,
|
const EVP_MD *type, ENGINE *e, EVP_PKEY *pkey,
|
||||||
|
@ -62,7 +62,7 @@
|
|||||||
#include "cryptlib.h"
|
#include "cryptlib.h"
|
||||||
#include <openssl/objects.h>
|
#include <openssl/objects.h>
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
#include "evp_locl.h"
|
#include "internal/evp_int.h"
|
||||||
|
|
||||||
#define M_check_autoarg(ctx, arg, arglen, err) \
|
#define M_check_autoarg(ctx, arg, arglen, err) \
|
||||||
if (ctx->pmeth->flags & EVP_PKEY_FLAG_AUTOARGLEN) \
|
if (ctx->pmeth->flags & EVP_PKEY_FLAG_AUTOARGLEN) \
|
||||||
|
@ -63,7 +63,7 @@
|
|||||||
#include <openssl/objects.h>
|
#include <openssl/objects.h>
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
#include "internal/bn_int.h"
|
#include "internal/bn_int.h"
|
||||||
#include "evp_locl.h"
|
#include "internal/evp_int.h"
|
||||||
|
|
||||||
int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx)
|
int EVP_PKEY_paramgen_init(EVP_PKEY_CTX *ctx)
|
||||||
{
|
{
|
||||||
|
@ -66,7 +66,7 @@
|
|||||||
# include <openssl/engine.h>
|
# include <openssl/engine.h>
|
||||||
#endif
|
#endif
|
||||||
#include "internal/asn1_int.h"
|
#include "internal/asn1_int.h"
|
||||||
#include "evp_locl.h"
|
#include "internal/evp_int.h"
|
||||||
|
|
||||||
typedef int sk_cmp_fn_type(const char *const *a, const char *const *b);
|
typedef int sk_cmp_fn_type(const char *const *a, const char *const *b);
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@
|
|||||||
#include <openssl/x509v3.h>
|
#include <openssl/x509v3.h>
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
#include <openssl/hmac.h>
|
#include <openssl/hmac.h>
|
||||||
#include "evp_locl.h"
|
#include "internal/evp_int.h"
|
||||||
|
|
||||||
/* HMAC pkey context structure */
|
/* HMAC pkey context structure */
|
||||||
|
|
||||||
|
123
crypto/include/internal/evp_int.h
Normal file
123
crypto/include/internal/evp_int.h
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
/* evp_int.h */
|
||||||
|
/*
|
||||||
|
* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project
|
||||||
|
* 2015.
|
||||||
|
*/
|
||||||
|
/* ====================================================================
|
||||||
|
* Copyright (c) 2015 The OpenSSL Project. All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
* modification, are permitted provided that the following conditions
|
||||||
|
* are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer in
|
||||||
|
* the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
*
|
||||||
|
* 3. All advertising materials mentioning features or use of this
|
||||||
|
* software must display the following acknowledgment:
|
||||||
|
* "This product includes software developed by the OpenSSL Project
|
||||||
|
* for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
|
||||||
|
*
|
||||||
|
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
|
||||||
|
* endorse or promote products derived from this software without
|
||||||
|
* prior written permission. For written permission, please contact
|
||||||
|
* licensing@OpenSSL.org.
|
||||||
|
*
|
||||||
|
* 5. Products derived from this software may not be called "OpenSSL"
|
||||||
|
* nor may "OpenSSL" appear in their names without prior written
|
||||||
|
* permission of the OpenSSL Project.
|
||||||
|
*
|
||||||
|
* 6. Redistributions of any form whatsoever must retain the following
|
||||||
|
* acknowledgment:
|
||||||
|
* "This product includes software developed by the OpenSSL Project
|
||||||
|
* for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
|
||||||
|
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
|
||||||
|
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||||
|
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||||
|
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||||
|
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
* ====================================================================
|
||||||
|
*
|
||||||
|
* This product includes cryptographic software written by Eric Young
|
||||||
|
* (eay@cryptsoft.com). This product includes software written by Tim
|
||||||
|
* Hudson (tjh@cryptsoft.com).
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
struct evp_pkey_ctx_st {
|
||||||
|
/* Method associated with this operation */
|
||||||
|
const EVP_PKEY_METHOD *pmeth;
|
||||||
|
/* Engine that implements this method or NULL if builtin */
|
||||||
|
ENGINE *engine;
|
||||||
|
/* Key: may be NULL */
|
||||||
|
EVP_PKEY *pkey;
|
||||||
|
/* Peer key for key agreement, may be NULL */
|
||||||
|
EVP_PKEY *peerkey;
|
||||||
|
/* Actual operation */
|
||||||
|
int operation;
|
||||||
|
/* Algorithm specific data */
|
||||||
|
void *data;
|
||||||
|
/* Application specific data */
|
||||||
|
void *app_data;
|
||||||
|
/* Keygen callback */
|
||||||
|
EVP_PKEY_gen_cb *pkey_gencb;
|
||||||
|
/* implementation specific keygen data */
|
||||||
|
int *keygen_info;
|
||||||
|
int keygen_info_count;
|
||||||
|
} /* EVP_PKEY_CTX */ ;
|
||||||
|
|
||||||
|
#define EVP_PKEY_FLAG_DYNAMIC 1
|
||||||
|
|
||||||
|
struct evp_pkey_method_st {
|
||||||
|
int pkey_id;
|
||||||
|
int flags;
|
||||||
|
int (*init) (EVP_PKEY_CTX *ctx);
|
||||||
|
int (*copy) (EVP_PKEY_CTX *dst, EVP_PKEY_CTX *src);
|
||||||
|
void (*cleanup) (EVP_PKEY_CTX *ctx);
|
||||||
|
int (*paramgen_init) (EVP_PKEY_CTX *ctx);
|
||||||
|
int (*paramgen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey);
|
||||||
|
int (*keygen_init) (EVP_PKEY_CTX *ctx);
|
||||||
|
int (*keygen) (EVP_PKEY_CTX *ctx, EVP_PKEY *pkey);
|
||||||
|
int (*sign_init) (EVP_PKEY_CTX *ctx);
|
||||||
|
int (*sign) (EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,
|
||||||
|
const unsigned char *tbs, size_t tbslen);
|
||||||
|
int (*verify_init) (EVP_PKEY_CTX *ctx);
|
||||||
|
int (*verify) (EVP_PKEY_CTX *ctx,
|
||||||
|
const unsigned char *sig, size_t siglen,
|
||||||
|
const unsigned char *tbs, size_t tbslen);
|
||||||
|
int (*verify_recover_init) (EVP_PKEY_CTX *ctx);
|
||||||
|
int (*verify_recover) (EVP_PKEY_CTX *ctx,
|
||||||
|
unsigned char *rout, size_t *routlen,
|
||||||
|
const unsigned char *sig, size_t siglen);
|
||||||
|
int (*signctx_init) (EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx);
|
||||||
|
int (*signctx) (EVP_PKEY_CTX *ctx, unsigned char *sig, size_t *siglen,
|
||||||
|
EVP_MD_CTX *mctx);
|
||||||
|
int (*verifyctx_init) (EVP_PKEY_CTX *ctx, EVP_MD_CTX *mctx);
|
||||||
|
int (*verifyctx) (EVP_PKEY_CTX *ctx, const unsigned char *sig, int siglen,
|
||||||
|
EVP_MD_CTX *mctx);
|
||||||
|
int (*encrypt_init) (EVP_PKEY_CTX *ctx);
|
||||||
|
int (*encrypt) (EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen,
|
||||||
|
const unsigned char *in, size_t inlen);
|
||||||
|
int (*decrypt_init) (EVP_PKEY_CTX *ctx);
|
||||||
|
int (*decrypt) (EVP_PKEY_CTX *ctx, unsigned char *out, size_t *outlen,
|
||||||
|
const unsigned char *in, size_t inlen);
|
||||||
|
int (*derive_init) (EVP_PKEY_CTX *ctx);
|
||||||
|
int (*derive) (EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen);
|
||||||
|
int (*ctrl) (EVP_PKEY_CTX *ctx, int type, int p1, void *p2);
|
||||||
|
int (*ctrl_str) (EVP_PKEY_CTX *ctx, const char *type, const char *value);
|
||||||
|
} /* EVP_PKEY_METHOD */ ;
|
||||||
|
|
||||||
|
void evp_pkey_set_cb_translate(BN_GENCB *cb, EVP_PKEY_CTX *ctx);
|
@ -68,7 +68,7 @@
|
|||||||
#ifndef OPENSSL_NO_CMS
|
#ifndef OPENSSL_NO_CMS
|
||||||
# include <openssl/cms.h>
|
# include <openssl/cms.h>
|
||||||
#endif
|
#endif
|
||||||
#include "evp_locl.h"
|
#include "internal/evp_int.h"
|
||||||
#include "rsa_locl.h"
|
#include "rsa_locl.h"
|
||||||
|
|
||||||
/* RSA pkey context structure */
|
/* RSA pkey context structure */
|
||||||
|
Loading…
Reference in New Issue
Block a user