projects
/
oweals
/
openssl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add an evil cast, because POSIX/SUSv2 define connect(2) require
[oweals/openssl.git]
/
crypto
/
evp
/
p_lib.c
diff --git
a/crypto/evp/p_lib.c
b/crypto/evp/p_lib.c
index dba08525a35ab7b64a34c287e5b65e6c8120ca55..ba95137a20be46c5f9e507d07f0038bc138a4278 100644
(file)
--- a/
crypto/evp/p_lib.c
+++ b/
crypto/evp/p_lib.c
@@
-119,7
+119,7
@@
int EVP_PKEY_copy_parameters(EVP_PKEY *to, EVP_PKEY *from)
if (EVP_PKEY_missing_parameters(from))
{
if (EVP_PKEY_missing_parameters(from))
{
- EVPerr(EVP_F_EVP_PKEY_COPY_PARAMETERS,EVP_R_MISSING_PAR
MA
TERS);
+ EVPerr(EVP_F_EVP_PKEY_COPY_PARAMETERS,EVP_R_MISSING_PAR
AME
TERS);
goto err;
}
#ifndef NO_DSA
goto err;
}
#ifndef NO_DSA
@@
-202,14
+202,21
@@
int EVP_PKEY_assign(EVP_PKEY *pkey, int type, char *key)
pkey->type=EVP_PKEY_type(type);
pkey->save_type=type;
pkey->pkey.ptr=key;
pkey->type=EVP_PKEY_type(type);
pkey->save_type=type;
pkey->pkey.ptr=key;
- return(
1
);
+ return(
key != NULL
);
}
#ifndef NO_RSA
}
#ifndef NO_RSA
-RSA *EVP_PKEY_get_RSA(EVP_PKEY *pkey)
+int EVP_PKEY_rset_RSA(EVP_PKEY *pkey, RSA *key)
+{
+ int ret = EVP_PKEY_assign_RSA(pkey, key);
+ if(ret) CRYPTO_add(&key->references, 1, CRYPTO_LOCK_RSA);
+ return ret;
+}
+
+RSA *EVP_PKEY_rget_RSA(EVP_PKEY *pkey)
{
if(pkey->type != EVP_PKEY_RSA) {
{
if(pkey->type != EVP_PKEY_RSA) {
- EVPerr(EVP_F_EVP_PKEY_GET_RSA, EVP_R_EXPECTING_AN_RSA_KEY);
+ EVPerr(EVP_F_EVP_PKEY_
R
GET_RSA, EVP_R_EXPECTING_AN_RSA_KEY);
return NULL;
}
CRYPTO_add(&pkey->pkey.rsa->references, 1, CRYPTO_LOCK_RSA);
return NULL;
}
CRYPTO_add(&pkey->pkey.rsa->references, 1, CRYPTO_LOCK_RSA);
@@
-218,22
+225,37
@@
RSA *EVP_PKEY_get_RSA(EVP_PKEY *pkey)
#endif
#ifndef NO_DSA
#endif
#ifndef NO_DSA
-DSA *EVP_PKEY_get_DSA(EVP_PKEY *pkey)
+int EVP_PKEY_rset_DSA(EVP_PKEY *pkey, DSA *key)
+{
+ int ret = EVP_PKEY_assign_DSA(pkey, key);
+ if(ret) CRYPTO_add(&key->references, 1, CRYPTO_LOCK_DSA);
+ return ret;
+}
+
+DSA *EVP_PKEY_rget_DSA(EVP_PKEY *pkey)
{
if(pkey->type != EVP_PKEY_DSA) {
{
if(pkey->type != EVP_PKEY_DSA) {
- EVPerr(EVP_F_EVP_PKEY_GET_DSA, EVP_R_EXPECTING_A_DSA_KEY);
+ EVPerr(EVP_F_EVP_PKEY_
R
GET_DSA, EVP_R_EXPECTING_A_DSA_KEY);
return NULL;
}
return NULL;
}
- CRYPTO_add(&pkey->pkey.
r
sa->references, 1, CRYPTO_LOCK_DSA);
+ CRYPTO_add(&pkey->pkey.
d
sa->references, 1, CRYPTO_LOCK_DSA);
return pkey->pkey.dsa;
}
#endif
#ifndef NO_DH
return pkey->pkey.dsa;
}
#endif
#ifndef NO_DH
-DH *EVP_PKEY_get_DH(EVP_PKEY *pkey)
+
+int EVP_PKEY_rset_DH(EVP_PKEY *pkey, DH *key)
+{
+ int ret = EVP_PKEY_assign_DH(pkey, key);
+ if(ret) CRYPTO_add(&key->references, 1, CRYPTO_LOCK_DH);
+ return ret;
+}
+
+DH *EVP_PKEY_rget_DH(EVP_PKEY *pkey)
{
if(pkey->type != EVP_PKEY_DH) {
{
if(pkey->type != EVP_PKEY_DH) {
- EVPerr(EVP_F_EVP_PKEY_GET_DH, EVP_R_EXPECTING_A_DH_KEY);
+ EVPerr(EVP_F_EVP_PKEY_
R
GET_DH, EVP_R_EXPECTING_A_DH_KEY);
return NULL;
}
CRYPTO_add(&pkey->pkey.dh->references, 1, CRYPTO_LOCK_DH);
return NULL;
}
CRYPTO_add(&pkey->pkey.dh->references, 1, CRYPTO_LOCK_DH);
@@
-280,7
+302,7
@@
void EVP_PKEY_free(EVP_PKEY *x)
}
#endif
EVP_PKEY_free_it(x);
}
#endif
EVP_PKEY_free_it(x);
- Free(
(char *)
x);
+ Free(x);
}
static void EVP_PKEY_free_it(EVP_PKEY *x)
}
static void EVP_PKEY_free_it(EVP_PKEY *x)