Merci pour la correction.
=>les fonctions Initialize et Destroy alloue et detruit respectivement l'espace aux objets à utiliser
=> j'ai condensé ce code comme cela juste pour faciliter la copie et la compilation d'un invité
=> la fonction puissance machine est moins efficace que la fonction puissance redefini (pw est de complexité log2(n))
=> concernant la programmation modulaire je l'ai fait(Crypto.h,function.h,etc...) mais j'ai aussi fait un non modulaire pour l'utilisateur(CryptoProject.c) pour qu'il puisse compiler directement
=> pour le cast n'est -il pas faisable en C ? pourquoi dit-on seulement en C++
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 22 janv. 2013 à 17:10
24h est passé: aucun retour. La source sera donc désactivé jusqu'à réaction du/des auteur(s) de la source.
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 21 janv. 2013 à 11:10
Bonjour.
Je rajouterais à tous les arguments précédents (très pertinents):
- Le help qui consiste en plusieurs printf, alors qu'un seul et unique printf suffirait !
- Les fonctions à rallonge (une fonction qui dépasse 50 lignes est très souvent signe de mauvaise conception).
- Les "casts" avant les malloc, qui me font dire qu'un compilateur C++ a été utilisé (au lieu d'un compilateur C). En C, pas besoin de caster avant un malloc. Je rappelle que ce sont deux langages différents et que certains codes réagissent différement si on utilise un compilateur C ou C++.
- Quand on créer un outil de cryptographie et que l'on se veut crédible, on parle de chiffrement/déchiffrement et non de crypter/décrypter (qui montre l'on ne sait pas faire la différence entre, chiffrer, déchiffrer et décrypter, et que l'on ne sait pas non plus que crypter n'existe pas).
- Les "#define A 10" ! On peut directement utilisé 0xA (cela fait partie du langage qui gère, décimal, octal et hexadécimal).
- BooltoInt n'a aucun sens, cela fait aussi partie du langage (transformation implicite d'un int en bool et inversement).
- Les defines __XOR et __toInt sont très discutables (utilité ?).
- Il y a des define identiques dans plusieurs fichiers !?
- Enfin, des fonctions de cryptographie qui ne gèrent pas la réentrance, c'est n'est pas très pratique ! Impossible donc de chiffrer ou déchiffrer plusieurs fichiers en parallèle (dans le cas d'une application multithreadé, puisque les fonctions sont à états).
Enfin, le "copyright" est inacceptable (sur le principe, légalement il ne vaut rien. Niveau crédibilité, je vous invite à ne pas en mettre.). Soit vous acceptez de partagez le code, soit vous ne le partagez pas.
Je vous laisse donc 24h pour faire votre choix (retirer le "copyright" ou retirer la source de ce site).
>> genre l'absence de déclaration des fonctions, obligeant à les implémenter dans l'ordre pour éviter une erreur de compilation
En revanche, ceci n'est pas une erreur. Les fonctions privées sont rarement pré-déclarées, et les mettre dans un certain ordre n'est pas une inélégance, bien au contraire.
yann_lo_san
Messages postés1137Date d'inscriptionlundi 17 novembre 2003StatutMembreDernière intervention23 janvier 201626 21 janv. 2013 à 00:06
Salut,
ATTENTION : grosse fuite de mémoire dans les fonctions qui utilisent :
Initialise(quelquechose); // malloc
return quelquechose; // FIN DE LA FONCTION !!
destroy(quelquechose); // free
comme par exemple : MainCalculOfLiAndRi ou MainCalculInverseOfLiAndRi ou Destroy
ou toutes les autres d'ailleurs...
idem pour la fermeture des fichiers: ReadDataInFile()
open(file);
return;
close(file); // ??? jamais fermé
bye
ctx_man
Messages postés285Date d'inscriptionmardi 28 décembre 2004StatutMembreDernière intervention20 janvier 20133 20 janv. 2013 à 23:18
Je me suis arrêté à la "licence", enfin presque.
Un copyright est obtenu après des démarches officielles dont certaines payantes. Prétendre en avoir un est illégal.
Mettre deux lignes expliquant les droits qu'on à dans le paragraphe "GARANTIE" n'a aucune valeur légale. Et je ne compte même pas les fautes de frappe/orthographe/grammaire ou même de sens.
En revanche, menacer de poursuite sans base légale, je ne suis pas bien sur que ce soit autorisé, et pour un code qui se prétend libre c'est un peu violent comme démarche.
Sans compter que des vrais licences, connues, reconnues, etc... existent, par genre la CC-NC qui correspondrait a peu de chose près a votre charabia.
Sinon, côté code, j'ai vu 2/3 trucs en scrollant vers la zone de commentaire... genre l'absence de déclaration des fonctions, obligeant à les implémenter dans l'ordre pour éviter une erreur de compilation, l'absence totale de commentaire *utiles*, des variables globales dans tous les sens, des bloques de nombres sortis d'on ne sait où, ou encore la réinvention fréquente de la roue (sérieusement, ré-écrire ["http://www.cplusplus.com/reference/cmath/pow/ pow] en moins bien, y'en avait besoin ?)
22 janv. 2013 à 20:01
22 janv. 2013 à 19:59
=>les fonctions Initialize et Destroy alloue et detruit respectivement l'espace aux objets à utiliser
=> j'ai condensé ce code comme cela juste pour faciliter la copie et la compilation d'un invité
=> la fonction puissance machine est moins efficace que la fonction puissance redefini (pw est de complexité log2(n))
=> concernant la programmation modulaire je l'ai fait(Crypto.h,function.h,etc...) mais j'ai aussi fait un non modulaire pour l'utilisateur(CryptoProject.c) pour qu'il puisse compiler directement
=> pour le cast n'est -il pas faisable en C ? pourquoi dit-on seulement en C++
22 janv. 2013 à 17:10
21 janv. 2013 à 11:10
Je rajouterais à tous les arguments précédents (très pertinents):
- Le help qui consiste en plusieurs printf, alors qu'un seul et unique printf suffirait !
- Les fonctions à rallonge (une fonction qui dépasse 50 lignes est très souvent signe de mauvaise conception).
- Les "casts" avant les malloc, qui me font dire qu'un compilateur C++ a été utilisé (au lieu d'un compilateur C). En C, pas besoin de caster avant un malloc. Je rappelle que ce sont deux langages différents et que certains codes réagissent différement si on utilise un compilateur C ou C++.
- Quand on créer un outil de cryptographie et que l'on se veut crédible, on parle de chiffrement/déchiffrement et non de crypter/décrypter (qui montre l'on ne sait pas faire la différence entre, chiffrer, déchiffrer et décrypter, et que l'on ne sait pas non plus que crypter n'existe pas).
- Les "#define A 10" ! On peut directement utilisé 0xA (cela fait partie du langage qui gère, décimal, octal et hexadécimal).
- BooltoInt n'a aucun sens, cela fait aussi partie du langage (transformation implicite d'un int en bool et inversement).
- Les defines __XOR et __toInt sont très discutables (utilité ?).
- Il y a des define identiques dans plusieurs fichiers !?
- Enfin, des fonctions de cryptographie qui ne gèrent pas la réentrance, c'est n'est pas très pratique ! Impossible donc de chiffrer ou déchiffrer plusieurs fichiers en parallèle (dans le cas d'une application multithreadé, puisque les fonctions sont à états).
Enfin, le "copyright" est inacceptable (sur le principe, légalement il ne vaut rien. Niveau crédibilité, je vous invite à ne pas en mettre.). Soit vous acceptez de partagez le code, soit vous ne le partagez pas.
Je vous laisse donc 24h pour faire votre choix (retirer le "copyright" ou retirer la source de ce site).
>> genre l'absence de déclaration des fonctions, obligeant à les implémenter dans l'ordre pour éviter une erreur de compilation
En revanche, ceci n'est pas une erreur. Les fonctions privées sont rarement pré-déclarées, et les mettre dans un certain ordre n'est pas une inélégance, bien au contraire.
21 janv. 2013 à 00:06
ATTENTION : grosse fuite de mémoire dans les fonctions qui utilisent :
Initialise(quelquechose); // malloc
return quelquechose; // FIN DE LA FONCTION !!
destroy(quelquechose); // free
comme par exemple : MainCalculOfLiAndRi ou MainCalculInverseOfLiAndRi ou Destroy
ou toutes les autres d'ailleurs...
idem pour la fermeture des fichiers: ReadDataInFile()
open(file);
return;
close(file); // ??? jamais fermé
bye
20 janv. 2013 à 23:18
Un copyright est obtenu après des démarches officielles dont certaines payantes. Prétendre en avoir un est illégal.
Mettre deux lignes expliquant les droits qu'on à dans le paragraphe "GARANTIE" n'a aucune valeur légale. Et je ne compte même pas les fautes de frappe/orthographe/grammaire ou même de sens.
En revanche, menacer de poursuite sans base légale, je ne suis pas bien sur que ce soit autorisé, et pour un code qui se prétend libre c'est un peu violent comme démarche.
Sans compter que des vrais licences, connues, reconnues, etc... existent, par genre la CC-NC qui correspondrait a peu de chose près a votre charabia.
Sinon, côté code, j'ai vu 2/3 trucs en scrollant vers la zone de commentaire... genre l'absence de déclaration des fonctions, obligeant à les implémenter dans l'ordre pour éviter une erreur de compilation, l'absence totale de commentaire *utiles*, des variables globales dans tous les sens, des bloques de nombres sortis d'on ne sait où, ou encore la réinvention fréquente de la roue (sérieusement, ré-écrire ["http://www.cplusplus.com/reference/cmath/pow/ pow] en moins bien, y'en avait besoin ?)