| Index: crypto/rsa_private_key_nss.cc | 
| diff --git a/crypto/rsa_private_key_nss.cc b/crypto/rsa_private_key_nss.cc | 
| index 8157de254fc9e069069e02dba27ecf8efa462d84..0d79dbe84661831740ef43cdd66bf72696f26685 100644 | 
| --- a/crypto/rsa_private_key_nss.cc | 
| +++ b/crypto/rsa_private_key_nss.cc | 
| @@ -7,6 +7,7 @@ | 
| #include <cryptohi.h> | 
| #include <keyhi.h> | 
| #include <pk11pub.h> | 
| +#include <secmod.h> | 
|  | 
| #include <list> | 
|  | 
| @@ -119,31 +120,22 @@ RSAPrivateKey* RSAPrivateKey::FindFromPublicKeyInfo( | 
| return NULL; | 
| } | 
|  | 
| -  ScopedPK11Slot slot(GetPrivateNSSKeySlot()); | 
| -  if (!slot.get()) { | 
| -    NOTREACHED(); | 
| -    return NULL; | 
| -  } | 
| - | 
| -  // Finally...Look for the key! | 
| -  result->key_ = PK11_FindKeyByKeyID(slot.get(), ck_id.get(), NULL); | 
| - | 
| -  // If we don't find the matching key in the private slot, then we | 
| -  // look in the public slot. | 
| -  if (!result->key_) { | 
| -    slot.reset(GetPublicNSSKeySlot()); | 
| -    if (!slot.get()) { | 
| -      NOTREACHED(); | 
| -      return NULL; | 
| +  // Search all slots in all modules for the key with the given ID. | 
| +  AutoSECMODListReadLock auto_lock; | 
| +  SECMODModuleList* head = SECMOD_GetDefaultModuleList(); | 
| +  for (SECMODModuleList* item = head; item != NULL; item = item->next) { | 
| +    int slot_count = item->module->loaded ? item->module->slotCount : 0; | 
| +    for (int i = 0; i < slot_count; i++) { | 
| +      // Finally...Look for the key! | 
| +      result->key_ = PK11_FindKeyByKeyID(item->module->slots[i], | 
| +                                         ck_id.get(), NULL); | 
| +      if (result->key_) | 
| +        return result.release(); | 
| } | 
| -    result->key_ = PK11_FindKeyByKeyID(slot.get(), ck_id.get(), NULL); | 
| } | 
|  | 
| -  // If we didn't find it, that's ok. | 
| -  if (!result->key_) | 
| -    return NULL; | 
| - | 
| -  return result.release(); | 
| +  // We didn't find the key. | 
| +  return NULL; | 
| } | 
|  | 
|  | 
|  |