List Info

Thread: OpenSSL: openssl/crypto/dh/ dh_pmeth.c openssl/crypto/dsa/ dsa_p...




OpenSSL: openssl/crypto/dh/ dh_pmeth.c openssl/crypto/dsa/ dsa_p...
user name
2006-04-13 12:56:41
  OpenSSL CVS Repository
  http://cvs.openssl.org/
 
____________________________________________________________
________________

  Server: cvs.openssl.org                  Name:   Dr.
Stephen Henson
  Root:   /v/openssl/cvs                   Email:  steveopenssl.org
  Module: openssl                          Date:  
13-Apr-2006 14:56:41
  Branch: HEAD                             Handle:
2006041313563902

  Modified files:
    openssl/crypto/dh       dh_pmeth.c
    openssl/crypto/dsa      dsa_pmeth.c
    openssl/crypto/evp      evp.h evp_err.c evp_locl.h
pmeth_fn.c pmeth_lib.c
    openssl/crypto/rsa      rsa_pmeth.c

  Log:
    Add key derivation support.

  Summary:
    Revision    Changes     Path
    1.3         +2  -0      openssl/crypto/dh/dh_pmeth.c
    1.3         +2  -0      openssl/crypto/dsa/dsa_pmeth.c
    1.140       +2  -0      openssl/crypto/evp/evp.h
    1.36        +2  -0      openssl/crypto/evp/evp_err.c
    1.19        +5  -0      openssl/crypto/evp/evp_locl.h
    1.5         +35 -0      openssl/crypto/evp/pmeth_fn.c
    1.13        +1  -0      openssl/crypto/evp/pmeth_lib.c
    1.18        +2  -0      openssl/crypto/rsa/rsa_pmeth.c
 
____________________________________________________________
________________

  patch -p0 <<' .'
  Index: openssl/crypto/dh/dh_pmeth.c
 
============================================================
================
  $ cvs diff -u -r1.2 -r1.3 dh_pmeth.c
  --- openssl/crypto/dh/dh_pmeth.c	13 Apr 2006 00:26:05
-0000	1.2
  +++ openssl/crypto/dh/dh_pmeth.c	13 Apr 2006 12:56:39
-0000	1.3
   -209,6 +209,8 
   
   	0,0,
   
  +	0,0,
  +
   	pkey_dh_ctrl,
   	pkey_dh_ctrl_str
   
   .
  patch -p0 <<' .'
  Index: openssl/crypto/dsa/dsa_pmeth.c
 
============================================================
================
  $ cvs diff -u -r1.2 -r1.3 dsa_pmeth.c
  --- openssl/crypto/dsa/dsa_pmeth.c	12 Apr 2006 11:14:11
-0000	1.2
  +++ openssl/crypto/dsa/dsa_pmeth.c	13 Apr 2006 12:56:40
-0000	1.3
   -245,6 +245,8 
   
   	0,0,
   
  +	0,0,
  +
   	pkey_dsa_ctrl,
   	pkey_dsa_ctrl_str
   
   .
  patch -p0 <<' .'
  Index: openssl/crypto/evp/evp.h
 
============================================================
================
  $ cvs diff -u -r1.139 -r1.140 evp.h
  --- openssl/crypto/evp/evp.h	12 Apr 2006 10:20:46
-0000	1.139
  +++ openssl/crypto/evp/evp.h	13 Apr 2006 12:56:40
-0000	1.140
   -1016,6 +1016,8 
   #define EVP_F_EVP_PKEY_DECRYPT				 104
   #define EVP_F_EVP_PKEY_DECRYPT_INIT			 138
   #define EVP_F_EVP_PKEY_DECRYPT_OLD			 151
  +#define EVP_F_EVP_PKEY_DERIVE				 153
  +#define EVP_F_EVP_PKEY_DERIVE_INIT			 154
   #define EVP_F_EVP_PKEY_ENCRYPT				 105
   #define EVP_F_EVP_PKEY_ENCRYPT_INIT			 139
   #define EVP_F_EVP_PKEY_ENCRYPT_OLD			 152
   .
  patch -p0 <<' .'
  Index: openssl/crypto/evp/evp_err.c
 
============================================================
================
  $ cvs diff -u -r1.35 -r1.36 evp_err.c
  --- openssl/crypto/evp/evp_err.c	12 Apr 2006 10:20:46
-0000	1.35
  +++ openssl/crypto/evp/evp_err.c	13 Apr 2006 12:56:40
-0000	1.36
   -95,6 +95,8 
  
{ERR_FUNC(EVP_F_EVP_PKEY_DECRYPT),	"EVP_PKEY_decrypt&
quot;},
  
