2013-02-04 21:48:05 +04:00
/* -------------------------------------------------------------------------- */
/* Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs */
/* */
/* Licensed under the Apache License, Version 2.0 (the "License"); you may */
/* not use this file except in compliance with the License. You may obtain */
/* a copy of the License at */
/* */
/* http://www.apache.org/licenses/LICENSE-2.0 */
/* */
/* Unless required by applicable law or agreed to in writing, software */
/* distributed under the License is distributed on an "AS IS" BASIS, */
/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */
/* See the License for the specific language governing permissions and */
/* limitations under the License. */
/* -------------------------------------------------------------------------- */
2013-02-12 15:15:09 +04:00
# ifndef _NEBULA_UTIL_H_
# define _NEBULA_UTIL_H_
2013-02-04 21:48:05 +04:00
# include <string>
2013-11-15 15:58:53 +04:00
# include <vector>
2013-02-04 21:48:05 +04:00
namespace one_util
{
2013-02-09 00:58:34 +04:00
std : : string & toupper ( std : : string & st ) ;
2013-02-04 21:48:05 +04:00
2013-02-09 00:58:34 +04:00
std : : string & tolower ( std : : string & st ) ;
2013-02-04 21:48:05 +04:00
2013-02-09 00:50:40 +04:00
std : : string log_time ( time_t the_time ) ;
2013-02-04 21:48:05 +04:00
2013-02-09 00:58:34 +04:00
std : : string log_time ( ) ;
2013-02-09 19:38:54 +04:00
/**
* sha1 digest
* @ param in the string to be hashed
* @ return sha1 hash of str
*/
std : : string sha1_digest ( const std : : string & in ) ;
/**
* Base 64 encoding
* @ param in the string to encoded
* @ return a pointer to the encoded string ( must be freed ) or 0 in case of
* error
*/
std : : string * base64_encode ( const std : : string & in ) ;
/**
2013-06-27 17:49:23 +04:00
* Base 64 decoding
2013-02-09 19:38:54 +04:00
* @ param in the string to decode
* @ return a pointer to the decoded string ( must be freed ) or 0 in case of
* error
*/
std : : string * base64_decode ( const std : : string & in ) ;
2013-07-05 03:31:30 +04:00
/**
* AES256 encryption
* @ param in the string to encrypt
* @ param password to encrypt data
* @ return a pointer to the encrypted string ( must be freed ) or 0 in case of
* error
*/
std : : string * aes256cbc_encrypt ( const std : : string & in , const std : : string password ) ;
2013-06-27 17:49:23 +04:00
/**
* Creates a random number , using time ( 0 ) as seed , and performs an sha1 hash
* @ return a new random password
*/
std : : string random_password ( ) ;
2013-11-15 15:58:53 +04:00
/**
* Splits a string , using the given delimiter
*
* @ param st string to split
* @ param delim delimiter character
* @ param clean_empty true to clean empty split parts .
* Example for st " a::b:c "
* clean_empty true will return [ " a " , " b " , " c " ]
* clean_empty fase will return [ " a " , " " , " b " , " c " ]
*
* @ return a vector containing the resulting substrings
*/
std : : vector < std : : string > split (
const std : : string & st ,
char delim ,
bool clean_empty = true ) ;
2013-02-07 03:14:25 +04:00
} ;
2013-02-04 21:48:05 +04:00
2013-02-12 15:15:09 +04:00
# endif /* _NEBULA_UTIL_H_ */