El sistema Linux OpenSSL es un conjunto de sistemas de bibliotecas de contraseñas, por lo que el sistema Linux utilizará OpenSSL para agregar un algoritmo de cifrado a OpenSSL. Este artículo presentará las habilidades de Linux para agregar un algoritmo de cifrado personalizado a OpenSSL.
I. Introducción
Este artículo presenta el algoritmo personalizado EVP_ssf33 como ejemplo para introducir el método de agregar un algoritmo de cifrado personalizado en OpenSSL
II. Pasos
1, modificado cripto /objeto /objects.txt, el algoritmo de registro de OID, de la siguiente manera:
RSADSI 3 255: SSF33: ssf33
2, introduzca el directorio: cripto /objeto /, ejecute el siguiente comando , algoritmo de generación de declaración
Perl objects.pl objects.txt obj_mac.num obj_mac.h
3, añadido en e_ssf33.c crypto /EVP /a, como sigue
#include "stdio.h"
# include y " cryptlib.h y "
#ifndef OPENSSL_NO_RC4
# include "openssl /evp.h"
#include 《openssl /objects.h》
#include 《openssl /rc4.h》
/* FIXME: seguramente esto está disponible en otro lugar? * /
#define EVP_SSF33_KEY_SIZE 16
typedef struct
{
ks RC4_KEY; /* trabajar tecla * /
} EVP_SSF33_KEY;
#define datos (CTX) ((EVP_SSF33_KEY *) (CTX) - "cipher_data)
estática ssf33_init_key int (* EVP_CIPHER_CTX CTX, const char key *, const unsigned char * iv , int enc);
int ssf33_cipher (EVP_CIPHER_CTX * ctx, unsigned char * estática a cabo, unsigned char const * en, unsigned int inl);
const estático EVP_CIPHER ssf33_evp_cipher =
{
NID_ssf33, España
1, España
EVP_SSF33_KEY_SIZE, España
0, España
EVP_CIPH_VARIABLE_LENGTH, España
ssf33_init_key ,
ssf33_cipher,
NULL,
sizeof (EVP_SSF33_KEY),
NULL,
NULL,
NULL,
NULL
};
const EVP_CIPHER * EVP_ssf33 (void)
{
retorno (&ssf33_evp_cipher);
}
static int ssf33_init_key (EVP_CIPHER_CTX * CTX, const unsigned char * clave, const unsigned char * iv, int ENC)
{
RC4_set_key (&datos (CTX) - "ks, EVP_CIPHER_CTX_key_length (CTX), clave);
return 1;
}
static int ssf33_cipher (EVP_CIPHER_CTX * CTX, unsigned char * a cabo, const unsigned char * en, int sin signo INL)
{
RC4 (&datos (CTX) - 》 Ks, inl, in, out);
return 1;
}
#endif Anterior12Siguiente Total 2 Páginas
rhel es el sistema Linux de Red Hat, y yum es el administrador de paquetes front-en
OpenMP es un lenguaje de programación multiproceso y multiprocesador que puede ser compatible con mú
La mayoría de los sistemas Linux tienen su propia función de protector de pantalla, mientras que una
OpenWRT es un sistema Linux incorporado. Los amigos que quieren entender los sistem
¿Cuál es mejor para las herramientas de compresión de Linux gzip y pigz?
Cómo instalar y configurar Salt
Error de inicio del disco de Ubuntu U ERROR DE EMBRAGUE cómo hacerlo?
El comando crontab de Linux usa el resumen de instancia
¿Cómo resolver el error al modificar la configuración regional en el sistema Ubuntu?
Cómo usar el comando para administrar archivos en el sistema Linux
Cómo limpiar regularmente los registros Nginx en el sistema Linux
Cómo importar archivos desde un contenedor Docker al host
Instalación del sistema CentOS utilizando el método Subversion
¿Cómo enlazar el proceso de la CPU en Ubuntu?
El sistema Windows 8 no será reconstruido como nueva cola
Microsoft empuja KB3081455 actualización acumulativa para Win10
WinXP para jugar Sword Spirit para reducir el método de tasa de caída
El sistema Win7 usa la función de dibujo para eliminar el método de marca de agua de imagen
El dispositivo de escritorio del sistema win7 no puede mostrar la solución.
El sistema Windows7 no puede cambiar el protector de pantalla cómo resolver
Preguntas frecuentes sobre el vocabulario de clasificación de métodos de entrada de Baidu