Commit Graph
30 Commits
Author SHA1 Message Date
serge-sans-paille a5bc7d11e9 Bug 1820573 - Make security/ buildable outside of a unified build environment r=andi,keeler
Differential Revision: https://phabricator.services.mozilla.com/D171732
2023-03-15 07:30:36 +00:00
Dana Keeler 5a07b61ecd Bug 1634065 - re-work how PSM services get initialized on the main thread r=kjacobs,necko-reviewers,bbeurdouche
Some PSM services need to be initialized on the main thread. Before this patch,
this was achieved by dispatching a synchronous task to the main thread in the
event that a different thread was attempting to acquire a given service for the
first time. However, with the upcoming removal of the nested event loop in the
XPCOM service instantiation code (see other patches in this bug), this can
cause a deadlock. This patch avoids the deadlock by removing the synchronous
dispatch and ensuring that these services get initialized on the main thread
relatively early, when PSM itself is initialized.

Differential Revision: https://phabricator.services.mozilla.com/D94145
2020-11-17 16:29:44 +00:00
Simon Giesecke 5c917d0241 Bug 1626570 - Improve handling of copying arrays in security/manager/ssl/. r=keeler
Differential Revision: https://phabricator.services.mozilla.com/D72343
2020-05-05 10:40:38 +00:00
Razvan Maries 09f4754f5a Backed out 10 changesets (bug 1626570) for build bustages. CLOSED TREE
Backed out changeset a3f17d392234 (bug 1626570)
Backed out changeset 5247e1ddd5d6 (bug 1626570)
Backed out changeset c339fd44c9f8 (bug 1626570)
Backed out changeset 4c69a4c013b3 (bug 1626570)
Backed out changeset e85450d69351 (bug 1626570)
Backed out changeset 793f978248b3 (bug 1626570)
Backed out changeset 68b4c2418d83 (bug 1626570)
Backed out changeset 52d0911d4ad3 (bug 1626570)
Backed out changeset a7d4e3a59ee3 (bug 1626570)
Backed out changeset 6c06d397a5d2 (bug 1626570)
2020-05-05 13:37:08 +03:00
Simon Giesecke 4b0cea69e5 Bug 1626570 - Improve handling of copying arrays in security/manager/ssl/. r=keeler
Differential Revision: https://phabricator.services.mozilla.com/D72343
2020-05-05 09:40:30 +00:00
Kershaw Chang 4d667298bb Bug 1607445 - Clear tokens cache at places where SSL_ClearSessionCache() is called r=keeler
Differential Revision: https://phabricator.services.mozilla.com/D62021
2020-02-18 19:04:28 +00:00
Gabriele Svelto f03cdb2b2d Bug 1600545 - Remove useless inclusions of header files generated from IDL files in modules/, netwerk/, parser/, security/, startupcache/, storage/, toolkit/, tools/, uriloader/, widget/, xpcom/ and xpfe/ r=Ehsan
The inclusions were removed with the following very crude script and the
resulting breakage was fixed up by hand. The manual fixups did either
revert the changes done by the script, replace a generic header with a more
specific one or replace a header with a forward declaration.

find . -name "*.idl" | grep -v web-platform | grep -v third_party | while read path; do
    interfaces=$(grep "^\(class\|interface\).*:.*" "$path" | cut -d' ' -f2)
    if [ -n "$interfaces" ]; then
        if [[ "$interfaces" == *$'\n'* ]]; then
          regexp="\("
          for i in $interfaces; do regexp="$regexp$i\|"; done
          regexp="${regexp%%\\\|}\)"
        else
          regexp="$interfaces"
        fi
        interface=$(basename "$path")
        rg -l "#include.*${interface%%.idl}.h" . | while read path2; do
            hits=$(grep -v "#include.*${interface%%.idl}.h" "$path2" | grep -c "$regexp" )
            if [ $hits -eq 0 ]; then
                echo "Removing ${interface} from ${path2}"
                grep -v "#include.*${interface%%.idl}.h" "$path2" > "$path2".tmp
                mv -f "$path2".tmp "$path2"
            fi
        done
    fi
done

