summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-03-26[implem-vhdl] Correction d'un vecteur de testKévin Le Gouguec
2019-03-26[implem-vhdl] Ajout des sources de GaëtanKévin Le Gouguec
2019-03-26Add new directory: add_vhdlGaetan Leplus
2019-03-25Merge branch 'refactor-python-implem'Kévin Le Gouguec
2019-03-25[implem-python] Ajustements dans _tweak_messageKévin Le Gouguec
Hopefully, le résultat est plus clair en construisant le tweak par concaténations progressives.
2019-03-25[implem-python] Retrait de range()s et variables intermédiairesKévin Le Gouguec
2019-03-25[implem-python] Suppression d'une ligne de '#'Kévin Le Gouguec
2019-03-25[implem-python] Construction de _tweak_message par concaténationKévin Le Gouguec
Et petits nettoyages par-ci par-là.
2019-03-25[implem-python] Suppression de variables intermédiairesKévin Le Gouguec
Le code résultant ressemble plus à ce qui est décrit dans les algorithmes 3 et 4.
2019-03-25[implem-python] Simplification de _tweak_tagKévin Le Gouguec
Très similaire à ae_common._tweak_associated_data.
2019-03-25[implem-python] Simplification de _add_tag_jKévin Le Gouguec
2019-03-25[implem-python] Remplacement de _tweak_tag_end par une concaténationKévin Le Gouguec
2019-03-25[implem-python] Ajustements de formeKévin Le Gouguec
2019-03-25[implem-python] Ajout des entêtes manquantsKévin Le Gouguec
2019-03-24[implem-python] Remplacement de _low_part par du "tranchage" natifKévin Le Gouguec
2019-03-24[implem-python] Génération des vecteurs dans une fonctionKévin Le Gouguec
Pour que ce soit plus simple de remplacer la boucle par generate 2 128 generate 1 256 … ce qui prend 6 minutes au lieu de 20 sur ma machine \o/
2019-03-24[implem-python] Réécriture de certains range() dans ae_common.pyKévin Le Gouguec
Et réutilisation de fonctions Python natives.
2019-03-24[implem-python] Réécriture de certains range() dans tbc.pyKévin Le Gouguec
IME, itérer sur un range() est rarement la façon la plus expressive de faire les choses ; les alternatives imposent une structure qui rendent l'intention plus claire. E.g. quand on voit une compréhension, on comprend que l'auteur cherche à filtrer et/ou transformer ce sur quoi il itère. Réutilisation de xor_state(), renommé xor() puisqu'il sert dans plusieurs situations. Séparation de ce xor() et des fonctions communes aux modes authentifiés pour éviter un import circulaire.
2019-03-24[implem-python] Conformité PEP8Kévin Le Gouguec
Surtout la capitalisation des noms de fonction. Retrait des lignes de '#' ; si il y a des séparations à faire, autant ajouter des modules. Correction de _MessageTweak.BLOCK en passant.
2019-03-24[implem-python] Ajustement du script de test PythonKévin Le Gouguec
De sorte à ce qu'on puisse le lancer depuis n'importe quel dossier.
2019-03-24[implem-python] Correction de la documentation de Lilliput-ⅠKévin Le Gouguec
2019-03-24[implem-python] Renommage des modules des modes authentifiésKévin Le Gouguec
On bénéficie déjà de l'espace de nommage "lilliput".
2019-03-23[implem-python] Documentation de Lilliput-Ⅰ et Lilliput-TBCKévin Le Gouguec
Idem, renommage des fonctions privées avec un souligné pour que l'API soit plus simple à comprendre. ⚠ Pas testé, ça prend littéralement 20 minutes à l'implémentation Python de générer les vecteurs de test, et c'est l'heure du dodo…
2019-03-23[implem-python] Documentation du mode authentifié Lilliput-ⅡKévin Le Gouguec
Ajout d'un souligné devant les fonctions privées ; de cette façon, >>> from lilliput import lilliput_ae_1 >>> help(lilliput_ae_1) … ne montre que les fonctions "publiques", i.e. celles que l'utilisateur est censé appeler.
2019-03-23[implem-python] Accélération du test d'implémentation PythonKévin Le Gouguec
Idéalement, il faudrait rajouter les bonnes dépendances dans le Makefile…
2019-03-23[implem-python] Documentation du paquet "lilliput"Kévin Le Gouguec
2019-03-23Clarification mineure sur le script de livraison des implemsKévin Le Gouguec
2019-03-23[implem-python] Intégration à la soumission (suite et fin)Kévin Le Gouguec
En plus du paquet Python "lilliput", chaque dossier embarque - un script "genkat_aead.py" qui génère les vecteurs de test via l'API du module "crypto_aead", - un module "crypto_aead" servant de point d'entrée générique, - un module "parameters", qui permet à crypto_aead d'instancier Lilliput-AE avec le bon mode et la bonne taille de clé. Livraison dans ./crypto_aead sans se soucier de l'arborescence du dépôt, par homogénéité avec make-package.sh. Quelques ajustement dans genkat_aead.py pour que le lien avec genkat_aead.c soit plus évident.
2019-03-22[WIP][implem-python] Intégration à la soumissionKévin Le Gouguec
2019-03-22[implem-python] Déplacement dans le dossier SOUMISSION_NISTKévin Le Gouguec
Et ajout d'un métascript pour vérifier la conformité. Il ne reste plus qu'à… (bis)
2019-03-22Ajout de traces pour le déchiffrement AEKévin Le Gouguec
Pour aider l'implémentation matérielle.
2019-03-22[implem-python] Création de la surcouche "crypto_aead"Kévin Le Gouguec
Il ne reste plus qu'à générer les dossiers lilliputae*/add_python et les fichiers parameters.py correspondants, et on peut ajouter le tout à l'archive à soumettre au NIST.
2019-03-22[implem-python] Création d'un paquet "lilliput"Kévin Le Gouguec
2019-03-22[implem-python] Renommage du module TBCKévin Le Gouguec
Quand le tout sera packagé sous le namespace "lilliput", le préfixe alourdira plus qu'autre chose.
2019-03-22Simplification et documentation de pad10*Kévin Le Gouguec
Pas besoin de la condition. Ajout d'un exemple.
2019-03-21[implem-python] Simplification de pad10*Kévin Le Gouguec
Dans le cadre d'une croisade contre les range(len(…)). Suppression d'un paramètre inutile dans la foulée.
2019-03-21[implem-python] Utilisation des divisions entières //Kévin Le Gouguec
Plutôt que int() ; moins de bruit. … Au passage, simplification (j'espère) de ArrayToBlockbytesMatrix() : - pas besoin d'initialiser la matrice à zéro ; suffit d'ajouter les octets et les blocs comme ils viennent, - AFAICT, int((length + (BLOCK_BYTES - (length % BLOCK_BYTES))) / BLOCK_BYTES) quand length % BLOCK_BYTES > 0, c'est juste une façon compliquée d'écrire int(length/BLOCK_BYTES) + 1
2019-03-21[implem-python] Nettoyage PEP8Kévin Le Gouguec
- espaces avant ':' - espaces en trop après ',' - parenthèses dans les if - levée d'exception plutôt que 'return None' implicite Simplification de genkat_aead.py grâce à l'exception levée par le module.
2019-03-21[implem-python] Simplification d'une compréhensionKévin Le Gouguec
2019-03-21[implem-python] Correction d'une typoKévin Le Gouguec
2019-03-21[implem-python] Ajustement de l'API externeKévin Le Gouguec
Utilisation d'une enum, pour que les valeurs possibles soient explicites. Renommage des points d'entrée pour qu'ils soient uniformes et interchangeables. Transformation du tag en liste plus bas pour que lilliput.py ne se soucie pas des détails d'implémentation des fonctions en-dessous.
2019-03-21[implem-python] Correction d'un bug sur un chemin d'erreurKévin Le Gouguec
2019-03-21[implem-python] Retrait des constantes globalesKévin Le Gouguec
Et des fonctions d'initialisation. Et d'une fonction non-utilisée dans le mode SCT-2.
2019-03-21[implem-python] Retrait de A_BITS/M_BITS (2/2)Kévin Le Gouguec
2019-03-21[implem-python] Gestion de l'échec de déchiffrement dans genkat_aeadKévin Le Gouguec
Ce serait mieux si l'API renvoyait une exception… Un jour.
2019-03-21[implem-python] Retrait de A_BITS/M_BITS (1.5/2)Kévin Le Gouguec
2019-03-21[implem-python] Extraction de fonctions communes aux deux modesKévin Le Gouguec
2019-03-21[implem-python] Retrait de A_BITS/M_BITS (1.1/2)Kévin Le Gouguec
2019-03-21[implem-python] Suppression d'affectations redondantesKévin Le Gouguec
Aurais dû les enlever dans 23d2fea280302c01a818e46e4a43c884eac03865.
2019-03-21[implem-python] Retrait de A_BITS/M_BITS (1/2)Kévin Le Gouguec
En passant : - remplacement de paramètres 0/1 par des booléens/des enums (pour TweakMessage en particulier, ça simplifie pas mal la logique) - construction de M (resp. C pour le déchiffrement) au fur et à mesure, i.e. avec des listes vides, plutôt qu'en pré-allouant des tableaux potentiellement trop gros en cas de padding