diff --git a/core/fpdfapi/parser/cpdf_security_handler.cpp b/core/fpdfapi/parser/cpdf_security_handler.cpp
index 38e029c..bde69b6 100644
--- a/core/fpdfapi/parser/cpdf_security_handler.cpp
+++ b/core/fpdfapi/parser/cpdf_security_handler.cpp
@@ -321,8 +321,9 @@
 bool CPDF_SecurityHandler::AES256_CheckPassword(const ByteString& password,
                                                 bool bOwner,
                                                 uint8_t* key) {
-  if (!m_pEncryptDict)
-    return false;
+  ASSERT(key);
+  ASSERT(m_pEncryptDict);
+  ASSERT(m_Revision >= 5);
 
   ByteString okey = m_pEncryptDict->GetStringFor("O");
   if (okey.GetLength() < 48)
@@ -349,9 +350,6 @@
   if (memcmp(digest, pkey, 32) != 0)
     return false;
 
-  if (!key)
-    return true;
-
   if (m_Revision >= 6) {
     Revision6_Hash(password, (const uint8_t*)pkey + 40,
                    bOwner ? ukey.raw_str() : nullptr, digest);
@@ -404,13 +402,11 @@
                                          bool bOwner,
                                          uint8_t* key,
                                          int32_t key_len) {
+  ASSERT(key);
+
   if (m_Revision >= 5)
     return AES256_CheckPassword(password, bOwner, key);
 
-  uint8_t keybuf[32];
-  if (!key)
-    key = keybuf;
-
   if (bOwner)
     return CheckOwnerPassword(password, key, key_len);
 