Differential Revision: https://phabricator.services.mozilla.com/D55444
2019-12-06 09:17:57 +00:00
Matthew Noorenberghe 1adf38f3ed Bug 1571555 - Use a blank string in place of the username or password when decryption fails. r=keeler
Don't show the login in about:logins if the username or password cannot be decrypted.

Differential Revision: https://phabricator.services.mozilla.com/D40845
2019-08-16 20:27:34 +00:00
Daniel Varga f1f8b58998 Backed out changeset 65c6d801e7b4 (bug 1571555) for browser chrome failure at browser/components/aboutlogins/tests/browser/browser_masterPassword.js 2019-08-10 22:35:50 +03:00
Jared Wein 3ff60ff3ef Bug 1571555 - Use a blank string in place of the username or password when decryption fails. r=keeler
Don't show the login in about:logins if the username or password cannot be decrypted.

Differential Revision: https://phabricator.services.mozilla.com/D40845
2019-08-10 00:19:48 +00:00
Jared Wein 18ed860585 Bug 1567667 - Decrypted strings returned from asyncDecryptStrings need to be converted to UTF16. r=keeler
Differential Revision: https://phabricator.services.mozilla.com/D39443
2019-07-26 19:13:11 +00:00
Barret Rennie d90b9bbfd1 Bug 1289211 - Rename InfallibleTArray to nsTArray in security/manager/ r=keeler
Differential Revision: https://phabricator.services.mozilla.com/D36967
2019-07-10 03:33:22 +00:00
Jared Wein aa47b4b11b Bug 1560447 - Add a decryptMany method to crypto-SDR.js for batch decrypting of stored logins. r=keeler
Differential Revision: https://phabricator.services.mozilla.com/D35879
2019-06-28 16:53:11 +00:00
Boris Zbarsky 91f68ab04f Bug 1558557. Stop using [array] in nsISecretDecoderRing. r=keeler
The UTF-16 to UTF-8 conversion is now handled by XPConnect, because we're using AUTF8String for the type.

Differential Revision: https://phabricator.services.mozilla.com/D34560
2019-06-12 02:15:23 +00:00
Dana Keeler 1cba55883e bug 1555854 - avoid creating transient threads in PSM (particularly CryptoTask) r=KevinJacobs
CryptoTask is a helper class that makes it easier to implement code that runs on
a background thread and then notifies completion on the main thread (this is
useful for not blocking the main thread with long-running cryptography or I/O).
Before this patch, each CryptoTask would create a new thread each time it ran,
which was inefficient. This patch updates CryptoTask to use the stream transport
service (which is essentially a pool of threads for doing exactly these kinds of
things and notably is not to be confused with the socket transport service) to
run each task. Additionally, there were a few places in PSM where we
unnecessarily created new threads to perform similar tasks. These now use the
stream transport service as well.

Differential Revision: https://phabricator.services.mozilla.com/D33534
2019-06-03 23:47:48 +00:00
Sylvestre Ledru e5a134f73a Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset
2018-11-30 11:46:48 +01:00
Jan de Mooij 641ab963ad Bug 1474273 - Add xpc::CurrentNativeGlobal and use it instead of NativeGlobal(JS::CurrentGlobalOrNull(cx)). r=bz 2018-07-11 14:07:02 +02:00
David Keeler 59a43893cf bug 1465976 - remove all find*ByName APIs from PSM PKCS#11 module/slot/token interfaces r=fkiefer,jcj
Before this patch, we exposed a few interfaces that revolved around mapping a
name to a specific PKCS#11 module, slot, or token. These APIs were all either
problematic and/or unnecessary. In theory there could be two tokens in different
modules with the same name, so nsIPK11TokenDB.findTokenByName wasn't guaranteed
to return what the consumer expected it to. In general, these APIs were used by
front-end code to go from a handle on the specific object in question to a
string identifier and then back to a handle on the object. This was unnecessary
- we can just retain the original handle.

MozReview-Commit-ID: IbqLbV4wceA
2018-05-31 14:46:06 -07:00
Emilio Cobos Álvarez 4b8b5e1717 Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Nika Layzell fbd3b168bb Bug 1455217 - Part 3: Use the new xpidl Promise type instead of nsISupports, r=bz 2018-05-14 17:55:54 -04:00
Doug Thayer ec274cdd4e Bug 1444290 - Forget bg SDR runnable reference when dispatching r=froydnj
We're seeing a crash in tests from trying to release the promise in
this runnable from the background thread we create to run this
method. The only way I can see that happening is that the bg thread
loses the race with the main thread to drop its reference to the
runnable, causing it to call the destructor. Rather than calling the
helper that adds a reference to the runnable and then forgets it,
let's just forget it here.