{ERR_FUNC(EVP_F_EVP_PKEY_DECRYPT_INIT),	"EVP_PKEY_decr
ypt_init"},
  
{ERR_FUNC(EVP_F_EVP_PKEY_DECRYPT_OLD),	"EVP_PKEY_decry
pt_old"},
 
+{ERR_FUNC(EVP_F_EVP_PKEY_DERIVE),	"EVP_PKEY_DERIVE&q
uot;},
 
+{ERR_FUNC(EVP_F_EVP_PKEY_DERIVE_INIT),	"EVP_PKEY_DERI
VE_INIT"},
  
{ERR_FUNC(EVP_F_EVP_PKEY_ENCRYPT),	"EVP_PKEY_encrypt&
quot;},
  
{ERR_FUNC(EVP_F_EVP_PKEY_ENCRYPT_INIT),	"EVP_PKEY_encr
ypt_init"},
  
{ERR_FUNC(EVP_F_EVP_PKEY_ENCRYPT_OLD),	"EVP_PKEY_encry
pt_old"},
   .
  patch -p0 <<' .'
  Index: openssl/crypto/evp/evp_locl.h
 
============================================================
================
  $ cvs diff -u -r1.18 -r1.19 evp_locl.h
  --- openssl/crypto/evp/evp_locl.h	11 Apr 2006 13:28:52
-0000	1.18
  +++ openssl/crypto/evp/evp_locl.h	13 Apr 2006 12:56:40
-0000	1.19
   -241,6 +241,8 
   	const EVP_PKEY_METHOD *pmeth;
   	/* 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 */
   -297,6 +299,9 
   	int (*decrypt)(EVP_PKEY_CTX *ctx, unsigned char *out,
int *outlen,
   					const unsigned char *in, int inlen);
   
  +	int (*derive_init)(EVP_PKEY_CTX *ctx);
  +	int (*derive)(EVP_PKEY_CTX *ctx, unsigned char *key, int
*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);
   
   .
  patch -p0 <<' .'
  Index: openssl/crypto/evp/pmeth_fn.c
 
============================================================
================
  $ cvs diff -u -r1.4 -r1.5 pmeth_fn.c
  --- openssl/crypto/evp/pmeth_fn.c	9 Apr 2006 20:53:19
-0000	1.4
  +++ openssl/crypto/evp/pmeth_fn.c	13 Apr 2006 12:56:40
-0000	1.5
   -243,3 +243,38 
   	return ctx->pmeth->decrypt(ctx, out, outlen, in,
inlen);
   	}
   
  +
  +int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx)
  +	{
  +	int ret;
  +	if (!ctx || !ctx->pmeth || !ctx->pmeth->derive)
  +		{
  +		EVPerr(EVP_F_EVP_PKEY_DERIVE_INIT,
  +			EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE);
  +		return -2;
  +		}
  +	ctx->operation = EVP_PKEY_OP_DERIVE;
  +	if (!ctx->pmeth->derive_init)
  +		return 1;
  +	ret = ctx->pmeth->derive_init(ctx);
  +	if (ret <= 0)
  +		ctx->operation = EVP_PKEY_OP_UNDEFINED;
  +	return ret;
  +	}
  +
  +int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char
*key, int *pkeylen)
  +	{
  +	if (!ctx || !ctx->pmeth || !ctx->pmeth->derive)
  +		{
  +		EVPerr(EVP_F_EVP_PKEY_DERIVE,
  +			EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE);
  +		return -2;
  +		}
  +	if (ctx->operation != EVP_PKEY_OP_DERIVE)
  +		{
  +		EVPerr(EVP_F_EVP_PKEY_DERIVE,
EVP_R_OPERATON_NOT_INITIALIZED);
  +		return -1;
  +		}
  +	return ctx->pmeth->derive(ctx, key, pkeylen);
  +	}
  +
   .
  patch -p0 <<' .'
  Index: openssl/crypto/evp/pmeth_lib.c
 
============================================================
================
  $ cvs diff -u -r1.12 -r1.13 pmeth_lib.c
  --- openssl/crypto/evp/pmeth_lib.c	12 Apr 2006 23:51:24
-0000	1.12
  +++ openssl/crypto/evp/pmeth_lib.c	13 Apr 2006 12:56:40
-0000	1.13
   -120,6 +120,7 
   	ret->pmeth = pmeth;
   	ret->operation = EVP_PKEY_OP_UNDEFINED;
   	ret->pkey = pkey;
  +	ret->peerkey = NULL;
   	if (pkey)
  
		CRYPTO_add(&pkey->references,1,CRYPTO_LOCK_EVP_PKEY
);
   	ret->data = NULL;
   .
  patch -p0 <<' .'
  Index: openssl/crypto/rsa/rsa_pmeth.c
 
============================================================
================
  $ cvs diff -u -r1.17 -r1.18 rsa_pmeth.c
  --- openssl/crypto/rsa/rsa_pmeth.c	12 Apr 2006 10:20:47
-0000	1.17
  +++ openssl/crypto/rsa/rsa_pmeth.c	13 Apr 2006 12:56:41
-0000	1.18
   -524,6 +524,8 
   	0,
   	pkey_rsa_decrypt,
   
  +	0,0,
  +
   	pkey_rsa_ctrl,
   	pkey_rsa_ctrl_str
   
   .
____________________________________________________________
__________
OpenSSL Project                                 http://www.openssl.org
CVS Repository Commit List                    
openssl-cvsopenssl.org
Automated List Manager                          
majordomoopenssl.org
[1]

about | contact  Other archives ( Real Estate discussion Medical topics )