1 // ANNA - Anna is Not Nothingness Anymore //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
9 #ifndef anna_core_util_Encoder_hpp
10 #define anna_core_util_Encoder_hpp
12 #include <anna/core/RuntimeException.hpp>
13 #include <anna/core//DataBlock.hpp>
14 #include <anna/core/util/defines.hpp>
15 #include <anna/core/util/EncodedData.hpp>
17 #include <anna/core/util/Tokenizer.hpp>
22 Interface generico para codificacion y decodificacion de bloques de memoria. Por ahora
23 solo se aplica el Triple-DES pero es posible que un futuro se pueda selecionar algun otro
34 Codifica el texto recibido como parametro aplicando el algoritmo seleccionado.
35 \param text Texto a codificar.
36 \return Una representacion del texto codificado.
37 \warning El texto codificado incluye el caracter cero, indicador de fin de cadena.
39 const EncodedData& encode(const char* text) throw(RuntimeException) {
40 DataBlock aux(text, anna_strlen(text) + 1, false);
45 Codifica el texto recibido como parametro aplicando el algoritmo seleccionado.
46 \param text Texto a codificar.
47 \return Una representacion del texto codificado.
48 \warning El texto codificado incluye el caracter cero, indicador de fin de cadena.
50 const EncodedData& encode(const std::string& text) throw(RuntimeException) {
51 return encode(text.c_str());
55 Codifica el bloque de memoria recibido como parametro aplicando el algoritmo seleccionado.
56 \param data Bloque de memoria a codificar.
57 \return Una representacion del bloque de memoria codificado.
59 const EncodedData& encode(const DataBlock& data) throw(RuntimeException);
62 Deodifica la representacion de codificacion recibida como parametro.
63 \param data Bloque de memoria a codificar.
64 \return Una representacion del bloque de memoria codificado.
66 \warning Si la representacion corresponde a la codificacion de una cadena con
67 anna::DataBlock::getData obtendremos el contenido original de la cadena.
69 const DataBlock& decode(const EncodedData& data) throw(RuntimeException);
72 Metodo que debe ser invocado al menos una vez.
74 static void initialize() throw();
79 DataBlock& setDataBlock(const DataBlock& other) throw(RuntimeException);