New functions to support opaque EVP_CIPHER_CTX handling.
This commit is contained in:
parent
da5a0e8722
commit
b40228a61d
3 changed files with 22 additions and 0 deletions
4
CHANGES
4
CHANGES
|
@ -73,6 +73,10 @@
|
||||||
|
|
||||||
Changes between 0.9.8a and 0.9.8b [XX xxx XXXX]
|
Changes between 0.9.8a and 0.9.8b [XX xxx XXXX]
|
||||||
|
|
||||||
|
*) New functions EVP_CIPHER_CTX_new() and EVP_CIPHER_CTX_free() to support
|
||||||
|
opaque EVP_CIPHER_CTX handling.
|
||||||
|
[Steve Henson]
|
||||||
|
|
||||||
*) Several fixes and enhancements to the OID generation code. The old code
|
*) Several fixes and enhancements to the OID generation code. The old code
|
||||||
sometimes allowed invalid OIDs (1.X for X >= 40 for example), couldn't
|
sometimes allowed invalid OIDs (1.X for X >= 40 for example), couldn't
|
||||||
handle numbers larger than ULONG_MAX, truncated printing and had a
|
handle numbers larger than ULONG_MAX, truncated printing and had a
|
||||||
|
|
|
@ -580,6 +580,8 @@ int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n);
|
||||||
|
|
||||||
void EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *a);
|
void EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *a);
|
||||||
int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *a);
|
int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *a);
|
||||||
|
EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void);
|
||||||
|
void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *a);
|
||||||
int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen);
|
int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen);
|
||||||
int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *c, int pad);
|
int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *c, int pad);
|
||||||
int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr);
|
int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr);
|
||||||
|
|
|
@ -74,6 +74,13 @@ void EVP_CIPHER_CTX_init(EVP_CIPHER_CTX *ctx)
|
||||||
/* ctx->cipher=NULL; */
|
/* ctx->cipher=NULL; */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void)
|
||||||
|
{
|
||||||
|
EVP_CIPHER_CTX *ctx=OPENSSL_malloc(sizeof *ctx);
|
||||||
|
if (ctx)
|
||||||
|
EVP_CIPHER_CTX_init(ctx);
|
||||||
|
return ctx;
|
||||||
|
}
|
||||||
|
|
||||||
int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
|
int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
|
||||||
const unsigned char *key, const unsigned char *iv, int enc)
|
const unsigned char *key, const unsigned char *iv, int enc)
|
||||||
|
@ -472,6 +479,15 @@ int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl)
|
||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *ctx)
|
||||||
|
{
|
||||||
|
if (ctx)
|
||||||
|
{
|
||||||
|
EVP_CIPHER_CTX_cleanup(ctx);
|
||||||
|
OPENSSL_free(ctx);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *c)
|
int EVP_CIPHER_CTX_cleanup(EVP_CIPHER_CTX *c)
|
||||||
{
|
{
|
||||||
if (c->cipher != NULL)
|
if (c->cipher != NULL)
|
||||||
|
|
Loading…
Reference in a new issue