--- rpl/src/rpl.h 2012/12/20 15:32:52 1.191 +++ rpl/src/rpl.h 2013/03/16 11:31:41 1.207 @@ -1,7 +1,7 @@ /* ================================================================================ - RPL/2 (R) version 4.1.12 - Copyright (C) 1989-2012 Dr. BERTRAND Joël + RPL/2 (R) version 4.1.13 + Copyright (C) 1989-2013 Dr. BERTRAND Joël This file is part of RPL/2. @@ -19,7 +19,6 @@ ================================================================================ */ - #ifndef INCLUSION_RPL #define INCLUSION_RPL @@ -65,6 +64,7 @@ #include #include +#include #include #include #include @@ -165,6 +165,40 @@ # include "iconv.h" # include "openssl/evp.h" +# ifndef OPENSSL_NO_MD2 +# include "openssl/md2.h" +# endif +# ifndef OPENSSL_NO_MD4 +# include "openssl/md4.h" +# endif +# ifndef OPENSSL_NO_MD5 +# include "openssl/md5.h" +# endif +# ifndef OPENSSL_NO_MDC2 +# include "openssl/mdc2.h" +# endif +# ifndef OPENSSL_NO_RIPEMD +# include "openssl/ripemd.h" +# endif +# ifndef OPENSSL_NO_SHA +# include "openssl/sha.h" +# endif +# ifndef OPENSSL_NO_WHIRLPOOL +# include "openssl/whrlpool.h" +# endif +# ifndef OPENSSL_NO_AES +# include "openssl/aes.h" +# endif +# ifndef OPENSSL_NO_CAMELLIA +# include "openssl/camellia.h" +# endif +# ifndef OPENSSL_NO_RC2 +# include "openssl/rc2.h" +# endif +# ifndef OPENSSL_NO_IDEA +# include "openssl/idea.h" +# endif + # include "sqlite3.h" # include "sigsegv.h" # ifdef OS2 @@ -745,7 +779,7 @@ pid_t debug_fork(); Erreurs système -------------------------------------------------------------------------------- */ -#define DEBUG_ERREURS + #ifdef DEBUG_ERREURS # ifdef MESSAGES # define __erreur(i) i @@ -929,6 +963,10 @@ pid_t debug_fork(); # define d_ex_mutex_acquis_autre_thread __erreur(86) # define d_ex_expression_reguliere __erreur(87) # define d_ex_instruction_indisponible __erreur(88) +# define d_ex_chiffrement __erreur(89) +# define d_ex_chiffrement_indisponible __erreur(90) +# define d_ex_longueur_clef_chiffrement __erreur(91) +# define d_ex_taille_message __erreur(92) #endif @@ -1451,8 +1489,6 @@ typedef struct liste_pile_systeme { struct liste_pile_systeme *suivant; - struct_liste_chainee *pointeur_objet_retour; - struct_objet *indice_boucle; struct_objet *limite_indice_boucle; struct_objet *objet_de_test; @@ -1508,7 +1544,7 @@ typedef struct liste_pile_systeme unsigned long adresse_retour; unsigned long niveau_courant; - struct_objet *pointeur_adresse_retour; + struct_liste_chainee *pointeur_objet_retour; } struct_liste_pile_systeme; #endif @@ -2424,6 +2460,7 @@ void instruction_ceil(struct_processus * void instruction_centr(struct_processus *s_etat_processus); void instruction_cf(struct_processus *s_etat_processus); void instruction_chr(struct_processus *s_etat_processus); +void instruction_cipher(struct_processus *s_etat_processus); void instruction_clear(struct_processus *s_etat_processus); void instruction_cllcd(struct_processus *s_etat_processus); void instruction_clmf(struct_processus *s_etat_processus); @@ -2484,6 +2521,7 @@ void instruction_detach(struct_processus void instruction_dft(struct_processus *s_etat_processus); void instruction_dgtiz(struct_processus *s_etat_processus); void instruction_diag_fleche(struct_processus *s_etat_processus); +void instruction_digest(struct_processus *s_etat_processus); void instruction_disp(struct_processus *s_etat_processus); void instruction_division(struct_processus *s_etat_processus); void instruction_do(struct_processus *s_etat_processus); @@ -3179,8 +3217,11 @@ unsigned char *analyse_algebrique(struct unsigned char *chaine_algebrique, struct_liste_chainee **l_base_liste); unsigned char *analyse_flux(struct_processus *s_etat_processus, unsigned char *flux, long longueur); -unsigned char *recherche_chemin_fichiers_temporaires(struct_processus - *s_etat_processus); +unsigned char *chiffrement(const EVP_CIPHER *type_chiffrement, + logical1 encodage, unsigned char *message, unsigned int + longueur_message, unsigned char *clef, unsigned int longueur_clef, + unsigned char *vecteur_initialisation, + unsigned int *longueur_message_chiffre); unsigned char *compactage(unsigned char *chaine); unsigned char *conversion_majuscule(unsigned char *chaine); unsigned char *creation_nom_fichier(struct_processus *s_etat_processus, @@ -3193,15 +3234,16 @@ unsigned char *formateur(struct_processu unsigned char *formateur_fichier(struct_processus *s_etat_processus, struct_objet *s_objet, struct_objet *s_format, long longueur, long longueur_champ, unsigned char format, - unsigned char type, long *longueur_effective, long *recursivite); + unsigned char type, long *longueur_effective, long *recursivite, + logical1 export_fichier); unsigned char *formateur_flux(struct_processus *s_etat_processus, unsigned char *donnees, long *longueur); unsigned char *formateur_fichier_nombre(struct_processus *s_etat_processus, void *valeur_numerique, unsigned char type, long longueur, long longueur_champ, unsigned char format); unsigned char *formateur_fichier_binaire_nombre(struct_processus - *s_etat_processus, void *valeur_numerique, unsigned char type, - long longueur, long *longueur_conversion); + *s_etat_processus, void *valeur_numerique, unsigned char type_entree, + unsigned char type, long longueur, long *longueur_conversion); unsigned char *formateur_fichier_reel(struct_processus *s_etat_processus, void *valeur_numerique, unsigned char type, long longueur, long longueur_champ, unsigned char format); @@ -3213,6 +3255,8 @@ unsigned char *messages(struct_processus unsigned char *pointeur_ieme_caractere(struct_processus *s_etat_processus, unsigned char *chaine, integer8 position); unsigned char *purification_chaine(unsigned char *chaine); +unsigned char *recherche_chemin_fichiers_temporaires(struct_processus + *s_etat_processus); unsigned char *reencodage(struct_processus *s_etat_processus, unsigned char *chaine_entree, unsigned char *codage_entree, unsigned char *codage_sortie); @@ -3286,6 +3330,7 @@ logical1 sequenceur_optimise(struct_proc logical1 depassement_addition(integer8 *a, integer8 *b, integer8 *resultat); logical1 depassement_multiplication(integer8 *a, integer8 *b, integer8 *resultat); +logical1 depassement_soustraction(integer8 *a, integer8 *b, integer8 *resultat); logical1 depassement_puissance(integer8 *a, integer8 *b, integer8 *resultat); #ifndef RPLARGS @@ -3418,6 +3463,8 @@ struct_objet *allocation(struct_processu #ifndef RPLARGS struct_objet *formateur_date(struct_processus *s_etat_processus, struct timeval *temps); +struct_objet *lecture_fichier_non_formate(struct_processus *s_etat_processus, + void *argument, integer8 longueur_buffer, logical1 recursivite); struct_objet *lecture_pipe(struct_processus *s_etat_processus, int pipe); struct_objet *parametres_sql(struct_processus *s_etat_processus, struct_objet *s_parametres);