
Instantané du code source OpenSSL 1.0.1g, fournissant une bibliothèque SSL/TLS et de cryptographie à usage général avec chiffrements, condensés et gestion des certificats X.509.
OpenSSL 1.0.1g 7 Apr 2014
Copyright (c) 1998-2011 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson Tous droits réservés.
Le projet OpenSSL est un effort collaboratif visant à développer une boîte à outils robuste, de qualité commerciale, complète et open source implémentant les protocoles Secure Sockets Layer (SSL v2/v3) et Transport Layer Security (TLS v1) ainsi qu'une bibliothèque de cryptographie à usage général de grande puissance. Le projet est géré par une communauté mondiale de bénévoles qui utilisent Internet pour communiquer, planifier et développer la boîte à outils OpenSSL et sa documentation associée.
OpenSSL est basé sur l'excellente bibliothèque SSLeay développée par Eric A. Young et Tim J. Hudson. La boîte à outils OpenSSL est sous double licence (licence OpenSSL plus licence SSLeay), ce qui signifie essentiellement que vous êtes libre de l'obtenir et de l'utiliser à des fins commerciales et non commerciales tant que vous remplissez les conditions des deux licences.
La boîte à outils OpenSSL comprend :
libssl.a : Implémentation de SSLv2, SSLv3, TLSv1 et du code requis pour prendre en charge à la fois SSLv2, SSLv3 et TLSv1 dans un seul serveur et client.
libcrypto.a : Chiffrement général et éléments X.509 v1/v3 nécessaires à SSL/TLS mais n'en faisant pas réellement partie logiquement. Il comprend des routines pour ce qui suit :
Chiffrements
libdes - Le package de chiffrement DES EAY's libdes qui circulait
sur le net pendant quelques années, puis a été ré-licencié
par lui dans le cadre de SSLeay. Il comprend 15 'modes/
variations' de DES (versions à 1, 2 et 3 clés de ecb, cbc,
cfb et ofb ; pcbc et une forme plus générale de cfb et ofb)
incluant desx en mode cbc, un crypt(3) rapide, et des
routines pour lire les mots de passe depuis le clavier.
Chiffrement RC4,
Chiffrement RC2 - 4 modes différents, ecb, cbc, cfb et ofb.
Chiffrement Blowfish - 4 modes différents, ecb, cbc, cfb et ofb.
Chiffrement IDEA - 4 modes différents, ecb, cbc, cfb et ofb.
Digests
Algorithmes de message digest MD5 et MD2, implémentations rapides,
Algorithmes de message digest SHA (SHA-0) et SHA-1,
Algorithme de message digest MDC2. Un hachage basé sur DES populaire
sur les cartes à puce.
Clé publique
Chiffrement/déchiffrement/génération RSA.
Il n'y a pas de limite sur le nombre de bits.
Chiffrement/déchiffrement/génération DSA.
Il n'y a pas de limite sur le nombre de bits.
Échange de clés/génération de clés Diffie-Hellman.
Il n'y a pas de limite sur le nombre de bits.
Certificats X.509v3
Encodage/décodage X509 vers/depuis le binaire ASN1 et un encodage
binaire-ASCII basé sur PEM qui supporte le chiffrement avec une
clé privée. Programme pour générer des demandes de certificats
RSA et DSA et pour générer des certificats RSA et DSA.
Systèmes
Les routines d'enveloppe numérique normales et l'encodage base64.
Accès de plus haut niveau aux chiffrements et digests par nom.
De nouveaux chiffrements peuvent être chargés à l'exécution. Le
système d'E/S BIO qui est une abstraction d'E/S simple non bloquante.
Les méthodes actuellement supportées sont les descripteurs de
fichiers, sockets, acceptation de socket, connexion socket, tampon
mémoire, mise en tampon, client/serveur SSL, pointeur de fichier,
chiffrement, digest, test non bloquant et null.
Structures de données
Un système de hachage dynamique
Une pile simple.
Un chargeur de configuration utilisant un format similaire aux
fichiers .ini de MS.
openssl : Un outil en ligne de commande qui peut être utilisé pour : Création de paramètres de clé RSA, DH et DSA Création de certificats X.509, CSR et CRL Calcul de digests de messages Chiffrement et déchiffrement avec des chiffrements Tests client et serveur SSL/TLS Traitement de courrier signé ou chiffré S/MIME
Diverses entreprises détiennent divers brevets pour divers algorithmes dans divers endroits du monde. VOUS êtes responsable de vous assurer que votre utilisation de tout algorithme est légale en vérifiant s'il existe des brevets dans votre pays. Ce fichier contient certains des brevets dont nous avons connaissance ou dont l'existence est présumée. Ce n'est pas une liste définitive.
RSA Security détient des brevets logiciels sur l'algorithme RC5. Si vous avez l'intention d'utiliser ce chiffrement, vous devez contacter RSA Security pour les conditions de licence. Leur page web est http://www.rsasecurity.com/.
RC4 est une marque de commerce de RSA Security, donc l'utilisation de cette étiquette ne devrait peut-être être faite qu'avec la permission de RSA Security.
L'algorithme IDEA est breveté par Ascom en Autriche, France, Allemagne, Italie, Japon, Pays-Bas, Espagne, Suède, Suisse, Royaume-Uni et États-Unis. Ils doivent être contactés si cet algorithme doit être utilisé ; leur page web est http://www.ascom.ch/.
NTT et Mitsubishi ont des brevets et des demandes de brevet en instance sur l'algorithme Camellia, mais en autorisent l'utilisation gratuitement sans exiger d'accord de licence explicite : http://info.isl.ntt.co.jp/crypt/eng/info/chiteki.html
Pour installer ce package sous un dérivé Unix, lisez le fichier INSTALL. Pour une plateforme Win32, lisez le fichier INSTALL.W32. Pour les systèmes OpenVMS, lisez INSTALL.VMS.
Lisez la documentation dans le répertoire doc/. Elle est assez grossière, mais elle liste les fonctions ; vous devrez probablement regarder le code pour comprendre comment les utiliser. Regardez les exemples de programmes.
Pour certaines plateformes, il existe certains problèmes connus qui peuvent affecter l'utilisateur ou l'auteur de l'application. Nous essayons de les rassembler dans doc/PROBLEMS, avec des réflexions actuelles sur la façon dont ils devraient être résolus dans une future version d'OpenSSL.
Voir le site web d'OpenSSL www.openssl.org pour les détails sur la façon d'obtenir un support technique commercial.
Si vous rencontrez des problèmes avec OpenSSL, veuillez d'abord suivre les étapes suivantes :
- Téléchargez la version instantanée actuelle depuis
ftp://ftp.openssl.org/snapshot/ pour voir si le problème a déjà été
résolu
- Supprimez les versions ASM des bibliothèques
- Supprimez les indicateurs d'optimisation du compilateur
Si vous souhaitez signaler un bogue, veuillez inclure les informations suivantes dans tout rapport de bogue :
- Sur les systèmes Unix :
Rapport d'auto-test généré par 'make report'
- Sur les autres systèmes :
Version d'OpenSSL : sortie de 'openssl version -a'
Nom du système d'exploitation, version, plateforme matérielle
Détails du compilateur (nom, version)
- Détails de l'application (nom, version)
- Description du problème (étapes pour reproduire le problème, si connu)
- Trace de la pile (si l'application génère un vidage mémoire)
Signalez le bogue au projet OpenSSL via le Request Tracker (http://www.openssl.org/support/rt.html) par courrier à :
Notez que le request tracker ne doit PAS être utilisé pour l'assistance générale ou les questions de support. Le fait que quelque chose ne fonctionne pas comme vous l'attendez ne signifie pas nécessairement qu'il s'agit d'un bogue dans OpenSSL.
Notez que le courrier à [email protected] est enregistré dans la base de données publique du request tracker et est transmis à une liste de diffusion publique. Les courriers confidentiels peuvent être envoyés à [email protected] (clé PGP disponible sur les serveurs de clés).
Le développement est coordonné sur la liste de diffusion openssl-dev (voir http://www.openssl.org pour les informations sur l'abonnement). Si vous souhaitez soumettre un correctif, envoyez-le à [email protected] avec la chaîne "[PATCH]" dans le sujet. Assurez-vous d'inclure une explication textuelle de ce que fait votre correctif.
Si vous n'êtes pas sûr qu'une fonctionnalité sera utile à la communauté générale d'OpenSSL, veuillez d'abord en discuter sur la liste de diffusion openssl-dev. Quelqu'un pourrait déjà travailler sur la même chose ou il pourrait y avoir une bonne raison pour laquelle cette fonctionnalité n'est pas implémentée.
Les correctifs doivent être aussi récents que possible, de préférence relatifs au Git actuel ou à la dernière version instantanée. Ils doivent suivre le style de codage d'OpenSSL et compiler sans avertissements. Certains des objectifs de développement de l'équipe de base peuvent être utilisés à des fins de test (debug-steve64, debug-geoff, etc.). OpenSSL compile sur de nombreuses plateformes variées : essayez de n'utiliser que des fonctionnalités portables.
Note : Pour des raisons légales, les contributions des États-Unis ne peuvent être acceptées que si une notification TSU et une copie du correctif sont envoyées à [email protected] (anciennement BXA) avec une copie au Coordinateur de demande de chiffrement ENC ; veuillez prendre le temps de consulter http://www.bis.doc.gov/Encryption/PubAvailEncSourceCodeNofify.html [sic] et http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (EAR Section 740.13(e)) pour les détails. Si "votre code source de chiffrement est trop volumineux pour servir de pièce jointe à un courriel", ils sont ravis de le recevoir par fax à la place ; espérons que vous avez un forfait longue distance économique.
Notre format préféré pour les modifications est la sortie "diff -u". Vous pourriez le générer ainsi :