Il s'agit d'une très petite démonstration qui montre les choses minimales requises pour un chiffre dans un module de fournisseur OpenSSL 3.0.
Ce fournisseur met en œuvre une version étendue du chiffre de Vigène bien connu, couvrant toute la gamme des valeurs d'octets, pas seulement des caractères alphabétiques. Pour une description de ce chiffre, ainsi que son histoire, voir https://en.wikipedia.org/wiki/vigenère_cipher
Il va sans dire qu'à ce jour, ce chiffre ne doit pas être utilisé dans une situation réelle, mais la mise en œuvre peut être utilisée comme modèle pour que d'autres fournisseurs de chiffre d'affaires puissent commencer. Si vous souhaitez l'utiliser pour de vrai, revenez au XVIe siècle
Une documentation utilisateur détaillée peut être trouvée dans vigenere.md.
Pour terminer le référentiel source, tous les sous-modules GIT doivent également être à jour. La première fois, ils doivent également être initialisés, comme suit:
git submodule update --init
La prochaine fois, --init
peut être ignoré.
La construction de ce fournisseur nécessite un CMake et une chaîne d'outils de construction qu'elle prend en charge.
Configuration simple, pour une installation système d'OpenSSL 3:
cmake -S . -B _build
Si vous avez installé OpenSSL 3 ailleurs, procédez comme suit, avec {path}
remplacé par le répertoire d'une installation OpenSSL 3:
cmake -DCMAKE_PREFIX_PATH={path} -S . -B _build
Pour construire, faites ceci:
cmake --build _build
Le résultat est _build/vigenere.so
ou _build/Debug/vigenere.dll
.
OpenSSL fournit un certain nombre de façons de spécifier où un module peut être trouvé:
Options de ligne de commande pour les sous-communs openssl
pertinents. Plus précisément, les options -provider-path
et -provider
doivent être combinées pour ajouter un autre chemin pour rechercher des modules de fournisseur, et le nom d'un fournisseur à charger.
$ echo " The quick brown fox jumps over the lazy dog "
| openssl enc -provider-path _build -provider vigenere
-e -vigenere -K 0123456789ABCDEF0123456789ABCDEF
| od -tx1
0000000 55 8b aa 87 fa 20 36 52 6c 43 a7 d9 f8 22 3b 0f
0000020 67 92 bd 87 f3 20 3a 5f 74 43 b4 dd ee 1d ed 63
0000040 69 88 65 d3 ea 25 46 0f 65 92 ac 71
0000054
Réf: OpenSSL (1)
La variable d'environnement OPENSSL_MODULES
, qui fonctionne pour tout programme qui relie Libcrypto d'OpenSSL.
$ export OPENSSL_MODULES=_build
$ echo " The quick brown fox jumps over the lazy dog "
| openssl enc -provider vigenere -e -vigenere -K 0123456789ABCDEF0123456789ABCDEF
| od -tx1
0000000 55 8b aa 87 fa 20 36 52 6c 43 a7 d9 f8 22 3b 0f
0000020 67 92 bd 87 f3 20 3a 5f 74 43 b4 dd ee 1d ed 63
0000040 69 88 65 d3 ea 25 46 0f 65 92 ac 71
0000054
Réf: OpenSSL-ENV (7)
Programmatiquement, si vous voulez faire dans votre programme ce que fait -provider-path
dans openssl
Sous-Commands.
Réf: OSSL_PROVIDER (3)