From 08e2666ed73d1ebbfee95e47b72e30dfd0fcf157 Mon Sep 17 00:00:00 2001 From: "kaie%kuix.de" Date: Fri, 19 Oct 2007 19:10:09 +0000 Subject: [PATCH] relanding: Bug 399045, PSM should remember valid intermediate CA certificates r=rrelyea, a=sayrer git-svn-id: svn://10.0.0.236/trunk@237930 18797224-902f-48f8-a5cc-f745e15eee43 --- .../manager/ssl/src/nsNSSCallbacks.cpp | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/mozilla/security/manager/ssl/src/nsNSSCallbacks.cpp b/mozilla/security/manager/ssl/src/nsNSSCallbacks.cpp index 85c5e4d4626..3129fc5b26e 100644 --- a/mozilla/security/manager/ssl/src/nsNSSCallbacks.cpp +++ b/mozilla/security/manager/ssl/src/nsNSSCallbacks.cpp @@ -837,17 +837,17 @@ SECStatus PR_CALLBACK AuthCertificateCallback(void* client_data, PRFileDesc* fd, // the code that cares for displaying page info does this already. continue; } - - // We have found a signer cert that we want to remember. - if (!nssComponent) { - // delay getting the service until we really need it - nsresult rv; - nssComponent = do_GetService(kNSSComponentCID, &rv); - } - - if (nssComponent) { - nssComponent->RememberCert(node->cert); + // We have found a signer cert that we want to remember. + nsCAutoString nickname; + nickname = nsNSSCertificate::defaultServerNickname(node->cert); + if (!nickname.IsEmpty()) { + PK11SlotInfo *slot = PK11_GetInternalKeySlot(); + if (slot) { + PK11_ImportCert(slot, node->cert, CK_INVALID_HANDLE, + const_cast(nickname.get()), PR_FALSE); + PK11_FreeSlot(slot); + } } }