X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=sha1.cc;h=c7b71126daf03bc17d123e834f320938aea6ffd2;hb=58a0d3f8749111c15e9afa9d929016d65ed32250;hp=7a9c0fb52a377f27b5a747b9eb1223902ba645b9;hpb=25b6639fb1783e0061affa177e6d6d2131c457f5;p=cumulus.git diff --git a/sha1.cc b/sha1.cc index 7a9c0fb..c7b7112 100644 --- a/sha1.cc +++ b/sha1.cc @@ -33,6 +33,10 @@ #include #include +#include + +using std::string; + /* SWAP does an endian swap on architectures that are little-endian, as SHA1 needs some data in a big-endian form. */ #define SWAP(n) htonl(n) @@ -349,3 +353,19 @@ const uint8_t *SHA1Checksum::checksum() sha1_finish_ctx(&ctx, resbuf); return (const uint8_t *)resbuf; } + +string SHA1Checksum::checksum_str() +{ + uint8_t resbuf[20]; + char hexbuf[4]; + string result = "sha1="; + + sha1_finish_ctx(&ctx, resbuf); + + for (int i = 0; i < 20; i++) { + sprintf(hexbuf, "%02x", resbuf[i]); + result += hexbuf; + } + + return result; +}