From: Radoslaw Zarzynski Date: Tue, 2 May 2017 15:30:32 +0000 (+0200) Subject: rgw: clean-up rgw::auth::s3::get_v4_signature(). X-Git-Tag: v12.1.0~155^2~21 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0b1d8b0077715f4dbd6a9c1bd01485a34088d979;p=ceph.git rgw: clean-up rgw::auth::s3::get_v4_signature(). Signed-off-by: Radoslaw Zarzynski --- diff --git a/src/rgw/rgw_auth_s3.cc b/src/rgw/rgw_auth_s3.cc index c70e3e72ea95..bb7b00428f2e 100644 --- a/src/rgw/rgw_auth_s3.cc +++ b/src/rgw/rgw_auth_s3.cc @@ -790,24 +790,16 @@ std::string get_v4_signature(CephContext* const cct, const std::array& signing_key, const std::string& string_to_sign) { + /* The server-side generated signature for comparison. */ + const auto signature_k = \ + buf_to_hex(calc_hmac_sha256(signing_key, string_to_sign)); - /* new signature */ - - char signature_k[CEPH_CRYPTO_HMACSHA256_DIGESTSIZE]; - /* FIXME(rzarzynski): eradicate the reinterpret_cast. */ - calc_hmac_sha256(reinterpret_cast(signing_key.data()), CEPH_CRYPTO_HMACSHA256_DIGESTSIZE, - string_to_sign.c_str(), string_to_sign.size(), - signature_k); - - char aux[CEPH_CRYPTO_HMACSHA256_DIGESTSIZE * 2 + 1]; - buf_to_hex((unsigned char *) signature_k, CEPH_CRYPTO_HMACSHA256_DIGESTSIZE, aux); - - ldout(cct, 10) << "signature_k = " << string(aux) << dendl; - - std::string signature = string(aux); - - ldout(cct, 10) << "new signature = " << signature << dendl; + /* FIXME(rzarzynski): we might want to switch the return type from + * std::string to std::array. */ + const std::string signature = \ + std::string(signature_k.data(), signature_k.size() - 1); + ldout(cct, 10) << "generated signature = " << signature << dendl; return signature; }