@@ -59,6 +59,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "internal/cryptlib.h"
|
#include "internal/cryptlib.h"
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
|
#include "evp_locl.h"
|
||||||
|
|
||||||
static unsigned char conv_ascii2bin(unsigned char a);
|
static unsigned char conv_ascii2bin(unsigned char a);
|
||||||
#ifndef CHARSET_EBCDIC
|
#ifndef CHARSET_EBCDIC
|
||||||
@@ -140,6 +141,20 @@ static unsigned char conv_ascii2bin(unsigned char a)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
EVP_ENCODE_CTX *EVP_ENCODE_CTX_new(void)
|
||||||
|
{
|
||||||
|
return (EVP_ENCODE_CTX *)OPENSSL_zalloc(sizeof(EVP_ENCODE_CTX));
|
||||||
|
}
|
||||||
|
|
||||||
|
void EVP_ENCODE_CTX_free(EVP_ENCODE_CTX *ctx)
|
||||||
|
{
|
||||||
|
OPENSSL_free(ctx);
|
||||||
|
}
|
||||||
|
int EVP_ENCODE_CTX_num(EVP_ENCODE_CTX *ctx)
|
||||||
|
{
|
||||||
|
return ctx->num;
|
||||||
|
}
|
||||||
|
|
||||||
void EVP_EncodeInit(EVP_ENCODE_CTX *ctx)
|
void EVP_EncodeInit(EVP_ENCODE_CTX *ctx)
|
||||||
{
|
{
|
||||||
ctx->length = 48;
|
ctx->length = 48;
|
||||||
|
@@ -279,3 +279,19 @@ 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,
|
||||||
int en_de);
|
int en_de);
|
||||||
|
|
||||||
|
struct evp_Encode_Ctx_st {
|
||||||
|
/* number saved in a partial encode/decode */
|
||||||
|
int num;
|
||||||
|
/*
|
||||||
|
* The length is either the output line length (in input bytes) or the
|
||||||
|
* shortest input line length that is ok. Once decoding begins, the
|
||||||
|
* length is adjusted up each time a longer line is decoded
|
||||||
|
*/
|
||||||
|
int length;
|
||||||
|
/* data to encode */
|
||||||
|
unsigned char enc_data[80];
|
||||||
|
/* number read on current line */
|
||||||
|
int line_num;
|
||||||
|
int expect_nl;
|
||||||
|
};
|
||||||
|
@@ -447,22 +447,6 @@ struct evp_cipher_ctx_st {
|
|||||||
unsigned char final[EVP_MAX_BLOCK_LENGTH]; /* possible final block */
|
unsigned char final[EVP_MAX_BLOCK_LENGTH]; /* possible final block */
|
||||||
} /* EVP_CIPHER_CTX */ ;
|
} /* EVP_CIPHER_CTX */ ;
|
||||||
|
|
||||||
typedef struct evp_Encode_Ctx_st {
|
|
||||||
/* number saved in a partial encode/decode */
|
|
||||||
int num;
|
|
||||||
/*
|
|
||||||
* The length is either the output line length (in input bytes) or the
|
|
||||||
* shortest input line length that is ok. Once decoding begins, the
|
|
||||||
* length is adjusted up each time a longer line is decoded
|
|
||||||
*/
|
|
||||||
int length;
|
|
||||||
/* data to encode */
|
|
||||||
unsigned char enc_data[80];
|
|
||||||
/* number read on current line */
|
|
||||||
int line_num;
|
|
||||||
int expect_nl;
|
|
||||||
} EVP_ENCODE_CTX;
|
|
||||||
|
|
||||||
/* Password based encryption function */
|
/* Password based encryption function */
|
||||||
typedef int (EVP_PBE_KEYGEN) (EVP_CIPHER_CTX *ctx, const char *pass,
|
typedef int (EVP_PBE_KEYGEN) (EVP_CIPHER_CTX *ctx, const char *pass,
|
||||||
int passlen, ASN1_TYPE *param,
|
int passlen, ASN1_TYPE *param,
|
||||||
@@ -701,6 +685,9 @@ __owur int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type,
|
|||||||
EVP_PKEY **pubk, int npubk);
|
EVP_PKEY **pubk, int npubk);
|
||||||
__owur int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl);
|
__owur int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl);
|
||||||
|
|
||||||
|
EVP_ENCODE_CTX *EVP_ENCODE_CTX_new(void);
|
||||||
|
void EVP_ENCODE_CTX_free(EVP_ENCODE_CTX *ctx);
|
||||||
|
int EVP_ENCODE_CTX_num(EVP_ENCODE_CTX *ctx);
|
||||||
void EVP_EncodeInit(EVP_ENCODE_CTX *ctx);
|
void EVP_EncodeInit(EVP_ENCODE_CTX *ctx);
|
||||||
void EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl,
|
void EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl,
|
||||||
const unsigned char *in, int inl);
|
const unsigned char *in, int inl);
|
||||||
|
@@ -137,6 +137,8 @@ typedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD;
|
|||||||
typedef struct evp_pkey_method_st EVP_PKEY_METHOD;
|
typedef struct evp_pkey_method_st EVP_PKEY_METHOD;
|
||||||
typedef struct evp_pkey_ctx_st EVP_PKEY_CTX;
|
typedef struct evp_pkey_ctx_st EVP_PKEY_CTX;
|
||||||
|
|
||||||
|
typedef struct evp_Encode_Ctx_st EVP_ENCODE_CTX;
|
||||||
|
|
||||||
typedef struct hmac_ctx_st HMAC_CTX;
|
typedef struct hmac_ctx_st HMAC_CTX;
|
||||||
|
|
||||||
typedef struct dh_st DH;
|
typedef struct dh_st DH;
|
||||||
|
Reference in New Issue
Block a user