diff options
Diffstat (limited to 'base/crypto/signature_creator_win.cc')
-rw-r--r-- | base/crypto/signature_creator_win.cc | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/base/crypto/signature_creator_win.cc b/base/crypto/signature_creator_win.cc index 651ed7a..78e4964 100644 --- a/base/crypto/signature_creator_win.cc +++ b/base/crypto/signature_creator_win.cc @@ -48,13 +48,17 @@ bool SignatureCreator::Final(std::vector<uint8>* signature) { return false; } - signature->resize(signature_length); - if (!CryptSignHash(hash_object_, AT_SIGNATURE, NULL, 0, &signature->front(), + std::vector<uint8> temp; + temp.resize(signature_length); + if (!CryptSignHash(hash_object_, AT_SIGNATURE, NULL, 0, &temp.front(), &signature_length)) { return false; } - signature->resize(signature_length); + temp.resize(signature_length); + for (size_t i = temp.size(); i > 0; --i) + signature->push_back(temp[i - 1]); + hash_object_ = 0; return true; } |