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
Cykesiopka
583ff7267d
Bug 1329238 - Make public CryptoKey.h methods return UniqueX NSS types instead of raw pointers. r=ttaubert
...
The std::unique_ptr based UniqueX types provide better safety over managing raw
pointers.
MozReview-Commit-ID: EwwOfs6RHqy
2017-01-25 00:27:39 +08:00
Cykesiopka
5c5754fa3e
Bug 1325104 - Stop using Scoped.h NSS types in CryptoKey.(cpp|h). r=ttaubert
...
Scoped.h is deprecated.
MozReview-Commit-ID: HVfrjM2haQf
2017-01-02 14:02:50 +08:00
Cykesiopka
39140f9859
Bug 1308890 - Make use of ScopedAutoSECItem in CryptoKey.cpp. r=rbarnes
...
ScopedAutoSECItem is useful for getting rid of this pattern:
> ScopedSECItem item(SECITEM_AllocItem(nullptr, nullptr, 0));
While this pattern works, ScopedAutoSECItem is slightly superior in that it
doesn't unnecessarily cause a SECItem to be allocated from the heap. Moreover,
this moves us further away from Scoped.h, which is deprecated.
MozReview-Commit-ID: B30MNTHzzTc
2016-10-14 10:36:54 +08:00
Igor
e97326fa34
Bug 1296180 - Replace more uses of PR_ARRAY_SIZE with mozilla::ArrayLength. r=keeler,mt
2016-09-09 13:17:52 -07:00
Phil Ringnalda
4984eae11e
Back out 1eb6e4e4060f (bug 1296180) for Windows warning-as-error bustage
...
CLOSED TREE
2016-09-08 23:30:12 -07:00
Igor
a4055789f8
Bug 1296180 - Replace more uses of PR_ARRAY_SIZE with mozilla::ArrayLengh. r=mt
2016-09-08 22:35:12 -07: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
Tim Taubert
db47850e6d
Bug 1289330 - Check for success when calling ToKeyAlgorithm() r=bz
2016-07-28 10:21:23 +02:00
David Keeler
68bc343a1b
bug 1264771 - randomize key IDs in WebCrypto r=ttaubert
...
To import private keys, WebCrypto creates a generic PKCS#11 object with a chosen
key ID with PK11_CreateGenericObject and then looks up that object as a
SECKEYPrivateKey using PK11_FindKeyByKeyID. It turns out that this is only safe
to do as long as the ID is unique. If another SECKEYPrivateKey exists that has
the same key ID (realistically this will only happen if an identical key is
imported again), PK11_FindKeyByKeyID may return the other key. Since
SECKEYPrivateKey objects are unique and not meant to be shared, this causes
problems in that when one key is destroyed, the resources backing the other key
are no longer valid, and any cryptographic operations using that key will fail.
The solution is to use random IDs and check for preexisting keys. NSS doesn't
yet expose an elegant API for this, but this patch implements a workaround.
MozReview-Commit-ID: EvYMZxnBxTv
2016-05-04 12:48:37 -07:00
Tim Taubert
5443c0f240
Bug 842818 - Enable structured cloning for CryptoKeys across threads r=baku,keeler
2016-01-20 23:22:41 +01:00
Tim Taubert
a239e3f345
Bug 1257325 - Silence VS2015 compiler warnings in CryptoKey.cpp f=gps r=rbarnes
2016-03-18 11:24:57 +01:00
David Keeler
0f02590d81
bug 1234417 - fix a leak in CreateECPublicKey r=rbarnes
...
Before this patch, CreateECPublicKey would create a SECKEYPublicKey allocated on
a scoped arena. It would then call CryptoKey::PublicKeyValid, which has the
side-effect of importing the key to the internal PKCS#11 slot. When the arena
went out of scope, the memory for the key would be released, but the reference
to the slot wouldn't, causing a leak.
This patch fixes the leak by making the SECKEYPublicKey a ScopedSECKEYPublicKey
(which ensures that the type-specific "destructor" SECKEY_DestroyPublicKey is
called, which releases the reference to the PKCS#11 slot).
2015-12-21 17:14:41 -08:00
Tim Taubert
0d7c37bf0f
Bug 1204155 - Check if we're OOM when calling SECKEY_CopyPrivateKey() and SECKEY_CopyPublicKey() r=mt
2015-09-14 11:53:02 +02:00
Tim Taubert
f9dc5e989c
Bug 1204155 - Account for OOM in CryptoKey::SetSymKey() r=mt
2015-09-14 11:19:16 +02:00
Tim Taubert
1f71d8afd2
Bug 1188750 - CryptoKey::ReadStructuredClone() needs to ensure NSS is initialized before trying to deserialize a key r=keeler
2015-09-01 11:03:02 +02:00
Tim Taubert
6f5a605095
Bug 1169890 - Check return values for CryptoBuffer.Assign() calls r=rbarnes
2015-05-30 08:28:45 +02:00
Tim Taubert
0fb5e58f39
Bug 1050175 - Add raw import/export for EC public keys to the WebCrypto API r=rbarnes,smaug
2015-04-28 09:13:16 +02:00
Tim Taubert
f2029f2ecd
Bug 1106087 - Recreate newly generated ECDH private keys with an CKA_EC_POINT attribute to support JWK and PKCS8 export r=rbarnes
2015-04-25 14:53:43 +02:00
Tim Taubert
6cc5e69a5c
Bug 1158927 - Calls to CryptoKey::PrivateKeyToPkcs8() and ::PublicKeyToSpki() should check return values r=rbarnes
2015-04-27 20:47:12 +02:00
Andrew McCreight
92010d3e4c
Bug 1152551, part 2 - Fix mode lines in dom/. r=jst
2015-05-03 15:32:37 -04:00
Boris Zbarsky
3a822d99b4
Bug 1117172 part 3. Change the wrappercached WrapObject methods to allow passing in aGivenProto. r=peterv
...
The only manual changes here are to BindingUtils.h, BindingUtils.cpp,
Codegen.py, Element.cpp, IDBFileRequest.cpp, IDBObjectStore.cpp,
dom/workers/Navigator.cpp, WorkerPrivate.cpp, DeviceStorageRequestChild.cpp,
Notification.cpp, nsGlobalWindow.cpp, MessagePort.cpp, nsJSEnvironment.cpp,
Sandbox.cpp, XPCConvert.cpp, ExportHelpers.cpp, and DataStoreService.cpp. The
rest of this diff was generated by running the following commands:
find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObjectInternal\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'
find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObjectInternal\((?:aCx|cx|aContext|aCtx|js))\)/\1, aGivenProto)/g'
find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapNode\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'
find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapNode\((?:aCx|cx|aContext|aCtx|js))\)/\1, aGivenProto)/g'
find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObject\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'
find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(Binding(?:_workers)?::Wrap\((?:aCx|cx|aContext|aCtx|js), [^,)]+)\)/\1, aGivenProto)/g'
2015-03-19 10:13:33 -04:00
Tim Taubert
5d8ead30ba
Bug 1034856 - Follow-up to fix small SECItem leak in PublicKeyToSpki() on a CLOSED TREE r=bustage
2014-10-17 15:14:18 +02:00
Tim Taubert
2ea93131de
Bug 1034856 - Follow-up to fix small SECItem leak in PublicKeyToSpki() on a CLOSED TREE r=bustage
2014-10-17 15:05:59 +02:00
Tim Taubert
e7154ebc35
Backed out changeset ace6aa02d442 (bug 1034856)
2014-10-17 14:58:33 +02:00
Tim Taubert
6b3dc5228f
Bug 1034856 - Follow-up to fix small SECItem leak in PublicKeyToSpki() r=bustage
2014-10-17 13:30:41 +02:00
Tim Taubert
c9d7cf6c0d
Bug 1034856 - Remove CryptoBuffer::ToSECItem() using moz_malloc() r=rbarnes
2014-09-03 09:40:21 -04:00
Tim Taubert
f450c02db4
Bug 1034856 - Implement SPKI public key import/export for DH r=rbarnes
2014-08-22 15:32:15 +02:00
Tim Taubert
052b3f48cc
Bug 1034856 - Implement raw public key import/export for DH r=rbarnes,smaug
2014-08-22 12:02:14 +02:00
Tim Taubert
6b06758b17
Bug 1034856 - Introduce DhKeyAlgorithm r=rbarnes,smaug
2014-07-20 05:51:10 +02:00
Richard Barnes
a717141eec
Bug 1034854 - Add support for ECDSA to WebCrypto API r=ttaubert,dkeeler r=bz
2014-10-13 23:19:00 +02:00
Peter Van der Beken
3467274091
Bug 1078744 - Replace SetIsDOMBinding with SetIsNonDOMBinding, remove nsWrapperCache::SetIsDOMBinding. r=bz.
2014-10-07 11:44:49 +02:00
Richard Barnes
452905a915
Bug 1037892 - Implement changes to WebCrypto API from latest Editor's Draft r=bz,ttaubert
2014-09-27 14:22:57 -04:00
Wes Kocher
282d72751c
Backed out changeset 398bdeea30b0 (bug 1037892) for build bustage
2014-09-26 15:35:38 -07:00
Richard Barnes
82ea3e9b15
Bug 1037892 - Implement changes to WebCrypto API from latest Editor's Draft r=bz,ttaubert
...
* * *
Add check for old structured clone format.
2014-09-26 17:36:39 -04:00
Tim Taubert
2bbed6ec34
Bug 1049434 - Don't allocate SECItems with new operator r=rbarnes
2014-08-06 12:15:35 +02:00
Tim Taubert
62fdbdb0aa
Backed out changeset 5184f19384c8 (bug 1049434)
2014-08-07 09:21:13 +02:00
Tim Taubert
8417480d8d
Bug 1049434 - Don't allocate SECItems with new operator r=rbarnes
2014-08-06 12:15:35 +02:00
Tim Taubert
9e02913454
Bug 1034855 - Implement SPKI import/export for ECDH r=keeler,rbarnes
2014-08-04 09:39:12 +02:00
Tim Taubert
cacd830324
Bug 1034855 - Implement JWK import/export for ECDH r=rbarnes,keeler
2014-07-29 11:10:07 +02:00
Ryan VanderMeulen
36111f94fd
Backed out 6 changesets (bug 1034855) for LSAN leaks on a CLOSED TREE.
...
Backed out changeset 0dc569f74991 (bug 1034855)
Backed out changeset 4eb0ee62db1e (bug 1034855)
Backed out changeset 4af8993f1534 (bug 1034855)
Backed out changeset f4f5f5b8421d (bug 1034855)
Backed out changeset 33510bb7ad60 (bug 1034855)
Backed out changeset 50b8670329aa (bug 1034855)
2014-08-05 14:04:08 -04:00
Tim Taubert
094a318d7b
Bug 1034855 - Implement SPKI import/export for ECDH r=keeler,rbarnes
2014-08-04 09:39:12 +02:00
Tim Taubert
9322851e17
Bug 1034855 - Implement JWK import/export for ECDH r=rbarnes,keeler
2014-07-29 11:10:07 +02:00
Tim Taubert
ad1903c219
Bug 1041328 - Fix crash in CryptoKey::PrivateKeyFromPkcs8() when trying to import invalid key data r=rbarnes
2014-07-25 13:53:28 +02:00
Richard Barnes
1c95a43c5a
Bug 1025230 - Allow import/export of JWK-formatted keys in WebCrypto r=bz,keeler
2014-07-19 08:25:00 -05:00
Tim Taubert
8173949e3d
Bug 1026314 - Rename Key to CryptoKey in WebCrypto r=rbarnes,bz
...
From 9beed249a4d08ccc945bc573a0c71d295cb1b222 Mon Sep 17 00:00:00 2001
2014-06-23 23:25:13 +02:00
Ed Morley
860e779bb2
Backed out changeset 38831e922852 (bug 1026314) for test_interfaces.html failures
2014-07-04 16:17:51 +01:00
Tim Taubert
f0ffeb45fd
Bug 1026314 - Rename Key to CryptoKey in WebCrypto r=rbarnes,bz
2014-06-23 23:25:13 +02:00