MozReview-Commit-ID: LXpC8Kr2SBb
2018-03-22 09:31:40 -07:00
David Keeler f592ab3550 bug 1421084 - part 3/4 - remove nsNSSShutDownObject::shutdown and virtualDestroyNSSReference r=mt,ttaubert
MozReview-Commit-ID: ErL7ZjAGVVC
2018-01-24 14:29:08 -08:00
David Keeler 96fbe77852 bug 1421084 - part 2/4 - remove nsNSSShutDownObject::isAlreadyShutDown() r=mt,ttaubert
MozReview-Commit-ID: DlS16pHE0Ik
2018-01-23 12:22:56 -08:00
David Keeler ef94d8cd22 bug 1421084 - part 1/4 - remove now-unnecessary nsNSSShutDownPreventionLock r=mt,ttaubert
As of bug 1417680, the NSS shutdown tracking infrastructure is unnecessary (and
does nothing anyway). This series of changesets removes the remaining pieces in
a way that is hopefully easy to confirm is correct.

MozReview-Commit-ID: 8Y5wpsyNlGc
2018-01-23 10:37:47 -08:00
Doug Thayer 1fe0ee54f3 Bug 1426721 - Add async/bulk encryption interface to SDR r=keeler,MattN
Since encryption can be somewhat CPU intensive, if we're encrypting
a large number of strings we want to be able to do so in a background
thread. This will be consumed by the profile migrators when importing
logins.

MozReview-Commit-ID: JoJGOgMzZ4u
2018-01-23 10:06:31 -08:00
Cykesiopka 65f1157099 Bug 1338895 - Avoid non-smart string IDL types in remaining PSM IDL files. r=aklotz,keeler
Smart string classes like nsCString are safer to use than raw |char*| strings,
and are typically easier to deal with as well.

MozReview-Commit-ID: 18C293zWrJw
2017-02-26 20:36:40 +08:00
Cykesiopka 93dcea2866 Bug 1296316 - Convert nsNSSShutDownObject::CalledFromType to an enum class. r=mgoodwin
enum classes are in general safer than plain enums, and as such should be
preferred.

MozReview-Commit-ID: 1FK89SNhdk4
2016-08-20 23:00:19 +08:00
Cykesiopka 4ce10a0399 Bug 1275841 - Make nsISecretDecoderRing.idl encryptString() and decryptString() use the Mozilla string classes. r=keeler
The Mozilla string classes don't require manual memory management and
automatically keep track of length, making them a safer choice than raw C
strings.

MozReview-Commit-ID: EwCiiP9EhDr
2016-08-19 09:37:48 +08:00
Cykesiopka 16cf74bae7 Bug 1275841 - Remove unnecessary methods and interfaces from nsISecretDecoderRing.idl. r=keeler
1. encrypt() and decrypt() are C++ only.
The only callers are in SecretDecoderRing.cpp, and binary add-ons aren't
supported anymore. So, there is no need for these methods to be defined in the
IDL, and they should be treated as private to the nsISecretDecoderRing
implementation.

2. nsISecretDecoderRingConfig has never been implemented.
The interface and implementation are currently just bloat. If there is a need
for specifying the window for prompts in the future, a better way can be devised
then.

MozReview-Commit-ID: 1wXCDTIBJA2
2016-08-19 09:37:43 +08:00
Cykesiopka 30d2f1e7a8 Bug 1275841 - Rename nsSDR.(cpp|h) to SecretDecoderRing.(cpp|h). r=keeler
There are currently two ways of naming files containing the implementation of
interface nsIFoo:
1. nsFoo.(cpp|h) (previous convention)
2. Foo.(cpp|h) (new convention)

nsSDR.(cpp|h) matches neither of these. Renaming the files to follow convention
makes it easier to discover what the files implement, and increases codebase
consistency.

MozReview-Commit-ID: 3ThPxPouiie
2016-08-19 09:36:53 +08:00