| Index: crypto/signature_creator.cc
|
| diff --git a/crypto/signature_creator.cc b/crypto/signature_creator.cc
|
| index 6543e63186b777c4bc2745215ad2ae6c84600285..db2f39594711b53626c6d0b52d19168afbf3ea92 100644
|
| --- a/crypto/signature_creator.cc
|
| +++ b/crypto/signature_creator.cc
|
| @@ -27,7 +27,7 @@ const EVP_MD* ToOpenSSLDigest(SignatureCreator::HashAlgorithm hash_alg) {
|
| case SignatureCreator::SHA256:
|
| return EVP_sha256();
|
| }
|
| - return NULL;
|
| + return nullptr;
|
| }
|
|
|
| int ToOpenSSLDigestType(SignatureCreator::HashAlgorithm hash_alg) {
|
| @@ -42,21 +42,26 @@ int ToOpenSSLDigestType(SignatureCreator::HashAlgorithm hash_alg) {
|
|
|
| } // namespace
|
|
|
| +SignatureCreator::~SignatureCreator() {
|
| + EVP_MD_CTX_destroy(sign_context_);
|
| +}
|
| +
|
| // static
|
| -SignatureCreator* SignatureCreator::Create(RSAPrivateKey* key,
|
| - HashAlgorithm hash_alg) {
|
| +std::unique_ptr<SignatureCreator> SignatureCreator::Create(
|
| + RSAPrivateKey* key,
|
| + HashAlgorithm hash_alg) {
|
| OpenSSLErrStackTracer err_tracer(FROM_HERE);
|
| std::unique_ptr<SignatureCreator> result(new SignatureCreator);
|
| const EVP_MD* const digest = ToOpenSSLDigest(hash_alg);
|
| DCHECK(digest);
|
| if (!digest) {
|
| - return NULL;
|
| + return nullptr;
|
| }
|
| - if (!EVP_DigestSignInit(result->sign_context_, NULL, digest, NULL,
|
| + if (!EVP_DigestSignInit(result->sign_context_, nullptr, digest, nullptr,
|
| key->key())) {
|
| - return NULL;
|
| + return nullptr;
|
| }
|
| - return result.release();
|
| + return result;
|
| }
|
|
|
| // static
|
| @@ -80,14 +85,6 @@ bool SignatureCreator::Sign(RSAPrivateKey* key,
|
| return true;
|
| }
|
|
|
| -SignatureCreator::SignatureCreator()
|
| - : sign_context_(EVP_MD_CTX_create()) {
|
| -}
|
| -
|
| -SignatureCreator::~SignatureCreator() {
|
| - EVP_MD_CTX_destroy(sign_context_);
|
| -}
|
| -
|
| bool SignatureCreator::Update(const uint8_t* data_part, int data_part_len) {
|
| OpenSSLErrStackTracer err_tracer(FROM_HERE);
|
| return !!EVP_DigestSignUpdate(sign_context_, data_part, data_part_len);
|
| @@ -98,7 +95,7 @@ bool SignatureCreator::Final(std::vector<uint8_t>* signature) {
|
|
|
| // Determine the maximum length of the signature.
|
| size_t len = 0;
|
| - if (!EVP_DigestSignFinal(sign_context_, NULL, &len)) {
|
| + if (!EVP_DigestSignFinal(sign_context_, nullptr, &len)) {
|
| signature->clear();
|
| return false;
|
| }
|
| @@ -113,4 +110,6 @@ bool SignatureCreator::Final(std::vector<uint8_t>* signature) {
|
| return true;
|
| }
|
|
|
| +SignatureCreator::SignatureCreator() : sign_context_(EVP_MD_CTX_create()) {}
|
| +
|
| } // namespace crypto
|
|
|