summaryrefslogtreecommitdiff
path: root/python
AgeCommit message (Collapse)Author
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-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
2019-03-21[implem-python] Renommage de variablesKévin Le Gouguec
Pour que le lien soit plus facile à faire avec la spec.
2019-03-21[implem-python] Déclaration de "alphas" dans multiplications.pyKévin Le Gouguec
2019-03-21[implem-python] Retrait des variables globales de lilliput_tbcKévin Le Gouguec
On peut tout déduire de len(tweak) / len(key) ; la seule raison d'utiliser autant de constantes en C est que les tableaux se dégradent en pointeurs, donc c'est où les constantes, où une tétrachiée d'arguments.
2019-03-21[implem-python] Dé-duplication de constantesKévin Le Gouguec
2019-03-21[implem-python] Confinement de la gestion des tours au module TBCKévin Le Gouguec
Retrait de quelques variables globales par la même occasion. Renommage de "round" en "i" pour 1) coller à la spec 2) éviter le conflit avec le builtin "round".
2019-03-21[implem-python] Retrait du main commentéKévin Le Gouguec
2019-03-21[implem-python] Ajout de NONCE_BYTES dans constants.pyKévin Le Gouguec
2019-03-21[implem-python] Suppression de paramètres redondantsKévin Le Gouguec
tweak_bits est constant pour un mode donné ; rounds se déduit de la taille de clé.
2019-03-21[implem-python] Suppression de paramètres redondantsKévin Le Gouguec
Création d'un nouveau module "helpers" qui contiendra les fonctions utilisées par les deux modes.
2019-03-21[implem-python] Simplification du contrôle des paramètresKévin Le Gouguec
Encore un peu de duplication sur les longueurs de clés valides. On y travaille.
2019-03-21[implem-python] Passage des clés et nonces par paramètresKévin Le Gouguec
2019-03-14Ajout d'un script pour vérifier l'implémentation PythonKévin Le Gouguec
2019-03-14Correction de la génération du tweak pour ΘCB3Kévin Le Gouguec
L'implémentation de référence se basait sur les indices figurant dans le papier de Deoxys. Deux questions à résoudre, que d'autres se sont sans doute déjà posées : - Est-ce que ce l-1 est normal dans le papier de Deoxys ? - Est-ce que nos changements d'indices sont bien tous corrects ? En tout cas, les implémentations Python et C sont maintenant d'accord.
2019-03-13Changement de la génération du nonce dans lilliput.pyKévin Le Gouguec
Pour correspondre à genkat_aead.c.
2019-03-13Génération de vecteurs Python selon la structure crypto_aeadKévin Le Gouguec
2019-03-13Traduction de genkat_aead.c en PythonKévin Le Gouguec
Et ré-adaptation de l'API de lilliput.py pour simplifier l'interfaçage ; et retrait des print() pour accélérer la génération des vecteurs (qui même comme ça prend 2 bonnes minutes). NB : pour le moment, les vecteurs ne correspondent pas…
2019-03-13Changement de l'API de l'implémentation PythonKévin Le Gouguec
Pour qu'on puisse plus facilement manipuler les entrées/sorties. Pour le moment le round-trip chiffrement/déchiffrement marche. import lilliput message = 'Hello 🌐!' adata = 'Signed: Kévin' for mode in 1,2: for keylen in 128, 192, 256: ct, tag = lilliput.mainEnc(message, adata, mode, keylen) pt = lilliput.mainDec(ct, tag, adata, mode, keylen) assert message == pt
2019-03-13Ajout de l'implémentation Pythonleo