diff --git a/crypto/ec_signature_creator_openssl.cc b/crypto/ec_signature_creator_openssl.cc
index adff2c9d..91e8a6a8 100644
--- a/crypto/ec_signature_creator_openssl.cc
+++ b/crypto/ec_signature_creator_openssl.cc
@@ -17,12 +17,6 @@
 
 namespace crypto {
 
-namespace {
-
-typedef ScopedOpenSSL<ECDSA_SIG, ECDSA_SIG_free>::Type ScopedECDSA_SIG;
-
-}  // namespace
-
 ECSignatureCreatorImpl::ECSignatureCreatorImpl(ECPrivateKey* key)
     : key_(key), signature_len_(0) {
   EnsureOpenSSLInit();
diff --git a/crypto/hmac_openssl.cc b/crypto/hmac_openssl.cc
index 46bfbaef..92eea19d 100644
--- a/crypto/hmac_openssl.cc
+++ b/crypto/hmac_openssl.cc
@@ -54,7 +54,7 @@
   DCHECK(!plat_->key.empty());  // Init must be called before Sign.
 
   ScopedOpenSSLSafeSizeBuffer<EVP_MAX_MD_SIZE> result(digest, digest_length);
-  return ::HMAC(hash_alg_ == SHA1 ? EVP_sha1() : EVP_sha256(),
+  return !!::HMAC(hash_alg_ == SHA1 ? EVP_sha1() : EVP_sha256(),
                 &plat_->key[0], plat_->key.size(),
                 reinterpret_cast<const unsigned char*>(data.data()),
                 data.size(),
diff --git a/crypto/signature_creator_openssl.cc b/crypto/signature_creator_openssl.cc
index 51cb3c3e..7a1349b5 100644
--- a/crypto/signature_creator_openssl.cc
+++ b/crypto/signature_creator_openssl.cc
@@ -68,9 +68,8 @@
   signature->resize(RSA_size(rsa_key.get()));
 
   unsigned int len = 0;
-  bool success = RSA_sign(ToOpenSSLDigestType(hash_alg), data, data_len,
-                          vector_as_array(signature), &len, rsa_key.get());
-  if (!success) {
+  if (!RSA_sign(ToOpenSSLDigestType(hash_alg), data, data_len,
+                vector_as_array(signature), &len, rsa_key.get())) {
     signature->clear();
     return false;
   }
