
Instantánea del código fuente de OpenSSL 1.0.1g, que proporciona una biblioteca criptográfica SSL/TLS y de propósito general con cifrados, resúmenes y manejo de certificados X.509.
OpenSSL 1.0.1g 7 Abr 2014
Copyright (c) 1998-2011 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson Todos los derechos reservados.
El Proyecto OpenSSL es un esfuerzo colaborativo para desarrollar un conjunto de herramientas de código abierto robusto, de grado comercial, completo y con todas las funciones, que implementa los protocolos Secure Sockets Layer (SSL v2/v3) y Transport Layer Security (TLS v1), así como una biblioteca criptográfica de propósito general de gran potencia. El proyecto está gestionado por una comunidad mundial de voluntarios que utilizan Internet para comunicarse, planificar y desarrollar el conjunto de herramientas OpenSSL y su documentación relacionada.
OpenSSL se basa en la excelente biblioteca SSLeay desarrollada por Eric A. Young y Tim J. Hudson. El conjunto de herramientas OpenSSL se distribuye bajo una licencia dual (la licencia OpenSSL más la licencia SSLeay), lo que básicamente significa que usted es libre de obtenerlo y utilizarlo con fines comerciales y no comerciales siempre que cumpla con las condiciones de ambas licencias.
El conjunto de herramientas OpenSSL incluye:
libssl.a: Implementación de SSLv2, SSLv3, TLSv1 y el código necesario para soportar tanto SSLv2, SSLv3 como TLSv1 en un mismo servidor y cliente.
libcrypto.a: Funciones generales de cifrado y X.509 v1/v3 necesarias para SSL/TLS pero que no forman parte lógica del mismo. Incluye rutinas para lo siguiente:
Cifrados
libdes - Paquete de cifrado DES libdes de EAY que circuló por
la red durante algunos años y que luego fue relicenciado
por él como parte de SSLeay. Incluye 15 'modos/variaciones'
de DES (versiones de 1, 2 y 3 claves de ecb, cbc, cfb y ofb;
pcbc y una forma más general de cfb y ofb) incluyendo desx
en modo cbc, un crypt(3) rápido, y rutinas para leer
contraseñas desde el teclado.
Cifrado RC4,
Cifrado RC2 - 4 modos diferentes: ecb, cbc, cfb y ofb.
Cifrado Blowfish - 4 modos diferentes: ecb, cbc, cfb y ofb.
Cifrado IDEA - 4 modos diferentes: ecb, cbc, cfb y ofb.
Resúmenes
Algoritmos de resumen de mensajes MD5 y MD2, implementaciones
rápidas,
Algoritmos de resumen de mensajes SHA (SHA-0) y SHA-1,
Resumen de mensajes MDC2. Un hash basado en DES popular en
tarjetas inteligentes.
Clave pública
Cifrado/descifrado/generación RSA.
No hay límite en el número de bits.
Cifrado/descifrado/generación DSA.
No hay límite en el número de bits.
Intercambio de claves/generación de claves Diffie-Hellman.
No hay límite en el número de bits.
Certificados X.509v3
Codificación/descodificación X509 hacia/desde ASN1 binario y una
codificación ASCII-binaria basada en PEM que soporta cifrado con
una clave privada. Programa para generar solicitudes de certificado
RSA y DSA y para generar certificados RSA y DSA.
Sistemas
Las rutinas normales de envoltura digital y codificación base64.
Acceso de alto nivel a cifrados y resúmenes por nombre. Se pueden
cargar nuevos cifrados en tiempo de ejecución. El sistema de E/S BIO
que es una abstracción de E/S simple no bloqueante. Los métodos
actualmente soportados son descriptores de archivo, sockets,
aceptación de sockets, conexión de sockets, búfer de memoria,
almacenamiento en búfer, cliente/servidor SSL, puntero de archivo,
cifrado, resumen, prueba no bloqueante y nulo.
Estructuras de datos
Un sistema de hashing de crecimiento dinámico
Una pila simple.
Un cargador de configuración que usa un formato similar a los
archivos .ini de MS.
openssl: Una herramienta de línea de comandos que se puede usar para: Creación de parámetros de clave RSA, DH y DSA Creación de certificados X.509, CSR y CRL Cálculo de resúmenes de mensajes Cifrado y descifrado con cifrados Pruebas de cliente y servidor SSL/TLS Manejo de correo firmado o cifrado con S/MIME
Varias empresas poseen varias patentes para varios algoritmos en varios lugares del mundo. USTED es responsable de asegurarse de que el uso de cualquier algoritmo sea legal verificando si existen patentes en su país. El archivo contiene algunas de las patentes que conocemos o de las que se rumorea que existen. Esta no es una lista definitiva.
RSA Security posee patentes de software sobre el algoritmo RC5. Si tiene intención de usar este cifrado, debe contactar a RSA Security para obtener condiciones de licencia. Su página web es http://www.rsasecurity.com/.
RC4 es una marca registrada de RSA Security, por lo que el uso de esta etiqueta quizás solo debería hacerse con el permiso de RSA Security.
El algoritmo IDEA está patentado por Ascom en Austria, Francia, Alemania, Italia, Japón, Países Bajos, España, Suecia, Suiza, Reino Unido y EE. UU. Se debe contactar con ellos si se va a usar ese algoritmo; su página web es http://www.ascom.ch/.
NTT y Mitsubishi tienen patentes y patentes pendientes sobre el algoritmo Camellia, pero permiten su uso sin costo y sin requerir un acuerdo de licencia explícito: http://info.isl.ntt.co.jp/crypt/eng/info/chiteki.html
Para instalar este paquete en un derivado de Unix, lea el archivo INSTALL. Para una plataforma Win32, lea el archivo INSTALL.W32. Para sistemas OpenVMS, lea INSTALL.VMS.
Lea la documentación en el directorio doc/. Es bastante tosca, pero enumera las funciones; probablemente tendrá que mirar el código para averiguar cómo usarlas. Mire los programas de ejemplo.
Para algunas plataformas, hay algunos problemas conocidos que pueden afectar al usuario o al autor de la aplicación. Intentamos recopilarlos en doc/PROBLEMS, con ideas actuales sobre cómo deberían resolverse en un futuro de OpenSSL.
Consulte el sitio web de OpenSSL www.openssl.org para obtener detalles sobre cómo obtener soporte técnico comercial.
Si tiene algún problema con OpenSSL, siga primero los siguientes pasos:
- Descargue la instantánea actual de ftp://ftp.openssl.org/snapshot/
para ver si el problema ya se ha solucionado
- Elimine las versiones ASM de las bibliotecas
- Elimine las banderas de optimización del compilador
Si desea informar de un error, incluya la siguiente información en cualquier informe de error:
- En sistemas Unix:
Informe de autoprueba generado por 'make report'
- En otros sistemas:
Versión de OpenSSL: salida de 'openssl version -a'
Nombre del SO, versión, plataforma de hardware
Detalles del compilador (nombre, versión)
- Detalles de la aplicación (nombre, versión)
- Descripción del problema (pasos que reproducen el problema, si se conocen)
- Traza de pila (si la aplicación vuelca el núcleo)
Reporte el error al proyecto OpenSSL a través del Rastreador de Solicitudes (http://www.openssl.org/support/rt.html) por correo a:
Tenga en cuenta que el rastreador de solicitudes NO debe usarse para asistencia general o consultas de soporte. El hecho de que algo no funcione como espera no significa que sea necesariamente un error en OpenSSL.
Tenga en cuenta que el correo a [email protected] se registra en la base de datos del rastreador de solicitudes de lectura pública y se reenvía a una lista de correo pública. El correo confidencial puede enviarse a [email protected] (clave PGP disponible en los servidores de claves).
El desarrollo se coordina en la lista de correo openssl-dev (consulte http://www.openssl.org para obtener información sobre cómo suscribirse). Si desea enviar un parche, envíelo a [email protected] con la cadena "[PATCH]" en el asunto. Asegúrese de incluir una explicación textual de lo que hace su parche.
Si no está seguro de si una función será útil para la comunidad general de OpenSSL, discútala primero en la lista de correo openssl-dev. Alguien puede estar ya trabajando en lo mismo o puede haber una buena razón por la que esa función no esté implementada.
Los parches deben estar tan actualizados como sea posible, preferiblemente en relación con el Git actual o la última instantánea. Deben seguir el estilo de codificación de OpenSSL y compilar sin advertencias. Algunos de los objetivos de desarrollo del equipo central se pueden utilizar para fines de prueba (debug-steve64, debug-geoff, etc.). OpenSSL se compila en muchas plataformas variadas: intente asegurarse de usar solo características portátiles.
Nota: Por razones legales, las contribuciones desde EE. UU. solo se pueden aceptar si se envía una notificación TSU y una copia del parche a [email protected] (anteriormente BXA) con una copia al Coordinador de Solicitudes de Cifrado ENC; tómese un tiempo para leer http://www.bis.doc.gov/Encryption/PubAvailEncSourceCodeNofify.html [sic] y http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (EAR Sección 740.13(e)) para los detalles. Si "su código fuente de cifrado es demasiado grande para servir como archivo adjunto de correo electrónico", estarán encantados de recibirlo por fax en su lugar; espere tener un plan de larga distancia económico.
Nuestro formato preferido para los cambios es la salida de "diff -u". Podría generarlo así: