diff --git a/htdocs/lib/databases/mysql.lib.php b/htdocs/lib/databases/mysql.lib.php index 1957c98d21a..c730177362f 100644 --- a/htdocs/lib/databases/mysql.lib.php +++ b/htdocs/lib/databases/mysql.lib.php @@ -3,7 +3,7 @@ * Copyright (C) 2002-2007 Rodolphe Quiedeville * Copyright (C) 2004-2008 Laurent Destailleur * Copyright (C) 2006 Andre Cianfarani - * Copyright (C) 2005-2007 Regis Houssin + * Copyright (C) 2005-2009 Regis Houssin * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -72,10 +72,10 @@ class DoliDb /** - \brief Ouverture d'une connexion vers le serveur et �ventuellement une database. - \param type Type de base de donn�es (mysql ou pgsql) - \param host Addresse de la base de donn�es - \param user Nom de l'utilisateur autoris� + \brief Ouverture d'une connexion vers le serveur et eventuellement une database. + \param type Type de base de donnees (mysql ou pgsql) + \param host Addresse de la base de donnees + \param user Nom de l'utilisateur autorise \param pass Mot de passe \param name Nom de la database \param port Port of database server @@ -581,7 +581,7 @@ class DoliDb * \param test chaine test * \param resok resultat si test egal * \param resko resultat si test non egal - * \return string chaine format� SQL + * \return string chaine formate SQL */ function ifsql($test,$resok,$resko) { @@ -690,8 +690,8 @@ class DoliDb } /** - \brief R�cup�re l'id gen�r� par le dernier INSERT. - \param tab Nom de la table concern�e par l'insert. Ne sert pas sous MySql mais requis pour compatibilit� avec Postgresql + \brief Recupere l'id genere par le dernier INSERT. + \param tab Nom de la table concernee par l'insert. Ne sert pas sous MySql mais requis pour compatibilite avec Postgresql \return int id */ function last_insert_id($tab) @@ -703,8 +703,58 @@ class DoliDb // Next function are not required. Only minor features use them. //-------------------------------------------------------------- + + /** + * \brief Encrypt sensitive data in database + * \param field Field name to encrypt + * \param cryptType Type of encryption (2: AES (recommended), 1: DES , 0: no encryption) + * \param cryptKey Encryption key + * \return return Field to encrypt if used + */ + function encrypt($field, $cryptType=0, $cryptKey='') + { + $return = $field; + + if ($cryptType && !empty($cryptKey)) + { + if ($cryptType == 2) + { + $return = 'AES_ENCRYPT('.$field.',\''.$cryptKey.'\')'; + } + else if ($cryptType == 1) + { + $return = 'DES_ENCRYPT('.$field.',\''.$cryptKey.'\')'; + } + } - + return $return; + } + + /** + * \brief Decrypt sensitive data in database + * \param field Field name to decrypt + * \param cryptType Type of encryption (2: AES (recommended), 1: DES , 0: no encryption) + * \param cryptKey Encryption key + * \return return Field to decrypt if used + */ + function decrypt($field, $cryptType=0, $cryptKey='') + { + $return = $field; + + if ($cryptType && !empty($cryptKey)) + { + if ($cryptType == 2) + { + $return = 'AES_DECRYPT('.$field.',\''.$cryptKey.'\')'; + } + else if ($cryptType == 1) + { + $return = 'DES_DECRYPT('.$field.',\''.$cryptKey.'\')'; + } + } + + return $return; + } /** \brief Renvoie l'id de la connexion @@ -751,7 +801,7 @@ class DoliDb /** \brief Liste des tables dans une database. \param database Nom de la database - \param table Filtre sur tables � rechercher + \param table Filtre sur tables a rechercher \return array Tableau des tables de la base */ function DDLListTables($database, $table='') @@ -771,19 +821,19 @@ class DoliDb } /** - \brief Cr�e une table + \brief Cree une table \param table Nom de la table \param fields Tableau associatif [nom champ][tableau des descriptions] \param primary_key Nom du champ qui sera la clef primaire \param unique_keys Tableau associatifs Nom de champs qui seront clef unique => valeur - \param fulltext Tableau des Nom de champs qui seront index�s en fulltext - \param key Tableau des champs cl�s noms => valeur + \param fulltext Tableau des Nom de champs qui seront indexes en fulltext + \param key Tableau des champs cles noms => valeur \param type Type de la table \return int <0 si KO, >=0 si OK */ function DDLCreateTable($table,$fields,$primary_key,$type,$unique_keys="",$fulltext_keys="",$keys="") { - // cl�s recherch�es dans le tableau des descriptions (fields) : type,value,attribute,null,default,extra + // cles recherchees dans le tableau des descriptions (fields) : type,value,attribute,null,default,extra // ex. : $fields['rowid'] = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment'); $sql = "create table ".$table."("; $i=0; @@ -847,7 +897,7 @@ class DoliDb } /** - \brief d�crit une table dans une database. + \brief decrit une table dans une database. \param table Nom de la table \param field Optionnel : Nom du champ si l'on veut la desc d'un champ \return resource @@ -865,13 +915,13 @@ class DoliDb * \brief Insert a new field in table * \param table Nom de la table * \param field_name Nom du champ a inserer - * \param field_desc Tableau associatif de description du champ a inserer[nom du parametre][valeur du param�tre] + * \param field_desc Tableau associatif de description du champ a inserer[nom du parametre][valeur du parametre] * \param field_position Optionnel ex.: "after champtruc" * \return int <0 si KO, >0 si OK */ function DDLAddField($table,$field_name,$field_desc,$field_position="") { - // cl�s recherch�es dans le tableau des descriptions (field_desc) : type,value,attribute,null,default,extra + // cles recherchees dans le tableau des descriptions (field_desc) : type,value,attribute,null,default,extra // ex. : $field_desc = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment'); $sql= "ALTER TABLE ".$table." ADD ".$field_name." "; $sql .= $field_desc['type']; @@ -919,8 +969,8 @@ class DoliDb /** \brief Create a user \param dolibarr_main_db_host Ip serveur - \param dolibarr_main_db_user Nom user � cr�er - \param dolibarr_main_db_pass Mot de passe user � cr�er + \param dolibarr_main_db_user Nom user a creer + \param dolibarr_main_db_pass Mot de passe user a creer \param dolibarr_main_db_name Database name where user must be granted \return int <0 si KO, >=0 si OK */ diff --git a/htdocs/lib/databases/mysqli.lib.php b/htdocs/lib/databases/mysqli.lib.php index d07de301158..08f2d5d62e0 100644 --- a/htdocs/lib/databases/mysqli.lib.php +++ b/htdocs/lib/databases/mysqli.lib.php @@ -3,7 +3,7 @@ * Copyright (C) 2002-2005 Rodolphe Quiedeville * Copyright (C) 2004-2008 Laurent Destailleur * Copyright (C) 2006 Andre Cianfarani - * Copyright (C) 2005-2007 Regis Houssin + * Copyright (C) 2005-2009 Regis Houssin * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -465,7 +465,7 @@ class DoliDb { // Si le resultset n'est pas fourni, on prend le dernier utilise sur cette connexion if (! is_object($resultset)) { $resultset=$this->results; } - // Si resultset en est un, on libere la m�moire + // Si resultset en est un, on libere la memoire if (is_object($resultset)) mysqli_free_result($resultset); } @@ -743,6 +743,7 @@ class DoliDb return $return; } + /** * \brief Decrypt sensitive data in database * \param field Field name to decrypt @@ -750,7 +751,7 @@ class DoliDb * \param cryptKey Encryption key * \return return Field to decrypt if used */ - function decrypt($field, $cryptType=2, $cryptKey='') + function decrypt($field, $cryptType=0, $cryptKey='') { $return = $field;