mirror of https://github.com/wolfSSL/wolfssl.git
add EVP_CIPHER_CTX_mode
parent
f60cb08c29
commit
c77a18f0ec
15
src/ssl.c
15
src/ssl.c
|
@ -11107,6 +11107,7 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
|
|||
(type && XSTRNCMP(type, EVP_AES_128_CBC, EVP_AES_SIZE) == 0)) {
|
||||
WOLFSSL_MSG(EVP_AES_128_CBC);
|
||||
ctx->cipherType = AES_128_CBC_TYPE;
|
||||
ctx->flags = WOLFSSL_EVP_CIPH_CBC_MODE;
|
||||
ctx->keyLen = 16;
|
||||
ctx->block_size = AES_BLOCK_SIZE;
|
||||
if (enc == 0 || enc == 1)
|
||||
|
@ -11127,6 +11128,7 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
|
|||
(type && XSTRNCMP(type, EVP_AES_192_CBC, EVP_AES_SIZE) == 0)) {
|
||||
WOLFSSL_MSG(EVP_AES_192_CBC);
|
||||
ctx->cipherType = AES_192_CBC_TYPE;
|
||||
ctx->flags = WOLFSSL_EVP_CIPH_CBC_MODE;
|
||||
ctx->keyLen = 24;
|
||||
ctx->block_size = AES_BLOCK_SIZE;
|
||||
if (enc == 0 || enc == 1)
|
||||
|
@ -11147,6 +11149,7 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
|
|||
(type && XSTRNCMP(type, EVP_AES_256_CBC, EVP_AES_SIZE) == 0)) {
|
||||
WOLFSSL_MSG(EVP_AES_256_CBC);
|
||||
ctx->cipherType = AES_256_CBC_TYPE;
|
||||
ctx->flags = WOLFSSL_EVP_CIPH_CBC_MODE;
|
||||
ctx->keyLen = 32;
|
||||
ctx->block_size = AES_BLOCK_SIZE;
|
||||
if (enc == 0 || enc == 1)
|
||||
|
@ -11168,6 +11171,7 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
|
|||
(type && XSTRNCMP(type, EVP_AES_128_CTR, EVP_AES_SIZE) == 0)) {
|
||||
WOLFSSL_MSG(EVP_AES_128_CTR);
|
||||
ctx->cipherType = AES_128_CTR_TYPE;
|
||||
ctx->flags = WOLFSSL_EVP_CIPH_CTR_MODE;
|
||||
ctx->keyLen = 16;
|
||||
ctx->block_size = AES_BLOCK_SIZE;
|
||||
if (enc == 0 || enc == 1)
|
||||
|
@ -11188,6 +11192,7 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
|
|||
(type && XSTRNCMP(type, EVP_AES_192_CTR, EVP_AES_SIZE) == 0)) {
|
||||
WOLFSSL_MSG(EVP_AES_192_CTR);
|
||||
ctx->cipherType = AES_192_CTR_TYPE;
|
||||
ctx->flags = WOLFSSL_EVP_CIPH_CTR_MODE;
|
||||
ctx->keyLen = 24;
|
||||
ctx->block_size = AES_BLOCK_SIZE;
|
||||
if (enc == 0 || enc == 1)
|
||||
|
@ -11208,6 +11213,7 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
|
|||
(type && XSTRNCMP(type, EVP_AES_256_CTR, EVP_AES_SIZE) == 0)) {
|
||||
WOLFSSL_MSG(EVP_AES_256_CTR);
|
||||
ctx->cipherType = AES_256_CTR_TYPE;
|
||||
ctx->flags = WOLFSSL_EVP_CIPH_CTR_MODE;
|
||||
ctx->keyLen = 32;
|
||||
ctx->block_size = AES_BLOCK_SIZE;
|
||||
if (enc == 0 || enc == 1)
|
||||
|
@ -11229,6 +11235,7 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
|
|||
(type && XSTRNCMP(type, EVP_AES_128_ECB, EVP_AES_SIZE) == 0)) {
|
||||
WOLFSSL_MSG(EVP_AES_128_ECB);
|
||||
ctx->cipherType = AES_128_ECB_TYPE;
|
||||
ctx->flags = WOLFSSL_EVP_CIPH_ECB_MODE;
|
||||
ctx->keyLen = 16;
|
||||
ctx->block_size = AES_BLOCK_SIZE;
|
||||
if (enc == 0 || enc == 1)
|
||||
|
@ -11244,6 +11251,7 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
|
|||
(type && XSTRNCMP(type, EVP_AES_192_ECB, EVP_AES_SIZE) == 0)) {
|
||||
WOLFSSL_MSG(EVP_AES_192_ECB);
|
||||
ctx->cipherType = AES_192_ECB_TYPE;
|
||||
ctx->flags = WOLFSSL_EVP_CIPH_ECB_MODE;
|
||||
ctx->keyLen = 24;
|
||||
ctx->block_size = AES_BLOCK_SIZE;
|
||||
if (enc == 0 || enc == 1)
|
||||
|
@ -11260,6 +11268,7 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
|
|||
(type && XSTRNCMP(type, EVP_AES_256_ECB, EVP_AES_SIZE) == 0)) {
|
||||
WOLFSSL_MSG(EVP_AES_256_ECB);
|
||||
ctx->cipherType = AES_256_ECB_TYPE;
|
||||
ctx->flags = WOLFSSL_EVP_CIPH_ECB_MODE;
|
||||
ctx->keyLen = 32;
|
||||
ctx->block_size = AES_BLOCK_SIZE;
|
||||
if (enc == 0 || enc == 1)
|
||||
|
@ -11278,6 +11287,7 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
|
|||
(type && XSTRNCMP(type, EVP_DES_CBC, EVP_DES_SIZE) == 0)) {
|
||||
WOLFSSL_MSG(EVP_DES_CBC);
|
||||
ctx->cipherType = DES_CBC_TYPE;
|
||||
ctx->flags = WOLFSSL_EVP_CIPH_CBC_MODE;
|
||||
ctx->keyLen = 8;
|
||||
ctx->block_size = DES_BLOCK_SIZE;
|
||||
if (enc == 0 || enc == 1)
|
||||
|
@ -11297,6 +11307,7 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
|
|||
(type && XSTRNCMP(type, EVP_DES_ECB, EVP_DES_SIZE) == 0)) {
|
||||
WOLFSSL_MSG(EVP_DES_ECB);
|
||||
ctx->cipherType = DES_ECB_TYPE;
|
||||
ctx->flags = WOLFSSL_EVP_CIPH_ECB_MODE;
|
||||
ctx->keyLen = 8;
|
||||
ctx->block_size = DES_BLOCK_SIZE;
|
||||
if (enc == 0 || enc == 1)
|
||||
|
@ -11314,6 +11325,7 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
|
|||
XSTRNCMP(type, EVP_DES_EDE3_CBC, EVP_DES_EDE3_SIZE) == 0)) {
|
||||
WOLFSSL_MSG(EVP_DES_EDE3_CBC);
|
||||
ctx->cipherType = DES_EDE3_CBC_TYPE;
|
||||
ctx->flags = WOLFSSL_EVP_CIPH_CBC_MODE;
|
||||
ctx->keyLen = 24;
|
||||
ctx->block_size = DES_BLOCK_SIZE;
|
||||
if (enc == 0 || enc == 1)
|
||||
|
@ -11336,6 +11348,7 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
|
|||
XSTRNCMP(type, EVP_DES_EDE3_ECB, EVP_DES_EDE3_SIZE) == 0)) {
|
||||
WOLFSSL_MSG(EVP_DES_EDE3_ECB);
|
||||
ctx->cipherType = DES_EDE3_ECB_TYPE;
|
||||
ctx->flags = WOLFSSL_EVP_CIPH_ECB_MODE;
|
||||
ctx->keyLen = 24;
|
||||
ctx->block_size = DES_BLOCK_SIZE;
|
||||
if (enc == 0 || enc == 1)
|
||||
|
@ -11353,6 +11366,7 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
|
|||
XSTRNCMP(type, "ARC4", 4) == 0)) {
|
||||
WOLFSSL_MSG("ARC4");
|
||||
ctx->cipherType = ARC4_TYPE;
|
||||
ctx->flags = WOLFSSL_EVP_CIPH_STREAM_CIPHER;
|
||||
if (ctx->keyLen == 0) /* user may have already set */
|
||||
ctx->keyLen = 16; /* default to 128 */
|
||||
if (key)
|
||||
|
@ -11365,6 +11379,7 @@ int wolfSSL_EVP_MD_type(const WOLFSSL_EVP_MD *md)
|
|||
(type && XSTRNCMP(type, EVP_IDEA_CBC, EVP_IDEA_SIZE) == 0)) {
|
||||
WOLFSSL_MSG(EVP_IDEA_CBC);
|
||||
ctx->cipherType = IDEA_CBC_TYPE;
|
||||
ctx->flags = WOLFSSL_EVP_CIPH_CBC_MODE;
|
||||
ctx->keyLen = IDEA_KEY_SIZE;
|
||||
if (enc == 0 || enc == 1)
|
||||
ctx->enc = enc ? 1 : 0;
|
||||
|
|
|
@ -75,6 +75,12 @@ WOLFSSL_API void wolfSSL_EVP_CIPHER_CTX_free(WOLFSSL_EVP_CIPHER_CTX *ctx)
|
|||
}
|
||||
}
|
||||
|
||||
WOLFSSL_API unsigned long wolfSSL_EVP_CIPHER_CTX_mode(const WOLFSSL_EVP_CIPHER_CTX *ctx)
|
||||
{
|
||||
if (ctx == NULL) return 0;
|
||||
return ctx->flags & WOLFSSL_EVP_CIPH_MODE;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wolfSSL_EVP_EncryptFinal(WOLFSSL_EVP_CIPHER_CTX *ctx,
|
||||
unsigned char *out, int *outl)
|
||||
{
|
||||
|
|
|
@ -284,10 +284,20 @@ WOLFSSL_API unsigned long WOLFSSL_EVP_CIPHER_mode(const WOLFSSL_EVP_CIPHER *ciph
|
|||
WOLFSSL_API unsigned long WOLFSSL_CIPHER_mode(const WOLFSSL_EVP_CIPHER *cipher);
|
||||
WOLFSSL_API unsigned long wolfSSL_EVP_CIPHER_flags(const WOLFSSL_EVP_CIPHER *cipher);
|
||||
WOLFSSL_API void wolfSSL_EVP_CIPHER_CTX_set_flags(WOLFSSL_EVP_CIPHER_CTX *ctx, int flags);
|
||||
WOLFSSL_API unsigned long wolfSSL_EVP_CIPHER_CTX_mode(const WOLFSSL_EVP_CIPHER_CTX *ctx);
|
||||
WOLFSSL_API int wolfSSL_EVP_CIPHER_CTX_set_padding(WOLFSSL_EVP_CIPHER_CTX *c, int pad);
|
||||
WOLFSSL_API int wolfSSL_EVP_add_digest(const WOLFSSL_EVP_MD *digest);
|
||||
|
||||
#define WOLFSSL_EVP_CIPH_MODE 0xF0007
|
||||
#define EVP_CIPH_STREAM_CIPHER WOLFSSL_EVP_CIPH_STREAM_CIPHER
|
||||
#define EVP_CIPH_ECB_MODE WOLFSSL_EVP_CIPH_ECB_MODE
|
||||
#define EVP_CIPH_CBC_MODE WOLFSSL_EVP_CIPH_CBC_MODE
|
||||
#define EVP_CIPH_CFB_MODE WOLFSSL_EVP_CIPH_CFB_MODE
|
||||
#define EVP_CIPH_OFB_MODE WOLFSSL_EVP_CIPH_OFB_MODE
|
||||
#define EVP_CIPH_CTR_MODE WOLFSSL_EVP_CIPH_CTR_MODE
|
||||
#define EVP_CIPH_GCM_MODE WOLFSSL_EVP_CIPH_GCM_MODE
|
||||
#define EVP_CIPH_CCM_MODE WOLFSSL_EVP_CIPH_CCM_MODE
|
||||
|
||||
#define WOLFSSL_EVP_CIPH_MODE 0x0007
|
||||
#define WOLFSSL_EVP_CIPH_STREAM_CIPHER 0x0
|
||||
#define WOLFSSL_EVP_CIPH_ECB_MODE 0x1
|
||||
#define WOLFSSL_EVP_CIPH_CBC_MODE 0x2
|
||||
|
@ -298,8 +308,6 @@ WOLFSSL_API int wolfSSL_EVP_add_digest(const WOLFSSL_EVP_MD *digest);
|
|||
#define WOLFSSL_EVP_CIPH_CCM_MODE 0x7
|
||||
#define WOLFSSL_EVP_CIPH_NO_PADDING 0x100
|
||||
|
||||
#define wolfSSL_EVP_CIPHER_CTX_flags(c) wolfSSL_EVP_CIPHER_flags(WOLFSSL_EVP_CIPHER_CTX_cipher(c))
|
||||
|
||||
/* end OpenSSH compat */
|
||||
|
||||
typedef WOLFSSL_EVP_MD EVP_MD;
|
||||
|
@ -360,6 +368,8 @@ typedef WOLFSSL_EVP_CIPHER_CTX EVP_CIPHER_CTX;
|
|||
#define EVP_CIPHER_CTX_iv_length wolfSSL_EVP_CIPHER_CTX_iv_length
|
||||
#define EVP_CIPHER_CTX_key_length wolfSSL_EVP_CIPHER_CTX_key_length
|
||||
#define EVP_CIPHER_CTX_set_key_length wolfSSL_EVP_CIPHER_CTX_set_key_length
|
||||
#define EVP_CIPHER_CTX_mode wolfSSL_EVP_CIPHER_CTX_mode
|
||||
|
||||
#define EVP_CipherInit wolfSSL_EVP_CipherInit
|
||||
#define EVP_CipherInit_ex wolfSSL_EVP_CipherInit_ex
|
||||
#define EVP_EncryptInit wolfSSL_EVP_EncryptInit
|
||||
|
|
Loading…
Reference in New Issue