From eb6898f5cebb6beb4b4a43ead45ac27328607e34 Mon Sep 17 00:00:00 2001 From: Arthur Britto Date: Tue, 12 Jun 2012 23:00:24 -0700 Subject: [PATCH] Add unhex and string vs vector utils. --- src/utils.cpp | 36 ++++++++++++++++++++++++++++++++++++ src/utils.h | 5 +++++ 2 files changed, 41 insertions(+) diff --git a/src/utils.cpp b/src/utils.cpp index ffe4406183..dc589ccbaf 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -55,6 +55,42 @@ void strUnHex(std::string& strDst, const std::string& strSrc) strDst[i] = (charUnHex(strSrc[i*2]) << 4) | charUnHex(strSrc[i*2+1]); } +std::vector strUnHex(const std::string& strSrc) +{ + std::string strTmp; + + strUnHex(strTmp, strSrc); + + return strCopy(strTmp); +} + +// +// Misc string +// + +std::vector strCopy(const std::string& strSrc) +{ + std::vector vucDst; + + vucDst.resize(strSrc.size()); + + std::copy(strSrc.begin(), strSrc.end(), vucDst.begin()); + + return vucDst; +} + +std::string strCopy(const std::vector& vucSrc) +{ + std::string strDst; + + strDst.resize(vucSrc.size()); + + std::copy(vucSrc.begin(), vucSrc.end(), strDst.begin()); + + return strDst; + +} + // // DH support // diff --git a/src/utils.h b/src/utils.h index 721fbff879..7e9ed308cc 100644 --- a/src/utils.h +++ b/src/utils.h @@ -89,6 +89,11 @@ bool isZero(Iterator first, int iSize) int charUnHex(char cDigit); void strUnHex(std::string& strDst, const std::string& strSrc); +std::vector strUnHex(const std::string& strSrc); + +std::vector strCopy(const std::string& strSrc); +std::string strCopy(const std::vector& vucSrc); + DH* DH_der_load(const std::string& strDer); DH* DH_der_load_hex(const std::string& strDer); void DH_der_gen(std::string& strDer, int iKeyLength);